Skip to main content
Este ejemplo muestra cómo estructurar un informe financiero analítico enfocado en el análisis de transacciones a nivel de cuenta, en formato HTML. El informe incluye:
  • Información de la organización y del ledger.
  • Desglose por cuenta.
  • Lista detallada de operaciones.

Código de la plantilla


Desglose del código


Información de la organización y del ledger

<p><strong>Generation Date:</strong> {% date_time "dd/MM/YYYY HH:mm" %}</p> Esta función aplica la fecha y la hora en el momento del renderizado, en el formato dd/MM/YYYY HH:mm. <p><strong>Organization:</strong> {{ midaz_onboarding.organization.0.legal_name }}</p> Esta línea renderiza el nombre legal de la primera organización asociada con los datos de onboarding.
  • midaz_onboarding.organization: la lista de organizaciones en el sistema.
  • 0: obtiene el primer elemento de la lista.
  • legal_name: obtiene el valor del campo legal_name.
<p><strong>Ledger:</strong> {{ midaz_onboarding.ledger.0.name }}</p> Esta línea renderiza el nombre del primer ledger asociado con los datos de onboarding.
  • midaz_onboarding.ledger: la lista de ledgers en el sistema.
  • 0: obtiene el primer elemento de la lista.
  • name: obtiene el valor del campo name.

Iteración sobre las cuentas

{% for account in midaz_onboarding.account %} Este bucle recorre cada cuenta en la lista midaz_onboardTing.account.
  • Esta lista representa todas las cuentas vinculadas a un cliente o asociadas con un flujo de onboarding.
  • En cada iteración, crea un nuevo scope donde account hace referencia a un elemento específico de esa lista.
{% with balance = filter(midaz_transaction.balance, "account_id", account.id)[0] %} Dentro del bucle, esta línea:
  • Usa la función filter para buscar un saldo en la lista midaz_transaction.balance donde account_id coincide con el ID de la cuenta actual.
  • El [0] toma el primer saldo coincidente (asumiendo que hay solo uno por cuenta).
  • El resultado se guarda en una variable temporal llamada balance, con scope limitado a este bloque.

Información de la cuenta

<div class="section-title">Account: {{ account.alias }}</div> Muestra un título de sección con el alias de la cuenta (un nombre amigable o legible para la cuenta). <p><strong>ID:</strong> {{ account.id }}</p> Muestra el identificador único de la cuenta. <p><strong>Currency:</strong> {{ balance.asset_code }}</p> Muestra el código de moneda (como “BRL” o “USD”) asociado con el saldo de la cuenta. <p><strong>Current Balance:</strong> {{ balance.available }} Muestra el saldo disponible actual.

Información de las operaciones

{% for operation in midaz_transaction.operation %} Esto recorre todas las operaciones de la lista midaz_transaction.operation. {% if operation.account_id == account.id %} Esta línea verifica si la operación actual está relacionada con la cuenta actual del bucle externo (del bloque anterior). Continúa solo si:
  • El account_id de la operación coincide con el account.id en foco.
{% set original_amount = operation.amount %} Esta línea define una variable temporal llamada original_amount y le asigna el valor del campo amount del objeto de la operación. {% set discount_amount = original_amount * 0.03 %} Esta línea calcula un descuento del 3% sobre el monto original.
  • La línea guarda el resultado como discount_amount.
{% set final_amount = original_amount - discount_amount %} Esta línea resta el descuento del monto original.
  • La línea almacena el resultado final en final_amount, que puedes renderizar más adelante.

Columnas de la tabla

Este bloque genera una fila de tabla para cada operación, con la siguiente información: <td>{{ operation.id }}</td> Identificador único de la operación. <td>{{ operation.type }}</td> Tipo de operación, como credit o debit. <td>{{ original_amount|floatformat:2 }}</td> Muestra el monto original (sin ajustar), con formato de 2 decimales. <td>{{ discount_amount|floatformat:2 }}</td> Muestra el descuento calculado, también con 2 decimales. <td>{{ final_amount|floatformat:2 }}</td> Muestra el monto final después de aplicar el descuento del 3%. <td>{{ operation.description }}</td> Renderiza la descripción o etiqueta de la operación, como “Transfer to savings”.

Pie del informe

Esta línea renderiza un pie de página en la parte inferior del documento. El pie de página indica que Reporter de Lerian generó el contenido automáticamente.
  • También incluye el número de documento legal de la primera organización vinculada a los datos de onboarding, obtenido dinámicamente mediante el placeholder {{ midaz_onboarding.organization.0.legal_document }}.

Salida de la plantilla


Resultado renderizado


Ejemplo de informe financiero renderizado a partir del código de la plantilla HTML mostrado arriba

Figura 1. Un ejemplo de informe financiero renderizado a partir del código HTML del ejemplo.