CREATE VIEW VIEW_FIN_LANCAMENTO_RECEBIDO(
    ID,
    ID_LANCAMENTO_RECEBER,
    QUANTIDADE_PARCELA,
    VALOR_LANCAMENTO,
    DATA_LANCAMENTO,
    NUMERO_DOCUMENTO,
    ID_PARCELA_RECEBER,
    NUMERO_PARCELA,
    DATA_VENCIMENTO,
    VALOR_PARCELA,
    TAXA_JURO,
    VALOR_JURO,
    TAXA_MULTA,
    VALOR_MULTA,
    TAXA_DESCONTO,
    VALOR_DESCONTO,
    SIGLA_DOCUMENTO,
    ID_CLIENTE,
    NOME_CLIENTE,
    SITUACAO_PARCELA,
    DESCRICAO_SITUACAO_PARCELA,
    ID_CONTA_CAIXA,
    NOME_CONTA_CAIXA,
    BOLETO_NOSSO_NUMERO,
    DATA_RECEBIMENTO, 
    VALOR_RECEBIDO,
    PARCELA_RECEBER
)
AS
select
  CAST( CONCAT(LR.ID,PR.ID) as UNSIGNED) as ID, LR.ID as ID_LANCAMENTO_RECEBER, LR.QUANTIDADE_PARCELA, LR.VALOR_A_RECEBER AS VALOR_LANCAMENTO, LR.DATA_LANCAMENTO, LR.NUMERO_DOCUMENTO,
  PR.ID as ID_PARCELA_RECEBER, PR.NUMERO_PARCELA, PR.DATA_VENCIMENTO, PR.VALOR AS VALOR_PARCELA, PR.TAXA_JURO, PR.VALOR_JURO, PR.TAXA_MULTA, PR.VALOR_MULTA, PR.TAXA_DESCONTO, PR.VALOR_DESCONTO,
  DOC.SIGLA_DOCUMENTO,
  C.ID as ID_CLIENTE, P.NOME as NOME_CLIENTE,
  S.SITUACAO as SITUACAO_PARCELA, S.DESCRICAO as DESCRICAO_SITUACAO_PARCELA,
  CC.ID AS ID_CONTA_CAIXA, CC.NOME AS NOME_CONTA_CAIXA, PR.BOLETO_NOSSO_NUMERO,
  PB.DATA_RECEBIMENTO, PB.VALOR_RECEBIDO
, 
CASE
WHEN PB.VALOR_RECEBIDO > 0 THEN
(
SELECT SUM(COALESCE(PCR.VALOR_RECEBIDO,0))
FROM fin_parcela_recebimento PCR
WHERE PCR.ID_FIN_PARCELA_RECEBER = ID_PARCELA_RECEBER AND PCR.DATA_RECEBIMENTO <= DATA_RECEBIMENTO
) 
ELSE
  PR.VALOR
END AS VALOR_LIQUIDO
from
  FIN_LANCAMENTO_RECEBER LR, FIN_DOCUMENTO_ORIGEM DOC,
  PESSOA P, CLIENTE C, FIN_STATUS_PARCELA S, CONTA_CAIXA CC,
  FIN_PARCELA_RECEBER PR 
  LEFT OUTER JOIN FIN_PARCELA_RECEBIMENTO PB ON PR.ID = PB.ID_FIN_PARCELA_RECEBER
where 
  PR.ID_FIN_LANCAMENTO_RECEBER = LR.ID
and
  PR.ID_FIN_STATUS_PARCELA = S.ID
and
  LR.ID_FIN_DOCUMENTO_ORIGEM = DOC.ID
and
  LR.ID_CLIENTE = C.ID
and
  C.ID_PESSOA = P.ID
and
CASE
WHEN PB.VALOR_RECEBIDO > 0 THEN
  PB.ID_CONTA_CAIXA = CC.ID
ELSE
  PR.ID_CONTA_CAIXA = CC.ID
end
;