Aller au contenu

Lots et mouvements

Le module ne tient pas un compteur par article : il tient la liste de ce qui est entré et de ce qui en a été retiré. Le lot porte la quantité et le coût, le mouvement porte la trace.

Le lot

Un lot naît à l'exécution d'une réception, une fois par ligne d'article. Il retient trois choses : l'article, la quantité reçue et le coût unitaire de revient de cette réception. Il reçoit une référence, prise dans la séquence des lots, sauf si la ligne d'opération en imposait une.

Un lot n'est donc pas une étiquette collée après coup sur un stock : c'est l'entrée elle-même, conservée. Deux réceptions du même article au même prix donnent deux lots, parce qu'elles se sont produites deux fois.

Un lot se lit à travers trois quantités :

  • la quantité initiale, celle de la réception ;
  • la quantité consommée, ce que les sorties lui ont pris ;
  • la quantité restante, ce qu'il peut encore fournir.

Un lot se lit aussi par emplacement : la même référence peut être répartie entre plusieurs emplacements internes, chacun avec son stock disponible propre, parce qu'un transfert interne déplace du lot sans le consommer.

Disponible et consommé

Le stock disponible d'un lot dans un emplacement est ce qui y est entré moins ce qui en est sorti. Le stock d'un article dans un emplacement est la somme des disponibles de ses lots à cet endroit.

La distinction compte : un lot dont la quantité restante est nulle n'a pas disparu, il est consommé. Il reste consultable, ses mouvements aussi, et c'est lui qui explique la valeur des sorties qu'il a servies.

La sortie consomme les lots, dans l'ordre

À l'exécution d'une sortie ou d'un transfert, le module prend les lots dans l'ordre d'entrée — le plus ancien d'abord, méthode FIFO — jusqu'à couvrir la quantité demandée. Une seule ligne d'article peut donc produire plusieurs mouvements, un par lot entamé.

Vous pouvez imposer le lot à utiliser sur la ligne d'opération. Le module vérifie alors que ce lot est bien présent dans l'emplacement source et qu'il y détient assez ; sinon il refuse, plutôt que de retomber silencieusement sur un autre lot.

LIFO n'existe pas

Le module ne consomme jamais le lot le plus récent en premier. Une demande de LIFO est explicitement refusée.

Quand l'emplacement source est un emplacement parent, le module descend chercher la quantité dans celui de ses enfants qui la détient depuis le plus longtemps. Le mouvement enregistré nomme cet emplacement réel, pas le parent.

Le mouvement, piste d'audit

Un mouvement de stock est écrit à l'exécution, jamais avant, jamais après. Il retient la date, l'opération et son document source, l'article, la quantité, l'emplacement de départ, l'emplacement d'arrivée, le coût retenu et l'auteur. Chaque mouvement dit aussi quels lots il a utilisés, et pour quelle quantité.

Les mouvements ne se corrigent pas et ne se suppriment pas. Une erreur se répare en écrivant l'opération inverse, ce qui ajoute des mouvements au lieu d'en retirer. C'est ce qui rend le stock reconstituable : à toute date, il est la somme de ce qui a été enregistré.

Annuler un lot

Un lot reçu par erreur peut repartir seul, sans toucher au reste de sa réception. Le module l'accepte à quatre conditions :

  • le lot n'a jamais été consommé — dès qu'une sortie s'y est servie, l'annulation est refusée ;
  • il n'a pas déjà été annulé ;
  • il provient bien d'une réception, et cette réception est exécutée ;
  • le type d'opération de la réception déclare un type de retour.

L'annulation prend alors la forme d'une opération de retour, portant la quantité et le coût du lot, validée et exécutée immédiatement, et rattachée à la réception d'origine. Voir Cycle de vie d'une opération.

Changelog

  • 1.0 (18 août 2026) : création du document.