This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Parametrizacao;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Parametrizacao\ProcedimentoRequest;
|
||||
use App\Models\Parametrizacao\Procedimento;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class ProcedimentoController extends Controller
|
||||
{
|
||||
protected $modulo = 'parametrizacao';
|
||||
protected $funcionalidade = 'procedimento';
|
||||
|
||||
public function datatable()
|
||||
{
|
||||
$procedimentos = DB::table('parametrizacao_procedimento')
|
||||
->join('sigtap.procedimento', function($join) {
|
||||
$join->on('procedimento.codigo', 'parametrizacao_procedimento.procedimento_codigo')
|
||||
->where('procedimento.competencia_id', function ($query) {
|
||||
$query->select('competencia.id')
|
||||
->from('sigtap.competencia')
|
||||
->orderByDesc('competencia.valor')
|
||||
->limit(1);
|
||||
});
|
||||
})
|
||||
->select(
|
||||
'parametrizacao_procedimento.id',
|
||||
'parametrizacao_procedimento.apelido',
|
||||
'procedimento.codigo',
|
||||
'procedimento.nome',
|
||||
)
|
||||
->whereNull('parametrizacao_procedimento.deleted_at');
|
||||
|
||||
return datatables()
|
||||
->of($procedimentos)
|
||||
->filterColumn('procedimento.codigo', function ($query, $keyword) {
|
||||
|
||||
$query
|
||||
->whereRaw("procedimento.codigo like ?", ["%{$keyword}%"])
|
||||
->orWhereRaw(
|
||||
"CONCAT(
|
||||
SUBSTR(procedimento.codigo,1,2),
|
||||
'.',
|
||||
SUBSTR(procedimento.codigo,3,2),
|
||||
'.',
|
||||
SUBSTR(procedimento.codigo,5,2),
|
||||
'.',
|
||||
SUBSTR(procedimento.codigo,7,3),
|
||||
'-',
|
||||
SUBSTR(procedimento.codigo,10,1)
|
||||
) like ?",
|
||||
["%{$keyword}%"]
|
||||
);
|
||||
})
|
||||
->skipTotalRecords()
|
||||
->make(true);
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$this->auth(__FUNCTION__);
|
||||
|
||||
$procedimentos = $this->get(Procedimento::class)->orderBy('nome')->get();
|
||||
|
||||
return response()->json($procedimentos, Response::HTTP_OK);
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
$this->auth(__FUNCTION__);
|
||||
|
||||
$procedimento = new Procedimento;
|
||||
$procedimento->fill(array_fill_keys($procedimento->getFillable(), null));
|
||||
|
||||
return response()->json(
|
||||
[
|
||||
'model' => $procedimento->makeHidden(['id', 'procedimento_codigo'])
|
||||
],
|
||||
Response::HTTP_OK
|
||||
);
|
||||
}
|
||||
|
||||
public function store(ProcedimentoRequest $request)
|
||||
{
|
||||
$this->auth(__FUNCTION__);
|
||||
|
||||
$procedimento = Procedimento::create($request->all())->fresh();
|
||||
|
||||
return response()->json($procedimento, Response::HTTP_CREATED);
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
$this->auth(__FUNCTION__);
|
||||
|
||||
return response()->json($this->get(Procedimento::class, $id), Response::HTTP_OK);
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$this->auth(__FUNCTION__);
|
||||
|
||||
$procedimento = Procedimento::findOrFail($id);
|
||||
|
||||
return response()->json(
|
||||
[
|
||||
'model' => $procedimento->makeHidden(['id', 'procedimento_codigo']),
|
||||
],
|
||||
Response::HTTP_OK
|
||||
);
|
||||
}
|
||||
|
||||
public function update(ProcedimentoRequest $request, $id)
|
||||
{
|
||||
$this->auth(__FUNCTION__);
|
||||
|
||||
$procedimento = tap(Procedimento::findOrFail($id))->update($request->except('procedimento_codigo'));
|
||||
|
||||
return response()->json($procedimento->fresh(), Response::HTTP_OK);
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
$this->auth(__FUNCTION__);
|
||||
|
||||
Procedimento::findOrFail($id)->delete();
|
||||
|
||||
return response()->json(null, Response::HTTP_NO_CONTENT);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user