{% macro progressbar_full(options) %} {% set max = options['max'] ?? 0 %} {% set current = options['current'] ?? 0 %} {% set open = options['open'] ?? null %} {% set reverseColors = options['reverseColors'] ?? false %} {% set formatter = options['format'] ?? null %} {% set currency = options['currency'] ?? null %} {% set percentDecimals = options['decimals'] ?? 1 %} {% set transPercentOpen = options['trans_percent_open'] ?? 'stats.percentUsedLeft' %} {% set transPercentSpent = options['trans_percent_spent'] ?? 'stats.percentUsed' %} {% if formatter == 'duration' %} {% set currentFormatted = current|duration %} {% set maxFormatted = max|duration %} {% set openFormatted = open is not null ? open|duration : null %} {% elseif formatter == 'money' and currency is not null %} {% set currentFormatted = current|money(currency) %} {% set maxFormatted = max|money(currency) %} {% set openFormatted = open is not null ? open|money(currency) : null %} {% else %} {% set currentFormatted = current %} {% set maxFormatted = max %} {% set openFormatted = open is not null ? open : null %} {% endif %} {% set percentReached = 0 %} {% if max > 0 %} {% set percentReached = (current / (max / 100)) %} {% endif %} {% set width = percentReached|number_format(1, '.', '') %} {% if width > 100 %} {% set width = 100 %} {% endif %}
{{ currentFormatted }} {{ maxFormatted }}
{% if open is not null and open > 0 %} {{ transPercentOpen|trans({'%percent%': percentReached|number_format(percentDecimals), '%left%': openFormatted}) }} {% else %} {{ transPercentSpent|trans({'%percent%': percentReached|number_format(percentDecimals)}) }} {% endif %}
{% endmacro %} {% macro progressbar(max, current, title, subTitle, reverseColors) %} {% set percentReached = 0 %} {% if max > 0 %} {% set percentReached = (current / (max / 100)) %} {% endif %} {% set width = percentReached|number_format(1, '.', '') %} {% if width > 100 %} {% set width = 100 %} {% endif %}
{{ title }} {% if percentReached >= 0 and subTitle is not empty %} – {{ percentReached|number_format(2) }}%{% endif %} {% if percentReached >= 0 and subTitle is empty %} {{ percentReached|number_format(2) }}% {% elseif subTitle is not empty %} {{ subTitle }} {% endif %}
{% endmacro %} {% macro progressbar_small(max, current, leftValue, leftFormatted, reverseColors) %} {% set percentReached = 0 %} {% if max > 0 %} {% set percentReached = (current / (max / 100)) %} {% endif %} {% set width = percentReached|number_format(1, '.', '') %} {% if width > 100 %} {% set width = 100 %} {% endif %}
{% if leftValue is not null and leftValue > 0 %} {{ 'stats.percentUsedLeft'|trans({'%percent%': percentReached|number_format(0), '%left%': leftFormatted}) }} {% else %} {{ 'stats.percentUsed'|trans({'%percent%': percentReached|number_format(0)}) }} {% endif %}
{% endmacro %} {# @param \App\Model\BudgetStatisticModelInterface budgetStatisticModel @param string currency #} {% macro progressbar_budget(budgetStatisticModel, currency) %} {% if budgetStatisticModel.hasBudget() %} {% set options = { 'max': budgetStatisticModel.getBudget(), 'current': budgetStatisticModel.getBudgetSpent(), 'open': (budgetStatisticModel.getBudgetOpen()), 'format': 'money', 'currency': currency, } %} {% if budgetStatisticModel.isMonthlyBudget() %} {% set options = options|merge({ 'trans_percent_open': 'stats.percentUsedLeft_month', 'trans_percent_spent': 'stats.percentUsed_month', }) %} {% endif %} {{ _self.progressbar_full(options) }} {% endif %} {% endmacro %} {# @param \App\Model\BudgetStatisticModelInterface budgetStatisticModel #} {% macro progressbar_timebudget(budgetStatisticModel) %} {% if budgetStatisticModel.hasTimeBudget() %} {% set options = { 'max': budgetStatisticModel.getTimeBudget(), 'current': budgetStatisticModel.getTimeBudgetSpent(), 'open': (budgetStatisticModel.getTimeBudgetOpen()), 'format': 'duration', } %} {% if budgetStatisticModel.isMonthlyBudget() %} {% set options = options|merge({ 'trans_percent_open': 'stats.percentUsedLeft_month', 'trans_percent_spent': 'stats.percentUsed_month', }) %} {% endif %} {{ _self.progressbar_full(options) }} {% endif %} {% endmacro %}