Skip to content

Cotisations : génération du numéro de facture avec le QueryBuilder DBAL - #2406

Open
Korbeil wants to merge 1 commit into
afup:masterfrom
Korbeil:afup-migration-entite-ting-membershipfee
Open

Korbeil wants to merge 1 commit into
afup:masterfrom
Korbeil:afup-migration-entite-ting-membershipfee

Conversation

@Korbeil

@Korbeil Korbeil commented Sep 21, 2026

Copy link
Copy Markdown
Member

Description

Achèvement de la contrainte « zéro SQL brut » pour le périmètre cotisations (ticket #2383) : la requête de génération du numéro de facture passe du SQL écrit à la main au QueryBuilder Doctrine DBAL, suivant le pattern établi par les migrations Ting → Doctrine. La requête garde une sémantique identique.

Changes

  • La numérotation des factures de cotisation est générée via le QueryBuilder DBAL au lieu d'une chaîne SQL brute.
  • Recherche du prochain numéro de facture couverte par un test d'intégration : fallback sur 1 quand la table est vide, incrément après un numéro COTIS-<année>-x, prise en compte de l'ancien format commençant par l'année, et ignorance des numéros des années précédentes.

How to test

  1. make test-integration-ci — le nouveau test d'intégration démarre sur une base de test vide et vérifie les 4 cas de numérotation.
  2. make phpstan — 0 erreur attendue (aucune entrée de baseline liée à cette requête).
  3. Suite Behat cotisations (AdminPersonnesPhysiquesCotisations.feature, AdminPersonnesMoralesCotisations.feature) : la création d'une cotisation au BO doit toujours générer une facture COTIS-<année>-<n> cohérente.

…DBAL

Remplace le SQL brut de generateInvoiceNumber() par le QueryBuilder Doctrine
DBAL (pattern établi lors des migrations Ting vers Doctrine) et ajoute un
test d'intégration pour le calcul des numéros de facture (formats COTIS-*,
ancien format commençant par l'année, fallback sur table vide, années
antérieures ignorées).
@Korbeil
Korbeil marked this pull request as ready for review September 21, 2026 19:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant