Pular para o conteúdo principal
Este exemplo mostra como estruturar um Relatório Financeiro Analítico focado na análise de transações por conta, em formato HTML. O relatório inclui:
  • Informações de Organização e Ledger.
  • Detalhamento por conta.
  • Lista detalhada de operações.

Código do template


Detalhamento do código


Informações de Organização e Ledger

<p><strong>Data de Geração:</strong> {% date_time "dd/MM/YYYY HH:mm" %}</p> Esta função aplica a data e hora em que o template é renderizado, utilizando o formato dd/MM/YYYY HH:mm. <p><strong>Organização:</strong> {{ midaz_onboarding.organization.0.legal_name }}</p> Esta linha renderiza a razão social da primeira Organização associada aos dados de onboarding.
  • midaz_onboarding.organization: a lista de Organizações no sistema.
  • 0: busca o primeiro item da lista.
  • legal_name: busca o valor do campo legal_name.
<p><strong>Livro-Razão:</strong> {{ midaz_onboarding.ledger.0.name }}</p> Esta linha renderiza o nome do primeiro Ledger associado aos dados de onboarding.
  • midaz_onboarding.ledger: a lista de Ledgers no sistema.
  • 0: busca o primeiro item da lista.
  • name: busca o valor do campo name.

Iterando pelas contas

{% for account in midaz_onboarding.account %} Este loop percorre cada conta na lista midaz_onboarding.account.
  • Esta lista representa todas as contas vinculadas a um cliente ou associadas a um fluxo de onboarding.
  • Para cada iteração, cria um novo escopo onde account se refere a um item específico dessa lista.
{% with balance = filter(midaz_transaction.balance, "account_id", account.id)[0] %} Dentro do loop, esta linha:
  • Usa a função filter para encontrar um saldo na lista midaz_transaction.balance onde o account_id corresponde ao ID da conta atual.
  • O [0] obtém o primeiro saldo correspondente (assumindo que há apenas um por conta).
  • O resultado é armazenado em uma variável temporária chamada balance, com escopo apenas dentro deste bloco.

Informações da conta

<div class="section-title">Conta: {{ account.alias }}</div> Exibe um título de seção com o alias da conta (um nome amigável ou legível para a conta). <p><strong>ID:</strong> {{ account.id }}</p> Mostra o identificador único da conta. <p><strong>Moeda:</strong> {{ balance.asset_code }}</p> Exibe o código da moeda (como “BRL” ou “USD”) associado ao saldo da conta. <p><strong>Saldo Atual:</strong> {{ balance.available }} Mostra o saldo disponível atual.

Informações das operações

{% for operation in midaz_transaction.operation %} Este loop percorre todas as operações da lista midaz_transaction.operation. {% if operation.account_id == account.id %} Esta linha verifica se a operação atual está relacionada à conta atual no loop externo (do bloco anterior) e só prossegue se:
  • O account_id da operação corresponder ao account.id em foco.
{% set original_amount = operation.amount %} Esta linha define uma variável temporária chamada original_amount e atribui a ela o valor do campo amount no objeto da operação. {% set discount_amount = original_amount * 0.03 %} Esta linha calcula um desconto de 3% sobre o valor original.
  • O resultado é salvo como discount_amount.
{% set final_amount = original_amount - discount_amount %} Esta linha subtrai o desconto do valor original.
  • O resultado final é armazenado em final_amount, que pode ser renderizado posteriormente.

Colunas da tabela

Este bloco gera uma linha de tabela limpa e legível para cada operação, incluindo as seguintes informações: <td>{{ operation.id }}</td> Identificador único da operação. <td>{{ operation.type }}</td> Tipo da operação, como credit ou debit. <td>{{ original_amount|floatformat:2 }}</td> Mostra o valor original (sem ajuste), formatado com 2 casas decimais. <td>{{ discount_amount|floatformat:2 }}</td> Exibe o desconto calculado, também com 2 casas decimais. <td>{{ final_amount|floatformat:2 }}</td> Mostra o valor final após aplicar o desconto de 3%, devidamente formatado. <td>{{ operation.description }}</td> Renderiza a descrição ou rótulo da operação, como “Transferência para poupança”.

Rodapé do relatório

Esta linha renderiza um rodapé na parte inferior do documento, indicando que o conteúdo foi gerado automaticamente usando o Reporter da Lerian.
  • Também inclui o número do documento legal da primeira organização vinculada aos dados de onboarding, obtido dinamicamente usando o placeholder {{ midaz_onboarding.organization.0.legal_document }}.

Saída do template


Saída renderizada


Exemplo de relatório financeiro renderizado a partir do código do modelo HTML mostrado acima

Figura 1. Um exemplo de relatório financeiro renderizado a partir do código HTML do exemplo.