Skip to content

VSN-2847 — Module BPU : liste + création (Informations) — MR 1

yahya.elmokhtari a demandé de fusionner VSN-2847 vers develop

Architecture & Navigation

  • Nouvelle route /dashboard/facturation-paiement/bpu + entrée sidebar sous Facturation et Paiement.
  • Valeur TableType.Bpu = 'BPU' ajoutée à common.ts.

Module Features

  • Liste des règles BPU : table shadcn unifiée avec filtres, pagination, tri, scroll horizontal synchronisé.
  • Création / édition : section Informations générales uniquement (périmètre MR 1/N).
  • Stepper 4 étapes : 1. Informations (active) | 2. Règles tarifaires | 3. Configuration | 4. Résumé & Simulation (les 3 dernières marquées Bientôt).
  • Multi-onglets via useTabsManager (plusieurs règles en cours d'édition en parallèle).

Components Architecture

  • Nouveau dossier src/shared/sections/facturation-paiement/bpu/ :
    • bpu-list-view.tsx, bpu-edit-view.tsx, index.tsx
    • components/ : bpu-list-table.tsx, bpu-informations-section.tsx, bpu-steps-bar.tsx, section-card.tsx, status-pill.tsx
    • hooks/use-bpu-table.ts, constants.ts
  • Store / data layer : useBPUStore (Zustand) + bpuDataSource (mock) + endpoints/bpu.ts (paths prêts pour l'API).
  • Types : BPURule, BPUStatus, BPURuleDraft dans types/bpu.ts.

Key Features

  • Header table #DBD7F9, lignes rounded-2xl + neo-shadow.
  • Colonne Lots en chips avec overflow +N (tooltip listant le reste).
  • Carte Informations générales avec fond mauve clair hsl(var(--p-100)/0.35).
  • Sélecteur multi-lots : Popover + chips supprimables + bouton Tout effacer.
  • Dépendance Client → Département : dept désactivé tant qu'aucun client choisi, auto-reset si le client change.
  • Colonne Créé le alignée sur la convention usagers (date picker JJ/MM/AAAA, datetime DD/MM/YYYY h:mm a, centré, text-sm font-medium tabular-nums).

Technical Implementation

  • Catalogues mockés : 9 lots de marché + 8 clients avec leurs départements desservis (à remplacer par l'API).
  • Génération auto des IDs (BPU-XXX) et codes tarif (TAR-CLIENT-NN).
  • Validation inline simple sur les champs requis (nom, client, dept, lots ≥ 1).
  • Type-check strict OK, ESLint propre, conventions non-canoniques conservées pour rester aligné avec le reste du module Facturation.

Misc fixes inclus dans cette MR

  • Colonne Créé le homogénéisée sur Avoir et Devis (label, filtre date, alignement centré, datetime).
  • Tooltip purple sur les titres tronqués des Propositions IA (préparation circuits).
  • Format des km à 3 décimales dans la fiche Chauffeur > Trajets Assignés.
  • Renommage "Nouvelle paramétration""Nouveau paramètre" (paramétrage IA préparation).

Closes VSN-2847

Rapports de requête de fusion