package e1; import java.util.Calendar; import java.util.Date; public class Payment implements EstadoOrder{ private static final Payment instancia = new Payment(); private Payment(){} public static Payment getInstancia(){ return instancia; } @Override public void anadirProducto(Order order, ProductoCantidad productoCantidad) { //Ya no podemos eliminar productos } @Override public void eliminarProducto(Order order, ProductoCantidad productoCantidad) { //Ya no podemos eliminar productos } @Override public void siguienteEstado(Order order) { order.setEstado(Completed.getInstancia()); //REVISAR } @Override public void anteriorEstado(Order order) { //No es posible volver al checkout } @Override public void modificarCantidadProducto(Order order, ProductoCantidad productoCantidad, int nuevaCantidad) { //Ya no podemos modificar la cantidad de productos } @Override public void pagar(Order order) { //Ya hemos pagado } @Override public void cancelar(Order order) { Date date = order.getFecha(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.HOUR_OF_DAY, 24); Date ahora = new Date(); if(ahora.equals(date) || ahora.after(date)) { order.setConfirmado(false); order.setEstado(Cancelled.getInstancia()); }else{ System.out.println("No se puede cancelar, ya han pasado 24 horas\n"); } } @Override public void screenInfo(Order order) { System.out.println("Order number: " + order.getOrdernumber() + "\nPhase: Paid order: " + order.getLista().size() + " products -- " + order.getFecha() + "\n"); } }