-- View: public.view_dis_romaneio_loja -- DROP VIEW public.view_dis_romaneio_loja; CREATE OR REPLACE VIEW public.view_dis_romaneio_loja AS SELECT filial_orc, data_previsao_entrega, orcamento, cliente, nome, endereco_entrega, uf, cidade, bairro, tipo_entrega, descr_tp_entrega, sequencia, produto, descricao, unidade, qtd_venda, qtd_entregue, qtd_devolucao, ((qtd_venda - qtd_entregue) - qtd_devolucao) AS qtd_entregar FROM ( SELECT vnd_orcamento.filial_orc, vnd_orcamento.data_previsao_entrega, vnd_orcamento.orcamento, vnd_orcamento.cliente, cli_cliente.nome, vnd_orcamento.endereco_entrega, cli_endereco.uf, cli_endereco.cidade, cli_endereco.bairro, vnd_orcamento_item.tipo_entrega, bas_tipo_entrega.descricao AS descr_tp_entrega, vnd_orcamento_item.sequencia, vnd_orcamento_item.produto, pro_produto.descricao, pro_produto.unidade, TRUNC(COALESCE(MIN(vnd_orcamento_item.quantidade), 0.000000),6) AS qtd_venda, TRUNC(COALESCE(SUM( CASE WHEN dis_romaneio.situacao = 'A' THEN dis_romaneio_item.qtd_total WHEN dis_romaneio.situacao = 'B' THEN dis_romaneio_item.qtd_entregue ELSE 0.000000 END), 0.000000),6) AS qtd_entregue, TRUNC(COALESCE((SELECT SUM(gar_troca_devoluc_item.quantidade) FROM gar_troca_devoluc LEFT 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.sequencia_item_pedido = vnd_orcamento_item.sequencia AND gar_troca_devoluc_item.produto = vnd_orcamento_item.produto AND gar_troca_devoluc_item.tipo_mov = 400 WHERE gar_troca_devoluc.filial_orc = vnd_orcamento.filial_orc AND gar_troca_devoluc.orcamento = vnd_orcamento.orcamento AND gar_troca_devoluc.cliente = vnd_orcamento.cliente AND gar_troca_devoluc.situacao <> 'C' ), 0.000000),6) AS qtd_devolucao, 0.000000 AS qtd_entregar FROM vnd_orcamento LEFT JOIN vnd_orcamento_item ON vnd_orcamento_item.filial_orc = vnd_orcamento.filial_orc AND vnd_orcamento_item.orcamento = vnd_orcamento.orcamento LEFT JOIN dis_romaneio_item ON dis_romaneio_item.filial = vnd_orcamento_item.filial_orc AND dis_romaneio_item.orcamento = vnd_orcamento_item.orcamento AND dis_romaneio_item.seq_item_orcamento = vnd_orcamento_item.sequencia LEFT JOIN dis_romaneio ON dis_romaneio.filial = dis_romaneio_item.filial AND dis_romaneio.romaneio = dis_romaneio_item.romaneio AND dis_romaneio.situacao <> 'C' LEFT JOIN cli_cliente ON cli_cliente.filial = vnd_orcamento.filial_cli AND cli_cliente.codigo = vnd_orcamento.cliente LEFT JOIN cli_endereco ON cli_endereco.filial = vnd_orcamento.filial_cli AND cli_endereco.cliente = vnd_orcamento.cliente AND cli_endereco.sequencia = vnd_orcamento.endereco_entrega LEFT JOIN bas_tipo_entrega ON bas_tipo_entrega.codigo = vnd_orcamento_item.tipo_entrega LEFT JOIN pro_produto ON pro_produto.filial_pro = vnd_orcamento_item.filial_pro AND pro_produto.codigo = vnd_orcamento_item.produto WHERE vnd_orcamento.situacao <> 'C' AND vnd_orcamento.tipo <> 'O' AND bas_tipo_entrega.distribuicao = 'S' GROUP BY vnd_orcamento.filial_orc, vnd_orcamento.data_previsao_entrega, vnd_orcamento.orcamento, vnd_orcamento.cliente, cli_cliente.nome, vnd_orcamento.endereco_entrega, cli_endereco.uf, cli_endereco.cidade, cli_endereco.bairro, vnd_orcamento_item.tipo_entrega, bas_tipo_entrega.descricao, vnd_orcamento_item.sequencia, vnd_orcamento_item.produto, pro_produto.descricao, pro_produto.unidade ) AS tabaux WHERE ((qtd_venda - qtd_entregue) - qtd_devolucao) > 0 ORDER BY filial_orc, data_previsao_entrega, cliente, orcamento; ALTER TABLE public.view_dis_romaneio_loja OWNER TO postgres; COMMENT ON VIEW public.view_dis_romaneio_loja IS 'View para Montar Romaneio da Loja';