Files
rkm-conectasus-ci-sandbox/api/app/Exports/Apac/RelatorioInconsistencia.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

62 lines
2.3 KiB
PHP

<?php
namespace App\Exports\Apac;
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\MaskUtil;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
class RelatorioInconsistencia implements FromView
{
private const TITLE = 'RELATÓRIO DE INCONSISTÊNCIA';
private const VIEW = 'exportacoes.apac.relatorio-inconsistencia';
public function view(): View
{
$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 = [
'title' => self::TITLE,
'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 view(self::VIEW, $data);
}
}