{% set infotext = {
'green': "The last entry is a passing balance check.",
'red': "The last entry is a failing balance check.",
'yellow': "The last entry is not a balance check.",
} %}
{% macro balance_directive(ledger, account) %}
{% for position in (ledger.all_root_account|get_or_create(account)).balance|units %}
{{ today() }} balance {{ account.ljust(28) }} {% with num=position.units.number|string %}{{ num.rjust(15) }}{% endwith %} {{ position.units.currency }}
{% endfor %}
{% endmacro %}
{% macro indicator(ledger, account) %}
{% set status=ledger.account_uptodate_status(account) %}
{% set balance=balance_directive(ledger, account) %}
{% if status %}
{% endif %}
{% endmacro %}
{% macro last_account_activity(ledger, account_name) %}
{% set last_entry = ledger.last_entry(account_name) %}
{% set last_account_activity = (today() - last_entry.date).days if last_entry else 0 %}
{% if last_account_activity > ledger.fava_options.uptodate_indicator_grey_lookback_days %}
{% endif %}
{% endmacro %}
{% macro account_name(ledger, account_name, last_segment=False) %}
{{- account_name.split(':')[-1] if last_segment else account_name -}}
{% if account_name and ledger.accounts[account_name].meta.get('fava-uptodate-indication') %}
{{ indicator(ledger, account_name) }}
{{ last_account_activity(ledger, account_name) }}
{% endif %}
{% endmacro %}
{% macro account_name_header(ledger, account_name) -%}
{%- set parts = account_name.split(':') -%}
{%- for part in parts -%}
{%- if loop.last -%}
{{ part }}
{%- else -%}
{%- set name = ':'.join(parts[:loop.index]) -%}
{{ part }}:
{%- endif -%}
{%- endfor -%}
{%- if account_name and ledger.accounts[account_name].meta.get('fava-uptodate-indication') -%}
{{ indicator(ledger, account_name) }}
{{ last_account_activity(ledger, account_name) }}
{%- endif -%}
{%- set last_entry = ledger.last_entry(account_name) -%}
{%- if last_entry -%}
(Last entry: {{ last_entry.date }})
{%- endif -%}
{%- endmacro %}