Overview
If you trade narcotic (Schedule-N) drugs, the Drug Controller wants a register that proves every box you took in and every box you sent out — with a running balance that always ties. Keeping that in a paper register is slow and easy to fudge. Neev's narcotics register is the digital version: one line per batch movement, latest first, with the balance after every entry already worked out for you.
Paid Pack · locked
This article is part of the Pharma PackPharma Pack
You can read the guide. The actions it describes unlock when an owner adds this Pack in Billing & entitlements.
This screen is part of the Pharma Pack. The Owner installs the Pharma Pack to switch it on; once installed, the register and its movement entry appear for the Owner. Note that the automatic dispense entry from finalized invoices is not fully wired yet (it reads a batch field that isn't on invoice lines today), so for now you record movements by hand from the screen — see Common workflows.
Where to find it
Web only, Owner only. In the sidebar, open Pharma → Narcotics. The route is /pharma/narcotics. The page title shows the live row count next to it, e.g. Narcotics register (142).
The page has three tabs over the same ledger:
- Register — the full append-only ledger, latest first.
- Balance — the current balance for one batch (type a batch ID into the filter to resolve it).
- Movements — the same ledger pre-filtered to the last 7 days, for a quick "what moved this week" view.
Key concepts
- Schedule-N — narcotic drugs under the Drugs Rules. These are the products that route to this register.
- Movement type — every line is one of three: Receipt (stock in, +), Dispense (stock out, −), or Adjustment (a correction, either direction). The quantity you type is always a positive whole number; the sign comes from the movement type.
- Balance after — the running balance for that batch right after the line applies. Neev computes it for you, so the regulator export is a single straight read down the column.
- Reference — what the movement ties back to:
invoice,purchase_invoice,stock_adjustment,recall, oropening_balance, plus the reference ID. This is how an inspector traces a line back to a document. - Regulator-required fields — a free notes box that absorbs per-state Drug-Controller extras (patient name, prescription number, attending doctor MCI) without changing the form.
Common workflows
Sidebar → Pharma → Narcotics. You land on the Register tab with the full ledger, latest first.
Hit Record movement. Fill in the Batch ID, pick Receipt / Dispense / Adjustment, type a positive Quantity, choose a Reference type and Reference ID, and add any Notes the regulator wants. Save — Neev writes one new line and recomputes the batch balance.
Open the Balance tab, type the batch ID in the filter. You'll see current balance, total movement count, and the date of the last movement for that batch.
Open the Movements tab — it shows the same ledger already filtered to the last 7 days. Adjust the From/To dates to widen the window.
On the Register or Movements tab, type the batch ID in the batch filter to pull just that batch's lines.
Role notes
This screen is Owner-only. Recording a movement is gated on the narcotic-record permission (owner-tier), and viewing the register or a balance is gated on the narcotic-read permission — both held only by the Owner once the Pharma Pack is installed.
Only Owner can open the narcotics register and record movements. No other role sees this screen — recording, listing, and balance checks are all Owner-level narcotic permissions that bind to the Owner only after the Pack is installed. Pack permissions are not granted to any role until the Pharma Pack is switched on.
Tips & time-savers
Use the Balance tab before you dispense a tight batch — type the batch ID and you'll see the current balance, total movement count, and the last-movement date in one read, so you know exactly how much is left before you write the line.
Set your starting stock once with a Receipt line and the reference type opening_balance — every later receipt and dispense then stacks cleanly on top, and the balance column always ties to what's on the shelf.
Gotchas
The register is append-only — there is no edit or delete. Once you save a line it stays. To correct a mistake, record an Adjustment in the opposite direction; the wrong line and its correction both stay visible, which is exactly what an inspector expects.
A Dispense that would push a batch below zero is blocked — the balance cannot go negative. If you hit this, your recorded stock for that batch is lower than the quantity you're trying to send out: check the Balance tab and fix the underlying batch (e.g. record the missing receipt) before dispensing.