Exemplo n.º 1
0
 def esta_disponivel(self, reserva: Reserva, index: int) -> bool:
     '''Checa se existem choques nos horários entre 3 reservas consecutivas.'''
     if reserva.choque_de_horario(
             self.__lista[index - 1]):  # a reserva anterior dá choque
         return False
     try:
         if reserva.choque_de_horario(
                 self.__lista[index]):  # há uma reserva no mesmo horário,
             return False  # ou a reserva posterior, se existir, dá choque
     except IndexError:
         pass
     return True  # não há choques de horários
Exemplo n.º 2
0
 def existem_reservas_do_socio_no_horario(self, reserva: Reserva) -> bool:
     '''Checa se um Sócio possui uma reserva que dê choque com o horário informado.'''
     if self.esta_vazia():
         return False
     index = busca_binaria(reserva, self.__lista, 0, len(self.__lista) - 1)
     # checa se o choque foi na reserva anterior e verifica o Sócio
     if reserva.choque_de_horario(self.__lista[index - 1]):
         if self.__lista[index - 1].reservante == reserva.reservante:
             return True
     try:
         # checa se há uma reserva no mesmo horário,
         # ou se o choque foi na reserva posterior e verifica o Sócio
         if reserva.choque_de_horario(self.__lista[index]):
             if self.__lista[index].reservante == reserva.reservante:
                 return True
     except IndexError:
         pass
     return False