Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b468049cfb | |||
| c81d631cf0 |
+470
-16
@@ -1,6 +1,6 @@
|
||||
import { createModuleFactory } from "@davinti/jeff";
|
||||
|
||||
const moduleFactory = createModuleFactory(["C5"]);
|
||||
const moduleFactory = createModuleFactory(["C5", "C5_mambo"]);
|
||||
|
||||
export default moduleFactory
|
||||
.createModule({
|
||||
@@ -475,30 +475,27 @@ export default moduleFactory
|
||||
entrypoint: "consulta",
|
||||
})
|
||||
.withImplementations({
|
||||
C5: {
|
||||
C5_mambo: {
|
||||
consulta: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
SELECT
|
||||
CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code,
|
||||
p.DESCCOMPLETA AS title
|
||||
FROM
|
||||
DIN_ABASTECIMENTO_PRODUTOS p
|
||||
WHERE
|
||||
1 = 1
|
||||
SELECT CAST(P.SEQPRODUTO AS NUMERIC(15)) AS code,
|
||||
P.DESCCOMPLETA AS title
|
||||
FROM CONSINCO.MAP_PRODUTO P
|
||||
WHERE 1 = 1
|
||||
AND (
|
||||
(
|
||||
${args.filtro} IS NOT NULL
|
||||
AND (
|
||||
p.SEQPRODUTO LIKE '%' || ${args.filtro} || '%'
|
||||
OR UPPER(p.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%')
|
||||
P.SEQPRODUTO LIKE '%' || ${args.filtro} || '%'
|
||||
OR
|
||||
UPPER(P.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%')
|
||||
)
|
||||
)
|
||||
OR (
|
||||
${args.ean} IS NOT NULL
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM CONSINCO.MAP_PRODCODIGO A
|
||||
SELECT 1 FROM CONSINCO.MAP_PRODCODIGO A
|
||||
WHERE A.SEQPRODUTO = p.SEQPRODUTO
|
||||
AND ISNUMERIC(A.CODACESSO) = 'S'
|
||||
AND A.CODACESSO = ${args.ean}
|
||||
@@ -506,11 +503,468 @@ export default moduleFactory
|
||||
)
|
||||
OR (
|
||||
${args.filtro} IS NULL
|
||||
AND ${args.ean} IS NULL
|
||||
AND
|
||||
${args.ean} IS NULL
|
||||
)
|
||||
)
|
||||
ORDER BY
|
||||
2
|
||||
ORDER BY 2
|
||||
`,
|
||||
};
|
||||
},
|
||||
detalhe: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
select /*+ FIRST_ROWS(10) */ pemp.nroempresa,
|
||||
tcomp.comprador,
|
||||
nvl(mff.fornecedor, 'N/A') fornecedor,
|
||||
consinco.gmgbfcategoriafamilian1(pro.seqfamilia, me.nrodivisao, 1) categoria,
|
||||
pro.seqproduto,
|
||||
initcap(pro.desccompleta) Descricao,
|
||||
nvl(mapi.urlecommerceimg,'') ImagemUrl,
|
||||
case when trunc(case
|
||||
when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0)
|
||||
when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0)
|
||||
end / pes2.qtdembalagem,2) = 0 then
|
||||
trunc(case
|
||||
when pes.precovalidpromoc > 0.00 then nvl(pes.precovalidpromoc,0)
|
||||
when pes.precovalidpromoc = 0.00 then nvl(pes.precovalidnormal,0)
|
||||
end, 2)
|
||||
else
|
||||
trunc(case
|
||||
when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0)
|
||||
when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0)
|
||||
end / pes2.qtdembalagem,2)
|
||||
end PrecoAtacado,
|
||||
|
||||
trunc(case
|
||||
when pes.precovalidpromoc > 0.00 then nvl(pes.precovalidpromoc,0)
|
||||
when pes.precovalidpromoc = 0.00 then nvl(pes.precovalidnormal,0)
|
||||
end, 2) PrecoVarejo,
|
||||
|
||||
trunc(nvl(pemp.medvdiaforapromoc,0),4) MDV,
|
||||
nvl(gmgb_fn_buscamargemproduto(pemp.nroempresa,pemp.seqproduto),0) Margem,
|
||||
|
||||
case
|
||||
when trunc(case
|
||||
when pes.precovalidpromoc > 0.00 then nvl(pes.precovalidpromoc,0)
|
||||
when pes.precovalidpromoc = 0.00 then nvl(pes.precovalidnormal,0)
|
||||
end, 2) = trunc(case
|
||||
when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0)
|
||||
when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0)
|
||||
end / pes2.qtdembalagem,2
|
||||
) then nvl(gmgb_fn_buscamargemproduto(pemp.nroempresa,pemp.seqproduto),0)
|
||||
else
|
||||
nvl(CONSINCO.GMGB_FN_BUSCAMARGEMPRODUTO_AT2(pemp.nroempresa,pemp.seqproduto),0)
|
||||
end MargemAtacado,
|
||||
nvl(pemp.codclassifpreco,'Sem valor') ClasseAbastecimento,
|
||||
emb.embalagem DescricaoEmbalagem,
|
||||
trunc(nvl(emb.qtdembalagem,0)) QuantidadeEmbalagem,
|
||||
case
|
||||
when pemp.nroempresa in (979, 980, 981) then trunc(nvl(pemp.estqdeposito - pemp.qtdreservadavda,0),3)
|
||||
else trunc(nvl(pemp.estqloja,0), 3) - (NVL(pemp.qtdreservadavda,0))
|
||||
end EstoqueDisponivel,
|
||||
|
||||
NVL(pemp.estqtroca,0) EstoqueTroca,
|
||||
NVL(pemp.qtdpedrectransito,0) EstoqueTransito,
|
||||
pemp.qtdpendpedcompra EstoqueFuturo,
|
||||
NVL(pemp.qtdreservadavda,0) + nvl(pemp.estqoutro,0) EstoqueReservado, --24/05/2024 - cfreitas - Inclu�do estqoutro para n�o ser necess�rio utilizar MADV_COMPOSICAORESERVASELINV
|
||||
ROUND(nvl(case
|
||||
when NVL(pemp.medvdiaforapromoc, 0) = 0 then 0
|
||||
when NVL(pemp.medvdiaforapromoc,0) > 0 then (nvl(case when me.nroempresa in (979, 980, 981) then trunc(nvl(pemp.estqdeposito,0), 3) else trunc(nvl(pemp.estqloja,0), 3) end,0) - NVL(pemp.qtdreservadavda,0) ) / trunc(nvl(pemp.medvdiaforapromoc,1),4)
|
||||
end, 0), 3) DDV,
|
||||
|
||||
nvl(pemp.estqminimodv,0) DDVMinimo,
|
||||
nvl(pemp.estqmaximodv, 0) DDVMaximo,
|
||||
case
|
||||
WHEN (select count(1) from mlo_prodembwm w where w.nroempresa = 979 and w.seqproduto = pemp.seqproduto and w.codlinhasepar = 'FR') > 0 THEN 'FRACIONADO'
|
||||
when pemp.formaabastecimento = 'I' then 'ARMAZENAGEM'
|
||||
when pemp.formaabastecimento = 'C' then 'CROSS'
|
||||
when pemp.formaabastecimento = 'N' then 'CENTRAL-EDL'
|
||||
when pemp.formaabastecimento = 'E' then 'LOJA-EDL'
|
||||
when pemp.formaabastecimento is null then gmgb_fn_busca_forma_abastecfam(pro.seqfamilia, md.nrodivisao)
|
||||
end FormaAbastecimento,
|
||||
|
||||
case
|
||||
when pes.precovalidpromoc > 0.00 then 'PROMOCAO'
|
||||
when pes.precovalidpromoc = 0.00 then 'NORMAL'
|
||||
end Situacao,
|
||||
pempcd.estqdeposito - nvl(pempcd.qtdreservadavda,0) EstoqueDisponivelCD,
|
||||
pempcd.qtdpendpedcompra EstoqueFuturoCD,
|
||||
|
||||
consinco.gmgb_fn_busca_dtult_entrada(pemp.nroempresa,pemp.seqproduto) DATAULTIMAENTRADA,
|
||||
pemp.dtaultvenda DATAULTIMAVENDA,
|
||||
consinco.fmrl_custoprodempatual(pro.seqproduto, pemp.nroempresa, 'L') custoliquido,
|
||||
CASE WHEN (select count(*) from mrl_prodempseg pest where pest.seqproduto = pemp.seqproduto and pest.nroempresa = pemp.nroempresa and pest.nrosegmento = seg.nrosegmento and pest.statusvenda = 'A' ) > 0 then 'A' ELSE 'I' end STATUSVENDA,
|
||||
--case when (pemp.statuscompra='A') then 1 else 0 end STATUSCOMPRA,
|
||||
pemp.statuscompra,
|
||||
nvl((select min(qtdembalagem) from mrl_prodempseg where nroempresa=me.nroempresa and nrosegmento=me.nrosegmentoprinc and seqproduto=pro.seqproduto and statusvenda='A' and qtdembalagem>1), 1) QtdeAtacado,
|
||||
nvl(pro.seqprodutobase,0) IdBase,
|
||||
case
|
||||
when mfdv.indnegavariacentral = 'S' THEN 'TROCA FISICA'
|
||||
ELSE
|
||||
|
||||
case when mff.indindenizavaria = 'S' then
|
||||
case when (me.nroempresa >= 400 and me.nroempresa <=499) or (me.nroempresa >= 600 and me.nroempresa <= 699) then
|
||||
'SEM TROCA'
|
||||
else
|
||||
'TROCA FINANC'
|
||||
end
|
||||
when mff.indindenizavaria = 'N' then
|
||||
'NF DEVOL'
|
||||
else
|
||||
'SEM TROCA'
|
||||
end
|
||||
END TIPOTROCA,
|
||||
mfdv.padraoembcompra QUANTIDADECOMPRA,
|
||||
pemp.qtdreservadavda RESERVA,
|
||||
NVL(pro.pzovalidadedia, 0) VALIDADEDIAS,
|
||||
mfdv.margemlucrodivisao,
|
||||
nvl(pes.precovalidpromoc,0) PrecoPromoc,
|
||||
nvl(pes.precovalidnormal,0) PrecoNormal,
|
||||
nvl(pes3.precovalidpromoc,0) PrecoMeuMambo,
|
||||
case when pes3.precovalidpromoc > 0 then
|
||||
nvl(consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa,pemp.seqproduto,15),0)
|
||||
else
|
||||
0
|
||||
end MargemMeuMambo,
|
||||
nvl(consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa,pemp.seqproduto,2,'S'),0) MargemNormal,
|
||||
trunc(nvl(pemp.medvdiapromoc,0),4) MdvPromoc,
|
||||
NVL(vncto.vlrprecovenctoprox,0) VLRPRECOVENCTOPROX,
|
||||
vncto.dtavalidade
|
||||
|
||||
from max_divisao md
|
||||
|
||||
inner join max_empresa me
|
||||
on me.nrodivisao = md.nrodivisao
|
||||
and me.nroempresa not in (104,200,291,298,910,911,920,930,931,940,980)
|
||||
and me.dtainiciomovestoque <= trunc(sysdate)
|
||||
and me.status = 'A'
|
||||
|
||||
inner join mad_segmento seg
|
||||
on md.nrodivisao = me.nrodivisao
|
||||
and me.nrosegmentoprinc = seg.nrosegmento
|
||||
|
||||
inner join mrl_produtoempresa pemp
|
||||
on pemp.nroempresa = me.nroempresa
|
||||
|
||||
left join mrl_produtoempresa pempcd
|
||||
on pempcd.seqproduto = pemp.seqproduto
|
||||
and pempcd.nroempresa in (979)
|
||||
|
||||
left join map_classeabastec mcab
|
||||
on mcab.classeabastqtd = pemp.classeabastqtd
|
||||
and mcab.nroempresa = pemp.nroempresa
|
||||
and mcab.classeabastvlr = pemp.classeabastvlr
|
||||
|
||||
inner join map_produto pro
|
||||
on pro.seqproduto = pemp.seqproduto
|
||||
|
||||
inner join map_famdivisao mfdv
|
||||
on mfdv.seqfamilia = pro.seqfamilia
|
||||
and mfdv.nrodivisao = me.nrodivisao
|
||||
|
||||
inner join max_comprador mco
|
||||
on mco.seqcomprador = mfdv.seqcomprador
|
||||
|
||||
left join tb_comprador tcomp
|
||||
on tcomp.COMPRADOR = mco.comprador
|
||||
|
||||
left join map_produtoimagem mapi
|
||||
on mapi.seqproduto = pro.seqproduto
|
||||
and mapi.indpricipal = 'S'
|
||||
|
||||
inner join mrl_prodempseg pes
|
||||
on pes.seqproduto = pemp.seqproduto
|
||||
and pes.nroempresa = pemp.nroempresa
|
||||
and pes.nrosegmento = seg.nrosegmento
|
||||
and pes.qtdembalagem = 1
|
||||
|
||||
inner join mrl_prodempseg pes2
|
||||
on pes2.nroempresa = pes.nroempresa
|
||||
and pes2.seqproduto = pes.seqproduto
|
||||
and pes2.nrosegmento = pes.nrosegmento
|
||||
|
||||
left join mrl_prodempseg pes3
|
||||
on pes3.seqproduto = pemp.seqproduto
|
||||
and pes3.nroempresa = pemp.nroempresa
|
||||
and pes3.nrosegmento = 15
|
||||
and pes3.qtdembalagem = 1
|
||||
|
||||
inner join map_famembalagem emb
|
||||
on emb.seqfamilia = pro.seqfamilia
|
||||
and emb.qtdembalagem = 1
|
||||
|
||||
left join (select mffTemp.Seqfamilia,
|
||||
mfdvTemp.Nrodivisao,
|
||||
mffTemp.indindenizavaria,
|
||||
mfdvTemp.pzomedvisitarep,
|
||||
mfdvTemp.pzomedentrega,
|
||||
mfdvTemp.pzomedatraso,
|
||||
gp.fantasia fornecedor
|
||||
|
||||
from map_famfornec mffTemp
|
||||
|
||||
inner join ge_pessoa gp
|
||||
on gp.seqpessoa = mffTemp.Seqfornecedor
|
||||
|
||||
left join maf_fornecdivisao mfdvTemp
|
||||
on mfdvTemp.Seqfornecedor = mffTemp.Seqfornecedor
|
||||
and mffTemp.Principal = 'S'
|
||||
|
||||
) mff
|
||||
on mff.seqfamilia = pro.seqfamilia
|
||||
and mff.nrodivisao = md.nrodivisao
|
||||
|
||||
left join (select pvencto.nroempresa,
|
||||
pvencto.seqproduto,
|
||||
min(pvencto.vlrpreco) vlrprecovenctoprox,
|
||||
min(pvencto.dtavalidade) dtavalidade
|
||||
from consinco.mrl_prodempvencimento pvencto
|
||||
where 1=1
|
||||
and pvencto.dtavalidade >= trunc(sysdate)
|
||||
and pvencto.qtdembalagem = 1
|
||||
group by pvencto.nroempresa,
|
||||
pvencto.seqproduto
|
||||
) vncto
|
||||
ON vncto.nroempresa = pemp.nroempresa
|
||||
and vncto.seqproduto = pemp.seqproduto
|
||||
|
||||
where 1=1
|
||||
--and pemp.SEQPRODUTO = 136011
|
||||
--and pemp.nroempresa = 202
|
||||
and md.nrodivisao in (2,4)
|
||||
and pemp.seqproduto = ${args.codproduto}
|
||||
and me.nroempresa in (${args.ctx_user_companies_for_module})
|
||||
and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
||||
from mrl_prodempseg pes3
|
||||
where pes3.nroempresa = pes.nroempresa
|
||||
and pes3.seqproduto = pes.seqproduto
|
||||
and pes3.nrosegmento = pes.nrosegmento
|
||||
and pes3.statusvenda = 'A')
|
||||
`,
|
||||
};
|
||||
},
|
||||
detalhe_preco: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
select ora_hash(mgmp.SEQPRODUTO||mgmp.NROEMPRESA||mgmp.QTDEMBALAGEM||mgmp.NROSEGMENTO) chave,
|
||||
mgmp.SEQPRODUTO,
|
||||
mgmp.NROEMPRESA,
|
||||
mgmp.NROSEGMENTO,
|
||||
mgmp.QTDEMBALAGEM || ' ' || mgmp.EMBVENDA embalagem,
|
||||
mgmp.PRECOVALIDNORMAL preco_embalagem,
|
||||
mgmp.PRECOVALIDNORMAL / mgmp.QTDEMBALAGEM preco_unidade,
|
||||
trunc(mgmp.MGMPRECOVALIDO,2) margem
|
||||
from maxv_mgmbaseprodseg mgmp
|
||||
inner join max_empresa me
|
||||
on me.nroempresa = mgmp.NROEMPRESA
|
||||
and me.status = 'A'
|
||||
and me.dtainiciomovestoque <= trunc(sysdate)-1
|
||||
and me.nrodivisao in (2,4)
|
||||
and me.nroempresa not in (291,298,910,911,920,930,931,940,980)
|
||||
AND mgmp.NROSEGMENTO IN (2,7)
|
||||
where 1=1
|
||||
and mgmp.seqproduto = ${args.codproduto}
|
||||
and mgmp.nroempresa = ${args.nrempresa}
|
||||
AND mgmp.NROSEGMENTO NOT IN (22,23,26)
|
||||
and mgmp.STATUSVENDA = 'A'
|
||||
`,
|
||||
};
|
||||
},
|
||||
detalhe_mdv: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
select mcdia.dtaentradasaida data,
|
||||
mcdia.nroempresa,
|
||||
mcdia.seqproduto,
|
||||
Decode(to_char(mcdia.dtaentradasaida,'d'),1,'Domingo',2,'Segunda',3,'Terça',4,'Quarta',5,'Quinta',6,'Sexta',7,'Sábado') diasemana,
|
||||
mcdia.qtdvda qtd,
|
||||
mcdia.qtdestqinicial qtd_inicial
|
||||
from mrl_custodia mcdia
|
||||
inner join max_empresa me
|
||||
on mcdia.nroempresa = me.nroempresa
|
||||
where 1=1
|
||||
and mcdia.qtdvda > 0
|
||||
and mcdia.dtaentradasaida >= trunc(sysdate)-365
|
||||
AND mcdia.nroempresa = ${args.nrempresa}
|
||||
AND mcdia.seqproduto = ${args.codproduto}
|
||||
order by dtaentradasaida desc
|
||||
`,
|
||||
};
|
||||
},
|
||||
detalhe_situacao_vigente: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
select mrl_prodempseg.nroempresa,
|
||||
mrl_prodempseg.seqproduto,
|
||||
mrl_promocao.dtainicio,
|
||||
mrl_promocao.dtafim,
|
||||
mfe.qtdembalagem || ' ' || mfe.embalagem embalagem,
|
||||
mrl_promocaoitem.precopromocional preco
|
||||
from mrl_promocaoitem, mrl_promocao, mrl_prodempseg,
|
||||
map_produto mp, map_famembalagem mfe, max_empresa me
|
||||
where 1=1
|
||||
and me.nroempresa = mrl_promocao.nroempresa
|
||||
and me.status = 'A'
|
||||
and me.nrodivisao = 2
|
||||
and me.dtainiciomovestoque <= trunc(sysdate)-1
|
||||
and mrl_promocao.nroempresa = mrl_promocaoitem.nroempresa
|
||||
and mrl_promocao.seqpromocao = mrl_promocaoitem.seqpromocao
|
||||
and mrl_promocao.centralloja = mrl_promocaoitem.centralloja
|
||||
and mrl_promocao.nrosegmento = mrl_promocaoitem.nrosegmento
|
||||
and mrl_promocaoitem.seqproduto = mrl_prodempseg.seqproduto
|
||||
and mrl_promocao.nrosegmento = mrl_prodempseg.nrosegmento
|
||||
and mrl_promocao.nroempresa = mrl_prodempseg.nroempresa
|
||||
and mrl_promocaoitem.qtdembalagem = mrl_prodempseg.qtdembalagem
|
||||
and mp.seqproduto = mrl_prodempseg.seqproduto
|
||||
and mfe.seqfamilia = mp.seqfamilia
|
||||
and mfe.qtdembalagem = mrl_prodempseg.qtdembalagem
|
||||
and nvl(mrl_promocao.tipopromoc, 'N') in ('N', 'F', 'A', 'S')
|
||||
and mrl_promocao.dtainicio >= trunc(sysdate)-90--365
|
||||
AND mrl_prodempseg.nroempresa = ${args.nrempresa}
|
||||
AND mrl_prodempseg.seqproduto = ${args.codproduto}
|
||||
order by mrl_promocao.dtainicio desc
|
||||
`,
|
||||
};
|
||||
},
|
||||
detalhe_custo_liquido: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
select mcdiafam.dtaentradasaida,
|
||||
mcdiafam.nroempresa,
|
||||
PROD.SEQPRODUTO,
|
||||
mcdiafam.seqfamilia,
|
||||
mcdiafam.qtdestqinicial estqinicial,
|
||||
qtdestqinicial + qtdentrada - qtdsaida estqfinal,
|
||||
--trunc(cmdiavlrnf,2) custo
|
||||
cmdiavlrnf custo
|
||||
from mrl_custodiafam mcdiafam
|
||||
INNER JOIN MAP_PRODUTO PROD
|
||||
ON PROD.SEQFAMILIA = MCDIAFAM.SEQFAMILIA
|
||||
inner join max_empresa me
|
||||
on me.nroempresa = mcdiafam.nroempresa
|
||||
and me.status = 'A'
|
||||
and me.dtainiciomovestoque <= trunc(sysdate)-1
|
||||
and me.nrodivisao in (2,4)
|
||||
where 1=1
|
||||
and mcdiafam.dtaentradasaida >= trunc(sysdate)-365
|
||||
AND mcdiafam.nroempresa = ${args.nrempresa}
|
||||
AND PROD.SEQPRODUTO = ${args.codproduto}
|
||||
order by mcdiafam.dtaentradasaida desc
|
||||
`,
|
||||
};
|
||||
},
|
||||
detalhe_estoque_disponivel: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
select
|
||||
cdia.dtaentradasaida,
|
||||
cdia.nroempresa,
|
||||
cdia.seqproduto,
|
||||
cdia.qtdentrada,
|
||||
cdia.qtdsaida,
|
||||
cdia.qtdestqinicial + cdia.qtdentrada - cdia.qtdsaida qtdsaldo
|
||||
from mrl_custodia cdia
|
||||
join max_empresa me
|
||||
on me.nroempresa = cdia.nroempresa
|
||||
and me.status = 'A'
|
||||
and me.dtainiciomovestoque < trunc(sysdate)
|
||||
and me.nrodivisao = 2
|
||||
where cdia.dtaentradasaida >= sysdate - 365
|
||||
and cdia.seqproduto = ${args.codproduto}
|
||||
and cdia.nroempresa = ${args.nrempresa}
|
||||
union all
|
||||
select
|
||||
mle.dtaentradasaida,
|
||||
mle.nroempresa,
|
||||
mle.seqproduto,
|
||||
sum(case when mle.tiplancto = 'E' then mle.qtdlancto else 0 end) qtdentrada,
|
||||
sum(case when mle.tiplancto = 'S' then mle.qtdlancto else 0 end) qtdsaida,
|
||||
cdia.qtdestqinicial
|
||||
+ sum(case when mle.tiplancto = 'E' then mle.qtdlancto else 0 end)
|
||||
- sum(case when mle.tiplancto = 'S' then mle.qtdlancto else 0 end) qtdsaldo
|
||||
from mrl_lanctoestoque mle
|
||||
join max_empresa me
|
||||
on me.nroempresa = mle.nroempresa
|
||||
and me.status = 'A'
|
||||
and me.dtainiciomovestoque < trunc(sysdate)
|
||||
and me.nrodivisao = 4
|
||||
join mrl_custodia cdia
|
||||
on cdia.dtaentradasaida = mle.dtaentradasaida
|
||||
and cdia.nroempresa = mle.nroempresa
|
||||
and cdia.seqproduto = mle.seqproduto
|
||||
where mle.dtaentradasaida >= sysdate - 365
|
||||
and mle.codgeraloper not in (301,302)
|
||||
and mle.seqproduto = ${args.codproduto}
|
||||
and mle.nroempresa = ${args.nrempresa}
|
||||
group by
|
||||
mle.dtaentradasaida,
|
||||
mle.nroempresa,
|
||||
mle.seqproduto,
|
||||
cdia.qtdestqinicial
|
||||
order by dtaentradasaida desc
|
||||
`,
|
||||
};
|
||||
},
|
||||
detalhe_estoque_transito: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
SELECT
|
||||
a.nroempresa,
|
||||
b.seqproduto,
|
||||
INITCAP(C.NOMERAZAO) FORNECEDOR,
|
||||
A.NUMERONF,
|
||||
A.SERIENF,
|
||||
A.DTAEMISSAO,
|
||||
A.DTAENTRADA,
|
||||
B.QUANTIDADE,
|
||||
B.VLRITEM VALOR
|
||||
from MLF_AUXNOTAFISCAL A, MLF_AUXNFITEM B, GE_PESSOA C, MAP_PRODUTO D
|
||||
WHERE 1=1
|
||||
and B.SEQAUXNOTAFISCAL = A.SEQAUXNOTAFISCAL
|
||||
AND C.SEQPESSOA = A.SEQPESSOA
|
||||
AND D.SEQPRODUTO = B.SEQPRODUTO
|
||||
AND A.DTAEMISSAO >= SYSDATE-365
|
||||
AND a.nroempresa = ${args.nrempresa}
|
||||
AND b.seqproduto = ${args.codproduto}
|
||||
order by A.DTAEMISSAO, A.NUMERONF, A.SERIENF
|
||||
`,
|
||||
};
|
||||
},
|
||||
},
|
||||
C5: {
|
||||
consulta: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
SELECT CAST(P.SEQPRODUTO AS NUMERIC(15)) AS code,
|
||||
P.DESCCOMPLETA AS title
|
||||
FROM CONSINCO.MAP_PRODUTO P
|
||||
WHERE 1 = 1
|
||||
AND (
|
||||
(
|
||||
${args.filtro} IS NOT NULL
|
||||
AND (
|
||||
P.SEQPRODUTO LIKE '%' || ${args.filtro} || '%'
|
||||
OR
|
||||
UPPER(P.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%')
|
||||
)
|
||||
)
|
||||
OR (
|
||||
${args.ean} IS NOT NULL
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM CONSINCO.MAP_PRODCODIGO A
|
||||
WHERE A.SEQPRODUTO = p.SEQPRODUTO
|
||||
AND ISNUMERIC(A.CODACESSO) = 'S'
|
||||
AND A.CODACESSO = ${args.ean}
|
||||
)
|
||||
)
|
||||
OR (
|
||||
${args.filtro} IS NULL
|
||||
AND
|
||||
${args.ean} IS NULL
|
||||
)
|
||||
)
|
||||
ORDER BY 2
|
||||
`,
|
||||
};
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user