- Detalles de Organización y Libro Contable.
- Descripción general a nivel de cuenta: saldo, moneda y alias.
- Desgloses de operaciones: monto original, descuento, monto final, estado, descripción y tipo.
- Resúmenes por cuenta: total de operaciones, valor total y promedio por operación.
Código de plantilla
Desglose del código
Información de Organización y Libro Contable
<Organization>{{ midaz_onboarding.organization.legal_name }} - CNPJ: {{ midaz_onboarding.organization.legal_document }}</Organization>
Muestra el nombre legal de la organización y el CNPJ correspondiente (ID fiscal brasileño).
{{ midaz_onboarding.organization.legal_name }}: recupera el nombre de la organización.{{ midaz_onboarding.legal_document }}: recupera el CNPJ.
<GenerationDate>{% date_time "dd/MM/YYYY HH:mm" %}</GenerationDate>
Esta función aplica la fecha y hora cuando se renderiza la plantilla, usando el formato dd/MM/YYYY HH:mm.
{%- with ledger = midaz_onboarding.ledger[0] %}
Crea una variable temporal que apunta al primer libro contable disponible. Esto mantiene el código más limpio y evita referencias repetitivas.
-: elimina espacios adicionales en el archivo renderizado.ledger: el nombre de la variable temporal.midaz_onboarding.ledger[0].name: apunta al primer libro contable disponible.
Iterando a través de las cuentas
{%- for account in midaz_onboarding.account %} … {% endfor %}
Recorre todas las cuentas vinculadas al usuario. Dado que la mayoría de los usuarios tienen más de una cuenta, esto te permite mostrar datos individuales para cada una.
midaz_onboarding.account: la lista completa de cuentas de usuario.{%- for account in midaz_onboarding.account %}: el bucle se ejecuta una vez por cuenta.
{%- with balance = filter(midaz_transaction.balance, "account_id", account.id)[0] %}
Define una variable llamada balance que contiene el saldo de la cuenta actual.
filter(): escanea a través demidaz_transaction.balancepara encontrar el que coincida con elaccount.id.[0]: toma la primera coincidencia.- El resultado se almacena en
balance.
<CurrentBalance> {{ balance.available }}</CurrentBalance>
Muestra el saldo disponible de la cuenta (balance.available).
Iterando sin {%with...%}
{%- for balance in midaz_transaction.balance %}
Recorre todos los saldos para encontrar el que coincide con la cuenta actual. Esta es una alternativa más explícita a filter().
midaz_transaction.balance: La lista de todos los saldos.{%- balance in midaz_transaction.balance %}: el bucle se ejecuta una vez por saldo.
{% if balance.account_id == account.id %}
Filtra los saldos para mostrar solo aquellos que coinciden con la cuenta actual que se está procesando.
- Si coinciden, se muestra el saldo.
Información de moneda
account.asset_code: inyecta dinámicamente el código de moneda.
Agrupando operaciones
<Operations>...</Operations>
Define la sección donde se listan todas las operaciones de una cuenta.
- Mantiene el reporte estructurado y fácil de escanear.
{%- for operation in midaz_transaction.operation %}
Recorre todas las operaciones en la transacción y muestra las operaciones que coinciden con la cuenta actual.
operation: representa la operación actual que es parte de la transacción actual.midaz_transaction.operation: la lista de todas las operaciones en la transacción.
{%- if operation.account_id == account.id %}
Asegura que solo se incluyan las operaciones relevantes para la cuenta actual.
- Si el
account_idde la operación es igual alaccount.idactual, se ejecutará el resto del bloque.
{%- set original_amount = operation.amount %}
Define el monto original y lo establece como una variable.
original_amount: el nombre de la variable.
{%- set discount_amount = original_amount * 0.03 %}
Define una variable y calcula un descuento del 3% sobre el monto original.
discount_amount: el nombre de la variable.original_amount * 0.03: aplica un descuento del 3% sobre el monto original.
{%- set final_amount = original_amount - discount_amount %}
Resta el descuento del monto original para obtener el valor final.
final_amount: variable que representa el valor final.original_amount - discount_amount: la operación de resta.
Bloque de operación
<Operation> contiene información detallada sobre la transacción. Estos campos ayudan a los usuarios a auditar y entender qué sucedió.
<OperationID>{{ operation.id }}</OperationID>
ID único de la operación.
<Description>{{ operation.description }}</Description>
Descripción breve de la operación.
<Type>{{ operation.type }}</Type>
Tipo de operación (ej., crédito, débito, ajuste).
<Route>{{ operation.route }}</Route>
Entrada de ruta de operación asociada.
<OriginalAmount>{{ original_amount }}</OriginalAmount>
Monto original antes de cualquier ajuste.
<DiscountAmount>{{ discount_amount }}</DiscountAmount>
Valor del descuento aplicado.
<FinalAmountWithDiscount>{{ final_amount }}</FinalAmountWithDiscount>
Monto final después del descuento.
<Currency>{{ operation.asset_code }}</Currency>
La moneda utilizada para la operación.
<Status>{{ operation.status }}</Status>
Estado de la operación (ej., Aprobado, pendiente).
Bloque de resumen de cuenta
{% count_by midaz_transaction.operation if account_id == account.id %}
Cuenta el número de operaciones asociadas con tu cuenta y ayuda a entender el volumen de transacciones para el período de reporte.
- La función
count_byrecorremidaz_transaction.operationy suma cuántas operaciones tienen el mismoaccount_idque la cuenta actual.
{% sum_by midaz_transaction.operation by "amount" if account_id == account.id %}
Suma el valor total de todas las operaciones para esta cuenta, y genera el resultado usando dos decimales.
sum_byrecorre las transacciones filtradas poraccount_id.- Suma los campos
amount.
{% avg_by midaz_transaction.operation by "amount" if account_id == account.id %}
Calcula el valor promedio de operación para esta cuenta. Útil para detectar patrones de gasto o valores atípicos.
avg_byaplica el cálculo de promedio a los valores de monto.- Solo considera operaciones para la cuenta actual.

