This commit is contained in:
@@ -0,0 +1,567 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Farmacia;
|
||||
|
||||
use App\Enums\Almoxarifado\EntradaTipo;
|
||||
use App\Enums\Almoxarifado\SaidaTipo;
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Cadastro\Estabelecimento\Infraestrutura;
|
||||
use App\Models\Cadastro\Estabelecimento\Unidade;
|
||||
use App\Models\Cadastro\Material\Material;
|
||||
use App\Services\Cadastro\Material\MaterialService;
|
||||
use App\Services\Service;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class RelatorioMovimentacaoPsicotropicoService extends Service
|
||||
{
|
||||
public static function index()
|
||||
{
|
||||
$periodo = [
|
||||
'start' => Carbon::createFromFormat('d/m/Y', request()->periodo['start'])->setTime(0, 0, 0),
|
||||
'end' => Carbon::createFromFormat('d/m/Y', request()->periodo['end'])->setTime(23, 59, 59)
|
||||
];
|
||||
|
||||
$movimentacoes = DB::query()
|
||||
->fromSub(DB::table('almoxarifado_entrada_item as entrada_item')
|
||||
->join(
|
||||
'almoxarifado_entrada as entrada',
|
||||
'entrada.id',
|
||||
'entrada_item.entrada_id'
|
||||
)
|
||||
->where('entrada_item.material_id', request()->material_id)
|
||||
->where('entrada.finalizada', true)
|
||||
->where('entrada.centro_custo_id', request()->centro_custo_id)
|
||||
->whereBetween('entrada.created_at', $periodo)
|
||||
->select(DB::raw("
|
||||
entrada.created_at,
|
||||
(
|
||||
CASE entrada.tipo_id
|
||||
WHEN " . EntradaTipo::REQUISICAO . " THEN 'ENTRADA (REQUISIÇÃO)'
|
||||
WHEN " . EntradaTipo::TRANSFERENCIA . " THEN 'ENTRADA (TRANSFERÊNCIA)'
|
||||
ELSE 'ENTRADA'
|
||||
END
|
||||
) as tipo,
|
||||
CONCAT(
|
||||
IF(entrada_item.estornado_em IS NULL, '', '(ESTORNADO) '),
|
||||
(
|
||||
CASE entrada.tipo_id
|
||||
WHEN " . EntradaTipo::REQUISICAO . " THEN (
|
||||
SELECT CONCAT(
|
||||
'ORIGEM: ',
|
||||
u.nome_fantasia,
|
||||
' (Local de atendimento: ',
|
||||
COALESCE(i.nome, u.nome_fantasia),
|
||||
' - ',
|
||||
'Setor: ',
|
||||
s.nome,
|
||||
')'
|
||||
)
|
||||
FROM almoxarifado_requisicao_resposta_item_entrada_item riei
|
||||
JOIN almoxarifado_requisicao_resposta_item ri
|
||||
ON ri.id = riei.requisicao_resposta_item_id
|
||||
JOIN cadastro_centro_custo as cc
|
||||
ON cc.id = ri.created_centro_custo_id
|
||||
JOIN cadastro_setor s
|
||||
ON s.id = cc.setor_id
|
||||
JOIN cadastro_infraestrutura as i
|
||||
ON i.id = cc.infraestrutura_id
|
||||
JOIN cadastro_unidade as u
|
||||
ON u.id = i.unidade_id
|
||||
WHERE riei.entrada_item_id = entrada_item.id
|
||||
)
|
||||
WHEN " . EntradaTipo::TRANSFERENCIA . " THEN (
|
||||
SELECT CONCAT(
|
||||
'ORIGEM: ',
|
||||
u.nome_fantasia,
|
||||
' (Local de atendimento: ',
|
||||
COALESCE(i.nome, u.nome_fantasia),
|
||||
' - ',
|
||||
'Setor: ',
|
||||
s.nome,
|
||||
')'
|
||||
)
|
||||
FROM cadastro_centro_custo as cc
|
||||
JOIN cadastro_setor s ON s.id = cc.setor_id
|
||||
JOIN cadastro_infraestrutura as i ON i.id = cc.infraestrutura_id
|
||||
JOIN cadastro_unidade as u ON u.id = i.unidade_id
|
||||
WHERE cc.id = entrada.created_centro_custo_id
|
||||
)
|
||||
WHEN " . EntradaTipo::INVENTARIO . " THEN 'AJUSTE DE ESTOQUE'
|
||||
WHEN " . EntradaTipo::ESTORNO . " THEN 'ESTORNO DE SAÍDA'
|
||||
ELSE ''
|
||||
END
|
||||
)
|
||||
) as historico,
|
||||
(
|
||||
SELECT SUM(
|
||||
almoxarifado_entrada_item.quantidade
|
||||
-
|
||||
COALESCE((
|
||||
SELECT SUM(almoxarifado_saida_item_entrada_item.quantidade_saida)
|
||||
FROM almoxarifado_saida_item_entrada_item
|
||||
JOIN almoxarifado_saida_item
|
||||
ON almoxarifado_saida_item.id = almoxarifado_saida_item_entrada_item.saida_item_id
|
||||
JOIN almoxarifado_saida
|
||||
ON almoxarifado_saida.id = almoxarifado_saida_item.saida_id
|
||||
WHERE almoxarifado_saida_item_entrada_item.entrada_item_id = almoxarifado_entrada_item.id
|
||||
AND almoxarifado_saida.finalizada = 1
|
||||
AND almoxarifado_saida.centro_custo_id = " . request()->centro_custo_id . "
|
||||
AND almoxarifado_saida.created_at <= entrada.created_at
|
||||
), 0)
|
||||
)
|
||||
FROM almoxarifado_entrada_item
|
||||
JOIN almoxarifado_entrada
|
||||
ON almoxarifado_entrada.id = almoxarifado_entrada_item.entrada_id
|
||||
WHERE almoxarifado_entrada.finalizada = 1
|
||||
AND almoxarifado_entrada.centro_custo_id = " . request()->centro_custo_id . "
|
||||
AND almoxarifado_entrada_item.material_id = entrada_item.material_id
|
||||
AND almoxarifado_entrada.created_at <= entrada.created_at
|
||||
) as estoque,
|
||||
CONCAT('+ ', entrada_item.quantidade) as quantidade
|
||||
"))
|
||||
->unionAll(DB::table('almoxarifado_saida_item as saida_item')
|
||||
->join(
|
||||
'almoxarifado_saida as saida',
|
||||
'saida.id',
|
||||
'saida_item.saida_id'
|
||||
)
|
||||
->where('saida_item.material_id', request()->material_id)
|
||||
->where('saida.finalizada', true)
|
||||
->where('saida.centro_custo_id', request()->centro_custo_id)
|
||||
->whereBetween('saida.created_at', $periodo)
|
||||
->select(DB::raw("
|
||||
saida.created_at,
|
||||
(
|
||||
CASE saida.tipo_id
|
||||
WHEN " . SaidaTipo::REQUISICAO . " THEN 'SAÍDA (REQUISIÇÃO)'
|
||||
WHEN " . SaidaTipo::TRANSFERENCIA . " THEN 'SAÍDA (TRANSFERÊNCIA)'
|
||||
WHEN " . SaidaTipo::DISPENSACAO_FARMACIA . " THEN 'SAÍDA (DISPENSAÇÃO)'
|
||||
WHEN " . SaidaTipo::BAIXA . " THEN 'BAIXA'
|
||||
WHEN " . SaidaTipo::MANUAL . " THEN 'SAÍDA (MANUAL)'
|
||||
ELSE 'SAÍDA'
|
||||
END
|
||||
) as tipo,
|
||||
CONCAT(
|
||||
IF(saida_item.estornado_em IS NULL, '', '(ESTORNADO) '),
|
||||
(
|
||||
CASE saida.tipo_id
|
||||
WHEN " . SaidaTipo::REQUISICAO . " THEN (
|
||||
SELECT CONCAT(
|
||||
'DESTINO: ',
|
||||
u.nome_fantasia,
|
||||
' (Local de atendimento: ',
|
||||
COALESCE(i.nome, u.nome_fantasia),
|
||||
' - ',
|
||||
'Setor: ',
|
||||
s.nome,
|
||||
')'
|
||||
)
|
||||
FROM almoxarifado_requisicao_resposta_item ri
|
||||
JOIN almoxarifado_requisicao_item reqi
|
||||
ON reqi.id = ri.requisicao_item_id
|
||||
JOIN cadastro_centro_custo as cc
|
||||
ON cc.id = reqi.created_centro_custo_id
|
||||
JOIN cadastro_setor s
|
||||
ON s.id = cc.setor_id
|
||||
JOIN cadastro_infraestrutura as i
|
||||
ON i.id = cc.infraestrutura_id
|
||||
JOIN cadastro_unidade as u
|
||||
ON u.id = i.unidade_id
|
||||
WHERE ri.saida_item_id = saida_item.id
|
||||
)
|
||||
WHEN " . SaidaTipo::TRANSFERENCIA . " THEN (
|
||||
SELECT CONCAT(
|
||||
'DESTINO: ',
|
||||
u.nome_fantasia,
|
||||
' (Local de atendimento: ',
|
||||
COALESCE(i.nome, u.nome_fantasia),
|
||||
' - ',
|
||||
'Setor: ',
|
||||
s.nome,
|
||||
')'
|
||||
)
|
||||
FROM almoxarifado_saida_transferencia as st
|
||||
JOIN cadastro_centro_custo as cc ON cc.id = st.centro_custo_id
|
||||
JOIN cadastro_setor as s ON s.id = cc.setor_id
|
||||
JOIN cadastro_infraestrutura as i ON i.id = cc.infraestrutura_id
|
||||
JOIN cadastro_unidade as u ON u.id = i.unidade_id
|
||||
WHERE st.saida_id = saida.id
|
||||
)
|
||||
WHEN " . SaidaTipo::DISPENSACAO_FARMACIA . " THEN (
|
||||
SELECT c.nome
|
||||
FROM farmacia_receita_item_entrega as rie
|
||||
JOIN farmacia_receita_item as ri ON ri.id = rie.receita_item_id
|
||||
JOIN farmacia_receita as r ON r.id = ri.receita_id
|
||||
JOIN cadastro_paciente as p ON p.id = r.paciente_id
|
||||
JOIN cadastro_cidadao as c ON c.id = p.cidadao_id
|
||||
WHERE rie.saida_item_id = saida_item.id
|
||||
)
|
||||
WHEN " . SaidaTipo::BAIXA . " THEN (
|
||||
SELECT m.descricao
|
||||
FROM almoxarifado_saida_baixa as b
|
||||
JOIN almoxarifado_motivo_baixa as m ON m.id = b.motivo_id
|
||||
WHERE b.saida_id = saida.id
|
||||
)
|
||||
WHEN " . SaidaTipo::MANUAL . " THEN (
|
||||
SELECT CONCAT(
|
||||
'DESTINO: ',
|
||||
u.nome_fantasia,
|
||||
' (Local de atendimento: ',
|
||||
COALESCE(i.nome, u.nome_fantasia),
|
||||
' - ',
|
||||
'Setor: ',
|
||||
s.nome,
|
||||
')'
|
||||
)
|
||||
FROM almoxarifado_saida_requisicao as sr
|
||||
JOIN cadastro_centro_custo as cc ON cc.id = sr.centro_custo_id
|
||||
JOIN cadastro_setor as s ON s.id = cc.setor_id
|
||||
JOIN cadastro_infraestrutura as i ON i.id = cc.infraestrutura_id
|
||||
JOIN cadastro_unidade as u ON u.id = i.unidade_id
|
||||
WHERE sr.saida_id = saida.id
|
||||
)
|
||||
WHEN " . SaidaTipo::INVENTARIO . " THEN 'AJUSTE DE ESTOQUE'
|
||||
WHEN " . SaidaTipo::ESTORNO . " THEN 'ESTORNO DE ENTRADA'
|
||||
ELSE ''
|
||||
END
|
||||
)
|
||||
) as historico,
|
||||
(
|
||||
SELECT SUM(
|
||||
almoxarifado_entrada_item.quantidade
|
||||
-
|
||||
COALESCE((
|
||||
SELECT SUM(almoxarifado_saida_item_entrada_item.quantidade_saida)
|
||||
FROM almoxarifado_saida_item_entrada_item
|
||||
JOIN almoxarifado_saida_item
|
||||
ON almoxarifado_saida_item.id = almoxarifado_saida_item_entrada_item.saida_item_id
|
||||
JOIN almoxarifado_saida
|
||||
ON almoxarifado_saida.id = almoxarifado_saida_item.saida_id
|
||||
WHERE almoxarifado_saida_item_entrada_item.entrada_item_id = almoxarifado_entrada_item.id
|
||||
AND almoxarifado_saida.finalizada = 1
|
||||
AND almoxarifado_saida.centro_custo_id = " . request()->centro_custo_id . "
|
||||
AND almoxarifado_saida.created_at <= saida.created_at
|
||||
), 0)
|
||||
)
|
||||
FROM almoxarifado_entrada_item
|
||||
JOIN almoxarifado_entrada
|
||||
ON almoxarifado_entrada.id = almoxarifado_entrada_item.entrada_id
|
||||
WHERE almoxarifado_entrada.finalizada = 1
|
||||
AND almoxarifado_entrada.centro_custo_id = " . request()->centro_custo_id . "
|
||||
AND almoxarifado_entrada_item.material_id = saida_item.material_id
|
||||
AND almoxarifado_entrada.created_at <= saida.created_at
|
||||
) as estoque
|
||||
"))
|
||||
->addSelect([
|
||||
'quantidade' => function ($query) {
|
||||
|
||||
$query->select(DB::raw("CONCAT('- ', SUM(saida_item_entrada_item.quantidade_saida))"))
|
||||
->from('almoxarifado_saida_item_entrada_item as saida_item_entrada_item')
|
||||
->whereColumn('saida_item_entrada_item.saida_item_id', 'saida_item.id');
|
||||
}
|
||||
])
|
||||
)
|
||||
, 'sub')
|
||||
->select(DB::raw("
|
||||
DATE_FORMAT(sub.created_at, '%d/%m/%Y') as data,
|
||||
sub.tipo,
|
||||
sub.historico,
|
||||
sub.quantidade,
|
||||
sub.estoque
|
||||
"))
|
||||
->orderBy('sub.created_at')
|
||||
->get();
|
||||
|
||||
$estoqueAnterior = DB::select("
|
||||
SELECT COALESCE(SUM(
|
||||
almoxarifado_entrada_item.quantidade
|
||||
-
|
||||
COALESCE((
|
||||
SELECT SUM(almoxarifado_saida_item_entrada_item.quantidade_saida)
|
||||
FROM almoxarifado_saida_item_entrada_item
|
||||
JOIN almoxarifado_saida_item
|
||||
ON almoxarifado_saida_item.id = almoxarifado_saida_item_entrada_item.saida_item_id
|
||||
JOIN almoxarifado_saida
|
||||
ON almoxarifado_saida.id = almoxarifado_saida_item.saida_id
|
||||
WHERE almoxarifado_saida_item_entrada_item.entrada_item_id = almoxarifado_entrada_item.id
|
||||
AND almoxarifado_saida.finalizada = 1
|
||||
AND almoxarifado_saida.centro_custo_id = " . request()->centro_custo_id . "
|
||||
AND almoxarifado_saida.created_at < '" . $periodo['start']->format('Y-m-d H:i:s') . "'
|
||||
), 0)
|
||||
), 0) as estoque
|
||||
FROM almoxarifado_entrada_item
|
||||
JOIN almoxarifado_entrada
|
||||
ON almoxarifado_entrada.id = almoxarifado_entrada_item.entrada_id
|
||||
WHERE almoxarifado_entrada.finalizada = 1
|
||||
AND almoxarifado_entrada.centro_custo_id = " . request()->centro_custo_id . "
|
||||
AND almoxarifado_entrada_item.material_id = " . request()->material_id . "
|
||||
AND almoxarifado_entrada.created_at < '" . $periodo['start']->format('Y-m-d H:i:s') . "';
|
||||
")[0]->estoque;
|
||||
|
||||
return [
|
||||
'movimentacoes' => $movimentacoes,
|
||||
'estoque_anterior' => $estoqueAnterior,
|
||||
];
|
||||
}
|
||||
|
||||
public static function list()
|
||||
{
|
||||
$data = (object) [
|
||||
'additionals' => [],
|
||||
'form' => [],
|
||||
'model' => [],
|
||||
];
|
||||
|
||||
$params = self::getParams();
|
||||
|
||||
$sets = [
|
||||
'periodo' => function () use ($data) {
|
||||
|
||||
$data->model['periodo'] = ['start' => null, 'end' => null];
|
||||
},
|
||||
'unidade' => function () use ($data, $params) {
|
||||
|
||||
$unidadesData = self::getUnidadesData($params);
|
||||
|
||||
$data->form['unidades'] = $unidadesData['form'];
|
||||
$data->model['unidade_id'] = $params->unidade_id = $unidadesData['model'];
|
||||
},
|
||||
'infraestrutura' => function () use ($data, $params) {
|
||||
|
||||
$infraestruturasData = self::getInfraestruturasData($params);
|
||||
|
||||
$data->form['infraestruturas'] = $infraestruturasData['form'];
|
||||
$data->model['infraestrutura_id'] = $params->infraestrutura_id = $infraestruturasData['model'];
|
||||
},
|
||||
'centro_custo' => function () use ($data, $params) {
|
||||
|
||||
$centrosDeCustoData = self::getCentrosDeCustoData($params);
|
||||
|
||||
$data->form['centros_custo'] = $centrosDeCustoData['form'];
|
||||
$data->model['centro_custo_id'] = $params->centro_custo_id = $centrosDeCustoData['model'];
|
||||
},
|
||||
'material' => function () use ($data) {
|
||||
|
||||
$data->model['material'] = null;
|
||||
}
|
||||
];
|
||||
|
||||
$load = is_null(request()->load_from);
|
||||
|
||||
if ($load) {
|
||||
|
||||
$data->additionals = [
|
||||
'data_atual' => Carbon::now()->format('d/m/Y'),
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($sets as $field => $set) {
|
||||
|
||||
if ($load) {
|
||||
|
||||
$set();
|
||||
}
|
||||
else if ($field === request()->load_from) {
|
||||
|
||||
$load = true;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($data as $property => $itens) {
|
||||
|
||||
if (empty($itens)) {
|
||||
|
||||
unset($data->{$property});
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
private static function getParams()
|
||||
{
|
||||
$params = (object) request()->only([
|
||||
'periodo',
|
||||
'unidade_id',
|
||||
'infraestrutura_id',
|
||||
'centro_custo_id',
|
||||
]);
|
||||
|
||||
if (isset($params->periodo)
|
||||
&& !is_null($params->periodo['start'])
|
||||
&& !is_null($params->periodo['end'])
|
||||
) {
|
||||
|
||||
$start = Carbon::createFromFormat('d/m/Y', $params->periodo['start'])->setTime(0, 0, 0);
|
||||
$end = Carbon::createFromFormat('d/m/Y', $params->periodo['end'])->setTime(23, 59, 59);
|
||||
|
||||
$params->periodo['start'] = $start;
|
||||
$params->periodo['end'] = $end;
|
||||
}
|
||||
else {
|
||||
|
||||
$params->periodo = null;
|
||||
}
|
||||
|
||||
return $params;
|
||||
}
|
||||
|
||||
private static function getUnidadesData($params)
|
||||
{
|
||||
$unidades = collect();
|
||||
$id = null;
|
||||
|
||||
if (!is_null($params->periodo)) {
|
||||
|
||||
$unidades = Unidade::whereHas('infraestruturas', fn ($q) => $q
|
||||
->whereHas('centrosCusto', fn ($q) => self::setWhereForFilterCentroCusto($q, $params))
|
||||
)
|
||||
->orderBy('nome_fantasia')
|
||||
->get(['id', 'nome_fantasia']);
|
||||
|
||||
if ($unidades->count() === 1) {
|
||||
|
||||
$id = $unidades->first()->id;
|
||||
}
|
||||
}
|
||||
|
||||
return ['form' => $unidades, 'model' => $id];
|
||||
}
|
||||
|
||||
private static function getInfraestruturasData($params)
|
||||
{
|
||||
$infraestruturas = collect();
|
||||
$id = null;
|
||||
|
||||
if (!is_null($params->periodo) && !is_null($params->unidade_id)) {
|
||||
|
||||
$infraestruturas = Infraestrutura::where('unidade_id', $params->unidade_id)
|
||||
->whereHas('centrosCusto', fn ($q) => self::setWhereForFilterCentroCusto($q, $params))
|
||||
->get(['id', 'nome', 'principal', 'unidade_id'])
|
||||
->map(fn ($i) => (object) ['id' => $i->id, 'nome' => $i->nome])
|
||||
->sortBy('nome')
|
||||
->values();
|
||||
|
||||
if ($infraestruturas->count() === 1) {
|
||||
|
||||
$id = $infraestruturas->first()->id;
|
||||
}
|
||||
}
|
||||
|
||||
return ['form' => $infraestruturas, 'model' => $id];
|
||||
}
|
||||
|
||||
private static function getCentrosDeCustoData($params)
|
||||
{
|
||||
$centrosCusto = collect();
|
||||
$id = null;
|
||||
|
||||
if (!is_null($params->periodo) && !is_null($params->infraestrutura_id)) {
|
||||
|
||||
$centrosCusto = CentroCusto::where('infraestrutura_id', $params->infraestrutura_id)
|
||||
->where(fn ($q) => self::setWhereForFilterCentroCusto($q, $params))
|
||||
->get(['id', 'setor_id'])
|
||||
->map(fn ($cc) => (object) ['id' => $cc->id, 'setor_nome' => $cc->setor->nome])
|
||||
->sortBy('setor_nome')
|
||||
->values();
|
||||
|
||||
if ($centrosCusto->count() === 1) {
|
||||
|
||||
$id = $centrosCusto->first()->id;
|
||||
}
|
||||
}
|
||||
|
||||
return ['form' => $centrosCusto, 'model' => $id];
|
||||
}
|
||||
|
||||
private static function setWhereForFilterCentroCusto($query, $params)
|
||||
{
|
||||
$query->whereHas('almoxarifadoEntradas', fn ($q) => $q
|
||||
->where('finalizada', true)
|
||||
->whereBetween('created_at', $params->periodo)
|
||||
->whereHas('itens', fn ($q) => $q
|
||||
->whereHas('material', fn ($q) => $q
|
||||
->whereIn('livro_registro_id', LivroPsicotropicoService::$livroRegistroIds)
|
||||
)
|
||||
)
|
||||
)
|
||||
->orWhereHas('almoxarifadoSaidas', fn ($q) => $q
|
||||
->where('finalizada', true)
|
||||
->whereBetween('created_at', $params->periodo)
|
||||
->whereHas('itens', fn ($q) => $q
|
||||
->whereHas('material', fn ($q) => $q
|
||||
->whereIn('livro_registro_id', LivroPsicotropicoService::$livroRegistroIds)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public static function autocompleteMaterial()
|
||||
{
|
||||
$params = self::getParams();
|
||||
|
||||
$materiais = Material::whereIn('livro_registro_id', LivroPsicotropicoService::$livroRegistroIds)
|
||||
->where(fn ($q) => $q
|
||||
->whereHas('almoxarifadoEntradaItens', fn ($q) => $q
|
||||
->whereHas('entrada', fn ($q) => $q
|
||||
->where('finalizada', true)
|
||||
->where('centro_custo_id', $params->centro_custo_id)
|
||||
->whereBetween('created_at', $params->periodo)
|
||||
)
|
||||
)
|
||||
->orWhereHas('almoxarifadoSaidaItens', fn ($q) => $q
|
||||
->whereHas('saida', fn ($q) => $q
|
||||
->where('finalizada', true)
|
||||
->where('centro_custo_id', $params->centro_custo_id)
|
||||
->whereBetween('created_at', $params->periodo)
|
||||
)
|
||||
)
|
||||
)
|
||||
->getQuery()
|
||||
->join(
|
||||
'cadastro_apresentacao',
|
||||
'cadastro_apresentacao.id',
|
||||
'cadastro_material.apresentacao_id'
|
||||
)
|
||||
->leftJoin(
|
||||
'cadastro_unidade_medida as apresentacao_unidade_medida',
|
||||
'apresentacao_unidade_medida.id',
|
||||
'cadastro_material.apresentacao_unidade_medida_id'
|
||||
)
|
||||
->select(
|
||||
'cadastro_material.id',
|
||||
DB::raw(MaterialService::getDescricaoCompletaRaw(
|
||||
'cadastro_material',
|
||||
'cadastro_apresentacao',
|
||||
'apresentacao_unidade_medida'
|
||||
) . " as descricao"),
|
||||
);
|
||||
|
||||
return $materiais;
|
||||
}
|
||||
|
||||
public static function getPrintExportData()
|
||||
{
|
||||
$resultado = self::index();
|
||||
$itens = $resultado['movimentacoes'];
|
||||
|
||||
$unidade = Unidade::find(request()->unidade_id);
|
||||
$infraestrutura = Infraestrutura::find(request()->infraestrutura_id);
|
||||
$centroCusto = CentroCusto::find(request()->centro_custo_id);
|
||||
$material = Material::find(request()->material_id);
|
||||
|
||||
return [
|
||||
'inicio' => request()->periodo['start'],
|
||||
'fim' => request()->periodo['end'],
|
||||
'unidade' => $unidade->nome_fantasia,
|
||||
'infraestrutura' => $infraestrutura->nome,
|
||||
'setor' => $centroCusto->setor->nome,
|
||||
'material' => $material->descricao_completa,
|
||||
'colunas' => collect(request()->selectedColumns),
|
||||
'itens' => $itens,
|
||||
'estoqueAnterior' => $resultado['estoque_anterior'],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user