54 lines
2.3 KiB
PHP
54 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Exports\Ambulatorio;
|
|
|
|
use App\Enums\Ambulatorio\AgendamentoTipo as AmbulatorioAgendamentoTipo;
|
|
use App\Models\Ambulatorio\AgendamentoStatus;
|
|
use App\Models\Ambulatorio\AgendamentoTipo;
|
|
use App\Models\Cadastro\Especialidade;
|
|
use App\Models\Cadastro\Estabelecimento\Infraestrutura;
|
|
use App\Models\Cadastro\Estabelecimento\Unidade;
|
|
use App\Models\Cadastro\SujeitoAtencao\Usuario;
|
|
use App\Models\Intranet\Municipio;
|
|
use App\Services\Ambulatorio\RelatorioEstatisticoConsultaService;
|
|
use Illuminate\Contracts\View\View;
|
|
use Maatwebsite\Excel\Concerns\FromView;
|
|
|
|
class RelatorioEstatisticoConsulta implements FromView
|
|
{
|
|
private const TITLE = 'RELATÓRIO ESTATÍSTICO DE CONSULTA';
|
|
private const VIEW = 'exportacoes.ambulatorio.relatorio-estatistico-consulta';
|
|
|
|
public function view(): View
|
|
{
|
|
$itens = RelatorioEstatisticoConsultaService::index();
|
|
$demandaTipo = request()->demanda_tipo === 'agendada' ? 'AGENDADA' : 'ESPONTÂNEA';
|
|
$agendamentoTipo = AgendamentoTipo::find(request()->agendamento_tipo_id) ?? AgendamentoTipo::find(AmbulatorioAgendamentoTipo::CONSULTA);
|
|
$municipio = Municipio::find(request()->municipio_id) ?? 'Todos';
|
|
$unidade = Unidade::find(request()->unidade_id) ?? 'Todas';
|
|
$infraestrutura = Infraestrutura::find(request()->infraestrutura_id) ?? 'Todos';
|
|
$especialidade = Especialidade::find(request()->especialidade_id) ?? 'Todas';
|
|
$usuario = Usuario::find(request()->usuario_id) ?? 'Todos';
|
|
$status = request()->demanda_tipo === 'agendada' ? AgendamentoStatus::find(request()->agendamento_status_id) : 'Todos';
|
|
|
|
$data = [
|
|
'title' => self::TITLE,
|
|
'periodo' => [
|
|
'inicio' => request()->periodo['start'],
|
|
'fim' => request()->periodo['end'],
|
|
],
|
|
'demanda_tipo' => $demandaTipo,
|
|
'agendamento_tipo' => $agendamentoTipo->nome ?? 'Todos',
|
|
'municipio' => $municipio->nome ?? 'Todos',
|
|
'unidade' => $unidade->nome_fantasia ?? 'Todas',
|
|
'infraestrutura' => $infraestrutura->nome ?? 'Todas',
|
|
'especialidade' => $especialidade->nome ?? 'Todas',
|
|
'usuario' => $usuario->nome ?? 'Todos',
|
|
'data' => $itens,
|
|
'status' => $status,
|
|
];
|
|
|
|
return view(self::VIEW, $data);
|
|
}
|
|
}
|