{% set timeBudgetVisible = is_granted('time', entity) %} {% set durationTrans = entity.isMonthlyBudget() ? 'stats.durationMonth' : 'stats.workingTime' %} {% if timeBudgetVisible %} {% embed '@theme/embeds/card.html.twig' %} {% import "macros/progressbar.html.twig" as progress %} {% import "macros/widgets.html.twig" as widgets %} {% block box_title %} {{ 'timeBudget'|trans }} {% if entity.isMonthlyBudget() %}({{ 'budgetType_month'|trans }}){% endif %} {% endblock %} {% block box_body_class %}p-0{% endblock %} {% block box_attributes %}id="time_budget_box"{% endblock %} {% block box_body %}
{{ 'timeBudget'|trans }} | {% if entity.timeBudget > 0 %} {{ entity.timeBudget|duration }} {% else %} - {% endif %} |
{{ durationTrans|trans }} | {{ stats.duration|duration }} |
{{ 'billable'|trans }} | {{ stats.durationBillable|duration }} |
{% if totalPercentReached < 100 %} {{ 'stats.percentUsedLeft'|trans({'%percent%': totalPercentReached|number_format(2), '%left%': (entity.timeBudget - stats.durationBillable)|duration}) }} {% else %} {{ 'stats.percentUsed'|trans({'%percent%': totalPercentReached|number_format(2)}) }} {% endif %} |
---|
{{ 'budget'|trans }} | {% if entity.budget > 0 %} {{ entity.budget|money(currency) }} {% else %} - {% endif %} |
{{ 'revenue'|trans }} | {{ stats.rateBillable|money(currency) }} |
{{ 'costs'|trans }} | {{ stats.internalRate|money(currency) }} |
{{ 'profit'|trans }} ({{ 'revenue'|trans }} - {{ 'costs'|trans }}) | {{ revenueTotal|money(currency) }} |
{{ 'hourlyRate'|trans }} ({{ 'revenue'|trans }} / {{ durationTrans|trans }}) | {{ realHourlyRate|money(currency) }} |
{{ 'hourlyRate'|trans }} ({{ 'profit'|trans }} / {{ durationTrans|trans }}) | {{ revenueHourlyRate|money(currency) }} |
{% if totalPercentReached < 100 %} {{ 'stats.percentUsedLeft'|trans({'%percent%': totalPercentReached|number_format(2), '%left%': (entity.budget - stats.rateBillable)|money(currency)}) }} {% else %} {{ 'stats.percentUsed'|trans({'%percent%': totalPercentReached|number_format(2)}) }} {% endif %} |
---|