init commit
All checks were successful
build-api-image / build (push) Successful in 51s

This commit is contained in:
Antonio Lopes dos Santos
2026-08-04 16:52:02 -03:00
commit afec302c3e
11594 changed files with 1636728 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
<?php
namespace App\Http\Controllers\Impressao\Ambulatorio;
use App\Enums\Ambulatorio\AgendamentoTipo as AmbulatorioAgendamentoTipo;
use App\Http\Controllers\Controller;
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 App\Utils\Exports\Pdf1;
class RelatorioEstatisticoConsultaController extends Controller
{
private const TITLE = 'RELATÓRIO ESTATÍSTICO DE CONSULTA';
private const TEMPLATE = 'ambulatorio.relatorio-estatistico-consulta';
public function __invoke()
{
$itens = RelatorioEstatisticoConsultaService::index();
$demandaTipo = request()->demanda_tipo === 'agendada' ? 'AGENDADA' : (request()->demanda_tipo === 'espontanea' ? 'ESPONTÂNEA' : 'Todas');
$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 = [
'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 Pdf1::generate(self::TITLE, self::TEMPLATE, $data);
}
}