INSERT INTO par_impressao VALUES(58,'Impressao Modelo Varios Precos Acrescimo','ImpressaoVariosPrecosOrcamento4'); INSERT INTO par_impressao_itens VALUES (58, 1,'TRUNC(vnd_orcamento_item.quantidade,2) AS quantidade',20,'Quantidade'); INSERT INTO par_impressao_itens VALUES (58, 2,'pro_produto.unidade',8,'UN'); INSERT INTO par_impressao_itens VALUES (58, 3,'substr(pro_produto.codigo || '' - '' || pro_produto.descricao,1,100)AS descricao',94,'Produto'); INSERT INTO par_impressao_itens VALUES (58, 4,'REPLACE(TRUNC((prc_tabela_preco.preco_venda),2)::TEXT,''.'','','')',19,'Prc Vista'); INSERT INTO par_impressao_itens VALUES (58, 5,'REPLACE(TRUNC(vnd_orcamento_item.quantidade * TRUNC(prc_tabela_preco.preco_venda,2),2)::TEXT,''.'','','')',19,'Tot Vista'); INSERT INTO par_impressao_itens VALUES (58, 6,'REPLACE(TRUNC((prc_tabela_preco.preco_venda * 1.08),2)::TEXT,''.'','','')',19,'Prc Prazo'); INSERT INTO par_impressao_itens VALUES (58, 7,'REPLACE(TRUNC(vnd_orcamento_item.quantidade * TRUNC((prc_tabela_preco.preco_venda * 1.08),2),2)::TEXT,''.'','','')',19,'Tot Prazo'); CREATE OR REPLACE FUNCTION public.fnc_busca_preco_impressao_orcamento_acrescimo( var_filial integer, var_sequencia_vnd integer, var_orcamento integer, var_tipo_b_l text) RETURNS numeric LANGUAGE 'plpgsql' COST 100 VOLATILE AS $BODY$ DECLARE var_prc_venda numeric; BEGIN SELECT CASE WHEN COALESCE(prc_produto_preco_combinado.aplica_indice,'S') = 'N' AND vnd_orcamento_item.desconto = 'S' THEN vnd_orcamento_item.vlr_unitario ELSE CASE WHEN COALESCE(prc_produto_preco_combinado.aplica_indice,'S') = 'S' AND vnd_orcamento_item.desconto = 'S' THEN CASE WHEN var_tipo_b_l = 'P' THEN vnd_orcamento_item.vlr_unitario * 1.08 ELSE vnd_orcamento_item.vlr_unitario END ELSE CASE WHEN var_tipo_b_l = 'P' THEN ROUND((prc_tabela_preco.preco_venda * fnc_prc_calcula_promocao(vnd_orcamento_item.filial_orc, vnd_orcamento_item.filial_pro, vnd_orcamento_item.produto, prc_tabela_preco.tabela, vnd_orcamento_item.quantidade)) * 1.08,(SELECT decimais_vlr_venda FROM par_faturamento WHERE filial_par = vnd_orcamento_item.filial_orc)) ELSE ROUND((prc_tabela_preco.preco_venda * fnc_prc_calcula_promocao(vnd_orcamento_item.filial_orc, vnd_orcamento_item.filial_pro, vnd_orcamento_item.produto, prc_tabela_preco.tabela, vnd_orcamento_item.quantidade)),(SELECT decimais_vlr_venda FROM par_faturamento WHERE filial_par = vnd_orcamento_item.filial_orc)) END END END AS preco INTO var_prc_venda FROM vnd_orcamento_item JOIN prc_tabela_preco ON prc_tabela_preco.filial_pro = vnd_orcamento_item.filial_pro AND prc_tabela_preco.produto = vnd_orcamento_item.produto LEFT JOIN prc_produto_preco_combinado ON prc_produto_preco_combinado.filial_pro = vnd_orcamento_item.filial_pro AND prc_produto_preco_combinado.codigo = vnd_orcamento_item.produto WHERE vnd_orcamento_item.filial_orc = var_filial AND vnd_orcamento_item.orcamento = var_orcamento AND vnd_orcamento_item.sequencia = var_sequencia_vnd; RETURN var_prc_venda; END; $BODY$; ALTER FUNCTION public.fnc_busca_preco_impressao_orcamento_acrescimo(integer, integer, integer, text) OWNER TO postgres;