07 · Packs
Paid Pack

Narcotics register

The append-only, regulator-format movement ledger for Schedule-N (narcotic) batches — every receipt, dispense, and adjustment with a running balance that can never go negative.

5 min read · updated 28/05/2026

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.

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, or opening_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

1
Open the register

Sidebar → Pharma → Narcotics. You land on the Register tab with the full ledger, latest first.

2
Record a movement

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.

3
Check a 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.

4
See this week's movement

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.

5
Find one batch's history

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

Tip

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

Warning

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.

Warning

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.

Related