|
@ -21,15 +21,18 @@ class PrestamoController extends Controller |
|
|
// Busca en la columna 'nombre_solicitante' de la tabla 'prestamos' |
|
|
// Busca en la columna 'nombre_solicitante' de la tabla 'prestamos' |
|
|
$prestamos = Prestamo::where('nombre_solicitante', 'LIKE', "%{$busqueda}%") |
|
|
$prestamos = Prestamo::where('nombre_solicitante', 'LIKE', "%{$busqueda}%") |
|
|
->where('eliminado', 0) |
|
|
->where('eliminado', 0) |
|
|
|
|
|
->where('estado', 'pendiente') |
|
|
->get(); |
|
|
->get(); |
|
|
|
|
|
|
|
|
if ($prestamos->isEmpty()) { |
|
|
if ($prestamos->isEmpty()) { |
|
|
return redirect()->route('prestamo.index') |
|
|
return redirect()->route('prestamos.index') |
|
|
->with('error', 'No existe ningún préstamo con el solicitante "' . $busqueda . '". Por favor, inténtalo de nuevo.'); |
|
|
->with('error', 'No existe ningún préstamo con el solicitante "' . $busqueda . '". Por favor, inténtalo de nuevo.'); |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
// Si no hay búsqueda, mostrar todos los préstamos |
|
|
// Si no hay búsqueda, mostrar todos los préstamos pendientes |
|
|
$prestamos = Prestamo::where('eliminado', 0)->get(); |
|
|
$prestamos = Prestamo::where('eliminado', 0) |
|
|
|
|
|
->where('estado', 'pendiente') |
|
|
|
|
|
->get(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return view('prestamos', ['prestamos' => $prestamos]); |
|
|
return view('prestamos', ['prestamos' => $prestamos]); |
|
@ -131,98 +134,4 @@ class PrestamoController extends Controller |
|
|
$pdf = PDF::loadView('exports.prestamos-pdf', ['prestamos' => $prestamos]); |
|
|
$pdf = PDF::loadView('exports.prestamos-pdf', ['prestamos' => $prestamos]); |
|
|
return $pdf->download('prestamos.pdf'); |
|
|
return $pdf->download('prestamos.pdf'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public function aceptados(Request $request) |
|
|
|
|
|
{ |
|
|
|
|
|
$busqueda = $request->busqueda; |
|
|
|
|
|
|
|
|
|
|
|
$prestamos = Prestamo::when($busqueda, function($query) use ($busqueda) { |
|
|
|
|
|
return $query->where(function($q) use ($busqueda) { |
|
|
|
|
|
$q->where('nombre_solicitante', 'LIKE', "%{$busqueda}%") |
|
|
|
|
|
->orWhere('destino', 'LIKE', "%{$busqueda}%") |
|
|
|
|
|
->orWhere('motivo', 'LIKE', "%{$busqueda}%"); |
|
|
|
|
|
}); |
|
|
|
|
|
}) |
|
|
|
|
|
->orderBy('created_at', 'desc') |
|
|
|
|
|
->get(); |
|
|
|
|
|
|
|
|
|
|
|
return view('prestamos.aceptar', ['prestamos' => $prestamos]); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function aceptar($id) |
|
|
|
|
|
{ |
|
|
|
|
|
$prestamo = Prestamo::findOrFail($id); |
|
|
|
|
|
$prestamo->estado = 'aceptado'; |
|
|
|
|
|
$prestamo->save(); |
|
|
|
|
|
|
|
|
|
|
|
// Aquí puedes agregar notificaciones si lo deseas |
|
|
|
|
|
|
|
|
|
|
|
return redirect()->route('prestamos.aceptados') |
|
|
|
|
|
->with('success', 'Préstamo aceptado correctamente'); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function rechazar($id) |
|
|
|
|
|
{ |
|
|
|
|
|
$prestamo = Prestamo::findOrFail($id); |
|
|
|
|
|
$prestamo->estado = 'rechazado'; |
|
|
|
|
|
$prestamo->save(); |
|
|
|
|
|
|
|
|
|
|
|
// Aquí puedes agregar notificaciones si lo deseas |
|
|
|
|
|
|
|
|
|
|
|
return redirect()->route('prestamos.aceptados') |
|
|
|
|
|
->with('success', 'Préstamo rechazado correctamente'); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function historial(Request $request) |
|
|
|
|
|
{ |
|
|
|
|
|
$query = Prestamo::query() |
|
|
|
|
|
->whereIn('estado', ['aceptado', 'rechazado']); |
|
|
|
|
|
|
|
|
|
|
|
// Aplicar filtros de búsqueda |
|
|
|
|
|
if ($request->busqueda) { |
|
|
|
|
|
$query->where(function($q) use ($request) { |
|
|
|
|
|
$q->where('nombre_solicitante', 'LIKE', "%{$request->busqueda}%") |
|
|
|
|
|
->orWhere('destino', 'LIKE', "%{$request->busqueda}%") |
|
|
|
|
|
->orWhere('motivo', 'LIKE', "%{$request->busqueda}%"); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Filtro por estado |
|
|
|
|
|
if ($request->estado) { |
|
|
|
|
|
$query->where('estado', $request->estado); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Filtro por fechas |
|
|
|
|
|
if ($request->fecha_desde) { |
|
|
|
|
|
$query->whereDate('created_at', '>=', $request->fecha_desde); |
|
|
|
|
|
} |
|
|
|
|
|
if ($request->fecha_hasta) { |
|
|
|
|
|
$query->whereDate('created_at', '<=', $request->fecha_hasta); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Ordenar por fecha de actualización |
|
|
|
|
|
$query->orderBy('updated_at', 'desc'); |
|
|
|
|
|
|
|
|
|
|
|
// Paginar resultados |
|
|
|
|
|
$prestamos = $query->paginate(10); |
|
|
|
|
|
|
|
|
|
|
|
return view('prestamos.historial', ['prestamos' => $prestamos]); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function export($format) |
|
|
|
|
|
{ |
|
|
|
|
|
$prestamos = Prestamo::whereIn('estado', ['aceptado', 'rechazado']) |
|
|
|
|
|
->orderBy('updated_at', 'desc') |
|
|
|
|
|
->get(); |
|
|
|
|
|
|
|
|
|
|
|
switch($format) { |
|
|
|
|
|
case 'excel': |
|
|
|
|
|
return Excel::download(new PrestamosExport($prestamos), 'historial_prestamos.xlsx'); |
|
|
|
|
|
case 'pdf': |
|
|
|
|
|
$pdf = PDF::loadView('exports.prestamos-pdf', ['prestamos' => $prestamos]); |
|
|
|
|
|
return $pdf->download('historial_prestamos.pdf'); |
|
|
|
|
|
default: |
|
|
|
|
|
return redirect()->back()->with('error', 'Formato no soportado'); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|