-- View: public.view_vnd_venda_analitica -- DROP VIEW public.view_vnd_venda_analitica; CREATE OR REPLACE VIEW public.view_vnd_venda_analitica AS SELECT view_vnd_venda_analitica.filial_orc, view_vnd_venda_analitica.orcamento, view_vnd_venda_analitica.sequencia, view_vnd_venda_analitica.produto, COALESCE(sum(view_vnd_venda_analitica.quantidade), 0.000000) AS quantidade, COALESCE(sum(view_vnd_venda_analitica.vlr_unitario), 0.000000) AS vlr_unitario, COALESCE(sum(view_vnd_venda_analitica.vlr_total), 0.000000) AS vlr_total, COALESCE(sum(view_vnd_venda_analitica.vlr_pago_itens), 0.000000) AS vlr_pago_itens, COALESCE(sum(view_vnd_venda_analitica.vlr_custo_reposicao), 0.000000) AS vlr_custo_reposicao, COALESCE(trunc((sum(view_vnd_venda_analitica.vlr_pago_itens) - COALESCE(sum(view_vnd_venda_analitica.prc_tot_item_dev), 0.000000)) * CASE WHEN sum(view_vnd_venda_analitica.ind_deflacao) = 0.000000 THEN 1.000000 ELSE sum(view_vnd_venda_analitica.ind_deflacao) END - sum(view_vnd_venda_analitica.vlr_custo_reposicao) / CASE WHEN sum(view_vnd_venda_analitica.quantidade) = 0.000000 THEN 1.000000 ELSE sum(view_vnd_venda_analitica.quantidade) END * COALESCE(sum(view_vnd_venda_analitica.quantidade) - COALESCE(sum(view_vnd_venda_analitica.qtd_item_dev), 0.000000), 0.000000), 6), 0.000000) AS vlr_lucro, COALESCE(trunc(COALESCE(sum(view_vnd_venda_analitica.vlr_pago_itens) - COALESCE(sum(view_vnd_venda_analitica.prc_tot_item_dev), 0.000000), 0.000000) * sum(view_vnd_venda_analitica.ind_deflacao), 6), 0.000000) AS venda_deflacionada, COALESCE(trunc(sum(view_vnd_venda_analitica.vlr_custo_reposicao) / CASE WHEN sum(view_vnd_venda_analitica.quantidade) = 0.000000 THEN 1.000000 ELSE sum(view_vnd_venda_analitica.quantidade) END * COALESCE(sum(view_vnd_venda_analitica.quantidade) - COALESCE(sum(view_vnd_venda_analitica.qtd_item_dev), 0.000000), 0.000000), 6), 0.000000) AS vlr_custo_reposicao_liqu, trunc(( CASE WHEN (COALESCE(sum(view_vnd_venda_analitica.vlr_pago_itens) - COALESCE(sum(view_vnd_venda_analitica.prc_tot_item_dev), 0.000000), 0.000000) * sum(view_vnd_venda_analitica.ind_deflacao)) = 0.000000 THEN 1.000000 ELSE COALESCE(sum(view_vnd_venda_analitica.vlr_pago_itens) - COALESCE(sum(view_vnd_venda_analitica.prc_tot_item_dev), 0.000000), 0.000000) * sum(view_vnd_venda_analitica.ind_deflacao) END / CASE WHEN ( CASE WHEN sum(view_vnd_venda_analitica.vlr_custo_reposicao) = 0.000000 THEN 1.000000 ELSE sum(view_vnd_venda_analitica.vlr_custo_reposicao) END / CASE WHEN sum(view_vnd_venda_analitica.quantidade) = 0.000000 THEN 1.000000 ELSE sum(view_vnd_venda_analitica.quantidade) END * COALESCE(sum(view_vnd_venda_analitica.quantidade) - COALESCE(sum(view_vnd_venda_analitica.qtd_item_dev), 0.000000), 0.000000)) = 0.0000 THEN 1.000000 ELSE CASE WHEN sum(view_vnd_venda_analitica.vlr_custo_reposicao) = 0.000000 THEN 1.000000 ELSE sum(view_vnd_venda_analitica.vlr_custo_reposicao) END / CASE WHEN sum(view_vnd_venda_analitica.quantidade) = 0.000000 THEN 1.000000 ELSE sum(view_vnd_venda_analitica.quantidade) END * COALESCE(sum(view_vnd_venda_analitica.quantidade) - COALESCE(sum(view_vnd_venda_analitica.qtd_item_dev), 0.000000), 0.000000) END - 1::numeric) * 100::numeric, 6) AS ind_lucro, view_vnd_venda_analitica.vendedor, view_vnd_venda_analitica.cliente, view_vnd_venda_analitica.data_passou_cx, sum(view_vnd_venda_analitica.vlr_desconto_pedido) AS vlr_desconto_pedido, view_vnd_venda_analitica.grupo, view_vnd_venda_analitica.subgrupo, view_vnd_venda_analitica.fornecedor, view_vnd_venda_analitica.aplicacao, view_vnd_venda_analitica.linha, view_vnd_venda_analitica.fabricante, view_vnd_venda_analitica.ramo_ativ_fornec, view_vnd_venda_analitica.ramo_ativ_cliente, sum(view_vnd_venda_analitica.qtd_item_dev) AS qtd_item_dev, sum(view_vnd_venda_analitica.prc_unit_item_dev) AS prc_unit_item_dev, sum(view_vnd_venda_analitica.prc_tot_item_dev) AS prc_tot_item_dev, COALESCE(sum(view_vnd_venda_analitica.vlr_pago_itens) - COALESCE(sum(view_vnd_venda_analitica.prc_tot_item_dev), 0.000000), 0.000000) AS vlr_tot_liquido, COALESCE(sum(view_vnd_venda_analitica.quantidade) - COALESCE(sum(view_vnd_venda_analitica.qtd_item_dev), 0.000000), 0.000000) AS qtd_tot_liquido, view_vnd_venda_analitica.descricao, view_vnd_venda_analitica.unidade, view_vnd_venda_analitica.peso_bruto, sum(view_vnd_venda_analitica.tolerancia_peso) AS tolerancia_peso, sum(view_vnd_venda_analitica.ind_deflacao) AS ind_deflacao, view_vnd_venda_analitica.filial_nota, view_vnd_venda_analitica.nota, view_vnd_venda_analitica.serie, sum(view_vnd_venda_analitica.tp_pgto_1) AS tp_pgto_1, sum(view_vnd_venda_analitica.vlr_pgto_1) AS vlr_pgto_1, sum(view_vnd_venda_analitica.tp_pgto_2) AS tp_pgto_2, sum(view_vnd_venda_analitica.vlr_pgto_2) AS vlr_pgto_2, sum(view_vnd_venda_analitica.tp_pgto_3) AS tp_pgto_3, sum(view_vnd_venda_analitica.vlr_pgto_3) AS vlr_pgto_3, view_vnd_venda_analitica.promocao, view_vnd_venda_analitica.familia, view_vnd_venda_analitica.tipo_entrega, view_vnd_venda_analitica.venda_sn, view_vnd_venda_analitica.gerou_nf_caixa, view_vnd_venda_analitica.situacao, view_vnd_venda_analitica.tipo, view_vnd_venda_analitica.data_emissao FROM ( SELECT vnd_orcamento_item.filial_orc, vnd_orcamento_item.orcamento, vnd_orcamento_item.sequencia, vnd_orcamento_item.produto, COALESCE(vnd_orcamento_item.quantidade, 0.000000) AS quantidade, COALESCE(vnd_orcamento_item.vlr_unitario, 0.000000) AS vlr_unitario, COALESCE(vnd_orcamento_item.vlr_total, 0.000000) AS vlr_total, COALESCE(vnd_orcamento_item.vlr_pago, 0.000000) AS vlr_pago_itens, COALESCE(vnd_orcamento_item.vlr_custo_reposicao, 0.000000) AS vlr_custo_reposicao, COALESCE(vnd_orcamento_item.vlr_pago) AS valor_pago, vnd_orcamento_item.vendedor, vnd_orcamento.cliente, vnd_orcamento.data_passou_cx, vnd_orcamento.vlr_desconto AS vlr_desconto_pedido, pro_produto.grupo, pro_produto.subgrupo, pro_produto.fornecedor, pro_produto.aplicacao, pro_produto.linha, pro_produto.fornec_fabricante AS fabricante, for_fornecedor.ramo_atividade AS ramo_ativ_fornec, cli_cliente.ramo_atividade AS ramo_ativ_cliente, 0 AS qtd_item_dev, 0 AS prc_unit_item_dev, 0 AS prc_tot_item_dev, pro_produto.descricao, pro_produto.unidade, pro_produto.peso_bruto, pro_produto.tolerancia_peso, trunc(sum(bas_tipo_pagto.ind_deflacao) / (( SELECT count(*) AS count FROM vnd_pagto_ped pgaux WHERE pgaux.filial = vnd_orcamento_item.filial_orc AND pgaux.nr_pedido = vnd_orcamento_item.orcamento AND pgaux.tipo_pgto <> (( SELECT par_faturamento.tipo_pgto_troco FROM par_faturamento WHERE par_faturamento.filial_par = pgaux.filial AND par_faturamento.codigo = 1))))::numeric, 6) AS ind_deflacao, vnd_orcamento.filial_nota, vnd_orcamento.nota, vnd_orcamento.serie, COALESCE(( SELECT vnd_pagto_ped_1.tipo_pgto FROM vnd_pagto_ped vnd_pagto_ped_1 WHERE vnd_pagto_ped_1.filial = vnd_orcamento_item.filial_orc AND vnd_pagto_ped_1.nr_pedido = vnd_orcamento_item.orcamento ORDER BY vnd_pagto_ped_1.tipo_pgto OFFSET 0 LIMIT 1), 0) AS tp_pgto_1, COALESCE(( SELECT vnd_pagto_ped_1.valor FROM vnd_pagto_ped vnd_pagto_ped_1 WHERE vnd_pagto_ped_1.filial = vnd_orcamento_item.filial_orc AND vnd_pagto_ped_1.nr_pedido = vnd_orcamento_item.orcamento ORDER BY vnd_pagto_ped_1.tipo_pgto OFFSET 0 LIMIT 1), 0.000000) AS vlr_pgto_1, COALESCE(( SELECT vnd_pagto_ped_1.tipo_pgto FROM vnd_pagto_ped vnd_pagto_ped_1 WHERE vnd_pagto_ped_1.filial = vnd_orcamento_item.filial_orc AND vnd_pagto_ped_1.nr_pedido = vnd_orcamento_item.orcamento ORDER BY vnd_pagto_ped_1.tipo_pgto OFFSET 1 LIMIT 1), 0) AS tp_pgto_2, COALESCE(( SELECT vnd_pagto_ped_1.valor FROM vnd_pagto_ped vnd_pagto_ped_1 WHERE vnd_pagto_ped_1.filial = vnd_orcamento_item.filial_orc AND vnd_pagto_ped_1.nr_pedido = vnd_orcamento_item.orcamento ORDER BY vnd_pagto_ped_1.tipo_pgto OFFSET 1 LIMIT 1), 0.000000) AS vlr_pgto_2, COALESCE(( SELECT vnd_pagto_ped_1.tipo_pgto FROM vnd_pagto_ped vnd_pagto_ped_1 WHERE vnd_pagto_ped_1.filial = vnd_orcamento_item.filial_orc AND vnd_pagto_ped_1.nr_pedido = vnd_orcamento_item.orcamento ORDER BY vnd_pagto_ped_1.tipo_pgto OFFSET 2 LIMIT 1), 0) AS tp_pgto_3, COALESCE(( SELECT vnd_pagto_ped_1.valor FROM vnd_pagto_ped vnd_pagto_ped_1 WHERE vnd_pagto_ped_1.filial = vnd_orcamento_item.filial_orc AND vnd_pagto_ped_1.nr_pedido = vnd_orcamento_item.orcamento ORDER BY vnd_pagto_ped_1.tipo_pgto OFFSET 2 LIMIT 1), 0.000000) AS vlr_pgto_3, vnd_orcamento_item.promocao, pro_produto.familia, vnd_orcamento_item.tipo_entrega, vnd_orcamento.venda_sn, vnd_orcamento.gerou_nf_caixa, vnd_orcamento.situacao, vnd_orcamento.tipo, vnd_orcamento.data_emissao FROM vnd_orcamento_item JOIN pro_produto ON vnd_orcamento_item.filial_pro = pro_produto.filial_pro AND vnd_orcamento_item.produto = pro_produto.codigo JOIN pro_grupo_prod ON pro_produto.grupo = pro_grupo_prod.codigo JOIN pro_sub_grupo_prod ON pro_produto.subgrupo = pro_sub_grupo_prod.codigo JOIN pro_aplicacao ON pro_produto.aplicacao = pro_aplicacao.codigo JOIN pro_linha ON pro_produto.linha = pro_linha.codigo JOIN for_fornecedor ON pro_produto.filial_for = for_fornecedor.filial AND pro_produto.fornecedor = for_fornecedor.codigo JOIN for_ramo_ativ ON for_fornecedor.ramo_atividade = for_ramo_ativ.codigo JOIN vnd_orcamento ON vnd_orcamento_item.filial_orc = vnd_orcamento.filial_orc AND vnd_orcamento_item.orcamento = vnd_orcamento.orcamento JOIN bas_vendedor ON vnd_orcamento_item.filial_ven = bas_vendedor.filial AND vnd_orcamento_item.vendedor = bas_vendedor.codigo JOIN cli_cliente ON vnd_orcamento.filial_cli = cli_cliente.filial AND vnd_orcamento.cliente = cli_cliente.codigo LEFT JOIN cli_endereco ON cli_cliente.filial = cli_endereco.filial AND cli_cliente.codigo = cli_endereco.cliente AND cli_endereco.sequencia = vnd_orcamento.endereco_entrega JOIN prc_tabela_preco ON pro_produto.filial_pro = prc_tabela_preco.filial_pro AND pro_produto.codigo = prc_tabela_preco.produto JOIN vnd_pagto_ped ON vnd_orcamento.filial_orc = vnd_pagto_ped.filial AND vnd_orcamento.orcamento = vnd_pagto_ped.nr_pedido JOIN bas_tipo_pagto ON vnd_pagto_ped.tipo_pgto = bas_tipo_pagto.codigo GROUP BY vnd_orcamento_item.filial_orc, vnd_orcamento_item.orcamento, vnd_orcamento_item.sequencia, vnd_orcamento_item.produto, vnd_orcamento_item.vendedor, vnd_orcamento.cliente, vnd_orcamento.data_passou_cx, pro_produto.grupo, pro_produto.subgrupo, pro_produto.fornecedor, pro_produto.aplicacao, pro_produto.linha, pro_produto.fornec_fabricante, for_fornecedor.ramo_atividade, cli_cliente.ramo_atividade, pro_produto.descricao, pro_produto.unidade, pro_produto.peso_bruto, pro_produto.tolerancia_peso, vnd_orcamento.filial_nota, vnd_orcamento.nota, vnd_orcamento.serie, vnd_orcamento_item.vlr_pago, vnd_orcamento_item.quantidade, vnd_orcamento_item.vlr_unitario, vnd_orcamento_item.vlr_total, vnd_orcamento_item.vlr_custo_reposicao, vnd_orcamento.vlr_desconto, vnd_orcamento_item.promocao, pro_produto.familia, vnd_orcamento_item.tipo_entrega, vnd_orcamento.venda_sn, vnd_orcamento.gerou_nf_caixa, vnd_orcamento.situacao, vnd_orcamento.tipo, vnd_orcamento.data_emissao UNION SELECT vnd_orcamento_item.filial_orc, vnd_orcamento_item.orcamento, vnd_orcamento_item.sequencia, vnd_orcamento_item.produto, 0 AS quantidade, 0 AS vlr_unitario, 0 AS vlr_total, 0 AS vlr_pago_itens, 0 AS vlr_custo_reposicao, 0 AS valor_pago, vnd_orcamento_item.vendedor, vnd_orcamento.cliente, vnd_orcamento.data_passou_cx, 0 AS vlr_desconto_pedido, pro_produto.grupo, pro_produto.subgrupo, pro_produto.fornecedor, pro_produto.aplicacao, pro_produto.linha, pro_produto.fornec_fabricante AS fabricante, for_fornecedor.ramo_atividade AS ramo_ativ_fornec, cli_cliente.ramo_atividade AS ramo_ativ_cliente, sum(gar_troca_devoluc_item.quantidade) AS qtd_item_dev, sum(gar_troca_devoluc_item.preco_total) / sum(gar_troca_devoluc_item.quantidade) AS prc_unit_item_dev, sum(gar_troca_devoluc_item.preco_total) AS prc_tot_item_dev, pro_produto.descricao, pro_produto.unidade, pro_produto.peso_bruto, pro_produto.tolerancia_peso, 0 AS ind_deflacao, vnd_orcamento.filial_nota, vnd_orcamento.nota, vnd_orcamento.serie, 0 AS tp_pgto_1, 0 AS vlr_pgto_1, 0 AS tp_pgto_2, 0 AS vlr_pgto_2, 0 AS tp_pgto_3, 0 AS vlr_pgto_3, vnd_orcamento_item.promocao, pro_produto.familia, vnd_orcamento_item.tipo_entrega, vnd_orcamento.venda_sn, vnd_orcamento.gerou_nf_caixa, vnd_orcamento.situacao, vnd_orcamento.tipo, vnd_orcamento.data_emissao FROM vnd_orcamento JOIN vnd_orcamento_item ON vnd_orcamento.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento.orcamento = vnd_orcamento_item.orcamento JOIN gar_troca_devoluc ON vnd_orcamento_item.filial_orc = gar_troca_devoluc.filial AND vnd_orcamento_item.orcamento = gar_troca_devoluc.orcamento JOIN gar_troca_devoluc_item ON gar_troca_devoluc_item.filial = gar_troca_devoluc.filial AND gar_troca_devoluc_item.sequencia = gar_troca_devoluc.sequencia AND gar_troca_devoluc_item.filial_pro = vnd_orcamento_item.filial_pro AND gar_troca_devoluc_item.produto = vnd_orcamento_item.produto AND gar_troca_devoluc_item.sequencia_item_pedido = vnd_orcamento_item.sequencia JOIN pro_produto ON vnd_orcamento_item.filial_pro = pro_produto.filial_pro AND vnd_orcamento_item.produto = pro_produto.codigo JOIN for_fornecedor ON pro_produto.filial_for = for_fornecedor.filial AND pro_produto.fornecedor = for_fornecedor.codigo JOIN cli_cliente ON vnd_orcamento.filial_cli = cli_cliente.filial AND vnd_orcamento.cliente = cli_cliente.codigo WHERE gar_troca_devoluc.situacao::text <> 'C'::text GROUP BY vnd_orcamento_item.filial_orc, vnd_orcamento_item.orcamento, vnd_orcamento_item.sequencia, vnd_orcamento_item.produto, vnd_orcamento_item.vendedor, vnd_orcamento.cliente, vnd_orcamento.data_passou_cx, pro_produto.grupo, pro_produto.subgrupo, pro_produto.fornecedor, pro_produto.aplicacao, pro_produto.linha, pro_produto.fornec_fabricante, pro_produto.descricao, pro_produto.unidade, pro_produto.peso_bruto, pro_produto.tolerancia_peso, vnd_orcamento.filial_nota, vnd_orcamento.nota, vnd_orcamento.serie, for_fornecedor.ramo_atividade, cli_cliente.ramo_atividade, vnd_orcamento_item.promocao, pro_produto.familia, vnd_orcamento_item.tipo_entrega, vnd_orcamento.venda_sn, vnd_orcamento.gerou_nf_caixa, vnd_orcamento.situacao, vnd_orcamento.tipo, vnd_orcamento.data_emissao) view_vnd_venda_analitica GROUP BY view_vnd_venda_analitica.filial_orc, view_vnd_venda_analitica.orcamento, view_vnd_venda_analitica.sequencia, view_vnd_venda_analitica.produto, view_vnd_venda_analitica.vendedor, view_vnd_venda_analitica.cliente, view_vnd_venda_analitica.data_passou_cx, view_vnd_venda_analitica.grupo, view_vnd_venda_analitica.subgrupo, view_vnd_venda_analitica.fornecedor, view_vnd_venda_analitica.aplicacao, view_vnd_venda_analitica.linha, view_vnd_venda_analitica.fabricante, view_vnd_venda_analitica.ramo_ativ_fornec, view_vnd_venda_analitica.ramo_ativ_cliente, view_vnd_venda_analitica.descricao, view_vnd_venda_analitica.unidade, view_vnd_venda_analitica.peso_bruto, view_vnd_venda_analitica.filial_nota, view_vnd_venda_analitica.nota, view_vnd_venda_analitica.serie, view_vnd_venda_analitica.promocao, view_vnd_venda_analitica.familia, view_vnd_venda_analitica.tipo_entrega, view_vnd_venda_analitica.venda_sn, view_vnd_venda_analitica.gerou_nf_caixa, view_vnd_venda_analitica.situacao, view_vnd_venda_analitica.tipo, view_vnd_venda_analitica.data_emissao ORDER BY view_vnd_venda_analitica.filial_orc, view_vnd_venda_analitica.orcamento, view_vnd_venda_analitica.produto; ALTER TABLE public.view_vnd_venda_analitica OWNER TO postgres; COMMENT ON VIEW public.view_vnd_venda_analitica IS 'View Para Exibir todas as Vendas e Descontas a Troca';