arcadiasuite/plus/app/Http/Controllers/FuncionarioEventoController...

100 lines
3.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\EventoSalario;
use App\Models\Funcionario;
use App\Models\FuncionarioEvento;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class FuncionarioEventoController extends Controller
{
public function index(Request $request)
{
$data = Funcionario::select('funcionarios.*')
->join('funcionario_eventos', 'funcionario_eventos.funcionario_id', '=', 'funcionarios.id')
->where('empresa_id', request()->empresa_id)
->when(!empty($request->nome), function ($q) use ($request) {
return $q->where(function ($quer) use ($request) {
return $quer->where('nome', 'LIKE', "%$request->nome%");
});
})
->groupBy('funcionarios.id')
->paginate(__itensPagina());
return view('funcionario_evento.index', compact('data'));
}
public function create()
{
$funcionarios = Funcionario::where('empresa_id', request()->empresa_id)->get();
$eventos = EventoSalario::where('empresa_id', request()->empresa_id)->get();
return view('funcionario_evento.create', compact('funcionarios', 'eventos'));
}
public function store(Request $request)
{
try {
DB::transaction(function () use ($request) {
for ($i = 0; $i < sizeof($request->evento); $i++) {
$item = [
'evento_id' => $request->evento[$i],
'funcionario_id' => $request->funcionario_id,
'condicao' => $request->condicao[$i],
'metodo' => $request->metodo[$i],
'valor' => __convert_value_bd($request->valor[$i]),
'ativo' => $request->ativo[$i]
];
FuncionarioEvento::create($item);
}
});
session()->flash("flash_success", "Cadastrado com Sucesso");
} catch (\Exception $e) {
session()->flash("flash_error", "Não foi possivel fazer o cadastro" . $e->getMessage());
}
return redirect()->route('funcionario-eventos.index');
}
public function edit($id)
{
$item = Funcionario::findOrFail($id);
$eventos = EventoSalario::where('empresa_id', request()->empresa_id)->get();
$funcionarios = Funcionario::where('empresa_id', request()->empresa_id)->get();
return view('funcionario_evento.edit', compact('item', 'eventos', 'funcionarios'));
}
public function update(Request $request, $id)
{
try {
DB::transaction(function () use ($request, $id) {
FuncionarioEvento::where('funcionario_id', $id)->delete();
for ($i = 0; $i < sizeof($request->evento); $i++) {
$item = [
'evento_id' => $request->evento[$i],
'funcionario_id' => $id,
'condicao' => $request->condicao[$i],
'metodo' => $request->metodo[$i],
'valor' => __convert_value_bd($request->valor[$i]),
'ativo' => $request->ativo[$i]
];
FuncionarioEvento::create($item);
}
});
session()->flash("flash_success", "Eventos atualizados!");
} catch (\Exception $e) {
session()->flash('flash_error', 'Algo deu errado: ' . $e->getMessage());
}
return redirect()->route('funcionario-eventos.index');
}
public function destroy($id)
{
try {
FuncionarioEvento::where('funcionario_id', $id)->delete();
session()->flash("flash_success", "Eventos removido!");
} catch (\Exception $e) {
session()->flash('flash_error', 'Algo deu errado: ' . $e->getMessage());
}
return redirect()->route('funcionario-eventos.index');
}
}