You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

112 lines
3.3 KiB

<?php
namespace App\Http\Controllers;
use App\Models\Docentes;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Barryvdh\DomPDF\Facade\Pdf;
use App\Exports\DocentesExport;
class DocentesController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(Request $request)
{
$busqueda = $request->busqueda;
if ($busqueda) {
// Busca docentes que coincidan con el término de búsqueda
$docentes = Docentes::where('nombre', 'LIKE', "%{$busqueda}%")
->orWhere('correo', 'LIKE', "%{$busqueda}%")
->orWhere('tipo_licencia', 'LIKE', "%{$busqueda}%")
->orWhere('materia', 'LIKE', "%{$busqueda}%")
->get();
if ($docentes->isEmpty()) {
return redirect()->route('docentes.index')
->with('error', 'No existe ningún docente con el término "' . $busqueda . '". Por favor, inténtalo de nuevo.');
}
} else {
// Si no hay búsqueda, mostrar todos los docentes
$docentes = Docentes::all();
}
return view('docentes', ['docentes' => $docentes]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
$docentes = Docentes::all();
return view('docentesCrearEditar',['docentes'=>$docentes]);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$docente = new Docentes($request->all());
$docente->save();
return redirect()->route('docentes.index')->with('success', 'Docente creado exitosamente.');
}
/**
* Display the specified resource.
*/
public function show(Docentes $docente)
{
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$docentes = Docentes::all();
$docente = Docentes::find($id);
return view('docentesCrearEditar', ['docentes' => $docentes, 'docente' => $docente]) ;
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id)
{
$docente = Docentes::find($id);
$docente->update($request->all());
return redirect()->route('docentes.index')->with('success', 'Docente actualizado correctamente');
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
$docente = Docentes::find($id);
$docente->delete();
return redirect()->route('docentes.index')->with('success', 'Docente eliminado correctamente');
}
public function export($format)
{
$docentes = Docentes::all();
switch($format) {
case 'csv':
return Excel::download(new DocentesExport($docentes), 'docentes.csv', \Maatwebsite\Excel\Excel::CSV);
case 'excel':
return Excel::download(new DocentesExport($docentes), 'docentes.xlsx');
case 'pdf':
return PDF::loadView('exports.docentes', ['docentes' => $docentes])
->download('docentes.pdf');
default:
return redirect()->back()->with('error', 'Formato no soportado');
}
}
}