Advertisement
techno-

CheckOut.java

Nov 24th, 2022
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.92 KB | None | 0 0
  1. package e1;
  2.  
  3. import java.util.Date;
  4.  
  5. public class CheckOut implements EstadoOrder {
  6.  
  7.     private static final CheckOut instancia = new CheckOut();
  8.     private CheckOut(){}
  9.     public static CheckOut getInstancia(){ return instancia; }
  10.  
  11.     @Override
  12.     public void anteriorEstado(Order order) {
  13.         order.setEstado(ShoppingCart.getInstancia());
  14.     }
  15.  
  16.     @Override
  17.     public void modificarCantidadProducto(Order order, ProductoCantidad productoCantidad, int nuevaCantidad) {
  18.         if(productoCantidad.getProducto().getStock()+ productoCantidad.getCantidad()-nuevaCantidad>0) {
  19.             productoCantidad.getProducto().setStock(productoCantidad.getProducto().getStock()+productoCantidad.getCantidad()-nuevaCantidad);
  20.             productoCantidad.setCantidad(nuevaCantidad);
  21.         }else{
  22.             System.out.println("No hay suficiente stock");
  23.         }
  24.     }
  25.  
  26.     @Override
  27.     public void pagar(Order order) {
  28.         order.setConfirmado(true);
  29.         order.setFecha(new Date());
  30.         order.setEstado(Payment.getInstancia());
  31.     }
  32.  
  33.     @Override
  34.     public void cancelar(Order order) {
  35.         //Todavía no es momento de cancelar
  36.     }
  37.  
  38.     @Override
  39.     public void anadirProducto(Order order, ProductoCantidad productoCantidad) {
  40.         //No se pueden añadir productos, solo eliminarlos o modificar la cantidad
  41.     }
  42.  
  43.     @Override
  44.     public void eliminarProducto(Order order, ProductoCantidad productoCantidad) {
  45.         order.getLista().remove(productoCantidad);
  46.         productoCantidad.getProducto().setStock(productoCantidad.getProducto().getStock()+1);
  47.     }
  48.  
  49.     @Override
  50.     public void siguienteEstado(Order order) {
  51.         //No podemos ir al siguiente sin pagar
  52.     }
  53.  
  54.     @Override
  55.     public void screenInfo(Order order) {
  56.         System.out.println("Order number: " + order.getOrdernumber() + "\nPhase: Check out: " + order.getLista().size() + " products\n");
  57.     }
  58. }
  59.  
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement