/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(ReservacionRequest $request) { $message = " "; $cliente = Cliente::find($request->id_cliente); $cabina = Cabina::find($request->id_cabina); $date = Funciones::fechaActual(); if ($request->fecha_reservacion >= $date) { if ($cabina != null && $cliente != null) { if (Reservacion::ValidarReservacion($request->id_cabina, $request->fecha_reservacion, $request->fecha_cancelacion) == 0) { if (Reservacion::ValidarReservacionCliente($request->id_cliente, $request->fecha_reservacion, $request->fecha_cancelacion) == 0) { if (Funciones::ValidarEspacio($cabina, $request->cant_personas)) { $reservacion = Reservacion::create(['id_cabina' => $request->id_cabina, 'id_cliente' => $request->id_cliente, 'fecha_reservacion' => $request->fecha_reservacion, 'fecha_cancelacion' => $request->fecha_cancelacion, 'cant_personas' => $request->cant_personas, 'factura' => $request->factura]); if ($request->factura == 1) { $reservacion->ingresos = Funciones::CalcularPrecio($reservacion); $reservacion->save(); } $cliente->ultimavisita = $date; $cliente->visitas = $cliente->visitas + 1; $cliente->save(); $cabinas = Cabina::all(); return view('principal.reservaciones.index', compact('cabinas')); } else { return \Redirect::back()->withErrors(["La cantidad ingresada supera el espacio disponible."]); } } else { return \Redirect::back()->withErrors(["El cliente " . $cliente->nombre . " " . $cliente->apeliidos . " ya se encuentra hospedado en otra cabina en dicha fecha."]); } } else { return \Redirect::back()->withErrors(["Ya se ha registrado una reservación para ese día o fecha, en la cabina."]); } } else { return \Redirect::back()->withErrors(["La cabina o el cliente no existen"]); } } else { return \Redirect::back()->withErrors(["No se pueden crear reservaciones con fechas anteriores."]); } }