From acc03f9b85dd228233731d9a3aebdfd433be9b5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonath=C3=A3=20Correa?= Date: Tue, 28 Apr 2026 09:24:09 -0300 Subject: [PATCH] =?UTF-8?q?Atualiza=C3=A7=C3=A3o=20da=20query=20de=20detal?= =?UTF-8?q?hes=20para=20consinco?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/worktrees/admiring-goldberg-781876 | 1 + src/products/products.module.ts | 1402 +++++++------------- 2 files changed, 495 insertions(+), 908 deletions(-) create mode 160000 .claude/worktrees/admiring-goldberg-781876 diff --git a/.claude/worktrees/admiring-goldberg-781876 b/.claude/worktrees/admiring-goldberg-781876 new file mode 160000 index 0000000..5cdcb50 --- /dev/null +++ b/.claude/worktrees/admiring-goldberg-781876 @@ -0,0 +1 @@ +Subproject commit 5cdcb503b08495cbaa5ff67730ca82267748f766 diff --git a/src/products/products.module.ts b/src/products/products.module.ts index 5585bd1..df90581 100644 --- a/src/products/products.module.ts +++ b/src/products/products.module.ts @@ -1,6 +1,6 @@ import { createModuleFactory } from "@davinti/jeff"; -const moduleFactory = createModuleFactory(["C5", "C5_big", "C5_mambo"]); +const moduleFactory = createModuleFactory(["C5", "C5_mambo"]); export default moduleFactory .createModule({ @@ -483,7 +483,7 @@ export default moduleFactory CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code, p.DESCCOMPLETA AS title FROM - DIN_ABASTECIMENTO_PRODUTOS p + CONSINCO.MAP_PRODUTO p WHERE 1 = 1 AND ( @@ -517,10 +517,21 @@ export default moduleFactory detalhe: (args) => { return { sql: /*sql*/ ` - select /*+ FIRST_ROWS(10) */ pemp.nroempresa, - tcomp.comprador, + select /*+ FIRST_ROWS(10) */ DISTINCT pemp.nroempresa, + --(SELECT COMPRADOR FROM tb_comprador tcomp WHERE tcomp.COMPRADOR = mco.comprador) AS comprador, + 'BIG' AS comprador, nvl(mff.fornecedor, 'N/A') fornecedor, - consinco.gmgbfcategoriafamilian1(pro.seqfamilia, me.nrodivisao, 1) categoria, + -- [inline: consinco.gmgbfcategoriafamilian1(pro.seqfamilia, me.nrodivisao, 1)] + (select max(b_cat.caminhocompleto) + from consinco.map_famdivcateg a_cat, consinco.map_categoria b_cat + where a_cat.seqcategoria = b_cat.seqcategoria + and a_cat.nrodivisao = b_cat.nrodivisao + and a_cat.seqfamilia = pro.seqfamilia + and a_cat.nrodivisao = me.nrodivisao + and b_cat.statuscategor = 'A' + and a_cat.status = 'A' + and b_cat.nivelhierarquia = 1 + and b_cat.tipcategoria = nvl('M', 'M')) categoria, pro.seqproduto, initcap(pro.desccompleta) Descricao, nvl(mapi.urlecommerceimg,'') ImagemUrl, @@ -545,7 +556,34 @@ export default moduleFactory end, 2) PrecoVarejo, trunc(nvl(pemp.medvdiaforapromoc,0),4) MDV, - nvl(gmgb_fn_buscamargemproduto(pemp.nroempresa,pemp.seqproduto),0) Margem, + + -- [inline: gmgb_fn_buscamargemproduto(pemp.nroempresa, pemp.seqproduto)] + nvl((select round(max(consinco.fc5margempreco(pemp.seqproduto, pemp.nroempresa, emp_mg.nrosegmentoprinc, seg_mg.qtdembalagem, + (round( ( pe_mg.CMULTVLRNF + pe_mg.CMULTIPI - + decode( 'L', 'L', pe_mg.CMULTCREDICMS + + decode(nvl(fam_mg.indmonopiscofins, 'N')|| nvl(emp_mg.indfaturaipi, 'N')||nvl(emp_mg.indimportadora, 'N'), + 'SNN', 0, nvl(pe_mg.cmultcredpis, 0) + nvl(pe_mg.cmultcredcofins, 0)), 0) + + pe_mg.CMULTICMSST + pe_mg.CMULTDESPNF + pe_mg.CMULTDESPFORANF - pe_mg.CMULTDCTOFORANF + - nvl( consinco.fc5VlrVerba( seg_mg.SEQPRODUTO, seg_mg.NROEMPRESA ), 0 ) + + nvl( consinco.fc5VlrVerba( seg_mg.SEQPRODUTO, seg_mg.NROEMPRESA, NULL, NULL, 'S' ), 0 ) ) * seg_mg.qtdembalagem, 4 ) + * case + when (pr_mg.seqprodutobase is not null and 'S' = 'S') then nvl(pr_mg.percacresccustorelacvig,1) + else 1 end + ),decode(seg_mg.precovalidpromoc,0,seg_mg.precovalidnormal,seg_mg.precovalidpromoc))),2) + from consinco.max_Empresa emp_mg + join consinco.mrl_prodempseg seg_mg + on seg_mg.nroempresa = emp_mg.nroempresa + and seg_mg.nrosegmento = emp_mg.nrosegmentoprinc + and seg_mg.qtdembalagem = 1 + and seg_mg.seqproduto = pemp.seqproduto + join consinco.map_produto pr_mg + on pr_mg.seqproduto = seg_mg.seqproduto + join consinco.mrl_produtoempresa pe_mg + on pe_mg.nroempresa = emp_mg.nroempresa + and pe_mg.seqproduto = nvl(pr_mg.seqprodutobase, pr_mg.seqproduto) + join consinco.map_familia fam_mg + on fam_mg.seqfamilia = pr_mg.seqfamilia + where emp_mg.nroempresa = pemp.nroempresa),0) Margem, case when trunc(case @@ -555,10 +593,313 @@ export default moduleFactory 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) + ) + -- [inline: gmgb_fn_buscamargemproduto(pemp.nroempresa, pemp.seqproduto)] + then nvl((select round(max(consinco.fc5margempreco(pemp.seqproduto, pemp.nroempresa, emp_mg2.nrosegmentoprinc, seg_mg2.qtdembalagem, + (round( ( pe_mg2.CMULTVLRNF + pe_mg2.CMULTIPI - + decode( 'L', 'L', pe_mg2.CMULTCREDICMS + + decode(nvl(fam_mg2.indmonopiscofins, 'N')|| nvl(emp_mg2.indfaturaipi, 'N')||nvl(emp_mg2.indimportadora, 'N'), + 'SNN', 0, nvl(pe_mg2.cmultcredpis, 0) + nvl(pe_mg2.cmultcredcofins, 0)), 0) + + pe_mg2.CMULTICMSST + pe_mg2.CMULTDESPNF + pe_mg2.CMULTDESPFORANF - pe_mg2.CMULTDCTOFORANF + - nvl( consinco.fc5VlrVerba( seg_mg2.SEQPRODUTO, seg_mg2.NROEMPRESA ), 0 ) + + nvl( consinco.fc5VlrVerba( seg_mg2.SEQPRODUTO, seg_mg2.NROEMPRESA, NULL, NULL, 'S' ), 0 ) ) * seg_mg2.qtdembalagem, 4 ) + * case + when (pr_mg2.seqprodutobase is not null and 'S' = 'S') then nvl(pr_mg2.percacresccustorelacvig,1) + else 1 end + ),decode(seg_mg2.precovalidpromoc,0,seg_mg2.precovalidnormal,seg_mg2.precovalidpromoc))),2) + from consinco.max_Empresa emp_mg2 + join consinco.mrl_prodempseg seg_mg2 + on seg_mg2.nroempresa = emp_mg2.nroempresa + and seg_mg2.nrosegmento = emp_mg2.nrosegmentoprinc + and seg_mg2.qtdembalagem = 1 + and seg_mg2.seqproduto = pemp.seqproduto + join consinco.map_produto pr_mg2 + on pr_mg2.seqproduto = seg_mg2.seqproduto + join consinco.mrl_produtoempresa pe_mg2 + on pe_mg2.nroempresa = emp_mg2.nroempresa + and pe_mg2.seqproduto = nvl(pr_mg2.seqprodutobase, pr_mg2.seqproduto) + join consinco.map_familia fam_mg2 + on fam_mg2.seqfamilia = pr_mg2.seqfamilia + where emp_mg2.nroempresa = pemp.nroempresa),0) else - nvl(CONSINCO.GMGB_FN_BUSCAMARGEMPRODUTO_AT2(pemp.nroempresa,pemp.seqproduto),0) + -- [inline: CONSINCO.GMGB_FN_BUSCAMARGEMPRODUTO_AT2(pemp.nroempresa, pemp.seqproduto)] + nvl((select case when at2_q.precovalidpromoc > 0 then round(at2_q.mgmprecovdapromoc,2) + when at2_q.precovalidnormal > 0 then round(at2_q.mgmprecominvdaempresa,2) + end + from ( + SELECT x_at2.precovalidnormal, + x_at2.precovalidpromoc, + decode (((select min(a_fp.precovalidnormal / a_fp.qtdembalagem) + from mrl_prodempseg a_fp + where a_fp.seqproduto = x_at2.seqproduto + and a_fp.nroempresa = x_at2.nroempresa + and a_fp.nrosegmento = o_at2.nrosegmento + and a_fp.precovalidnormal > 0 + and a_fp.statusvenda = 'A') * x_at2.qtdembalagem), 0, 0, + ((((select min(a_fp.precovalidnormal / a_fp.qtdembalagem) + from mrl_prodempseg a_fp + where a_fp.seqproduto = x_at2.seqproduto + and a_fp.nroempresa = x_at2.nroempresa + and a_fp.nrosegmento = o_at2.nrosegmento + and a_fp.precovalidnormal > 0 + and a_fp.statusvenda = 'A') * x_at2.qtdembalagem) - ( + (((select min(a_fp.precovalidnormal / a_fp.qtdembalagem) + from mrl_prodempseg a_fp + where a_fp.seqproduto = x_at2.seqproduto + and a_fp.nroempresa = x_at2.nroempresa + and a_fp.nrosegmento = o_at2.nrosegmento + and a_fp.precovalidnormal > 0 + and a_fp.statusvenda = 'A') * x_at2.qtdembalagem) * + (case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' then 0 + else decode(m_at2.metodoprecificacao, 'B', 0, 'I', 0, decode(h_at2.pericmsestimativa, 0, + f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa)) + end / 100)) + + + (((b_at2.cmultvlrnf + b_at2.cmultipi - + decode(m_at2.metodoprecificacao, 'L', b_at2.cmultcredicms + nvl(b_at2.cmultcredipi,0) + + DECODE(nvl(decode(nvl(consinco.fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'P', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfpissai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) + || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredpis,0)) + + DECODE(nvl(decode(nvl(consinco.fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'C', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfcofinssai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) + || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredcofins,0)), + 'I', DECODE(nvl(decode(nvl(consinco.fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'P', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfpissai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) + || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredpis,0)) + + DECODE(nvl(decode(nvl(consinco.fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'C', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfcofinssai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) + || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredcofins,0)), 0) + + b_at2.cmulticmsst + b_at2.cmultdespnf + b_at2.cmultdespforanf - b_at2.cmultdctoforanf + - nvl(consinco.fc5VlrVerba(a_at2.seqproduto, b_at2.nroempresa), 0) + + nvl(consinco.fc5VlrVerba(a_at2.seqproduto, b_at2.nroempresa, null, null, 'S'), 0)) * x_at2.qtdembalagem) + + case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' + then nvl((consinco.fCustoPonderadoBaseICMS(trunc(sysdate), a_at2.seqproduto, b_at2.nroempresa, f_at2.nrotributacao, f_at2.nroregtributacao,'C') * x_at2.qtdembalagem), 0) + * (decode(m_at2.metodoprecificacao,'L', decode(h_at2.pericmsestimativa, 0, f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa), 0) / 100) + else 0 + end) + * case when (a_at2.seqprodutobase is not null and m_at2.utilacresccustprodrelac = 'S') then nvl(a_at2.percacresccustorelacvig,1) else 1 end + + + (((select min(a_fp.precovalidnormal / a_fp.qtdembalagem) + from mrl_prodempseg a_fp + where a_fp.seqproduto = x_at2.seqproduto + and a_fp.nroempresa = x_at2.nroempresa + and a_fp.nrosegmento = o_at2.nrosegmento + and a_fp.precovalidnormal > 0 + and a_fp.statusvenda = 'A') * x_at2.qtdembalagem) * + (decode(decode(p_at2.TIPOCALCCOMISSAOSEG,'E', h_at2.tipocalccomissao, NVL(p_at2.TIPOCALCCOMISSAOSEG, h_at2.tipocalccomissao)),'F', nvl(o_at2.percomissaonormalfs, nvl(n_at2.percomissaonormal,0)), nvl(n_at2.percomissaonormal,0)) + + decode(q_at2.Ger1_12AvosComPreco,'S', ((decode(decode(p_at2.TIPOCALCCOMISSAOSEG,'E', h_at2.tipocalccomissao, NVL(p_at2.TIPOCALCCOMISSAOSEG, h_at2.tipocalccomissao)),'F', nvl(o_at2.percomissaonormalfs, nvl(n_at2.percomissaonormal,0)), nvl(n_at2.percomissaonormal,0)))) / 12, 0) + + (decode(nvl(m_at2.tipcalcmargem, m_at2.tipdivisao),'A', n_at2.perdespclassifabc, nvl(o_at2.perdespesasegmento, nvl(c_at2.perdespesadivisao, nvl(h_at2.perdespoperacional,0)))) + + decode(m_at2.metodoprecificacao,'B', 0, + nvl(coalesce(consinco.fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'P','S','NP', a_at2.seqfamilia), + consinco.fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'P','N','S')), + decode(nvl(f_at2.situacaonfpis, l_at2.situacaonfpissai),'00',0,'08',0, + decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), + 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.perpisdif, h_at2.perpis)), + decode(l_at2.indisentodebpiscofins,'S',0, h_at2.perpis))))) * + ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfpis,'01',f_at2.perbasepis,null), decode(l_at2.situacaonfpissai,'01',l_at2.perbasepis,null)),0),0)) / 100) + + nvl(coalesce(consinco.fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'C','S','NP', a_at2.seqfamilia), + consinco.fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'C','N','S')), + decode(nvl(f_at2.situacaonfcofins, l_at2.situacaonfcofinssai),'00',0,'08',0, + decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), + 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.percofinsdif, h_at2.percofins)), + decode(l_at2.indisentodebpiscofins,'S',0, h_at2.percofins))))) * + ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfcofins,'01',f_at2.perbasecofins,null), decode(l_at2.situacaonfcofinssai,'01',l_at2.perbasecofins,null)),0),0)) / 100) + + h_at2.percpmf + h_at2.perir + h_at2.peroutroimposto + + nvl(decode(nvl(f_at2.indcalcstembutprod,'N'),'S', f_at2.peraliquotast + (f_at2.peraliquotast * f_at2.peracrescst / 100),0),0)))) / 100))) / + (((select min(a_fp.precovalidnormal / a_fp.qtdembalagem) + from mrl_prodempseg a_fp + where a_fp.seqproduto = x_at2.seqproduto + and a_fp.nroempresa = x_at2.nroempresa + and a_fp.nrosegmento = o_at2.nrosegmento + and a_fp.precovalidnormal > 0 + and a_fp.statusvenda = 'A') * x_at2.qtdembalagem) + - decode(m_at2.metodocalcrentab,'L', ( + (((select min(a_fp.precovalidnormal / a_fp.qtdembalagem) + from mrl_prodempseg a_fp + where a_fp.seqproduto = x_at2.seqproduto + and a_fp.nroempresa = x_at2.nroempresa + and a_fp.nrosegmento = o_at2.nrosegmento + and a_fp.precovalidnormal > 0 + and a_fp.statusvenda = 'A') * x_at2.qtdembalagem) * + (case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' then 0 + else decode(m_at2.metodoprecificacao,'B',0,'I',0, decode(h_at2.pericmsestimativa,0, f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa)) + end / 100)) + + (((select min(a_fp.precovalidnormal / a_fp.qtdembalagem) + from mrl_prodempseg a_fp + where a_fp.seqproduto = x_at2.seqproduto + and a_fp.nroempresa = x_at2.nroempresa + and a_fp.nrosegmento = o_at2.nrosegmento + and a_fp.precovalidnormal > 0 + and a_fp.statusvenda = 'A') * x_at2.qtdembalagem) * + decode(m_at2.metodoprecificacao,'B',0, + nvl(coalesce(consinco.fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'P','S','NP', a_at2.seqfamilia), + consinco.fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'P','N','S')), + decode(nvl(f_at2.situacaonfpis, l_at2.situacaonfpissai),'00',0,'08',0, + decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), + 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.perpisdif, h_at2.perpis)), + decode(l_at2.indisentodebpiscofins,'S',0, h_at2.perpis))))) * + ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfpis,'01',f_at2.perbasepis,null), decode(l_at2.situacaonfpissai,'01',l_at2.perbasepis,null)),0),0)) / 100) + + nvl(coalesce(consinco.fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'C','S','NP', a_at2.seqfamilia), + consinco.fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'C','N','S')), + decode(nvl(f_at2.situacaonfcofins, l_at2.situacaonfcofinssai),'00',0,'08',0, + decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), + 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.percofinsdif, h_at2.percofins)), + decode(l_at2.indisentodebpiscofins,'S',0, h_at2.percofins))))) * + ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfcofins,'01',f_at2.perbasecofins,null), decode(l_at2.situacaonfcofinssai,'01',l_at2.perbasecofins,null)),0),0)) / 100) + + h_at2.percpmf + h_at2.perir + h_at2.peroutroimposto + + nvl(decode(nvl(f_at2.indcalcstembutprod,'N'),'S', f_at2.peraliquotast + (f_at2.peraliquotast * f_at2.peracrescst / 100),0),0)) / 100)), 0) + )) * 100) as mgmprecominvdaempresa, + + decode(round(consinco.fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2), 0, 0, + ((round(consinco.fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) - ( + (round(consinco.fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) * + (decode(m_at2.metodoprecificacao,'B',0,'I',0, + case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' then 0 + else DECODE(NVL(t_at2.GERADEBRECICMSANTECIP,'N'), + 'S', nvl(f_at2.PERALIQICMSCALCPRECO, f_at2.PERALIQUOTA) * decode(f_at2.peraliqicmscalcpreco, null, f_at2.pertributado, decode(f_at2.perisento,100,0,100)) / 100, + decode(h_at2.pericmsestimativa,0, f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa)) + end) / 100)) + + + (((b_at2.cmultvlrnf + b_at2.cmultipi - + decode(m_at2.metodoprecificacao,'L', b_at2.cmultcredicms + nvl(b_at2.cmultcredipi,0) + + DECODE(nvl(decode(nvl(consinco.fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'P', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfpissai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) + || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredpis,0)) + + DECODE(nvl(decode(nvl(consinco.fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'C', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfcofinssai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) + || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredcofins,0)), + 'I', DECODE(nvl(decode(nvl(consinco.fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'P', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfpissai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) + || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredpis,0)) + + DECODE(nvl(decode(nvl(consinco.fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'C', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfcofinssai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) + || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredcofins,0)), 0) + + b_at2.cmulticmsst + b_at2.cmultdespnf + b_at2.cmultdespforanf - b_at2.cmultdctoforanf + - nvl(consinco.fc5VlrVerba(a_at2.seqproduto, b_at2.nroempresa), 0) + + nvl(consinco.fc5VlrVerba(a_at2.seqproduto, b_at2.nroempresa, null, null, 'S'), 0)) * x_at2.qtdembalagem) + + case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' + then nvl((consinco.fCustoPonderadoBaseICMS(trunc(sysdate), a_at2.seqproduto, b_at2.nroempresa, f_at2.nrotributacao, f_at2.nroregtributacao,'C') * x_at2.qtdembalagem), 0) + * (decode(m_at2.metodoprecificacao,'L', decode(h_at2.pericmsestimativa,0, f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa), 0) / 100) + else 0 + end) + * case when (a_at2.seqprodutobase is not null and m_at2.utilacresccustprodrelac = 'S') then nvl(a_at2.percacresccustorelacvig,1) else 1 end + + + (round(consinco.fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) * + (decode(decode(p_at2.TIPOCALCCOMISSAOSEG,'E', h_at2.tipocalccomissao, NVL(p_at2.TIPOCALCCOMISSAOSEG, h_at2.tipocalccomissao)),'F', nvl(o_at2.percomissaopromfs, nvl(n_at2.percomissaopromoc,0)), nvl(n_at2.percomissaopromoc,0)) + + decode(q_at2.Ger1_12AvosComPreco,'S', ((decode(decode(p_at2.TIPOCALCCOMISSAOSEG,'E', h_at2.tipocalccomissao, NVL(p_at2.TIPOCALCCOMISSAOSEG, h_at2.tipocalccomissao)),'F', nvl(o_at2.percomissaonormalfs, nvl(n_at2.percomissaonormal,0)), nvl(n_at2.percomissaonormal,0)))) / 12, 0) + + (decode(nvl(m_at2.tipcalcmargem, m_at2.tipdivisao),'A', n_at2.perdespclassifabc, nvl(o_at2.perdespesasegmento, nvl(c_at2.perdespesadivisao, nvl(h_at2.perdespoperacional,0)))) + + decode(m_at2.metodoprecificacao,'B',0, + nvl(coalesce(consinco.fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'P','S','NP', a_at2.seqfamilia), + consinco.fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'P','N')), + decode(nvl(f_at2.situacaonfpis, l_at2.situacaonfpissai),'00',0,'08',0, + decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), + 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.perpisdif, h_at2.perpis)), + decode(l_at2.indisentodebpiscofins,'S',0, h_at2.perpis))))) * + ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfpis,'01',f_at2.perbasepis,null), decode(l_at2.situacaonfpissai,'01',l_at2.perbasepis,null)),0),0)) / 100) + + nvl(coalesce(consinco.fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'C','S','NP', a_at2.seqfamilia), + consinco.fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'C','N')), + decode(nvl(f_at2.situacaonfcofins, l_at2.situacaonfcofinssai),'00',0,'08',0, + decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), + 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.percofinsdif, h_at2.percofins)), + decode(l_at2.indisentodebpiscofins,'S',0, h_at2.percofins))))) * + ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfcofins,'01',f_at2.perbasecofins,null), decode(l_at2.situacaonfcofinssai,'01',l_at2.perbasecofins,null)),0),0)) / 100) + + h_at2.percpmf + h_at2.perir + h_at2.peroutroimposto + + nvl(decode(nvl(f_at2.indcalcstembutprod,'N'),'S', f_at2.peraliquotast + (f_at2.peraliquotast * f_at2.peracrescst / 100),0),0)))) / 100))) / + (round(consinco.fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) + - decode(m_at2.metodocalcrentab,'L', ( + (round(consinco.fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) * + (decode(m_at2.metodoprecificacao,'B',0,'I',0, + case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' then 0 + else DECODE(NVL(t_at2.GERADEBRECICMSANTECIP,'N'), + 'S', nvl(f_at2.PERALIQICMSCALCPRECO, f_at2.PERALIQUOTA) * decode(f_at2.peraliqicmscalcpreco, null, f_at2.pertributado, decode(f_at2.perisento,100,0,100)) / 100, + decode(h_at2.pericmsestimativa,0, f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa)) + end) / 100)) + + (round(consinco.fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) * + decode(m_at2.metodoprecificacao,'B',0, + nvl(coalesce(consinco.fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'P','S','NP', a_at2.seqfamilia), + consinco.fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'P','N')), + decode(nvl(f_at2.situacaonfpis, l_at2.situacaonfpissai),'00',0,'08',0, + decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), + 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.perpisdif, h_at2.perpis)), + decode(l_at2.indisentodebpiscofins,'S',0, h_at2.perpis))))) * + ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfpis,'01',f_at2.perbasepis,null), decode(l_at2.situacaonfpissai,'01',l_at2.perbasepis,null)),0),0)) / 100) + + nvl(coalesce(consinco.fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'C','S','NP', a_at2.seqfamilia), + consinco.fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'C','N')), + decode(nvl(f_at2.situacaonfcofins, l_at2.situacaonfcofinssai),'00',0,'08',0, + decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), + 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.percofinsdif, h_at2.percofins)), + decode(l_at2.indisentodebpiscofins,'S',0, h_at2.percofins))))) * + ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfcofins,'01',f_at2.perbasecofins,null), decode(l_at2.situacaonfcofinssai,'01',l_at2.perbasecofins,null)),0),0)) / 100) + + h_at2.percpmf + h_at2.perir + h_at2.peroutroimposto + + nvl(decode(nvl(f_at2.indcalcstembutprod,'N'),'S', f_at2.peraliquotast + (f_at2.peraliquotast * f_at2.peracrescst / 100),0),0)) / 100)), 0) + )) * 100) as mgmprecovdapromoc + + from consinco.max_empresa h_at2, + consinco.map_produto a_at2, + consinco.mrl_produtoempresa b_at2, + consinco.map_famdivisao c_at2, + consinco.map_famdivcateg d_at2, + consinco.map_categoria e_at2, + consinco.map_famembalagem i_at2, + consinco.map_famembalagem j_at2, + consinco.map_famembalagem k_at2, + consinco.map_famembalagem tr_at2, + consinco.map_tributacaouf f_at2, + consinco.map_familia l_at2, + consinco.mrl_prodempseg x_at2, + consinco.max_divisao m_at2, + consinco.mad_famsegmento o_at2, + consinco.map_classifabc n_at2, + consinco.mad_segmento p_at2, + consinco.mad_parametro q_at2, + consinco.map_famfornec r_at2, + consinco.map_regimetributacao t_at2, + consinco.max_parametro pd_at2 + where 1=1 + and b_at2.nroempresa = h_at2.nroempresa + and a_at2.seqproduto = b_at2.seqproduto + and c_at2.seqfamilia = a_at2.seqfamilia + and c_at2.nrodivisao = h_at2.nrodivisao + and d_at2.seqfamilia = a_at2.seqfamilia + and d_at2.nrodivisao = h_at2.nrodivisao + and d_at2.status = 'A' + and e_at2.seqcategoria = d_at2.seqcategoria + and e_at2.tipcategoria = 'M' + and e_at2.actfamilia = 'S' + and e_at2.nrodivisao = h_at2.nrodivisao + and f_at2.nrotributacao = c_at2.nrotributacao + and f_at2.ufempresa = nvl(h_at2.ufformacaopreco, h_at2.uf) + and f_at2.ufclientefornec = h_at2.uf + and f_at2.nroregtributacao = nvl(h_at2.nroregtributacao, 0) + and f_at2.tiptributacao = decode(m_at2.tipdivisao,'A','SC','SN') + and i_at2.seqfamilia = a_at2.seqfamilia + and i_at2.qtdembalagem = nvl(r_at2.padraoembcomprafornec, c_at2.padraoembcompra) + and j_at2.seqfamilia = o_at2.seqfamilia + and j_at2.qtdembalagem = o_at2.padraoembvenda + and k_at2.seqfamilia = a_at2.seqfamilia + and k_at2.qtdembalagem = x_at2.qtdembalagem + and tr_at2.seqfamilia = a_at2.seqfamilia + and tr_at2.qtdembalagem = nvl(c_at2.padraoembtransf, o_at2.padraoembvenda) + and l_at2.seqfamilia = a_at2.seqfamilia + and x_at2.seqproduto = a_at2.seqproduto + and x_at2.nroempresa = h_at2.nroempresa + and m_at2.nrodivisao = h_at2.nrodivisao + and o_at2.seqfamilia = a_at2.seqfamilia + and o_at2.nrosegmento = x_at2.nrosegmento + and n_at2.nrosegmento = o_at2.nrosegmento + and n_at2.classifcomercabc = o_at2.classifcomercabc + and x_at2.nrosegmento = p_at2.nrosegmento + and q_at2.nroempresa = h_at2.nroempresa + and r_at2.seqfamilia = a_at2.seqfamilia + and t_at2.nroregtributacao = f_at2.nroregtributacao + and h_at2.nrosegmentoprinc = o_at2.nrosegmento + and pd_at2.grupo = 'PRODUTO' + and pd_at2.parametro = 'UTIL_FORMA_ABASTEC_PROD' + and pd_at2.nroempresa = 0 + and x_at2.statusvenda = 'A' + and x_at2.qtdembalagem = 1 + and b_at2.nroempresa = pemp.nroempresa + and b_at2.seqproduto = pemp.seqproduto + and r_at2.rowid = decode((select min(id) from maxx_selecrowid + where maxx_selecrowid.sequencia = 4 + and maxx_selecrowid.seqfamilia = r_at2.seqfamilia), null, + (select min(mfr2.rowid) from consinco.map_famfornec mfr2 where mfr2.seqfamilia = r_at2.seqfamilia and mfr2.principal = 'S'), + (select min(id) from maxx_selecrowid where maxx_selecrowid.sequencia = 4 and maxx_selecrowid.seqfamilia = r_at2.seqfamilia)) + ) at2_q),0) end MargemAtacado, + nvl(pemp.codclassifpreco,'Sem valor') ClasseAbastecimento, emb.embalagem DescricaoEmbalagem, trunc(nvl(emb.qtdembalagem,0)) QuantidadeEmbalagem, @@ -568,9 +909,10 @@ export default moduleFactory 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 + NVL(pemp.qtdpedrectransito_depreciada,0) EstoqueTransito, + --pemp.qtdpendpedcompra_depreciada EstoqueFuturo, + NULL EstoqueFuturo, -- NAO TEM NO BIG + 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) @@ -584,7 +926,18 @@ export default moduleFactory 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) + -- [inline: gmgb_fn_busca_forma_abastecfam(pro.seqfamilia, md.nrodivisao)] + when pemp.formaabastecimento is null then ( + select case + when mfd_fa.formaabastecimento = 'I' then 'ARMAZENAGEM' + when mfd_fa.formaabastecimento = 'C' then 'CROSS' + when mfd_fa.formaabastecimento = 'N' then 'CENTRAL-EDL' + when mfd_fa.formaabastecimento = 'E' then 'LOJA-EDL' + when mfd_fa.formaabastecimento = 'F' then 'FRACIONADO' + end + from consinco.map_famdivisao mfd_fa + where mfd_fa.seqfamilia = pro.seqfamilia + and mfd_fa.nrodivisao = md.nrodivisao) end FormaAbastecimento, case @@ -592,30 +945,40 @@ export default moduleFactory when pes.precovalidpromoc = 0.00 then 'NORMAL' end Situacao, pempcd.estqdeposito - nvl(pempcd.qtdreservadavda,0) EstoqueDisponivelCD, - pempcd.qtdpendpedcompra EstoqueFuturoCD, + --pempcd.qtdpendpedcompra_depreciada EstoqueFuturoCD, + NULL EstoqueFuturoCD, -- NAO TEM NO BIG + + -- [inline: consinco.gmgb_fn_busca_dtult_entrada(pemp.nroempresa, pemp.seqproduto)] + (select max(mnf_de.Dtaentrada) + from mlf_notafiscal mnf_de + inner join mlf_nfitem mnfi_de + on mnfi_de.NUMERONF = mnf_de.NUMERONF + and mnfi_de.SEQPESSOA = mnf_de.SEQPESSOA + and mnfi_de.SERIENF = mnf_de.SERIENF + and mnfi_de.TIPNOTAFISCAL = mnf_de.TIPNOTAFISCAL + and mnfi_de.NROEMPRESA = mnf_de.NROEMPRESA + inner join consinco.max_parametro mp_de + on mp_de.nroempresa = mnf_de.nroempresa + and mp_de.parametro = 'CGO_ENTR_BONIF_NFCOMPRA' + where mnf_de.tipnotafiscal = 'E' + and mnf_de.statusnf <> 'C' + and mnfi_de.tipitem = 'R' + and mnf_de.dtaentrada >= trunc(sysdate - 365) + and mnf_de.dtaentrada <= trunc(sysdate - 1) + and mnf_de.nroempresa = pemp.nroempresa + and mnfi_de.seqproduto = pemp.seqproduto) DATAULTIMAENTRADA, - 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, + CASE WHEN (select count(*) from consinco.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, 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((select min(qtdembalagem) from consinco.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' + case when mff.indindenizavaria = 'N' then 'NF DEVOL' + else 'SEM TROCA' end END TIPOTROCA, mfdv.padraoembcompra QUANTIDADECOMPRA, @@ -625,75 +988,122 @@ export default moduleFactory nvl(pes.precovalidpromoc,0) PrecoPromoc, nvl(pes.precovalidnormal,0) PrecoNormal, nvl(pes3.precovalidpromoc,0) PrecoMeuMambo, + -- [inline: consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa, pemp.seqproduto, 15)] case when pes3.precovalidpromoc > 0 then - nvl(consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa,pemp.seqproduto,15),0) + nvl((select round(max(consinco.fc5margempreco(pemp.seqproduto, pemp.nroempresa, 15, seg_mbo1.qtdembalagem, + (round( ( pe_mbo1.CMULTVLRNF + pe_mbo1.CMULTIPI - + decode( 'L', 'L', pe_mbo1.CMULTCREDICMS + + decode(nvl(fam_mbo1.indmonopiscofins, 'N')|| nvl(emp_mbo1.indfaturaipi, 'N')||nvl(emp_mbo1.indimportadora, 'N'), + 'SNN', 0, nvl(pe_mbo1.cmultcredpis, 0) + nvl(pe_mbo1.cmultcredcofins, 0)), 0) + + pe_mbo1.CMULTICMSST + pe_mbo1.CMULTDESPNF + pe_mbo1.CMULTDESPFORANF - pe_mbo1.CMULTDCTOFORANF + - nvl( consinco.fc5VlrVerba( seg_mbo1.SEQPRODUTO, seg_mbo1.NROEMPRESA ), 0 ) + + nvl( consinco.fc5VlrVerba( seg_mbo1.SEQPRODUTO, seg_mbo1.NROEMPRESA, NULL, NULL, 'S' ), 0 ) ) * seg_mbo1.qtdembalagem, 4 ) + * case + when (pr_mbo1.seqprodutobase is not null and 'S' = 'S') then nvl(pr_mbo1.percacresccustorelacvig,1) + else 1 end + ),decode(seg_mbo1.precovalidpromoc,0,seg_mbo1.precovalidnormal,seg_mbo1.precovalidpromoc))),2) + from consinco.max_Empresa emp_mbo1 + join consinco.mrl_prodempseg seg_mbo1 + on seg_mbo1.nroempresa = emp_mbo1.nroempresa + and seg_mbo1.qtdembalagem = 1 + and seg_mbo1.nrosegmento = 15 + and seg_mbo1.seqproduto = pemp.seqproduto + join consinco.map_produto pr_mbo1 + on pr_mbo1.seqproduto = seg_mbo1.seqproduto + join consinco.mrl_produtoempresa pe_mbo1 + on pe_mbo1.nroempresa = emp_mbo1.nroempresa + and pe_mbo1.seqproduto = nvl(pr_mbo1.seqprodutobase, pr_mbo1.seqproduto) + join consinco.map_familia fam_mbo1 + on fam_mbo1.seqfamilia = pr_mbo1.seqfamilia + where emp_mbo1.nroempresa = pemp.nroempresa),0) else 0 end MargemMeuMambo, - nvl(consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa,pemp.seqproduto,2,'S'),0) MargemNormal, + -- [inline: consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa, pemp.seqproduto, 2, 'S')] + nvl((select round(max(consinco.fc5margempreco(pemp.seqproduto, pemp.nroempresa, 2, seg_mbo2.qtdembalagem, + (round( ( pe_mbo2.CMULTVLRNF + pe_mbo2.CMULTIPI - + decode( 'L', 'L', pe_mbo2.CMULTCREDICMS + + decode(nvl(fam_mbo2.indmonopiscofins, 'N')|| nvl(emp_mbo2.indfaturaipi, 'N')||nvl(emp_mbo2.indimportadora, 'N'), + 'SNN', 0, nvl(pe_mbo2.cmultcredpis, 0) + nvl(pe_mbo2.cmultcredcofins, 0)), 0) + + pe_mbo2.CMULTICMSST + pe_mbo2.CMULTDESPNF + pe_mbo2.CMULTDESPFORANF - pe_mbo2.CMULTDCTOFORANF + - nvl( consinco.fc5VlrVerba( seg_mbo2.SEQPRODUTO, seg_mbo2.NROEMPRESA ), 0 ) + + nvl( consinco.fc5VlrVerba( seg_mbo2.SEQPRODUTO, seg_mbo2.NROEMPRESA, NULL, NULL, 'S' ), 0 ) ) * seg_mbo2.qtdembalagem, 4 ) + * case + when (pr_mbo2.seqprodutobase is not null and 'S' = 'S') then nvl(pr_mbo2.percacresccustorelacvig,1) + else 1 end + ),seg_mbo2.precovalidnormal)),2) + from consinco.max_Empresa emp_mbo2 + join consinco.mrl_prodempseg seg_mbo2 + on seg_mbo2.nroempresa = emp_mbo2.nroempresa + and seg_mbo2.qtdembalagem = 1 + and seg_mbo2.nrosegmento = 2 + and seg_mbo2.seqproduto = pemp.seqproduto + join consinco.map_produto pr_mbo2 + on pr_mbo2.seqproduto = seg_mbo2.seqproduto + join consinco.mrl_produtoempresa pe_mbo2 + on pe_mbo2.nroempresa = emp_mbo2.nroempresa + and pe_mbo2.seqproduto = nvl(pr_mbo2.seqprodutobase, pr_mbo2.seqproduto) + join consinco.map_familia fam_mbo2 + on fam_mbo2.seqfamilia = pr_mbo2.seqfamilia + where emp_mbo2.nroempresa = pemp.nroempresa),0) MargemNormal, trunc(nvl(pemp.medvdiapromoc,0),4) MdvPromoc, NVL(vncto.vlrprecovenctoprox,0) VLRPRECOVENCTOPROX, vncto.dtavalidade -from max_divisao md +from consinco.max_divisao md -inner join max_empresa me +inner join consinco.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 +inner join consinco.mad_segmento seg on md.nrodivisao = me.nrodivisao and me.nrosegmentoprinc = seg.nrosegmento -inner join mrl_produtoempresa pemp +inner join consinco.mrl_produtoempresa pemp on pemp.nroempresa = me.nroempresa -left join mrl_produtoempresa pempcd +left join consinco.mrl_produtoempresa pempcd on pempcd.seqproduto = pemp.seqproduto -and pempcd.nroempresa in (979) -left join map_classeabastec mcab +left join consinco.map_classeabastec mcab on mcab.classeabastqtd = pemp.classeabastqtd and mcab.nroempresa = pemp.nroempresa and mcab.classeabastvlr = pemp.classeabastvlr -inner join map_produto pro +inner join consinco.map_produto pro on pro.seqproduto = pemp.seqproduto -inner join map_famdivisao mfdv +inner join consinco.map_famdivisao mfdv on mfdv.seqfamilia = pro.seqfamilia and mfdv.nrodivisao = me.nrodivisao -inner join max_comprador mco +inner join consinco.max_comprador mco on mco.seqcomprador = mfdv.seqcomprador -left join tb_comprador tcomp - on tcomp.COMPRADOR = mco.comprador - -left join map_produtoimagem mapi +left join consinco.map_produtoimagem mapi on mapi.seqproduto = pro.seqproduto and mapi.indpricipal = 'S' -inner join mrl_prodempseg pes +inner join consinco.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 +inner join consinco.mrl_prodempseg pes2 on pes2.nroempresa = pes.nroempresa and pes2.seqproduto = pes.seqproduto and pes2.nrosegmento = pes.nrosegmento -left join mrl_prodempseg pes3 +left join consinco.mrl_prodempseg pes3 on pes3.seqproduto = pemp.seqproduto and pes3.nroempresa = pemp.nroempresa -and pes3.nrosegmento = 15 +--and pes3.nrosegmento = 15 and pes3.qtdembalagem = 1 -inner join map_famembalagem emb +inner join consinco.map_famembalagem emb on emb.seqfamilia = pro.seqfamilia and emb.qtdembalagem = 1 @@ -705,7 +1115,7 @@ left join (select mffTemp.Seqfamilia, mfdvTemp.pzomedatraso, gp.fantasia fornecedor - from map_famfornec mffTemp + from consinco.map_famfornec mffTemp inner join ge_pessoa gp on gp.seqpessoa = mffTemp.Seqfornecedor @@ -735,11 +1145,11 @@ and vncto.seqproduto = pemp.seqproduto where 1=1 --and pemp.SEQPRODUTO = 136011 --and pemp.nroempresa = 202 -and md.nrodivisao in (2,4) +and md.nrodivisao in (1) 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 + from consinco.mrl_prodempseg pes3 where pes3.nroempresa = pes.nroempresa and pes3.seqproduto = pes.seqproduto and pes3.nrosegmento = pes.nrosegmento @@ -758,22 +1168,23 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) mgmp.PRECOVALIDNORMAL preco_embalagem, mgmp.PRECOVALIDNORMAL / mgmp.QTDEMBALAGEM preco_unidade, trunc(mgmp.MGMPRECOVALIDO,2) margem - from maxv_mgmbaseprodseg mgmp - inner join max_empresa me + from consinco.maxv_mgmbaseprodseg mgmp + inner join consinco.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) + --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.NROSEGMENTO NOT IN (22,23,26) and mgmp.STATUSVENDA = 'A' `, }; }, + /** SEM RETORNO DE INFORMAÇÕES */ detalhe_mdv: (args) => { return { sql: /*sql*/ ` @@ -783,8 +1194,8 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) 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 + from consinco.mrl_custodia mcdia + inner join consinco.max_empresa me on mcdia.nroempresa = me.nroempresa where 1=1 and mcdia.qtdvda > 0 @@ -804,12 +1215,12 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) 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 + from consinco.mrl_promocaoitem, consinco.mrl_promocao, consinco.mrl_prodempseg, + consinco.map_produto mp, consinco.map_famembalagem mfe, consinco.max_empresa me where 1=1 and me.nroempresa = mrl_promocao.nroempresa and me.status = 'A' - and me.nrodivisao = 2 + --and me.nrodivisao = 2 and me.dtainiciomovestoque <= trunc(sysdate)-1 and mrl_promocao.nroempresa = mrl_promocaoitem.nroempresa and mrl_promocao.seqpromocao = mrl_promocaoitem.seqpromocao @@ -830,6 +1241,7 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) `, }; }, + /** SEM RETORNO DE INFORMAÇÕES */ detalhe_custo_liquido: (args) => { return { sql: /*sql*/ ` @@ -841,14 +1253,14 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) qtdestqinicial + qtdentrada - qtdsaida estqfinal, --trunc(cmdiavlrnf,2) custo cmdiavlrnf custo - from mrl_custodiafam mcdiafam - INNER JOIN MAP_PRODUTO PROD + from consinco.mrl_custodiafam mcdiafam + INNER JOIN consinco.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) + --and me.nrodivisao in (2,4) where 1=1 and mcdiafam.dtaentradasaida >= trunc(sysdate)-365 AND mcdiafam.nroempresa = ${args.nrempresa} @@ -857,6 +1269,7 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) `, }; }, + /** SEM RETORNO DE INFORMAÇÕES */ detalhe_estoque_disponivel: (args) => { return { sql: /*sql*/ ` @@ -867,8 +1280,8 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) cdia.qtdentrada, cdia.qtdsaida, cdia.qtdestqinicial + cdia.qtdentrada - cdia.qtdsaida qtdsaldo - from mrl_custodia cdia - join max_empresa me + from consinco.mrl_custodia cdia + join consinco.max_empresa me on me.nroempresa = cdia.nroempresa and me.status = 'A' and me.dtainiciomovestoque < trunc(sysdate) @@ -886,18 +1299,18 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) 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 + from consinco.mrl_lanctoestoque mle + join consinco.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 + --and me.nrodivisao = 4 + join consinco.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.codgeraloper not in (301,302) and mle.seqproduto = ${args.codproduto} and mle.nroempresa = ${args.nrempresa} group by @@ -909,6 +1322,7 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) `, }; }, + /** SEM RETORNO DE INFORMAÇÕES */ detalhe_estoque_transito: (args) => { return { sql: /*sql*/ ` @@ -922,7 +1336,7 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) A.DTAENTRADA, B.QUANTIDADE, B.VLRITEM VALOR - from MLF_AUXNOTAFISCAL A, MLF_AUXNFITEM B, GE_PESSOA C, MAP_PRODUTO D + from consinco.MLF_AUXNOTAFISCAL A, consinco.MLF_AUXNFITEM B, consinco.GE_PESSOA C, consinco.MAP_PRODUTO D WHERE 1=1 and B.SEQAUXNOTAFISCAL = A.SEQAUXNOTAFISCAL AND C.SEQPESSOA = A.SEQPESSOA @@ -1028,9 +1442,9 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) 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 + NVL(pemp.qtdpedrectransito_depreciada,0) EstoqueTransito, + pemp.qtdpendpedcompra_depreciada EstoqueFuturo, + NVL(pemp.qtdreservadavda,0) + nvl(pemp.estqoutro,0) EstoqueReservado, 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) @@ -1039,7 +1453,7 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) 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 (select count(1) from consinco.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' @@ -1052,7 +1466,7 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) when pes.precovalidpromoc = 0.00 then 'NORMAL' end Situacao, pempcd.estqdeposito - nvl(pempcd.qtdreservadavda,0) EstoqueDisponivelCD, - pempcd.qtdpendpedcompra EstoqueFuturoCD, + pempcd.qtdpendpedcompra_depreciada EstoqueFuturoCD, consinco.gmgb_fn_busca_dtult_entrada(pemp.nroempresa,pemp.seqproduto) DATAULTIMAENTRADA, pemp.dtaultvenda DATAULTIMAVENDA, @@ -1395,832 +1809,4 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) }; }, }, - C5_big: { - 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 - `, - }; - }, - detalhe: (args) => { - return { - sql: /*sql*/ ` - select /*+ FIRST_ROWS(10) */ pemp.nroempresa, - tcomp.comprador, - nvl(mff.fornecedor, 'N/A') fornecedor, - -- [inline: consinco.gmgbfcategoriafamilian1(pro.seqfamilia, me.nrodivisao, 1)] - (select max(b_cat.caminhocompleto) - from map_famdivcateg a_cat, map_categoria b_cat - where a_cat.seqcategoria = b_cat.seqcategoria - and a_cat.nrodivisao = b_cat.nrodivisao - and a_cat.seqfamilia = pro.seqfamilia - and a_cat.nrodivisao = me.nrodivisao - and b_cat.statuscategor = 'A' - and a_cat.status = 'A' - and b_cat.nivelhierarquia = 1 - and b_cat.tipcategoria = nvl('M', 'M')) 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, - - -- [inline: gmgb_fn_buscamargemproduto(pemp.nroempresa, pemp.seqproduto)] - nvl((select round(max(fc5margempreco(pemp.seqproduto, pemp.nroempresa, emp_mg.nrosegmentoprinc, seg_mg.qtdembalagem, - (round( ( pe_mg.CMULTVLRNF + pe_mg.CMULTIPI - - decode( 'L', 'L', pe_mg.CMULTCREDICMS + - decode(nvl(fam_mg.indmonopiscofins, 'N')|| nvl(emp_mg.indfaturaipi, 'N')||nvl(emp_mg.indimportadora, 'N'), - 'SNN', 0, nvl(pe_mg.cmultcredpis, 0) + nvl(pe_mg.cmultcredcofins, 0)), 0) - + pe_mg.CMULTICMSST + pe_mg.CMULTDESPNF + pe_mg.CMULTDESPFORANF - pe_mg.CMULTDCTOFORANF - - nvl( fc5VlrVerba( seg_mg.SEQPRODUTO, seg_mg.NROEMPRESA ), 0 ) - + nvl( fc5VlrVerba( seg_mg.SEQPRODUTO, seg_mg.NROEMPRESA, NULL, NULL, 'S' ), 0 ) ) * seg_mg.qtdembalagem, 4 ) - * case - when (pr_mg.seqprodutobase is not null and 'S' = 'S') then nvl(pr_mg.percacresccustorelacvig,1) - else 1 end - ),decode(seg_mg.precovalidpromoc,0,seg_mg.precovalidnormal,seg_mg.precovalidpromoc))),2) - from max_Empresa emp_mg - join mrl_prodempseg seg_mg - on seg_mg.nroempresa = emp_mg.nroempresa - and seg_mg.nrosegmento = emp_mg.nrosegmentoprinc - and seg_mg.qtdembalagem = 1 - and seg_mg.seqproduto = pemp.seqproduto - join map_produto pr_mg - on pr_mg.seqproduto = seg_mg.seqproduto - join mrl_produtoempresa pe_mg - on pe_mg.nroempresa = emp_mg.nroempresa - and pe_mg.seqproduto = nvl(pr_mg.seqprodutobase, pr_mg.seqproduto) - join map_familia fam_mg - on fam_mg.seqfamilia = pr_mg.seqfamilia - where emp_mg.nroempresa = pemp.nroempresa),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 - ) - -- [inline: gmgb_fn_buscamargemproduto(pemp.nroempresa, pemp.seqproduto)] - then nvl((select round(max(fc5margempreco(pemp.seqproduto, pemp.nroempresa, emp_mg2.nrosegmentoprinc, seg_mg2.qtdembalagem, - (round( ( pe_mg2.CMULTVLRNF + pe_mg2.CMULTIPI - - decode( 'L', 'L', pe_mg2.CMULTCREDICMS + - decode(nvl(fam_mg2.indmonopiscofins, 'N')|| nvl(emp_mg2.indfaturaipi, 'N')||nvl(emp_mg2.indimportadora, 'N'), - 'SNN', 0, nvl(pe_mg2.cmultcredpis, 0) + nvl(pe_mg2.cmultcredcofins, 0)), 0) - + pe_mg2.CMULTICMSST + pe_mg2.CMULTDESPNF + pe_mg2.CMULTDESPFORANF - pe_mg2.CMULTDCTOFORANF - - nvl( fc5VlrVerba( seg_mg2.SEQPRODUTO, seg_mg2.NROEMPRESA ), 0 ) - + nvl( fc5VlrVerba( seg_mg2.SEQPRODUTO, seg_mg2.NROEMPRESA, NULL, NULL, 'S' ), 0 ) ) * seg_mg2.qtdembalagem, 4 ) - * case - when (pr_mg2.seqprodutobase is not null and 'S' = 'S') then nvl(pr_mg2.percacresccustorelacvig,1) - else 1 end - ),decode(seg_mg2.precovalidpromoc,0,seg_mg2.precovalidnormal,seg_mg2.precovalidpromoc))),2) - from max_Empresa emp_mg2 - join mrl_prodempseg seg_mg2 - on seg_mg2.nroempresa = emp_mg2.nroempresa - and seg_mg2.nrosegmento = emp_mg2.nrosegmentoprinc - and seg_mg2.qtdembalagem = 1 - and seg_mg2.seqproduto = pemp.seqproduto - join map_produto pr_mg2 - on pr_mg2.seqproduto = seg_mg2.seqproduto - join mrl_produtoempresa pe_mg2 - on pe_mg2.nroempresa = emp_mg2.nroempresa - and pe_mg2.seqproduto = nvl(pr_mg2.seqprodutobase, pr_mg2.seqproduto) - join map_familia fam_mg2 - on fam_mg2.seqfamilia = pr_mg2.seqfamilia - where emp_mg2.nroempresa = pemp.nroempresa),0) - else - -- [inline: CONSINCO.GMGB_FN_BUSCAMARGEMPRODUTO_AT2(pemp.nroempresa, pemp.seqproduto)] - nvl((select case when at2_q.precovalidpromoc > 0 then round(at2_q.mgmprecovdapromoc,2) - when at2_q.precovalidnormal > 0 then round(at2_q.mgmprecominvdaempresa,2) - end - from ( - SELECT x_at2.precovalidnormal, - x_at2.precovalidpromoc, - decode ((fminprecoprodemp2(x_at2.seqproduto, x_at2.nroempresa, o_at2.nrosegmento) * x_at2.qtdembalagem), 0, 0, - (((fminprecoprodemp2(x_at2.seqproduto, x_at2.nroempresa, o_at2.nrosegmento) * x_at2.qtdembalagem) - ( - ((fminprecoprodemp2(x_at2.seqproduto, x_at2.nroempresa, o_at2.nrosegmento) * x_at2.qtdembalagem) * - (case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' then 0 - else decode(m_at2.metodoprecificacao, 'B', 0, 'I', 0, decode(h_at2.pericmsestimativa, 0, - f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa)) - end / 100)) - + - (((b_at2.cmultvlrnf + b_at2.cmultipi - - decode(m_at2.metodoprecificacao, 'L', b_at2.cmultcredicms + nvl(b_at2.cmultcredipi,0) - + DECODE(nvl(decode(nvl(fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'P', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfpissai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) - || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredpis,0)) - + DECODE(nvl(decode(nvl(fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'C', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfcofinssai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) - || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredcofins,0)), - 'I', DECODE(nvl(decode(nvl(fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'P', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfpissai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) - || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredpis,0)) - + DECODE(nvl(decode(nvl(fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'C', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfcofinssai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) - || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredcofins,0)), 0) - + b_at2.cmulticmsst + b_at2.cmultdespnf + b_at2.cmultdespforanf - b_at2.cmultdctoforanf - - nvl(fc5VlrVerba(a_at2.seqproduto, b_at2.nroempresa), 0) - + nvl(fc5VlrVerba(a_at2.seqproduto, b_at2.nroempresa, null, null, 'S'), 0)) * x_at2.qtdembalagem) - + case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' - then nvl((fCustoPonderadoBaseICMS(trunc(sysdate), a_at2.seqproduto, b_at2.nroempresa, f_at2.nrotributacao, f_at2.nroregtributacao,'C') * x_at2.qtdembalagem), 0) - * (decode(m_at2.metodoprecificacao,'L', decode(h_at2.pericmsestimativa, 0, f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa), 0) / 100) - else 0 - end) - * case when (a_at2.seqprodutobase is not null and m_at2.utilacresccustprodrelac = 'S') then nvl(a_at2.percacresccustorelacvig,1) else 1 end - + - ((fminprecoprodemp2(x_at2.seqproduto, x_at2.nroempresa, o_at2.nrosegmento) * x_at2.qtdembalagem) * - (decode(decode(p_at2.TIPOCALCCOMISSAOSEG,'E', h_at2.tipocalccomissao, NVL(p_at2.TIPOCALCCOMISSAOSEG, h_at2.tipocalccomissao)),'F', nvl(o_at2.percomissaonormalfs, nvl(n_at2.percomissaonormal,0)), nvl(n_at2.percomissaonormal,0)) - + decode(q_at2.Ger1_12AvosComPreco,'S', ((decode(decode(p_at2.TIPOCALCCOMISSAOSEG,'E', h_at2.tipocalccomissao, NVL(p_at2.TIPOCALCCOMISSAOSEG, h_at2.tipocalccomissao)),'F', nvl(o_at2.percomissaonormalfs, nvl(n_at2.percomissaonormal,0)), nvl(n_at2.percomissaonormal,0)))) / 12, 0) - + (decode(nvl(m_at2.tipcalcmargem, m_at2.tipdivisao),'A', n_at2.perdespclassifabc, nvl(o_at2.perdespesasegmento, nvl(c_at2.perdespesadivisao, nvl(h_at2.perdespoperacional,0)))) - + decode(m_at2.metodoprecificacao,'B', 0, - nvl(coalesce(fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'P','S','NP', a_at2.seqfamilia), - fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'P','N','S')), - decode(nvl(f_at2.situacaonfpis, l_at2.situacaonfpissai),'00',0,'08',0, - decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), - 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.perpisdif, h_at2.perpis)), - decode(l_at2.indisentodebpiscofins,'S',0, h_at2.perpis))))) * - ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfpis,'01',f_at2.perbasepis,null), decode(l_at2.situacaonfpissai,'01',l_at2.perbasepis,null)),0),0)) / 100) - + nvl(coalesce(fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'C','S','NP', a_at2.seqfamilia), - fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'C','N','S')), - decode(nvl(f_at2.situacaonfcofins, l_at2.situacaonfcofinssai),'00',0,'08',0, - decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), - 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.percofinsdif, h_at2.percofins)), - decode(l_at2.indisentodebpiscofins,'S',0, h_at2.percofins))))) * - ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfcofins,'01',f_at2.perbasecofins,null), decode(l_at2.situacaonfcofinssai,'01',l_at2.perbasecofins,null)),0),0)) / 100) - + h_at2.percpmf + h_at2.perir + h_at2.peroutroimposto - + nvl(decode(nvl(f_at2.indcalcstembutprod,'N'),'S', f_at2.peraliquotast + (f_at2.peraliquotast * f_at2.peracrescst / 100),0),0)))) / 100))) / - ((fminprecoprodemp2(x_at2.seqproduto, x_at2.nroempresa, o_at2.nrosegmento) * x_at2.qtdembalagem) - - decode(m_at2.metodocalcrentab,'L', ( - ((fminprecoprodemp2(x_at2.seqproduto, x_at2.nroempresa, o_at2.nrosegmento) * x_at2.qtdembalagem) * - (case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' then 0 - else decode(m_at2.metodoprecificacao,'B',0,'I',0, decode(h_at2.pericmsestimativa,0, f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa)) - end / 100)) - + ((fminprecoprodemp2(x_at2.seqproduto, x_at2.nroempresa, o_at2.nrosegmento) * x_at2.qtdembalagem) * - decode(m_at2.metodoprecificacao,'B',0, - nvl(coalesce(fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'P','S','NP', a_at2.seqfamilia), - fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'P','N','S')), - decode(nvl(f_at2.situacaonfpis, l_at2.situacaonfpissai),'00',0,'08',0, - decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), - 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.perpisdif, h_at2.perpis)), - decode(l_at2.indisentodebpiscofins,'S',0, h_at2.perpis))))) * - ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfpis,'01',f_at2.perbasepis,null), decode(l_at2.situacaonfpissai,'01',l_at2.perbasepis,null)),0),0)) / 100) - + nvl(coalesce(fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'C','S','NP', a_at2.seqfamilia), - fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'C','N','S')), - decode(nvl(f_at2.situacaonfcofins, l_at2.situacaonfcofinssai),'00',0,'08',0, - decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), - 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.percofinsdif, h_at2.percofins)), - decode(l_at2.indisentodebpiscofins,'S',0, h_at2.percofins))))) * - ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfcofins,'01',f_at2.perbasecofins,null), decode(l_at2.situacaonfcofinssai,'01',l_at2.perbasecofins,null)),0),0)) / 100) - + h_at2.percpmf + h_at2.perir + h_at2.peroutroimposto - + nvl(decode(nvl(f_at2.indcalcstembutprod,'N'),'S', f_at2.peraliquotast + (f_at2.peraliquotast * f_at2.peracrescst / 100),0),0)) / 100)), 0) - )) * 100) as mgmprecominvdaempresa, - - decode(round(fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2), 0, 0, - ((round(fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) - ( - (round(fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) * - (decode(m_at2.metodoprecificacao,'B',0,'I',0, - case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' then 0 - else DECODE(NVL(t_at2.GERADEBRECICMSANTECIP,'N'), - 'S', nvl(f_at2.PERALIQICMSCALCPRECO, f_at2.PERALIQUOTA) * decode(f_at2.peraliqicmscalcpreco, null, f_at2.pertributado, decode(f_at2.perisento,100,0,100)) / 100, - decode(h_at2.pericmsestimativa,0, f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa)) - end) / 100)) - + - (((b_at2.cmultvlrnf + b_at2.cmultipi - - decode(m_at2.metodoprecificacao,'L', b_at2.cmultcredicms + nvl(b_at2.cmultcredipi,0) - + DECODE(nvl(decode(nvl(fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'P', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfpissai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) - || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredpis,0)) - + DECODE(nvl(decode(nvl(fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'C', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfcofinssai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) - || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredcofins,0)), - 'I', DECODE(nvl(decode(nvl(fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'P', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfpissai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) - || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredpis,0)) - + DECODE(nvl(decode(nvl(fBuscaSituacaoPisCofins(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao,'C', h_at2.nroempresa, h_at2.seqpessoaemp, a_at2.seqfamilia, trunc(sysdate),'S','C'), l_at2.situacaonfcofinssai),'04','S',NULL,NULL,'N'), nvl(l_at2.indmonopiscofins,'N')) - || nvl(h_at2.indfaturaipi,'N') || nvl(h_at2.indimportadora,'N'), 'SNN', 0, nvl(b_at2.cmultcredcofins,0)), 0) - + b_at2.cmulticmsst + b_at2.cmultdespnf + b_at2.cmultdespforanf - b_at2.cmultdctoforanf - - nvl(fc5VlrVerba(a_at2.seqproduto, b_at2.nroempresa), 0) - + nvl(fc5VlrVerba(a_at2.seqproduto, b_at2.nroempresa, null, null, 'S'), 0)) * x_at2.qtdembalagem) - + case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' - then nvl((fCustoPonderadoBaseICMS(trunc(sysdate), a_at2.seqproduto, b_at2.nroempresa, f_at2.nrotributacao, f_at2.nroregtributacao,'C') * x_at2.qtdembalagem), 0) - * (decode(m_at2.metodoprecificacao,'L', decode(h_at2.pericmsestimativa,0, f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa), 0) / 100) - else 0 - end) - * case when (a_at2.seqprodutobase is not null and m_at2.utilacresccustprodrelac = 'S') then nvl(a_at2.percacresccustorelacvig,1) else 1 end - + - (round(fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) * - (decode(decode(p_at2.TIPOCALCCOMISSAOSEG,'E', h_at2.tipocalccomissao, NVL(p_at2.TIPOCALCCOMISSAOSEG, h_at2.tipocalccomissao)),'F', nvl(o_at2.percomissaopromfs, nvl(n_at2.percomissaopromoc,0)), nvl(n_at2.percomissaopromoc,0)) - + decode(q_at2.Ger1_12AvosComPreco,'S', ((decode(decode(p_at2.TIPOCALCCOMISSAOSEG,'E', h_at2.tipocalccomissao, NVL(p_at2.TIPOCALCCOMISSAOSEG, h_at2.tipocalccomissao)),'F', nvl(o_at2.percomissaonormalfs, nvl(n_at2.percomissaonormal,0)), nvl(n_at2.percomissaonormal,0)))) / 12, 0) - + (decode(nvl(m_at2.tipcalcmargem, m_at2.tipdivisao),'A', n_at2.perdespclassifabc, nvl(o_at2.perdespesasegmento, nvl(c_at2.perdespesadivisao, nvl(h_at2.perdespoperacional,0)))) - + decode(m_at2.metodoprecificacao,'B',0, - nvl(coalesce(fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'P','S','NP', a_at2.seqfamilia), - fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'P','N')), - decode(nvl(f_at2.situacaonfpis, l_at2.situacaonfpissai),'00',0,'08',0, - decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), - 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.perpisdif, h_at2.perpis)), - decode(l_at2.indisentodebpiscofins,'S',0, h_at2.perpis))))) * - ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfpis,'01',f_at2.perbasepis,null), decode(l_at2.situacaonfpissai,'01',l_at2.perbasepis,null)),0),0)) / 100) - + nvl(coalesce(fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'C','S','NP', a_at2.seqfamilia), - fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'C','N')), - decode(nvl(f_at2.situacaonfcofins, l_at2.situacaonfcofinssai),'00',0,'08',0, - decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), - 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.percofinsdif, h_at2.percofins)), - decode(l_at2.indisentodebpiscofins,'S',0, h_at2.percofins))))) * - ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfcofins,'01',f_at2.perbasecofins,null), decode(l_at2.situacaonfcofinssai,'01',l_at2.perbasecofins,null)),0),0)) / 100) - + h_at2.percpmf + h_at2.perir + h_at2.peroutroimposto - + nvl(decode(nvl(f_at2.indcalcstembutprod,'N'),'S', f_at2.peraliquotast + (f_at2.peraliquotast * f_at2.peracrescst / 100),0),0)))) / 100))) / - (round(fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) - - decode(m_at2.metodocalcrentab,'L', ( - (round(fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) * - (decode(m_at2.metodoprecificacao,'B',0,'I',0, - case when f_at2.indutilcustomesbase = 'S' and t_at2.utiloficiocstbrutobasest = 'S' then 0 - else DECODE(NVL(t_at2.GERADEBRECICMSANTECIP,'N'), - 'S', nvl(f_at2.PERALIQICMSCALCPRECO, f_at2.PERALIQUOTA) * decode(f_at2.peraliqicmscalcpreco, null, f_at2.pertributado, decode(f_at2.perisento,100,0,100)) / 100, - decode(h_at2.pericmsestimativa,0, f_at2.pertributado * nvl(f_at2.peraliqicmscalcpreco, f_at2.peraliquota) / 100, h_at2.pericmsestimativa)) - end) / 100)) - + (round(fminprecopromocprodemp(x_at2.seqproduto, x_at2.nroempresa) * x_at2.qtdembalagem, 2) * - decode(m_at2.metodoprecificacao,'B',0, - nvl(coalesce(fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'P','S','NP', a_at2.seqfamilia), - fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'P','N')), - decode(nvl(f_at2.situacaonfpis, l_at2.situacaonfpissai),'00',0,'08',0, - decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), - 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.perpisdif, h_at2.perpis)), - decode(l_at2.indisentodebpiscofins,'S',0, h_at2.perpis))))) * - ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfpis,'01',f_at2.perbasepis,null), decode(l_at2.situacaonfpissai,'01',l_at2.perbasepis,null)),0),0)) / 100) - + nvl(coalesce(fmap_piscofinstribut(f_at2.nrotributacao, f_at2.ufempresa, f_at2.ufclientefornec, decode(m_at2.tipdivisao,'A','SC','SN'), f_at2.nroregtributacao, h_at2.nroempresa, h_at2.NRODIVISAO, h_at2.seqpessoaemp,'C','S','NP', a_at2.seqfamilia), - fmap_piscofinsfamilia(h_at2.nroempresa, h_at2.nrodivisao, NULL, a_at2.seqfamilia,'C','N')), - decode(nvl(f_at2.situacaonfcofins, l_at2.situacaonfcofinssai),'00',0,'08',0, - decode(l_at2.indisentopis,'S',0, decode(nvl(l_at2.indmonopiscofins,'N'), - 'S', decode(nvl(h_at2.indfaturaipi,'N')||nvl(h_at2.indimportadora,'N'),'NN',0, nvl(f_at2.percofinsdif, h_at2.percofins)), - decode(l_at2.indisentodebpiscofins,'S',0, h_at2.percofins))))) * - ((100 - decode(substr(f_at2.tiptributacao,1,1),'E', nvl(nvl(decode(f_at2.situacaonfcofins,'01',f_at2.perbasecofins,null), decode(l_at2.situacaonfcofinssai,'01',l_at2.perbasecofins,null)),0),0)) / 100) - + h_at2.percpmf + h_at2.perir + h_at2.peroutroimposto - + nvl(decode(nvl(f_at2.indcalcstembutprod,'N'),'S', f_at2.peraliquotast + (f_at2.peraliquotast * f_at2.peracrescst / 100),0),0)) / 100)), 0) - )) * 100) as mgmprecovdapromoc - - from max_empresa h_at2, - map_produto a_at2, - mrl_produtoempresa b_at2, - map_famdivisao c_at2, - map_famdivcateg d_at2, - map_categoria e_at2, - map_famembalagem i_at2, - map_famembalagem j_at2, - map_famembalagem k_at2, - map_famembalagem tr_at2, - map_tributacaouf f_at2, - map_familia l_at2, - mrl_prodempseg x_at2, - max_divisao m_at2, - mad_famsegmento o_at2, - map_classifabc n_at2, - mad_segmento p_at2, - mad_parametro q_at2, - map_famfornec r_at2, - map_regimetributacao t_at2, - max_parametro pd_at2 - where 1=1 - and b_at2.nroempresa = h_at2.nroempresa - and a_at2.seqproduto = b_at2.seqproduto - and c_at2.seqfamilia = a_at2.seqfamilia - and c_at2.nrodivisao = h_at2.nrodivisao - and d_at2.seqfamilia = a_at2.seqfamilia - and d_at2.nrodivisao = h_at2.nrodivisao - and d_at2.status = 'A' - and e_at2.seqcategoria = d_at2.seqcategoria - and e_at2.tipcategoria = 'M' - and e_at2.actfamilia = 'S' - and e_at2.nrodivisao = h_at2.nrodivisao - and f_at2.nrotributacao = c_at2.nrotributacao - and f_at2.ufempresa = nvl(h_at2.ufformacaopreco, h_at2.uf) - and f_at2.ufclientefornec = h_at2.uf - and f_at2.nroregtributacao = nvl(h_at2.nroregtributacao, 0) - and f_at2.tiptributacao = decode(m_at2.tipdivisao,'A','SC','SN') - and i_at2.seqfamilia = a_at2.seqfamilia - and i_at2.qtdembalagem = nvl(r_at2.padraoembcomprafornec, c_at2.padraoembcompra) - and j_at2.seqfamilia = o_at2.seqfamilia - and j_at2.qtdembalagem = o_at2.padraoembvenda - and k_at2.seqfamilia = a_at2.seqfamilia - and k_at2.qtdembalagem = x_at2.qtdembalagem - and tr_at2.seqfamilia = a_at2.seqfamilia - and tr_at2.qtdembalagem = nvl(c_at2.padraoembtransf, o_at2.padraoembvenda) - and l_at2.seqfamilia = a_at2.seqfamilia - and x_at2.seqproduto = a_at2.seqproduto - and x_at2.nroempresa = h_at2.nroempresa - and m_at2.nrodivisao = h_at2.nrodivisao - and o_at2.seqfamilia = a_at2.seqfamilia - and o_at2.nrosegmento = x_at2.nrosegmento - and n_at2.nrosegmento = o_at2.nrosegmento - and n_at2.classifcomercabc = o_at2.classifcomercabc - and x_at2.nrosegmento = p_at2.nrosegmento - and q_at2.nroempresa = h_at2.nroempresa - and r_at2.seqfamilia = a_at2.seqfamilia - and t_at2.nroregtributacao = f_at2.nroregtributacao - and h_at2.nrosegmentoprinc = o_at2.nrosegmento - and pd_at2.grupo = 'PRODUTO' - and pd_at2.parametro = 'UTIL_FORMA_ABASTEC_PROD' - and pd_at2.nroempresa = 0 - and x_at2.statusvenda = 'A' - and x_at2.qtdembalagem = 1 - and b_at2.nroempresa = pemp.nroempresa - and b_at2.seqproduto = pemp.seqproduto - and r_at2.rowid = decode((select min(id) from maxx_selecrowid - where maxx_selecrowid.sequencia = 4 - and maxx_selecrowid.seqfamilia = r_at2.seqfamilia), null, - (select min(mfr2.rowid) from map_famfornec mfr2 where mfr2.seqfamilia = r_at2.seqfamilia and mfr2.principal = 'S'), - (select min(id) from maxx_selecrowid where maxx_selecrowid.sequencia = 4 and maxx_selecrowid.seqfamilia = r_at2.seqfamilia)) - ) at2_q),0) - end MargemAtacado, - - nvl(mcab.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' - -- [inline: gmgb_fn_busca_forma_abastecfam(pro.seqfamilia, md.nrodivisao)] - when pemp.formaabastecimento is null then ( - select case - when mfd_fa.formaabastecimento = 'I' then 'ARMAZENAGEM' - when mfd_fa.formaabastecimento = 'C' then 'CROSS' - when mfd_fa.formaabastecimento = 'N' then 'CENTRAL-EDL' - when mfd_fa.formaabastecimento = 'E' then 'LOJA-EDL' - when mfd_fa.formaabastecimento = 'F' then 'FRACIONADO' - end - from map_famdivisao mfd_fa - where mfd_fa.seqfamilia = pro.seqfamilia - and mfd_fa.nrodivisao = 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, - - -- [inline: consinco.gmgb_fn_busca_dtult_entrada(pemp.nroempresa, pemp.seqproduto)] - (select max(mnf_de.Dtaentrada) - from mlf_notafiscal mnf_de - inner join mlf_nfitem mnfi_de - on mnfi_de.NUMERONF = mnf_de.NUMERONF - and mnfi_de.SEQPESSOA = mnf_de.SEQPESSOA - and mnfi_de.SERIENF = mnf_de.SERIENF - and mnfi_de.TIPNOTAFISCAL = mnf_de.TIPNOTAFISCAL - and mnfi_de.NROEMPRESA = mnf_de.NROEMPRESA - inner join max_parametro mp_de - on mp_de.nroempresa = mnf_de.nroempresa - and mp_de.parametro = 'CGO_ENTR_BONIF_NFCOMPRA' - where mnf_de.tipnotafiscal = 'E' - and mnf_de.statusnf <> 'C' - and mnfi_de.tipitem = 'R' - and mnf_de.dtaentrada >= trunc(sysdate - 365) - and mnf_de.dtaentrada <= trunc(sysdate - 1) - and mnf_de.nroempresa = pemp.nroempresa - and mnfi_de.seqproduto = 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, - 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 = '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, - -- [inline: consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa, pemp.seqproduto, 15)] - case when pes3.precovalidpromoc > 0 then - nvl((select round(max(fc5margempreco(pemp.seqproduto, pemp.nroempresa, 15, seg_mbo1.qtdembalagem, - (round( ( pe_mbo1.CMULTVLRNF + pe_mbo1.CMULTIPI - - decode( 'L', 'L', pe_mbo1.CMULTCREDICMS + - decode(nvl(fam_mbo1.indmonopiscofins, 'N')|| nvl(emp_mbo1.indfaturaipi, 'N')||nvl(emp_mbo1.indimportadora, 'N'), - 'SNN', 0, nvl(pe_mbo1.cmultcredpis, 0) + nvl(pe_mbo1.cmultcredcofins, 0)), 0) - + pe_mbo1.CMULTICMSST + pe_mbo1.CMULTDESPNF + pe_mbo1.CMULTDESPFORANF - pe_mbo1.CMULTDCTOFORANF - - nvl( fc5VlrVerba( seg_mbo1.SEQPRODUTO, seg_mbo1.NROEMPRESA ), 0 ) - + nvl( fc5VlrVerba( seg_mbo1.SEQPRODUTO, seg_mbo1.NROEMPRESA, NULL, NULL, 'S' ), 0 ) ) * seg_mbo1.qtdembalagem, 4 ) - * case - when (pr_mbo1.seqprodutobase is not null and 'S' = 'S') then nvl(pr_mbo1.percacresccustorelacvig,1) - else 1 end - ),decode(seg_mbo1.precovalidpromoc,0,seg_mbo1.precovalidnormal,seg_mbo1.precovalidpromoc))),2) - from max_Empresa emp_mbo1 - join mrl_prodempseg seg_mbo1 - on seg_mbo1.nroempresa = emp_mbo1.nroempresa - and seg_mbo1.qtdembalagem = 1 - and seg_mbo1.nrosegmento = 15 - and seg_mbo1.seqproduto = pemp.seqproduto - join map_produto pr_mbo1 - on pr_mbo1.seqproduto = seg_mbo1.seqproduto - join mrl_produtoempresa pe_mbo1 - on pe_mbo1.nroempresa = emp_mbo1.nroempresa - and pe_mbo1.seqproduto = nvl(pr_mbo1.seqprodutobase, pr_mbo1.seqproduto) - join map_familia fam_mbo1 - on fam_mbo1.seqfamilia = pr_mbo1.seqfamilia - where emp_mbo1.nroempresa = pemp.nroempresa),0) - else - 0 - end MargemMeuMambo, - -- [inline: consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa, pemp.seqproduto, 2, 'S')] - nvl((select round(max(fc5margempreco(pemp.seqproduto, pemp.nroempresa, 2, seg_mbo2.qtdembalagem, - (round( ( pe_mbo2.CMULTVLRNF + pe_mbo2.CMULTIPI - - decode( 'L', 'L', pe_mbo2.CMULTCREDICMS + - decode(nvl(fam_mbo2.indmonopiscofins, 'N')|| nvl(emp_mbo2.indfaturaipi, 'N')||nvl(emp_mbo2.indimportadora, 'N'), - 'SNN', 0, nvl(pe_mbo2.cmultcredpis, 0) + nvl(pe_mbo2.cmultcredcofins, 0)), 0) - + pe_mbo2.CMULTICMSST + pe_mbo2.CMULTDESPNF + pe_mbo2.CMULTDESPFORANF - pe_mbo2.CMULTDCTOFORANF - - nvl( fc5VlrVerba( seg_mbo2.SEQPRODUTO, seg_mbo2.NROEMPRESA ), 0 ) - + nvl( fc5VlrVerba( seg_mbo2.SEQPRODUTO, seg_mbo2.NROEMPRESA, NULL, NULL, 'S' ), 0 ) ) * seg_mbo2.qtdembalagem, 4 ) - * case - when (pr_mbo2.seqprodutobase is not null and 'S' = 'S') then nvl(pr_mbo2.percacresccustorelacvig,1) - else 1 end - ),seg_mbo2.precovalidnormal)),2) - from max_Empresa emp_mbo2 - join mrl_prodempseg seg_mbo2 - on seg_mbo2.nroempresa = emp_mbo2.nroempresa - and seg_mbo2.qtdembalagem = 1 - and seg_mbo2.nrosegmento = 2 - and seg_mbo2.seqproduto = pemp.seqproduto - join map_produto pr_mbo2 - on pr_mbo2.seqproduto = seg_mbo2.seqproduto - join mrl_produtoempresa pe_mbo2 - on pe_mbo2.nroempresa = emp_mbo2.nroempresa - and pe_mbo2.seqproduto = nvl(pr_mbo2.seqprodutobase, pr_mbo2.seqproduto) - join map_familia fam_mbo2 - on fam_mbo2.seqfamilia = pr_mbo2.seqfamilia - where emp_mbo2.nroempresa = pemp.nroempresa),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.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 - -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 - `, - }; - }, - }, });