fix(qlik): effacer Période puis extraire année par année — la méthode de l'app

Deux remarques de l'utilisateur ont débloqué le sujet : « sur ce tableau j'ai
2024, 2025, 2026 et je sors mois par mois », et « tu mets 2026 et tu as la
comparaison N-1 ».

Type_Cal='N' ne désigne donc pas « l'année civile en cours » mais L'ANNÉE
SÉLECTIONNÉE. Il suffit d'enchaîner les années couvertes par la fenêtre (2025
puis 2026) pour reconstituer 12 mois glissants — chaque passe livrant les 5
mesures, et non la seule quantité comme « Quantité COMP ».

Ce mécanisme existait déjà (monthDimPath(yearN - 1)) mais restait sans effet :
  [qlik-pw] (mois) passe N-1 terminée : 299905 → 299905 points mensuels
La sélection « Période », héritée de l'ouverture de l'app et jamais choisie par
nous (observé « Période:1/4 » dès le premier diagnostic de la session),
épinglait le contexte sur l'année en cours et annulait la sélection d'année.

- choisirPeriode() teste désormais EN PREMIER l'état sans aucune sélection de
  Période — l'état dans lequel un utilisateur voit 2024/2025/2026 — et efface la
  sélection dès que la couverture est incomplète.
- L'orchestration boucle sur les années de la fenêtre au lieu d'une passe
  principale plus une passe N-1 dérivée de COMP.
- Chaque passe n'écrit que les mois DE LA FENÊTRE et les totaux s'additionnent
  sur ces mois : deux années ne peuvent pas se doubler puisqu'elles ne partagent
  aucun mois. « Quantité COMP » n'est plus utilisée.
- L'agrégation directe des faits reste en secours, et le garde-fou d'intégrité
  reste actif : sans les 12 mois, le cache n'est pas écrit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DfqUihgixw4K1AmJhizWiu
This commit is contained in:
Claude committed 2026-07-31 15:22:19 +00:00
1 parent ccd60b119f
commit e7a387b7de
2 files changed
+141 -76

No files matched your search

+30 -1
View File
@@ -103,7 +103,36 @@ Tout ce qu'on observait en découle :
| Janvier→juillet de l'année précédente renseignés | Ce sont les mois que « Quantité COMP » sait atteindre |
| `Sum(quantite)` brut inexploitable | Il additionne les lignes N **et** COMP : il double compte |
### Mesuré : aucune `Période` ne porte 12 mois glissants
### La bonne méthode : effacer `Période`, puis extraire ANNÉE par ANNÉE
C'est ce que fait un utilisateur dans l'app : il sélectionne **2026** et obtient
l'année plus sa comparaison N-1 ; il sélectionne 2025 et obtient 2025. Les
données de 2024, 2025 et 2026 sont toutes accessibles mois par mois. `Type_Cal='N'`
désigne simplement **l'année sélectionnée**.
Il suffit donc d'enchaîner les années couvertes par la fenêtre (2025 puis 2026)
pour reconstituer les 12 mois glissants — chaque passe donnant les 5 mesures, et
non la seule quantité comme « Quantité COMP ».
Ce mécanisme existait déjà dans le code (« passe N-1 ») mais restait **sans
effet** :
```
[qlik-pw] (mois) passe N-1 terminée : 299905 → 299905 points mensuels
^^^^^^^^^^^^^^ aucun gain
```
La sélection `Période` **héritée de l'ouverture de l'app** (observé
« Période:1/4 » alors que rien n'avait été sélectionné) épinglait le contexte sur
l'année en cours et annulait la sélection d'année. `choisirPeriode()` teste donc
en **premier** l'état sans aucune sélection de `Période`, et l'efface dès que la
couverture est incomplète.
Chaque passe n'écrit que les mois **de la fenêtre**, et les totaux s'additionnent
sur ces mois : deux années ne peuvent pas se doubler puisqu'elles ne partagent
aucun mois.
### Mesuré : aucune valeur de `Période` ne porte à elle seule 12 mois
`choisirPeriode()` essaie chaque valeur et mesure la couverture réelle sur un
cube `[Mois] × Quantité N`. Résultat en production :