feat(front) : branchement site courant + formats d'affichage (ERP-191) #143
Reference in New Issue
Block a user
Delete Branch "feat/erp-191-i18n-site-courant"
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?
ERP-191 — i18n + libellés + branchement site courant (M5, front)
Finitions front : branchement propre du site courant + formats d'affichage factorisés et testés.
Contenu
useCurrentSite()(étape 3) : la liste se recharge en page 1 au changement de site dans le switcher global (liste cloisonnée par site côté back, spec-back § 2.3). Le front n'envoie PAS le site (résolu serveur à la création). Watcher explicite nécessaire carusePaginatedListne passe pas paruseAsyncData→ lerefreshNuxtData()deswitchSitene l'atteint pas.utils/weighingTicketFormat.ts(helpers purs) : poids « X XXX Kg » (séparateur d'espace déterministe), dateJJ-MM-AAAA, immatriculation UPPER. La liste consomme désormais ces helpers (suppression des fonctions inline).audit.entity.logistique_weighingticket(étape 2) : déjà posés en ERP-181/183 et aux écrans ERP-188→190 — vérifiés présents, rien à ajouter.Vérifications
make nuxt-test: 656 tests verts (+9 : formats poids/date/immat ; rechargement de la liste au changement de site).fr.jsonvalide.Endpoint API Platform GET /api/weighing_tickets/{id}/print.pdf (provider renvoyant un binaire, pas de controller) sécurisé par logistique.weighing_tickets.view. Rendu d'un template Twig hydraté avec le ticket converti en PDF via Dompdf. Reproduit le modèle fourni : en-tête fixe (logo + identité société, indépendant du site), pesées à vide/plein avec le numéro de pesée affiché comme un DSD, poids net = plein − vide.Une pesée (bascule ou manuelle) s'enregistre désormais dès la validation de sa modale, sans exiger la contrepartie ni l'immatriculation : le ticket naît « brouillon » (status DRAFT, sans numéro). Le bouton « Valider » finalise quand les 3 champs du haut (contrepartie + champ associé + immatriculation) ET les 2 pesées sont renseignés : attribution du numéro {siteCode}-TP-{NNNN} et passage en VALIDATED, puis ouverture du bon de pesée PDF. Back : counterparty_type/immatriculation/number nullables + colonne status (migration racine), contraintes strictes déplacées en groupe de validation finalize, opération PATCH /weighing_tickets/{id}/validate, numéro attribué à la validation. Front : 4 champs en haut hors blocs, persistance immédiate des pesées, écrans Ajouter/Modifier refondus, colonne Statut dans la liste, form à plat pleine largeur. Tests back (lifecycle brouillon/validate) + front à jour.Consolidée dans la MR unique #144 (M5 — Tickets de pesée, ERP-188 → ERP-193). Fermeture de cette MR empilée.
Pull request closed