BizCore v4.6 — Purchase Batch Receiving + FEFO Sales Integration

1. Upload/replace the included files preserving folders.
2. Open update-4.6.php as Super Admin and click Install.
3. Direct Purchase and GRN can capture Batch/Lot and Expiry. Blank batch keeps legacy flow.
4. Fast POS automatically allocates existing batch stock using FEFO (earliest non-expired expiry first).
5. Expired/recalled batches are blocked from FEFO allocation.
6. Sales returns and invoice cancellation restore the original allocated batch quantities.
7. POS search shows a near-expiry FEFO warning when the earliest active batch expires within 30 days.

Compatibility: legacy/non-batch stock continues to work. Batch logic activates automatically when batch records exist for an item/warehouse.
