Laravel - Problema de Logica, Alquiler

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado 1 puesto en Laravel (en relación al último mes)
Gráfica de Laravel

Problema de Logica, Alquiler

Publicado por Katia (5 intervenciones) el 28/11/2020 10:46:35
Hola, estoy armando un sistema de alquileres de cancha y estoy teniendo problemas con la lógica del mismo...

Tengo las tabla canchas... donde almaceno la canchas de un complejo... pero no todos mis clientes tienen la misma configuración y quisiera hacerlo de manera dinámico.

por ejemplo tengo 3 clientes...

1) tiene 4 canchas chicas...ls cuales une para alquilar 1 mediana
2) tiene 3 canchas chicas... las cuales une para alquilar 1 mediana
3) tiene 8 canchas chicas... las cuales une para alquilar 2 medianas o 1 grande...


de momento tengo la siguiente base de datos:
reservas: id - id_cancha - id_usuario - dia - hora_inicio - hora_fin
canchas: id - nombre

de manera estatica con el ejemplo 1.... verifico que tenga disponible el día... la hora de inicio y fin, la cancha seleccionada y si no esta ocupada, la registre:

1
2
3
4
5
6
7
$agenda = $agenda = Booking::where('id_field', $field)
                    ->whereDate('day', $fecha)
                    ->where(function ($q) use ($horaInicial, $horaFinal) {
                       return $q->whereBetween('hour_start', [$horaInicial, $horaFinal])
                                ->orWhereBetween('hour_end', [$horaInicial, $horaFinal]);
                   })
                  ->first();

si todo esta bien... lo registra.

1
2
3
4
5
6
7
8
9
if($this->validarFecha($input["txtFechaInicio"], $input["txtHoraInicio"], $input["txtHoraFinal"], $input["field"])){
    $agenda = Booking::create([
        "id_field"=>$input["field"],
        "id_user"=>$input["ddlUsuarios"],
        "day"=>$input["txtFechaInicio"],
        "hour_start"=>$input["txtHoraInicio"],
        "hour_end"=>$input["txtHoraFinal"],
        "observation"=>$input["txtDescripcion"]
    ]);

ahora bien... yo hice de manera estatica... que el ejemplo 1 tenga... 4 canchas (chicas) y 1 mediana...en total registre 5 canchas... e hice la misma comprobación pero que ignore el id de cancha así si alguna otra esta ocupada en ese dia y horario... no deje reservar...

y que si el ID enviado de la cancha seleccionada es el 5... ejecute 4 veces la misma consulta...

hasta acá todo bien... el problema es que no es igual en todos mis clientes... y quisiera agregar de manera dinamica... que cada uno agregue sus canchas y cuales pertenecen a otra cancha... pero no me estoy dando maña para hacer el diseño de esto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder