public Reserva( String id, float preu, boolean penalitzacioTemps, boolean penalitzacioMoto, float penalitzacio, String dataInicial, String horaInicial, String dataFinal, String horaFinal, Local localInicial, Local localFinal, Client clientReserva, String idMoto) { this.id = id; this.preu = preu; this.penalitzacioTemps = penalitzacioTemps; this.penalitzacioMoto = penalitzacioMoto; this.penalitzacio = penalitzacio; this.dataInicial = Data.crearData(dataInicial, horaInicial); this.dataFinal = Data.crearData(dataFinal, horaFinal); this.localInicial = localInicial; this.localFinal = localFinal; this.clientReserva = clientReserva; if (localFinal.getMoto(idMoto) != null) { this.motoReserva = localFinal.getMoto(idMoto); } else { this.motoReserva = localInicial.getMoto(idMoto); } }
/** * UC 5_1 Metode que calcula el preu final de la reserva, tenint en compte totes les possibles * penalitzacions. Tambe canvia el estat de la moto. */ public void cobrarReserva() { String diaActual, horaActual; Consola.escriu("Introdueix la data 'actual' (dd/mm/aaaa):"); diaActual = Consola.llegeixString(); Consola.escriu("Introdueix la hora 'actual' (hh:mm:ss): "); horaActual = Consola.llegeixString(); Data dataEntrega = Data.crearData(diaActual, horaActual); // Data dataEntrega = new Data(); //es pot seleccionar aquesta opcio si es vol fer automatic. float diferencia; clientReserva.setEstat("NO RESERVA"); diferencia = dataEntrega.calcularDiferencia(dataFinal); if (diferencia > 0.0f) { penalitzacio = diferencia * 2; Consola.escriu("La moto s'ha entregat amb retras.\n La reserva tindra un preu adicional de "); Consola.escriu(penalitzacio); penalitzacioTemps = true; preu += penalitzacio; Consola.escriu("€ tinguent un preu final de "); Consola.escriu(preu); Consola.escriu("€.\n"); } gestionarAveria(); }
/** * UC 4_1 Metode que comprova si una reserva es activa segons la hora passada per parametre. La * hora passada per parametre sera o la hora actual o una introduida per un usuari. * * @param diaActual Data que es suposa la actual. * @param horaActual * @return Retorna si aquesta data es troba dins del periode de la reserva. */ public boolean isActiva(String diaActual, String horaActual) { Data dataActual = Data.crearData(diaActual, horaActual); return dataActual.compara(dataInicial) >= 0 && dataActual.compara(dataFinal) <= 0; }