{% extends '@Commercial/commercial/layout.html.twig' %} {% block commercial_title %}Indemnités kilométriques{% endblock %} {% block stylesheets %} {{ parent() }} {% endblock %} {% block commercial_content %} {% set month_names = {1: 'jan.', 2: 'févr.', 3: 'mars', 4: 'avr.', 5: 'mai', 6: 'juin', 7: 'juil.', 8: 'août', 9: 'sept.', 10: 'oct.', 11: 'nov.', 12: 'déc.'} %}

Indemnités kilométriques

Suivez les déplacements, remboursements kilométriques et leur impact sur les projets.

Km sur la sélection {{ kpis.kilometers|number_format(0, ',', ' ') }} km {{ kpis.count }} indemnité{{ kpis.count > 1 ? 's' : '' }}
À rembourser {{ kpis.reimbursable|number_format(2, ',', ' ') }} € Montant total validé
À valider {{ kpis.submitted }} En attente de validation
Liées à un projet {{ kpis.linked }} Sur {{ kpis.count }} indemnité{{ kpis.count > 1 ? 's' : '' }}
Générales société {{ kpis.unlinked }} Sans projet associé
Réinitialiser
{{ mileage_expenses|length }} indemnité{{ mileage_expenses|length > 1 ? 's' : '' }}— résultats filtrés
{% if is_granted('MILEAGE_VALIDATE', company) %}{% endif %}
{% for mileage in mileage_expenses %} {% set employee_name = ((mileage.employee.prenom|default('') ~ ' ' ~ mileage.employee.nom|default(''))|trim) %} {% set tone = mileage.status in ['validated'] ? 'success' : (mileage.status in ['paid', 'reimbursed'] ? 'info' : (mileage.status == 'submitted' ? 'warning' : (mileage.status in ['rejected', 'cancelled'] ? 'danger' : 'muted'))) %} {% else %} {% endfor %}
DateEmployéAdresse / trajetKmTauxMontantProjetStatutActions
{{ mileage.tripDate|date('d') }} {{ month_names[mileage.tripDate|date('n')] }} {{ mileage.tripDate|date('Y') }}
{{ employee_name }}{{ mileage.employee.fonction|default('Collaborateur') }}
{{ mileage.departure ?: mileage.purpose }}{% if mileage.arrival %}→ {{ mileage.arrival }}{% endif %}{{ mileage.comment ?: mileage.purpose }}
{{ mileage.reimbursableKilometers|number_format(0, ',', ' ') }} km {{ mileage.ratePerKm|number_format(3, ',', ' ') }} €/km {{ mileage.amount|number_format(2, ',', ' ') }} € {% if mileage.project %}{{ mileage.project.titre }}{% else %}Sans projet{% endif %} {{ statuses[mileage.status]|default(mileage.status) }}
Aucune indemnité ne correspond aux filtres.
TOTAUX ({{ mileage_expenses|length }} LIGNES){{ kpis.kilometers|number_format(0, ',', ' ') }} km—{{ kpis.reimbursable|number_format(2, ',', ' ') }} €{{ kpis.linked }} avec projet {{ kpis.unlinked }} sans projet
{% endblock %}