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.
 
 
 
 

82 lines
2.4 KiB

<?php
namespace App\Http\Controllers;
use App\Models\Trabajador;
use Illuminate\Http\Request;
use App\Models\Puesto;
class TrabajadorController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
$trabajadores = Trabajador::all();
return view('trabajadores', ['trabajadores' => $trabajadores]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
$puestos = Puesto::all();
return view('trabajadoresCrearEditar', ['trabajador' => null, 'puestos' => $puestos]);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$trabajador2 = new Trabajador($request->all());
$trabajador2->save();
return redirect()->route('trabajadores.index')->with('succes',value: 'El auto se agregó');
}
/**
* Display the specified resource.
*/
public function show(Trabajador $trabajador)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$puestos = Puesto::all();
$trabajador = Trabajador::find($id);
return view('trabajadoresCrearEditar', ['trabajador' => $trabajador, 'puestos' => $puestos])->with(key: 'warning', value:'Actualizado correctamente');
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id)
{
$trabajador = Trabajador::find($id); //Busca el trabajador por el id
$trabajador->update($request->all()); //Actualiza los datos del trabajador
return redirect()->route('trabajadores.index')->with(key: 'warning', value:'Actualizado correctamente'); //Redirecciona a la página de index
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
$trabajador = Trabajador::find($id); //Busca el trabajador por el id
if($trabajador->puesto_id()!=1){
$trabajador->delete(); //Elimina el trabajador:
return redirect()->route('trabajadores.index')->with(key: 'succes', value:'Eliminado correctamente'); //Redirecciona a la página de index
}else{
return redirect()->route('trabajadores.index')->with(key: 'error', value:'No se puede eliminar el trabajador porque no tiene un puesto asignado'); //Redirecciona a la página de index
}
}
}