RG-161 – La quarantaine bloque la cession
Un lot en quarantaine ne peut être ni transformé, ni vendu, ni expédié. Levée sur décision motivée.
Mise en œuvre
Section intitulée « Mise en œuvre »Le statut quarantaine existe depuis L2-1 (app.lot.statut, matrice stock.transitionLot : un lot validé y entre, il en sort validé ou annulé, jamais consommé directement).
Invariant I5, livré en L2-2 : un lot en quarantaine ne sort pas tant qu’il y est. La base refuse tout débit du compte du lot (app.tg_lot_quarantaine_sortie, code lot_en_quarantaine), donc aucune consommation, vente ou expédition ne peut le prélever ; le domaine le reproduit (stock.peutSortir). Le déplacement entre emplacements n’est pas une sortie. La mise en quarantaine et la levée sont des événements en ajout seul (app.quarantaine_lot) ; la levée exige un motif et la permission stock.release_quarantine (RSCI, direction), et justifie les constats de mise en quarantaine encore ouverts. La contre-passation de la création d’un lot en quarantaine est aussi refusée : la dévalidation (L2-6) devra lever la quarantaine d’abord (EC-116). Tests : db/tests/l2-2.sql, apps/api/test/receptions.test.ts, VT-STOCK-030 et 031.
Scénarios de recette
Section intitulée « Scénarios de recette »Mise en œuvre (L2-7)
Section intitulée « Mise en œuvre (L2-7) »Un rappel réel met en quarantaine tous les lots validés de sa descendance (transition valide → quarantaine existante) ; I5 et le contrôle de vente (409) les empêchent ensuite de sortir. Les lots consommés, rejetés ou annulés du plan sont listés à part (lots_non_bloquables). EC-124 (3).