61 lines
2.3 KiB
PHP
61 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Impressao\Apac;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Cadastro\Estabelecimento\Unidade;
|
|
use App\Models\Cadastro\SujeitoAtencao\Usuario;
|
|
use App\Models\Sigtap\Cid;
|
|
use App\Models\Sigtap\Competencia;
|
|
use App\Models\Sigtap\Ocupacao;
|
|
use App\Models\Sigtap\Procedimento;
|
|
use App\Services\Apac\RelatorioInconsistenciaService;
|
|
use App\Utils\Exports\Pdf1;
|
|
use App\Utils\MaskUtil;
|
|
|
|
class RelatorioInconsistenciaController extends Controller
|
|
{
|
|
private const TITLE = 'RELATÓRIO DE INCONSISTÊNCIA';
|
|
private const TEMPLATE = 'apac.relatorio-inconsistencia';
|
|
|
|
public function __invoke()
|
|
{
|
|
$competencia = Competencia::find(request()->competencia_id);
|
|
|
|
$tipoInconsistencia = request()->tipo_inconsistencia === 'procedimento-principal'
|
|
? 'Procedimento principal' : 'Procedimento secundário';
|
|
|
|
$unidadeExecutante = request()->unidade_executante_id ? Unidade::findOrFail(request()->unidade_executante_id) : null;
|
|
$usuarioExecutante = request()->usuario_executante_id ? Usuario::findOrFail(request()->usuario_executante_id) : null;
|
|
$ocupacao = request()->ocupacao_id ? Ocupacao::findOrFail(request()->ocupacao_id) : null;
|
|
$procedimento = request()->procedimento_id ? Procedimento::findOrFail(request()->procedimento_id) : null;
|
|
|
|
$cid = null;
|
|
|
|
if (count(request()->cids) === 1) {
|
|
|
|
$cid = Cid::findOrFail(request()->cids[0]);
|
|
$cid = MaskUtil::getCidMasked($cid->codigo) . " - {$cid->nome}";
|
|
}
|
|
else {
|
|
|
|
$cid = count(request()->cids) . ' cids selecionados';
|
|
}
|
|
|
|
$itens = RelatorioInconsistenciaService::index();
|
|
|
|
$data = [
|
|
'competencia' => $competencia->valor,
|
|
'tipo_inconsistencia' => $tipoInconsistencia,
|
|
'unidade_executante' => $unidadeExecutante->nome_fantasia ?? 'Todas',
|
|
'usuario_executante' => $usuarioExecutante->cidadao->nome ?? 'Todos',
|
|
'ocupacao' => $ocupacao ? "{$ocupacao->codigo} - {$ocupacao->nome}" : 'Todas',
|
|
'procedimento' => $procedimento ? MaskUtil::getProcedimentoMasked($procedimento->codigo) . " - {$procedimento->nome}" : 'Todos',
|
|
'cid' => $cid,
|
|
'data' => $itens,
|
|
];
|
|
|
|
return Pdf1::generate(self::TITLE, self::TEMPLATE, $data);
|
|
}
|
|
}
|