82 lines
3.3 KiB
HTML
82 lines
3.3 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Rapports {{ year }}{% endblock %}
|
|
{% block content %}
|
|
|
|
<!-- En-tête -->
|
|
<div class="flex items-baseline justify-between mb-5">
|
|
<p class="font-display text-2xl font-semibold" style="color:var(--ink);">Rapports</p>
|
|
<form method="GET">
|
|
<select name="year" onchange="this.form.submit()" class="field-input" style="width:auto; padding:0.3rem 0.6rem; font-size:0.8rem;">
|
|
{% for y in range(2024, year + 2) %}
|
|
<option value="{{ y }}" {% if y == year %}selected{% endif %}>{{ y }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</form>
|
|
</div>
|
|
|
|
<!-- Kilométrage -->
|
|
<div class="card card-ink">
|
|
<p class="card-label">Kilométrage {{ year }}</p>
|
|
{% if total_km %}
|
|
<div class="space-y-3 mt-1">
|
|
{% for vehicle_id, km in total_km.items() %}
|
|
<div class="flex items-baseline justify-between">
|
|
<span class="text-xs" style="color:#8A8278;">{{ vehicles.get(vehicle_id, {}).get('name', vehicle_id) }}</span>
|
|
<span class="font-data font-semibold" style="font-size:1.35rem; color:var(--ink);">
|
|
{{ km }}<span class="font-normal text-xs ml-1" style="color:#9A9288;">km</span>
|
|
</span>
|
|
</div>
|
|
{% endfor %}
|
|
<div class="flex items-baseline justify-between pt-2" style="border-top:1px solid var(--parchment);">
|
|
<span class="text-xs font-semibold" style="color:#8A8278; letter-spacing:0.06em;">CO₂ TOTAL</span>
|
|
<span class="font-data font-semibold" style="font-size:1.35rem; color:var(--ink);">
|
|
{{ total_co2_kg }}<span class="font-normal text-xs ml-1" style="color:#9A9288;">kg</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<p class="mt-1 text-sm" style="color:#9A9288;">Aucun déplacement enregistré pour {{ year }}.</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<!-- Frais réels -->
|
|
<div class="card card-sage">
|
|
<p class="card-label">Frais réels — barème {{ year }}</p>
|
|
<p class="text-xs mb-3" style="color:#9A9288;">Déduction fiscale estimée · véhicules motorisés uniquement</p>
|
|
{% if frais_reels %}
|
|
<div class="space-y-3">
|
|
{% for vehicle_id, montant in frais_reels.items() %}
|
|
<div class="flex items-baseline justify-between">
|
|
<span class="text-xs" style="color:#8A8278;">{{ vehicles.get(vehicle_id, {}).get('name', vehicle_id) }}</span>
|
|
<span class="font-data font-bold" style="font-size:1.6rem; color:var(--sage);">
|
|
{{ montant }}<span class="font-normal text-sm ml-1" style="color:#9A9288;">€</span>
|
|
</span>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% else %}
|
|
<p class="text-sm" style="color:#9A9288;">Aucune donnée pour {{ year }}.</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<!-- Répartition par type de jour -->
|
|
<div class="card card-amber">
|
|
<p class="card-label">Répartition {{ year }}</p>
|
|
{% if day_type_counts %}
|
|
<div class="space-y-2 mt-1">
|
|
{% for day_type, count in day_type_counts.items() %}
|
|
<div class="flex items-baseline justify-between">
|
|
<span class="text-xs" style="color:#8A8278;">{{ day_type | day_type_fr }}</span>
|
|
<span class="font-data font-semibold text-sm" style="color:var(--ink);">
|
|
{{ count }}<span class="font-normal text-xs ml-1" style="color:#9A9288;">j</span>
|
|
</span>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% else %}
|
|
<p class="text-sm" style="color:#9A9288;">Aucune entrée pour {{ year }}.</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
{% endblock %}
|