DROP FUNCTION public.fnc_busca_preco_impressao_orcamento_acrescimo(integer, integer, integer, text); 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 CASE WHEN (SELECT ind_financeiro FROM bas_tipo_pagto WHERE codigo = (SELECT tipo_pgto FROM vnd_pagto_ped WHERE nr_pedido = vnd_orcamento_item.orcamento LIMIT 1)) > 1.08 THEN TRUNC(vnd_orcamento_item.vlr_unitario,(SELECT decimais_vlr_venda FROM par_faturamento WHERE filial_par = vnd_orcamento_item.filial_orc)) ELSE TRUNC((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)) END ELSE TRUNC((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;