Batch Tracking and Expiry Control
Pharmacy mode depends on batch-based and expiry-based inventory control. Quantity alone is not enough.
What each stock unit should carry
Every sellable pharmacy stock unit should be understood through:
- product
- branch
- batch number
- manufactured date
- expiry date
- available quantity
Purchase requirements
Pharmacy purchases should include:
- supplier
- product
- quantity
- batch number
- manufactured date
- expiry date
This supports legal traceability, stock rotation, and recall readiness.
Opening stock rule
On the Product Create page:
- if opening stock is
0, batch details stay hidden - if opening stock is greater than
0, batch number, manufactured date, and expiry date become required
FEFO selling
When multiple valid batches exist, the system should prefer the batch that expires sooner first.
This is the FEFO method:
First Expiry, First Out
Expired stock handling
Expired products must not be sold.
Recommended system behavior:
- staff tries to add a medicine
- system detects expired batch quantity
- sale from the expired batch is blocked
- a warning or modal is shown
- staff confirms cleanup if needed
- the system creates an expiry-related stock adjustment
- expired quantity is removed from sellable stock
Dashboard and page responsibility
Best practice:
- dashboard = operational awareness
- stock pages = detailed inventory control
- billing = fast but controlled selling
Dashboard alerts should prominently show:
- expiring soon
- expired stock
- low stock