DROP FUNCTION fnc_busca_vendas_integracao_esphera; CREATE OR REPLACE VIEW public.view_vnd_busca_vendas_integracao_esphera AS SELECT id_venda, valor_total, data_hora, cancelamento, devolucao FROM ( (SELECT vnd_orcamento.orcamento as id_venda, vnd_orcamento.vlr_total_liquido as valor_total, COALESCE((SELECT MAX(flx_mov_financ.data)||' '||MAX(flx_mov_financ.hora) FROM flx_mov_financ WHERE vnd_orcamento.filial_orc = flx_mov_financ.filial_pedido AND vnd_orcamento.orcamento = flx_mov_financ.pedido ), vnd_orcamento.data_passou_cx||' 00:00:00') as data_hora, false as cancelamento, false as devolucao FROM vnd_orcamento 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_orcamento.situacao ='A' AND vnd_orcamento.tipo IN('P', 'E') AND vnd_orcamento.venda_sn = 'S' AND bas_tipo_pagto.soma_estatist = 'S' AND COALESCE((SELECT MAX(flx_mov_financ.data) FROM flx_mov_financ WHERE vnd_orcamento.filial_orc = flx_mov_financ.filial_pedido AND vnd_orcamento.orcamento = flx_mov_financ.pedido ), vnd_orcamento.data_passou_cx) >= (CURRENT_DATE - 90) GROUP BY vnd_orcamento.filial_orc, vnd_orcamento.orcamento, vnd_orcamento.vlr_total_liquido ORDER BY vnd_orcamento.orcamento) UNION ALL (SELECT orcamento as id_venda, vlr_restante as valor_total, data_emissao||' '||hora_emissao as data_hora, false as cancelamento, true as devolucao FROM gar_troca_devoluc WHERE situacao != 'C' AND data_emissao >= (CURRENT_DATE - 90) ) UNION ALL (SELECT vnd_cancela_orcamento.orcamento as id_venda, vnd_orcamento.vlr_total_liquido as valor_total, vnd_cancela_orcamento.data_cancelamento||' '||vnd_cancela_orcamento.hora_cancelamento as data_hora, true as cancelamento, false as devolucao FROM vnd_cancela_orcamento INNER JOIN vnd_orcamento ON vnd_cancela_orcamento.filial_orc = vnd_orcamento.filial_orc AND vnd_cancela_orcamento.orcamento = vnd_orcamento.orcamento WHERE vnd_orcamento.situacao = 'C' AND vnd_orcamento.tipo != 'O' AND vnd_cancela_orcamento.data_cancelamento >= (CURRENT_DATE - 90) ))as view_vnd_integracao ORDER BY id_venda, data_hora;