A pharmacy bill is not a shop bill: it carries a batch, an expiry and an MRP per line, and stock that quietly expires is stock you have already paid for. ClubManager tracks both.
The bill
Batch number, expiry date and MRP on every medicine line.
A pharmacy invoice layout rather than a generic one.
Medicines and general goods on the same counter, billed correctly for each.
Expiry, before it costs you
Stock nearing expiry is flagged while it can still be sold or returned. That alert is the whole difference between a slow-moving line and a write-off.
Buying from distributors
Purchases record the bill, the distributor as a party, and the batch each medicine arrived in. Stock is issued first-expiry-first-out, so the box that expires soonest is the one that leaves first — which is the only ordering that makes sense for medicine and the one a manual system gets wrong on a busy day.
What a line carries
HSN code and tax rate per item, so the invoice computes rather than estimates.
Unit of measure, with a secondary unit and a conversion — strips and boxes, not just "each".
Purchase price and MRP, so margin is visible at the counter.
Minimum stock per item, which is what turns reordering into a list.
Payments and returns
Payments post against a purchase or a sale as their own rows, so partial settlement is recorded rather than rounded. Sale returns become credit notes and purchase returns go back to the distributor, both moving stock through the same ledger as everything else.
Questions owners ask
Does it track batch and expiry per sale? — Yes. A medicine line carries its batch, expiry and MRP, so a bill can be traced back to the stock it came from.
Will it tell me what is about to expire? — Expiry alerts flag stock before the date, while it is still saleable or returnable.