ALTER TABLE prc_produto_preco_combinado ADD COLUMN permite_alterar_prc character varying(1) NOT NULL DEFAULT 'N'; ALTER TABLE prc_produto_preco_combinado ADD COLUMN aplica_indice character varying(1) NOT NULL DEFAULT 'S'; CREATE OR REPLACE FUNCTION public.fnc_busca_preco_impressao_orcamento( 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 var_tipo_b_l = 'P' THEN prc_tabela_preco.preco_venda ELSE prc_tabela_preco.preco_venda * 0.90 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(integer, integer, integer,text) OWNER TO postgres; UPDATE par_impressao_itens SET coluna = 'REPLACE(TRUNC((fnc_busca_preco_impressao_orcamento(vnd_orcamento_item.filial_orc,vnd_orcamento_item.sequencia,vnd_orcamento_item.orcamento,''V'' )),2)::TEXT,''.'','','')' WHERE codigo = 56 AND sequencia = 4; UPDATE par_impressao_itens SET coluna = 'REPLACE(TRUNC(vnd_orcamento_item.quantidade * TRUNC(fnc_busca_preco_impressao_orcamento(vnd_orcamento_item.filial_orc,vnd_orcamento_item.sequencia,vnd_orcamento_item.orcamento,''V''),2),2)::TEXT,''.'','','')' WHERE codigo = 56 AND sequencia = 5; UPDATE par_impressao_itens SET coluna = 'REPLACE(TRUNC((fnc_busca_preco_impressao_orcamento(vnd_orcamento_item.filial_orc,vnd_orcamento_item.sequencia,vnd_orcamento_item.orcamento,''P'')),2)::TEXT,''.'','','')' WHERE codigo = 56 AND sequencia = 6; UPDATE par_impressao_itens SET coluna = 'REPLACE(TRUNC(vnd_orcamento_item.quantidade * fnc_busca_preco_impressao_orcamento(vnd_orcamento_item.filial_orc,vnd_orcamento_item.sequencia,vnd_orcamento_item.orcamento,''P'' ),2)::TEXT,''.'','','')' WHERE codigo = 56 AND sequencia = 7;