# Outbound (Merged) — Xuất kho gộp 4 nghiệp vụ

> Fine Chemical (FC) · Module WMS · v1.5 · 18/09/2026 · Flow chuẩn — dùng để triển khai, kiểm thử và phát triển
>
> File sinh tự động từ sơ đồ bởi `sync.js` — đừng sửa tay. Hình là chuẩn: thấy mâu thuẫn với trang hình thì báo lại.
>
> Trang hình: /wms/outbound-merged

## Cách đọc

- Mỗi hộp trên sơ đồ có một mã `Bxx`, đánh theo thứ tự đi của luồng (từ điểm bắt đầu, theo mũi tên).
- "Đi tới" liệt kê mọi mũi tên ra khỏi hộp; chữ trong ngoặc vuông là nhãn điều kiện của mũi tên đó.
- "Nhánh tuỳ chọn" = mũi tên nét đứt trên sơ đồ: làm cũng được, bỏ qua cũng được.
- Hộp loại "Dữ liệu" ở lane Input là dữ liệu đi vào, ở lane Output là kết quả / điểm kết thúc của luồng.

## Process Flow (swimlane)

### Vai trò (lane)

- Input
- Warehouse Staff
- Warehouse Manager
- Output

### Các bước

| Mã | Vai trò | Loại | Nội dung | Nền tảng · Màn hình | Đi tới |
| --- | --- | --- | --- | --- | --- |
| B01 | Input | Dữ liệu | Item / Warehouse Master Bin Location | Master data | B04 |
| B02 | Input | Dữ liệu | Work Instruction (WO) | Work Instruction | B11 |
| B03 | Input | Dữ liệu | Purchase Order (PO) | Purchase Order | B12 |
| B04 | Warehouse Staff | Bắt đầu | Start |  | B05 |
| B05 | Warehouse Staff | Điểm quyết định | Request hay Slip độc lập? |  | B06 [Slip độc lập]; B07 [Tạo Request] |
| B06 | Warehouse Staff | Bước | Create Outbound Slip (standalone, chọn loại GD) | Web · Outbound | B08 |
| B07 | Warehouse Staff | Bước | Create Outbound Request | Web · Outbound | B09 |
| B08 | Warehouse Staff | Bước | Submit for Approval | Web · Outbound | B10 [Slip SUBMITTED] |
| B09 | Warehouse Staff | Điểm quyết định | Chọn loại giao dịch? |  | B11 [Stock Out]; B12 [Return to Supplier]; B13 [Stock Discard]; B14 [Other Out] |
| B10 | Warehouse Manager | Điểm quyết định | Kỳ kho của phiếu đã chốt? |  | B15 [Đã chốt]; B16 [Chưa] |
| B11 | Warehouse Staff | Bước | Stock Out: From WO/WI → Line, Priority · Shift | Web · Outbound | B17 |
| B12 | Warehouse Staff | Bước | Return to Supplier: From PO → Supplier, Reason + evidence pack | Web · Outbound | B17 |
| B13 | Warehouse Staff | Bước | Stock Discard: Không nguồn/đích, Reason + Detail | Web · Outbound | B17 |
| B14 | Warehouse Staff | Bước | Other Out: Dept, Reason + Detail | Web · Outbound | B17 |
| B15 | Output | Dữ liệu | Chặn mọi action: Submit · Approve · Cancel · Delete — This action cannot be completed because the affected inventory period is closed through [Close Date] |  | (kết thúc) |
| B16 | Warehouse Manager | Bước | Approve Stock Out/RTS/Discard/Slip | Web · Outbound | B18; B19 |
| B17 | Warehouse Staff | Bước | Submit Request | Web · Outbound | B20 [SUBMITTED] |
| B18 | Output | Dữ liệu | Outbound Slip = APPROVED + Debit Note (chỉ Return to Supplier) |  | (kết thúc) |
| B19 | Warehouse Manager | Bước | Trừ Physical & Available Stock tại kho xuất | System (auto) · Outbound | B21; B22 [nhánh tuỳ chọn]; B23 |
| B20 | Warehouse Staff | Bước | Print QR Slip (QR = Request No.) | Web · Outbound | B24 |
| B21 | Output | Dữ liệu | Tồn kho giảm tại kho xuất (theo loại giao dịch) |  | (kết thúc) |
| B22 | Warehouse Staff | Bước | W/H Stock Checking (view-only, tra cứu) | Web · W/H Stock Checking |  |
| B23 | Warehouse Manager | Điểm quyết định | Request còn Remaining > 0? |  | B25 [Không]; B24 [Có — nhập tiếp phần còn lại bằng Slip mới] |
| B24 | Warehouse Staff | Bước | Scan Outbound Request | Mobile · Outbound | B26 |
| B25 | Output | Dữ liệu | Request → CLOSED (tự động) |  | (kết thúc) |
| B26 | Warehouse Staff | Bước | Scan Barcode | Mobile · Outbound | B27 |
| B27 | Warehouse Staff | Bước | Make Slip | Mobile · Outbound | B08 |
| B28 | Warehouse Manager | Bắt đầu | Start |  | B29 |
| B29 | Warehouse Manager | Bước | Cancel (Slip đang APPROVED) | Web · Outbound | B30 |
| B30 | Warehouse Manager | Điểm quyết định | Chưa rời kho VÀ chưa có action tiếp theo? |  | B31 [Không]; B32 [Có] |
| B31 | Output | Dữ liệu | Chặn huỷ — hàng đã rời kho hoặc đã có action ở màn khác |  | (kết thúc) |
| B32 | Warehouse Manager | Bước | Slip → CANCELLED cộng lại Stock | System (auto) · Outbound | B33; B34 |
| B33 | Output | Dữ liệu | Tồn kho tăng lại Slip = CANCELLED |  | (kết thúc) |
| B34 | Output | Dữ liệu | Request CLOSED quay lại SUBMITTED · Remaining tăng lại |  | (kết thúc) |

### Chi tiết từng bước (nội dung hover trên sơ đồ)

#### B05 · Request hay Slip độc lập?

- Warehouse Staff
- Đến từ: B04
- Đi tới [Slip độc lập]: B06 · Create Outbound Slip (standalone, chọn loại GD)
- Đi tới [Tạo Request]: B07 · Create Outbound Request

#### B09 · Chọn loại giao dịch?

- Warehouse Staff
- Đến từ: B07
- Đi tới [Stock Out]: B11 · Stock Out: From WO/WI → Line, Priority · Shift
- Đi tới [Return to Supplier]: B12 · Return to Supplier: From PO → Supplier, Reason + evidence pack
- Đi tới [Stock Discard]: B13 · Stock Discard: Không nguồn/đích, Reason + Detail
- Đi tới [Other Out]: B14 · Other Out: Dept, Reason + Detail

#### B10 · Kỳ kho của phiếu đã chốt?

- Warehouse Manager
- Đến từ: B08
- Đi tới [Đã chốt]: B15 · Chặn mọi action: Submit · Approve · Cancel · Delete — This action cannot be completed because the affected inventory period is closed through [Close Date]
- Đi tới [Chưa]: B16 · Approve Stock Out/RTS/Discard/Slip

#### B23 · Request còn Remaining > 0?

- Warehouse Manager
- Đến từ: B19
- Đi tới [Không]: B25 · Request → CLOSED (tự động)
- Đi tới [Có — nhập tiếp phần còn lại bằng Slip mới]: B24 · Scan Outbound Request

#### B30 · Chưa rời kho VÀ chưa có action tiếp theo?

- Warehouse Manager
- Đến từ: B29
- Đi tới [Không]: B31 · Chặn huỷ — hàng đã rời kho hoặc đã có action ở màn khác
- Đi tới [Có]: B32 · Slip → CANCELLED cộng lại Stock

## Vòng đời trạng thái

#### Outbound Request

`SAVED` → `SUBMITTED` → `CLOSED`

Bước chuyển:

- `SAVED` -- Submit Request --> `SUBMITTED`
- `SUBMITTED` -- Auto: mọi dòng Remaining = 0 --> `CLOSED`
- `CLOSED` -- Slip liên kết bị Cancel — Remaining tăng lại --> `SUBMITTED` (quay lại)
- `SAVED` -- Delete Request --> `Đã xoá`

#### Outbound Slip

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

Bước chuyển:

- `SAVED` -- Submit for Approval --> `SUBMITTED`
- `SUBMITTED` -- Approve (nhãn theo loại) --> `APPROVED`
- `APPROVED` -- Cancel — chưa rời kho & chưa có action --> `CANCELLED`
- `CANCELLED` -- Sửa Remark / Line item → Approve lại --> `APPROVED` (quay lại)
- `SAVED` -- Delete --> `Đã xoá`

- `CANCELLED` (Outbound Slip) → kéo hàng Outbound Request quay lại

Ghi chú trên sơ đồ:

- Chặn Cancel nếu hàng đã rời kho, đã có action ở màn khác, hoặc kỳ kho đã chốt

## Field khác nhau theo loại giao dịch

| Mục | Stock Out | Return to Supplier | Stock Discard | Other Out |
| --- | --- | --- | --- | --- |
| Nguồn chứng từ | Work Instruction / WO | Purchase Order (Reference PO No.) | Không có | Không có |
| Đối tác / đích | Receiving Line (cây Injection Work Center) | Supplier | Không có — hàng huỷ tại kho | Requesting Department (free text) |
| Lý do | Không có | Return Reason (6 giá trị) + evidence pack (Lot No., QC Report No., Defect Date, mô tả) | Main Discard Reason (6 giá trị) + Detailed Reason | Reason / Reason Code (7 giá trị) + Reason Description |
| Field riêng | Priority; Production Shift | Shipping Method, Original PO No., Performed By (trên Slip) | Discard Slip Type, Slip Creator (trên Slip) | Related Department, Reference Document (trên Slip) |
| Người phụ trách | Person in Charge | Requester | Requester | Person In Charge |
| Kho xuất | KHO-NVL-01, KHO-NVL-02, KHO-PHU | KHO-NVL-01, KHO-NVL-02, KHO-PHU | KHO-TP-01, KHO-TP-02, KHO-BTP | KHO-TP-01, KHO-TP-02, KHO-BTP |
| Số Request | YQXK-NVL01-YYMM-XXXXX | YQTH-NVL01-YYMM-XXXXX | YQHH-KHO01-YYMM-XXXXX | YQKH-KHO01-YYMM-XXXXX (chung series với Other In) |
| Số Slip | REQ-NVL01-YYMM-XXXXX | RTS-NVL01-YYMM-XXXXX | PHH-KHO01-YYMM-XXXXX | PKH-OUT-YYMM-XXXXX |
| Nhãn nút Approve | Approve Stock Out | Approve & Create Debit Note | Approve | Approve Slip |
| Tác dụng khi Approve | Trừ stock | Trừ stock + sinh Debit Note (email supplier tuỳ chọn) | Trừ stock | Trừ stock |

## Input

| # | Input | Loại | Đi vào bước |
| --- | --- | --- | --- |
| I-0 | Work Instruction (WO) | Chứng từ nguồn — Stock Out | Stock Out → From WO/WI |
| I-1 | Purchase Order (PO) | Chứng từ nguồn — Return to Supplier | Return to Supplier → From PO |
| I-2 | Item Master, Warehouse, Bin Location | Master data | Mọi dòng hàng, header Request/Slip |

## Bước ↔ màn hình thực hiện

| Bước | Vai trò | Màn hình |
| --- | --- | --- |
| Create Outbound Request | Warehouse Staff | Outbound · Web |
| Create Outbound Slip (standalone) | Warehouse Staff | Outbound · Web |
| Chọn loại giao dịch (Stock Out / Return to Supplier / Stock Discard / Other Out) | Warehouse Staff | Outbound · Web |
| Submit Request · Print QR Slip | Warehouse Staff | Outbound · Web |
| Scan Outbound Request · Scan Barcode · Make Slip | Warehouse Staff | Outbound · Mobile |
| Submit for Approval | Warehouse Staff | Outbound · Web |
| Approve · Cancel | Warehouse Manager | Outbound · Web |
| Kỳ kho của phiếu đã chốt → chặn mọi action (Submit · Approve · Cancel · Delete) với thông báo `This action cannot be completed because the affected inventory period is closed through [Close Date]` | System (auto) | Outbound Merged |

## Output

| # | Output | Điều kiện sinh ra |
| --- | --- | --- |
| O-1 | Outbound Request: `SAVED` → `SUBMITTED` → `CLOSED` | CLOSED tự động khi mọi dòng Remaining = 0 |
| O-2 | Outbound Slip = `APPROVED` | Manager bấm Approve khi Slip đang `SUBMITTED` |
| O-3 | Debit Note được sinh, kèm Compensation Method; gửi email Supplier nếu chọn Auto send | Chỉ khi Approve một Slip loại Return to Supplier |
| O-4 | Physical & Available Stock giảm tại kho xuất (kho theo loại giao dịch — xem bảng field ở trên) | Ngay khi Approve |
| O-5 | Issued / Returned / Discarded / Performed trên dòng Request cập nhật (nhãn theo loại) | Slip có liên kết Request |
| O-6 | *Ngoại lệ:* Slip = `CANCELLED`, tồn kho tăng lại, Request đang CLOSED quay về SUBMITTED — hoặc bị chặn huỷ | Slip đang `APPROVED`; chặn nếu hàng đã rời kho / đã bàn giao, hoặc đã có action ở màn khác |
