# Lots Management

Statut: `migration partielle`

## BR-PT-LOTMGT-001 - Separations matching, side et shipping status

Source: `BR-PT-023` et notes `2026-05-09`

### Regle consultant

Le rapport Lots Management doit permettre de lire separement le matching
commercial, le sens achat/vente et l'avancement logistique.

### Notes developpeur

- Filtres: `Matching status`, `Side`, `Shipping status`, `Dimension`,
  `Strategy`.
- Dates `As of` / `To`: `purchase.purchase_date` et `sale.sale_date`.
- `Unshipped`: aucun `shipment_in`.
- `Scheduled`: shipment `draft`.
- `Shipped`: shipment `started`.
- `Received`: shipment `received` ou `done`.
- `Shipment Type = Dropship` si `from_location.type = supplier` et
  `to_location.type = customer`, sinon `Inbound`.
- `Mark as finished` masque seulement les reliquats ouverts / virtuels, pas
  les lots physiques.

## BR-PT-LOTMGT-002 - Create mirror depuis quantites ouvertes

Source: demande metier `2026-07-27`

### Regle consultant

Depuis Lots Management, l'action `Create mirror` cree un seul contrat oppose
avec exactement une ligne miroir par quantite ouverte selectionnee.

### Notes developpeur

- La selection doit contenir uniquement des `lot.qt` ouverts, virtuels et non
  matches.
- Les lignes achat et vente ne peuvent pas etre melangees dans la meme
  selection.
- Les lots physiques sont exclus.
- Les produits et unites peuvent differer entre lignes, car ils sont portes
  par chaque ligne miroir et non par le header.
- Le wizard ne doit pas permettre fonctionnellement d'ajouter, supprimer ou
  remplacer les lignes sources selectionnees; le serveur revalide ces
  invariants a la creation.
