DROP VIEW public.view_vnd_auto_complete_divisao_filiais; CREATE OR REPLACE VIEW public.view_vnd_auto_complete_divisao_filiais AS SELECT tabx.filial_pro, tabx.produto, tabx.codigo, tabx.descricao, tabx.preco_venda, tabx.saldo, tabx.fornec_fabricante, tabx.fabricante, tabx.almoxarifado FROM ( SELECT tabproduto.filial_pro, tabproduto.codigo AS produto, lpad(tabproduto.codigo::text, 7, '0'::text) AS codigo, CASE WHEN prc_promocao_fixo.produto IS NULL THEN substr(tabproduto.descricao::text || '....................................................................................................'::text, 0, 100) ELSE substr(tabproduto.descricao::text || '...(*Promo*)........................................................................................'::text, 0, 100) END AS descricao, lpad(trunc(COALESCE(prc_tabela_preco.preco_venda, 0.000000), 2)::text, 8, '.'::text) AS preco_venda, lpad(trunc(tabproduto.saldo, 2)::text, 8, '.'::text) AS saldo, tabproduto.fornec_fabricante, substr(pro_fabricante.nome::text, 1, 10) AS fabricante, COALESCE(tabproduto.almoxarifado, 1) AS almoxarifado FROM ( SELECT pro_produto.filial_pro, pro_produto.codigo, pro_produto.descricao, COALESCE(stq_saldo_estoque_atual.quantidade, 0.000000) AS saldo, pro_produto.fornec_fabricante, COALESCE(stq_saldo_estoque_atual.almoxarifado, 1) AS almoxarifado FROM pro_produto LEFT JOIN stq_saldo_estoque_atual ON stq_saldo_estoque_atual.filial_pro = pro_produto.filial_pro AND stq_saldo_estoque_atual.produto = pro_produto.codigo JOIN bas_almoxarifado ON stq_saldo_estoque_atual.filial_stq = bas_almoxarifado.filial AND stq_saldo_estoque_atual.almoxarifado = bas_almoxarifado.codigo WHERE pro_produto.flag_ativo_inativo::text = 'A'::text AND bas_almoxarifado.mostra_saldo_venda::text = 'S'::text AND (bas_almoxarifado.filial = bas_almoxarifado.filial_movimento OR bas_almoxarifado.filial_movimento = 0) UNION SELECT pro_produto.filial_pro, pro_produto.codigo, pro_produto.descricao, COALESCE(stq_saldo.quantidade, 0.000000) AS saldo, pro_produto.fornec_fabricante, COALESCE(bas_almoxarifado.codigo, 1) AS almoxarifado FROM pro_produto JOIN bas_almoxarifado ON bas_almoxarifado.filial = pro_produto.filial_pro LEFT JOIN public_2.stq_saldo_estoque_atual stq_saldo ON stq_saldo.filial_stq = bas_almoxarifado.filial_movimento AND stq_saldo.almoxarifado = bas_almoxarifado.almox_movimento AND stq_saldo.filial_pro = bas_almoxarifado.filial_movimento AND stq_saldo.produto = pro_produto.codigo WHERE pro_produto.flag_ativo_inativo::text = 'A'::text AND bas_almoxarifado.mostra_saldo_venda::text = 'S'::text AND bas_almoxarifado.filial <> bas_almoxarifado.filial_movimento) tabproduto LEFT JOIN prc_tabela_preco ON prc_tabela_preco.filial_tab = tabproduto.filial_pro AND prc_tabela_preco.tabela = 1 AND prc_tabela_preco.filial_pro = tabproduto.filial_pro AND prc_tabela_preco.produto = tabproduto.codigo LEFT JOIN prc_promocao_fixo ON prc_promocao_fixo.filial_pro = tabproduto.filial_pro AND prc_promocao_fixo.produto = tabproduto.filial_pro AND CURRENT_DATE >= prc_promocao_fixo.data_inicial AND CURRENT_DATE <= prc_promocao_fixo.data_final LEFT JOIN pro_fabricante ON pro_fabricante.filial = tabproduto.filial_pro AND pro_fabricante.codigo = tabproduto.fornec_fabricante) tabx ORDER BY tabx.descricao, tabx.codigo, tabx.almoxarifado; ALTER TABLE public.view_vnd_auto_complete_divisao_filiais OWNER TO postgres; CREATE OR REPLACE FUNCTION public.fnc_busca_preco_tipo_cliente( var_filial integer, var_produto integer, var_tabela integer, var_tipo_cliente integer) RETURNS numeric LANGUAGE 'plpgsql' COST 100 VOLATILE PARALLEL UNSAFE AS $BODY$ DECLARE var_preco_tipo numeric; BEGIN SELECT COALESCE((SELECT prc_formacao_preco.preco_tipo FROM prc_formacao_preco WHERE prc_formacao_preco.filial = prc_tabela_preco.filial_pro AND prc_formacao_preco.tabela = prc_tabela_preco.tabela AND prc_formacao_preco.filial_produto = prc_tabela_preco.filial_pro AND prc_formacao_preco.produto = prc_tabela_preco.produto AND prc_formacao_preco.tipo_cliente = var_tipo_cliente), prc_tabela_preco.preco_venda) INTO var_preco_tipo FROM prc_tabela_preco WHERE prc_tabela_preco.filial_tab = var_filial AND prc_tabela_preco.tabela = var_tabela AND prc_tabela_preco.filial_pro = var_filial AND prc_tabela_preco.produto = var_produto; RETURN var_preco_tipo; END; $BODY$; ALTER FUNCTION public.fnc_busca_preco_tipo_cliente(integer, integer, integer, integer) OWNER TO postgres;