Pharma Pack
The flagship pack, and the deepest. Batch and expiry tracking with FEFO allocation on every issue, certificates of analysis per batch, MoH product registration, a controlled-substance ledger, cold-chain enforcement, and a recall tool that walks any batch to every customer who received a unit.
- FEFO allocation, batch identity kept end to end
- 90 / 60 / 30-day expiry dashboard
- CoA per batch and MoH registration
- Cold chain and full recall traceability
A pharmaceutical distributor has obligations a general wholesaler does not. This pack adds them to the same core, rather than making you buy a different system.
What it switches on
- Batch number, manufacture date, and expiry captured at goods receipt
- FEFO allocation on every issue, with the chosen batch visible per line
- An expiry dashboard at 90, 60, and 30 days
- Certificate of analysis stored per batch
- Ministry of Health registration numbers and their expiry
- A controlled-substance ledger, and ATC codes on products
- Cold-chain zones, enforced on both putaway and allocation
- Recalls — pick a batch, get every customer who received a unit
Batch identity survives transfers, sales, and returns. That is what makes the recall tool answer in seconds rather than in a week of paper.
How Pharma Pack fits the rest of the system
Bounded
The module owns its tables and its service interface. Other modules reach in only through services and async events — never SQL.
Test-vector verified
Every domain rule has two implementations — Dart and Java — and a single shared test vector. CI fails on any divergence.
Audit-logged
Every command writes an entry to the append-only audit log with a chain hash. The daily verifier proves the log has not been tampered with.