public function validarNuevasFechas($fecha_inicio, $fecha_fin, $idhabitacion) { $disponible = disponibilidad::where('idhabitacion', $idhabitacion)->where(function ($q) use($fecha_inicio, $fecha_fin) { $q->whereBetween('fecha_inicio', array($fecha_inicio, $fecha_fin))->orWhereBetween('fecha_fin', array($fecha_inicio, $fecha_fin))->orWhere(function ($q) use($fecha_inicio, $fecha_fin) { $q->where("disponibilidad.fecha_inicio", "<=", $fecha_inicio)->where("disponibilidad.fecha_fin", ">=", $fecha_fin); }); })->where('estado', 'Habilitado')->where('identidad', Session::get("idEnt"))->first(); if (empty($disponible)) { return true; } else { return false; } }
public function editarOcupacion(Request $request) { $hab = habitacionesPerfil::select('id')->where('codigo', $request['codigo'])->first(); $disp = new disponibilidad(); $disponibilidad = new disponibilidad(); $fecha_inicio = Carbon::parse($request['fecha_inicio']); $fecha_fin = Carbon::parse($request['fecha_fin']); $validez = $disp->validarFechas($fecha_inicio, $fecha_fin, $hab->id, $request['id']); if (!$validez) { $response = ['message' => "Fechas solapadas con otra ocupación", 'type' => 'danger', 'status' => 608]; $statusCode = 400; return Response::json($response, $statusCode); } else { try { // Pasando las fechas al formato correcto YYYY-MM-DD 00:00:00 $arrayUpdate = ['fecha_inicio' => $fecha_inicio->toDateTimeString(), 'fecha_fin' => $fecha_fin->toDateTimeString()]; $disponibilidad = disponibilidad::where('id', $request['id'])->update($arrayUpdate); if ($disponibilidad) { $message = 'Ocupación actualizada con éxito.'; $statusCode = 200; } else { $message = 'Error al editar'; $statusCode = 400; } $response = ['message' => $message, 'type' => 'success']; } catch (Exception $e) { $response = ["error" => $e->getMessage()]; $statusCode = 400; } finally { return Response::json($response, $statusCode); } } }