Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DROP VIEW relatorios.view_divida_report;
- CREATE VIEW relatorios.view_divida_report AS
- SELECT
- dil.id AS divida_id,
- COALESCE(divida.valor_pago, boletospg.valor_pago, (0)::MONEY) AS valor_pago,
- COALESCE(divida.data_pagamento, boletospg.data_pagamento) AS data_pagamento
- FROM tb_divida dil
- LEFT JOIN (
- SELECT
- di.id AS divida_id,
- (SUM(pgi.valor))::MONEY AS valor_pago,
- date(max(pg.data_pagamento)) AS data_pagamento
- FROM tb_divida di
- JOIN tb_debito_auto da ON di.debito_id = da.debito_id
- JOIN tb_boletoitem_documento_auto bda ON bda.auto_id = da.auto_id
- JOIN tb_boleto_item bi ON bi.id = bda.boletoitem_id
- JOIN tb_boleto b ON b.id = bi.boleto_id
- JOIN tb_pagamento_item pgi ON pgi.boleto_item_id = bi.id
- JOIN tb_pagamento pg ON pg.id = pgi.pagamento_id
- WHERE
- (b.data_cadastro >= DATE(di.data_inscricao) AND pg.data_pagamento >= DATE(di.data_inscricao))
- GROUP BY di.id
- ) divida ON divida.divida_id = dil.id
- LEFT JOIN (
- SELECT DISTINCT
- di.id AS divida_id,
- (SUM(pgi.valor))::MONEY AS valor_pago,
- date(max(pg.data_pagamento)) AS data_pagamento
- FROM tb_divida di
- JOIN tb_debito de ON de.id = di.debito_id
- JOIN tb_parcelamento p ON p.debito_id = de.id
- JOIN tb_parcela pc ON pc.parcelamento_id = p.id
- JOIN tb_boleto b ON b.id = pc.boleto_id
- JOIN tb_pagamento pg ON pg.boleto_id = b.id
- JOIN tb_pagamento_item pgi ON pgi.pagamento_id = pg.id
- GROUP BY di.id
- ) boletospg ON boletospg.divida_id = dil.id
- ORDER BY dil.id;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement