/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(CreateReservaRequest $request) { if (Auth::user()->available()) { $fecha_inicio = (new DateTime())->setTimestamp($request->fecha_inicio); $fecha_fin = (new DateTime())->setTimestamp($request->fecha_fin); $reserva = Reserva::createReserva($fecha_inicio, $fecha_fin, $request->numero_canchas, Auth::user()->id); if (Reserva::available($reserva)) { $reserva->save(); Session::flash('message-success', 'Reserva creada con exito'); } else { Session::flash('message-error', 'No es posible reservar este horario'); } } else { Session::flash('message-error', 'Tiene reservas pendientes o su cuenta no esta habilitada para reservar'); } return Redirect::route('cliente.reservas'); }
public static function createMany($fecha_inicio, $fecha_fin, $dias, $numero_canchas, $user_id) { $fecha_inicio_int = $fecha_inicio->getTimestamp(); $fecha_fin_int = $fecha_fin->getTimestamp(); $array = array(); $hasError = false; $msg = ''; $anio = date('Y', $fecha_inicio_int); $mes = date('m', $fecha_inicio_int); $dia = date('d', $fecha_inicio_int); $hora_inicio = date('H', $fecha_inicio_int); $hora_fin = date('H', $fecha_fin_int); $dias_int = floor(($fecha_fin_int - $fecha_inicio_int) / (60 * 60 * 24)); for ($dia_int = 0; $dia_int <= $dias_int; $dia_int++) { for ($hora = $hora_inicio; $hora < $hora_fin; $hora++) { $fecha_inicio_aux = new \DateTime(); $fecha_fin_aux = new \DateTime(); $fecha_inicio_aux->setDate($anio, $mes, $dia + $dia_int); $fecha_inicio_aux->setTime($hora, 0); $fecha_fin_aux->setTimestamp($fecha_inicio_aux->getTimestamp()); $fecha_fin_aux->setTime($hora + 1, 0); if (in_array(date('N', $fecha_inicio_aux->getTimestamp()), $dias)) { $reserva = Reserva::createReserva($fecha_inicio_aux, $fecha_fin_aux, $numero_canchas, $user_id, 'completada'); if (Reserva::available($reserva)) { $array[] = $reserva; } else { $hasError = true; $msg = $msg . 'Error en la fecha ' . $fecha_inicio_aux->format('Y/m/d') . '<br>'; } } } } if (!$hasError) { foreach ($array as $item) { $item->save(); } $msg = 'Reservas realizadas con exito'; } return $msg; }
</thead> <tbody> @for($j = 9; $j < 24; $j++) <!-- controla las horas --> <tr> <td class="text-center">{{ $j . ':00'}}</td> @for($i = 0; $i < Auth::user()->visibleDays(); $i++) <td class="text-center"> {!! Form::open(['route' => 'cliente.reservas.store', 'method' => 'POST']) !!} <?php $fecha_inicio = new DateTime(); $fecha_inicio->setDate($anio, $mes, $dia + $i); $fecha_inicio->setTime($j, 0); $fecha_fin = new DateTime(); $fecha_fin->setDate($anio, $mes, $dia + $i); $fecha_fin->setTime($j + 1, 0); $reserva_aux = Reserva::createReserva($fecha_inicio, $fecha_fin, 1, Auth::user()->id); $estado = Reserva::getStatus($reserva_aux); $reservas_aux = Reserva::where('fecha_inicio', $fecha_inicio->format('Y-m-d H:i:s'))->get(); $count = $reservas_aux->count(); $count_max = Reserva::countMax($reserva_aux); ?> <div class="dropdown"> @if($estado == 'disponible') <div class="btn btn-primary dropdown-toggle" data-toggle="dropdown">Disponible @if($count > 0) <span class="badge">{{$count_max}}</span> <span class="caret"/> @endif </div> @else <a class="btn btn-danger dropdown-toggle" data-toggle="dropdown">No Disponible @if($count > 0)