# v73 — Returns, Waste & Inventory Loss Operations

v73 closes the operational gap between sales returns and stock loss.

Implemented:
- Existing v39 Sales Return / Refund engine is reused, not replaced.
- Return dispositions:
  - Return to stock
  - Quarantine / inspection
  - Damaged
  - Waste
  - Expired
  - Prepare return to supplier
  - No stock movement
- Return posting keeps existing payment refund / credit settlement / approval behavior.
- Restock returns post inventory back through the immutable inventory ledger.
- Quarantine returns do not become sellable stock until explicitly released.
- Damaged / waste / expired customer returns create loss events for analytics without falsely adding them to available stock.
- Inventory reason-code catalog with system reasons for damage, waste, expiry, shrinkage, internal use, sample, count variance and correction.
- Lot-aware inventory adjustments.
- Financial value impact captured from the weighted-average valuation ledger.
- Waste / damage / expiry / shrinkage adjustments automatically create loss events.
- Adjustment reversal is a compensating ledger movement; original history is preserved.
- Approval policy hook:
  action_code = inventory.loss.post
  supported condition keys:
  - reason_codes
  - max_quantity_without_approval
- Quarantine resolution:
  - release to stock
  - waste
  - damaged
  - expired
  - return to supplier
- Supplier returns post inventory out and preserve cost/value.
- Inventory UI now exposes Adjustments, Waste & Losses, Quarantine and Supplier Returns.
- Sales invoice UI exposes a guided return builder and existing refund settlement behavior.

Accounting boundary:
Supplier-return stock movement is implemented here. Supplier payable/debit-note accounting is intentionally not fabricated. When AP credit-note support is added, it should reference purchasing.supplier_returns through the Payables public contract.

Quarantine boundary:
Quarantine quantity is deliberately excluded from sellable InventoryBalance until release. This prevents quarantined customer returns from inflating available stock.
