fix : retours métier ERP-193 (4 répertoires) #139

Merged
tristan merged 34 commits from fix/erp-193-retours-metier into develop 2026-06-22 09:40:41 +00:00
Owner

Lot de retours métier ERP-193 (« Fix tous les retours starseed »), transverse aux 4 répertoires (clients, fournisseurs, prestataires, transporteurs).

Contenu

  • Pagination : défaut à 25 items/page sur les 4 répertoires.
  • Libellé : colonne « Dernière activité » → « Dernière modification ».
  • Consultation : masquage des onglets vides (coquilles « à venir » + onglets de données sans donnée).
  • Chiffre d'affaires : plafonné à 999 999 999 999,99 (clamp front + Assert\LessThanOrEqual back).
  • Date de création : interdiction des dates futures (:max MalioDate + Assert\LessThanOrEqual('today') back).
  • Caractères spéciaux : blocage des caractères parasites (²³§~#|…) dans les champs texte via une allow-list par profil (nom de personne / texte libre / adresse / code alphanumérique) — filtrage front à la frappe + Assert\Regex back autoritaire. Email/IBAN/BIC/TVA conservent leurs validateurs de format.
  • UI : champs en consultation et onglets validés grisés (readonlydisabled).
  • UI : boutons « Archiver » en rouge (variant danger).

Tests

  • Back : nouveaux tests RG (plafond CA, dates futures, caractères spéciaux) + garde-fou contraintes — suite complète verte (813 tests).
  • Front : nouveaux tests unitaires (sanitizers, helpers date/montant) — 615 tests verts, eslint clean.
Lot de retours métier **ERP-193** (« Fix tous les retours starseed »), transverse aux 4 répertoires (clients, fournisseurs, prestataires, transporteurs). ## Contenu - **Pagination** : défaut à 25 items/page sur les 4 répertoires. - **Libellé** : colonne « Dernière activité » → « Dernière modification ». - **Consultation** : masquage des onglets vides (coquilles « à venir » + onglets de données sans donnée). - **Chiffre d'affaires** : plafonné à 999 999 999 999,99 (clamp front + `Assert\LessThanOrEqual` back). - **Date de création** : interdiction des dates futures (`:max` MalioDate + `Assert\LessThanOrEqual('today')` back). - **Caractères spéciaux** : blocage des caractères parasites (`²³§~#|…`) dans les champs texte via une allow-list par profil (nom de personne / texte libre / adresse / code alphanumérique) — filtrage front à la frappe + `Assert\Regex` back autoritaire. Email/IBAN/BIC/TVA conservent leurs validateurs de format. - **UI** : champs en consultation et onglets validés grisés (`readonly` → `disabled`). - **UI** : boutons « Archiver » en rouge (variant `danger`). ## Tests - Back : nouveaux tests RG (plafond CA, dates futures, caractères spéciaux) + garde-fou contraintes — suite complète verte (813 tests). - Front : nouveaux tests unitaires (sanitizers, helpers date/montant) — 615 tests verts, eslint clean.
tristan added 8 commits 2026-06-19 08:30:12 +00:00
tristan added 1 commit 2026-06-19 08:50:27 +00:00
fix(transport) : tableau prix — colonne Fournisseurs/Clients, fusion adresses sites/livraisons, renomme Transport (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m55s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m19s
865e580b6e
tristan added 1 commit 2026-06-19 09:10:20 +00:00
fix(transport) : tableau prix — colonnes séparées, ordre Adresse livraisons puis Adresse sites (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 2m19s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m36s
9a42c432f8
tristan added 1 commit 2026-06-19 09:17:50 +00:00
fix(transport) : tableau prix — regroupement et tri par adresse de livraison, contenant par ligne (ERP-193)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
cdd43960cd
tristan added 1 commit 2026-06-19 09:29:31 +00:00
fix(transport) : tableau prix — pas de trait entre les lignes d'une même adresse de livraison (ERP-193)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
c243232799
tristan added 1 commit 2026-06-19 09:34:18 +00:00
fix(transport) : tableau prix — trait fin entre lignes d'une même adresse, épais entre adresses (ERP-193)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
023f70dd1d
tristan added 1 commit 2026-06-19 09:36:47 +00:00
fix(transport) : tableau prix — bord droit Transport noir uniforme (couleur de bordure bas side-specific) (ERP-193)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
ab33b09bc0
tristan added 1 commit 2026-06-19 09:50:07 +00:00
feat(transport) : immatriculations LIOT sur 3 colonnes + filtre saisie (lettres/chiffres/tiret/point-virgule) (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
a98f58cb33
tristan added 1 commit 2026-06-19 09:52:26 +00:00
fix(transport) : immatriculations LIOT sur 3 colonnes en consultation aussi (ERP-193)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
fa00a2b6e1
tristan added 1 commit 2026-06-19 10:02:58 +00:00
fix(transport) : immatriculations LIOT — re-synchronise le champ après filtrage (:key) pour ne plus afficher les caractères interdits (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Failing after 15m5s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Failing after 15m7s
6d3122a0b8
tristan added 1 commit 2026-06-19 12:10:51 +00:00
fix(transport) : immatriculations LIOT filtrées via mask maska (focus/curseur natifs, plus de hack) (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Failing after 12m13s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
e66615d40b
tristan added 1 commit 2026-06-19 12:24:43 +00:00
refactor(front) : champs anti-parasites via masks maska (filtrage natif, focus/curseur OK) au lieu du sanitizer @update ; email sans masque (ERP-193)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
c11d7822ce
tristan added 1 commit 2026-06-19 12:54:14 +00:00
fix(transport) : onglet Contact transporteur non obligatoire + navigation onglets (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 46s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m24s
833d992ebb
- retrait de la regle « prenom OU nom » sur le bloc Contact : garde
  CarrierContactProcessor::validateName supprimee, CHECK chk_carrier_contact_name
  droppe (migration Version20260619120000), commentaires SQL/catalogue alignes
- front : gating « + Nouveau contact » sur bloc non vide (au lieu de « nomme »),
  onglet Contact vide finalisable sans creer de contact
- Prix accessible des la validation des Adresses (Contacts optionnel ne bloque plus)
- consultation <-> edition : on retombe sur le meme onglet via ?tab=
matthieu added 1 commit 2026-06-19 13:08:15 +00:00
Merge branch 'develop' into fix/erp-193-retours-metier
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
1ef0560604
tristan added 3 commits 2026-06-19 13:25:12 +00:00
Sur les ecrans d'ajout Client / Fournisseur / Prestataire, le Valider du
premier onglet (onglet actif par defaut) etait seulement desactive et
s'affichait a cote de celui du formulaire principal. On le masque desormais
tant que l'entite n'est pas creee (id null).
removeCollectionRow expose un callback onSuccess declenche uniquement apres une
suppression serveur confirmee (pas sur le retrait d'un brouillon local). Cable
sur Client / Fournisseur / Prestataire / Transporteur via notifyRemovalSuccess,
avec un message i18n generique success.deleted.
Merge remote-tracking branch 'origin/fix/erp-193-retours-metier' into fix/erp-193-retours-metier
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 48s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m17s
4a2d7cddb0
tristan added 3 commits 2026-06-19 14:51:10 +00:00
- consultation fournisseur : MalioTabList rendu sous v-if="visibleTabKeys.length"
  (aligne sur le client) pour ne plus afficher la bordure quand seul le formulaire
  principal est rempli
- mise a jour @malio/layer-ui ^1.7.12 -> ^1.7.13
Les *AddressBlock derivent desormais required de l'etat editable
(:required="!readonly && !disabled") : l'asterisque obligatoire reste en
creation/edition mais disparait en consultation (bloc disabled).
fix(front) : repertoires fournisseur et prestataire affichent le code des categories (MAJUSCULE) comme le client (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 2m4s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m37s
06a7ef4f78
formatCategories mappe desormais c.code (slug MAJUSCULE) au lieu de c.name,
pour aligner l'affichage des categories sur le repertoire client.
tristan added 1 commit 2026-06-22 06:17:46 +00:00
fix(front) : repertoires client/fournisseur/prestataire affichent le libelle des categories (name) au lieu du code (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 50s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m19s
38ad7906ba
Revient sur le choix du code MAJUSCULE (06a7ef4) : les 3 repertoires affichent
desormais le libelle (c.name) dans la colonne Categories. Bump @malio/layer-ui 1.7.14.
tristan added 2 commits 2026-06-22 06:47:58 +00:00
Changement du code postal (5 chiffres et different) → vide ville, adresse et
complement. Selection d'une nouvelle ville → vide adresse et complement. Applique
aux 4 blocs adresse (client, fournisseur, prestataire, transporteur).
fix(front) : title (tooltip au survol) sur la fleche de retour des 12 ecrans client/fournisseur/prestataire/transporteur (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 48s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 6m28s
2fcdbeb96b
Ajoute :title sur le MalioButtonIcon de retour (consultation/creation/edition des
4 modules), reutilisant la cle i18n de l'ariaLabel existant. Le tooltip natif
indique l'action au survol (Retour au repertoire / a la fiche / Precedent).
tristan added 1 commit 2026-06-22 07:10:43 +00:00
fix(front) : libelle « Retour a la consultation » sur la fleche retour des ecrans d'edition (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 47s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 5m12s
a0c356c9fb
Les pages d'edition renvoient vers la consultation (/{resource}/{id}), pas le
repertoire : alignement des libelles edit.back (client, fournisseur, prestataire ;
transporteur etait deja correct).
tristan added 1 commit 2026-06-22 07:48:01 +00:00
fix(front+back) : suppression de la categorie du bloc adresse prestataire (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 47s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 5m13s
bd71caa289
La categorie portee par l'ADRESSE du prestataire (M2M provider_address_category)
est retiree de toutes les couches : champ + prop du bloc adresse, type/payload/
mapping front, entite ProviderAddress (M2M, Assert\Count, validateCategoryType,
accesseurs), fixtures, contexte de serialisation. Nouvelle migration de drop de la
table (namespace racine pour l'ordre post-creation). La categorie du PRESTATAIRE
lui-meme (provider_category, repertoire, filtre, formulaire principal) est conservee.
tristan added 1 commit 2026-06-22 09:21:03 +00:00
fix(front) : masque les champs non remplis en consultation sur les 4 modules (ERP-193)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 48s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m18s
6b714b81c4
En consultation (lecture seule), les champs vides et les cases a cocher non
cochees ne sont plus affiches (client, fournisseur, prestataire, transporteur).
Util partage isFilled (vide = null/chaine vide/multiselect vide/false ; 0 reste
affiche). Nouveau prop hideEmpty sur les blocs contact/adresse, passe uniquement
en consultation (edition inchangee).
tristan added 1 commit 2026-06-22 09:35:09 +00:00
fix : MalioUI
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 47s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 5m13s
4ab0644a57
tristan merged commit 5e15c1f69f into develop 2026-06-22 09:40:41 +00:00
tristan deleted branch fix/erp-193-retours-metier 2026-06-22 09:40:41 +00:00
Sign in to join this conversation.