-- View: public.view_vnd_padrao_ficha_tecnica_embalagem -- DROP VIEW public.view_vnd_padrao_ficha_tecnica_embalagem; CREATE OR REPLACE VIEW public.view_vnd_padrao_ficha_tecnica_embalagem AS SELECT tabaux.faturado_sn, tabaux.filial, tabaux.ano, tabaux.mes, tabaux.pedido, tabaux.sequencia, tabaux.nota, tabaux.ficha_tecnica, tabaux.data_faturamento, tabaux.data_previsao, tabaux.cliente, tabaux.fornecedor, tabaux.vendedor, tabaux.materia_prima, tabaux.produto_acabado, tabaux.faturado_tot_peso_kg, tabaux.faturado_vlr_total, tabaux.faturado_qtd_item, tabaux.faturado_med_preco_kg, tabaux.faturar_tot_peso_kg, tabaux.faturar_vlr_total, tabaux.faturar_qtd_item, tabaux.faturar_med_preco_kg FROM ( SELECT 'S'::text AS faturado_sn, view_vnd_padrao.filial_orc AS filial, to_char(view_vnd_padrao.data_passou_cx::timestamp with time zone, 'YYYY'::text)::integer AS ano, to_char(view_vnd_padrao.data_passou_cx::timestamp with time zone, 'mm'::text)::integer AS mes, view_vnd_padrao.orcamento AS pedido, view_vnd_padrao.sequencia, view_vnd_padrao.nota, CASE WHEN (( SELECT count(*) AS count FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = view_vnd_padrao.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = view_vnd_padrao.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = view_vnd_padrao.sequencia)) = 0 THEN '0'::text WHEN (( SELECT count(*) AS count FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = view_vnd_padrao.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = view_vnd_padrao.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = view_vnd_padrao.sequencia)) > 1 THEN 'CONJUNTO'::text ELSE ( SELECT (vnd_orcamento_item_ficha_tecnica_embalagem.ficha_tecnica || '-'::text) || vnd_orcamento_item_ficha_tecnica_embalagem.ficha_tecnica_seq FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = view_vnd_padrao.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = view_vnd_padrao.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = view_vnd_padrao.sequencia) END AS ficha_tecnica, view_vnd_padrao.data_passou_cx AS data_faturamento, vnd_orcamento_item_entrega.data_previsao_entrega AS data_previsao, view_vnd_padrao.cliente, view_vnd_padrao.fornecedor, view_vnd_padrao.vendedor, CASE WHEN (( SELECT count(*) AS count FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = view_vnd_padrao.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = view_vnd_padrao.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = view_vnd_padrao.sequencia)) = 0 THEN '0'::text WHEN (( SELECT count(*) AS count FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = view_vnd_padrao.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = view_vnd_padrao.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = view_vnd_padrao.sequencia)) > 1 THEN 'CONJUNTO'::text ELSE ( SELECT vnd_orcamento_item_ficha_tecnica_embalagem.materia_prima::text AS materia_prima FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = view_vnd_padrao.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = view_vnd_padrao.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = view_vnd_padrao.sequencia) END AS materia_prima, prod_acabado.codigo AS produto_acabado, COALESCE(( SELECT sum(vnd_orcamento_item_ficha_tecnica_embalagem.total_peso_kg) AS sum FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = view_vnd_padrao.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = view_vnd_padrao.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = view_vnd_padrao.sequencia), 0.000000) AS faturado_tot_peso_kg, view_vnd_padrao.vlr_tot_liquido AS faturado_vlr_total, view_vnd_padrao.qtd_tot_liquido AS faturado_qtd_item, ROUND( CASE WHEN COALESCE(( SELECT sum(vnd_orcamento_item_ficha_tecnica_embalagem.total_peso_kg) AS sum FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = view_vnd_padrao.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = view_vnd_padrao.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = view_vnd_padrao.sequencia), 0.000000) = 0::numeric THEN 0.000000 ELSE COALESCE(( SELECT sum(vnd_orcamento_item_ficha_tecnica_embalagem.total_peso_kg) AS sum FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = view_vnd_padrao.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = view_vnd_padrao.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = view_vnd_padrao.sequencia), 0.000000) / ((CASE WHEN view_vnd_padrao.qtd_tot_liquido = 0 THEN 1 ELSE view_vnd_padrao.qtd_tot_liquido END) / CASE WHEN (view_vnd_padrao.vlr_tot_liquido / (CASE WHEN view_vnd_padrao.qtd_tot_liquido = 0 THEN 1 ELSE view_vnd_padrao.qtd_tot_liquido END)) = 0 THEN 1 ELSE (view_vnd_padrao.vlr_tot_liquido / (CASE WHEN view_vnd_padrao.qtd_tot_liquido = 0 THEN 1 ELSE view_vnd_padrao.qtd_tot_liquido END)) END ) END, 6) AS faturado_med_preco_kg, 0.000000 AS faturar_tot_peso_kg, 0.000000 AS faturar_vlr_total, 0.000000 AS faturar_qtd_item, 0.000000 AS faturar_med_preco_kg FROM view_vnd_padrao LEFT JOIN pro_produto prod_acabado ON prod_acabado.filial_pro = view_vnd_padrao.filial_orc AND prod_acabado.codigo = view_vnd_padrao.produto LEFT JOIN vnd_orcamento_item_entrega ON vnd_orcamento_item_entrega.filial_orc = view_vnd_padrao.filial_orc AND vnd_orcamento_item_entrega.orcamento = view_vnd_padrao.orcamento AND vnd_orcamento_item_entrega.produto = view_vnd_padrao.produto AND vnd_orcamento_item_entrega.sequencia = view_vnd_padrao.sequencia UNION ALL SELECT 'N'::text AS faturado_sn, vnd_orcamento_item.filial_orc AS filial, to_char(vnd_orcamento_item_entrega.data_previsao_entrega::timestamp with time zone, 'YYYY'::text)::integer AS ano, to_char(vnd_orcamento_item_entrega.data_previsao_entrega::timestamp with time zone, 'mm'::text)::integer AS mes, vnd_orcamento_item.orcamento AS pedido, vnd_orcamento_item.sequencia, 0 AS nota, CASE WHEN (( SELECT count(*) AS count FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = vnd_orcamento_item.sequencia)) = 0 THEN '0'::text WHEN (( SELECT count(*) AS count FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = vnd_orcamento_item.sequencia)) > 1 THEN 'CONJUNTO'::text ELSE ( SELECT (vnd_orcamento_item_ficha_tecnica_embalagem.ficha_tecnica || '-'::text) || vnd_orcamento_item_ficha_tecnica_embalagem.ficha_tecnica_seq FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = vnd_orcamento_item.sequencia) END AS ficha_tecnica, vnd_orcamento_item_entrega.data_previsao_entrega AS data_faturamento, vnd_orcamento_item_entrega.data_previsao_entrega AS data_previsao, vnd_orcamento.cliente, prod_acabado.fornecedor, vnd_orcamento_item.vendedor, CASE WHEN (( SELECT count(*) AS count FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = vnd_orcamento_item.sequencia)) = 0 THEN '0'::text WHEN (( SELECT count(*) AS count FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = vnd_orcamento_item.sequencia)) > 1 THEN 'CONJUNTO'::text ELSE ( SELECT vnd_orcamento_item_ficha_tecnica_embalagem.materia_prima::text AS materia_prima FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = vnd_orcamento_item.sequencia) END AS materia_prima, prod_acabado.codigo AS produto_acabado, 0.000000 AS faturado_tot_peso_kg, 0.000000 AS faturado_vlr_total, 0.000000 AS faturado_qtd_item, 0.000000 AS faturado_med_preco_kg, COALESCE(( SELECT sum(vnd_orcamento_item_ficha_tecnica_embalagem.total_peso_kg) AS sum FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = vnd_orcamento_item.sequencia), 0.000000) AS faturar_tot_peso_kg, vnd_orcamento_item.vlr_pago AS faturar_vlr_total, vnd_orcamento_item.quantidade AS faturar_qtd_item, round( CASE WHEN COALESCE(( SELECT sum(vnd_orcamento_item_ficha_tecnica_embalagem.total_peso_kg) AS sum FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = vnd_orcamento_item.sequencia), 0.000000) = 0::numeric THEN 0.000000 ELSE COALESCE(( SELECT sum(vnd_orcamento_item_ficha_tecnica_embalagem.total_peso_kg) AS sum FROM vnd_orcamento_item_ficha_tecnica_embalagem WHERE vnd_orcamento_item_ficha_tecnica_embalagem.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_ficha_tecnica_embalagem.orcamento_seq = vnd_orcamento_item.sequencia), 0.000000) / vnd_orcamento_item.quantidade / (vnd_orcamento_item.vlr_pago / vnd_orcamento_item.quantidade) END, 6) AS faturar_med_preco_kg 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 pro_produto prod_acabado ON prod_acabado.filial_pro = vnd_orcamento_item.filial_orc AND prod_acabado.codigo = vnd_orcamento_item.produto LEFT JOIN vnd_orcamento_item_entrega ON vnd_orcamento_item_entrega.filial_orc = vnd_orcamento_item.filial_orc AND vnd_orcamento_item_entrega.orcamento = vnd_orcamento_item.orcamento AND vnd_orcamento_item_entrega.produto = vnd_orcamento_item.produto AND vnd_orcamento_item_entrega.sequencia = vnd_orcamento_item.sequencia WHERE vnd_orcamento.situacao::text <> 'C'::text AND vnd_orcamento.gerou_nf_caixa::text = 'N'::text AND vnd_orcamento.tipo::text <> 'O'::text ) tabaux; ALTER TABLE public.view_vnd_padrao_ficha_tecnica_embalagem OWNER TO postgres; COMMENT ON VIEW public.view_vnd_padrao_ficha_tecnica_embalagem IS 'View Padrão de Vendas / Ficha Técnica - Embalagem';