busqueda; if($busqueda) { $tiposVeiculos = tiposVeiculos::where('nombre', 'LIKE', "%{$busqueda}%")->where('status', true)->get(); if($tiposVeiculos->count() == 0) { return redirect()->route('tiposVeiculos.index') ->with('error', value: 'No existe ningun tipo de vehiculo con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); } // Si solo hay una marca, mostrar sus detalles if($tiposVeiculos->count() == 1) { $tiposVeiculos = $tiposVeiculos->first(); return redirect()->route('vehiculos.edit', $tiposVeiculos->id); } // Si hay múltiples coincidencias, mostrar la lista filtrada return view('vehiculos', ["tiposVeiculos" => $tiposVeiculos]); } // Si no hay búsqueda, mostrar todas las marcas $tiposVeiculos = tiposVeiculos::where('status', true)->get(); return view('vehiculos', ["tiposVeiculos" => $tiposVeiculos]); } /** * Show the form for creating a new resource. */ public function create() { $tiposVeiculos = tiposVeiculos::all(); return view('vehiculosCrearEditar',['tiposVeiculos'=>$tiposVeiculos]); } /** * Store a newly created resource in storage. */ public function store(Request $request) { $tiposVeiculos = new tiposVeiculos($request->all()); $tiposVeiculos->status = true; $tiposVeiculos->save(); return redirect()->route('vehiculos.index')->with('success', 'Tipo de vehiculo creado exitosamente.'); } /** * Display the specified resource. */ public function show(tiposVeiculos $tiposVeiculos) { // } /** * Show the form for editing the specified resource. */ public function edit($id) { $tipoVehiculo = tiposVeiculos::find($id); return view('vehiculosCrearEditar', ['tipoVehiculo' => $tipoVehiculo]); } /** * Update the specified resource in storage. */ public function update(Request $request, $id) { $tipoVehiculo = tiposVeiculos::find($id); $tipoVehiculo->fill($request->all()); if ($request->has('status')) { $tipoVehiculo->status = $request->status; } $tipoVehiculo->save(); return redirect()->route('vehiculos.index')->with('success', 'Vehículo actualizado exitosamente.'); } public function toggleStatus($id) { $tipoVehiculo = tiposVeiculos::findOrFail($id); $tipoVehiculo->status = !$tipoVehiculo->status; $tipoVehiculo->save(); $mensaje = $tipoVehiculo->status ? 'Tipo de vehículo activado exitosamente.' : 'Tipo de vehículo desactivado exitosamente.'; return redirect()->route('vehiculos.index')->with('success', $mensaje); } /** * Remove the specified resource from storage. */ public function destroy($id) { $tiposVeiculos = tiposVeiculos::find($id); $tiposVeiculos->status = false; $tiposVeiculos->save(); return redirect()->route('vehiculos.index')->with('success', 'Vehiculo eliminado exitosamente.'); } public function exportExcel() { $tiposVeiculos = tiposVeiculos::all(); $headers = [ 'Content-Type' => 'text/csv', 'Content-Disposition' => 'attachment; filename="tipos_vehiculos.csv"', ]; $callback = function() use ($tiposVeiculos) { $file = fopen('php://output', 'w'); // Encabezados fputcsv($file, ['ID', 'Nombre', 'Tipo de Combustible', 'Estado', 'Fecha de Creación']); // Datos foreach ($tiposVeiculos as $vehiculo) { $estado = $vehiculo->status ? 'Activo' : 'Inactivo'; $tipoCombustible = ''; switch($vehiculo->tipo_combustible) { case 'gasolina_verde': $tipoCombustible = 'Gasolina Verde'; break; case 'gasolina_roja': $tipoCombustible = 'Gasolina Roja'; break; case 'diesel': $tipoCombustible = 'Diesel'; break; default: $tipoCombustible = 'No especificado'; } fputcsv($file, [ $vehiculo->id, $vehiculo->nombre, $tipoCombustible, $estado, $vehiculo->created_at->format('d/m/Y') ]); } fclose($file); }; return response()->stream($callback, 200, $headers); } public function exportPDF() { $tiposVeiculos = tiposVeiculos::all(); $pdf = PDF::loadView('exports.tipos_vehiculos_pdf', ['tiposVeiculos' => $tiposVeiculos]); return $pdf->download('tipos_vehiculos.pdf'); } }