#2886 · MODÈLE DE STOCK EN FLUX TENDU

Machine à remonter le stock

Amisdelaferme fonctionne en flux tendu roulant : les clients commandent en continu, les commandes fournisseur partent selon un calendrier fixe (Baron : lundi + mercredi, livraison à J+2). Ci-dessous, une vraie semaine du ledger (Baron, 15/06 → 05/07) rejouée pas à pas. Faites défiler le temps : chaque chiffre est recalculé depuis le journal des mouvements de stock à l'instant T. Deux ledgers tournent en parallèle — l'actuel (ce que le système a réellement écrit) et le correct (réceptions − demande client) — et leur écart est le stock fantôme qui sous-commande l'envoi suivant.

vitesse :
Stock actuel (ledger)
 
Stock correct
 
Fantôme (écart)
 
À commander (réel)
 
commande / réception fournisseur (Baron) livraison client livraison servie stock 0 → consommation perdue ledger correct

Ce qu'il se passe Le fantôme, pas à pas

La cadence roulante garantit la panne : un client dont la date de livraison tombeentre deux réceptions fournisseur est servi alors que Product.stock = 0. Le cron d'auto-validation décrémente alors max(0, 0 − 1) = 0 — la consommation est silencieusement perdue. La réception qui couvrait ce client arrive plus tard et ajoute +N de stock… sans rien à compenser.

Ce qu'on a aujourd'hui

  • Réception : stock += N, sans plafond, sans annuler le réservé-entrée.
  • Livraison client : stock = max(0, stock − q)bridée à 0, la sortie est perdue.
  • Réception validée après les clients qu'elle sert (une CF couvre une fenêtre de dates).
  • Résultat : stock fantôme soustrait de la commande suivante (Baron 31→26, Phil 11→6).
  • Passe l'audit I1–I5 : stock == ledger == la valeur fantôme.

Ce que ça devrait être

  • La réception consomme le réservé-sortie qu'elle couvre (via sourceOrderIds).
  • Ou : la livraison écrit la vraie sortie au ledger même en négatif (dette), la réception la solde.
  • Σ réceptions − Σ livraisons = stock réel, toujours. Le fantôme devient impossible.
  • Corrige le ledger de tous les fournisseurs, pas seulement ceux marqués flux-tendu.
  • Nettoie les 126 u de réservé-entrée périmé sur des CF déjà reçues.

Les chemins Processus modélisés dans la scène

La scène relie les flux réellement séparés dans le code :P1/P2 génération roulante des commandes fournisseur (cron 30 min + reconcile 07:15) → réservé-entrée ;P1 intake client (sync PrestaShop) → réservé-sortie ;P3 auto-validation réception (date prévue + 12 h) ;P4 auto-validation livraison client (date livraison + 12 h, avec le bridage) ;P5 le ledger (Product.stock + stockLedger). Le détail complet, les diagrammes Mermaid avant/après et la liste des correctifs + tests sont dans docs/stock/2886-rolling-stock-model.md.

données réelles · export ledger prod (ep-restless-rain) · Baron Sylvain · 15/06 → 05/07/2026 · le temps et tous les chiffres sont dérivés du journal des StockActions — #2886