Files
rkm-conectasus-ci-sandbox/api/app/Services/Sigtap/OcupacaoService.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

52 lines
1.8 KiB
PHP

<?php
namespace App\Services\Sigtap;
use App\Services\Service;
use Illuminate\Support\Facades\DB;
use App\Enums\Sigtap\OcupacaoInativa;
class OcupacaoService extends Service
{
public static function autocomplete()
{
$excludedValues = [
OcupacaoInativa::PROFISSIONAL_EDUCACAO_FISICA_SAUDE,
];
$ocupacoes = DB::table('sigtap.ocupacao')
->whereNotIn('sigtap.ocupacao.codigo', $excludedValues);
if (request()->query('procedimento_id')) {
$procedimentoRequerCbo = DB::table('sigtap.ocupacao')
->whereExists(function ($query) {
$query->select(DB::raw(1))
->from('sigtap.procedimento_ocupacao')
->whereColumn('procedimento_ocupacao.ocupacao_id', 'ocupacao.id')
->where('procedimento_ocupacao.procedimento_id', request()->query('procedimento_id'));
})->exists();
if ($procedimentoRequerCbo) {
$ocupacoes->whereExists(function($query) {
$query->select(DB::raw(1))
->from('sigtap.procedimento_ocupacao')
->whereColumn('procedimento_ocupacao.ocupacao_id', 'ocupacao.id')
->where('procedimento_ocupacao.procedimento_id', request()->query('procedimento_id'));
});
}
}
if (request()->query('usuario_id')) {
$ocupacoes->whereExists(function($query) {
$query->select(DB::raw(1))
->from('cadastro_lotacao')
->whereColumn('cadastro_lotacao.ocupacao_id', 'ocupacao.id')
->where('cadastro_lotacao.usuario_id', request()->query('usuario_id'));
});
}
return $ocupacoes;
}
}