Stock Transfers
Stock Transfers move inventory between two branches with a controlled, auditable handoff. A transfer deducts stock from the source only when it is dispatched and adds stock to the destination only when the destination records receipt.
The source and destination must be different active branches using the same currency. Each line maps a source-branch ingredient to a destination-branch ingredient with the same measurement unit.
Transfer Lifecycle
text
Draft → Approved → Dispatched → Partially Received → Received
│ │ │ └──→ Closed With Discrepancy
└→ Cancelled ────────┘
└──→ Voided (only before any receipt)| Status | Meaning |
|---|---|
| Draft | Definition can be edited or cancelled. No stock is moved. |
| Approved | Definition is frozen and ready for dispatch. |
| Dispatched | The full approved quantity has been removed from the source branch. |
| Partially Received | One or more receipts were posted; some dispatched quantity remains outstanding. |
| Received | All dispatched quantities were received at the destination. |
| Closed With Discrepancy | Outstanding quantities were closed with a required discrepancy reason. |
| Cancelled | A Draft or Approved transfer was stopped before dispatch. |
| Voided | A dispatched transfer with no receipts was reversed, restoring the source stock. |
Index Page
The list includes the transfer reference, source branch, destination branch, status, expected arrival, item count, dispatch time, and completion time.
Filters and Actions
- Filter by Source Branch, Destination Branch, Status, and date range.
- Create a transfer, open its details, or export the list when permitted.
- Available row actions change with the transfer status and the user’s permissions: Edit, Approve, Dispatch, Receive Stock, Close With Discrepancy, Cancel, or Void Dispatch.
Branch-assigned users can create, edit, approve, dispatch, cancel, and void transfers only for their source branch. They receive and close transfers only for their destination branch.
Create a Transfer
- Open Inventory → Stock Transfers and select Create.
- Select the Source Branch and a Destination Branch. Only branches with the same currency are available.
- Add one or more transfer lines.
- On each line, select the source ingredient, then choose its matching destination ingredient. The destination list is restricted to the same unit.
- Enter the requested quantity. It must be greater than zero and no greater than the source ingredient’s available stock.
- Optionally enter an expected arrival date and notes, then save the Draft.
| Field | Description | Required |
|---|---|---|
| Source Branch | Branch that provides stock | Yes |
| Destination Branch | Branch that receives stock | Yes |
| Expected Arrival | Expected delivery date/time | No |
| Notes | Instructions or transfer context | No |
| Source Ingredient | Ingredient stocked at the source branch | Yes |
| Available | Current source on-hand quantity, shown for reference | Calculated |
| Destination Ingredient | Equivalent ingredient at the destination branch, with the same unit | Yes |
| Quantity | Requested transfer quantity | Yes |
An ingredient can be used only once as a source and only once as a destination within the same transfer. You cannot save a transfer with duplicate ingredient pairs.
Approve and Dispatch
Approve
Approve a complete Draft after checking the branch pair, ingredient mapping, unit, and available source stock. Approval freezes the document—its branches and lines can no longer be edited—and does not change inventory.
Dispatch
Dispatch an Approved transfer only when the goods leave the source branch. The system rechecks availability, then posts a Transfer Out movement for every line. The source stock decreases by the full dispatched quantity and the transfer becomes Dispatched.
The dispatch captures the item cost and the shared currency/rate used by the transfer. This preserves the cost trail for the destination receipt.
Receive Stock
At the destination, select Receive Stock and enter the quantity actually received for one or more outstanding lines. A receipt may include only part of the dispatched quantity, and no line may exceed its remaining quantity. Receipt notes are optional.
Each receipt creates a Transfer In movement at the destination for the received quantity. The result is:
- Partially Received if any dispatched quantity remains; or
- Received when all dispatched quantities have been received.
The detail page retains each receipt, its quantities, timestamp, recipient, and linked movements. A receipt is immutable; correct any operational error through the approved inventory process rather than editing the receipt.
Exceptions
Cancel Before Dispatch
Draft and Approved transfers can be cancelled from the source side. A reason is required. Cancellation does not create stock movements because nothing has been dispatched.
Close With Discrepancy
If a dispatched or partially received transfer will not be completed, the destination can close it with a required reason. The remaining dispatched quantity is recorded as a discrepancy and the transfer becomes Closed With Discrepancy. This does not add the missing quantity to destination stock.
Void a Dispatch
A Dispatched transfer can be voided from the source side only if no receipt has been recorded. A reason is required. The system creates reversal movements for the outbound transfer movements, restores source stock, and sets the transfer to Voided. A transfer that has a receipt cannot be voided.
Audit and Reconciliation
Use the transfer detail page to compare Requested, Dispatched, Received, Remaining, and Discrepancy quantities for each line. It also shows lifecycle history, users and timestamps, receipts, movement links, and cost information. Use this view together with Stock Movements when investigating an inter-branch discrepancy.
