diff --git a/src/action/BookingAction.java b/src/action/BookingAction.java index f1d05297..8d0e0d06 100644 --- a/src/action/BookingAction.java +++ b/src/action/BookingAction.java @@ -394,6 +394,7 @@ public String saveUpdateBooking(){ Booking booking = null; Convention convention = null; CreditCard creditCard = null; + if(!this.checkBookingDates(this.getIdStructure())){ return ERROR; @@ -424,6 +425,13 @@ public String saveUpdateBooking(){ this.getMessage().setDescription(getText("bookingAddErrorNoBookerAction")); return ERROR; } + + //la prenotaizone deve avere un capogruppo + if(this.booking.getId() != null && this.getGroupLeaderService().findGroupLeaderByIdBooking(this.booking.getId()) == null){ + this.getMessage().setResult(Message.ERROR); + this.getMessage().setDescription(getText("selectGroupLeader")); + return ERROR; + } booker.setId_structure(this.getIdStructure()); booking.setBooker(booker); diff --git a/src/global_it.properties b/src/global_it.properties index cb28be35..fd4fee0e 100644 --- a/src/global_it.properties +++ b/src/global_it.properties @@ -69,9 +69,9 @@ bookingDeleteErrorAction = Errore: La prenotazione non \u00E8 stata cancellata bookingDeleteSuccessAction = Prenotazione eliminata con successo -bookingDeleteWithGroupLeaderErrorAction = Non puoi cancellare questo booking perchè ha un capogruppo associato +bookingDeleteWithGroupLeaderErrorAction = Non puoi cancellare questo booking perch� ha un capogruppo associato -bookingDeleteWithGroupLeaderNotHousedErrorAction = Non puoi cancellare questo booking perchè ha un capogruppo associato che non è alloggiato in nessun'altra prenotazione +bookingDeleteWithGroupLeaderNotHousedErrorAction = Non puoi cancellare questo booking perch� ha un capogruppo associato che non � alloggiato in nessun'altra prenotazione bookingDetails = Dettagli Prenotazione @@ -91,11 +91,11 @@ checkCanBeSingleOrLeader = L'ospite che stai cercando di alloggiare non possiede checkHousedInsert = Non puoi alloggiare un ospite prima della data di check-in -checkHousedDateIn = La data di check-in dell'alloggiato non può essere antecedente a quella del booking +checkHousedDateIn = La data di check-in dell'alloggiato non pu� essere antecedente a quella del booking -checkHousedDateOut = La data di check-out dell'alloggiato non può essere posteriore a quella del booking +checkHousedDateOut = La data di check-out dell'alloggiato non pu� essere posteriore a quella del booking -checkOverlappingHoused = L'ospite che stai cercando di alloggiare è già alloggiato in un'altra prenotazione attiva. Dovresti rimuoverlo prima da quella prenotazione se lo vuoi alloggiare in questa. +checkOverlappingHoused = L'ospite che stai cercando di alloggiare � gi� alloggiato in un'altra prenotazione attiva. Dovresti rimuoverlo prima da quella prenotazione se lo vuoi alloggiare in questa. cancel = Annulla @@ -311,7 +311,7 @@ home = Home homeWelcomeMessage = Gestionale per hotel, B&B ed agriturismi -housedDeleteIsGroupLeaderError = L'ospite che stai cercando di cancellare è capogruppo/capofamiglia nelle seguenti prenotazioni: +housedDeleteIsGroupLeaderError = L'ospite che stai cercando di cancellare � capogruppo/capofamiglia nelle seguenti prenotazioni: housedOptions = Opzioni Alloggiato @@ -325,7 +325,7 @@ identificationTypePlace = Luogo rilascio documento imageName = Nome immagine -imageDeleteError = Errore: l'immagine non è stata cancellata +imageDeleteError = Errore: l'immagine non � stata cancellata images = Immagini @@ -427,11 +427,11 @@ periodAddNew = Aggiungi nuovo periodo periodDelete = Elimina periodo -periodDeleteError = Errore: il periodo non può essere cancellato +periodDeleteError = Errore: il periodo non pu� essere cancellato periodOverlappedAction = Periodi sovrapposti -periodDatesError = Date invalide: la data di partenza deve essere più recente della data di arrivo o dovrebbe differenziarsi per l'anno +periodDatesError = Date invalide: la data di partenza deve essere pi� recente della data di arrivo o dovrebbe differenziarsi per l'anno periodSeasonError = Nel periodo selezionato non sono state configurate le stagioni @@ -477,11 +477,11 @@ roomDeleteErrorAction = Errore nell'eliminazione della camera roomDeleteSuccessAction = La camera \u00E8 stata eliminata con successo -roomDeleteWithBookingError = La camera che vuoi cancellare \u00E8 stata utilizzata in uno o più prenotazioni. Prova a cancellare le prenotazioni coinvolte. +roomDeleteWithBookingError = La camera che vuoi cancellare \u00E8 stata utilizzata in uno o pi� prenotazioni. Prova a cancellare le prenotazioni coinvolte. roomDetails = Dettagli Camera -roomFacilityDeleteError = Errore: la facility della camera non è stata cancellata +roomFacilityDeleteError = Errore: la facility della camera non � stata cancellata roomImageAddSuccessAction = Immagine della camera aggiunta con successo @@ -617,6 +617,8 @@ structureSettings = Configurazione Struttura structureSettingsUpdateSuccessAction = Configurazione della struttura aggiornata con successo +selectGroupLeader = Selezionare un capogruppo + submit = Invia subtotal = Subtotale @@ -785,7 +787,7 @@ CR = COSTA RICA CS = CECOSLOVACCHIA CU = CUBA CV = CAPO VERDE -CW = CURAÇAO +CW = CURA�AO CX = CHRISTMAS (ISOLA) CY = CIPRO CZ = CECA (REPUBBLICA) diff --git a/src/resources/ExportResource.java b/src/resources/ExportResource.java index d8139be8..061c0f1e 100644 --- a/src/resources/ExportResource.java +++ b/src/resources/ExportResource.java @@ -20,10 +20,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.ResponseBuilder; -import model.Booking; -import model.GroupLeader; -import model.GuestQuesturaFormatter; -import model.Housed; +import model.*; import model.questura.HousedExport; import model.questura.HousedExportGroup; import model.questura.HousedType; @@ -152,8 +149,15 @@ public Response exportFileQuestura(@PathParam("idStructure") Integer idStructure //CREO LA LISTA DEGLI HOUSED EXPORT Singoli housedExportSingleList = this.findHousedExportSingleList(housedExportList); - //ESTRAGGO IL NUMERO DI STANZE NELLA STRUTTURA - roomsInStructure = roomService.findAll().size(); + //NUMERO TOTALE DI LETTI NELLA STRUTTURA + List roomsList = this.roomService.findRoomsByIdStructure(idStructure); + int totalNumberOfbeds = 0; + for(Room singleRoom : roomsList){ + totalNumberOfbeds += this.roomService.findRoomById(singleRoom.getId()).getRoomType().getMaxGuests(); + } + + //NUMERO TOTALE DI STANZE NELLA STRUTURA + roomsInStructure = roomsList.size(); availableRooms =this.getExportService().calculateAvailableNumberOfRoomsForStructureInDate(idStructure, exportDate); availableBeds = this.getExportService().calculateAvailableNumberOfBedsForStructureInDate(idStructure, exportDate); @@ -165,7 +169,7 @@ public Response exportFileQuestura(@PathParam("idStructure") Integer idStructure guestQuesturaFormatterLeader.setModalita(each.getHousedExportLeader().getMode()); guestQuesturaFormatterLeader.setCamereOccupate(this.calculateNumberOfOccupiedRoomsForGroup(each)); guestQuesturaFormatterLeader.setCamereDisponibili(availableRooms); - guestQuesturaFormatterLeader.setLettiDisponibili(availableBeds); + guestQuesturaFormatterLeader.setLettiDisponibili(totalNumberOfbeds); guestQuesturaFormatterLeader.setNumGiorniPermanenza(this.calculateLengthOfStay(each.getHousedExportLeader())); guestQuesturaFormatterLeader.setDataFromHousedForQuestura(each.getHousedExportLeader().getHoused()); sb.append(guestQuesturaFormatterLeader.getRowQuestura(false)); @@ -195,7 +199,7 @@ public Response exportFileQuestura(@PathParam("idStructure") Integer idStructure guestQuesturaFormatter.setModalita(each.getMode()); guestQuesturaFormatter.setCamereOccupate(1); guestQuesturaFormatter.setCamereDisponibili(availableRooms); - guestQuesturaFormatter.setLettiDisponibili(availableBeds); + guestQuesturaFormatter.setLettiDisponibili(totalNumberOfbeds); guestQuesturaFormatter.setNumGiorniPermanenza(this.calculateLengthOfStay(each)); guestQuesturaFormatter.setDataFromHousedForQuestura(each.getHoused()); sb.append(guestQuesturaFormatter.getRowQuestura(false)); @@ -250,8 +254,15 @@ public Response exportFileSired(@PathParam("idStructure") Integer idStructure,@Q //CREO LA LISTA DEGLI HOUSED EXPORT Singoli housedExportSingleList = this.findHousedExportSingleList(housedExportList); + //NUMERO TOTALE DI LETTI NELLA STRUTTURA + List roomsList = this.roomService.findRoomsByIdStructure(idStructure); + int totalNumberOfbeds = 0; + for(Room singleRoom : roomsList){ + totalNumberOfbeds += this.roomService.findRoomById(singleRoom.getId()).getRoomType().getMaxGuests(); + } + //NUMERO TOTALE DI STANZE NELLA STRUTURA - roomsInStructure = this.roomService.findRoomsByIdStructure(idStructure).size(); + roomsInStructure = roomsList.size(); @@ -260,12 +271,12 @@ public Response exportFileSired(@PathParam("idStructure") Integer idStructure,@Q sb = new StringBuilder(); - for(HousedExportGroup each : housedExportGroupList){ + for(HousedExportGroup each : housedExportGroupList){ GuestQuesturaFormatter guestQuesturaFormatterLeader = new GuestQuesturaFormatter(); guestQuesturaFormatterLeader.setModalita(each.getHousedExportLeader().getMode()); guestQuesturaFormatterLeader.setCamereOccupate(this.calculateNumberOfOccupiedRoomsForGroup(each)); guestQuesturaFormatterLeader.setCamereDisponibili(availableRooms); - guestQuesturaFormatterLeader.setLettiDisponibili(availableBeds); + guestQuesturaFormatterLeader.setLettiDisponibili(totalNumberOfbeds); TourismType tourismType = this.getTourismTypeService().findById(each.getHousedExportLeader().getHoused().getId_tourismType()); Transport transport = this.getTransportService().findById(each.getHousedExportLeader().getHoused().getId_transport()); guestQuesturaFormatterLeader.setTipoTurismo(tourismType != null? I18nUtils.getProperty(tourismType.getName()) : ""); @@ -305,11 +316,8 @@ public Response exportFileSired(@PathParam("idStructure") Integer idStructure,@Q each.getHoused().setHousedType(anHousedType); guestQuesturaFormatter.setModalita(each.getMode()); guestQuesturaFormatter.setCamereOccupate(1); - //NUMERO TOTALE DI LETTI NELLA STANZA - //Booking booking = this.bookingService.findBookingById(each.getHoused().getGuest().getId()); - //bedsInRoom = booking.getRoom().getRoomType().getMaxGuests(); guestQuesturaFormatter.setCamereDisponibili(roomsInStructure); - guestQuesturaFormatter.setLettiDisponibili(availableBeds); + guestQuesturaFormatter.setLettiDisponibili(totalNumberOfbeds); TourismType tourismTypeSingle = this.getTourismTypeService().findById(each.getHoused().getId_tourismType()); Transport transportSingle = this.getTransportService().findById(each.getHoused().getId_transport()); guestQuesturaFormatter.setTipoTurismo(tourismTypeSingle != null? I18nUtils.getProperty(tourismTypeSingle.getName()) : "");