import { createModuleFactory } from "@davinti/jeff"; const moduleFactory = createModuleFactory(["C5", "C5_mambo", "C5_big"]); export default moduleFactory .createModule({ id: "consulta-de-produto", description: "Consulta de Produtos", label: "Consulta de Produtos", icon: "search", queries: { consulta: { name: "Consulta de Produtos", display: { type: "list", search_bar: { placeholder: "Digite o nome, código ou EAN do produto", }, rows: { title: "title", code: "code", }, }, params: ["filtro", "ean"], }, detalhe: { name: "Detalhes do Produto", display: { type: "detail", stores: [ { store_id: "idempresa", store_name: "nomeempresa", category: "categoria", last_entry: "dataultimaentrada", last_sale: "dataultimavenda", sections: [ { label: "Preço Atacado", column: "precoatacado", format: "currency_short", }, { label: "Preço Varejo", column: "precovarejo", format: "currency_short", }, { label: "MDV", column: "mdv", format: "currency_short", }, { label: "Margem", column: "margem", format: "number", }, { label: "Margem Atacado", column: "margematacado", format: "number", }, { label: "Classe Abastecimento", column: "classeabastecimento", format: "string", }, { label: "Descrição Embalagem", column: "descricaoembalagem", format: "string", }, { label: "Quantidade Embalagem", column: "quantidadeembalagem", format: "number", entrypoint: "detalhe_preco_embalagem", }, { label: "Estoque Disponível", column: "estoqueDisponivel", format: "number", }, { label: "Estoque Troca", column: "estoquetroca", format: "number", }, { label: "Estoque Trânsito", column: "estoquetransito", format: "number", }, { label: "Estoque Futuro", column: "estoquefuturo", format: "number", }, { label: "Estoque Reservado", column: "estoquereservado", format: "number", }, { label: "DDV", column: "ddv", format: "currency_short", }, { label: "DDV Mínimo", column: "ddvminimo", format: "currency_short", }, { label: "DDV Máximo", column: "ddvmaximo", format: "currency_short", }, { label: "Forma Abastecimento", column: "formaabastecimento", format: "string", }, { label: "Situação", column: "situacao", format: "string", }, { label: "Estoque Disponível CD", column: "estoquedisponivelcd", format: "number", }, { label: "Estoque Futuro CD", column: "estoquefuturocd", format: "number", }, { label: "Custo Líquido", column: "custoliquido", format: "currency_short", }, { label: "Status Venda", column: "statusvenda", format: "string", }, { label: "Status Compra", column: "statuscompra", format: "string", }, { label: "Qtde Atacado", column: "qtdeatacado", format: "number", }, { label: "ID Base", column: "idbase", format: "number", }, { label: "Tipo Troca", column: "tipotroca", format: "string", }, { label: "Quantidade Compra", column: "quantidadecompra", format: "number", }, { label: "Reserva", column: "reserva", format: "number", }, { label: "Validade Dias", column: "validadedias", format: "number", }, { label: "Margem Lucro Divisão", column: "margemlucrodivisao", format: "percentage", }, { label: "Preço Promoção", column: "precopromoc", format: "currency_short", }, { label: "Preço Normal", column: "preconormal", format: "currency_short", }, { label: "Preço Meu Mambo", column: "precomeuMambo", format: "currency_short", }, { label: "Margem Meu Mambo", column: "margemmeuMambo", format: "percentage", }, { label: "Margem Normal", column: "margemnormal", format: "percentage", }, { label: "MDV Promoção", column: "mdvpromoc", format: "currency_short", }, { label: "Preço Vencimento Próximo", column: "vlrprecovenctoprox", format: "currency_short", }, { label: "Data Validade", column: "dtavalidade", format: "date", }, ], }, ], }, params: ["codproduto"], }, detalhe_preco: { name: "Detalhe Preço Embalagem", display: { type: "table", table: { header: [ { label: "Embalagem", }, { label: "Preço Embalagem", }, { label: "Preço Unidade", }, { label: "Margem", }, ], cell: [ { field: "EMBALAGEM", format: "string", }, { field: "PRECO_EMBALAGEM", format: "currency", }, { field: "PRECO_UNIDADE", format: "currency", }, { field: "MARGEM", format: "percentage", }, ], }, }, params: ["nrempresa", "codproduto"], }, detalhe_mdv: { name: "Detalhe Vendas Dia", display: { type: "table", table: { header: [ { label: "Data", }, { label: "Qtd.", }, { label: "Qtd. ini.", }, ], cell: [ { field: "data", format: "date", }, { field: "qtd", format: "currency", }, { field: "qtd_inicial", format: "currency", }, ], }, }, params: ["nrempresa", "codproduto"], }, detalhe_situacao_vigente: { name: "Detalhe Histórico Venda", display: { type: "table", table: { header: [ { label: "Data Início", }, { label: "Data Fim", }, { label: "Embalagem", }, { label: "Preço", }, ], cell: [ { field: "data_inicio", format: "date", }, { field: "data_fim", format: "date", }, { field: "embalagem", format: "string", }, { field: "preco", format: "currency", }, ], }, }, params: ["nrempresa", "codproduto"], }, detalhe_custo_liquido: { name: "Detalhe Custo Médio", display: { type: "table", table: { header: [ { label: "Data", }, { label: "Est. ini.", }, { label: "Est. fin.", }, { label: "Custo", }, ], cell: [ { field: "data", format: "date", }, { field: "estoqinicial", format: "date", }, { field: "estoqfinal", format: "string", }, { field: "custo", format: "currency", }, ], }, }, params: ["nrempresa", "codproduto"], }, detalhe_estoque_disponivel: { name: "Detalhe Estoque Disponível", display: { type: "table", table: { header: [ { label: "Data", }, { label: "Qtd. ent.", }, { label: "Qtd. sai.", }, { label: "Saldo", }, ], cell: [ { field: "data", format: "date", }, { field: "qtdentrada", format: "date", }, { field: "qtdsaida", format: "string", }, { field: "qtdsaldo", format: "currency", }, ], }, }, params: ["nrempresa", "codproduto"], }, detalhe_estoque_transito: { name: "Detalhe Estoque Trânsito", display: { type: "table", table: { header: [ { label: "NF", }, { label: "Serie", }, { label: "Data", }, { label: "Qtd.", }, ], cell: [ { field: "NUMERONF", format: "number", }, { field: "SERIENF", format: "number", }, { field: "DTAEMISSAO", format: "date", }, { field: "QUANTIDADE", format: "number", }, ], }, }, params: ["nrempresa", "codproduto"], }, }, entrypoint: "consulta", }) .withImplementations({ C5: { consulta: (args) => { return { sql: /*sql*/ ` SELECT CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code, p.DESCCOMPLETA AS title FROM CONSINCO.MAP_PRODUTO p WHERE 1 = 1 AND ( ( ${args.filtro} IS NOT NULL AND ( p.SEQPRODUTO LIKE '%' || ${args.filtro} || '%' OR UPPER(p.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%') ) ) OR ( ${args.ean} IS NOT NULL AND EXISTS ( SELECT 1 FROM CONSINCO.MAP_PRODCODIGO A WHERE A.SEQPRODUTO = p.SEQPRODUTO AND ISNUMERIC(A.CODACESSO) = 'S' AND A.CODACESSO = ${args.ean} ) ) OR ( ${args.filtro} IS NULL AND ${args.ean} IS NULL ) ) ORDER BY 2 `, }; }, detalhe: (args) => { return { sql: /*sql*/ ` 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, -- [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, 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(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 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(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 -- [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 consinco.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 consinco.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 consinco.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 consinco.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 consinco.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 consinco.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 consinco.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','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))) / (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','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 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 consinco.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 consinco.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, 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, 0 EstoqueTransito, 0 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 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' 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 consinco.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_depreciada EstoqueFuturoCD, (select max(mnf_de.Dtaentrada) from consinco.mlf_notafiscal mnf_de inner join consinco.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, pemp.dtaultvenda DATAULTIMAVENDA, consinco.fmrl_custoprodempatual(pro.seqproduto, pemp.nroempresa, 'L') custoliquido, 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 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 = '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(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, -- [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 consinco.max_divisao md inner join consinco.max_empresa me on me.nrodivisao = md.nrodivisao and me.dtainiciomovestoque <= trunc(sysdate) and me.status = 'A' inner join consinco.mad_segmento seg on md.nrodivisao = me.nrodivisao and me.nrosegmentoprinc = seg.nrosegmento inner join consinco.mrl_produtoempresa pemp on pemp.nroempresa = me.nroempresa left join consinco.mrl_produtoempresa pempcd on pempcd.seqproduto = pemp.seqproduto left join consinco.map_classeabastec mcab on mcab.classeabastqtd = pemp.classeabastqtd and mcab.nroempresa = pemp.nroempresa and mcab.classeabastvlr = pemp.classeabastvlr inner join consinco.map_produto pro on pro.seqproduto = pemp.seqproduto inner join consinco.map_famdivisao mfdv on mfdv.seqfamilia = pro.seqfamilia and mfdv.nrodivisao = me.nrodivisao inner join consinco.max_comprador mco on mco.seqcomprador = mfdv.seqcomprador left join consinco.map_produtoimagem mapi on mapi.seqproduto = pro.seqproduto and mapi.indpricipal = 'S' 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 consinco.mrl_prodempseg pes2 on pes2.nroempresa = pes.nroempresa and pes2.seqproduto = pes.seqproduto and pes2.nrosegmento = pes.nrosegmento left join consinco.mrl_prodempseg pes3 on pes3.seqproduto = pemp.seqproduto and pes3.nroempresa = pemp.nroempresa --and pes3.nrosegmento = 15 and pes3.qtdembalagem = 1 inner join consinco.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 consinco.map_famfornec mffTemp inner join consinco.ge_pessoa gp on gp.seqpessoa = mffTemp.Seqfornecedor left join consinco.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 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 md.nrodivisao in (1) and pemp.seqproduto = 95799 and me.nroempresa in (229,219,1,215,218,217,221,220,222,233) and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) from consinco.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 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) 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' `, }; }, /** SEM RETORNO DE INFORMAÇÕES */ 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 consinco.mrl_custodia mcdia inner join consinco.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 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.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 `, }; }, /** SEM RETORNO DE INFORMAÇÕES */ 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 consinco.mrl_custodiafam mcdiafam INNER JOIN consinco.MAP_PRODUTO PROD ON PROD.SEQFAMILIA = MCDIAFAM.SEQFAMILIA inner join consinco.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 `, }; }, /** SEM RETORNO DE INFORMAÇÕES */ 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 consinco.mrl_custodia cdia join consinco.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 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 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.seqproduto = ${args.codproduto} and mle.nroempresa = ${args.nrempresa} group by mle.dtaentradasaida, mle.nroempresa, mle.seqproduto, cdia.qtdestqinicial order by dtaentradasaida desc `, }; }, /** SEM RETORNO DE INFORMAÇÕES */ 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 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 AND D.SEQPRODUTO = B.SEQPRODUTO AND A.DTAEMISSAO >= SYSDATE-365 AND a.nroempresa = ${args.nrempresa} AND b.seqproduto = ${args.codproduto} order by A.DTAEMISSAO, A.NUMERONF, A.SERIENF `, }; }, }, C5_mambo: { consulta: (args) => { return { sql: /*sql*/ ` SELECT CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code, p.DESCCOMPLETA AS title FROM DIN_ABASTECIMENTO_PRODUTOS p WHERE 1 = 1 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, consinco.gmgbfcategoriafamilian1(pro.seqfamilia, me.nrodivisao, 1) categoria, pro.seqproduto, initcap(pro.desccompleta) Descricao, nvl(mapi.urlecommerceimg,'') ImagemUrl, case when trunc(case when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0) when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0) end / pes2.qtdembalagem,2) = 0 then trunc(case when pes.precovalidpromoc > 0.00 then nvl(pes.precovalidpromoc,0) when pes.precovalidpromoc = 0.00 then nvl(pes.precovalidnormal,0) end, 2) else trunc(case when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0) when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0) end / pes2.qtdembalagem,2) end PrecoAtacado, trunc(case when pes.precovalidpromoc > 0.00 then nvl(pes.precovalidpromoc,0) when pes.precovalidpromoc = 0.00 then nvl(pes.precovalidnormal,0) end, 2) PrecoVarejo, trunc(nvl(pemp.medvdiaforapromoc,0),4) MDV, nvl(gmgb_fn_buscamargemproduto(pemp.nroempresa,pemp.seqproduto),0) Margem, case when trunc(case when pes.precovalidpromoc > 0.00 then nvl(pes.precovalidpromoc,0) when pes.precovalidpromoc = 0.00 then nvl(pes.precovalidnormal,0) end, 2) = trunc(case when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0) when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0) end / pes2.qtdembalagem,2 ) then nvl(gmgb_fn_buscamargemproduto(pemp.nroempresa,pemp.seqproduto),0) else nvl(CONSINCO.GMGB_FN_BUSCAMARGEMPRODUTO_AT2(pemp.nroempresa,pemp.seqproduto),0) end MargemAtacado, nvl(pemp.codclassifpreco,'Sem valor') ClasseAbastecimento, emb.embalagem DescricaoEmbalagem, trunc(nvl(emb.qtdembalagem,0)) QuantidadeEmbalagem, case when pemp.nroempresa in (979, 980, 981) then trunc(nvl(pemp.estqdeposito - pemp.qtdreservadavda,0),3) else trunc(nvl(pemp.estqloja,0), 3) - (NVL(pemp.qtdreservadavda,0)) end EstoqueDisponivel, NVL(pemp.estqtroca,0) EstoqueTroca, 0 EstoqueTransito, 0 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) end, 0), 3) DDV, nvl(pemp.estqminimodv,0) DDVMinimo, nvl(pemp.estqmaximodv, 0) DDVMaximo, case 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' when pemp.formaabastecimento = 'E' then 'LOJA-EDL' when pemp.formaabastecimento is null then gmgb_fn_busca_forma_abastecfam(pro.seqfamilia, md.nrodivisao) end FormaAbastecimento, case when pes.precovalidpromoc > 0.00 then 'PROMOCAO' when pes.precovalidpromoc = 0.00 then 'NORMAL' end Situacao, pempcd.estqdeposito - nvl(pempcd.qtdreservadavda,0) EstoqueDisponivelCD, pempcd.qtdpendpedcompra EstoqueFuturoCD, consinco.gmgb_fn_busca_dtult_entrada(pemp.nroempresa,pemp.seqproduto) DATAULTIMAENTRADA, pemp.dtaultvenda DATAULTIMAVENDA, consinco.fmrl_custoprodempatual(pro.seqproduto, pemp.nroempresa, 'L') custoliquido, CASE WHEN (select count(*) from mrl_prodempseg pest where pest.seqproduto = pemp.seqproduto and pest.nroempresa = pemp.nroempresa and pest.nrosegmento = seg.nrosegmento and pest.statusvenda = 'A' ) > 0 then 'A' ELSE 'I' end STATUSVENDA, --case when (pemp.statuscompra='A') then 1 else 0 end STATUSCOMPRA, pemp.statuscompra, nvl((select min(qtdembalagem) from mrl_prodempseg where nroempresa=me.nroempresa and nrosegmento=me.nrosegmentoprinc and seqproduto=pro.seqproduto and statusvenda='A' and qtdembalagem>1), 1) QtdeAtacado, nvl(pro.seqprodutobase,0) IdBase, case when mfdv.indnegavariacentral = 'S' THEN 'TROCA FISICA' ELSE case when mff.indindenizavaria = 'S' then case when (me.nroempresa >= 400 and me.nroempresa <=499) or (me.nroempresa >= 600 and me.nroempresa <= 699) then 'SEM TROCA' else 'TROCA FINANC' end when mff.indindenizavaria = 'N' then 'NF DEVOL' else 'SEM TROCA' end END TIPOTROCA, mfdv.padraoembcompra QUANTIDADECOMPRA, pemp.qtdreservadavda RESERVA, NVL(pro.pzovalidadedia, 0) VALIDADEDIAS, mfdv.margemlucrodivisao, nvl(pes.precovalidpromoc,0) PrecoPromoc, nvl(pes.precovalidnormal,0) PrecoNormal, nvl(pes3.precovalidpromoc,0) PrecoMeuMambo, case when pes3.precovalidpromoc > 0 then nvl(consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa,pemp.seqproduto,15),0) else 0 end MargemMeuMambo, nvl(consinco.mbo_fn_buscamargemprodutoseg(pemp.nroempresa,pemp.seqproduto,2,'S'),0) MargemNormal, trunc(nvl(pemp.medvdiapromoc,0),4) MdvPromoc, NVL(vncto.vlrprecovenctoprox,0) VLRPRECOVENCTOPROX, vncto.dtavalidade from max_divisao md inner join max_empresa me on me.nrodivisao = md.nrodivisao and me.nroempresa not in (104,200,291,298,910,911,920,930,931,940,980) and me.dtainiciomovestoque <= trunc(sysdate) and me.status = 'A' inner join mad_segmento seg on md.nrodivisao = me.nrodivisao and me.nrosegmentoprinc = seg.nrosegmento inner join mrl_produtoempresa pemp on pemp.nroempresa = me.nroempresa left join mrl_produtoempresa pempcd on pempcd.seqproduto = pemp.seqproduto and pempcd.nroempresa in (979) left join map_classeabastec mcab on mcab.classeabastqtd = pemp.classeabastqtd and mcab.nroempresa = pemp.nroempresa and mcab.classeabastvlr = pemp.classeabastvlr inner join map_produto pro on pro.seqproduto = pemp.seqproduto inner join map_famdivisao mfdv on mfdv.seqfamilia = pro.seqfamilia and mfdv.nrodivisao = me.nrodivisao inner join max_comprador mco on mco.seqcomprador = mfdv.seqcomprador left join tb_comprador tcomp on tcomp.COMPRADOR = mco.comprador left join map_produtoimagem mapi on mapi.seqproduto = pro.seqproduto and mapi.indpricipal = 'S' inner join mrl_prodempseg pes on pes.seqproduto = pemp.seqproduto and pes.nroempresa = pemp.nroempresa and pes.nrosegmento = seg.nrosegmento and pes.qtdembalagem = 1 inner join mrl_prodempseg pes2 on pes2.nroempresa = pes.nroempresa and pes2.seqproduto = pes.seqproduto and pes2.nrosegmento = pes.nrosegmento left join mrl_prodempseg pes3 on pes3.seqproduto = pemp.seqproduto and pes3.nroempresa = pemp.nroempresa and pes3.nrosegmento = 15 and pes3.qtdembalagem = 1 inner join map_famembalagem emb on emb.seqfamilia = pro.seqfamilia and emb.qtdembalagem = 1 left join (select mffTemp.Seqfamilia, mfdvTemp.Nrodivisao, mffTemp.indindenizavaria, mfdvTemp.pzomedvisitarep, mfdvTemp.pzomedentrega, mfdvTemp.pzomedatraso, gp.fantasia fornecedor from map_famfornec mffTemp inner join ge_pessoa gp on gp.seqpessoa = mffTemp.Seqfornecedor left join maf_fornecdivisao mfdvTemp on mfdvTemp.Seqfornecedor = mffTemp.Seqfornecedor and mffTemp.Principal = 'S' ) mff on mff.seqfamilia = pro.seqfamilia and mff.nrodivisao = md.nrodivisao left join (select pvencto.nroempresa, pvencto.seqproduto, min(pvencto.vlrpreco) vlrprecovenctoprox, min(pvencto.dtavalidade) dtavalidade from consinco.mrl_prodempvencimento pvencto where 1=1 and pvencto.dtavalidade >= trunc(sysdate) and pvencto.qtdembalagem = 1 group by pvencto.nroempresa, pvencto.seqproduto ) vncto ON vncto.nroempresa = pemp.nroempresa and vncto.seqproduto = pemp.seqproduto where 1=1 --and pemp.SEQPRODUTO = 136011 --and pemp.nroempresa = 202 and md.nrodivisao in (2,4) and pemp.seqproduto = ${args.codproduto} and me.nroempresa in (${args.ctx_user_companies_for_module}) and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) from mrl_prodempseg pes3 where pes3.nroempresa = pes.nroempresa and pes3.seqproduto = pes.seqproduto and pes3.nrosegmento = pes.nrosegmento and pes3.statusvenda = 'A') `, }; }, detalhe_preco: (args) => { return { sql: /*sql*/ ` select ora_hash(mgmp.SEQPRODUTO||mgmp.NROEMPRESA||mgmp.QTDEMBALAGEM||mgmp.NROSEGMENTO) chave, mgmp.SEQPRODUTO, mgmp.NROEMPRESA, mgmp.NROSEGMENTO, mgmp.QTDEMBALAGEM || ' ' || mgmp.EMBVENDA embalagem, mgmp.PRECOVALIDNORMAL preco_embalagem, mgmp.PRECOVALIDNORMAL / mgmp.QTDEMBALAGEM preco_unidade, trunc(mgmp.MGMPRECOVALIDO,2) margem from maxv_mgmbaseprodseg mgmp inner join max_empresa me on me.nroempresa = mgmp.NROEMPRESA and me.status = 'A' and me.dtainiciomovestoque <= trunc(sysdate)-1 and me.nrodivisao in (2,4) and me.nroempresa not in (291,298,910,911,920,930,931,940,980) AND mgmp.NROSEGMENTO IN (2,7) where 1=1 and mgmp.seqproduto = ${args.codproduto} and mgmp.nroempresa = ${args.nrempresa} AND mgmp.NROSEGMENTO NOT IN (22,23,26) and mgmp.STATUSVENDA = 'A' `, }; }, detalhe_mdv: (args) => { return { sql: /*sql*/ ` select mcdia.dtaentradasaida data, mcdia.nroempresa, mcdia.seqproduto, Decode(to_char(mcdia.dtaentradasaida,'d'),1,'Domingo',2,'Segunda',3,'Terça',4,'Quarta',5,'Quinta',6,'Sexta',7,'Sábado') diasemana, mcdia.qtdvda qtd, mcdia.qtdestqinicial qtd_inicial from mrl_custodia mcdia inner join max_empresa me on mcdia.nroempresa = me.nroempresa where 1=1 and mcdia.qtdvda > 0 and mcdia.dtaentradasaida >= trunc(sysdate)-365 AND mcdia.nroempresa = ${args.nrempresa} AND mcdia.seqproduto = ${args.codproduto} order by dtaentradasaida desc `, }; }, detalhe_situacao_vigente: (args) => { return { sql: /*sql*/ ` select mrl_prodempseg.nroempresa, mrl_prodempseg.seqproduto, mrl_promocao.dtainicio, mrl_promocao.dtafim, mfe.qtdembalagem || ' ' || mfe.embalagem embalagem, mrl_promocaoitem.precopromocional preco from mrl_promocaoitem, mrl_promocao, mrl_prodempseg, map_produto mp, map_famembalagem mfe, max_empresa me where 1=1 and me.nroempresa = mrl_promocao.nroempresa and me.status = 'A' and me.nrodivisao = 2 and me.dtainiciomovestoque <= trunc(sysdate)-1 and mrl_promocao.nroempresa = mrl_promocaoitem.nroempresa and mrl_promocao.seqpromocao = mrl_promocaoitem.seqpromocao and mrl_promocao.centralloja = mrl_promocaoitem.centralloja and mrl_promocao.nrosegmento = mrl_promocaoitem.nrosegmento and mrl_promocaoitem.seqproduto = mrl_prodempseg.seqproduto and mrl_promocao.nrosegmento = mrl_prodempseg.nrosegmento and mrl_promocao.nroempresa = mrl_prodempseg.nroempresa and mrl_promocaoitem.qtdembalagem = mrl_prodempseg.qtdembalagem and mp.seqproduto = mrl_prodempseg.seqproduto and mfe.seqfamilia = mp.seqfamilia and mfe.qtdembalagem = mrl_prodempseg.qtdembalagem and nvl(mrl_promocao.tipopromoc, 'N') in ('N', 'F', 'A', 'S') and mrl_promocao.dtainicio >= trunc(sysdate)-90--365 AND mrl_prodempseg.nroempresa = ${args.nrempresa} AND mrl_prodempseg.seqproduto = ${args.codproduto} order by mrl_promocao.dtainicio desc `, }; }, detalhe_custo_liquido: (args) => { return { sql: /*sql*/ ` select mcdiafam.dtaentradasaida, mcdiafam.nroempresa, PROD.SEQPRODUTO, mcdiafam.seqfamilia, mcdiafam.qtdestqinicial estqinicial, qtdestqinicial + qtdentrada - qtdsaida estqfinal, --trunc(cmdiavlrnf,2) custo cmdiavlrnf custo from mrl_custodiafam mcdiafam INNER JOIN MAP_PRODUTO PROD ON PROD.SEQFAMILIA = MCDIAFAM.SEQFAMILIA inner join max_empresa me on me.nroempresa = mcdiafam.nroempresa and me.status = 'A' and me.dtainiciomovestoque <= trunc(sysdate)-1 and me.nrodivisao in (2,4) where 1=1 and mcdiafam.dtaentradasaida >= trunc(sysdate)-365 AND mcdiafam.nroempresa = ${args.nrempresa} AND PROD.SEQPRODUTO = ${args.codproduto} order by mcdiafam.dtaentradasaida desc `, }; }, detalhe_estoque_disponivel: (args) => { return { sql: /*sql*/ ` select cdia.dtaentradasaida, cdia.nroempresa, cdia.seqproduto, cdia.qtdentrada, cdia.qtdsaida, cdia.qtdestqinicial + cdia.qtdentrada - cdia.qtdsaida qtdsaldo from mrl_custodia cdia join max_empresa me on me.nroempresa = cdia.nroempresa and me.status = 'A' and me.dtainiciomovestoque < trunc(sysdate) and me.nrodivisao = 2 where cdia.dtaentradasaida >= sysdate - 365 and cdia.seqproduto = ${args.codproduto} and cdia.nroempresa = ${args.nrempresa} union all select mle.dtaentradasaida, mle.nroempresa, mle.seqproduto, sum(case when mle.tiplancto = 'E' then mle.qtdlancto else 0 end) qtdentrada, sum(case when mle.tiplancto = 'S' then mle.qtdlancto else 0 end) qtdsaida, cdia.qtdestqinicial + sum(case when mle.tiplancto = 'E' then mle.qtdlancto else 0 end) - sum(case when mle.tiplancto = 'S' then mle.qtdlancto else 0 end) qtdsaldo from mrl_lanctoestoque mle join max_empresa me on me.nroempresa = mle.nroempresa and me.status = 'A' and me.dtainiciomovestoque < trunc(sysdate) and me.nrodivisao = 4 join mrl_custodia cdia on cdia.dtaentradasaida = mle.dtaentradasaida and cdia.nroempresa = mle.nroempresa and cdia.seqproduto = mle.seqproduto where mle.dtaentradasaida >= sysdate - 365 and mle.codgeraloper not in (301,302) and mle.seqproduto = ${args.codproduto} and mle.nroempresa = ${args.nrempresa} group by mle.dtaentradasaida, mle.nroempresa, mle.seqproduto, cdia.qtdestqinicial order by dtaentradasaida desc `, }; }, detalhe_estoque_transito: (args) => { return { sql: /*sql*/ ` SELECT a.nroempresa, b.seqproduto, INITCAP(C.NOMERAZAO) FORNECEDOR, A.NUMERONF, A.SERIENF, A.DTAEMISSAO, A.DTAENTRADA, B.QUANTIDADE, B.VLRITEM VALOR from MLF_AUXNOTAFISCAL A, MLF_AUXNFITEM B, GE_PESSOA C, MAP_PRODUTO D WHERE 1=1 and B.SEQAUXNOTAFISCAL = A.SEQAUXNOTAFISCAL AND C.SEQPESSOA = A.SEQPESSOA AND D.SEQPRODUTO = B.SEQPRODUTO AND A.DTAEMISSAO >= SYSDATE-365 AND a.nroempresa = ${args.nrempresa} AND b.seqproduto = ${args.codproduto} order by A.DTAEMISSAO, A.NUMERONF, A.SERIENF `, }; }, }, C5_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 ( -- Bloco 1 - Filtro por Código Interno ou Descrição ( ${args.filtro} IS NOT NULL AND ( p.SEQPRODUTO LIKE '%' || ${args.filtro} || '%' OR UPPER(p.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%') ) ) OR -- Bloco 2 - Filtro por EAN (Código de Barras) ( ${args.ean} IS NOT NULL AND EXISTS ( SELECT 1 FROM CONSINCO.MAP_PRODCODIGO A WHERE A.SEQPRODUTO = p.SEQPRODUTO AND REGEXP_LIKE(A.CODACESSO, '^[0-9]+$') AND A.CODACESSO = ${args.ean} ) ) OR -- Bloco 3 - Caso ambos os filtros estejam nulos (Traz tudo) ( ${args.filtro} IS NULL AND ${args.ean} IS NULL ) ) ORDER BY 2 `, }; }, detalhe: (args) => { return { sql: /*sql*/ ` 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, (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, case when trunc(case when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0) when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0) end / pes2.qtdembalagem,2) = 0 then trunc(case when pes.precovalidpromoc > 0.00 then nvl(pes.precovalidpromoc,0) when pes.precovalidpromoc = 0.00 then nvl(pes.precovalidnormal,0) end, 2) else trunc(case when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0) when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0) end / pes2.qtdembalagem,2) end PrecoAtacado, trunc(case when pes.precovalidpromoc > 0.00 then nvl(pes.precovalidpromoc,0) when pes.precovalidpromoc = 0.00 then nvl(pes.precovalidnormal,0) end, 2) PrecoVarejo, trunc(nvl(pemp.medvdiaforapromoc,0),4) MDV, nvl((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 when pes.precovalidpromoc > 0.00 then nvl(pes.precovalidpromoc,0) when pes.precovalidpromoc = 0.00 then nvl(pes.precovalidnormal,0) end, 2) = trunc(case when pes2.precovalidpromoc > 0.00 then nvl(pes2.precovalidpromoc,0) when pes2.precovalidpromoc = 0.00 then nvl(pes2.precovalidnormal,0) end / pes2.qtdembalagem,2 ) then nvl((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((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','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))) / (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','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 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, 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, 0 EstoqueTransito, 0 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) end, 0), 3) DDV, nvl(pemp.estqminimodv,0) DDVMinimo, nvl(pemp.estqmaximodv, 0) DDVMaximo, case WHEN (select count(1) from mlo_prodembwm w where w.nroempresa = 979 and w.seqproduto = pemp.seqproduto and w.codlinhasepar = 'FR') > 0 THEN 'FRACIONADO' when pemp.formaabastecimento = 'I' then 'ARMAZENAGEM' when pemp.formaabastecimento = 'C' then 'CROSS' when pemp.formaabastecimento = 'N' then 'CENTRAL-EDL' when pemp.formaabastecimento = 'E' then 'LOJA-EDL' when pemp.formaabastecimento is null then ( 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 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_depreciada EstoqueFuturoCD, (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, pemp.dtaultvenda DATAULTIMAVENDA, consinco.fmrl_custoprodempatual(pro.seqproduto, pemp.nroempresa, 'L') custoliquido, 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 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 = 'N' then 'NF DEVOL' else 'SEM TROCA' end END TIPOTROCA, mfdv.padraoembcompra QUANTIDADECOMPRA, pemp.qtdreservadavda RESERVA, NVL(pro.pzovalidadedia, 0) VALIDADEDIAS, mfdv.margemlucrodivisao, nvl(pes.precovalidpromoc,0) PrecoPromoc, nvl(pes.precovalidnormal,0) PrecoNormal, nvl(pes3.precovalidpromoc,0) PrecoMeuMambo, case when pes3.precovalidpromoc > 0 then nvl((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((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 consinco.max_divisao md inner join consinco.max_empresa me on me.nrodivisao = md.nrodivisao and me.dtainiciomovestoque <= trunc(sysdate) and me.status = 'A' inner join consinco.mad_segmento seg on md.nrodivisao = me.nrodivisao and me.nrosegmentoprinc = seg.nrosegmento inner join consinco.mrl_produtoempresa pemp on pemp.nroempresa = me.nroempresa left join consinco.mrl_produtoempresa pempcd on pempcd.seqproduto = pemp.seqproduto left join consinco.map_classeabastec mcab on mcab.classeabastqtd = pemp.classeabastqtd and mcab.nroempresa = pemp.nroempresa and mcab.classeabastvlr = pemp.classeabastvlr inner join consinco.map_produto pro on pro.seqproduto = pemp.seqproduto inner join consinco.map_famdivisao mfdv on mfdv.seqfamilia = pro.seqfamilia and mfdv.nrodivisao = me.nrodivisao inner join consinco.max_comprador mco on mco.seqcomprador = mfdv.seqcomprador left join consinco.map_produtoimagem mapi on mapi.seqproduto = pro.seqproduto and mapi.indpricipal = 'S' 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 consinco.mrl_prodempseg pes2 on pes2.nroempresa = pes.nroempresa and pes2.seqproduto = pes.seqproduto and pes2.nrosegmento = pes.nrosegmento left join consinco.mrl_prodempseg pes3 on pes3.seqproduto = pemp.seqproduto and pes3.nroempresa = pemp.nroempresa --and pes3.nrosegmento = 15 and pes3.qtdembalagem = 1 inner join consinco.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 consinco.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 (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 consinco.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 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) 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' `, }; }, /** SEM RETORNO DE INFORMAÇÕES */ 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 consinco.mrl_custodia mcdia inner join consinco.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 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.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 `, }; }, /** SEM RETORNO DE INFORMAÇÕES */ 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 consinco.mrl_custodiafam mcdiafam INNER JOIN consinco.MAP_PRODUTO PROD ON PROD.SEQFAMILIA = MCDIAFAM.SEQFAMILIA inner join consinco.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 `, }; }, /** SEM RETORNO DE INFORMAÇÕES */ 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 consinco.mrl_custodia cdia join consinco.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 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 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.seqproduto = ${args.codproduto} and mle.nroempresa = ${args.nrempresa} group by mle.dtaentradasaida, mle.nroempresa, mle.seqproduto, cdia.qtdestqinicial order by dtaentradasaida desc `, }; }, /** SEM RETORNO DE INFORMAÇÕES */ 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 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 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 `, }; }, }, });