# Inventory Workflows

> **Rollout status:** Complete — ward and dispensary workflows, auto-reorder draft POs, and scheduled reorder alerts are available. See [Module Status](../shared/module-status.md).

## Overview

The Inventory module helps ward staff request supplies and helps dispensary staff fulfill those requests, receive goods, and move stock between branches. Pharmacy-linked items can also be replenished from the central store.

## Who uses what

| Role | Typical tasks |
|------|----------------|
| Ward nurse / department staff | Create requisitions, track request status |
| Dispensary / stores staff | Approve, issue, receive POs, adjust stock |
| Pharmacy staff | Request medication-linked stock from central store |
| Administrator | Configure suppliers, catalog, permissions |

## Request supplies (ward staff)

1. Open **Dashboard → My Ward Requests** (widget), or go to **Inventory → Requisitions → Create**.
2. Select your branch and department, add line items and quantities.
3. Submit the requisition — status is **Pending** until dispensary staff approve it.
4. When items are issued, status updates; use the widget or requisition view to track progress.
5. If a request cannot be fully fulfilled, dispensary staff may **Close** it with a reason.

## Fulfill a requisition (dispensary staff)

1. Go to **Inventory → Requisitions**.
2. **Approve** or **Decline** pending requests.
3. Open the requisition **View** page → **Items** tab → **Issue** per line (on-hand quantity is shown in the modal).
4. Shortcut: use **Fulfill items** from the list or **My Ward Requests** widget.
5. **Close** partially fulfilled requisitions when remaining lines will not be supplied.

## Request pharmacy stock from central store

1. Ensure a medication-linked **Inventory Item** exists (`medication_id` set).
2. From **Pharmacy → Stock Items**, use **Request from central store** on low-stock rows.
3. Dispensary staff approve and issue the linked requisition as above.

## Receive purchased goods (dispensary staff)

1. **Inventory → Purchase Orders** — create and **Submit** to supplier.
2. Use **Generate from low stock** to build a draft PO from items at or below reorder point.
3. When goods arrive, open the PO and **Receive** (partial quantities supported).
4. **Close** when fully received or remaining lines are written off.

## Move stock between branches

1. **Inventory → Stock Transfers** — create transfer, **Ship**, then **Receive** at destination (partial receive supported).
2. **Close** with reason if in-transit stock will not arrive.

## Adjust stock after a physical count

1. **Inventory → Stock Balances** — open a balance → **Adjust stock** (requires `adjust_stock` permission).

## Low-stock reorder alerts (administrators)

1. Enable alerts under **Core → Settings → Notification Settings** (`inventory_reorder_alerts_enabled` and frequency).
2. The scheduler runs `inventory:check-stock-alerts` on the configured cadence and notifies `super_admin` users when dispensary items are below reorder point.
3. Dispensary staff can also use **Purchase Orders → Generate from low stock** to create a draft PO from those suggestions.

## Where to get help

- Setup and permissions: [Inventory Administration](../admin-guide/inventory.md)
- Module rollout: [Module Status](../shared/module-status.md)
