VLMIS Manual
Operations

Arrivals

Record vaccine arrivals, batches, and barcode verification at the central store.

Who can access this

Visible only to the CentralUser role: the warehouse staff of the central (main) store, the single national store that all other stores in the hierarchy receive stock from.

Overview

The Arrivals page is where the central store records vaccine shipments as they arrive: which product, which batch, how many doses/units, who funded the shipment, and (optionally) verification against UNICEF's TRVST service via a Zebra barcode scanner and the ScanBridge mobile app. See TRVST & ScanBridge for how the scanning pipeline works end to end.

Recording an arrival does not change your stock yet

It only creates a Draft record. Stock increases once that record is Posted, see How stock actually increases below.

Tabs

  • Arrivals: log and manage arrival records (draft, edit, post, delete).
  • Batch Lists: register the batches (lot number, GTIN, expiration date, etc.) that arrivals are recorded against.
  • TRVST Verification History: only shown when TRVST scanning is enabled in Maintenance → Settings; history of TRVST verification attempts.
  • Zebra Scans: read-only history of every raw barcode string received from a Zebra scanner via ScanBridge, whether or not it parsed successfully.

Batch Lists: registering a batch first

A batch must exist before you can log an arrival against it: the Arrivals form's batch picker only offers batches already registered here. To register one, fill in:

  • Product Type, Supplier, Product
  • Arrival Date
  • Batch Number (lot number) and GTIN (labelled BTIN in the form)
  • Units per Container (doses/units per vial or box)
  • Expiration Date: the date picker only allows dates after today; you cannot register a batch that is already expired
  • Remarks

You can fill these fields by hand, or let a Zebra scan pre-fill Batch Number, GTIN, Expiration Date, and Serial Number (if the package is serialized), see TRVST & ScanBridge.

Duplicate batch numbers aren't blocked on create

The backend does not reject a duplicate batch number or duplicate GTIN when you first create a batch. That uniqueness check only runs when editing an existing batch, so two batches can end up with the same batch number or GTIN if entered twice. Double-check the batch list before saving rather than relying on the system to catch it.

Arrivals: logging and posting an arrival

The Log New Arrival button opens a form requiring:

  • Receipt Type (always "Arrival" here), Product Type, Arrival Date
  • Product and Batch: the batch must already be registered (see above); the backend looks the batch up by ID and rejects the request if it doesn't exist
  • VVM Stage: only selectable if the chosen product has VVM tracking enabled, otherwise it's locked
  • Doses/Units, Remarks
  • Shipment Value (RWF), Funder (Government or Partner)
  • Partner Name: only shown, and required, when Funder is "Partner"; the backend rejects the request with an error if it's left blank in that case

Submitting creates the arrival in Draft status. In the Arrivals table, each Draft row has three actions:

  • Post: commits the arrival to stock (see below).
  • Edit: change any field before posting.
  • Delete: remove the draft entirely.

All three are only available while the row is Draft, and only to users in the same organization that created it. Once an arrival is Posted (status becomes Complete), it becomes read-only: Edit and Delete disappear, Post is gone, and only a view action remains.

Posting cannot be undone

Once you post an arrival, it locks permanently and the stock it adds cannot be removed by editing or deleting that record. Double-check quantity, batch, and funder before you post.

How stock actually increases

Logging an arrival does not touch your inventory numbers: the draft record is saved with a stock balance of zero. The increase only happens at the Post step:

  1. The system finds (or creates, starting at zero) the stock row for that exact product, batch, and organization combination.
  2. It adds the arrival's quantity on top of whatever that stock row already holds (an IN movement), and records the resulting balance on the arrival itself.
  3. The arrival is marked Complete and locked from further edits.

Inventory not moving?

If you log an arrival and don't see your inventory change on the Inventory page, check whether it's still sitting in Draft on the Arrivals tab. It needs to be Posted first.

Zebra Scans

Every string a Zebra scanner sends through ScanBridge is logged here: device ID, who scanned it, when, and the raw scanned text, regardless of whether it parsed as valid GS1 data. Use this tab to audit scanning activity or debug a scan that didn't produce the expected auto-fill on Batch Lists.

Screenshots and step-by-step walkthroughs to be added.

On this page