Files
rkm-conectasus-ci-sandbox/api/app/Http/Controllers/Parametrizacao/ProcedimentoController.php
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

133 lines
4.0 KiB
PHP

<?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);
}
}