63 lines
1.9 KiB
PHP
63 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Impressao\Almoxarifado;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Cadastro\Grupo\Grupo;
|
|
use App\Models\Cadastro\Subgrupo\Subgrupo;
|
|
use App\Services\Almoxarifado\BalanceteService;
|
|
use App\Utils\Exports\Pdf1;
|
|
use Carbon\Carbon;
|
|
|
|
class BalanceteController extends Controller
|
|
{
|
|
private const TITLE = 'BALANCETE';
|
|
private const TEMPLATE = 'almoxarifado.balancete';
|
|
|
|
public static function getTemplate()
|
|
{
|
|
$periodo = [
|
|
'inicio' => Carbon::createFromFormat('d/m/Y', request()->inicio)->setTime(0, 0, 0),
|
|
'fim' => Carbon::createFromFormat('d/m/Y', request()->fim)->setTime(23, 59, 59),
|
|
];
|
|
|
|
$grupo = request()->query('grupo_id') ? Grupo::find(request()->query('grupo_id')) : null;
|
|
$subgrupo = request()->query('subgrupo_id') ? Subgrupo::find(request()->query('subgrupo_id')) : null;
|
|
$colunas = collect(request()->selectedCols);
|
|
|
|
$balancete = BalanceteService::getBalancete($periodo, request()->grupo_id, request()->subgrupo_id, request()->origem_programatica_id);
|
|
|
|
BalanceteService::formatarSaldos($balancete);
|
|
|
|
$itens = null;
|
|
|
|
if ($colunas->contains('material')) {
|
|
|
|
$itens = $balancete['por_material'];
|
|
}
|
|
else if ($colunas->contains('subgrupo')) {
|
|
|
|
$itens = $balancete['por_subgrupo'];
|
|
}
|
|
else {
|
|
|
|
$itens = $balancete['por_grupo'];
|
|
}
|
|
|
|
return [
|
|
'inicio' => request()->inicio,
|
|
'fim' => request()->fim,
|
|
'grupo' => $grupo->nome ?? null,
|
|
'subgrupo' => $subgrupo->nome ?? null,
|
|
'colunas' => $colunas,
|
|
'itens' => $itens,
|
|
'totalizadores' => $balancete['totalizadores'],
|
|
];
|
|
}
|
|
|
|
public function __invoke()
|
|
{
|
|
return Pdf1::generate(self::TITLE, self::TEMPLATE, self::getTemplate());
|
|
}
|
|
}
|