38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Exports\AtencaoBasica;
|
|
|
|
use App\Services\AtencaoBasica\RelatorioAtividadeColetivaService;
|
|
use Illuminate\Contracts\View\View;
|
|
use Maatwebsite\Excel\Concerns\FromView;
|
|
|
|
class RelatorioAtividadeColetiva implements FromView
|
|
{
|
|
private const TITLE = 'RELATÓRIO DE ATIVIDADE COLETIVA';
|
|
private const VIEW = 'exportacoes.atencao-basica.relatorio-atividade-coletiva';
|
|
|
|
public function view(): View
|
|
{
|
|
$data = RelatorioAtividadeColetivaService::list();
|
|
|
|
$itens = $data->itens;
|
|
|
|
if (request()->sort_by) {
|
|
$sortBy = request()->sort_by;
|
|
$sortDesc = request()->sort_desc === 'true';
|
|
|
|
$itens = $sortDesc
|
|
? $itens->sortByDesc(fn ($item) => $item->{$sortBy})->values()
|
|
: $itens->sortBy(fn ($item) => $item->{$sortBy})->values();
|
|
}
|
|
|
|
return view(self::VIEW, [
|
|
'title' => self::TITLE,
|
|
'itens' => $itens,
|
|
'totalizadores' => $data->totalizadores,
|
|
'colunas' => request()->get('colunas', []),
|
|
'filtros' => request()->get('filtros', []),
|
|
]);
|
|
}
|
|
}
|