This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports\AtencaoBasica;
|
||||
|
||||
use App\Enums\Cadastro\SujeitoAtencao\Sexo;
|
||||
use App\Models\AtencaoBasica\Parametrizacao\Equipe;
|
||||
use App\Models\Cadastro\Estabelecimento\Infraestrutura;
|
||||
use App\Models\Cadastro\Estabelecimento\Unidade;
|
||||
use App\Models\Cadastro\SujeitoAtencao\Paciente;
|
||||
use App\Services\AtencaoBasica\RelatorioCuidadoDesenvolvimentoInfantilService;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Maatwebsite\Excel\Concerns\FromView;
|
||||
|
||||
class RelatorioCuidadoDesenvolvimentoInfantil implements FromView
|
||||
{
|
||||
private const TITLE = 'RELATÓRIO DE CUIDADO E DESENVOLVIMENTO INFANTIL';
|
||||
private const VIEW = 'exportacoes.atencao-basica.relatorio-cuidado-desenvolvimento-infantil';
|
||||
|
||||
public function view(): View
|
||||
{
|
||||
$resultado = RelatorioCuidadoDesenvolvimentoInfantilService::index(request());
|
||||
|
||||
$sortByEquipe = request()->input('sort_by_equipe', 'unidadeNomeFantasia');
|
||||
$sortDescEquipe = (bool) request()->input('sort_desc_equipe', false);
|
||||
$sortByBuscaAtiva = request()->input('sort_by_busca_ativa', 'unidadeNomeFantasia');
|
||||
$sortDescBuscaAtiva = (bool) request()->input('sort_desc_busca_ativa', false);
|
||||
|
||||
$resultadoPorEquipe = $sortDescEquipe
|
||||
? collect($resultado['resultadoPorEquipe'])->sortByDesc($sortByEquipe)->values()->toArray()
|
||||
: collect($resultado['resultadoPorEquipe'])->sortBy($sortByEquipe)->values()->toArray();
|
||||
|
||||
$buscaAtivaDados = $sortDescBuscaAtiva
|
||||
? collect($resultado['buscaAtiva'])->sortByDesc($sortByBuscaAtiva)->values()->toArray()
|
||||
: collect($resultado['buscaAtiva'])->sortBy($sortByBuscaAtiva)->values()->toArray();
|
||||
|
||||
$unidade = Unidade::find(request()->input('unidade_id'));
|
||||
$infraestrutura = Infraestrutura::find(request()->input('infraestrutura_id'));
|
||||
$equipe = Equipe::find(request()->input('equipe_id'));
|
||||
$pacienteId = request()->input('paciente_id');
|
||||
$paciente = $pacienteId ? Paciente::with('cidadao')->find($pacienteId) : null;
|
||||
|
||||
$sexoMap = [
|
||||
Sexo::MASCULINO => 'Masculino',
|
||||
Sexo::FEMININO => 'Feminino',
|
||||
];
|
||||
|
||||
$faixaEtaria = request()->input('faixa_etaria', []);
|
||||
|
||||
$data = [
|
||||
'title' => self::TITLE,
|
||||
'inicio' => request()->input('periodo.start'),
|
||||
'fim' => request()->input('periodo.end'),
|
||||
'quadrimestre' => request()->input('quadrimestre'),
|
||||
'unidade' => $unidade->nome_fantasia ?? 'Todas',
|
||||
'infraestrutura' => $infraestrutura->nome ?? 'Todos',
|
||||
'equipe' => $equipe->nome ?? 'Todas',
|
||||
'sexo' => $sexoMap[request()->input('sexo_id')] ?? 'Todos',
|
||||
'paciente' => optional(optional(optional($paciente)->first())->cidadao)->nome ?? 'Todos',
|
||||
'buscaAtiva' => (bool) request()->input('busca_ativa'),
|
||||
'faixaEtariaInicial' => $faixaEtaria['inicial'] ?? [],
|
||||
'faixaEtariaFinal' => $faixaEtaria['final'] ?? [],
|
||||
'totalizadores' => $resultado['totalizadores'],
|
||||
'resultadoPorEquipe' => $resultadoPorEquipe,
|
||||
'buscaAtivaDados' => $buscaAtivaDados,
|
||||
'boasPraticasSelecionadas' => $resultado['boasPraticasSelecionadas'],
|
||||
'selectedColsBuscaAtiva' => request()->input('selected_cols_busca_ativa', ['pacienteDataNascimento']),
|
||||
];
|
||||
|
||||
return view(self::VIEW, $data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user