CREATE OR REPLACE VIEW public.view_com_necessida_compra AS SELECT view_com_necessida_compra.filial_orc, view_com_necessida_compra.produto, COALESCE(sum(view_com_necessida_compra.quantidade), 0.000000) AS quantidade, view_com_necessida_compra.data_passou_cx, COALESCE(sum(view_com_necessida_compra.qtd_item_dev), 0.000000) as qtd_item_dev, COALESCE(sum(view_com_necessida_compra.quantidade) - COALESCE(sum(view_com_necessida_compra.qtd_item_dev), 0.000000), 0.000000) AS qtd_tot_liquido, view_com_necessida_compra.almox_vnd FROM ( SELECT vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, COALESCE(SUM(vnd_orcamento_item.quantidade), 0.000000) AS quantidade, vnd_orcamento.data_passou_cx, 0 AS qtd_item_dev, COALESCE(vnd_orcamento_item_cpl.almox_vnd, 1) AS almox_vnd FROM vnd_orcamento_item JOIN vnd_orcamento ON vnd_orcamento_item.filial_orc = vnd_orcamento.filial_orc AND vnd_orcamento_item.orcamento = vnd_orcamento.orcamento LEFT JOIN vnd_orcamento_item_cpl ON vnd_orcamento_item_cpl.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_cpl.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_cpl.sequencia = vnd_orcamento_item.sequencia JOIN par_faturamento ON par_faturamento.filial_par = vnd_orcamento_item.filial_orc AND par_faturamento.codigo = 1 WHERE vnd_orcamento.venda_sn::text = 'S'::text AND vnd_orcamento.gerou_nf_caixa::text = 'S'::text AND (vnd_orcamento.tipo::text = 'P'::text OR vnd_orcamento.tipo::text = 'E'::text) AND (vnd_orcamento.situacao::text = 'A'::text OR par_faturamento.utiliza_data_view_padrao::text = 'T'::text) AND (vnd_orcamento.filial_orc, vnd_orcamento.orcamento) NOT IN(SELECT vnd_pagto_ped.filial, vnd_pagto_ped.nr_pedido FROM vnd_pagto_ped JOIN bas_tipo_pagto ON vnd_pagto_ped.tipo_pgto = bas_tipo_pagto.codigo WHERE vnd_pagto_ped.filial = vnd_orcamento.filial_orc AND vnd_pagto_ped.nr_pedido = vnd_orcamento.orcamento AND bas_tipo_pagto.soma_estatist::text = 'N'::text OR vnd_pagto_ped.tipo_pgto = par_faturamento.tipo_pgto_troco ) GROUP BY vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, vnd_orcamento.data_passou_cx, COALESCE(vnd_orcamento_item_cpl.almox_vnd, 1) UNION SELECT vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, 0 AS quantidade, vnd_cancela_orcamento.data_cancelamento AS data_passou_cx, COALESCE(SUM(vnd_orcamento_item.quantidade), 0.000000) AS qtd_item_dev, COALESCE(vnd_orcamento_item_cpl.almox_vnd, 1) AS almox_vnd FROM vnd_orcamento_item JOIN vnd_orcamento ON vnd_orcamento_item.filial_orc = vnd_orcamento.filial_orc AND vnd_orcamento_item.orcamento = vnd_orcamento.orcamento LEFT JOIN vnd_orcamento_item_cpl ON vnd_orcamento_item_cpl.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_cpl.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_cpl.sequencia = vnd_orcamento_item.sequencia JOIN vnd_cancela_orcamento ON vnd_orcamento_item.filial_orc = vnd_cancela_orcamento.filial_orc AND vnd_orcamento_item.orcamento = vnd_cancela_orcamento.orcamento JOIN par_faturamento ON par_faturamento.filial_par = vnd_orcamento_item.filial_orc AND par_faturamento.codigo = 1 WHERE vnd_orcamento.venda_sn::text = 'S'::text AND vnd_orcamento.gerou_nf_caixa::text = 'S'::text AND vnd_orcamento.situacao::text = 'C'::text AND par_faturamento.utiliza_data_view_padrao::text = 'T'::text AND (vnd_orcamento.tipo::text = 'P'::text OR vnd_orcamento.tipo::text = 'E'::text) AND (vnd_orcamento.filial_orc, vnd_orcamento.orcamento) NOT IN(SELECT vnd_pagto_ped.filial, vnd_pagto_ped.nr_pedido FROM vnd_pagto_ped JOIN bas_tipo_pagto ON vnd_pagto_ped.tipo_pgto = bas_tipo_pagto.codigo WHERE vnd_pagto_ped.filial = vnd_orcamento.filial_orc AND vnd_pagto_ped.nr_pedido = vnd_orcamento.orcamento AND bas_tipo_pagto.soma_estatist::text = 'N'::text OR vnd_pagto_ped.tipo_pgto = par_faturamento.tipo_pgto_troco ) GROUP BY vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, vnd_cancela_orcamento.data_cancelamento, COALESCE(vnd_orcamento_item_cpl.almox_vnd, 1), vnd_orcamento_item.sequencia UNION SELECT vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, 0 AS quantidade, gar_troca_devoluc.data_emissao AS data_passou_cx, sum(gar_troca_devoluc_item.quantidade) AS qtd_item_dev, gar_troca_devoluc_item.almoxarifado AS almox_vnd 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 par_faturamento ON par_faturamento.filial_par = vnd_orcamento_item.filial_orc AND par_faturamento.codigo = 1 WHERE gar_troca_devoluc.situacao::text <> 'C'::text AND vnd_orcamento.situacao::text <> 'C'::text AND par_faturamento.utiliza_data_view_padrao::text = 'T'::text GROUP BY vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, gar_troca_devoluc.data_emissao, gar_troca_devoluc_item.almoxarifado UNION SELECT vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, 0 AS quantidade, vnd_orcamento.data_passou_cx, sum(gar_troca_devoluc_item.quantidade) AS qtd_item_dev, gar_troca_devoluc_item.almoxarifado as almox_vnd 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 par_faturamento ON par_faturamento.filial_par = vnd_orcamento_item.filial_orc AND par_faturamento.codigo = 1 WHERE gar_troca_devoluc.situacao::text <> 'C'::text AND vnd_orcamento.situacao::text <> 'C'::text AND par_faturamento.utiliza_data_view_padrao::text <> 'T'::text GROUP BY vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, vnd_orcamento.data_passou_cx, gar_troca_devoluc_item.almoxarifado UNION SELECT gar_troca_devoluc_item.filial AS filial_orc, gar_troca_devoluc_item.produto, 0 AS quantidade, gar_troca_devoluc.data_emissao AS data_passou_cx, sum(gar_troca_devoluc_item.quantidade) AS qtd_item_dev, gar_troca_devoluc_item.almoxarifado AS almox_vnd FROM gar_troca_devoluc 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 JOIN par_faturamento ON par_faturamento.filial_par = gar_troca_devoluc.filial AND par_faturamento.codigo = 1 WHERE gar_troca_devoluc.situacao::text <> 'C'::text AND NOT (gar_troca_devoluc.orcamento IN ( SELECT vnd_orcamento.orcamento FROM vnd_orcamento WHERE vnd_orcamento.filial_orc = gar_troca_devoluc.filial_orc AND vnd_orcamento.orcamento = gar_troca_devoluc.orcamento)) AND par_faturamento.utiliza_troca_sem_pedido_view_padrao::text = 'S'::text GROUP BY gar_troca_devoluc_item.filial, gar_troca_devoluc_item.produto, gar_troca_devoluc.data_emissao, gar_troca_devoluc_item.almoxarifado) view_com_necessida_compra GROUP BY view_com_necessida_compra.filial_orc, view_com_necessida_compra.produto, view_com_necessida_compra.data_passou_cx, view_com_necessida_compra.almox_vnd ORDER BY view_com_necessida_compra.filial_orc, view_com_necessida_compra.produto; ALTER TABLE public.view_com_necessida_compra OWNER TO postgres; COMMENT ON VIEW public.view_com_necessida_compra IS 'View Padrão para Estatisticas de Vendas'; CREATE OR REPLACE VIEW public.view_com_necessida_compra_ano_mes AS SELECT view_com_necessida_compra_ano_mes.filial_orc, view_com_necessida_compra_ano_mes.produto, COALESCE(sum(view_com_necessida_compra_ano_mes.quantidade), 0.000000) AS quantidade, view_com_necessida_compra_ano_mes.ano_mes, COALESCE(sum(view_com_necessida_compra_ano_mes.qtd_item_dev), 0.000000) as qtd_item_dev, COALESCE(sum(view_com_necessida_compra_ano_mes.quantidade) - COALESCE(sum(view_com_necessida_compra_ano_mes.qtd_item_dev), 0.000000), 0.000000) AS qtd_tot_liquido, view_com_necessida_compra_ano_mes.almox_vnd FROM ( SELECT vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, COALESCE(SUM(vnd_orcamento_item.quantidade), 0.000000) AS quantidade, TO_CHAR(vnd_orcamento.data_passou_cx, 'YYYYmm') as ano_mes, 0 AS qtd_item_dev, COALESCE(vnd_orcamento_item_cpl.almox_vnd, 1) AS almox_vnd FROM vnd_orcamento_item JOIN vnd_orcamento ON vnd_orcamento_item.filial_orc = vnd_orcamento.filial_orc AND vnd_orcamento_item.orcamento = vnd_orcamento.orcamento LEFT JOIN vnd_orcamento_item_cpl ON vnd_orcamento_item_cpl.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_cpl.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_cpl.sequencia = vnd_orcamento_item.sequencia JOIN par_faturamento ON par_faturamento.filial_par = vnd_orcamento_item.filial_orc AND par_faturamento.codigo = 1 WHERE vnd_orcamento.venda_sn::text = 'S'::text AND vnd_orcamento.gerou_nf_caixa::text = 'S'::text AND (vnd_orcamento.tipo::text = 'P'::text OR vnd_orcamento.tipo::text = 'E'::text) AND (vnd_orcamento.situacao::text = 'A'::text OR par_faturamento.utiliza_data_view_padrao::text = 'T'::text) AND (vnd_orcamento.filial_orc, vnd_orcamento.orcamento) NOT IN(SELECT vnd_pagto_ped.filial, vnd_pagto_ped.nr_pedido FROM vnd_pagto_ped JOIN bas_tipo_pagto ON vnd_pagto_ped.tipo_pgto = bas_tipo_pagto.codigo WHERE vnd_pagto_ped.filial = vnd_orcamento.filial_orc AND vnd_pagto_ped.nr_pedido = vnd_orcamento.orcamento AND bas_tipo_pagto.soma_estatist::text = 'N'::text OR vnd_pagto_ped.tipo_pgto = par_faturamento.tipo_pgto_troco ) GROUP BY vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, TO_CHAR(vnd_orcamento.data_passou_cx, 'YYYYmm'), COALESCE(vnd_orcamento_item_cpl.almox_vnd, 1) UNION SELECT vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, 0 AS quantidade, TO_CHAR(vnd_cancela_orcamento.data_cancelamento, 'YYYYmm') as ano_mes, COALESCE(SUM(vnd_orcamento_item.quantidade), 0.000000) AS qtd_item_dev, COALESCE(vnd_orcamento_item_cpl.almox_vnd, 1) AS almox_vnd FROM vnd_orcamento_item JOIN vnd_orcamento ON vnd_orcamento_item.filial_orc = vnd_orcamento.filial_orc AND vnd_orcamento_item.orcamento = vnd_orcamento.orcamento LEFT JOIN vnd_orcamento_item_cpl ON vnd_orcamento_item_cpl.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_cpl.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_cpl.sequencia = vnd_orcamento_item.sequencia JOIN vnd_cancela_orcamento ON vnd_orcamento_item.filial_orc = vnd_cancela_orcamento.filial_orc AND vnd_orcamento_item.orcamento = vnd_cancela_orcamento.orcamento JOIN par_faturamento ON par_faturamento.filial_par = vnd_orcamento_item.filial_orc AND par_faturamento.codigo = 1 WHERE vnd_orcamento.venda_sn::text = 'S'::text AND vnd_orcamento.gerou_nf_caixa::text = 'S'::text AND vnd_orcamento.situacao::text = 'C'::text AND par_faturamento.utiliza_data_view_padrao::text = 'T'::text AND (vnd_orcamento.tipo::text = 'P'::text OR vnd_orcamento.tipo::text = 'E'::text) AND (vnd_orcamento.filial_orc, vnd_orcamento.orcamento) NOT IN(SELECT vnd_pagto_ped.filial, vnd_pagto_ped.nr_pedido FROM vnd_pagto_ped JOIN bas_tipo_pagto ON vnd_pagto_ped.tipo_pgto = bas_tipo_pagto.codigo WHERE vnd_pagto_ped.filial = vnd_orcamento.filial_orc AND vnd_pagto_ped.nr_pedido = vnd_orcamento.orcamento AND bas_tipo_pagto.soma_estatist::text = 'N'::text OR vnd_pagto_ped.tipo_pgto = par_faturamento.tipo_pgto_troco ) GROUP BY vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, TO_CHAR(vnd_cancela_orcamento.data_cancelamento, 'YYYYmm'), COALESCE(vnd_orcamento_item_cpl.almox_vnd, 1) UNION SELECT vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, 0 AS quantidade, TO_CHAR(gar_troca_devoluc.data_emissao, 'YYYYmm') as ano_mes, sum(gar_troca_devoluc_item.quantidade) AS qtd_item_dev, gar_troca_devoluc_item.almoxarifado AS almox_vnd 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 par_faturamento ON par_faturamento.filial_par = vnd_orcamento_item.filial_orc AND par_faturamento.codigo = 1 WHERE gar_troca_devoluc.situacao::text <> 'C'::text AND vnd_orcamento.situacao::text <> 'C'::text AND par_faturamento.utiliza_data_view_padrao::text = 'T'::text GROUP BY vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, TO_CHAR(gar_troca_devoluc.data_emissao, 'YYYYmm'), gar_troca_devoluc_item.almoxarifado UNION SELECT vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, 0 AS quantidade, TO_CHAR(vnd_orcamento.data_passou_cx, 'YYYYmm') as ano_mes, sum(gar_troca_devoluc_item.quantidade) AS qtd_item_dev, gar_troca_devoluc_item.almoxarifado as almox_vnd 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 par_faturamento ON par_faturamento.filial_par = vnd_orcamento_item.filial_orc AND par_faturamento.codigo = 1 WHERE gar_troca_devoluc.situacao::text <> 'C'::text AND vnd_orcamento.situacao::text <> 'C'::text AND par_faturamento.utiliza_data_view_padrao::text <> 'T'::text GROUP BY vnd_orcamento_item.filial_orc, vnd_orcamento_item.produto, TO_CHAR(vnd_orcamento.data_passou_cx, 'YYYYmm'), gar_troca_devoluc_item.almoxarifado UNION SELECT gar_troca_devoluc_item.filial AS filial_orc, gar_troca_devoluc_item.produto, 0 AS quantidade, TO_CHAR(gar_troca_devoluc.data_emissao, 'YYYYmm') as ano_mes, sum(gar_troca_devoluc_item.quantidade) AS qtd_item_dev, gar_troca_devoluc_item.almoxarifado AS almox_vnd FROM gar_troca_devoluc 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 JOIN par_faturamento ON par_faturamento.filial_par = gar_troca_devoluc.filial AND par_faturamento.codigo = 1 WHERE gar_troca_devoluc.situacao::text <> 'C'::text AND NOT (gar_troca_devoluc.orcamento IN ( SELECT vnd_orcamento.orcamento FROM vnd_orcamento WHERE vnd_orcamento.filial_orc = gar_troca_devoluc.filial_orc AND vnd_orcamento.orcamento = gar_troca_devoluc.orcamento)) AND par_faturamento.utiliza_troca_sem_pedido_view_padrao::text = 'S'::text GROUP BY gar_troca_devoluc_item.filial, gar_troca_devoluc_item.produto, TO_CHAR(gar_troca_devoluc.data_emissao, 'YYYYmm'), gar_troca_devoluc_item.almoxarifado) view_com_necessida_compra_ano_mes GROUP BY view_com_necessida_compra_ano_mes.filial_orc, view_com_necessida_compra_ano_mes.produto, view_com_necessida_compra_ano_mes.ano_mes, view_com_necessida_compra_ano_mes.almox_vnd ORDER BY view_com_necessida_compra_ano_mes.filial_orc, view_com_necessida_compra_ano_mes.produto; ALTER TABLE public.view_com_necessida_compra_ano_mes OWNER TO postgres; COMMENT ON VIEW public.view_com_necessida_compra_ano_mes IS 'View Padrão para Estatisticas de Vendas';