51 lines
1.9 KiB
PHP
51 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Impressao\Ambulatorio;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Cadastro\Especialidade;
|
|
use App\Models\Cadastro\Estabelecimento\Infraestrutura;
|
|
use App\Models\Cadastro\Estabelecimento\Unidade;
|
|
use App\Models\Sigtap\Ocupacao;
|
|
use App\Services\Ambulatorio\RelatorioQuantitativoAtendimentoService;
|
|
use App\Utils\Exports\Pdf1;
|
|
|
|
class RelatorioQuantitativoAtendimentoController extends Controller
|
|
{
|
|
private const TITLE = 'RELATÓRIO QUANTITATIVO DE ATENDIMENTOS';
|
|
private const TEMPLATE = 'ambulatorio.relatorio-quantitativo-atendimento';
|
|
|
|
public static function getTemplate()
|
|
{
|
|
$resultado = RelatorioQuantitativoAtendimentoService::index();
|
|
$itens = $resultado['infraestruturas'];
|
|
|
|
$unidade = Unidade::find(request()->unidade_id);
|
|
$infraestrutura = Infraestrutura::find(request()->infraestrutura_id);
|
|
$ocupacao = Ocupacao::find(request()->ocupacao_id);
|
|
$especialidade = Especialidade::find(request()->especialidade_id);
|
|
|
|
return [
|
|
'ano' => request()->periodo['ano'],
|
|
'mes' => RelatorioQuantitativoAtendimentoService::getMeses()
|
|
->where('value', request()->periodo['mes'])
|
|
->first()['text'],
|
|
'unidade' => $unidade->nome_fantasia ?? 'Todas',
|
|
'infraestrutura' => $infraestrutura->nome ?? 'Todos',
|
|
'ocupacao' => $ocupacao ? "{$ocupacao->codigo} - {$ocupacao->nome}" : 'Todas',
|
|
'especialidade' => $especialidade->nome ?? 'Todas',
|
|
'colunas' => collect(request()->columns),
|
|
'colunasTotalizadores' => collect(request()->columns)
|
|
->reject(fn ($c) => $c['key'] === 'usuario_nome')
|
|
->values(),
|
|
'itens' => $itens,
|
|
'totalizadores' => $resultado['totalizadores'],
|
|
];
|
|
}
|
|
|
|
public function __invoke()
|
|
{
|
|
return Pdf1::generate(self::TITLE, self::TEMPLATE, self::getTemplate());
|
|
}
|
|
}
|