# BR-PT-002 - Le lot physique est le pont metier entre purchase, sale et shipment ## Intent Disposer d'un chemin unique et stable pour retrouver les informations logistiques et de facturation reliees a un contrat d'achat ou de vente. ## Scope - Domaine: `purchase_trade` - Flux: navigation metier entre achat, vente, shipment et facture - Priorite: `structurante` ## Expected Behavior Le lot physique (`lot_type = physic`) porte simultanement le lien vers: - la `purchase.line` via `lot.line` - la `sale.line` via `lot.sale_line` - le shipment via `lot.lot_shipment_in` / `lot.lot_shipment_internal` / `lot.lot_shipment_out` Pour toute logique qui doit naviguer entre achat, vente, shipment et facture, il faut privilegier ce lot physique comme source de verite. Depuis une facture d'achat: - remonter a la `purchase.line` - puis au lot physique de la ligne - puis au shipment et aux donnees logistiques associees Depuis une facture de vente: - remonter a la `sale.line` - puis au lot physique matchant qui porte aussi la `purchase.line` - puis au shipment et aux donnees logistiques associees ## Typical Use Cases - recuperer `bl_date`, `bl_number`, `controller`, `from_location`, `to_location` - retrouver une facture provisoire liee au lot - retrouver des fees rattaches au shipment ## Impacted Files - `modules/purchase_trade/lot.py` - `modules/purchase_trade/purchase.py` - `modules/purchase_trade/sale.py` - `modules/purchase_trade/invoice.py` - Templates facture relies aux donnees logistiques, si le flux documentaire est concerne. ## Tests Couvrir les changements au plus proche du flux modifie: - navigation achat vers lot physique puis shipment - navigation vente vers lot physique puis shipment - cas sans lot physique pertinent ## Open Questions - Documenter au cas par cas les champs exposes au reporting facture quand ils dependent de cette navigation.