Advertisement
Dicuco1

OccupiedDouble/SingleRooms

Mar 28th, 2024 (edited)
841
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.63 KB | None | 0 0
  1. @Override
  2.     public int occupiedDoubleRooms(Long hotelCode, LocalDate date) throws BookingServiceException {
  3.          if (date == null) {
  4.                 throw new BookingServiceException("La fecha no puede ser nula.");
  5.             }
  6.             if (hotelCode == null) {
  7.                 throw new BookingServiceException("El código de hotel no puede ser nulo.");
  8.             }
  9.  
  10.             EntityManager em = emf.createEntityManager();
  11.             EntityTransaction et = em.getTransaction();
  12.             et.begin();
  13.             try {
  14.  
  15.                 HotelJPADAO hotelDAO = daoFactory.generateHotelJPADAO(em);
  16.                 Hotel hotel = hotelDAO.findById(hotelCode);
  17.                 if (hotel == null) {
  18.                     throw new BookingServiceException("Hotel no encontrado con el código: " + hotelCode);
  19.                 }
  20.  
  21.                 List<Booking> bookings = hotel.getBookings();
  22.                 int occupiedRooms = 0;
  23.                 for (Booking booking : bookings) {
  24.                     if ((booking.getDepartureDate().isAfter(date)||booking.getDepartureDate().isEqual(date))&&((booking.getArrivalDate().isBefore(date))||booking.getArrivalDate().isEqual(date))&& booking.getNumberOfPeople()==2) {
  25.                         occupiedRooms++;
  26.                     }
  27.                 }
  28.                 et.commit();
  29.                 return occupiedRooms;
  30.             } catch (RuntimeException e) {
  31.                 et.rollback();
  32.                 em.close();
  33.                 throw new BookingServiceException("Error al obtener las habitaciones dobles ocupadas.", e);
  34.             } finally {
  35.                 em.close();
  36.             }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement