Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package e1;
- import java.util.Date;
- public class CheckOut implements EstadoOrder {
- private static final CheckOut instancia = new CheckOut();
- private CheckOut(){}
- public static CheckOut getInstancia(){ return instancia; }
- @Override
- public void anteriorEstado(Order order) {
- order.setEstado(ShoppingCart.getInstancia());
- }
- @Override
- public void modificarCantidadProducto(Order order, ProductoCantidad productoCantidad, int nuevaCantidad) {
- if(productoCantidad.getProducto().getStock()+ productoCantidad.getCantidad()-nuevaCantidad>0) {
- productoCantidad.getProducto().setStock(productoCantidad.getProducto().getStock()+productoCantidad.getCantidad()-nuevaCantidad);
- productoCantidad.setCantidad(nuevaCantidad);
- }else{
- System.out.println("No hay suficiente stock");
- }
- }
- @Override
- public void pagar(Order order) {
- order.setConfirmado(true);
- order.setFecha(new Date());
- order.setEstado(Payment.getInstancia());
- }
- @Override
- public void cancelar(Order order) {
- //Todavía no es momento de cancelar
- }
- @Override
- public void anadirProducto(Order order, ProductoCantidad productoCantidad) {
- //No se pueden añadir productos, solo eliminarlos o modificar la cantidad
- }
- @Override
- public void eliminarProducto(Order order, ProductoCantidad productoCantidad) {
- order.getLista().remove(productoCantidad);
- productoCantidad.getProducto().setStock(productoCantidad.getProducto().getStock()+1);
- }
- @Override
- public void siguienteEstado(Order order) {
- //No podemos ir al siguiente sin pagar
- }
- @Override
- public void screenInfo(Order order) {
- System.out.println("Order number: " + order.getOrdernumber() + "\nPhase: Check out: " + order.getLista().size() + " products\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement