77 lines
2.7 KiB
PHP
77 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Impressao\Cadastro;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Cadastro\Grupo\Grupo;
|
|
use App\Models\Cadastro\Material\LivroRegistro;
|
|
use App\Models\Cadastro\Material\LivroRegistroTipo;
|
|
use App\Models\Cadastro\Material\Material;
|
|
use App\Models\Cadastro\Medicamento\FormaFarmaceutica;
|
|
use App\Models\Cadastro\Medicamento\ReceitaTipo;
|
|
use App\Models\Cadastro\Subgrupo\Subgrupo;
|
|
use App\Services\Cadastro\RelatorioMaterialService;
|
|
use App\Utils\Exports\Pdf1;
|
|
|
|
class RelatorioMaterialController extends Controller
|
|
{
|
|
private const TITLE = 'RELATÓRIO DE MATERIAL';
|
|
private const TEMPLATE = 'cadastro.relatorio-material';
|
|
|
|
public static function getTemplate()
|
|
{
|
|
$grupo = Grupo::find(request()->grupo_id);
|
|
$subgrupo = Subgrupo::find(request()->subgrupo_id);
|
|
$receitaTipo = ReceitaTipo::find(request()->receita_tipo_id);
|
|
$livro = LivroRegistro::find(request()->livro_registro_id);
|
|
$livroTipo = LivroRegistroTipo::find(request()->livro_registro_tipo_id);
|
|
$formaFarmaceutica = FormaFarmaceutica::find(request()->forma_farmaceutica_id);
|
|
$programasAcoes = collect();
|
|
$material = Material::find(request()->material_id);
|
|
|
|
if (is_array(request()->programas_acoes)) {
|
|
if (in_array('is_alto_custo', request()->programas_acoes)) {
|
|
$programasAcoes->push('Alto custo');
|
|
}
|
|
|
|
if (in_array('is_programa_remedio_em_casa', request()->programas_acoes)) {
|
|
$programasAcoes->push('Programa remédio em casa');
|
|
}
|
|
|
|
if (in_array('is_acao_judicial', request()->programas_acoes)) {
|
|
$programasAcoes->push('Ação judicial');
|
|
}
|
|
|
|
if (in_array('is_remume', request()->programas_acoes)) {
|
|
$programasAcoes->push('REMUME');
|
|
}
|
|
}
|
|
|
|
if ($programasAcoes->isNotEmpty()) {
|
|
$programasAcoes = $programasAcoes->join(', ');
|
|
} else {
|
|
$programasAcoes = 'Todos';
|
|
}
|
|
|
|
$itens = RelatorioMaterialService::index();
|
|
|
|
return [
|
|
'grupo' => $grupo->nome ?? 'Todos',
|
|
'subgrupo' => $subgrupo->nome ?? 'Todos',
|
|
'receita_tipo' => $receitaTipo->nome ?? 'Todos',
|
|
'livro' => $livro->nome ?? 'Todos',
|
|
'livro_tipo' => $livroTipo->nome ?? 'Todos',
|
|
'forma_farmaceutica' => $formaFarmaceutica->nome ?? 'Todos',
|
|
'programas_acoes' => $programasAcoes,
|
|
'material' => $material->nome ?? 'Todos',
|
|
'columns' => collect(request()->columns),
|
|
'itens' => $itens,
|
|
];
|
|
}
|
|
|
|
public function __invoke()
|
|
{
|
|
return Pdf1::generate(self::TITLE, self::TEMPLATE, self::getTemplate());
|
|
}
|
|
}
|