53 lines
1.9 KiB
PHP
53 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Impressao\Almoxarifado;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Almoxarifado\Requisicao;
|
|
use App\Services\Almoxarifado\RequisicaoPendentePermissaoService;
|
|
use App\Utils\Exports\Pdf1;
|
|
use App\Utils\MaskUtil;
|
|
use Carbon\Carbon;
|
|
|
|
class RequisicaoSeparacaoMaterialController extends Controller
|
|
{
|
|
private const TITLE = 'REQUISIÇÃO - SEPARAR MATERIAL';
|
|
private const TEMPLATE = 'almoxarifado.requisicao-separacao-material';
|
|
|
|
public static function getTemplate($id)
|
|
{
|
|
$requisicao = Requisicao::findOrFail($id);
|
|
$data = RequisicaoPendentePermissaoService::edit($id);
|
|
$isPrimeiroEnvio = $data['form']['envios']->isEmpty();
|
|
|
|
$data['model']['itens'] = $data['model']['itens']->map(function ($item) {
|
|
|
|
$item['entrada_itens'] = $item['entrada_itens']
|
|
->filter(fn ($i) => $i['quantidade_saida'] > 0)
|
|
->values();
|
|
|
|
return $item;
|
|
});
|
|
|
|
return [
|
|
'data' => (new Carbon($requisicao->created_at))->format('d/m/Y'),
|
|
'numero' => $requisicao->numero,
|
|
'requisitante' => [
|
|
'unidade' => $requisicao->createdCentroCusto->infraestrutura->unidade->nome_fantasia,
|
|
'local_atendimento' => $requisicao->createdCentroCusto->infraestrutura->nome,
|
|
'setor' => $requisicao->createdCentroCusto->setor->nome,
|
|
'usuario' => $requisicao->createdLotacao->usuario->cidadao->nome,
|
|
'endereco' => $requisicao->createdCentroCusto->infraestrutura->endereco->completo,
|
|
'telefone' => MaskUtil::getPhoneMasked($requisicao->createdCentroCusto->infraestrutura->telefone)
|
|
],
|
|
'isPrimeiroEnvio' => $isPrimeiroEnvio,
|
|
'itens' => $data['model']['itens'],
|
|
];
|
|
}
|
|
|
|
public function __invoke($id)
|
|
{
|
|
return Pdf1::generate(self::TITLE, self::TEMPLATE, self::getTemplate($id));
|
|
}
|
|
}
|