Amisdelaferme fonctionne en flux tendu roulant : les clients commandent en continu, les commandes fournisseur partent selon un calendrier fixe (lundi + mercredi, livraison à J+2). Ci-dessous, une vraie semaine du ledger (15/06 → 05/07) pour deux fournisseurs, sélection dans la navigation : Baron (viande, on commande et on vend à la pièce, 1 colis = 1 UC) et Biodis (bio/primeur, on commande en colis de N mais on vend en pièces, 1 colis = N UC), rejouée pas à pas, chaque chiffre recalculé depuis le journal des StockActions à l'instant T. On mesure le stock à trois niveaux : onHand (ce que la production a écrit, avec son bridage actuel), correct (le stock physique réel = réceptions − demande client) et leur écart, le stock fantôme.
Deux modes, deux URLs partageables. Actuel · prod persistée. Les commandes fournisseur et StockActions réellement écrites par la production actuelle : le stock ledger reste bridé, diverge du physique, et la bande rouge (le fantôme) sous-commande l'envoi suivant. Correct · cible. Ce qu'il faudrait faire : enregistrer le stock au mouvement physique (sans bridage) et commander en colis entiers, net du stock, si bien que le stock physique oscille dans une petite bande, sans rupture ni fantôme (barres vertes = les colis à commander, « réel N » = ce qui a réellement été envoyé).
—zoomtoutvitesse
barre FOURNISSEUR = commande (colis) → prépa J+2 → ● réception → auto-validée ✓ (verte en mode Correct = à re-commander) barres CLIENTS = cycle de vie par commande (réservé → expédié → livré ● → auto-validé ✓) rail fin sous une commande client = marchandise physiquement disponible → livraison client gris / hachuré = demande client non reliée à une réception fournisseur réelle bande ● (reçu/livré) → ✓ (scellé) = délai d'auto-validation : la marchandise a bougé, mais le ledger n'est crédité/décrémenté qu'au cron 12:01 suivant ligne LEDGER = stock : onHand scellé / physique / dispo · la bande ambre (reçu, pas scellé) et rouge (fantôme) = le décalage physique↔ledger, dans les deux modes bande rouge = fantôme (Actuel) · bande verte = stock détenu (Correct)contour ambré tireté (mode Actuel) = sur ce créneau configuré, le moteur prod commande une autre quantité que celle persistée. Survolez la barre. Là où il n'y a pas de stock (Baron), moteur et réel coïncident à 95%.boîte ambrée vide « moteur N » = créneau configuré où le moteur commande N colis et où aucun bon fournisseur n'existe. C'est le signal le plus exploitable, mais il reste à confirmer créneau par créneau : le rejeu propose aussi des bons sur des créneaux déjà passés, ce qu'aucun cron ne pourrait envoyer.barre grise « annulé » = bon au statut CANCELLED : jamais envoyé, jamais réceptionné, non compté comme réel, aucun crédit de stock. Ne les lisez pas comme des commandes perdues : sur cette fenêtre, ce sont des brouillons rétro-datés (créés après leur propre date d'envoi) qu'un nettoyage unique du 19/06 a annulés en bloc. curseur bleu = T (glissez / lecture)
État dynamique
onHand · ledger
—
réservé-in (+)
—
réservé-out (−)
—
disponible → cmd
—
stock correct
—
fantôme (écart)
—
dette / reliquat
—
à commander
—
machine à états · transitions cumulées jusqu'à Tétat = { onHand, réservé-in, réservé-out } · disponible = onHand + in − out