# Stock Transfer — Warehouse / location transfer

> Fine Chemical (FC) · WMS module · v1.5 · 18/09/2026 · Standard flow — for implementation, testing and development
>
> Generated from the diagram by `sync.js` — do not edit by hand. The diagram is authoritative: report any mismatch with the diagram page.
>
> Diagram page: /en/wms/stock-transfer

## How to read

- Every box on the diagram has a code `Bxx`, numbered in flow order (from the start event, following the arrows).
- "Goes to" lists every arrow leaving the box; text in square brackets is that arrow's condition label.
- "Optional branch" = a dashed arrow on the diagram: may be done or skipped.
- "Data" boxes in the Input lane are incoming data; in the Output lane they are results / end points of the flow.

## Process Flow (swimlane)

### Roles (lanes)

- Input
- Warehouse Staff
- Warehouse Manager
- Output

### Steps

| Code | Role | Type | Content | Platform · Screen | Goes to |
| --- | --- | --- | --- | --- | --- |
| B01 | Input | Data | Item / Warehouse Master Location (Bin) | Master data | B03 |
| B02 | Input | Data | Stock at source warehouse / location | Stock | B14 |
| B03 | Warehouse Staff | Start | Start |  | B04 |
| B04 | Warehouse Staff | Decision | Request or standalone Slip? |  | B05 [Standalone Slip]; B06 [Create Request] |
| B05 | Warehouse Staff | Task | Create Transfer Slip (standalone) Item/Stock · map barcode | Web · Stock Transfer | B07 |
| B06 | Warehouse Staff | Task | Create Transfer Request | Web · Stock Transfer | B08 |
| B07 | Warehouse Staff | Task | Submit for Approval | Web · Stock Transfer | B09 [Slip SUBMITTED] |
| B08 | Warehouse Staff | Decision | Type type? |  | B10 [WH → WH]; B11 [Bin → Bin] |
| B09 | Warehouse Manager | Decision | The document's stock period closed? |  | B12 [Closed]; B13 [Not yet] |
| B10 | Warehouse Staff | Task | WH → WH: From WH → To WH | Web · Stock Transfer | B14 |
| B11 | Warehouse Staff | Task | Bin → Bin: From → To Location (same warehouse) | Web · Stock Transfer | B14 |
| B12 | Output | Data | Blocks every action: Submit · Approve · Cancel · Delete — This action cannot be completed because the affected inventory period is closed through [Close Date] |  | (end) |
| B13 | Warehouse Manager | Task | Approve Slip | Web · Stock Transfer | B15 |
| B14 | Warehouse Staff | Task | Add lines (Item / Stock) | Web · Stock Transfer | B16 |
| B15 | Warehouse Manager | Decision | Available Stock at source ≥ Qty? |  | B17 [No]; B18 [Yes] |
| B16 | Warehouse Staff | Task | Submit Request | Web · Stock Transfer | B19 [SUBMITTED] |
| B17 | Output | Data | Approve blocked — Slip stays SUBMITTED |  | (end) |
| B18 | Warehouse Manager | Task | Deduct source Stock Add destination Stock | System (auto) · Stock Transfer | B20; B21 [optional branch]; B22 |
| B19 | Warehouse Staff | Task | Print QR (QR = Request No.) | Web · Stock Transfer | B23 |
| B20 | Output | Data | Transfer Slip = APPROVED Stock moved source → destination |  | (end) |
| B21 | Warehouse Staff | Task | W/H Stock Checking (view-only lookup) | Web · W/H Stock Checking |  |
| B22 | Warehouse Manager | Decision | Request still Remaining > 0? |  | B24 [No]; B23 [Yes — new Slip for the remainder] |
| B23 | Warehouse Staff | Decision | Create Slip where? |  | B25 [Mobile]; B26 [Web] |
| B24 | Output | Data | Request → CLOSED (automatic) |  | (end) |
| B25 | Warehouse Staff | Task | Scan QR Request → auto-create Slip | Mobile · Stock Transfer | B27 |
| B26 | Warehouse Staff | Task | Create Transfer Slip from this Request | Web · Stock Transfer | B28 |
| B27 | Warehouse Staff | Task | Scan Barcode | Mobile · Stock Transfer | B29 |
| B28 | Warehouse Staff | Task | From Request → pull lines | Web · Stock Transfer | B30 |
| B29 | Warehouse Staff | Task | Make Slip | Mobile · Stock Transfer | B07 |
| B30 | Warehouse Staff | Task | Map Barcode (double-click Barcode cell) | Web · Stock Transfer | B07 |
| B31 | Warehouse Manager | Start | Start |  | B32 |
| B32 | Warehouse Manager | Task | Cancel (Slip is APPROVED) | Web · Stock Transfer | B33 |
| B33 | Warehouse Manager | Decision | Destination stock enough AND no later action? |  | B34 [No]; B35 [Yes] |
| B34 | Output | Data | Cancel blocked — goods used at destination or a later action on another screen |  | (end) |
| B35 | Warehouse Manager | Task | Slip → CANCELLED return Stock dest. → source | System (auto) · Stock Transfer | B36; B37 |
| B36 | Output | Data | Stock back at source Slip = CANCELLED |  | (end) |
| B37 | Output | Data | CLOSED Request → back to SUBMITTED |  | (end) |

### Step details (hover content on the diagram)

#### B04 · Request or standalone Slip?

- Warehouse Staff
- Comes from: B03
- Goes to [Standalone Slip]: B05 · Create Transfer Slip (standalone) Item/Stock · map barcode
- Goes to [Create Request]: B06 · Create Transfer Request

#### B08 · Type type?

- Warehouse Staff
- Comes from: B06
- Goes to [WH → WH]: B10 · WH → WH: From WH → To WH
- Goes to [Bin → Bin]: B11 · Bin → Bin: From → To Location (same warehouse)

#### B09 · The document's stock period closed?

- Warehouse Manager
- Comes from: B07
- Goes to [Closed]: B12 · Blocks every action: Submit · Approve · Cancel · Delete — This action cannot be completed because the affected inventory period is closed through [Close Date]
- Goes to [Not yet]: B13 · Approve Slip

#### B15 · Available Stock at source ≥ Qty?

- Warehouse Manager
- Comes from: B13
- Goes to [No]: B17 · Approve blocked — Slip stays SUBMITTED
- Goes to [Yes]: B18 · Deduct source Stock Add destination Stock

#### B22 · Request still Remaining > 0?

- Warehouse Manager
- Comes from: B18
- Goes to [No]: B24 · Request → CLOSED (automatic)
- Goes to [Yes — new Slip for the remainder]: B23 · Create Slip where?

#### B23 · Create Slip where?

- Warehouse Staff
- Comes from: B19, B22
- Goes to [Mobile]: B25 · Scan QR Request → auto-create Slip
- Goes to [Web]: B26 · Create Transfer Slip from this Request

#### B33 · Destination stock enough AND no later action?

- Warehouse Manager
- Comes from: B32
- Goes to [No]: B34 · Cancel blocked — goods used at destination or a later action on another screen
- Goes to [Yes]: B35 · Slip → CANCELLED return Stock dest. → source

## Status lifecycle

#### Transfer Request

`SAVED` → `SUBMITTED` → `CLOSED`

Transitions:

- `SAVED` -- Submit Request --> `SUBMITTED`
- `SUBMITTED` -- Auto: every line Remaining = 0 --> `CLOSED`
- `CLOSED` -- Linked Slip cancelled — Remaining goes back up --> `SUBMITTED` (back)
- `SAVED` -- Delete Request --> `Deleted`

#### Transfer Slip

`SAVED` → `SUBMITTED` → `APPROVED` → `CANCELLED`

Transitions:

- `SAVED` -- Submit for Approval --> `SUBMITTED`
- `SUBMITTED` -- Approve — source stock OK --> `APPROVED`
- `APPROVED` -- Cancel — destination stock & no later action --> `CANCELLED`
- `CANCELLED` -- Edit Remark / Line items → approve again --> `APPROVED` (back)
- `SAVED` -- Delete --> `Deleted`

- `CANCELLED` (Transfer Slip) → pulls row Transfer Request back

Notes on the diagram:

- Approve blocked if source Available Stock < Qty — the Slip stays SUBMITTED — or the stock period is closed

## Input

| # | Input | Type | Used in step |
| --- | --- | --- | --- |
| I-1 | Item Master, Warehouse, Location (Bin) | Master data | Every line, Request/Slip header |
| I-2 | Stock at the source warehouse / location | Stock | Add lines (Stock popup) · Approve Slip (source Available Stock check) |

## Step ↔ screen

| Step | Role | Screen |
| --- | --- | --- |
| Create Transfer Request · pick type WH → WH / Bin → Bin · Add lines (Item / Stock) | Warehouse Staff | Stock Transfer · Web |
| Submit Request · Print QR | Warehouse Staff | Stock Transfer · Web |
| Scan Request QR → auto-create Slip · Scan Barcode · Make Slip | Warehouse Staff | Stock Transfer · Mobile |
| Create Transfer Slip from this Request · From Request · Map Barcode | Warehouse Staff | Stock Transfer · Web |
| Create Transfer Slip (standalone) | Warehouse Staff | Stock Transfer · Web |
| Submit for Approval | Warehouse Staff | Stock Transfer · Web |
| W/H Stock Checking (lookup, optional) | Warehouse Staff | W/H Stock Checking · Web |
| Approve Slip · Cancel | Warehouse Manager | Stock Transfer · Web |
| The document’s stock period is closed → every action is blocked (Submit · Approve · Cancel · Delete) with the message `This action cannot be completed because the affected inventory period is closed through [Close Date]` | System (auto) | Stock Transfer |

## Output

| # | Output | Produced when |
| --- | --- | --- |
| O-1 | Transfer Request: `SAVED` → `SUBMITTED` → `CLOSED` | CLOSED automatically when every line has Remaining = 0 |
| O-2 | Transfer Slip = `APPROVED` | Manager clicks Approve Slip while the Slip is `SUBMITTED` and source Available Stock ≥ Qty |
| O-3 | Stock decreases at the source warehouse / location and increases at the destination | On Approve |
| O-4 | Transferred / Remaining updated on the Request lines | Slip is linked to a Request |
| O-5 | *Approve blocked:* Slip stays `SUBMITTED`, stock unchanged | Source Available Stock < Qty |
| O-6 | *Exception:* Slip = `CANCELLED`, stock returned from destination to source, a CLOSED Request returns to SUBMITTED — or the cancel is blocked | Slip is `APPROVED`; blocked if destination Available Stock < Qty, or a later action on another screen |
