75 lines
3.1 KiB
PHP
75 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace App\Exports\Imunizacao\Relatorios;
|
|
|
|
use App\Services\Imunizacao\RelatorioDeAplicacaoService;
|
|
use Illuminate\Contracts\View\View;
|
|
use Maatwebsite\Excel\Concerns\FromView;
|
|
|
|
class RelatorioDeAplicacao implements FromView
|
|
{
|
|
private const VIEW = 'exportacoes.imunizacao.relatorio-de-aplicacao';
|
|
|
|
public static function getTemplate()
|
|
{
|
|
$registros = RelatorioDeAplicacaoService::search();
|
|
$registros['filtros'] = request()->all();
|
|
|
|
return $registros;
|
|
}
|
|
|
|
public function view(): View
|
|
{
|
|
$data = self::getTemplate();
|
|
$filtros = $data['filtros'];
|
|
$registros = $data['registros'];
|
|
|
|
$tipoRegistro = isset($filtros['tipo_registro']) ? $registros[0]->registro : 'Todos';
|
|
$salaVacinacao = isset($filtros['sala_vacinacao']) ? $registros[0]->sala : 'Todas';
|
|
$vacina = isset($filtros['vacina']) ? $registros[0]->vacina : 'Todas';
|
|
$dose = isset($filtros['dose']) ? $registros[0]->dose : 'Todas';
|
|
$sexo = isset($filtros['sexo']) ? $registros[0]->sexo : 'Ambos';
|
|
$unidade = isset($filtros['unidade']) ? $registros[0]->unidade : 'Todas';
|
|
$area = isset($filtros['area']) ? $registros[0]->area : 'Todas';
|
|
$microarea = isset($filtros['microarea']) ? $registros[0]->microarea : 'Todas';
|
|
$classificacao = isset($filtros['classificacao']) ? $registros[0]->classificacao : 'Todas';
|
|
$prontuario = isset($filtros['prontuario']) ? $registros[0]->prontuario : 'Todos';
|
|
$periodo = $filtros['periodo'];
|
|
|
|
$faixaEtariaInicial = $filtros['faixa_etaria']['inicial'];
|
|
$faixaEtariaFinal = $filtros['faixa_etaria']['final'];
|
|
|
|
$faixaEtariaInicialAnos = $faixaEtariaInicial['anos'] ?? 'Não informado';
|
|
$faixaEtariaInicialMeses = $faixaEtariaInicial['meses'] ?? 'Não informado';
|
|
$faixaEtariaInicialDias = $faixaEtariaInicial['dias'] ?? 'Não informado';
|
|
|
|
$faixaEtariaFinalAnos = $faixaEtariaFinal['anos'] ?? 'Não informado';
|
|
$faixaEtariaFinalMeses = $faixaEtariaFinal['meses'] ?? 'Não informado';
|
|
$faixaEtariaFinalDias = $faixaEtariaInicial['dias'] ?? 'Não informado';
|
|
|
|
$colunas = collect(request()->selected_columns);
|
|
|
|
return view(self::VIEW, [
|
|
'periodo' => "{$periodo['start']} até {$periodo['end']}",
|
|
'tipoRegistro' => $tipoRegistro,
|
|
'salaVacinacao' => $salaVacinacao,
|
|
'vacina' => $vacina,
|
|
'dose' => $dose,
|
|
'sexo' => $sexo,
|
|
'unidade' => $unidade,
|
|
'areaMicroarea' => "{$area}/{$microarea}",
|
|
'classificacao' => $classificacao,
|
|
'faixaInicialAnos' => $faixaEtariaInicialAnos,
|
|
'faixaInicialMeses' => $faixaEtariaInicialMeses,
|
|
'faixaInicialDias' => $faixaEtariaInicialDias,
|
|
'faixaFinalAnos' => $faixaEtariaFinalAnos,
|
|
'faixaFinalMeses' => $faixaEtariaFinalMeses,
|
|
'faixaFinalDias' => $faixaEtariaFinalDias,
|
|
'prontuario' => $prontuario,
|
|
'colunas' => $colunas,
|
|
'items' => $registros,
|
|
'totalizadores' => $data['totalizadores'],
|
|
]);
|
|
}
|
|
}
|