Skip to content

Instantly share code, notes, and snippets.

@rodrigorrch
Last active November 27, 2024 02:33
Show Gist options
  • Save rodrigorrch/266168e2237b281d531a03502c21850d to your computer and use it in GitHub Desktop.
Save rodrigorrch/266168e2237b281d531a03502c21850d to your computer and use it in GitHub Desktop.

Fluxo de Conciliar Liquidação

O fluxo acontece no ms-slc

Flow

O fluxo começa no worker (conciliation_receivables_worker) que é executada todos os dias iteis as 17h.

Primeiro pegamos todos os recebiveis elegiveis, que passam por este filtro

  • kind: credit
  • liquidation_number: nil
  • arrangements: Array de arrangements habilitados
  • acquirer_id: Adiquirentes que não são da BLU
  • release_at: Menor ou igual a data atual
  • status: Todos menos o not_constituted

Com a lista de recebiveis, vamos iterar uma por uma (em batch). Aqui fazemos uma associação com a tabela liquidation_report_transaction para assim termos a relação entre as tabelas receivable e liquidation_report_transaction Para fazer esta relação pesquisamos da seguinte forma

Receivable liquidation_report_transaction
release_at payment_at
arrangement arrangement_code
client.cpf_cnpj client_document_number

Detalhe para o release_at do receivable:

  • Se a data cair no FDS ou em algum feriado a data deve pegar o priemrio dia util.

Sabendo esta relação entre eles, é atualizado os campos:

  • liquidation_number da tabela receivables com base no liquidation_number da tabela liquidation_report_transaction
  • receivable_id da tabela liquidation_report_transaction com base no id da tabela receivables

E então envia um evento (slc_receivable_liquidation_conciliated) para o ms-cerc contendo os dados receivable_id e payment_value

ms-cerc

Imgur

Aqui ao receber o evento ele pega o contrato associado ao receivable e verifica se ele é gestão de colateral. Se for calcula o novo valor do contrato. E então inicia 2 fluxos: 1 - Atualizar contrato na CERC 2 - Atualizar external bailout

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment