Liste des trajets : total km du jour dans l'en-tête de rupture

Affiche, dans l'en-tête de chaque journée, le total kilométrique du
jour après le nombre de trajets (séparé par « - »). Somme des distances
effectives (A/R inclus), trajets sans distance comptés comme 0, format
selon la précision courante.
This commit is contained in:
2026-10-13 08:46:01 +02:00
parent 4748303e57
commit 54a0862388
2 changed files with 12 additions and 1 deletions
@@ -20,7 +20,7 @@
> >
<span class="jour__chevron" aria-hidden="true">{{ estOuvert(groupe) ? '▾' : '▸' }}</span> <span class="jour__chevron" aria-hidden="true">{{ estOuvert(groupe) ? '▾' : '▸' }}</span>
<span class="jour__date">{{ groupe.date | date: 'EEEE dd/MM/yyyy' }}</span> <span class="jour__date">{{ groupe.date | date: 'EEEE dd/MM/yyyy' }}</span>
<span class="jour__compteur">{{ groupe.trajets.length }} trajet{{ groupe.trajets.length > 1 ? 's' : '' }}</span> <span class="jour__compteur">{{ groupe.trajets.length }} trajet{{ groupe.trajets.length > 1 ? 's' : '' }} - {{ totalKmJour(groupe) }}</span>
</button> </button>
<button <button
type="button" type="button"
@@ -305,6 +305,17 @@ export class TrajetListComponent {
return `${trajet.distance.toFixed(this.parametresService.precisionDistance())} km`; return `${trajet.distance.toFixed(this.parametresService.precisionDistance())} km`;
} }
/**
* Total kilométrique de la journée, affiché dans l'en-tête du groupe à côté du
* nombre de trajets. Somme des distances EFFECTIVES (déjà doublées si A/R) des
* trajets du jour ; les trajets sans distance calculée (null) comptent comme 0.
* Formaté selon la précision courante, suffixé « km ».
*/
totalKmJour(groupe: GroupeJour): string {
const total = groupe.trajets.reduce((somme, t) => somme + (t.distance ?? 0), 0);
return `${total.toFixed(this.parametresService.precisionDistance())} km`;
}
/** Identité stable pour le suivi de la liste (drag & drop). */ /** Identité stable pour le suivi de la liste (drag & drop). */
trackById(_index: number, trajet: Trajet): number { trackById(_index: number, trajet: Trajet): number {
return trajet.id; return trajet.id;