From 54d76658f8a6e1e723b37516c638809d6e276ece Mon Sep 17 00:00:00 2001 From: TheSilva7 Date: Thu, 22 May 2025 22:15:32 -0600 Subject: [PATCH] Servicios Funcionaminetos Exclusivos para Jorge y restricciones, agregamos vehiculos al CRUD de prestamos y choferes para cuando marquen la casilla de "requiere chofer?" --- app/Exports/ChoferesExport.php | 24 +++ app/Http/Controllers/ChoferController.php | 97 +++++++++++ app/Http/Controllers/PrestamoController.php | 35 +++- app/Http/Kernel.php | 1 + app/Http/Middleware/AdminOrServiciosRole.php | 23 +++ app/Http/Middleware/CheckAdminRole.php | 5 +- app/Models/Chofer.php | 18 +++ app/Models/prestamo.php | 8 +- app/Providers/AuthServiceProvider.php | 11 +- ...25_03_27_174121_create_prestamos_table.php | 1 + ...8_182126_add_estado_to_prestamos_table.php | 28 ---- ...8_183038_add_estado_to_prestamos_table.php | 28 ---- ...1_191325_add_estado_to_prestamos_table.php | 15 +- ...025_05_22_205902_create_chofers_table.php} | 19 +-- ...12123_add_chofer_id_to_prestamos_table.php | 25 +++ resources/views/choferes.blade.php | 95 +++++++++++ resources/views/choferesCrearEditar.blade.php | 62 +++++++ .../views/exports/choferes-pdf.blade.php | 55 +++++++ resources/views/layouts/dashboard.blade.php | 4 +- resources/views/prestamos.blade.php | 7 + .../views/prestamosCrearEditar.blade.php | 52 +++++- resources/views/tiposLicencia.blade.php | 152 ------------------ .../views/tiposLicenciaCrearEditar.blade.php | 85 ---------- routes/web.php | 72 ++++----- 24 files changed, 556 insertions(+), 366 deletions(-) create mode 100644 app/Exports/ChoferesExport.php create mode 100644 app/Http/Controllers/ChoferController.php create mode 100644 app/Http/Middleware/AdminOrServiciosRole.php create mode 100644 app/Models/Chofer.php delete mode 100644 database/migrations/2025_03_28_182126_add_estado_to_prestamos_table.php delete mode 100644 database/migrations/2025_03_28_183038_add_estado_to_prestamos_table.php rename database/migrations/{2025_03_28_175646_add_estado_to_prestamos_table.php => 2025_05_22_205902_create_chofers_table.php} (53%) create mode 100644 database/migrations/2025_05_22_212123_add_chofer_id_to_prestamos_table.php create mode 100644 resources/views/choferes.blade.php create mode 100644 resources/views/choferesCrearEditar.blade.php create mode 100644 resources/views/exports/choferes-pdf.blade.php delete mode 100644 resources/views/tiposLicencia.blade.php delete mode 100644 resources/views/tiposLicenciaCrearEditar.blade.php diff --git a/app/Exports/ChoferesExport.php b/app/Exports/ChoferesExport.php new file mode 100644 index 0000000..cb9f25a --- /dev/null +++ b/app/Exports/ChoferesExport.php @@ -0,0 +1,24 @@ +get(); + } + + public function headings(): array + { + return [ + 'ID', + 'Nombre', + 'Tipo de Licencia', + ]; + } +} diff --git a/app/Http/Controllers/ChoferController.php b/app/Http/Controllers/ChoferController.php new file mode 100644 index 0000000..94fd693 --- /dev/null +++ b/app/Http/Controllers/ChoferController.php @@ -0,0 +1,97 @@ + null]); + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + $request->validate([ + 'nombre' => 'required|string|max:255', + 'tipo_licencia' => 'required|string|max:255', + ]); + + Chofer::create($request->all()); + return redirect()->route('choferes.index')->with('success', 'Chofer creado exitosamente.'); + } + + /** + * Display the specified resource. + */ + public function show(Chofer $chofer) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + $chofer = Chofer::findOrFail($id); + return view('choferesCrearEditar', compact('chofer')); + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id) + { + $request->validate([ + 'nombre' => 'required|string|max:255', + 'tipo_licencia' => 'required|string|max:255', + ]); + + $chofer = Chofer::findOrFail($id); + $chofer->update($request->all()); + return redirect()->route('choferes.index')->with('success', 'Chofer actualizado exitosamente.'); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + $chofer = Chofer::findOrFail($id); + $chofer->delete(); + return redirect()->route('choferes.index')->with('success', 'Chofer eliminado exitosamente.'); + } + + public function exportExcel() + { + return \Maatwebsite\Excel\Facades\Excel::download(new \App\Exports\ChoferesExport, 'choferes.xlsx'); + } + + public function exportPDF() + { + $choferes = \App\Models\Chofer::all(); + $pdf = \PDF::loadView('exports.choferes-pdf', ['choferes' => $choferes]); + return $pdf->download('choferes.pdf'); + } +} diff --git a/app/Http/Controllers/PrestamoController.php b/app/Http/Controllers/PrestamoController.php index 5490623..c06ebbf 100644 --- a/app/Http/Controllers/PrestamoController.php +++ b/app/Http/Controllers/PrestamoController.php @@ -40,7 +40,13 @@ class PrestamoController extends Controller */ public function create() { - return view('prestamosCrearEditar', ['prestamo' => null]); // No se necesita pasar préstamos + $vehiculos = \App\Models\tiposVeiculos::where('status', true)->get(); + $choferes = \App\Models\Chofer::all(); + return view('prestamosCrearEditar', [ + 'prestamo' => null, + 'vehiculos' => $vehiculos, + 'choferes' => $choferes + ]); } /** @@ -48,16 +54,27 @@ class PrestamoController extends Controller */ public function store(Request $request) { + // Validación de datos + $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', + 'motivo' => 'required|string|max:255', + 'domicilio' => 'required|string|max:255', + 'numero_personas' => 'required|integer', + 'vehiculo_id' => 'required|exists:tipos_veiculos,id' + ]); + // Preparar los datos $datos = $request->all(); - $datos['chofer'] = $request->has('chofer') ? 1 : 0; // Convertir 'on' a 1, o ausencia a 0 + $datos['chofer'] = $request->has('chofer') ? 1 : 0; $prestamo = new Prestamo($datos); - $prestamo->estado = 'pendiente'; // Estado inicial + $prestamo->estado = 'pendiente'; $prestamo->save(); - // Aquí puedes agregar notificaciones para los administradores - return redirect()->route('prestamos.index') ->with('success', 'Préstamo solicitado correctamente. Esperando aprobación.'); } @@ -68,7 +85,13 @@ class PrestamoController extends Controller public function edit($id) { $prestamo = Prestamo::findOrFail($id); // Busca el préstamo por ID - return view('prestamosCrearEditar', ['prestamo' => $prestamo]); // Pasa el préstamo a la vista + $vehiculos = \App\Models\tiposVeiculos::where('status', true)->get(); + $choferes = \App\Models\Chofer::all(); + return view('prestamosCrearEditar', [ + 'prestamo' => $prestamo, + 'vehiculos' => $vehiculos, + 'choferes' => $choferes + ]); // Pasa el préstamo a la vista } /** diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 81a033f..0496971 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -67,5 +67,6 @@ class Kernel extends HttpKernel 'profesor' => \App\Http\Middleware\CheckProfesorRole::class, 'admin' => \App\Http\Middleware\CheckAdminRole::class, 'servicios' => \App\Http\Middleware\CheckServiciosRole::class, + 'adminOrServicios' => \App\Http\Middleware\AdminOrServiciosRole::class, ]; } diff --git a/app/Http/Middleware/AdminOrServiciosRole.php b/app/Http/Middleware/AdminOrServiciosRole.php new file mode 100644 index 0000000..87c506f --- /dev/null +++ b/app/Http/Middleware/AdminOrServiciosRole.php @@ -0,0 +1,23 @@ +check() || !in_array(auth()->user()->rol, ['admin', 'servicios'])) { + return redirect()->route('dashboard')->with('error', 'No tienes permisos para acceder a esta sección.'); + } + return $next($request); +} +} \ No newline at end of file diff --git a/app/Http/Middleware/CheckAdminRole.php b/app/Http/Middleware/CheckAdminRole.php index a5911b8..97c5764 100644 --- a/app/Http/Middleware/CheckAdminRole.php +++ b/app/Http/Middleware/CheckAdminRole.php @@ -11,9 +11,10 @@ class CheckAdminRole public function handle(Request $request, Closure $next): Response { if (!auth()->check() || auth()->user()->rol !== 'admin') { - return redirect('/')->with('error', 'No tienes permisos de administrador para acceder a esta sección.'); + return redirect()->route('dashboard') + ->with('error', 'No tienes permisos de administrador para acceder a esta sección.'); } return $next($request); } -} \ No newline at end of file +} diff --git a/app/Models/Chofer.php b/app/Models/Chofer.php new file mode 100644 index 0000000..c185392 --- /dev/null +++ b/app/Models/Chofer.php @@ -0,0 +1,18 @@ +belongsTo(\App\Models\tiposVeiculos::class, 'vehiculo_id'); +} } diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 5522aa2..eaca45b 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -4,6 +4,7 @@ namespace App\Providers; // use Illuminate\Support\Facades\Gate; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; +use Illuminate\Support\Facades\Gate; class AuthServiceProvider extends ServiceProvider { @@ -20,9 +21,11 @@ class AuthServiceProvider extends ServiceProvider * Register any authentication / authorization services. */ public function boot(): void - { - $this->registerPolicies(); +{ + $this->registerPolicies(); - // - } + Gate::define('gestionar-prestamos', function ($user) { + return in_array($user->rol, ['admin', 'servicios']); + }); +} } diff --git a/database/migrations/2025_03_27_174121_create_prestamos_table.php b/database/migrations/2025_03_27_174121_create_prestamos_table.php index 2ceb81f..3ae0b9b 100644 --- a/database/migrations/2025_03_27_174121_create_prestamos_table.php +++ b/database/migrations/2025_03_27_174121_create_prestamos_table.php @@ -21,6 +21,7 @@ return new class extends Migration $table->string('domicilio'); $table->integer('numero_personas'); $table->boolean('chofer')->default(false); // Opción de sí (true) o no (false) + $table->foreignId('vehiculo_id')->constrained('tipos_veiculos')->onDelete('cascade'); $table->timestamps(); }); } diff --git a/database/migrations/2025_03_28_182126_add_estado_to_prestamos_table.php b/database/migrations/2025_03_28_182126_add_estado_to_prestamos_table.php deleted file mode 100644 index af9986e..0000000 --- a/database/migrations/2025_03_28_182126_add_estado_to_prestamos_table.php +++ /dev/null @@ -1,28 +0,0 @@ -string('estado')->default('pendiente'); // pendiente, aceptado, rechazado - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('prestamos', function (Blueprint $table) { - $table->dropColumn('estado'); - }); - } -}; diff --git a/database/migrations/2025_04_01_191325_add_estado_to_prestamos_table.php b/database/migrations/2025_04_01_191325_add_estado_to_prestamos_table.php index c5d3a01..1384d82 100644 --- a/database/migrations/2025_04_01_191325_add_estado_to_prestamos_table.php +++ b/database/migrations/2025_04_01_191325_add_estado_to_prestamos_table.php @@ -9,21 +9,22 @@ return new class extends Migration /** * Run the migrations. */ - public function up(): void + public function up() { Schema::table('prestamos', function (Blueprint $table) { - // $table->enum('estado', ['pendiente', 'aceptado', 'rechazado'])->default('pendiente')->after('chofer'); - // Línea comentada porque la columna ya existe + $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_03_28_175646_add_estado_to_prestamos_table.php b/database/migrations/2025_05_22_205902_create_chofers_table.php similarity index 53% rename from database/migrations/2025_03_28_175646_add_estado_to_prestamos_table.php rename to database/migrations/2025_05_22_205902_create_chofers_table.php index af9986e..e81227b 100644 --- a/database/migrations/2025_03_28_175646_add_estado_to_prestamos_table.php +++ b/database/migrations/2025_05_22_205902_create_chofers_table.php @@ -9,20 +9,21 @@ return new class extends Migration /** * Run the migrations. */ - public function up(): void - { - Schema::table('prestamos', function (Blueprint $table) { - // - }); - } + public function up() +{ + Schema::create('choferes', function (Blueprint $table) { + $table->id(); + $table->string('nombre'); + $table->string('tipo_licencia'); + $table->timestamps(); + }); +} /** * Reverse the migrations. */ public function down(): void { - Schema::table('prestamos', function (Blueprint $table) { - // - }); + Schema::dropIfExists('choferes'); } }; diff --git a/database/migrations/2025_05_22_212123_add_chofer_id_to_prestamos_table.php b/database/migrations/2025_05_22_212123_add_chofer_id_to_prestamos_table.php new file mode 100644 index 0000000..c7a6195 --- /dev/null +++ b/database/migrations/2025_05_22_212123_add_chofer_id_to_prestamos_table.php @@ -0,0 +1,25 @@ +foreignId('chofer_id')->nullable()->constrained('choferes')->onDelete('set null'); + }); +} +public function down() +{ + Schema::table('prestamos', function (Blueprint $table) { + $table->dropForeign(['chofer_id']); + $table->dropColumn('chofer_id'); + }); +} +}; diff --git a/resources/views/choferes.blade.php b/resources/views/choferes.blade.php new file mode 100644 index 0000000..43b0e83 --- /dev/null +++ b/resources/views/choferes.blade.php @@ -0,0 +1,95 @@ +@extends('layouts.dashboard') + +@section('content') +
+ @if(session('success')) + + @endif + @if(session('error')) + + @endif +
+
+

Gestión de Choferes

+ +
+
+
+
+ +
+ +
+
+ + @if(request('busqueda')) + Limpiar + @endif +
+
+
+ + + + + + + + + + + @foreach($choferes as $chofer) + + + + + + + @endforeach + +
IDNombreTipo de LicenciaAcciones
{{ $chofer->id }} + + {{ $chofer->nombre }} + {{ $chofer->tipo_licencia }} +
+ +
+ @csrf + @method('DELETE') + +
+
+
+
+
+
+ +@endsection diff --git a/resources/views/choferesCrearEditar.blade.php b/resources/views/choferesCrearEditar.blade.php new file mode 100644 index 0000000..320a209 --- /dev/null +++ b/resources/views/choferesCrearEditar.blade.php @@ -0,0 +1,62 @@ +{{-- Start of Selection --}} +@extends('layouts.dashboard') + +@section('content') +
+
+
+
+
+

+ {{ isset($chofer) ? 'Editar Chofer' : 'Nuevo Chofer' }} +

+
+ +
+
+ @if($errors->any()) +
+
+ +
+
    + @foreach($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif +
+ @csrf + @if(isset($chofer)) + @method('PUT') + @endif +
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ Cancelar + +
+
+
+
+
+
+
+@endsection +{{-- End of Selection --}} diff --git a/resources/views/exports/choferes-pdf.blade.php b/resources/views/exports/choferes-pdf.blade.php new file mode 100644 index 0000000..13a5825 --- /dev/null +++ b/resources/views/exports/choferes-pdf.blade.php @@ -0,0 +1,55 @@ + + + + Choferes + + + +
+

Reporte de Choferes

+

Fecha de generación: {{ date('d/m/Y H:i:s') }}

+
+ + + + + + + + + + + + @foreach($choferes as $chofer) + + + + + + + @endforeach + +
IDNombreTipo de LicenciaFecha de Creación
{{ $chofer->id }}{{ $chofer->nombre }}{{ $chofer->tipo_licencia }}{{ $chofer->created_at->format('d/m/Y') }}
+ + diff --git a/resources/views/layouts/dashboard.blade.php b/resources/views/layouts/dashboard.blade.php index 80dc624..ef64470 100644 --- a/resources/views/layouts/dashboard.blade.php +++ b/resources/views/layouts/dashboard.blade.php @@ -163,9 +163,9 @@
  • - + - Tipos de Licencia + Choferes
  • diff --git a/resources/views/prestamos.blade.php b/resources/views/prestamos.blade.php index a262638..c922cd0 100644 --- a/resources/views/prestamos.blade.php +++ b/resources/views/prestamos.blade.php @@ -86,6 +86,7 @@ Número + Vehiculo Nombre Solicitante Destino Fecha y Hora Salida @@ -110,6 +111,12 @@ {{ $prestamo->nombre_solicitante }} + +
    + + {{ $prestamo->vehiculo->nombre }} +
    +
    diff --git a/resources/views/prestamosCrearEditar.blade.php b/resources/views/prestamosCrearEditar.blade.php index 71ce1ac..8e1fcfa 100644 --- a/resources/views/prestamosCrearEditar.blade.php +++ b/resources/views/prestamosCrearEditar.blade.php @@ -61,6 +61,30 @@ @enderror
    + +
    + +
    + + +
    + @error('vehiculo_id') +

    {{ $message }}

    + @enderror +
    +
    -@endsection \ No newline at end of file + + +@endsection diff --git a/resources/views/tiposLicencia.blade.php b/resources/views/tiposLicencia.blade.php deleted file mode 100644 index af97208..0000000 --- a/resources/views/tiposLicencia.blade.php +++ /dev/null @@ -1,152 +0,0 @@ -@extends('layouts.dashboard') - -@section('content') -
    - - @if(session('success')) - - @endif - - @if(session('error')) - - @endif - -
    - - - - -
    -
    -
    - -
    - -
    -
    - - @if(request('busqueda')) - - Limpiar - - @endif -
    -
    - - -
    - - - - - - - - - - - @foreach($tiposLicencias as $tipoLicencia) - - - - - - - @endforeach - -
    IDTipo de LicenciaEstadoAcciones
    {{ $tipoLicencia->id }} - - {{ $tipoLicencia->tipoLicencia }} - - @if($tipoLicencia->eliminado == 1) - - Activo - - @else - - Inactivo - - @endif - -
    - @if($tipoLicencia->eliminado == 0) - - - - @else - - - -
    - @csrf - @method('DELETE') - -
    - @endif -
    -
    -
    -
    -
    - - -@endsection diff --git a/resources/views/tiposLicenciaCrearEditar.blade.php b/resources/views/tiposLicenciaCrearEditar.blade.php deleted file mode 100644 index 140a90e..0000000 --- a/resources/views/tiposLicenciaCrearEditar.blade.php +++ /dev/null @@ -1,85 +0,0 @@ -{{-- Start of Selection --}} -@extends('layouts.dashboard') - -@section('content') -
    -
    -
    -
    - -
    -

    - {{ isset($tipoLicencia) ? 'Editar Tipo de Licencia' : 'Nuevo Tipo de Licencia' }} -

    -
    - -
    -
    - - - @if($errors->any()) -
    -
    - -
    -
      - @foreach($errors->all() as $error) -
    • {{ $error }}
    • - @endforeach -
    -
    -
    -
    - @endif - - -
    - @csrf - @if(isset($tipoLicencia)) - @method('PUT') - @endif - -
    - -
    - -
    -
    - -
    - -
    - @error('tipoLicencia') -

    {{ $message }}

    - @enderror -
    - - -
    - - Cancelar - - -
    -
    -
    -
    -
    -
    -
    -@endsection -{{-- End of Selection --}} diff --git a/routes/web.php b/routes/web.php index c645793..0e9a917 100644 --- a/routes/web.php +++ b/routes/web.php @@ -11,6 +11,7 @@ use App\Http\Controllers\CapacidadController; use App\Http\Controllers\PrestamoController; use App\Http\Controllers\DespartamentoController; use App\Http\Controllers\SolicitudVehiculoController; +use App\Http\Controllers\ChoferController; /* @@ -56,7 +57,7 @@ use App\Http\Controllers\SolicitudVehiculoController; Route::get('/despartamento/export/excel', [DespartamentoController::class, 'exportExcel'])->name('despartamentos.excel'); Route::get('/despartamento/export/pdf', [DespartamentoController::class, 'exportPDF'])->name('despartamentos.pdf'); - // Rutas de préstamos protegidas para administradores + // Rutas de préstamos protegidas solo para administradores (historial, aceptar, rechazar, etc.) Route::middleware(['auth', 'admin'])->group(function () { Route::get('/prestamos/aceptados', [PrestamoController::class, 'aceptados'])->name('prestamos.aceptados'); Route::post('/prestamos/{id}/aceptar', [PrestamoController::class, 'aceptar'])->name('prestamos.aceptar'); @@ -69,49 +70,48 @@ use App\Http\Controllers\SolicitudVehiculoController; Route::get('/prestamos/export/{format}', [PrestamoController::class, 'export'])->name('prestamos.export'); }); - // Ruta general de préstamos (accesible para todos los usuarios autenticados) - Route::resource('prestamos', PrestamoController::class); + // Rutas de gestión de préstamos (crear, editar, eliminar) para admin y servicios + Route::middleware(['auth', 'can:gestionar-prestamos'])->resource('prestamos', PrestamoController::class); + + // Ruta general de préstamos (solo para ver) + Route::middleware(['auth'])->group(function () { + Route::get('/prestamos', [PrestamoController::class, 'index'])->name('prestamos.index'); + Route::get('/prestamos/{id}', [PrestamoController::class, 'show'])->name('prestamos.show'); + }); Route::get('/docentes/export/{format}', [DocentesController::class, 'export'])->name('docentes.export'); Route::get('/docentes/{id}/toggle-status', [DocentesController::class, 'toggleStatus'])->name('docentes.toggle-status'); -// Rutas protegidas que requieren autenticación - - - // Rutas protegidas que requieren autenticación Route::middleware(['auth'])->group(function () { + Route::get('/dashboard', [HomeController::class, 'index'])->name('dashboard'); + Route::get('/usuarios', [usuariosController::class,'index'])->name('usuarios'); + Route::get('/usuarios/nuevo', [usuariosController::class, 'create'])->name('usuarios.create'); + Route::post('/usuarios/store', [usuariosController::class,'store'])->name('usuarios.store'); + Route::get('/usuarios/edit/{id}', [usuariosController::class, 'edit'])->name('usuarios.edit'); + Route::put('/usuarios/{id}', [usuariosController::class, 'update'])->name('usuarios.update'); + Route::delete('/usuarios/destroy/{id}', [usuariosController::class, 'destroy'])->name('usuarios.destroy'); + Route::get('usuarios/excel', [usuariosController::class, 'exportExcel'])->name('usuarios.excel'); + Route::get('usuarios/pdf', [usuariosController::class, 'exportPDF'])->name('usuarios.pdf'); + Route::get('/home', [HomeController::class, 'index'])->name('home'); + }); - Route::get('/dashboard', [HomeController::class, 'index'])->name('dashboard'); - Route::get('/usuarios', [usuariosController::class,'index'])->name('usuarios'); - Route::get('/usuarios/nuevo', [usuariosController::class, 'create'])->name('usuarios.create'); - Route::post('/usuarios/store', [usuariosController::class,'store'])->name('usuarios.store'); - - Route::get('/usuarios/edit/{id}', [usuariosController::class, 'edit'])->name('usuarios.edit'); - Route::put('/usuarios/{id}', [usuariosController::class, 'update'])->name('usuarios.update'); - Route::delete('/usuarios/destroy/{id}', [usuariosController::class, 'destroy'])->name('usuarios.destroy'); - Route::get('usuarios/excel', [usuariosController::class, 'exportExcel'])->name('usuarios.excel'); - Route::get('usuarios/pdf', [usuariosController::class, 'exportPDF'])->name('usuarios.pdf'); - - Route::get('/home', [HomeController::class, 'index'])->name('home'); -////corerecion rubi - -}); + // Rutas para profesores + Route::middleware(['auth', 'profesor'])->prefix('profesor')->name('profesor.')->group(function () { + Route::get('/solicitudes', [SolicitudVehiculoController::class, 'index'])->name('solicitudes.index'); + Route::get('/solicitudes/create', [SolicitudVehiculoController::class, 'create'])->name('solicitudes.create'); + Route::post('/solicitudes', [SolicitudVehiculoController::class, 'store'])->name('solicitudes.store'); + }); -// Rutas para profesores -Route::middleware(['auth', 'profesor'])->prefix('profesor')->name('profesor.')->group(function () { - Route::get('/solicitudes', [SolicitudVehiculoController::class, 'index'])->name('solicitudes.index'); - Route::get('/solicitudes/create', [SolicitudVehiculoController::class, 'create'])->name('solicitudes.create'); - Route::post('/solicitudes', [SolicitudVehiculoController::class, 'store'])->name('solicitudes.store'); -}); + // Ruta para el dashboard de usuarios + Route::get('/user-dashboard', [App\Http\Controllers\UserDashboardController::class, 'index'])->name('user.dashboard'); -// Ruta para el dashboard de usuarios -Route::get('/user-dashboard', [App\Http\Controllers\UserDashboardController::class, 'index'])->name('user.dashboard'); + // Ruta para el cuestionario del dashboard de usuario + Route::get('/user-dashboard/cuestionario', function () { + return view('user-dashboard.cuestionario'); + })->middleware('auth'); -// Ruta para el cuestionario del dashboard de usuario -Route::get('/user-dashboard/cuestionario', function () { - return view('user-dashboard.cuestionario'); -})->middleware('auth'); +Route::resource('choferes', ChoferController::class); -// Rutas protegidas para el rol servicios -Route::middleware(['auth', 'servicios'])->resource('prestamos', PrestamoController::class); +Route::get('choferes/excel', [App\Http\Controllers\ChoferController::class, 'exportExcel'])->name('choferes.excel'); +Route::get('choferes/pdf', [App\Http\Controllers\ChoferController::class, 'exportPDF'])->name('choferes.pdf');