/** * 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; }