busqueda; if ($busqueda) { // Busca en la columna 'nombre_solicitante' de la tabla 'prestamos' $prestamos = Prestamo::where('nombre_solicitante', 'LIKE', "%{$busqueda}%") ->where('eliminado', 0) ->get(); if ($prestamos->isEmpty()) { return redirect()->route('prestamo.index') ->with('error', 'No existe ningún préstamo con el solicitante "' . $busqueda . '". Por favor, inténtalo de nuevo.'); } } else { // Si no hay búsqueda, mostrar todos los préstamos $prestamos = Prestamo::where('eliminado', 0)->get(); } return view('prestamos', ['prestamos' => $prestamos]); } /** * Show the form for creating a new resource. */ public function create() { return view('prestamosCrearEditar', ['prestamo' => null]); // No se necesita pasar préstamos } /** * Store a newly created resource in storage. */ public function store(Request $request) { // Validación de datos $request->validate([ 'nombre_solicitante' => 'required|string|max:255', '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', ]); // Crea un nuevo préstamo $prestamo = new Prestamo(); $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; $prestamo->chofer = $request->has('chofer') ? 1 : 0; // Manejo del checkbox $prestamo->eliminado = 0; // Marca como activo por defecto $prestamo->save(); return redirect()->route('prestamos.index')->with('success', 'Préstamo creado exitosamente.'); } /** * Show the form for editing the specified resource. */ 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 } /** * Update the specified resource in storage. */ public function update(Request $request, $id) { // Validación de datos $request->validate([ 'nombre_solicitante' => 'required|string|max:255', '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', ]); $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 return redirect()->route('prestamos.index')->with('success', 'Préstamo actualizado correctamente.'); } /** * Remove the specified resource from storage. */ public function destroy($id) { $prestamo = Prestamo::findOrFail($id); // Encuentra el préstamo por ID $prestamo->eliminado = 1; // Cambia el estado a inactivo $prestamo->save(); // Guarda los cambios return redirect()->route('prestamos.index')->with('success', 'Préstamo inactivado correctamente.'); } /** * Export to Excel. */ public function exportExcel() { return Excel::download(new PrestamosExport, 'prestamos.xlsx'); } /** * Export to PDF. */ public function exportPDF() { $prestamos = Prestamo::where('eliminado', 0)->get(); $pdf = PDF::loadView('exports.prestamos-pdf', ['prestamos' => $prestamos]); return $pdf->download('prestamos.pdf'); } }