# Inventory Approve — Central Slip approval / cancellation

> Fine Chemical (FC) · WMS module · v1.3 · 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/inventory-approve

## 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 | Warehouse · Line Transaction · Status | Master data | B03 |
| B02 | Input | Data | Slip SUBMITTED / APPROVED / CANCELLED from every screen with Slips to approve | Business screens | B04 |
| B03 | Warehouse Manager | Start | Start |  | B04 |
| B04 | Warehouse Manager | Task | Search / Filter (Warehouse · Transaction · Status · Line · Slip No) | Web · Inventory Approve | B05; B06 [optional branch] |
| B05 | Warehouse Manager | Task | Select one or more Slips (checkbox) | Web · Inventory Approve | B07 |
| B06 | Warehouse Manager | Task | Double-click a row → open the Slip source screen | Web · Inventory Approve |  |
| B07 | Warehouse Manager | Task | Approve (Slip SUBMITTED / CANCELLED) | Web · Inventory Approve | B08 |
| B08 | Warehouse Manager | Decision | Each Slip: meets source-screen conditions? |  | B09 [No]; B10 [Yes] |
| B09 | Warehouse Manager | Task | Slip keeps its status · error logged | System (auto) · Inventory Approve | B11 |
| B10 | Warehouse Manager | Task | Slip → APPROVED updates stock + Request per source-screen logic | System (auto) · Inventory Approve | B12 [optional branch]; B11 |
| B11 | Warehouse Manager | Task | Batch result X succeeded · Y failed | System (auto) · Inventory Approve | B13; B14 |
| B12 | Warehouse Staff | Task | W/H Stock Checking (view-only lookup) | Web · W/H Stock Checking |  |
| B13 | Output | Data | Passing Slips = APPROVED stock & Request updated |  | (end) |
| B14 | Output | Data | Failed Slips keep their status + list of failed Slip No |  | (end) |
| B15 | Warehouse Manager | Start | Start |  | B16 |
| B16 | Warehouse Manager | Task | Cancel (Slip is APPROVED) | Web · Inventory Approve | B17 |
| B17 | Warehouse Manager | Decision | Each Slip: meets cancel conditions of source screen? |  | B18 [No]; B19 [Yes] |
| B18 | Warehouse Manager | Task | Slip stays APPROVED · error logged | System (auto) · Inventory Approve | B20 |
| B19 | Warehouse Manager | Task | Slip → CANCELLED reverses stock + Request per source-screen logic | System (auto) · Inventory Approve | B20 |
| B20 | Warehouse Manager | Task | Batch result X succeeded · Y failed | System (auto) · Inventory Approve | B21; B22 |
| B21 | Output | Data | Passing Slips = CANCELLED stock & Request reversed |  | (end) |
| B22 | Output | Data | Failed Slips stay APPROVED + list of failed Slip No |  | (end) |

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

#### B08 · Each Slip: meets source-screen conditions?

- Warehouse Manager
- Comes from: B07
- Goes to [No]: B09 · Slip keeps its status · error logged
- Goes to [Yes]: B10 · Slip → APPROVED updates stock + Request per source-screen logic

#### B17 · Each Slip: meets cancel conditions of source screen?

- Warehouse Manager
- Comes from: B16
- Goes to [No]: B18 · Slip stays APPROVED · error logged
- Goes to [Yes]: B19 · Slip → CANCELLED reverses stock + Request per source-screen logic

## Status lifecycle

#### Slip (every business screen)

`SUBMITTED` → `APPROVED` → `CANCELLED`

Transitions:

- `SUBMITTED` -- Approve — conditions met --> `APPROVED`
- `APPROVED` -- Cancel — conditions met & no later action --> `CANCELLED`
- `CANCELLED` -- Re-approve --> `APPROVED` (back)

Notes on the diagram:

- Source-screen conditions not met — Slip unchanged (the §1.8 closed-period guard does not apply on this screen)

## Input

| # | Input | Type | Used in step |
| --- | --- | --- | --- |
| I-1 | Warehouse, Line, Transaction, Status | Master data | Search / Filter |
| I-2 | SUBMITTED / APPROVED / CANCELLED Slips from every screen with Slips to approve (Stock In, Return From Line, Other In, Stock Out, Return To Supplier, Other Out, Product Income, Goods Delivery, Goods Return, Stock Transfer, Stock Exchange) | Business-screen document | Search / Filter — Slip list |

## Step ↔ screen

| Step | Role | Screen |
| --- | --- | --- |
| Search / Filter (Warehouse · Transaction · Status · Line · Slip No) | Warehouse Manager | Inventory Approve · Web |
| Double-click a row → open the Slip source screen | Warehouse Manager | Inventory Approve · Web |
| Select one or more Slips · Approve | Warehouse Manager | Inventory Approve · Web |
| Check each Slip against source-screen conditions · Slip → APPROVED · update stock + Request · report batch result | System (auto) | Inventory Approve |
| W/H Stock Checking (lookup, optional) | Warehouse Staff | W/H Stock Checking · Web |
| Select APPROVED Slips · Cancel | Warehouse Manager | Inventory Approve · Web |
| Check each Slip against source-screen cancel conditions · Slip → CANCELLED · reverse stock + Request · report batch result | System (auto) | Inventory Approve |

## Output

| # | Output | Produced when |
| --- | --- | --- |
| O-1 | Slip = `APPROVED`; stock and linked Request updated per source-screen logic | Slip is `SUBMITTED` / `CANCELLED` and meets the source screen Approve conditions |
| O-2 | Failed Slips keep their status + list of failed Slip No (X succeeded · Y failed) | A Slip in the batch fails the source-screen conditions — passing Slips are still approved |
| O-3 | *Exception:* Slip = `CANCELLED`; stock and linked Request reversed per source-screen logic | Slip is `APPROVED` and meets the source screen cancel conditions |
| O-4 | *Exception:* Failed Slips stay `APPROVED` + list of failed Slip No | A Slip in the batch fails the source-screen cancel conditions |
