47 lines
2.0 KiB
PHP
47 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App\Exports\Almoxarifado\Relatorios;
|
|
|
|
use App\Models\Almoxarifado\EntradaTipo;
|
|
use App\Models\Almoxarifado\SaidaTipo;
|
|
use App\Models\Cadastro\Estabelecimento\Infraestrutura;
|
|
use App\Models\Cadastro\Estabelecimento\Setor;
|
|
use App\Models\Cadastro\Estabelecimento\Unidade;
|
|
use App\Models\Cadastro\Material\Material;
|
|
use App\Models\Cadastro\OrigemProgramatica;
|
|
use App\Models\Cadastro\SujeitoAtencao\Usuario;
|
|
use App\Services\Almoxarifado\Relatorios\MovimentacaoGeralService;
|
|
use Illuminate\Contracts\View\View;
|
|
use Maatwebsite\Excel\Concerns\FromView;
|
|
|
|
class MovimentacaoGeral implements FromView
|
|
{
|
|
private const TITLE = 'RELATÓRIO DE MOVIMENTAÇÃO GERAL';
|
|
private const VIEW = 'exportacoes.almoxarifado.relatorios.movimentacao-geral';
|
|
|
|
public function view(): View
|
|
{
|
|
$itens = MovimentacaoGeralService::index();
|
|
|
|
$data = [
|
|
'title' => self::TITLE,
|
|
'periodo' => [
|
|
'start' => request()->periodo['start'],
|
|
'end' => request()->periodo['end'],
|
|
],
|
|
'movimentacao_tipo' => request()->movimentacao_tipo === 'entrada' ? 'ENTRADA' : 'SAÍDA',
|
|
'movimentacao_subtipo' => (request()->movimentacao_tipo === 'entrada' ? EntradaTipo::find(request()->movimentacao_subtipo_id)->nome ?? null : SaidaTipo::find(request()->movimentacao_subtipo_id)->nome ?? null) ?? 'Todos',
|
|
'unidade' => Unidade::find(request()->unidade_id)->nome_fantasia ?? 'Todas',
|
|
'infraestrutura' => Infraestrutura::find(request()->infraestrutura_id)->nome ?? 'Todos',
|
|
'setor' => Setor::find(request()->setor_id)->nome ?? 'Todos',
|
|
'usuario' => Usuario::find(request()->usuario_id)->nome ?? 'Todos',
|
|
'origem_programatica' => OrigemProgramatica::find(request()->origem_programatica_id)->nome ?? 'Todas',
|
|
'material' => Material::find(request()->material_id)->descricao_completa ?? 'Todos',
|
|
'colunas' => collect(request()->selected_cols),
|
|
'itens' => $itens,
|
|
];
|
|
|
|
return view(self::VIEW, $data);
|
|
}
|
|
}
|