feat(transport) : consultation + modification transporteur (ERP-170) #129
Reference in New Issue
Block a user
Delete Branch "feat/erp-170-carrier-view-edit"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Readonly + archive + édition par onglet. Ticket ERP-170. Stack sur #128→#127→#126→#123→#122→#121.
Review front — ERP-170 (consultation + modification)
Verdict : à corriger avant merge.
La plus grosse de la stack (
[id]/index.vue+[id]/edit.vue+ mappers). Points solides :useCarrierForm()n'est pas un singleton → aucune fuite d'état entrenewetedit; étatsloading/error/404 gérés ; mappers aller-retour fidèles (iriOf,?? null/?? '',formatAmountqui évite « NaN € »). Fix réel au passage :namedu radio prix rendu unique viauseId()(corrige une désélection mutuelle entre blocs).Findings
index.vue: le 409 d'homonyme à la restauration est avalé par uncatchqui toast un message générique, alors queuseCarrier.setArchivedpropage l'erreur exprès pour que l'appelant l'affiche (documenté dansuseCarrier.ts). L'utilisateur ne comprend pas pourquoi la restauration échoue.→ Extraire
extractApiErrorMessage(err?.response?._data)(déjà fait enedit.vue) et le passer enmessage:du toast, avec fallback i18n.sanitizeDecimal('30,5')→'305': la virgule est supprimée au lieu d'être convertie en point (le test fige ce comportement). Un utilisateur FR tapant « 30,5 » obtient 305 m³.clampPercentjuste à côté gère pourtant la virgule.→
value.replace(',', '.')avant le nettoyage.edit.vue: upload de la décharge non câblé (déféré à ERP-171, légitime) mais sans leTODO ERP-171que portenew.vue→ asymétrie trompeuse. Ajouter le même commentaire.prefillFrominitialise les prix sans bloc vide de repli, alors qu'adresses/contacts retombent sur un bloc vide → incohérence à assumer ou documenter.as unknown aspour l'export blob (trou TS-strict, identique à l'existant).ca7aef08betob6b5bb06e8