diff --git a/app/Http/Controllers/PrestamoController.php b/app/Http/Controllers/PrestamoController.php index 1c37158..9240603 100644 --- a/app/Http/Controllers/PrestamoController.php +++ b/app/Http/Controllers/PrestamoController.php @@ -57,14 +57,10 @@ class PrestamoController extends Controller */ public function store(Request $request) { - // Si el solicitante es el chofer, eliminamos chofer_id del request para evitar validación innecesaria - if ($request->has('solicitante_es_chofer') && $request->input('solicitante_es_chofer')) { - $request->request->remove('chofer_id'); - } - // Validación de datos - $rules = [ + $request->validate([ 'nombre_solicitante' => 'required|string|max:255', + 'chofer_id' => 'required|exists:choferes,id', 'destino' => 'required|string|max:255', 'fecha_hora_salida' => 'required|date', 'fecha_hora_llegada' => 'required|date', @@ -72,35 +68,13 @@ class PrestamoController extends Controller 'domicilio' => 'required|string|max:255', 'numero_personas' => 'required|integer', 'vehiculo_id' => 'required|exists:tipos_veiculos,id' - ]; - - // Validación condicional para el tipo de licencia del solicitante - if ($request->has('solicitante_es_chofer') && $request->input('solicitante_es_chofer')) { - $rules['solicitante_tipo_licencia'] = 'required|string|max:255'; - } else { - // Si el solicitante NO es el chofer, el chofer_id es requerido - $rules['chofer_id'] = 'required|exists:choferes,id'; - } - - $request->validate($rules); + ]); // Preparar los datos $datos = $request->all(); - // Guardar si el solicitante es el chofer (true/false) - $datos['chofer'] = $request->has('solicitante_es_chofer') ? 1 : 0; - - // Si el solicitante es el chofer, asegúrate de que chofer_id sea null - if ($datos['chofer']) { - $datos['chofer_id'] = null; - } else { - // Si el solicitante NO es el chofer, asegúrate de que solicitante_tipo_licencia sea null - $datos['solicitante_tipo_licencia'] = null; - } - - // Sobrescribir el nombre del solicitante con el nombre del usuario autenticado (si aplica) - // Puedes decidir si quieres que el nombre del solicitante en la tabla sea siempre el del usuario logueado o el que ingresa en el formulario. - // Si quieres usar el del usuario logueado, descomenta la siguiente línea: - // $datos['nombre_solicitante'] = auth()->user()->name; + $datos['chofer'] = $request->has('chofer') ? 1 : 0; + // Sobrescribir el nombre del solicitante con el nombre del usuario autenticado + $datos['nombre_solicitante'] = auth()->user()->name; $prestamo = new Prestamo($datos); $prestamo->estado = 'pendiente'; @@ -133,13 +107,8 @@ class PrestamoController extends Controller */ public function update(Request $request, $id) { - // Si el solicitante es el chofer, eliminamos chofer_id del request para evitar validación innecesaria - if ($request->has('solicitante_es_chofer') && $request->input('solicitante_es_chofer')) { - $request->request->remove('chofer_id'); - } - // Validación de datos - $rules = [ + $request->validate([ 'nombre_solicitante' => 'required|string|max:255', 'destino' => 'required|string|max:255', 'fecha_hora_salida' => 'required|date', @@ -147,41 +116,17 @@ class PrestamoController extends Controller 'motivo' => 'required|string|max:255', 'domicilio' => 'required|string|max:255', 'numero_personas' => 'required|integer', - 'vehiculo_id' => 'required|exists:tipos_veiculos,id' - ]; - - // Validación condicional para el tipo de licencia del solicitante - if ($request->has('solicitante_es_chofer') && $request->input('solicitante_es_chofer')) { - $rules['solicitante_tipo_licencia'] = 'required|string|max:255'; - } else { - // Si el solicitante NO es el chofer, el chofer_id es requerido - $rules['chofer_id'] = 'required|exists:choferes,id'; - } - - $request->validate($rules); - - $prestamo = Prestamo::findOrFail($id); - $prestamo->nombre_solicitante = $request->nombre_solicitante; - $prestamo->destino = $request->destino; - $prestamo->fecha_hora_salida = $request->fecha_hora_salida; - $prestamo->fecha_hora_llegada = $request->fecha_hora_llegada; - $prestamo->motivo = $request->motivo; - $prestamo->domicilio = $request->domicilio; - $prestamo->numero_personas = $request->numero_personas; - - // Guardar si el solicitante es el chofer (true/false) - $prestamo->chofer = $request->has('solicitante_es_chofer') ? 1 : 0; - - // Si el solicitante es el chofer, asegúrate de que chofer_id sea null y guarda el tipo de licencia - if ($prestamo->chofer) { - $prestamo->chofer_id = null; - $prestamo->solicitante_tipo_licencia = $request->solicitante_tipo_licencia; - } else { - // Si el solicitante NO es el chofer, asegúrate de que solicitante_tipo_licencia sea null y guarda el chofer_id - $prestamo->solicitante_tipo_licencia = null; - $prestamo->chofer_id = $request->chofer_id; - } + ]); + $prestamo = Prestamo::findOrFail($id); // Encuentra el préstamo por ID + $prestamo->nombre_solicitante = $request->nombre_solicitante; // Actualiza el nombre del solicitante + $prestamo->destino = $request->destino; // Actualiza el destino + $prestamo->fecha_hora_salida = $request->fecha_hora_salida; // Actualiza la fecha y hora de salida + $prestamo->fecha_hora_llegada = $request->fecha_hora_llegada; // Actualiza la fecha y hora de llegada + $prestamo->motivo = $request->motivo; // Actualiza el motivo + $prestamo->domicilio = $request->domicilio; // Actualiza el domicilio + $prestamo->numero_personas = $request->numero_personas; // Actualiza el número de personas + $prestamo->chofer = $request->has('chofer') ? 1 : 0; // Manejo del checkbox $prestamo->eliminado = 0; // Cambia el estado a activo si se está editando $prestamo->save(); // Guarda los cambios diff --git a/database/migrations/2025_05_30_142652_add_estado_to_prestamos_table.php b/database/migrations/2025_04_01_191325_add_estado_to_prestamos_table.php similarity index 61% rename from database/migrations/2025_05_30_142652_add_estado_to_prestamos_table.php rename to database/migrations/2025_04_01_191325_add_estado_to_prestamos_table.php index 14545cb..1384d82 100644 --- a/database/migrations/2025_05_30_142652_add_estado_to_prestamos_table.php +++ b/database/migrations/2025_04_01_191325_add_estado_to_prestamos_table.php @@ -9,20 +9,22 @@ return new class extends Migration /** * Run the migrations. */ - public function up(): void + public function up() { Schema::table('prestamos', function (Blueprint $table) { - $table->string('estado')->default('pendiente')->after('vehiculo_id'); + $table->string('estado')->default('pendiente'); }); } /** * Reverse the migrations. */ - public function down(): void - { - Schema::table('prestamos', function (Blueprint $table) { + public function down() +{ + Schema::table('prestamos', function (Blueprint $table) { + if (Schema::hasColumn('prestamos', 'estado')) { $table->dropColumn('estado'); - }); + } + }); } }; diff --git a/database/migrations/2025_05_30_144919_add_solicitante_tipo_licencia_to_prestamos_table.php b/database/migrations/2025_05_30_144919_add_solicitante_tipo_licencia_to_prestamos_table.php deleted file mode 100644 index d7ac3f5..0000000 --- a/database/migrations/2025_05_30_144919_add_solicitante_tipo_licencia_to_prestamos_table.php +++ /dev/null @@ -1,28 +0,0 @@ -string('solicitante_tipo_licencia')->nullable()->after('chofer_id'); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('prestamos', function (Blueprint $table) { - $table->dropColumn('solicitante_tipo_licencia'); - }); - } -}; diff --git a/resources/views/prestamosCrearEditar.blade.php b/resources/views/prestamosCrearEditar.blade.php index 1e63289..8e1fcfa 100644 --- a/resources/views/prestamosCrearEditar.blade.php +++ b/resources/views/prestamosCrearEditar.blade.php @@ -203,34 +203,18 @@
- chofer : false) ? 'checked' : '' }} onchange="toggleSolicitanteChofer()"> - -
- - @@ -252,18 +236,12 @@ @endsection