Example #1
0
 /**
  * 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');
 }
Example #2
0
 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;
 }