-- View: public.view_vnd_padrao -- DROP VIEW public.view_vnd_padrao; CREATE OR REPLACE VIEW public.view_vnd_padrao AS SELECT view_vnd_padrao.filial_orc, view_vnd_padrao.orcamento, view_vnd_padrao.sequencia, view_vnd_padrao.produto, COALESCE(sum(view_vnd_padrao.quantidade), 0.000000) AS quantidade, COALESCE(sum(view_vnd_padrao.vlr_unitario), 0.000000) AS vlr_unitario, COALESCE(sum(view_vnd_padrao.vlr_total), 0.000000) AS vlr_total, COALESCE(sum(view_vnd_padrao.vlr_pago_itens), 0.000000) AS vlr_pago_itens, COALESCE(sum(view_vnd_padrao.vlr_custo_reposicao), 0.000000) AS vlr_custo_reposicao, COALESCE(trunc((((sum(view_vnd_padrao.vlr_pago_itens) - COALESCE(sum(view_vnd_padrao.prc_tot_item_dev), 0.000000)) * CASE WHEN (sum(view_vnd_padrao.ind_deflacao) = 0.000000) THEN 1.000000 ELSE sum(view_vnd_padrao.ind_deflacao) END) - ((sum(view_vnd_padrao.vlr_custo_reposicao) / CASE WHEN (sum(view_vnd_padrao.quantidade) = 0.000000) THEN 1.000000 ELSE sum(view_vnd_padrao.quantidade) END) * COALESCE((sum(view_vnd_padrao.quantidade) - COALESCE(sum(view_vnd_padrao.qtd_item_dev), 0.000000)), 0.000000))), 6), 0.000000) AS vlr_lucro, COALESCE(trunc((COALESCE((sum(view_vnd_padrao.vlr_pago_itens) - COALESCE(sum(view_vnd_padrao.prc_tot_item_dev), 0.000000)), 0.000000) * sum(view_vnd_padrao.ind_deflacao)), 6), 0.000000) AS venda_deflacionada, COALESCE(trunc(((sum(view_vnd_padrao.vlr_custo_reposicao) / CASE WHEN (sum(view_vnd_padrao.quantidade) = 0.000000) THEN 1.000000 ELSE sum(view_vnd_padrao.quantidade) END) * COALESCE((sum(view_vnd_padrao.quantidade) - COALESCE(sum(view_vnd_padrao.qtd_item_dev), 0.000000)), 0.000000)), 6), 0.000000) AS vlr_custo_reposicao_liqu, trunc(((( CASE WHEN ((COALESCE((sum(view_vnd_padrao.vlr_pago_itens) - COALESCE(sum(view_vnd_padrao.prc_tot_item_dev), 0.000000)), 0.000000) * sum(view_vnd_padrao.ind_deflacao)) = 0.000000) THEN 1.000000 ELSE (COALESCE((sum(view_vnd_padrao.vlr_pago_itens) - COALESCE(sum(view_vnd_padrao.prc_tot_item_dev), 0.000000)), 0.000000) * sum(view_vnd_padrao.ind_deflacao)) END / CASE WHEN ((( CASE WHEN (sum(view_vnd_padrao.vlr_custo_reposicao) = 0.000000) THEN 1.000000 ELSE sum(view_vnd_padrao.vlr_custo_reposicao) END / CASE WHEN (sum(view_vnd_padrao.quantidade) = 0.000000) THEN 1.000000 ELSE sum(view_vnd_padrao.quantidade) END) * COALESCE((sum(view_vnd_padrao.quantidade) - COALESCE(sum(view_vnd_padrao.qtd_item_dev), 0.000000)), 0.000000)) = 0.0000) THEN 1.000000 ELSE (( CASE WHEN (sum(view_vnd_padrao.vlr_custo_reposicao) = 0.000000) THEN 1.000000 ELSE sum(view_vnd_padrao.vlr_custo_reposicao) END / CASE WHEN (sum(view_vnd_padrao.quantidade) = 0.000000) THEN 1.000000 ELSE sum(view_vnd_padrao.quantidade) END) * COALESCE((sum(view_vnd_padrao.quantidade) - COALESCE(sum(view_vnd_padrao.qtd_item_dev), 0.000000)), 0.000000)) END) - (1)::numeric) * (100)::numeric), 6) AS ind_lucro, view_vnd_padrao.vendedor, view_vnd_padrao.cliente, view_vnd_padrao.data_passou_cx, sum(view_vnd_padrao.vlr_desconto_pedido) AS vlr_desconto_pedido, view_vnd_padrao.grupo, view_vnd_padrao.subgrupo, view_vnd_padrao.fornecedor, view_vnd_padrao.aplicacao, view_vnd_padrao.linha, view_vnd_padrao.fabricante, view_vnd_padrao.ramo_ativ_fornec, view_vnd_padrao.ramo_ativ_cliente, sum(view_vnd_padrao.qtd_item_dev) AS qtd_item_dev, sum(view_vnd_padrao.prc_unit_item_dev) AS prc_unit_item_dev, sum(view_vnd_padrao.prc_tot_item_dev) AS prc_tot_item_dev, COALESCE((sum(view_vnd_padrao.vlr_pago_itens) - COALESCE(sum(view_vnd_padrao.prc_tot_item_dev), 0.000000)), 0.000000) AS vlr_tot_liquido, COALESCE((sum(view_vnd_padrao.quantidade) - COALESCE(sum(view_vnd_padrao.qtd_item_dev), 0.000000)), 0.000000) AS qtd_tot_liquido, view_vnd_padrao.descricao, view_vnd_padrao.unidade, view_vnd_padrao.peso_bruto, sum(view_vnd_padrao.tolerancia_peso) AS tolerancia_peso, sum(view_vnd_padrao.ind_deflacao) AS ind_deflacao, view_vnd_padrao.filial_nota, view_vnd_padrao.nota, view_vnd_padrao.serie, sum(view_vnd_padrao.tp_pgto_1) AS tp_pgto_1, sum(view_vnd_padrao.vlr_pgto_1) AS vlr_pgto_1, sum(view_vnd_padrao.tp_pgto_2) AS tp_pgto_2, sum(view_vnd_padrao.vlr_pgto_2) AS vlr_pgto_2, sum(view_vnd_padrao.tp_pgto_3) AS tp_pgto_3, sum(view_vnd_padrao.vlr_pgto_3) AS vlr_pgto_3, view_vnd_padrao.promocao 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 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))) WHERE ((vnd_pagto_ped.tipo_pgto <> ( SELECT par_faturamento.tipo_pgto_troco FROM par_faturamento WHERE ((par_faturamento.filial_par = vnd_orcamento_item.filial_orc) AND (par_faturamento.codigo = 1)))) AND ((vnd_orcamento.venda_sn)::text = 'S'::text) AND ((bas_tipo_pagto.soma_estatist)::text = 'S'::text) AND ((vnd_orcamento.gerou_nf_caixa)::text = 'S'::text) AND ((vnd_orcamento.situacao)::text = 'A'::text) AND (((vnd_orcamento.tipo)::text = 'P'::text) OR ((vnd_orcamento.tipo)::text = 'E'::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, 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 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 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) AND ((vnd_orcamento.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) view_vnd_padrao GROUP BY view_vnd_padrao.filial_orc, view_vnd_padrao.orcamento, view_vnd_padrao.sequencia, view_vnd_padrao.produto, view_vnd_padrao.vendedor, view_vnd_padrao.cliente, view_vnd_padrao.data_passou_cx, view_vnd_padrao.grupo, view_vnd_padrao.subgrupo, view_vnd_padrao.fornecedor, view_vnd_padrao.aplicacao, view_vnd_padrao.linha, view_vnd_padrao.fabricante, view_vnd_padrao.ramo_ativ_fornec, view_vnd_padrao.ramo_ativ_cliente, view_vnd_padrao.descricao, view_vnd_padrao.unidade, view_vnd_padrao.peso_bruto, view_vnd_padrao.filial_nota, view_vnd_padrao.nota, view_vnd_padrao.serie, view_vnd_padrao.promocao ORDER BY view_vnd_padrao.filial_orc, view_vnd_padrao.orcamento, view_vnd_padrao.produto; ALTER TABLE public.view_vnd_padrao OWNER TO postgres; COMMENT ON VIEW public.view_vnd_padrao IS 'View PadrĂ£o para Estatisticas de Vendas';