{% set showUserColumn = showUserColumn ?? true %} {% set showInternalRate = showInternalRate ?? false %} {% set showRateColumn = showRateColumn ?? is_granted('view_rate_other_timesheet') %} {% set showHourlyRateColumn = showRateColumn and (showHourlyRateColumn ?? false) %} {% set showSummaryHourlyRate = showRateColumn and (showSummaryHourlyRate ?? false) %} {% set showRateBudget = showRateBudget ?? false %} {% set showTimeBudget = showTimeBudget ?? false %} {% set showCustomerSummary = showCustomerSummary ?? true %} {% set showTotalSummary = showTotalSummary ?? true %} {% set showDateTimeShort = showDateTimeShort ?? false %} {% set now = create_date('now', app.user) %} {% set decimal = decimal ?? false %} {# this is only triggered, if a user exports from his personal timesheet screen #} {% if query is defined and query.user is not null %} {% set showUserColumn = false %} {# if exporting via the admin screen, users without view_rate_own_timesheet might still see their own rates #} {% set showRateColumn = is_granted('view_rate_own_timesheet') %} {% endif %} {% set summaryColumns = ['customer', 'project'] %} {% if showTimeBudget %} {% set summaryColumns = summaryColumns|merge(['timeBudget']) %} {% endif %} {% if showRateBudget %} {% set summaryColumns = summaryColumns|merge(['budget']) %} {% endif %} {% if showSummaryHourlyRate %} {% set summaryColumns = summaryColumns|merge(['hourlyRate']) %} {% endif %} {% set summaryColumns = summaryColumns|merge(['duration']) %} {% if showRateColumn %} {% if showInternalRate %} {% set summaryColumns = summaryColumns|merge(['internalRate']) %} {% endif %} {% set summaryColumns = summaryColumns|merge(['rate']) %} {% endif %}
{{ 'export.period'|trans }}: {{ query.begin|date_short }} - {{ query.end|date_short }}
{% endif %}{{ 'customer'|trans }} | {% elseif summaryColumn == 'project' %}{{ 'project'|trans }} | {% else %}{{ summaryColumn|trans }} | {% endif %} {% endfor %}|||||
---|---|---|---|---|---|---|---|
{{ customerDuration|duration(decimal) }} | {% elseif summaryColumn == 'internalRate' %}{{ customerInternalRate|money(customerCurrency) }} | {% elseif summaryColumn == 'rate' %}{{ customerRate|money(customerCurrency) }} | {% else %}{% endif %} {% endfor %} | ||||
{{ summary.customer }} | {% elseif summaryColumn == 'project' %}{{ summary.project }} | {% elseif summaryColumn == 'timeBudget' %}{% if budgets[id] is defined and budgets[id].time_left > 0 %} {{ budgets[id].time_left|duration(decimal) }} {% endif %} | {% elseif summaryColumn == 'budget' %}{% if budgets[id] is defined and budgets[id].money_left > 0 %} {{ budgets[id].money_left|money(summary.currency) }} {% endif %} | {% elseif summaryColumn == 'hourlyRate' %} {% set summaryHourlyRate = summary.duration/3600 %}{{ summaryHourlyRate > 0 ? (summary.rate/summaryHourlyRate)|money(summary.currency) : '' }} | {% elseif summaryColumn == 'duration' %}{{ summary.duration|duration(decimal) }} | {% elseif summaryColumn == 'internalRate' %}{{ summary.rate_internal|money(summary.currency) }} | {% elseif summaryColumn == 'rate' %}{{ summary.rate|money(summary.currency) }} | {% endif %} {% endfor %}
{{ customerDuration|duration(decimal) }} | {% elseif summaryColumn == 'internalRate' %}{{ customerInternalRate|money(customerCurrency) }} | {% elseif summaryColumn == 'rate' %}{{ customerRate|money(customerCurrency) }} | {% else %}{% endif %} {% endfor %} | ||||
{{ 'sum.total'|trans }} | {% for summaryColumn in summaryColumns %} {% if summaryColumn == 'duration' %}{{ totalDuration|duration(decimal) }} | {% elseif summaryColumn == 'internalRate' %}{{ totalInternalRate|money(customerCurrency) }} | {% elseif summaryColumn == 'rate' %}{{ totalRate|money(customerCurrency) }} | {% elseif summaryColumn not in ['customer', 'project'] %}{% endif %} {% endfor %} |
{{ 'date'|trans }} | {% if showUserColumn %}{{ 'user'|trans }} | {% endif %}{{ 'description'|trans }} | {% if showHourlyRateColumn %}{{ 'hourlyRate'|trans }} | {% endif %}{{ 'duration'|trans }} | {% if showRateColumn %} {% if showInternalRate %}{{ 'internalRate'|trans }} | {% endif %}{{ 'rate'|trans }} | {% endif %}||
---|---|---|---|---|---|---|---|---|
{% block date_begin %}{% if not showDateTimeShort %}{{ entry.begin|date_time }}{% else %}{{ entry.begin|date_short }}{% endif %}{% endblock %}
{% if entry.end %}
{% block date_end %}{% if not showDateTimeShort %} {{ entry.end|date_time }}{% endif %}{% endblock %} {% endif %} |
{% if showUserColumn %}
{{ entry.user.displayName }} | {% endif %}
{% block description %}
{{ entry.project.customer.name }} - {{ entry.project.name }}{% if entry.activity is not null %} - {{ entry.activity.name }}{% endif %}
{% if entry.description is not empty %}
{{ entry.description|desc2html }} {% endif %} {% endblock %} |
{% if showHourlyRateColumn %}
{% if entry.fixedRate %} - {% else %} {{ entry.hourlyRate|money(entryCurrency) }} {% endif %} | {% endif %}{% if entry.duration == 0 %} - {% else %} {{ entry.duration|duration(decimal) }} {% endif %} | {% if showRateColumn %} {# no check for is_granted('view_rate', entry) because it is only available for timesheets, but maybe missing for other potential export repositories #} {% set rate = rate + entry.rate %} {% set rateInternal = rateInternal + entry.internalRate %} {% set entryRate = entry.rate|money(entryCurrency) %} {% set entryRateInternal = entry.internalRate|money(entryCurrency) %} {% if showInternalRate %}{{ entryRateInternal }} | {% endif %}{{ entryRate }} | {% endif %}||
{{ 'sum.total'|trans }} | {% else %}{{ 'sum.total'|trans }} | {% endif %} {% if showHourlyRateColumn %}{% endif %} | {{ duration|duration(decimal) }} | {% if showRateColumn %} {% if showInternalRate %}{% if currency is not null %}{{ rateInternal|money(currency) }}{% endif %} | {% endif %}{% if currency is not null %}{{ rate|money(currency) }}{% endif %} | {% endif %}