Ejemplo n.º 1
0
def VerReservas(request, id):
    try:
        chofer = Chofer.objects.get(user=User(id=request.user.id))
    except:
        return render(
            request, 'error.html', {
                "mensaje": "No has ingresado al sistema como chofer",
                "redirection": "/"
            })
    try:
        viaje = Viaje.objects.get(id=id)
    except:
        return render(request, 'error.html', {
            "mensaje": "El viaje no existe",
            "redirection": "/"
        })
    elset = set([])
    for tramo in viaje.tramos.all():
        for reserva in tramo.reservas_del_tramo.all():
            elset.add(reserva)
    if viaje.conductor != chofer:
        return render(
            request, 'error.html', {
                "mensaje": "No estás autorizado para mirar este viaje",
                "redirection": "/"
            })
    return render(request, 'reservasviaje.html', {"reservas": list(elset)})
Ejemplo n.º 2
0
def VerReservas(request):
    p = Pasajero.objects.get(user=User(id=request.user.id))
    lista = []
    for reserva in Reservacion.objects.filter(pasajero=p):
        first = reserva.tramos.first()
        second = reserva.tramos.last()
        lista.append((first, second, reserva.estado_pago,
                      reserva.estado_reserva, reserva))
    return render(request, 'reservas.html', {"lista": lista})
Ejemplo n.º 3
0
def ConfirmarCancelacion(request, id):
    try:
        viaje = Viaje.objects.get(id=id)
    except Viaje.DoesNotExist:
        return render(request, 'error.html', {
            "mensaje": "El viaje no existe",
            "redirection": "/listarviajes/"
        })
    try:
        chofer = Chofer.objects.get(user=User(id=request.user.id))
    except Chofer.DoesNotExist:
        return render(
            request, 'error.html', {
                "mensaje": "No has ingresado al sistema como conductor",
                "redirection": "/"
            })
    chofer_viaje = Chofer.objects.get(user=User(id=viaje.conductor.id))
    if chofer != chofer_viaje:
        return render(
            request, 'error.html', {
                "mensaje": "No tienes permiso para realizar esta acción",
                "redirection": "/listarviajes/"
            })
    return render(request, 'confirmacion.html', {"viaje_cancelado": viaje})
Ejemplo n.º 4
0
def RechazarReserva(request, id):
    print("rechazo", id)
    try:
        chofer = Chofer.objects.get(user=User(id=request.user.id))
        reserva = Reservacion.objects.get(id=id)
    except Chofer.DoesNotExist:
        return render(request, 'error.html', {
            "mensaje": "No estás loggeado como conductor",
            "redirection": "/"
        })
    except Reservacion.DoesNotExist:
        return render(request, 'error.html', {
            "mensaje": "La reserva no existe",
            "redirection": "/"
        })
    conductor_reserva = reserva.tramos.first().viaje.conductor
    if conductor_reserva != chofer:
        return render(
            request, 'error.html', {
                "mensaje": "No tienes permiso para realizar esta acción",
                "redirection": "/listarviajes/"
            })
    if reserva.estado_reserva == Reservacion.ACEPTADO:
        for tramo in reserva.tramos.all():
            tramo.asientos_libres = tramo.asientos_libres + 1
            tramo.save()
    elif reserva.estado_reserva == Reservacion.RECHAZADO:
        return render(
            request, 'error.html', {
                "mensaje":
                "La reserva ya fue rechazada anteriormente",
                "redirection":
                "/reservasviaje/" + str(reserva.tramos.first().viaje.id)
            })
    reserva.estado_reserva = Reservacion.RECHAZADO
    reserva.save()
    viaje = Viaje.objects.get(id=reserva.tramos.first().viaje.id)
    elset = set([])
    for tramo in viaje.tramos.all():
        for reserva in tramo.reservas_del_tramo.all():
            elset.add(reserva)
    print(viaje.id)
    return render(request, 'reservasviaje.html', {
        "mensaje": "Reserva rechazada",
        "reservas": list(elset)
    })
Ejemplo n.º 5
0
def ConfirmarRechazo(request, id):
    try:
        chofer = Chofer.objects.get(user=User(id=request.user.id))
        reserva = Reservacion.objects.get(id=id)
    except Chofer.DoesNotExist:
        return render(request, 'error.html', {
            "mensaje": "No estás loggeado como conductor",
            "redirection": "/"
        })
    except Reservacion.DoesNotExist:
        return render(request, 'error.html', {
            "mensaje": "La reserva no existe",
            "redirection": "/"
        })
    conductor_reserva = reserva.tramos.first().viaje.conductor
    if conductor_reserva != chofer:
        return render(
            request, 'error.html', {
                "mensaje": "No tienes permiso para realizar esta acción",
                "redirection": "/listarviajes/"
            })
    return render(request, 'confirmacion.html', {"reserva_rechazada": reserva})
Ejemplo n.º 6
0
def ConfirmarAceptacion(request, id):
    try:
        chofer = Chofer.objects.get(user=User(id=request.user.id))
        reserva = Reservacion.objects.get(id=id)
    except Chofer.DoesNotExist:
        return render(
            request, 'error.html', {
                "mensaje": "No has ingresado al sistema como chofer",
                "redirection": "/"
            })
    except Reservacion.DoesNotExist:
        return render(request, 'error.html', {
            "mensaje": "Acción no autorizada",
            "redirection": "/listarviajes"
        })
    conductor_reserva = reserva.tramos.first().viaje.conductor
    if conductor_reserva != chofer:
        return render(request, 'error.html', {
            "mensaje": "Acción no autorizada",
            "redirection": "/listarviajes"
        })
    return render(request, 'confirmacion.html', {"reserva_aceptada": reserva})
Ejemplo n.º 7
0
def CancelarViaje(request, id):
    print("cancelo", id)
    try:
        chofer = Chofer.objects.get(user=User(id=request.user.id))
        viaje = Viaje.objects.get(id=id)
        viajes = Viaje.objects.filter(conductor=chofer)
        if viaje.conductor != chofer:
            return render(
                request, 'listarviajes.html', {
                    "viajes": viajes,
                    "mensaje": "No estás autorizado a realizar esa acción"
                })
        viaje.limpiar_reservas()
        viaje.delete()
        return render(request, 'listarviajes.html', {
            "viajes": viajes,
            "mensaje": "Viaje eliminado exitosamente"
        })
    except Viaje.DoesNotExist:
        viajes = Viaje.objects.filter(conductor=chofer)
        return render(request, 'listarviajes.html', {
            "viajes": viajes,
            "mensaje": "El viaje no existe"
        })
Ejemplo n.º 8
0
def AceptarReserva(request, id):
    print("acepto", id)
    try:
        chofer = Chofer.objects.get(user=User(id=request.user.id))
        reserva = Reservacion.objects.get(id=id)
    except Chofer.DoesNotExist:
        return render(request, 'error.html', {
            "mensaje": "No estás loggeado como conductor",
            "redirection": "/"
        })
    except Reservacion.DoesNotExist:
        return render(request, 'error.html', {
            "mensaje": "La reserva no existe",
            "redirection": "/"
        })
    conductor_reserva = reserva.tramos.first().viaje.conductor
    if conductor_reserva != chofer:
        return render(
            request, 'error.html', {
                "mensaje": "No tienes permiso para realizar esta acción",
                "redirection": "/listarviajes/"
            })
    tramos = reserva.tramos
    capacidad = True
    mensaje = "Reserva aceptada"
    if reserva.estado_reserva != Reservacion.ACEPTADO:
        for tramo in tramos.all():
            if tramo.asientos_libres <= 0:
                capacidad = False
        if capacidad:
            for tramo in tramos.all():
                tramo.asientos_libres = tramo.asientos_libres - 1
                tramo.save()
            reserva.estado_reserva = Reservacion.ACEPTADO
            reserva.save()
        else:
            mensaje = "No hay suficientes cupos disponibles"
            return render(
                request, 'error.html', {
                    "mensaje":
                    "No hay suficientes cupos disponibles",
                    "redirection":
                    "/reservasviaje/" + str(reserva.tramos.first().viaje.id)
                })

    else:
        return render(
            request, 'error.html', {
                "mensaje":
                "La reserva ya fue aceptada anterioemente",
                "redirection":
                "/reservasviaje/" + str(reserva.tramos.first().viaje.id)
            })
    viaje = Viaje.objects.get(id=reserva.tramos.first().viaje.id)
    elset = set([])
    for tramo in viaje.tramos.all():
        for reserva in tramo.reservas_del_tramo.all():
            elset.add(reserva)

    return render(request, 'reservasviaje.html', {
        "mensaje": mensaje,
        "reservas": list(elset)
    })