# Material Issue & Return — Material Out Request, xuất vật tư theo lô, gán lô cho ca / máy, trả vật tư thừa và đối soát

> Fine Chemical (FC) · Module MES · v0.4 · 09/10/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: /mes/material-issue-return

## 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
- Planner
- Operator
- 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 | MOR DRAFT từ Booking (Work Order / WI · Packing) |  | B10 |
| B02 | Input | Dữ liệu | Tồn nguyên vật liệu theo lô tại Issue Warehouse (nhập kho theo PO của SO PR) |  | B12 |
| B03 | Input | Dữ liệu | Outbound Slip SUBMITTED theo MOR (WMS) |  | B18 |
| B04 | Input | Dữ liệu | Stock Out Slip APPROVED liên kết WO / WI (WMS) |  | B19 |
| B05 | Input | Dữ liệu | WI Injection theo ngày · ca · máy |  | B21 |
| B06 | Input | Dữ liệu | Kết quả POP theo WI (Good · NG) |  | B30 |
| B07 | Input | Dữ liệu | Master data: Warehouse · Location | Master data | B34 |
| B08 | Input | Dữ liệu | Inbound Slip APPROVED (Return from Line · WMS) |  | B40 |
| B09 | Input | Dữ liệu | Stock Out Slip APPROVED bị Cancel (WMS · §1.7) |  | B45 |
| B10 | Planner | Bắt đầu | Start |  | B11 |
| B11 | Planner | Bước | Mở Material Out Request Worklist | Web · MRP & Material Ready | B12 |
| B12 | Planner | Bước | Kiểm vật tư cho WI | Web · MRP & Material Ready | B13 |
| B13 | Planner | Điểm quyết định | Đủ tồn tại Issue Warehouse? |  | B14 [Không]; B15 [Có] |
| B14 | Planner | Bước | Đánh dấu thiếu vật tư | System (auto) · MRP & Material Ready | B16; B15 [vẫn gửi] |
| B15 | Planner | Bước | Gửi Material Out Request | Web · MRP & Material Ready | B17; B18 [kho soạn hàng] |
| B16 | Output | Dữ liệu | Cảnh báo thiếu vật tư cho WI (Planner) |  | (kết thúc) |
| B17 | Output | Dữ liệu | MOR REQUESTED → WMS Outbound (Stock Out ra khu Mixing theo WO / WI) |  | (kết thúc) |
| B18 | Planner | Bước | Chuyển MOR sang PICKING | System (auto) · MRP & Material Ready | B19 [kho duyệt xuất] |
| B19 | Planner | Bước | Chuyển MOR sang ISSUED | System (auto) · MRP & Material Ready | B20; B21 [lô đã xuất] |
| B20 | Output | Dữ liệu | MOR ISSUED — lô NVL ở khu Mixing, gắn WO / WI |  | (kết thúc) |
| B21 | Operator | Bước | Tạo Material Lot Assignment | Web · Material Lot Assignment | B22 |
| B22 | Operator | Bước | Chọn lô đã xuất theo WO | Web · Material Lot Assignment | B23 |
| B23 | Operator | Bước | Nhập Assigned Qty theo lô | Web · Material Lot Assignment | B24 |
| B24 | Operator | Điểm quyết định | Assignment hợp lệ? |  | B25 [Không]; B26 [Hợp lệ] |
| B25 | Operator | Bước | Báo lỗi Assignment | System (auto) · Material Lot Assignment | B27; B23 [sửa lại] |
| B26 | Operator | Bước | Lưu nháp Assignment | Web · Material Lot Assignment | B28 |
| B27 | Output | Dữ liệu | Assignment bị chặn + lỗi cho Operator |  | (kết thúc) |
| B28 | Operator | Bước | Xác nhận Assignment | Web · Material Lot Assignment | B29; B30 [sau POP] |
| B29 | Output | Dữ liệu | Lô vật tư gán ngày · ca · máy · WI (CONFIRMED) → Daily Injection tự điền lô |  | (kết thúc) |
| B30 | Operator | Bước | Tính tiêu hao theo POP | System (auto) · Return & Variance | B31 |
| B31 | Operator | Bước | Tạo phiếu Return | Web · Return & Variance | B32 |
| B32 | Operator | Bước | Thêm lô đã xuất | Web · Return & Variance | B33 |
| B33 | Operator | Bước | Tính Returnable theo lô | System (auto) · Return & Variance | B34 |
| B34 | Operator | Bước | Nhập Return Qty · Actual Destination | Web · Return & Variance | B35 |
| B35 | Operator | Điểm quyết định | Validate đạt? |  | B36 [Không]; B37 [Đạt] |
| B36 | Operator | Bước | Báo lỗi Validate | System (auto) · Return & Variance | B38; B34 [sửa lại] |
| B37 | Operator | Bước | Gửi phiếu Return | Web · Return & Variance | B39; B40 [kho nhận hàng trả] |
| B38 | Output | Dữ liệu | Return bị chặn + lỗi Validate |  | (kết thúc) |
| B39 | Output | Dữ liệu | Return WAITING WAREHOUSE → WMS Inbound (Return from Line) |  | (kết thúc) |
| B40 | Operator | Bước | Chuyển Return sang RECEIVED | System (auto) · Return & Variance | B41; B42 |
| B41 | Output | Dữ liệu | Return RECEIVED |  | (kết thúc) |
| B42 | Operator | Bước | Tính Issue Balance theo lô | System (auto) · Return & Variance | B43; B44 |
| B43 | Output | Dữ liệu | Issue Balance Issued − Consumed − Returned theo lô · WI |  | (kết thúc) |
| B44 | Operator | Kết thúc | End |  |  |
| B45 | Planner | Bước | Đưa MOR về REQUESTED | System (auto) · MRP & Material Ready | B46 |
| B46 | Output | Dữ liệu | MOR REQUESTED — chờ kho xuất lại |  | (kết thúc) |

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

#### B11 · Mở Material Out Request Worklist

- Planner · Web · MRP & Material Ready
- Đến từ: B10
- Đi tới: B12 · Kiểm vật tư cho WI

> Planner mở danh sách yêu cầu xuất vật tư (MOR) của các WO đang chạy.  
> Thao tác: MRP & Material Ready › "Material Out Requests" · "Running Work Orders"; lọc "STATUS" (All · Draft · Requested · Picking · Issued), "SEARCH" MOR / WO / MATERIAL; nút "Refresh" · "Excel".  
> Hệ thống: MOR được tạo ở nơi khác — MOR của công đoạn ép ở Work Order / WI › "Booking Material Out Request", MOR vật tư đóng gói ở màn Packing; KPI đếm DRAFT · REQUESTED · PICKING · ISSUED.  
> Nguồn: prototype v0.23 · Q-20260929-01 · Q-20261009-08 (câu 1)  

#### B12 · Kiểm vật tư cho WI

- Planner · Web · MRP & Material Ready
- Đến từ: B02, B11
- Đi tới: B13 · Đủ tồn tại Issue Warehouse?

> Planner kiểm vật tư đủ cho WI trước giờ cần dùng.  
> Hệ thống: so "Total Qty" từng dòng MOR với tồn theo lô tại "Issue Warehouse", trước giờ "Needed"; nguyên vật liệu cho ép được mua theo SO PR tạo khi Release Big Plan ở I/J Plan, kho nhập theo PO rồi mới có tồn.  
> Hệ thống: kiểm vật tư theo Master Plan không làm ở đây — nằm ở I/J Plan (Compound Calculate).  
> Nguồn: CHANGELOG prototype v0.3.2 (22/09) · Q-20260923-19 (E) · Q-20261009-08  

#### B13 · Đủ tồn tại Issue Warehouse?

- Planner
- Đến từ: B12
- Đi tới [Không]: B14 · Đánh dấu thiếu vật tư
- Đi tới [Có]: B15 · Gửi Material Out Request

> Tồn tại kho xuất có đủ cho MOR không?  
> Có: tồn khả dụng theo lô ≥ "Total Qty" của dòng → gửi MOR.  
> Không: thiếu → đánh dấu thiếu vật tư.  
> Hệ thống: tồn khả dụng không tính lô đang Quality hold / blocked.  
> Kiểm thử:  
> - Cần 100 kg, tồn 120 kg nhưng 30 kg đang Quality hold → thiếu  
> Nguồn: BRD §6.3 (Inventory lock)  

#### B14 · Đánh dấu thiếu vật tư

- Planner · System (auto) · MRP & Material Ready
- Đến từ: B13
- Đi tới: B16 · Cảnh báo thiếu vật tư cho WI (Planner)
- Đi tới [vẫn gửi]: B15 · Gửi Material Out Request

> Hệ thống đánh dấu WI thiếu vật tư để Planner biết.  
> Kết quả: cảnh báo thiếu vật tư cho Planner; MOR vẫn gửi được.  
> Chưa chốt: kho xuất phần đang có (Partial) hay chờ đủ — đề xuất, chưa được xác nhận.  
> Nguồn: BRD §6.3  

#### B15 · Gửi Material Out Request

- Planner · Web · MRP & Material Ready
- Đến từ: B13, B14
- Đi tới: B17 · MOR REQUESTED → WMS Outbound (Stock Out ra khu Mixing theo WO / WI)
- Đi tới [kho soạn hàng]: B18 · Chuyển MOR sang PICKING

> Planner gửi yêu cầu xuất vật tư sang kho.  
> Khi nào: MOR DRAFT.  
> Kết quả: MOR → REQUESTED, sang WMS Outbound để kho Stock Out ra khu Mixing theo WO / WI.  
> Chưa chốt: prototype v0.23 chưa có nút gửi / duyệt ở màn này; BRD nói planner hoặc kho có thể duyệt tuỳ loại yêu cầu, và Supervisor duyệt MOR — ai duyệt chưa chốt.  
> Nguồn: BRD §6.3 · BRD §7 · Q-20261009-08 (câu 1)  

#### B18 · Chuyển MOR sang PICKING

- Planner · System (auto) · MRP & Material Ready
- Đến từ: B03, B15
- Đi tới [kho duyệt xuất]: B19 · Chuyển MOR sang ISSUED

> Hệ thống chuyển MOR sang đang soạn hàng khi kho bắt đầu làm.  
> Khi nào: kho đã tạo Outbound Slip theo MOR (SUBMITTED ở WMS).  
> Kết quả: MOR → PICKING. Kho quét lô, kiểm FIFO / FEFO và số xuất ("Warehouse scans material lot, validates FIFO/FEFO and issue quantity").  
> Nguồn: BRD §6.3  

#### B19 · Chuyển MOR sang ISSUED

- Planner · System (auto) · MRP & Material Ready
- Đến từ: B04, B18
- Đi tới: B20 · MOR ISSUED — lô NVL ở khu Mixing, gắn WO / WI
- Đi tới [lô đã xuất]: B21 · Tạo Material Lot Assignment

> Hệ thống chốt MOR đã xuất khi kho duyệt phiếu xuất.  
> Khi nào: Stock Out Slip liên kết WO / WI được APPROVED ở WMS.  
> Kết quả: MOR → ISSUED; tồn nguyên vật liệu giảm ở WMS; lô đã xuất nằm ở khu Mixing, gắn với WO và WI ("Issued material is linked to WO and operation/WI").  
> Hệ thống: Mixing không có trong Routing và không sinh lô mới — lô ở khu Mixing giữ số lô lúc nhập kho.  
> Kiểm thử:  
> - Stock Out Slip APPROVED → MOR ISSUED, tồn lô giảm đúng số xuất  
> Chưa chốt: khu Mixing là kho / vị trí nào trên WMS, và nguyên vật liệu còn thừa ở khu Mixing có trả về kho bằng Return & Variance không — chưa có nguồn.  
> Nguồn: BRD §6.3 · Q-20261009-08 (câu 1, 2)  

#### B21 · Tạo Material Lot Assignment

- Operator · Web · Material Lot Assignment
- Đến từ: B05, B19
- Đi tới: B22 · Chọn lô đã xuất theo WO

> Operator ghi nhận lô nguyên vật liệu đã xuất ra khu Mixing sẽ dùng cho ngày, ca, máy và WI cụ thể.  
> Khi nào: WO của WI đã có MOR ISSUED.  
> Thao tác: Material Lot Assignment › nút "Create Assignment" › nhập "PRODUCTION DATE" · "SHIFT" ("Day (AB)" / "Night (CD)") · "MACHINE" (INJ-xx) · "WORK INSTRUCTION"; "WORK ORDER" và "MATERIAL" tự điền.  
> Hệ thống: bước này không bắt buộc — WI không có Assignment thì Operator tự khai báo lô ở Daily Injection by Shift.  
> Nguồn: prototype v0.86 · Q-20260923-07 · Q-20261009-08  

#### B22 · Chọn lô đã xuất theo WO

- Operator · Web · Material Lot Assignment
- Đến từ: B21
- Đi tới: B23 · Nhập Assigned Qty theo lô

> Operator chọn các lô nguyên vật liệu đã xuất cho WO để gán.  
> Thao tác: nút "Select Issued Lots by WO", hoặc chọn lô + "Add" (quét).  
> Hệ thống: chỉ nhận lô đã xuất cho WO (MOR ISSUED), đúng số lô lúc nhập kho; lô khác báo "Lot <số> is not issued to <WI>."  
> Kết quả: bảng lô gồm Lot No. · Material Code · Material · Issued Qty · Assigned Qty · UoM · Warehouse / Location.  
> Kiểm thử:  
> - Quét lô chưa xuất cho WO → báo lỗi, lô không vào bảng  
> Nguồn: prototype v0.86 · Q-20261009-08 (câu 2)  

#### B23 · Nhập Assigned Qty theo lô

- Operator · Web · Material Lot Assignment
- Đến từ: B22, B25
- Đi tới: B24 · Assignment hợp lệ?

> Operator nhập số gán cho từng lô.  
> Thao tác: ô "Assigned Qty" theo lô.  
> Hệ thống: một lô gán được cho nhiều ca / máy; một dòng vật tư dùng được nhiều lô.  
> Nguồn: BRD §6.3 (Multi-Lot Consumption)  

#### B24 · Assignment hợp lệ?

- Operator
- Đến từ: B23
- Đi tới [Không]: B25 · Báo lỗi Assignment
- Đi tới [Hợp lệ]: B26 · Lưu nháp Assignment

> Hệ thống kiểm phiếu gán trước khi lưu.  
> Hợp lệ khi: có đủ date · shift · machine · WI; có ít nhất một lô; mỗi lô "Assigned Qty" > 0 và ≤ "Issued Qty".  
> Không: báo lỗi, Operator sửa lại.  
> Kiểm thử:  
> - Issued 50, Assigned 50 → hợp lệ  
> - Issued 50, Assigned 51 → bị chặn  
> - Chưa chọn lô nào → bị chặn  
> Nguồn: prototype v0.23  

#### B25 · Báo lỗi Assignment

- Operator · System (auto) · Material Lot Assignment
- Đến từ: B24
- Đi tới: B27 · Assignment bị chặn + lỗi cho Operator
- Đi tới [sửa lại]: B23 · Nhập Assigned Qty theo lô

> Hệ thống báo lỗi phiếu gán và trả về Operator sửa.  
> Hệ thống: thông báo "Assigned Qty exceeds issued quantity." hoặc "Assign at least one issued material lot."  
> Nguồn: prototype v0.23  

#### B26 · Lưu nháp Assignment

- Operator · Web · Material Lot Assignment
- Đến từ: B24
- Đi tới: B28 · Xác nhận Assignment

> Operator lưu nháp phiếu gán (tuỳ chọn).  
> Thao tác: nút "Save Draft".  
> Kết quả: Assignment → DRAFT. Có thể bỏ qua bước này và bấm Confirm ngay.  
> Nguồn: prototype v0.23  

#### B28 · Xác nhận Assignment

- Operator · Web · Material Lot Assignment
- Đến từ: B26
- Đi tới: B29 · Lô vật tư gán ngày · ca · máy · WI (CONFIRMED) → Daily Injection tự điền lô
- Đi tới [sau POP]: B30 · Tính tiêu hao theo POP

> Operator xác nhận phiếu gán lô.  
> Thao tác: nút "Confirm".  
> Kết quả: Assignment → CONFIRMED; thông báo "<Assignment No.> confirmed."; danh sách hiện Assignment No. · Date · Shift · Machine · WI No. · Lots · Assigned Qty · Status.  
> Kết quả: Daily Injection by Shift tự điền các lô này khi Operator mở POP của WI.  
> Kiểm thử:  
> - Confirm Assignment cho WI ca "Day (AB)" máy INJ-01 → mở POP của WI đó thấy sẵn các lô  
> Nguồn: prototype v0.86 · Q-20261009-08 (câu 3)  

#### B30 · Tính tiêu hao theo POP

- Operator · System (auto) · Return & Variance
- Đến từ: B06, B28
- Đi tới: B31 · Tạo phiếu Return

> Hệ thống tính số vật tư đã tiêu hao theo sản lượng POP.  
> Khi nào: sau khi POP của WI được ghi.  
> Hệ thống: tiêu hao tính tự động từ POP và BOM; Operator hoặc hệ thống xác nhận tiêu hao thực tế theo lô ("Consumption is auto-calculated from POP and BOM; operator or system confirms actual lot consumption.").  
> Kết quả: cột "Consumed" theo lô · WI ở màn Return & Variance.  
> Nguồn: BRD §6.3  

#### B31 · Tạo phiếu Return

- Operator · Web · Return & Variance
- Đến từ: B30
- Đi tới: B32 · Thêm lô đã xuất

> Operator tạo phiếu trả vật tư còn dư về kho.  
> Thao tác: Return & Variance › nút "Create Return" › nhập "RETURN DATE" · "WI NO." · "WO NO." · "PROCESS" · "ISSUE REQUEST" · "OPERATOR" · "REMARK".  
> Nguồn: prototype v0.23  

#### B32 · Thêm lô đã xuất

- Operator · Web · Return & Variance
- Đến từ: B31
- Đi tới: B33 · Tính Returnable theo lô

> Operator thêm các lô đã xuất cho WI vào phiếu trả.  
> Thao tác: nút "Add Lot" (quét hoặc chọn lô đã xuất cho WI).  
> Kết quả: mỗi lô một dòng với Issued · Consumed · Returned · Returnable · New Return · Suggested Destination · Actual Destination.  
> Nguồn: prototype v0.23  

#### B33 · Tính Returnable theo lô

- Operator · System (auto) · Return & Variance
- Đến từ: B32
- Đi tới: B34 · Nhập Return Qty · Actual Destination

> Hệ thống tính số còn được trả của từng lô.  
> Hệ thống: "Returnable" = Issued − Consumed − Returned.  
> Kiểm thử:  
> - Issued 50, Consumed 42, Returned 3 → Returnable 5  
> Nguồn: BRD §9 · prototype v0.23  

#### B34 · Nhập Return Qty · Actual Destination

- Operator · Web · Return & Variance
- Đến từ: B07, B33, B36
- Đi tới: B35 · Validate đạt?

> Operator nhập số trả và nơi nhận hàng trả.  
> Thao tác: ô "New Return"; xem "Suggested Destination" (kho / vị trí gợi ý) rồi chọn "Actual Destination" (warehouse + location).  
> Nguồn: prototype v0.23  

#### B35 · Validate đạt?

- Operator
- Đến từ: B34
- Đi tới [Không]: B36 · Báo lỗi Validate
- Đi tới [Đạt]: B37 · Gửi phiếu Return

> Hệ thống kiểm phiếu trả khi bấm "Validate".  
> Đạt khi: số trả > 0 và ≤ "Returnable"; có warehouse và location đích; location thuộc warehouse đã chọn.  
> Không: báo lỗi, Operator sửa lại.  
> Kiểm thử:  
> - Returnable 5, trả 5 → đạt  
> - Returnable 5, trả 6 → bị chặn  
> - Location không thuộc warehouse → bị chặn  
> Nguồn: prototype v0.23  

#### B36 · Báo lỗi Validate

- Operator · System (auto) · Return & Variance
- Đến từ: B35
- Đi tới: B38 · Return bị chặn + lỗi Validate
- Đi tới [sửa lại]: B34 · Nhập Return Qty · Actual Destination

> Hệ thống báo lỗi phiếu trả và trả về Operator sửa.  
> Hệ thống: thông báo "Return Qty exceeds Returnable Qty." · "Destination warehouse and location are required." · "Location does not belong to the selected warehouse."  
> Nguồn: prototype v0.23  

#### B37 · Gửi phiếu Return

- Operator · Web · Return & Variance
- Đến từ: B35
- Đi tới: B39 · Return WAITING WAREHOUSE → WMS Inbound (Return from Line)
- Đi tới [kho nhận hàng trả]: B40 · Chuyển Return sang RECEIVED

> Operator gửi phiếu trả sang kho.  
> Thao tác: nút "Submit Return".  
> Kết quả: Return → WAITING WAREHOUSE (prototype ghi "Waiting Warehouse"); phiếu sang WMS Inbound (Return from Line) để kho nhận lại.  
> Nguồn: prototype v0.23  

#### B40 · Chuyển Return sang RECEIVED

- Operator · System (auto) · Return & Variance
- Đến từ: B08, B37
- Đi tới: B41 · Return RECEIVED
- Đi tới: B42 · Tính Issue Balance theo lô

> Hệ thống chốt phiếu trả đã nhận khi kho duyệt phiếu nhập.  
> Khi nào: Inbound Slip (Return from Line) được APPROVED ở WMS.  
> Kết quả: Return → RECEIVED; tồn nguyên vật liệu tăng lại ở WMS.  
> Kiểm thử:  
> - Inbound Slip APPROVED 5 kg → Return RECEIVED, tồn lô tăng 5 kg  
> Nguồn: prototype v0.23  

#### B42 · Tính Issue Balance theo lô

- Operator · System (auto) · Return & Variance
- Đến từ: B40
- Đi tới: B43 · Issue Balance Issued − Consumed − Returned theo lô · WI
- Đi tới: B44 · End

> Hệ thống tính số chênh vật tư (Issue Balance) theo lô sau khi kho nhận hàng trả.  
> Khi nào: Return RECEIVED — số "Returned" là số kho đã nhận thật.  
> Hệ thống: Issue Balance = Issued Qty − Consumed Qty − Returned Qty.  
> Kết quả: dùng khi đóng WI / WO (Material Variance: cảnh báo hoặc chặn).  
> Chưa chốt: prototype gọi màn là "Return & Variance"; Variance theo BRD (Actual − Standard Consumption) chưa có bước riêng.  
> Kiểm thử:  
> - Issued 50, Consumed 42, Returned 5 → Issue Balance 3  
> Nguồn: BRD §6.3 · BRD §6.6 · quy ước Q9  

#### B45 · Đưa MOR về REQUESTED

- Planner · System (auto) · MRP & Material Ready
- Đến từ: B09
- Đi tới: B46 · MOR REQUESTED — chờ kho xuất lại

> Hệ thống đưa MOR về chờ xuất lại khi phiếu xuất kho bị huỷ.  
> Khi nào: Stock Out Slip liên kết WO / WI bị Cancel ở WMS (đảo xuất kho).  
> Kết quả: MOR ISSUED → REQUESTED, chờ kho xuất lại; có ghi giao dịch đảo ("reversal/adjustment must create audit transaction"), không sửa trực tiếp giao dịch đã ghi.  
> Chưa chốt: lô đã gán ca hoặc đã tiêu hao theo POP thì xử lý thế nào.  
> Kiểm thử:  
> - Cancel Stock Out Slip → MOR về REQUESTED, tồn lô tăng lại  
> Nguồn: BRD §6.3 · quy ước Q3 · §1.7  

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

#### Material Out Request (MRP & Material Ready)

`DRAFT` → `REQUESTED` → `PICKING` → `ISSUED`

Bước chuyển:

- `DRAFT` -- Gửi MOR (Planner) --> `REQUESTED`
- `REQUESTED` -- Kho soạn hàng --> `PICKING`
- `PICKING` -- Stock Out Slip APPROVED --> `ISSUED`
- `ISSUED` -- Stock Out Slip bị Cancel --> `REQUESTED` (quay lại)

#### Material Lot Assignment

`DRAFT` → `CONFIRMED`

Bước chuyển:

- `DRAFT` -- Confirm --> `CONFIRMED`

#### Return (Return & Variance)

`WAITING WAREHOUSE` → `RECEIVED`

Bước chuyển:

- `WAITING WAREHOUSE` -- Inbound Slip APPROVED --> `RECEIVED`

## Input

| # | Input | Loại | Đi vào bước |
| --- | --- | --- | --- |
| I-1 | MOR `DRAFT` tạo từ Booking — "Booking Material Out Request" (Work Order / WI) cho công đoạn ép, MOR vật tư đóng gói ở màn Packing | Chứng từ — MES | Start → Mở Material Out Request Worklist |
| I-2 | Tồn nguyên vật liệu theo lô tại Issue Warehouse — nguyên vật liệu cho ép mua theo SO PR tạo khi Release Big Plan ở I/J Plan, kho nhập theo PO | Tồn kho — module WMS | Kiểm vật tư cho WI |
| I-3 | Outbound Slip `SUBMITTED` theo MOR (kho bắt đầu soạn hàng) | Chứng từ — module WMS (Outbound) | Chuyển MOR sang PICKING |
| I-4 | Stock Out Slip `APPROVED` liên kết WO / WI | Chứng từ — module WMS (Outbound) | Chuyển MOR sang ISSUED |
| I-5 | WI Injection theo ngày · ca · máy | Chứng từ — MES (Injection Schedule) | Tạo Material Lot Assignment |
| I-6 | Kết quả POP theo WI (Good · NG) | Kết quả sản xuất — MES | Tính tiêu hao theo POP |
| I-7 | Warehouse · Location | Master data | Nhập Return Qty · Actual Destination |
| I-8 | Inbound Slip `APPROVED` (Return from Line) | Chứng từ — module WMS (Inbound) | Chuyển Return sang RECEIVED |
| I-9 | Stock Out Slip `APPROVED` bị Cancel (§1.7, đảo xuất kho) | Chứng từ — module WMS (Outbound) | Đưa MOR về REQUESTED |

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

| Bước | Vai trò | Màn hình · nút trên UI |
| --- | --- | --- |
| Mở Material Out Request Worklist · Kiểm vật tư cho WI · Gửi Material Out Request | Planner | MRP & Material Ready (lọc `STATUS`, `SEARCH MOR / WO / MATERIAL`, `Refresh`, `Excel`) |
| Đánh dấu thiếu vật tư · Chuyển MOR sang PICKING · Chuyển MOR sang ISSUED · Đưa MOR về REQUESTED | System (auto) | MRP & Material Ready |
| Tạo Material Lot Assignment · Chọn lô đã xuất theo WO · Nhập Assigned Qty theo lô · Lưu nháp · Xác nhận Assignment | Operator | Material Lot Assignment (`Create Assignment`, `Select Issued Lots by WO`, `Add`, `Save Draft`, `Confirm`) |
| Báo lỗi Assignment | System (auto) | Material Lot Assignment |
| Tạo phiếu Return · Thêm lô đã xuất · Nhập Return Qty · Actual Destination · Gửi phiếu Return | Operator | Return & Variance (`Create Return`, `Add Lot`, `Validate`, `Submit Return`) |
| Tính tiêu hao theo POP · Tính Returnable theo lô · Báo lỗi Validate · Chuyển Return sang RECEIVED · Tính Issue Balance theo lô | System (auto) | Return & Variance |

## Output

| # | Output | Điều kiện sinh ra |
| --- | --- | --- |
| O-1 | Cảnh báo thiếu vật tư cho WI (Planner) — MOR vẫn gửi được | Tồn khả dụng theo lô tại Issue Warehouse < Total Qty của MOR |
| O-2 | MOR = `REQUESTED` sang WMS Outbound (Stock Out ra khu Mixing theo WO / WI) | Planner gửi Material Out Request |
| O-3 | MOR = `ISSUED` — lô nguyên vật liệu đã xuất ra khu Mixing, gắn WO / WI (giữ số lô lúc nhập kho) | Stock Out Slip liên kết WO / WI được `APPROVED` ở WMS |
| O-4 | Assignment bị chặn + lỗi cho Operator | Thiếu date / shift / machine / WI, chưa có lô, hoặc Assigned Qty ≤ 0 / > Issued Qty |
| O-5 | Lô vật tư gán ngày · ca · máy · WI (Assignment = `CONFIRMED`) — Daily Injection by Shift tự điền lô khi mở POP của WI | Operator bấm Confirm |
| O-6 | Return bị chặn + lỗi Validate | Return Qty ≤ 0 hoặc > Returnable; thiếu destination; location không thuộc warehouse |
| O-7 | Return = `WAITING WAREHOUSE` sang WMS Inbound (Return from Line) | Operator bấm Submit Return |
| O-9 | Return = `RECEIVED` (tồn nguyên vật liệu tăng lại ở WMS) | Inbound Slip Return from Line được `APPROVED` |
| O-8 | Issue Balance = Issued − Consumed − Returned theo lô · WI (dùng khi đóng WI / WO) | Sau khi Return `RECEIVED` |
| O-10 | MOR = `REQUESTED` — chờ kho xuất lại | Stock Out Slip liên kết WO / WI bị Cancel ở WMS |

## Thuật ngữ

| Thuật ngữ | Nghĩa trong flow này |
| --- | --- |
| `MOR` | Material Out Request — yêu cầu xuất vật tư cho WO / WI, gửi sang kho (WMS Outbound) |
| `WO` | Work Order — lệnh sản xuất, sinh khi Release ở Master Plan; mỗi WO kéo theo các plan công đoạn |
| `WI` | Work Instruction — lệnh làm việc theo ngày · ca · máy của một WO |
| `Issue Warehouse` | Kho xuất vật tư ghi trên MOR |
| `Material Lot Assignment` | Phiếu gán lô nguyên vật liệu đã xuất ra khu Mixing cho ngày · ca · máy · WI cụ thể; không bắt buộc — WI không có phiếu thì Operator tự khai báo lô ở Daily Injection by Shift |
| `Khu Mixing` | Khu trộn nguyên vật liệu ở xưởng, nhận nguyên vật liệu kho xuất theo MOR; không phải công đoạn trong Routing, không sinh lô mới |
| `POP` | Point of Production — khai báo sản lượng tại công đoạn, theo ca và theo size |
| `Consumed` | Số vật tư đã tiêu hao, tính từ POP và BOM |
| `Returnable` | Số lô còn được trả = Issued − Consumed − Returned |
| `Issue Balance` | Issued Qty − Consumed Qty − Returned Qty, tính sau khi kho nhận hàng trả |
