DROP VIEW public.view_vnd_padrao_ferragem_digitacao_pedido; CREATE OR REPLACE VIEW public.view_vnd_padrao_ferragem_digitacao_pedido AS SELECT tabaux.filial, tabaux.tipo, tabaux.ano, tabaux.mes, tabaux.vendedor, tabaux.prox_aux_venda, tabaux.sequencia, tabaux.qtd_vda, tabaux.produto, tabaux.produto_ref, tabaux.produto_ref_descr, tabaux.codigo, tabaux.descricao, sum(tabaux.total_peso) AS total_peso, trunc(trunc(sum(tabaux.total_valor), 2), 6) AS total_valor, trunc(trunc(trunc(sum(tabaux.total_valor), 2), 6) / CASE WHEN sum(tabaux.total_peso) = 0::numeric THEN 1::numeric ELSE sum(tabaux.total_peso) END, 6) AS vlr_medio, trunc(trunc(sum(tabaux.total_valor_custo), 2), 6) AS total_valor_custo, tabaux.tipo_linha FROM ( SELECT vnd_aux_orcamento_item.filial_orc AS filial, pro_produto.produto_servico AS tipo, to_char(vnd_aux_orcamento_item.data_emissao::timestamp with time zone, 'YYYY'::text) AS ano, to_char(vnd_aux_orcamento_item.data_emissao::timestamp with time zone, 'mm'::text) AS mes, vnd_aux_orcamento_item.vendedor, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia, vnd_aux_orcamento_item.quantidade AS qtd_vda, vnd_aux_orcamento_item.produto, prd_ref.codigo AS produto_ref, prd_ref.descricao AS produto_ref_descr, COALESCE(vnd_aux_orcamento_item_especificacao_detalhe.cod_especificacao, 0) AS codigo, COALESCE(pro_esp_verg_espc.descricao, ''::character varying) AS descricao, CASE WHEN vnd_aux_orcamento_item_especificacao.largura = 0::numeric AND vnd_aux_orcamento_item_especificacao.diametro_estribo = 0::numeric THEN trunc(COALESCE(fnc_calcula_peso_ferragem_detalhe_dimensao_aux(vnd_aux_orcamento_item.filial_orc, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia, vnd_aux_orcamento_item_especificacao.sequencia_dimensao, vnd_aux_orcamento_item_especificacao_detalhe.sequencia), 0.000000), 6) ELSE trunc(COALESCE(fnc_calcula_peso_ferragem_detalhe_dimensao_item_aux(vnd_aux_orcamento_item.filial_orc, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia, vnd_aux_orcamento_item_especificacao.sequencia_dimensao, vnd_aux_orcamento_item_especificacao_detalhe.sequencia), 0.000000), 6) END AS total_peso, trunc( CASE WHEN vnd_aux_orcamento_item_especificacao.largura = 0::numeric AND vnd_aux_orcamento_item_especificacao.diametro_estribo = 0::numeric THEN trunc(COALESCE(fnc_calcula_peso_ferragem_detalhe_dimensao_aux(vnd_aux_orcamento_item.filial_orc, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia, vnd_aux_orcamento_item_especificacao.sequencia_dimensao, vnd_aux_orcamento_item_especificacao_detalhe.sequencia), 0.000000), 6) ELSE trunc(COALESCE(fnc_calcula_peso_ferragem_detalhe_dimensao_item_aux(vnd_aux_orcamento_item.filial_orc, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia, vnd_aux_orcamento_item_especificacao.sequencia_dimensao, vnd_aux_orcamento_item_especificacao_detalhe.sequencia), 0.000000), 6) END * COALESCE(vnd_aux_orcamento_item_especificacao.preco_kg, 0.000000) * COALESCE((SELECT (vnd_aux_desconto_pedido.vlr_liquido / vnd_aux_desconto_pedido.vlr_bruto) FROM vnd_aux_desconto_pedido WHERE vnd_aux_desconto_pedido.prox_aux_venda = vnd_aux_orcamento_item.prox_aux_venda),1), 16) AS total_valor, trunc( CASE WHEN vnd_aux_orcamento_item_especificacao.largura = 0::numeric AND vnd_aux_orcamento_item_especificacao.diametro_estribo = 0::numeric THEN trunc(COALESCE(fnc_calcula_peso_ferragem_detalhe_dimensao_aux(vnd_aux_orcamento_item.filial_orc, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia, vnd_aux_orcamento_item_especificacao.sequencia_dimensao, vnd_aux_orcamento_item_especificacao_detalhe.sequencia), 0.000000), 6) ELSE trunc(COALESCE(fnc_calcula_peso_ferragem_detalhe_dimensao_item_aux(vnd_aux_orcamento_item.filial_orc, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia, vnd_aux_orcamento_item_especificacao.sequencia_dimensao, vnd_aux_orcamento_item_especificacao_detalhe.sequencia), 0.000000), 6) END * COALESCE(prc_tabela_preco.preco_custo, 0.000000), 16) AS total_valor_custo, CASE WHEN pro_produto.produto_servico::text = 'F'::text AND pro_produto.flag_mix::text = 'N'::text AND vnd_aux_orcamento_item.produto = prd_ref.codigo AND vnd_aux_orcamento_item.produto = COALESCE(vnd_aux_orcamento_item_especificacao_detalhe.cod_especificacao, 0) THEN 0 ELSE 1 END AS tipo_linha FROM vnd_aux_orcamento_item JOIN pro_produto ON vnd_aux_orcamento_item.filial_pro = pro_produto.filial_pro AND vnd_aux_orcamento_item.produto = pro_produto.codigo JOIN vnd_aux_orcamento_item_especificacao ON vnd_aux_orcamento_item_especificacao.filial = vnd_aux_orcamento_item.filial_orc AND vnd_aux_orcamento_item_especificacao.prox_aux_venda = vnd_aux_orcamento_item.prox_aux_venda AND vnd_aux_orcamento_item_especificacao.sequencia_item = vnd_aux_orcamento_item.sequencia JOIN vnd_aux_orcamento_item_especificacao_detalhe ON vnd_aux_orcamento_item_especificacao_detalhe.filial = vnd_aux_orcamento_item_especificacao.filial AND vnd_aux_orcamento_item_especificacao_detalhe.prox_aux_venda = vnd_aux_orcamento_item_especificacao.prox_aux_venda AND vnd_aux_orcamento_item_especificacao_detalhe.sequencia_item = vnd_aux_orcamento_item_especificacao.sequencia_item AND vnd_aux_orcamento_item_especificacao_detalhe.sequencia_dimensao = vnd_aux_orcamento_item_especificacao.sequencia_dimensao JOIN pro_especificacao_vergalhao pro_esp_verg_espc ON pro_esp_verg_espc.codigo = vnd_aux_orcamento_item_especificacao_detalhe.cod_especificacao JOIN pro_produto prd_ref ON prd_ref.codigo = pro_esp_verg_espc.produto_ref LEFT JOIN prc_tabela_preco ON prc_tabela_preco.filial_pro = prd_ref.filial_pro AND prc_tabela_preco.produto = prd_ref.codigo UNION ALL SELECT vnd_aux_orcamento_item.filial_orc AS filial, pro_produto.produto_servico AS tipo, to_char(vnd_aux_orcamento_item.data_emissao::timestamp with time zone, 'YYYY'::text) AS ano, to_char(vnd_aux_orcamento_item.data_emissao::timestamp with time zone, 'mm'::text) AS mes, vnd_aux_orcamento_item.vendedor, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia, vnd_aux_orcamento_item.quantidade AS qtd_vda, vnd_aux_orcamento_item.produto, prd_ref.codigo AS produto_ref, prd_ref.descricao AS produto_ref_descr, COALESCE(vnd_aux_orcamento_item_especificacao.cod_especificacao_estribo, 0) AS codigo, COALESCE(pro_esp_verg_estr.descricao, ''::character varying) AS descricao, CASE WHEN vnd_aux_orcamento_item_especificacao_detalhe.sequencia = 1 THEN trunc(COALESCE(fnc_calcula_peso_ferragem_especificacao_aux(vnd_aux_orcamento_item.filial_orc, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia), 0.000000), 6) ELSE 0.000000 END AS total_peso, trunc( CASE WHEN vnd_aux_orcamento_item_especificacao_detalhe.sequencia = 1 THEN trunc(COALESCE(fnc_calcula_peso_ferragem_especificacao_aux(vnd_aux_orcamento_item.filial_orc, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia), 0.000000), 6) ELSE 0.000000 END * COALESCE(vnd_aux_orcamento_item_especificacao.preco_kg, 0.000000) * COALESCE((SELECT (vnd_aux_desconto_pedido.vlr_liquido / vnd_aux_desconto_pedido.vlr_bruto) FROM vnd_aux_desconto_pedido WHERE vnd_aux_desconto_pedido.prox_aux_venda = vnd_aux_orcamento_item.prox_aux_venda),1), 16) AS total_valor, trunc( CASE WHEN vnd_aux_orcamento_item_especificacao_detalhe.sequencia = 1 THEN trunc(COALESCE(fnc_calcula_peso_ferragem_especificacao_aux(vnd_aux_orcamento_item.filial_orc, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia), 0.000000), 6) ELSE 0.000000 END * COALESCE(prc_tabela_preco.preco_custo, 0.000000), 16) AS total_valor_custo, CASE WHEN pro_produto.produto_servico::text = 'F'::text AND pro_produto.flag_mix::text = 'N'::text AND vnd_aux_orcamento_item.produto = prd_ref.codigo AND vnd_aux_orcamento_item.produto = COALESCE(vnd_aux_orcamento_item_especificacao.cod_especificacao_estribo, 0) THEN 0 ELSE 1 END AS tipo_linha FROM vnd_aux_orcamento_item JOIN pro_produto ON vnd_aux_orcamento_item.filial_pro = pro_produto.filial_pro AND vnd_aux_orcamento_item.produto = pro_produto.codigo JOIN vnd_aux_orcamento_item_especificacao ON vnd_aux_orcamento_item_especificacao.filial = vnd_aux_orcamento_item.filial_orc AND vnd_aux_orcamento_item_especificacao.prox_aux_venda = vnd_aux_orcamento_item.prox_aux_venda AND vnd_aux_orcamento_item_especificacao.sequencia_item = vnd_aux_orcamento_item.sequencia JOIN vnd_aux_orcamento_item_especificacao_detalhe ON vnd_aux_orcamento_item_especificacao_detalhe.filial = vnd_aux_orcamento_item_especificacao.filial AND vnd_aux_orcamento_item_especificacao_detalhe.prox_aux_venda = vnd_aux_orcamento_item_especificacao.prox_aux_venda AND vnd_aux_orcamento_item_especificacao_detalhe.sequencia_item = vnd_aux_orcamento_item_especificacao.sequencia_item AND vnd_aux_orcamento_item_especificacao_detalhe.sequencia_dimensao = vnd_aux_orcamento_item_especificacao.sequencia_dimensao JOIN pro_especificacao_vergalhao pro_esp_verg_estr ON pro_esp_verg_estr.codigo = vnd_aux_orcamento_item_especificacao.cod_especificacao_estribo JOIN pro_produto prd_ref ON prd_ref.codigo = pro_esp_verg_estr.produto_ref LEFT JOIN prc_tabela_preco ON prc_tabela_preco.filial_pro = prd_ref.filial_pro AND prc_tabela_preco.produto = prd_ref.codigo UNION ALL SELECT vnd_aux_orcamento_item.filial_orc AS filial, pro_produto.produto_servico AS tipo, to_char(vnd_aux_orcamento_item.data_emissao::timestamp with time zone, 'YYYY'::text) AS ano, to_char(vnd_aux_orcamento_item.data_emissao::timestamp with time zone, 'mm'::text) AS mes, vnd_aux_orcamento_item.vendedor, vnd_aux_orcamento_item.prox_aux_venda, vnd_aux_orcamento_item.sequencia, vnd_aux_orcamento_item.quantidade AS qtd_vda, vnd_aux_orcamento_item.produto, pro_produto.codigo AS produto_ref, pro_produto.descricao AS produto_ref_descr, pro_produto.codigo, pro_produto.descricao, vnd_aux_orcamento_item.quantidade AS total_peso, trunc(vnd_aux_orcamento_item.vlr_total * COALESCE((SELECT (vnd_aux_desconto_pedido.vlr_liquido / vnd_aux_desconto_pedido.vlr_bruto) FROM vnd_aux_desconto_pedido WHERE vnd_aux_desconto_pedido.prox_aux_venda = vnd_aux_orcamento_item.prox_aux_venda),1), 16) AS total_valor, trunc(COALESCE(prc_tabela_preco.preco_custo, 0.000000) * fnc_calcula_indice_desc_acrescimo_aux(vnd_aux_orcamento_item.filial_orc, vnd_aux_orcamento_item.prox_aux_venda) * vnd_aux_orcamento_item.quantidade, 16) AS total_valor_custo, CASE WHEN pro_produto.produto_servico::text = 'F'::text AND pro_produto.flag_mix::text = 'N'::text AND vnd_aux_orcamento_item.produto = pro_produto.codigo THEN 0 ELSE 1 END AS tipo_linha FROM vnd_aux_orcamento_item JOIN pro_produto ON vnd_aux_orcamento_item.filial_pro = pro_produto.filial_pro AND vnd_aux_orcamento_item.produto = pro_produto.codigo LEFT JOIN vnd_aux_orcamento_item_especificacao ON vnd_aux_orcamento_item_especificacao.filial = vnd_aux_orcamento_item.filial_orc AND vnd_aux_orcamento_item_especificacao.prox_aux_venda = vnd_aux_orcamento_item.prox_aux_venda AND vnd_aux_orcamento_item_especificacao.sequencia_item = vnd_aux_orcamento_item.sequencia LEFT JOIN vnd_aux_orcamento_item_especificacao_detalhe ON vnd_aux_orcamento_item_especificacao_detalhe.filial = vnd_aux_orcamento_item_especificacao.filial AND vnd_aux_orcamento_item_especificacao_detalhe.prox_aux_venda = vnd_aux_orcamento_item_especificacao.prox_aux_venda AND vnd_aux_orcamento_item_especificacao_detalhe.sequencia_item = vnd_aux_orcamento_item_especificacao.sequencia_item AND vnd_aux_orcamento_item_especificacao_detalhe.sequencia_dimensao = vnd_aux_orcamento_item_especificacao.sequencia_dimensao LEFT JOIN pro_especificacao_vergalhao pro_esp_verg_estr ON pro_esp_verg_estr.codigo = vnd_aux_orcamento_item_especificacao.cod_especificacao_estribo LEFT JOIN pro_produto prd_ref ON prd_ref.codigo = pro_esp_verg_estr.produto_ref LEFT JOIN prc_tabela_preco ON prc_tabela_preco.filial_pro = prd_ref.filial_pro AND prc_tabela_preco.produto = prd_ref.codigo) tabaux GROUP BY tabaux.filial, tabaux.tipo, tabaux.ano, tabaux.mes, tabaux.vendedor, tabaux.prox_aux_venda, tabaux.sequencia, tabaux.qtd_vda, tabaux.produto, tabaux.produto_ref, tabaux.produto_ref_descr, tabaux.codigo, tabaux.descricao, tabaux.tipo_linha; ALTER TABLE public.view_vnd_padrao_ferragem_digitacao_pedido OWNER TO postgres; COMMENT ON VIEW public.view_vnd_padrao_ferragem_digitacao_pedido IS 'View Padrao digitacao Pedido - Ferragem';