Exports PDF : total mensuel à fin de mois et mise en avant de la régularisation

Report mensuel :
- « Total parcouru sur l'année » devient « Total annuel (à fin de mois) »
  et affiche le cumul jusqu'au mois de restitution inclus
  (Total_Annuel_Partiel, via ITotauxService)
- la tranche de barème (coefficient, base, TOTAL IK du mois) est
  déterminée sur ce même cumul, cohérent avec le Panneau_Totaux du site
  et stable même si le PDF est édité plus tard

Report annuel :
- ligne « Formule réelle » centrée (comme la régularisation)
- ligne « Régularisation (réel − payé) » agrandie (14 pt, gras) pour la
  mettre en avant comme action finale

Test d'intégration PDF mis à jour (injection d'ITotauxService). Specs
requirements/design-requirements/design synchronisées (Exigence 7).
This commit is contained in:
2026-10-13 07:08:12 +02:00
parent df259258a0
commit 0e14a8f806
5 changed files with 28 additions and 14 deletions
+5 -5
View File
@@ -1554,7 +1554,7 @@ QuestPDF est une bibliothèque .NET open-source (licence MIT pour usage communau
│ │ │ Domicile : 29 route des Cascades, 23400 Saint-Pardoux-Morter. │
│ └───────┘ Véhicule : GOLF (ES-036-YF) — 6 CV (Coef. : 0,447 / Base : 0) │
│ Total parcouru sur le mois : 931 Kms TOTAL IK du mois : 416 € │
│ Total parcouru sur l'année : 931 Kms Réglé : 500,00 € │
│ Total annuel (à fin de mois) : 931 Kms Réglé : 500,00 € │
├──────────────────────────────────────────────────────────────────────────── (trait pleine largeur)
├────────────┬────────────────┬───────────────────────────────┬─────┬────────┤
│ Date │ Motifs │ Départ → Arrivée │ A/R │ Kms │
@@ -1568,7 +1568,7 @@ QuestPDF est une bibliothèque .NET open-source (licence MIT pour usage communau
(pied de page : Mention_Legale 5 pt justifiée, puis « Page X / Y »)
```
> Le titre « RAPPORT DE TRAJETS » est désormais en majuscules. L'en-tête est disposé sur une rangée : logo carré agrandi (120 pt) aligné en haut à gauche ; à droite du logo, un bloc titre (titre + sous-titre « Feuille d'indemnité kilométrique {MOIS} {ANNEE} ») centré sur l'espace restant ; sous le bloc titre, le bloc d'infos (Utilisateur/Matricule, Domicile, Véhicule, totaux). Un trait séparateur horizontal est tracé sur toute la largeur de la page sous l'en-tête. Le libellé « Adresse de départ » devient « Domicile », positionné juste après la ligne Utilisateur/Matricule. Dans la table des Trajets, l'adresse d'arrivée passe à la ligne sous l'adresse de départ, précédée de « → » ; une colonne dédiée **« A/R »** (juste avant « Kms ») affiche un marqueur « X » pour un Aller_Retour (le suffixe « (A/R) » dans la cellule itinéraire est supprimé). Le « TOTAL IK du mois » = kilomètres du mois × coefficient de la tranche annuelle applicable. Le « Réglé » = Montant_Regle saisi pour le mois. Le motif affiché est le commentaire du Trajet. Les kilomètres (mois, année, table des trajets) sont formatés selon Precision_Distance.
> Le titre « RAPPORT DE TRAJETS » est désormais en majuscules. L'en-tête est disposé sur une rangée : logo carré agrandi (120 pt) aligné en haut à gauche ; à droite du logo, un bloc titre (titre + sous-titre « Feuille d'indemnité kilométrique {MOIS} {ANNEE} ») centré sur l'espace restant ; sous le bloc titre, le bloc d'infos (Utilisateur/Matricule, Domicile, Véhicule, totaux). Un trait séparateur horizontal est tracé sur toute la largeur de la page sous l'en-tête. Le libellé « Adresse de départ » devient « Domicile », positionné juste après la ligne Utilisateur/Matricule. Dans la table des Trajets, l'adresse d'arrivée passe à la ligne sous l'adresse de départ, précédée de « → » ; une colonne dédiée **« A/R »** (juste avant « Kms ») affiche un marqueur « X » pour un Aller_Retour (le suffixe « (A/R) » dans la cellule itinéraire est supprimé). Le total annuel affiché porte le libellé « Total annuel (à fin de mois) » : c'est le cumul de l'année jusqu'au mois de restitution inclus (Total_Annuel_Partiel), obtenu via `ITotauxService`, et non le total des douze mois. La tranche de barème applicable (coefficient, base) et donc le « TOTAL IK du mois » (kilomètres du mois × coefficient de la tranche) sont déterminés sur ce même cumul « à fin de mois », pour rester cohérents avec le Panneau_Totaux du site et avec la situation à la date du mois même si le PDF est édité plus tard. Le « Réglé » = Montant_Regle saisi pour le mois. Le motif affiché est le commentaire du Trajet. Les kilomètres (mois, année, table des trajets) sont formatés selon Precision_Distance.
#### PDF Annuel (`AAAA_Trajets_MATRICULE_PLAQUE.pdf`)
@@ -1598,14 +1598,14 @@ QuestPDF est une bibliothèque .NET open-source (licence MIT pour usage communau
├────────────┼───────────────┼───────────────────┼────────────────────────────┤
│ TOTAL │ 12 241 │ 6 000,00 € │ 6 035,13 € │
├────────────┴───────────────┴───────────────────┴────────────────────────────┤
│ Formule réelle : 12241 km × 0,374 + 1457 = 6 035,13 € (tranche 5001–20000, 6 CV) │
│ Formule réelle : 12241 km × 0,374 + 1457 = 6 035,13 € (tranche 5001–20000) │ (centrée)
│ │
│ Régularisation (réel − payé) : 35,13 € (ligne centrée) │
│ Régularisation (réel − payé) : 35,13 € (centrée, 14 pt gras) │
└──────────────────────────────────────────────────────────────────────────────┘
(pied de page : Mention_Legale 5 pt justifiée, puis « Page X / Y »)
```
> Le titre « RAPPORT DE TRAJETS » est en majuscules et son bloc titre (titre + sous-titre « Synthèse {Année} d'indemnité kilométrique ») est centré à droite du logo 120 pt ; le bloc d'infos est placé dessous. La ligne « Année : AAAA » reste retirée (redondante avec le titre). Un espace est ajouté après la ligne « Véhicule », puis « Barème applicable » et « Total kilométrique de l'année » sont présentés sur **deux colonnes côte à côte** (même agencement que le bloc totaux du rapport mensuel). Le titre du tableau barème rappelle le mode de calcul en toutes lettres : « Barème applicable pour l'année (N CV) — Kms parcourus × Coef + Base » (les valeurs coef/base effectivement appliquées apparaissent, elles, dans la « Formule réelle » en fin de document). En fin de document, un espace sépare la ligne « Formule réelle » (alignée à gauche) de la ligne « Régularisation (réel − payé) », désormais **centrée** sur la largeur de la page. Le « Frais réel » mensuel = kilomètres du mois × coefficient de la tranche annuelle. Le « Frais payé » = Montant_Regle saisi. La minoration 80% n'apparaît pas dans la synthèse : elle sert uniquement d'indication de versement en cours d'année. Les kilomètres (total annuel, table des mois, formule réelle) sont formatés selon Precision_Distance.
> Le titre « RAPPORT DE TRAJETS » est en majuscules et son bloc titre (titre + sous-titre « Synthèse {Année} d'indemnité kilométrique ») est centré à droite du logo 120 pt ; le bloc d'infos est placé dessous. La ligne « Année : AAAA » reste retirée (redondante avec le titre). Un espace est ajouté après la ligne « Véhicule », puis « Barème applicable » et « Total kilométrique de l'année » sont présentés sur **deux colonnes côte à côte** (même agencement que le bloc totaux du rapport mensuel). Le titre du tableau barème rappelle le mode de calcul en toutes lettres : « Barème applicable pour l'année (N CV) — Kms parcourus × Coef + Base » (les valeurs coef/base effectivement appliquées apparaissent, elles, dans la « Formule réelle » en fin de document). En fin de document, la ligne « Formule réelle » est désormais **centrée** sur la largeur de la page (comme la régularisation) ; un espace la sépare de la ligne « Régularisation (réel − payé) », elle aussi **centrée** et rendue en **taille agrandie (14 pt, gras)** pour la mettre en avant en tant qu'action comptable finale. Le « Frais réel » mensuel = kilomètres du mois × coefficient de la tranche annuelle. Le « Frais payé » = Montant_Regle saisi. La minoration 80% n'apparaît pas dans la synthèse : elle sert uniquement d'indication de versement en cours d'année. Les kilomètres (total annuel, table des mois, formule réelle) sont formatés selon Precision_Distance.
> **Rapports distincts par véhicule** : si la période demandée (mois ou année) contient des Trajets associés à plusieurs Véhicules, le backend génère un fichier PDF distinct par Véhicule. Chaque PDF ne contient que les Trajets et montants du Véhicule concerné.