feat(commercial) : amélioration et validation stricte des champs date (ERP-148) #92

Merged
tristan merged 1 commits from feature/ERP-148-mettre-a-jour-malio-ui-amelioration-des-champs-dat into develop 2026-06-12 08:45:39 +00:00
Owner

Contexte

ERP-148 — mise à jour @malio/layer-ui et amélioration des champs date (onglet Information, Client & Fournisseur).

Changements

  • MalioDate v1.7.10 : le composant expose désormais son état de validité (@update:valid) et la saisie brute invalide (@update:rawValue).
  • Validation back-autoritaire du format : foundedAt n'accepte plus que l'ISO strict Y-m-d (#[Context] DateTimeNormalizer) + collectDenormalizationErrors sur Client et Supplier. Toute saisie non-ISO renvoie un 422 porté sur le champ.
    • Corrige un cas piège : 12/25/2026 (invalide en JJ/MM/AAAA côté front) était auparavant accepté par PHP en M/J/AAAA → 25 décembre. Désormais rejeté.
  • Front : la saisie invalide est transmise au back ; le message technique de type-error est surchargé par une clé i18n via le code de violation (resolveViolationMessage / VIOLATION_MESSAGE_I18N), affiché inline par useFormErrors.
  • Réorganisation des utils de formulaire sous utils/forms/.

Tests

  • Back : ClientFoundedAtFormatTest / SupplierFoundedAtFormatTest (dont le cas piège 12/25/2026).
  • Front : résolveur i18n (api.test.ts, useFormErrors.test.ts) + payloads (clientEdit/supplierEdit specs).
  • Suite Commercial verte ; vérifié bout-en-bout en navigateur (PATCH → 422, erreur inline, submit bloqué).

Note

Échecs JWT aléatoires connus du hook pre-commit (401/500 sur tests d'auth sans rapport) ; tous verts en isolation.

## Contexte ERP-148 — mise à jour @malio/layer-ui et amélioration des champs date (onglet Information, Client & Fournisseur). ## Changements - **MalioDate v1.7.10** : le composant expose désormais son état de validité (`@update:valid`) et la saisie brute invalide (`@update:rawValue`). - **Validation back-autoritaire du format** : `foundedAt` n'accepte plus que l'ISO strict `Y-m-d` (`#[Context]` DateTimeNormalizer) + `collectDenormalizationErrors` sur `Client` et `Supplier`. Toute saisie non-ISO renvoie un **422 porté sur le champ**. - Corrige un cas piège : `12/25/2026` (invalide en JJ/MM/AAAA côté front) était auparavant accepté par PHP en M/J/AAAA → 25 décembre. Désormais rejeté. - **Front** : la saisie invalide est transmise au back ; le message technique de type-error est surchargé par une clé i18n via le **code de violation** (`resolveViolationMessage` / `VIOLATION_MESSAGE_I18N`), affiché inline par `useFormErrors`. - Réorganisation des utils de formulaire sous `utils/forms/`. ## Tests - Back : `ClientFoundedAtFormatTest` / `SupplierFoundedAtFormatTest` (dont le cas piège `12/25/2026`). - Front : résolveur i18n (`api.test.ts`, `useFormErrors.test.ts`) + payloads (`clientEdit`/`supplierEdit` specs). - Suite Commercial verte ; vérifié bout-en-bout en navigateur (PATCH → 422, erreur inline, submit bloqué). ## Note Échecs JWT aléatoires connus du hook pre-commit (401/500 sur tests d'auth sans rapport) ; tous verts en isolation.
tristan added the type/featbackfrontM1-ClientM2-Fournisseur labels 2026-06-12 08:39:51 +00:00
tristan added 1 commit 2026-06-12 08:39:52 +00:00
feat(commercial) : amélioration et validation stricte des champs date (ERP-148)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m27s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m29s
59f4e33580
- MalioDate v1.7.10 : exposition de l'état de validité et de la saisie brute
  invalide (@update:valid / @update:rawValue).
- Validation back-autoritaire du format : foundedAt n'accepte plus que l'ISO
  strict Y-m-d (Context DateTimeNormalizer) + collectDenormalizationErrors sur
  Client et Supplier -> toute saisie non-ISO renvoie un 422 porté sur le champ.
- Front : la saisie invalide est transmise au back, le message technique de
  type-error est surchargé par une clé i18n via le code de violation
  (resolveViolationMessage / VIOLATION_MESSAGE_I18N), affiché inline.
- Réorganisation des utils de formulaire sous utils/forms/.
- Tests back (cas piège 12/25/2026) + tests front (résolveur i18n).
tristan merged commit a340d8139a into develop 2026-06-12 08:45:39 +00:00
tristan deleted branch feature/ERP-148-mettre-a-jour-malio-ui-amelioration-des-champs-dat 2026-06-12 08:45:39 +00:00
Sign in to join this conversation.