Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. DROP VIEW relatorios.view_divida_report;
  3.  
  4. CREATE VIEW relatorios.view_divida_report AS
  5.     SELECT
  6.         dil.id                                                        AS divida_id,
  7.         COALESCE(divida.valor_pago, boletospg.valor_pago, (0)::MONEY) AS valor_pago,
  8.         COALESCE(divida.data_pagamento, boletospg.data_pagamento)     AS data_pagamento
  9.        
  10.     FROM tb_divida dil
  11.         LEFT JOIN (
  12.             SELECT
  13.                 di.id                   AS divida_id,
  14.                 (SUM(pgi.valor))::MONEY AS valor_pago,
  15.                 date(max(pg.data_pagamento)) AS data_pagamento
  16.                
  17.             FROM tb_divida di
  18.                 JOIN tb_debito_auto da ON di.debito_id = da.debito_id
  19.                 JOIN tb_boletoitem_documento_auto bda ON bda.auto_id = da.auto_id
  20.                 JOIN tb_boleto_item bi ON bi.id = bda.boletoitem_id
  21.                 JOIN tb_boleto b ON b.id = bi.boleto_id
  22.                 JOIN tb_pagamento_item pgi ON pgi.boleto_item_id = bi.id
  23.                 JOIN tb_pagamento pg ON pg.id = pgi.pagamento_id
  24.             WHERE
  25.                 (b.data_cadastro >= DATE(di.data_inscricao) AND pg.data_pagamento >= DATE(di.data_inscricao))
  26.        
  27.             GROUP BY di.id
  28.         ) divida ON divida.divida_id = dil.id
  29.          
  30.         LEFT JOIN (
  31.             SELECT DISTINCT
  32.                 di.id                   AS divida_id,
  33.                 (SUM(pgi.valor))::MONEY AS valor_pago,
  34.                 date(max(pg.data_pagamento)) AS data_pagamento
  35.                
  36.             FROM tb_divida di
  37.                 JOIN tb_debito de ON de.id = di.debito_id
  38.                 JOIN tb_parcelamento p ON p.debito_id = de.id
  39.                 JOIN tb_parcela pc ON pc.parcelamento_id = p.id
  40.                 JOIN tb_boleto b ON b.id = pc.boleto_id
  41.                 JOIN tb_pagamento pg ON pg.boleto_id = b.id
  42.                 JOIN tb_pagamento_item pgi ON pgi.pagamento_id = pg.id
  43.        
  44.             GROUP BY di.id
  45.         ) boletospg ON boletospg.divida_id = dil.id
  46.        
  47.     ORDER BY dil.id;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement