Ajustes na consulta de produtos

This commit is contained in:
Jonathã Correa
2026-04-28 07:53:45 -03:00
parent 645cc9129c
commit 5cdcb503b0
+395 -27
View File
@@ -1403,7 +1403,7 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code, CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code,
p.DESCCOMPLETA AS title p.DESCCOMPLETA AS title
FROM FROM
DIN_ABASTECIMENTO_PRODUTOS p CONSINCO.MAP_PRODUTO p
WHERE WHERE
1 = 1 1 = 1
AND ( AND (
@@ -1440,7 +1440,17 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
select /*+ FIRST_ROWS(10) */ pemp.nroempresa, select /*+ FIRST_ROWS(10) */ pemp.nroempresa,
tcomp.comprador, tcomp.comprador,
nvl(mff.fornecedor, 'N/A') fornecedor, 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 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, pro.seqproduto,
initcap(pro.desccompleta) Descricao, initcap(pro.desccompleta) Descricao,
nvl(mapi.urlecommerceimg,'') ImagemUrl, nvl(mapi.urlecommerceimg,'') ImagemUrl,
@@ -1465,7 +1475,34 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
end, 2) PrecoVarejo, end, 2) PrecoVarejo,
trunc(nvl(pemp.medvdiaforapromoc,0),4) MDV, 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(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 case
when trunc(case when trunc(case
@@ -1475,11 +1512,272 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0) when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0)
when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0) when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0)
end / pes2.qtdembalagem,2 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(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 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 ((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, end MargemAtacado,
nvl(pemp.codclassifpreco,'Sem valor') ClasseAbastecimento,
nvl(mcab.codclassifpreco,'Sem valor') ClasseAbastecimento,
emb.embalagem DescricaoEmbalagem, emb.embalagem DescricaoEmbalagem,
trunc(nvl(emb.qtdembalagem,0)) QuantidadeEmbalagem, trunc(nvl(emb.qtdembalagem,0)) QuantidadeEmbalagem,
case case
@@ -1490,7 +1788,7 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
NVL(pemp.estqtroca,0) EstoqueTroca, NVL(pemp.estqtroca,0) EstoqueTroca,
NVL(pemp.qtdpedrectransito,0) EstoqueTransito, NVL(pemp.qtdpedrectransito,0) EstoqueTransito,
pemp.qtdpendpedcompra EstoqueFuturo, pemp.qtdpendpedcompra EstoqueFuturo,
NVL(pemp.qtdreservadavda,0) + nvl(pemp.estqoutro,0) EstoqueReservado, --24/05/2024 - cfreitas - Includo estqoutro para no ser necessrio utilizar MADV_COMPOSICAORESERVASELINV 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 ROUND(nvl(case
when NVL(pemp.medvdiaforapromoc, 0) = 0 then 0 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) 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)
@@ -1504,7 +1802,18 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
when pemp.formaabastecimento = 'C' then 'CROSS' when pemp.formaabastecimento = 'C' then 'CROSS'
when pemp.formaabastecimento = 'N' then 'CENTRAL-EDL' when pemp.formaabastecimento = 'N' then 'CENTRAL-EDL'
when pemp.formaabastecimento = 'E' then 'LOJA-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 map_famdivisao mfd_fa
where mfd_fa.seqfamilia = pro.seqfamilia
and mfd_fa.nrodivisao = md.nrodivisao)
end FormaAbastecimento, end FormaAbastecimento,
case case
@@ -1514,28 +1823,37 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
pempcd.estqdeposito - nvl(pempcd.qtdreservadavda,0) EstoqueDisponivelCD, pempcd.estqdeposito - nvl(pempcd.qtdreservadavda,0) EstoqueDisponivelCD,
pempcd.qtdpendpedcompra EstoqueFuturoCD, pempcd.qtdpendpedcompra EstoqueFuturoCD,
consinco.gmgb_fn_busca_dtult_entrada(pemp.nroempresa,pemp.seqproduto) DATAULTIMAENTRADA, -- [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, pemp.dtaultvenda DATAULTIMAVENDA,
consinco.fmrl_custoprodempatual(pro.seqproduto, pemp.nroempresa, 'L') custoliquido, 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 (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, 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 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, nvl(pro.seqprodutobase,0) IdBase,
case case
when mfdv.indnegavariacentral = 'S' THEN 'TROCA FISICA' when mfdv.indnegavariacentral = 'S' THEN 'TROCA FISICA'
ELSE ELSE
case when mff.indindenizavaria = 'N' then 'NF DEVOL'
case when mff.indindenizavaria = 'S' then else 'SEM TROCA'
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
END TIPOTROCA, END TIPOTROCA,
mfdv.padraoembcompra QUANTIDADECOMPRA, mfdv.padraoembcompra QUANTIDADECOMPRA,
@@ -1545,12 +1863,64 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
nvl(pes.precovalidpromoc,0) PrecoPromoc, nvl(pes.precovalidpromoc,0) PrecoPromoc,
nvl(pes.precovalidnormal,0) PrecoNormal, nvl(pes.precovalidnormal,0) PrecoNormal,
nvl(pes3.precovalidpromoc,0) PrecoMeuMambo, nvl(pes3.precovalidpromoc,0) PrecoMeuMambo,
-- [inline: consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa, pemp.seqproduto, 15)]
case when pes3.precovalidpromoc > 0 then case when pes3.precovalidpromoc > 0 then
nvl(consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa,pemp.seqproduto,15),0) 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 else
0 0
end MargemMeuMambo, 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(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, trunc(nvl(pemp.medvdiapromoc,0),4) MdvPromoc,
NVL(vncto.vlrprecovenctoprox,0) VLRPRECOVENCTOPROX, NVL(vncto.vlrprecovenctoprox,0) VLRPRECOVENCTOPROX,
vncto.dtavalidade vncto.dtavalidade
@@ -1559,7 +1929,6 @@ from max_divisao md
inner join max_empresa me inner join max_empresa me
on me.nrodivisao = md.nrodivisao 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.dtainiciomovestoque <= trunc(sysdate)
and me.status = 'A' and me.status = 'A'
@@ -1572,7 +1941,6 @@ inner join mrl_produtoempresa pemp
left join mrl_produtoempresa pempcd left join mrl_produtoempresa pempcd
on pempcd.seqproduto = pemp.seqproduto on pempcd.seqproduto = pemp.seqproduto
and pempcd.nroempresa in (979)
left join map_classeabastec mcab left join map_classeabastec mcab
on mcab.classeabastqtd = pemp.classeabastqtd on mcab.classeabastqtd = pemp.classeabastqtd
@@ -1610,7 +1978,7 @@ and pes2.nrosegmento = pes.nrosegmento
left join mrl_prodempseg pes3 left join mrl_prodempseg pes3
on pes3.seqproduto = pemp.seqproduto on pes3.seqproduto = pemp.seqproduto
and pes3.nroempresa = pemp.nroempresa and pes3.nroempresa = pemp.nroempresa
and pes3.nrosegmento = 15 --and pes3.nrosegmento = 15
and pes3.qtdembalagem = 1 and pes3.qtdembalagem = 1
inner join map_famembalagem emb inner join map_famembalagem emb