Пример #1
0
 def test_HorarioReservaInvalido_TiempoTotalMenor1h(self):
     ReservaInicio = datetime(year=2000,month=2,day=6,hour = 13, minute = 0, second = 0)
     ReservaFin = datetime(year=2000,month=2,day=6,hour = 13, minute = 59, second = 59)
     HoraApertura = time(hour = 12, minute = 0, second = 0)
     HoraCierre = time(hour = 18, minute = 0, second = 0)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte)
     self.assertEqual(x, (False, 'El tiempo de reserva debe ser al menos de 1 hora.'))
Пример #2
0
 def test_HorarioReservaInvalido_InicioReservacion_Mayor_FinalReservacion(self):
     ReservaInicio = datetime.now()+timedelta(minutes=1)
     ReservaFin = datetime.now()
     HoraApertura = time(hour = 0, minute = 0, second = 0)
     HoraCierre = time(hour = 23, minute = 59, second = 59)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte = 15)
     self.assertEqual(x, (False, 'El horario de inicio de reservacion debe ser menor al horario de fin de la reserva.'))
Пример #3
0
 def test_SieteDiasDeReserva(self):
     hoy=datetime.now().replace(hour = 0, minute = 0)
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=hoy
     ReservaFin=hoy + timedelta(7) - timedelta(minutes=1)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte)
     self.assertEqual(x, (True, ''))
Пример #4
0
 def test_UnDiaDeReserva_Estacionamiento_24_horas(self):
     hoy=datetime.now()
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=2)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte)
     self.assertEqual(x, (True, ''))
Пример #5
0
 def test_reservaHorarioCompletoYUnMinuto(self):
     hoy=datetime.now()
     HoraApertura=time(6,0)
     HoraCierre=time(18,0)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,6) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,18,1) + timedelta(days=2)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte)
     self.assertEqual(x, (False, 'El horario de fin de la reserva debe estar en un horario válido.'))
Пример #6
0
 def test_reservaHorarioCompleto(self):
     hoy=datetime.now()
     HoraApertura=time(6,0)
     HoraCierre=time(18,0)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,6) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,18) + timedelta(days=1)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte)
     self.assertEqual(x, (True,''))
Пример #7
0
 def test_UnDiaDeReserva_Estacionamiento_No_24_horas(self):
     hoy=datetime.now()
     HoraApertura=time(6,0)
     HoraCierre=time(18,0)
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=2)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte)
     self.assertEqual(x, (False, 'No puede haber reservas entre dos dias distintos'))
Пример #8
0
 def test_HorarioReservaValido(self):
     hoy=datetime.now()
     ReservaInicio = datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     ReservaFin = datetime(hoy.year,hoy.month,hoy.day,17) + timedelta(days=1)
     HoraApertura = time(hour = 12, minute = 0, second = 0)
     HoraCierre = time(hour = 18, minute = 0, second = 0)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte)
     self.assertEqual(x, (True, ''))
Пример #9
0
 def test_HorarioReservaInvalido_ReservaInicial_Menor_HorarioApertura(self):
     hoy=datetime.now()
     ReservaInicio = datetime(hoy.year,hoy.month,hoy.day,7) + timedelta(days=1)
     ReservaFin = datetime(hoy.year,hoy.month,hoy.day,15) + timedelta(days=1)
     HoraApertura=time(8,0)
     HoraCierre=time(18,0)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte)
     self.assertEqual(x, (False, 'El horario de inicio de reserva debe estar en un horario válido.'))
Пример #10
0
 def test_HorarioReservaInvalido_ReservaFinal_Mayor_HorarioCierre(self):
     HoraApertura = time(hour = 10, minute = 0, second = 0)
     HoraCierre = time(hour = 22, minute = 0, second = 0)
     hoy=datetime.today()
     ReservaInicio=datetime(hoy.year,hoy.month,hoy.day,17) + timedelta(days=1)
     ReservaFin=datetime(hoy.year,hoy.month,hoy.day,23) + timedelta(days=1)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte)
     self.assertEqual(x, (False, 'El horario de fin de la reserva debe estar en un horario válido.'))
Пример #11
0
 def test_SieteDiasDeReservaYUnMinuto(self):
     hoy=datetime.now().replace(hour = 0, minute = 0)
     HoraApertura=time(0,0)
     HoraCierre=time(23,59)
     ReservaInicio=hoy
     ReservaFin=hoy + timedelta(days=7,minutes=1)
     horizonte = 6
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura, HoraCierre,horizonte)
     self.assertEqual(x, (False, 'La reserva debe estar dentro de los próximos ' + str(horizonte) + ' día(s).'))
Пример #12
0
 def test_SieteDiasDeReserva(self):
     hoy = datetime.now().replace(hour=0, minute=0)
     HoraApertura = time(0, 0)
     HoraCierre = time(23, 59)
     ReservaInicio = hoy
     ReservaFin = hoy + timedelta(7) - timedelta(minutes=1)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonte)
     self.assertEqual(x, (True, ''))
Пример #13
0
 def test_HorarioReservaValido(self):
     hoy = datetime.now()
     ReservaInicio = datetime(hoy.year, hoy.month, hoy.day,
                              15) + timedelta(days=1)
     ReservaFin = datetime(hoy.year, hoy.month, hoy.day,
                           17) + timedelta(days=1)
     HoraApertura = time(hour=12, minute=0, second=0)
     HoraCierre = time(hour=18, minute=0, second=0)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonte)
     self.assertEqual(x, (True, ''))
Пример #14
0
 def test_UnDiaDeReserva_Estacionamiento_24_horas(self):
     hoy = datetime.now()
     HoraApertura = time(0, 0)
     HoraCierre = time(23, 59)
     ReservaInicio = datetime(hoy.year, hoy.month, hoy.day,
                              15) + timedelta(days=1)
     ReservaFin = datetime(hoy.year, hoy.month, hoy.day,
                           15) + timedelta(days=2)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonte)
     self.assertEqual(x, (True, ''))
Пример #15
0
 def test_reservaHorarioCompleto(self):
     hoy = datetime.now()
     HoraApertura = time(6, 0)
     HoraCierre = time(18, 0)
     ReservaInicio = datetime(hoy.year, hoy.month, hoy.day,
                              6) + timedelta(days=1)
     ReservaFin = datetime(hoy.year, hoy.month, hoy.day,
                           18) + timedelta(days=1)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonte)
     self.assertEqual(x, (True, ''))
Пример #16
0
 def test_SieteDiasDeReservaYUnMinuto(self):
     hoy = datetime.now().replace(hour=0, minute=0)
     HoraApertura = time(0, 0)
     HoraCierre = time(23, 59)
     ReservaInicio = hoy
     ReservaFin = hoy + timedelta(days=7, minutes=1)
     horizonte = 6
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonte)
     self.assertEqual(
         x, (False, 'La reserva debe estar dentro de los próximos ' +
             str(horizonte) + ' día(s).'))
Пример #17
0
 def test_UnDiaDeReserva_Estacionamiento_No_24_horas(self):
     hoy = datetime.now()
     HoraApertura = time(6, 0)
     HoraCierre = time(18, 0)
     ReservaInicio = datetime(hoy.year, hoy.month, hoy.day,
                              15) + timedelta(days=1)
     ReservaFin = datetime(hoy.year, hoy.month, hoy.day,
                           15) + timedelta(days=2)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonte)
     self.assertEqual(
         x, (False, 'No puede haber reservas entre dos dias distintos'))
Пример #18
0
 def test_reservaHorarioCompletoYUnMinuto(self):
     hoy = datetime.now()
     HoraApertura = time(6, 0)
     HoraCierre = time(18, 0)
     ReservaInicio = datetime(hoy.year, hoy.month, hoy.day,
                              6) + timedelta(days=1)
     ReservaFin = datetime(hoy.year, hoy.month, hoy.day, 18,
                           1) + timedelta(days=2)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonte)
     self.assertEqual(
         x,
         (False,
          'El horario de fin de la reserva debe estar en un horario válido.'
          ))
Пример #19
0
 def test_HorarioReservaInvalido_ReservaInicial_Menor_HorarioApertura(self):
     hoy = datetime.now()
     ReservaInicio = datetime(hoy.year, hoy.month, hoy.day,
                              7) + timedelta(days=1)
     ReservaFin = datetime(hoy.year, hoy.month, hoy.day,
                           15) + timedelta(days=1)
     HoraApertura = time(8, 0)
     HoraCierre = time(18, 0)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonte)
     self.assertEqual(
         x,
         (False,
          'El horario de inicio de reserva debe estar en un horario válido.'
          ))
Пример #20
0
 def test_HorarioReservaInvalido_ReservaFinal_Mayor_HorarioCierre(self):
     HoraApertura = time(hour=10, minute=0, second=0)
     HoraCierre = time(hour=22, minute=0, second=0)
     hoy = datetime.today()
     ReservaInicio = datetime(hoy.year, hoy.month, hoy.day,
                              17) + timedelta(days=1)
     ReservaFin = datetime(hoy.year, hoy.month, hoy.day,
                           23) + timedelta(days=1)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonte)
     self.assertEqual(
         x,
         (False,
          'El horario de fin de la reserva debe estar en un horario válido.'
          ))
Пример #21
0
 def test_HorarioReservaInvalido_InicioReservacion_Mayor_FinalReservacion(
         self):
     ReservaInicio = datetime.now() + timedelta(minutes=1)
     ReservaFin = datetime.now()
     HoraApertura = time(hour=0, minute=0, second=0)
     HoraCierre = time(hour=23, minute=59, second=59)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio,
                               ReservaFin,
                               HoraApertura,
                               HoraCierre,
                               horizonte=15)
     self.assertEqual(x, (
         False,
         'El horario de inicio de reservacion debe ser menor al horario de fin de la reserva.'
     ))
Пример #22
0
 def test_HorarioReservaInvalido_TiempoTotalMenor1h(self):
     ReservaInicio = datetime(year=2000,
                              month=2,
                              day=6,
                              hour=13,
                              minute=0,
                              second=0)
     ReservaFin = datetime(year=2000,
                           month=2,
                           day=6,
                           hour=13,
                           minute=59,
                           second=59)
     HoraApertura = time(hour=12, minute=0, second=0)
     HoraCierre = time(hour=18, minute=0, second=0)
     horizonte = 15
     x = validarHorarioReserva(ReservaInicio, ReservaFin, HoraApertura,
                               HoraCierre, horizonte)
     self.assertEqual(
         x, (False, 'El tiempo de reserva debe ser al menos de 1 hora.'))
Пример #23
0
def Mover_Reserva_buscar_nueva(request):
    
    form = MoverReservaNuevaForm()
    reserva_selec = Reserva.objects.get(id = request.session['reservaid'])
    transreser = TransReser.objects.get(reserva = reserva_selec)
    _id = reserva_selec.estacionamiento.id
    
    if request.method == 'POST':
        form = MoverReservaNuevaForm(request.POST)
        if form.is_valid():
            
            NuevoInicio   = form.cleaned_data['nuevoInicio']
            try:
                reserva_selec      = Reserva.objects.get(id = request.session['reservaid'], estado = 'Válido')
            except:
                return render(
                    request,
                    'reserva_mover_buscar_nueva.html',
                    {  "color"    : "red"
                     , 'mensaje'  : 'ID no existe o CI no corresponde al registrado en la reserva.'
                     , "form"     : form
                    }
                )
            
            NuevoFinal = NuevoInicio + (reserva_selec.finalReserva - reserva_selec.inicioReserva)
            m_validado = validarHorarioReserva(NuevoInicio, NuevoFinal, reserva_selec.estacionamiento.apertura, 
                                  reserva_selec.estacionamiento.cierre, reserva_selec.estacionamiento.horizonte)
            
            
            # Si no es valido devolvemos el request
            if not m_validado[0]:
                return render(
                    request,
                    'reserva_mover_buscar_nueva.html',
                    { 'color'  :'red'
                    , 'mensaje': m_validado[1]
                    , "form"            : form
                    , 'reserva'         : reserva_selec
                    , 'transreser'      : transreser
                    , 'billetera'       : BilleteraLogin()
                    }
                )
            
            if marzullo(_id, NuevoInicio, NuevoFinal, reserva_selec.tipo_vehiculo):
                
                diasFeriados = DiasFeriadosEscogidos.objects.filter(estacionamiento = reserva_selec.estacionamiento)
                
                reservaNueva = Reserva(
                    estacionamiento = reserva_selec.estacionamiento,
                    inicioReserva   = NuevoInicio,
                    finalReserva    = NuevoFinal,
                    estado          = reserva_selec.estado,
                    tipo_vehiculo   = reserva_selec.tipo_vehiculo,
                    cedula          = reserva_selec.cedula,
                    cedulaTipo      = reserva_selec.cedulaTipo,
                    nombre          = reserva_selec.nombre,
                    apellido        = reserva_selec.apellido,
                )
    
                montoTotal = calcular_Precio_Reserva(reservaNueva,reserva_selec.estacionamiento)
                diferencia = transreser.transaccion.monto - montoTotal
       
                request.session['finalReservaHora']    = NuevoFinal.hour
                request.session['finalReservaMinuto']  = NuevoFinal.minute
                request.session['inicioReservaHora']   = NuevoInicio.hour
                request.session['inicioReservaMinuto'] = NuevoInicio.minute
                request.session['anioinicial']         = NuevoInicio.year
                request.session['mesinicial']          = NuevoInicio.month
                request.session['diainicial']          = NuevoInicio.day
                request.session['aniofinal']           = NuevoFinal.year
                request.session['mesfinal']            = NuevoFinal.month
                request.session['diafinal']            = NuevoFinal.day
                request.session['tipo_vehiculo']       = reserva_selec.tipo_vehiculo
                request.session['nombre']              = reserva_selec.nombre
                request.session['apellido']            = reserva_selec.apellido
                request.session['cedula']              = reserva_selec.cedula
                request.session['cedulaTipo']          = reserva_selec.cedulaTipo
                request.session['monto']               = float(montoTotal)
            
            return render(
                request,
                'reserva_mover_buscar_nueva.html',
                { "form"            : form
                  ,'reserva'         : reserva_selec
                  ,'transreser'      : transreser
                  ,'billetera'       : BilleteraLogin()
                  ,'reservaNueva'    : reservaNueva
                  ,'Monto'           : montoTotal
                  ,'diferencia'      : diferencia
                  ,'mensaje'         : m_validado[1]
                }
            )
            
    return render(
        request,
        'reserva_mover_buscar_nueva.html',
        { "form"        : form,
         'reserva'      : reserva_selec,
         'transreser'   : transreser,
          'billetera'   : BilleteraLogin(),          
          }
    )
Пример #24
0
def Mover_Reserva_buscar_nueva(request):

    form = MoverReservaNuevaForm()
    reserva_selec = Reserva.objects.get(id=request.session['reservaid'])
    transreser = TransReser.objects.get(reserva=reserva_selec)
    _id = reserva_selec.estacionamiento.id

    if request.method == 'POST':
        form = MoverReservaNuevaForm(request.POST)
        if form.is_valid():

            NuevoInicio = form.cleaned_data['nuevoInicio']
            try:
                reserva_selec = Reserva.objects.get(
                    id=request.session['reservaid'], estado='Válido')
            except:
                return render(
                    request, 'reserva_mover_buscar_nueva.html', {
                        "color": "red",
                        'mensaje':
                        'ID no existe o CI no corresponde al registrado en la reserva.',
                        "form": form
                    })

            NuevoFinal = NuevoInicio + (reserva_selec.finalReserva -
                                        reserva_selec.inicioReserva)
            m_validado = validarHorarioReserva(
                NuevoInicio, NuevoFinal,
                reserva_selec.estacionamiento.apertura,
                reserva_selec.estacionamiento.cierre,
                reserva_selec.estacionamiento.horizonte)

            # Si no es valido devolvemos el request
            if not m_validado[0]:
                return render(
                    request, 'reserva_mover_buscar_nueva.html', {
                        'color': 'red',
                        'mensaje': m_validado[1],
                        "form": form,
                        'reserva': reserva_selec,
                        'transreser': transreser,
                        'billetera': BilleteraLogin()
                    })

            if marzullo(_id, NuevoInicio, NuevoFinal,
                        reserva_selec.tipo_vehiculo):

                diasFeriados = DiasFeriadosEscogidos.objects.filter(
                    estacionamiento=reserva_selec.estacionamiento)

                reservaNueva = Reserva(
                    estacionamiento=reserva_selec.estacionamiento,
                    inicioReserva=NuevoInicio,
                    finalReserva=NuevoFinal,
                    estado=reserva_selec.estado,
                    tipo_vehiculo=reserva_selec.tipo_vehiculo,
                    cedula=reserva_selec.cedula,
                    cedulaTipo=reserva_selec.cedulaTipo,
                    nombre=reserva_selec.nombre,
                    apellido=reserva_selec.apellido,
                )

                montoTotal = calcular_Precio_Reserva(
                    reservaNueva, reserva_selec.estacionamiento)
                diferencia = transreser.transaccion.monto - montoTotal

                request.session['finalReservaHora'] = NuevoFinal.hour
                request.session['finalReservaMinuto'] = NuevoFinal.minute
                request.session['inicioReservaHora'] = NuevoInicio.hour
                request.session['inicioReservaMinuto'] = NuevoInicio.minute
                request.session['anioinicial'] = NuevoInicio.year
                request.session['mesinicial'] = NuevoInicio.month
                request.session['diainicial'] = NuevoInicio.day
                request.session['aniofinal'] = NuevoFinal.year
                request.session['mesfinal'] = NuevoFinal.month
                request.session['diafinal'] = NuevoFinal.day
                request.session['tipo_vehiculo'] = reserva_selec.tipo_vehiculo
                request.session['nombre'] = reserva_selec.nombre
                request.session['apellido'] = reserva_selec.apellido
                request.session['cedula'] = reserva_selec.cedula
                request.session['cedulaTipo'] = reserva_selec.cedulaTipo
                request.session['monto'] = float(montoTotal)

            return render(
                request, 'reserva_mover_buscar_nueva.html', {
                    "form": form,
                    'reserva': reserva_selec,
                    'transreser': transreser,
                    'billetera': BilleteraLogin(),
                    'reservaNueva': reservaNueva,
                    'Monto': montoTotal,
                    'diferencia': diferencia,
                    'mensaje': m_validado[1]
                })

    return render(
        request, 'reserva_mover_buscar_nueva.html', {
            "form": form,
            'reserva': reserva_selec,
            'transreser': transreser,
            'billetera': BilleteraLogin(),
        })