Saisie/insertion : date de journée, repositionnement, point A/R, retour domicile

Améliorations de saisie issues du retour d'usage :

- Insertion : la date pré-remplie est celle de la JOURNÉE du trajet source (via
  prefill.date), et non la date de la carte, pour éviter les erreurs de saisie.
- Insertion « après » / « avant le suivant » : l'adresse de départ pré-remplie
  est le point de FIN du trajet source — son arrivée, ou son DÉPART si c'est un
  aller/retour (le véhicule est revenu à son point d'origine).
- Après création/modification sur une autre journée : repositionnement auto sur
  le mois du trajet, cadrage de la carte sur sa date, et dépliage du groupe de
  cette journée (TrajetListComponent.ouvrirJour, différé après recalcul du
  repliage) pour rendre le trajet ajouté visible.
- Bouton « Utiliser mon domicile » sur l'arrivée : pré-remplit le commentaire
  avec « Retour domicile » si le commentaire est vide (jamais de remplacement).

Specs : requirements.md (exigences 10.19, 11.1/11.2/11.12, 12.23) et design.md
(TrajetForm, TrajetList, ConsultationJour) mis à jour.
This commit is contained in:
2026-09-20 20:16:30 +02:00
parent e84c2356f1
commit 173b123f03
6 changed files with 112 additions and 18 deletions
@@ -258,6 +258,7 @@ L'application est composée d'un frontend Angular/TypeScript et d'un backend C#.
16. WHEN l'utilisateur accepte la Réaffectation, THE Backend SHALL mettre à jour la Puissance_Fiscale (et l'association au Véhicule) de tous les Trajets concernés (date >= Date_Effet) avec celle du nouveau Véhicule.
17. WHEN l'utilisateur refuse la Réaffectation, THE Backend SHALL laisser inchangés les Trajets déjà saisis et associer uniquement les prochains Trajets au nouveau Véhicule.
18. THE Backend SHALL exposer la liste de l'historique des Véhicules avec leur plaque, leur Puissance_Fiscale et leur Date_Effet.
19. WHEN l'utilisateur clique sur le bouton "Utiliser mon domicile" pour le champ adresse d'ARRIVÉE, IF le champ Commentaire est vide, THEN THE Frontend SHALL pré-remplir le Commentaire avec « Retour domicile » ; un Commentaire déjà saisi n'est jamais remplacé.
---
@@ -267,8 +268,8 @@ L'application est composée d'un frontend Angular/TypeScript et d'un backend C#.
#### Acceptance Criteria
1. WHEN l'utilisateur demande l'insertion d'un Trajet entre deux Trajets existants d'une même journée (Trajet_Précédent et Trajet_Suivant), THE Frontend SHALL afficher le formulaire de saisie avec le champ adresse de départ pré-rempli avec l'adresse d'arrivée du Trajet_Précédent et le champ adresse d'arrivée pré-rempli avec l'adresse de départ du Trajet_Suivant.
2. WHEN l'utilisateur choisit d'insérer un Trajet après un Trajet_Précédent sans Trajet_Suivant connu, THE Frontend SHALL afficher le formulaire de saisie avec le champ adresse de départ pré-rempli avec l'adresse d'arrivée du Trajet_Précédent et le champ adresse d'arrivée vide.
1. WHEN l'utilisateur demande l'insertion d'un Trajet entre deux Trajets existants d'une même journée (Trajet_Précédent et Trajet_Suivant), THE Frontend SHALL afficher le formulaire de saisie avec le champ adresse de départ pré-rempli avec le point de fin du Trajet_Précédent — son adresse d'arrivée, ou son adresse de DÉPART si le Trajet_Précédent est un Aller_Retour (retour au point d'origine) — et le champ adresse d'arrivée pré-rempli avec l'adresse de départ du Trajet_Suivant.
2. WHEN l'utilisateur choisit d'insérer un Trajet après un Trajet_Précédent sans Trajet_Suivant connu, THE Frontend SHALL afficher le formulaire de saisie avec le champ adresse de départ pré-rempli avec le point de fin du Trajet_Précédent — son adresse d'arrivée, ou son adresse de DÉPART si le Trajet_Précédent est un Aller_Retour — et le champ adresse d'arrivée vide.
3. WHEN l'utilisateur choisit d'insérer un Trajet avant un Trajet_Suivant sans Trajet_Précédent connu, THE Frontend SHALL afficher le formulaire de saisie avec le champ adresse d'arrivée pré-rempli avec l'adresse de départ du Trajet_Suivant et le champ adresse de départ vide.
4. THE Frontend SHALL permettre à l'utilisateur de modifier les adresses de départ et d'arrivée pré-remplies avant de soumettre le formulaire d'insertion.
5. WHEN l'utilisateur soumet le formulaire d'insertion avec tous les champs obligatoires valides, THE Backend SHALL créer le nouveau Trajet avec les mêmes règles de validation et de calcul de distance que la création standard (Exigence 1 et 2).
@@ -278,6 +279,7 @@ L'application est composée d'un frontend Angular/TypeScript et d'un backend C#.
9. WHEN l'utilisateur réordonne manuellement les Trajets d'une journée (glisser-déposer), THE Backend SHALL mettre à jour les valeurs de Position des Trajets concernés de manière à refléter le nouvel ordre sans modifier les autres données du Trajet.
10. THE Frontend SHALL proposer, dans le formulaire d'insertion, pour le champ adresse de départ et pour le champ adresse d'arrivée (y compris lorsqu'ils sont pré-remplis à partir du Trajet_Précédent ou du Trajet_Suivant), un choix entre sélectionner une Adresse_Nommee pré-enregistrée du Carnet_Adresses (par sa Dénomination) et saisir une nouvelle adresse manuellement avec l'autocomplétion BAN.
11. WHEN l'utilisateur sélectionne une Adresse_Nommee (par sa Dénomination) dans le formulaire d'insertion pour le champ adresse de départ ou adresse d'arrivée, THE Frontend SHALL remplacer le contenu pré-rempli de ce champ par le texte d'adresse de l'Adresse_Nommee et associer ses coordonnées géographiques (latitude, longitude) pour transmission au Backend.
12. WHEN l'utilisateur ouvre le formulaire d'insertion à partir d'un Trajet existant, THE Frontend SHALL pré-remplir la date avec la journée de ce Trajet (et non la date affichée sur la Carte), afin d'éviter les erreurs de saisie de date.
---
@@ -309,6 +311,7 @@ L'application est composée d'un frontend Angular/TypeScript et d'un backend C#.
20. WHEN l'utilisateur sélectionne un Véhicule dans le sélecteur de Véhicule, THE Frontend SHALL filtrer la liste mensuelle des Trajets, le Panneau_Totaux et la Carte pour n'afficher que les Trajets associés à ce Véhicule.
21. THE Panneau_Totaux SHALL calculer le total du jour, le total du mois et le Total_Annuel_Partiel uniquement à partir des Trajets associés au Véhicule sélectionné.
22. WHEN l'utilisateur change de Véhicule sélectionné, THE Frontend SHALL mettre à jour la liste mensuelle des Trajets, le Panneau_Totaux et la Carte dans un délai de 1000 ms sans rechargement complet de la page.
23. WHEN un Trajet est créé ou modifié avec une date appartenant à un mois différent du mois affiché, THE Frontend SHALL se repositionner automatiquement sur le mois de ce Trajet, cibler sa journée sur la Carte, et déplier le groupe de cette journée dans la liste afin que le Trajet ajouté soit visible.
---