# Injection Plan (I/J Plan) — mỗi Work Order một Detail Plan, hệ thống gom vào Big Plan theo Style + Model + Base Color + Plan Month (không theo Area); Planner lập kế hoạch ép trên Big Plan (Order & Overrun) rồi Release — hệ thống tự tạo một SO PR nguyên vật liệu cho Purchase; Mold Calculate theo tháng + Model + Base Color; Warehouse Staff tính compound từ Part BOM

> Fine Chemical (FC) · Module MES · v1.3 · 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/injection-plan

## 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
- Warehouse Staff
- 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 | Work Order RELEASED (từ Master Plan) |  | B09 |
| B02 | Input | Dữ liệu | Khoá gom trên WO: Style · Model · Base Color · P.O Month |  | B11 |
| B03 | Input | Dữ liệu | Q'ty theo size của WO (phân bổ SO + Common Stock) |  | B15 |
| B04 | Input | Dữ liệu | Sản lượng A-grade đã xác nhận (POP) |  | B27 |
| B05 | Input | Dữ liệu | P.O của Model · Base Color trong tháng |  | B37 |
| B06 | Input | Dữ liệu | INV Mold Q'ty từ Mold Management |  | B39 |
| B07 | Input | Dữ liệu | Master data: Part BOM (Part + Gate Weight) | Master data | B50 |
| B08 | Input | Dữ liệu | Master data: Item RAWMATERIAL | Master data | B51 |
| B09 | Planner | Bắt đầu | Start |  | B10 |
| B10 | Planner | Bước | Sinh Detail Plan cho mỗi WO | System (auto) · I/J Plan | B11 |
| B11 | Planner | Điểm quyết định | Có Big Plan cùng khoá NEW / DRAFT? |  | B12 [Không]; B13 [Có] |
| B12 | Planner | Bước | Tạo Big Plan NEW theo khoá gom | System (auto) · I/J Plan | B13 |
| B13 | Planner | Bước | Gắn Detail Plan vào Big Plan | System (auto) · I/J Plan | B14 |
| B14 | Planner | Bước | Mở Big Plan (Detail dòng Big Plan) | Web · I/J Plan | B15 |
| B15 | Planner | Bước | Cộng Order Q'ty theo size các WO | System (auto) · I/J Plan | B16 |
| B16 | Planner | Bước | Nhập Overrun % theo size cho Big Plan | Web · I/J Plan | B17 |
| B17 | Planner | Bước | Tính Planning Q'ty Big Plan · từng WO | System (auto) · I/J Plan | B18 |
| B18 | Planner | Bước | Save Plan | Web · I/J Plan | B19 |
| B19 | Planner | Điểm quyết định | Mỗi WO: Σ Order Q'ty = Q'ty WO? |  | B20 [Không]; B21 [Có] |
| B20 | Output | Dữ liệu | Save bị chặn — tổng Order Q'ty lệch Q'ty WO |  | (kết thúc) |
| B21 | Planner | Bước | Lưu kế hoạch · Big Plan → DRAFT | System (auto) · I/J Plan | B22 |
| B22 | Planner | Bước | Release Big Plan | Web · I/J Plan | B23 |
| B23 | Planner | Bước | Big Plan RELEASED · khoá kế hoạch | System (auto) · I/J Plan | B24; B25 |
| B24 | Output | Dữ liệu | Big Plan RELEASED → Injection Schedule (kế hoạch ép) |  | (kết thúc) |
| B25 | Planner | Điểm quyết định | Big Plan đã có SO PR? |  | B26 [Không]; B27 [Có] |
| B26 | Planner | Bước | Tạo SO PR theo Final Need | System (auto) · I/J Plan | B28; B27 |
| B27 | Planner | Bước | Cập nhật Produced · Remaining | System (auto) · I/J Plan | B29 |
| B28 | Output | Dữ liệu | SO PR (Requested) → Purchase lập PO → kho nhập nguyên vật liệu (WMS Inbound) |  | (kết thúc) |
| B29 | Planner | Điểm quyết định | Mọi Detail Plan đủ Order Q'ty? |  | B30 [Không]; B31 [Có] |
| B30 | Planner | Bước | Xem báo cáo I/J Production Plan | Web · I/J Plan | B32 |
| B31 | Planner | Bước | Chuyển Big Plan COMPLETED | System (auto) · I/J Plan | B33; B34 |
| B32 | Output | Dữ liệu | Báo cáo I/J Production Plan (Remaining) → xếp ca tiếp |  | (kết thúc) |
| B33 | Output | Dữ liệu | Big Plan COMPLETED (đủ Order Q'ty) |  | (kết thúc) |
| B34 | Planner | Kết thúc | End |  |  |
| B35 | Planner | Bắt đầu | Tính khuôn tháng |  | B36 |
| B36 | Planner | Bước | Chọn P.O (Month) · Model · Base Color | Web · I/J Plan | B37 |
| B37 | Planner | Bước | Cộng Total Monthly Order Q'ty theo size | System (auto) · I/J Plan | B38 |
| B38 | Planner | Bước | Nhập Cycle · Need Mold Q'ty theo size | Web · I/J Plan | B39 |
| B39 | Planner | Bước | Tính Shortage Mold = INV − Need | System (auto) · I/J Plan | B40 |
| B40 | Planner | Điểm quyết định | Có size Shortage Mold < 0? |  | B41 [Có]; B42 [Không] |
| B41 | Planner | Bước | Tô đỏ Shortage Mold | System (auto) · I/J Plan | B43; B42 |
| B42 | Planner | Bước | Save Calculation | Web · I/J Plan | B44 |
| B43 | Output | Dữ liệu | Shortage Mold theo size — chỉ cảnh báo |  | (kết thúc) |
| B44 | Planner | Điểm quyết định | Cycle > 0 và có P.O nguồn? |  | B45 [Không]; B46 [Có] |
| B45 | Output | Dữ liệu | Save Calculation bị chặn |  | (kết thúc) |
| B46 | Planner | Bước | Lưu theo tháng · Model · Base Color | System (auto) · I/J Plan | B47 |
| B47 | Planner | Kết thúc | End |  |  |
| B48 | Warehouse Staff | Bắt đầu | Tính compound |  | B49 |
| B49 | Warehouse Staff | Bước | Mở Compound Calculate của Big Plan | Web · I/J Plan | B50 |
| B50 | Warehouse Staff | Bước | Tính Need Compound theo size | System (auto) · I/J Plan | B51 |
| B51 | Warehouse Staff | Bước | Chọn Item Code · tỷ lệ trộn | Web · I/J Plan | B52 |
| B52 | Warehouse Staff | Bước | Nhập Material Overrun % | Web · I/J Plan | B53 |
| B53 | Warehouse Staff | Bước | Tính Final Need · Need (kg) | System (auto) · I/J Plan | B54 |
| B54 | Warehouse Staff | Bước | Save Plan | Web · I/J Plan | B55 |
| B55 | Warehouse Staff | Điểm quyết định | Có nguyên vật liệu tỷ lệ > 0? |  | B56 [Không]; B57 [Có] |
| B56 | Output | Dữ liệu | Compound không lưu — thiếu nguyên vật liệu |  | (kết thúc) |
| B57 | Warehouse Staff | Bước | Lưu Compound của Big Plan | System (auto) · I/J Plan | B58 |
| B58 | Warehouse Staff | Kết thúc | End |  |  |
| B59 | Planner | Bắt đầu | Cần Revision |  | B60 |
| B60 | Planner | Bước | Bấm Revision | Web · I/J Plan | B61 |
| B61 | Planner | Điểm quyết định | Mọi WO của Big Plan Produced = 0? |  | B62 [Không]; B63 [Có] |
| B62 | Output | Dữ liệu | Revision bị chặn — có WO đã có sản lượng |  | (kết thúc) |
| B63 | Planner | Bước | Mở bản nháp Revision | System (auto) · I/J Plan | B64 |
| B64 | Planner | Bước | Sửa Overrun · Save Plan | Web · I/J Plan | B65 |
| B65 | Planner | Bước | Lưu bản cũ vào lịch sử · Big Plan → DRAFT | System (auto) · I/J Plan | B66; B67 |
| B66 | Output | Dữ liệu | Big Plan DRAFT — Injection Schedule giữ ca đã xếp, chặn xếp thêm |  | (kết thúc) |
| B67 | Planner | Bước | Release lại Big Plan | Web · I/J Plan | B68 |
| B68 | Planner | Bước | Big Plan RELEASED · khoá lại kế hoạch | System (auto) · I/J Plan | B69; B70 |
| B69 | Output | Dữ liệu | Kế hoạch ép mới → Injection Schedule |  | (kết thúc) |
| B70 | Planner | Kết thúc | End |  |  |

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

#### B10 · Sinh Detail Plan cho mỗi WO

- Planner · System (auto) · I/J Plan
- Đến từ: B09
- Đi tới: B11 · Có Big Plan cùng khoá NEW / DRAFT?

> Hệ thống sinh một Detail Plan cho mỗi Work Order vừa Release ở Master Plan.  
> Khi nào: Planner bấm "Release Work Order" trên Master Plan.  
> Hệ thống: chép sang Detail Plan số WO, "Q'ty", "P.O (Month)" (= Plan Month của Master Plan), "Style", "Model", "Base Color", "Area", "Destination", "SPRAY / Logo", "Start I/J Date", "I/J ETC", "Priority"; "Area" chỉ để xem, không tham gia khoá gom; Planner không thêm, không xoá Detail Plan.  
> Kết quả: Detail Plan chưa có trạng thái riêng, cột "Status" ghi "—".  
> Chặn khi: Master Plan còn DRAFT — WO chưa hiện ở I/J Plan.  
> Kiểm thử:  
> - Master Plan có 4 WO, bấm "Release Work Order" → I/J Plan có 4 Detail Plan mới  
> Nguồn: BRD IJ v0.3 §6.1 bước 1, FR-IJ-01, BR-IJ-01 · Q-20260928-01 (câu 1) · Q-20261001-03 · Q-20261002-01 · prototype v0.68  

#### B11 · Có Big Plan cùng khoá NEW / DRAFT?

- Planner
- Đến từ: B02, B10
- Đi tới [Không]: B12 · Tạo Big Plan NEW theo khoá gom
- Đi tới [Có]: B13 · Gắn Detail Plan vào Big Plan

> WO đã có Big Plan đang mở cùng khoá gom chưa?  
> Có: có Big Plan NEW hoặc DRAFT cùng Style + Model + Base Color + P.O Month (= Plan Month) với WO → Detail Plan vào Big Plan đó.  
> Không: chưa có Big Plan NEW / DRAFT cùng khoá → hệ thống tạo Big Plan mới.  
> Hệ thống: khoá không gồm Area, SPRAY/Logo, Destination, Part BOM — WO SPRAY và WO Logo cùng khoá nằm chung một Big Plan; WO của hai Master Plan khác Area nhưng cùng khoá cũng nằm chung một Big Plan; khác tháng là hai Big Plan.  
> Kiểm thử:  
> - 4 WO OOriginal Black 2026.Aug: 2 WO từ Master Plan Europe (SPRAY, Logo), 2 WO từ Master Plan Asia (SPRAY, Logo) → một Big Plan "4 WO"  
> - 2 WO cùng Style, Model, Base Color; một 2026.Aug, một 2026.Sep → 2 Big Plan  
> Chưa chốt: khoá chỉ còn Big Plan RELEASED hoặc COMPLETED thì WO mới đi đâu (OQ-IJ-13); prototype v0.68 vẫn tách Big Plan theo Area (mỗi Big Plan một giá trị cột "Area").  
> Nguồn: Q-20261002-01 · Q-20261001-02 (D1) · Q-20261001-03 · prototype v0.68  

#### B12 · Tạo Big Plan NEW theo khoá gom

- Planner · System (auto) · I/J Plan
- Đến từ: B11
- Đi tới: B13 · Gắn Detail Plan vào Big Plan

> Hệ thống tạo Big Plan mới cho khoá gom chưa có Big Plan NEW / DRAFT.  
> Kết quả: Big Plan trạng thái NEW; dòng Big Plan ghi "n (Big Plan)", hiện "P.O (Month)", "Style", "Model", "Base Color" của khoá, để trống "Destination", "SPRAY / Logo", ngày và "Priority".  
> Chưa chốt: cột "Area" của dòng Big Plan hiện gì khi Big Plan gom WO của nhiều Area — prototype v0.68 hiện một Area cho mỗi Big Plan; đề xuất để trống như "Destination", chưa được xác nhận.  
> Nguồn: BRD IJ v0.3 MH-01, FR-IJ-01 · Q-20261002-01 · Q-20261001-02 (D1) · prototype v0.68  

#### B13 · Gắn Detail Plan vào Big Plan

- Planner · System (auto) · I/J Plan
- Đến từ: B11, B12
- Đi tới: B14 · Mở Big Plan (Detail dòng Big Plan)

> Hệ thống đặt Detail Plan dưới Big Plan cùng khoá gom trên "I/J Plan List".  
> Kết quả: dòng Detail Plan ghi "n-m" (n là số Big Plan cha); cột "WO" của Big Plan ghi số WO đã gom (vd "4 WO"); "Q'ty" của Big Plan = tổng "Q'ty" các Detail Plan.  
> Kết quả: "Detail" trên dòng Detail Plan mở trang chỉ đọc Order Q'ty và Planning Q'ty theo size của WO, dải "Read-only · Detail Plan 1-1 is planned on Big Plan 1. Open the Big Plan to change Overrun or Compound."; không có ô nhập, "Save Plan", "Revision".  
> Kiểm thử:  
> - 4 WO 300 + 400 + 200 + 600 cùng khoá gom → Big Plan "4 WO", Q'ty 1.500  
> - Mở "Detail" của Detail Plan 1-2 → mọi ô chỉ đọc  
> Nguồn: BRD IJ v0.3 MH-01 (11, 12), FR-IJ-01 · Q-20260930-08 (câu 2) · Q-20261001-04 · prototype v0.54  

#### B14 · Mở Big Plan (Detail dòng Big Plan)

- Planner · Web · I/J Plan
- Đến từ: B13
- Đi tới: B15 · Cộng Order Q'ty theo size các WO

> Planner mở trang Big Plan để lập kế hoạch ép chung cho mọi WO của Big Plan.  
> Khi nào: Big Plan NEW hoặc DRAFT thì sửa được; RELEASED hoặc COMPLETED thì chỉ xem.  
> Thao tác: I/J Plan › tab "I/J Plan" › lọc "SEARCH BY MONTH", "MODEL", nút trạng thái › "Detail" trên dòng Big Plan.  
> Kết quả: trang có hai bước "Step 1 · Order & Overrun" → "Step 2 · Compound Calculate", mở ở bước 1 (chân trang "Step 1 of 2"); góc phải ghi "Big Plan n · <trạng thái>".  
> Kiểm thử:  
> - Big Plan 1 DRAFT gồm 4 WO → trang Big Plan 1, Step 1 sửa được  
> Nguồn: BRD IJ v0.3 §6.1 bước 2, MH-02 · Q-20260930-07 (câu 3) · Q-20260930-08 (câu 1) · prototype v0.54  

#### B15 · Cộng Order Q'ty theo size các WO

- Planner · System (auto) · I/J Plan
- Đến từ: B03, B14
- Đi tới: B16 · Nhập Overrun % theo size cho Big Plan

> Hệ thống cộng số lượng đặt theo size của mọi WO trong Big Plan.  
> Thao tác: "Step 1 · Order & Overrun" › dòng "ORDER Q'TY" ("Sum of the Work Orders in this Big Plan", chỉ đọc), cột Total là tổng các size.  
> Hệ thống: Order Q'ty của Detail Plan = Q'ty theo size của WO, gồm phân bổ SO và Common Stock; Order Q'ty của size ở Big Plan = Σ Order Q'ty size đó của các Detail Plan; Planner không sửa.  
> Kiểm thử:  
> - Hai WO, size M3/W5 = 19 + 11 → Order Q'ty Big Plan M3/W5 = 30  
> - WO 1.100 đôi (phân bổ SO 1.000 + Common Stock 100) → Order Q'ty Detail Plan 1.100  
> Chưa chốt: prototype chia đều "illustrative size allocation", chưa lấy số theo size thật của WO.  
> Nguồn: BRD IJ v0.3 MH-02 (8), BR-IJ-07 · Q-20261001-02 (D3) · Q-20260930-08 (Hiểu là)  

#### B16 · Nhập Overrun % theo size cho Big Plan

- Planner · Web · I/J Plan
- Đến từ: B15
- Đi tới: B17 · Tính Planning Q'ty Big Plan · từng WO

> Planner nhập tỷ lệ ép dư dự phòng theo size, một lần cho cả Big Plan.  
> Thao tác: "Step 1 · Order & Overrun" › dòng "OVERRUN" ("User input · default 3% · enter per size").  
> Hệ thống: mặc định 3; chỉ nhận số không âm; mọi WO của Big Plan dùng chung Overrun % của size.  
> Chặn khi: Big Plan RELEASED hoặc COMPLETED và chưa mở Revision — ô bị tắt.  
> Nguồn: BRD IJ v0.3 MH-02 (9), FR-IJ-04 · Q-20260930-08 (câu 1) · prototype v0.54  

#### B17 · Tính Planning Q'ty Big Plan · từng WO

- Planner · System (auto) · I/J Plan
- Đến từ: B16
- Đi tới: B18 · Save Plan

> Hệ thống tính số lượng cần ép theo size cho Big Plan và cho từng WO, gồm phần dư dự phòng.  
> Hệ thống: Planning Q'ty = Order Q'ty × (1 + Overrun %), làm tròn tới số nguyên gần nhất; áp cho tổng Big Plan và cho Order Q'ty của từng WO; chân trang ghi "Planning Q'ty total".  
> Kết quả: trang chỉ đọc của Detail Plan hiện Planning Q'ty của WO theo Overrun % của Big Plan.  
> Kiểm thử:  
> - Order 19, Overrun 3% → 19 × 1,03 = 19,57 → Planning Q'ty 20  
> Chưa chốt: làm tròn theo từng WO nên tổng Planning Q'ty các WO có thể lệch Planning Q'ty của Big Plan một vài đôi — số nào là chuẩn.  
> Nguồn: BRD IJ v0.3 FR-IJ-04, BR-IJ-09 · Q-20260930-08 (Hiểu là) · prototype v0.54  

#### B18 · Save Plan

- Planner · Web · I/J Plan
- Đến từ: B17
- Đi tới: B19 · Mỗi WO: Σ Order Q'ty = Q'ty WO?

> Planner lưu Order & Overrun (Planning Q'ty) của Big Plan.  
> Khi nào: Big Plan NEW hoặc DRAFT, hoặc Big Plan đang mở Revision.  
> Thao tác: trang Big Plan › nút "Save Plan" › popup "Save I/J Detail Plan?" ("Saving returns the Big Plan to Draft until it is released again.") › "Save Plan".  
> Chặn khi: Big Plan đang khoá → "This Big Plan is locked. Open a Revision before saving changes."  
> Chưa chốt: prototype v0.54 chặn "Save Plan" của Planner khi chưa có nguyên vật liệu ("Add a raw material with a positive mix ratio before saving the Big Plan.") — câu này chỉ áp cho Compound Calculate; tiêu đề popup còn "Save I/J Detail Plan?".  
> Nguồn: BRD IJ v0.3 FR-IJ-05, §6.8 · Q-20260930-07 · Q-20260930-08 (câu 1) · prototype v0.54  

#### B19 · Mỗi WO: Σ Order Q'ty = Q'ty WO?

- Planner
- Đến từ: B18
- Đi tới [Không]: B20 · Save bị chặn — tổng Order Q'ty lệch Q'ty WO
- Đi tới [Có]: B21 · Lưu kế hoạch · Big Plan → DRAFT

> Mỗi WO của Big Plan có tổng số đặt các size khớp số lượng của Work Order không?  
> Có: với mọi WO, Σ Order Q'ty mọi size = "Q'ty" của WO (không tính Overrun) → lưu.  
> Không: một WO lệch dù thừa hay thiếu → không lưu cả Big Plan, Big Plan giữ trạng thái cũ.  
> Hệ thống: Order Q'ty lấy từ Q'ty theo size của WO (gồm Common Stock) nên bình thường luôn khớp; phép kiểm giữ lại để bắt dữ liệu WO hỏng.  
> Kiểm thử:  
> - Big Plan 2 WO, cả hai khớp → lưu được  
> - WO thứ hai Q'ty 1.000, tổng size 999 → bị chặn  
> Chưa chốt: câu thông báo khi lệch, có nêu tên WO lệch không, và lối gỡ — Order Q'ty lấy từ WO nên Planner không tự sửa (OQ-IJ-07).  
> Nguồn: BRD IJ v0.3 FR-IJ-05, BR-IJ-08, AC-04 · Q-20260924-09 (Q-c) · Q-20261001-02 (D3)  

#### B21 · Lưu kế hoạch · Big Plan → DRAFT

- Planner · System (auto) · I/J Plan
- Đến từ: B19
- Đi tới: B22 · Release Big Plan

> Hệ thống lưu kế hoạch của Big Plan và đưa Big Plan về DRAFT.  
> Kết quả: Big Plan NEW hoặc DRAFT → DRAFT; Planning Q'ty của Big Plan và của từng WO được lưu; báo "Big Plan 1 saved as Draft · 1,548 pairs across 16 sizes."; góc phải ghi "Saved".  
> Kiểm thử:  
> - Big Plan NEW, "Save Plan" → Big Plan DRAFT, mọi Detail Plan hiện Planning Q'ty mới  
> Chưa chốt: chữ "16 sizes" cố định trên prototype trong khi dải size theo Model (OQ-IJ-06).  
> Nguồn: BRD IJ v0.3 FR-IJ-05, §6.5, AC-05 · Q-20260930-08 (câu 1) · prototype v0.54  

#### B22 · Release Big Plan

- Planner · Web · I/J Plan
- Đến từ: B21
- Đi tới: B23 · Big Plan RELEASED · khoá kế hoạch

> Planner tự Release Big Plan — không có người duyệt, không có Reject.  
> Khi nào: Big Plan NEW hoặc DRAFT.  
> Thao tác: I/J Plan List › tick ô của một hoặc nhiều dòng Big Plan › nút "Release" (đổi thành "Release (n)") › popup "Release n Big Plan(s)?" ghi "Released Big Plans lock their Detail Plans; changes need a Revision. One Sales Order Purchase Request (SO PR) for the raw material (Final Need of the Compound Summary) is created automatically per Big Plan; Purchase makes the Purchase Order from it." › "Release".  
> Chặn khi: chưa tick → gợi ý "Tick a New / Draft Big Plan in the list first", báo "Select a New or Draft Big Plan to release."; Big Plan RELEASED / COMPLETED → ô tick mờ, "Big Plan is Released — only New / Draft can be released".  
> Kiểm thử:  
> - Tick Big Plan 1 DRAFT có 4 WO, bấm "Release (1)" → RELEASED, kế hoạch Big Plan bị khoá, có một SO PR  
> Chưa chốt: Release có cần Big Plan đã "Save Plan" và đã có Compound không — theo bảng trạng thái Big Plan NEW chưa Save Plan lần nào vẫn Release được (OQ-IJ-09); lệch BRD MES v1.0 §7 (Supervisor Approve) — cần khách xác nhận (OQ-IJ-02).  
> Nguồn: BRD IJ v0.3 FR-IJ-03, BR-IJ-04, AC-09, AC-10 · Q-20260928-01 (câu 2) · Q-20261001-11 (OQ-94) · Q-20261009-08 · prototype v0.86  

#### B23 · Big Plan RELEASED · khoá kế hoạch

- Planner · System (auto) · I/J Plan
- Đến từ: B22
- Đi tới: B24 · Big Plan RELEASED → Injection Schedule (kế hoạch ép)
- Đi tới: B25 · Big Plan đã có SO PR?

> Hệ thống phát hành Big Plan và khoá kế hoạch của Big Plan.  
> Kết quả: Big Plan NEW / DRAFT → RELEASED; trang Big Plan hiện dải "Big Plan n is Released. Use Revision to change this Big Plan.", "Save Plan" tắt.  
> Kết quả: kế hoạch ép đã Release (Planning Q'ty theo size của từng WO) sang Injection Schedule; gắn máy, số khuôn, ngày / ca ép và ngày ép xong làm ở Injection Schedule, I/J Plan không tính; hệ thống xét tiếp việc tạo SO PR nguyên vật liệu cho Big Plan.  
> Nguồn: BRD IJ v0.3 FR-IJ-03, BR-IJ-05, §6.8 · Q-20260930-07 (câu 1) · Q-20260930-08 (câu 1) · Q-20261001-11 (OQ-94) · Q-20261009-08 · prototype v0.86  

#### B25 · Big Plan đã có SO PR?

- Planner
- Đến từ: B23
- Đi tới [Không]: B26 · Tạo SO PR theo Final Need
- Đi tới [Có]: B27 · Cập nhật Produced · Remaining

> Big Plan vừa Release đã có SO PR chưa?  
> Có: Big Plan đã có SO PR (Release lại sau Revision) → hệ thống không tạo thêm, câu báo ghi "<số Big Plan> already has an SO PR".  
> Không: Big Plan chưa có SO PR → hệ thống tạo một SO PR.  
> Hệ thống: mỗi Big Plan có tối đa một SO PR; Release nhiều Big Plan một lần thì xét riêng từng Big Plan.  
> Kiểm thử:  
> - Release lần đầu Big Plan 1 → tạo SOPR-2610-0001  
> - Revision, Save Plan, Release lại Big Plan 1 → không tạo SO PR mới, SOPR-2610-0001 giữ nguyên  
> Chưa chốt: Final Need đổi sau Revision rồi Release lại thì SO PR cũ được cập nhật, huỷ hay có SO PR bổ sung — prototype v0.68 giữ SO PR cũ.  
> Nguồn: Q-20261001-11 (OQ-94) · Q-20261009-08 · prototype v0.86  

#### B26 · Tạo SO PR theo Final Need

- Planner · System (auto) · I/J Plan
- Đến từ: B25
- Đi tới: B28 · SO PR (Requested) → Purchase lập PO → kho nhập nguyên vật liệu (WMS Inbound)
- Đi tới: B27 · Cập nhật Produced · Remaining

> Hệ thống tự tạo một SO PR để Purchase mua nguyên vật liệu compound cho Big Plan.  
> Khi nào: ngay khi Big Plan được Release và Big Plan chưa có SO PR.  
> Hệ thống: mỗi Item Code trong Compound Summary thành một dòng, số lượng = Final Need × tỷ lệ ÷ Σ tỷ lệ (kg, làm tròn 0,1); số SO PR đánh nối tiếp (vd "SOPR-2610-0001"); trạng thái "Requested"; người tạo "System (on Release I/J Big Plan)".  
> Kết quả: báo "Big Plan 1 released · Sales Order Purchase Request SOPR-2610-0001 (316.2 kg) created — Purchase makes the Purchase Order from it."; trang Big Plan › "Step 2 · Compound Calculate" › dải "Sales Order Purchase Request (SO PR)" ghi "<số> · Requested · <Item Code> <kg> kg · created on Release".  
> Kết quả: Purchase lập Purchase Order từ SO PR; hàng về thì kho nhập vào kho nguyên vật liệu (WMS Inbound), rồi Stock Out ra khu Mixing theo MOR của WO / WI; SO PR không xuất kho, không đổi tồn.  
> Kiểm thử:  
> - Final Need 316,2 kg, một Item Code tỷ lệ 100 → SO PR một dòng 316,2 kg  
> - Hai Item Code tỷ lệ 70 : 30, Final Need 100 kg → hai dòng 70 kg và 30 kg  
> Chưa chốt: Compound chưa lưu lúc Release thì SO PR lấy số nào — prototype v0.68 lấy Compound đã lưu, không có thì bản nháp, không có thì mặc định (một Item Code "OOFOSBLACKL", Material Overrun 5%); SO PR mua toàn bộ Final Need hay chỉ phần thiếu so với tồn nguyên vật liệu (OQ-94 chưa trả lời phần này).  
> Nguồn: Q-20261001-11 (OQ-94) · Q-20261001-10 (OQ-92) · Q-20261009-08 · prototype v0.86  

#### B27 · Cập nhật Produced · Remaining

- Planner · System (auto) · I/J Plan
- Đến từ: B04, B25, B26
- Đi tới: B29 · Mọi Detail Plan đủ Order Q'ty?

> Hệ thống cộng sản lượng ép vào Detail Plan và tính số còn phải ép.  
> Khi nào: Big Plan RELEASED, ca Injection của WO báo sản lượng.  
> Hệ thống: Produced = cộng dồn sản lượng A-grade đã xác nhận theo size; Remaining = max(0, Order Q'ty − Produced); Progress = Produced ÷ Order Q'ty.  
> Kết quả: Progress hiện ở cột "Progress" của "I/J Plan List" (dòng Detail Plan); Produced, Remaining, Progress xem ở báo cáo "I/J Production Plan"; Detail Plan không còn dòng A-grade, tồn Curing, Order Balance.  
> Kiểm thử:  
> - Q'ty 300, Produced 221 → Remaining 79, Progress 74%  
> Chưa chốt: Produced là A-grade đã xác nhận hay tổng POP (OQ-IJ-11); bút toán đảo POP làm Produced giảm thì Big Plan COMPLETED có quay về RELEASED không.  
> Nguồn: BRD IJ v0.3 FR-IJ-12, FR-IJ-13, BR-IJ-17, AC-20 · Q-20260930-07 (câu 2) · Q-20261001-09 · prototype v0.68  

#### B29 · Mọi Detail Plan đủ Order Q'ty?

- Planner
- Đến từ: B27
- Đi tới [Không]: B30 · Xem báo cáo I/J Production Plan
- Đi tới [Có]: B31 · Chuyển Big Plan COMPLETED

> Mọi Detail Plan của Big Plan đã ép đủ số đặt chưa?  
> Có: mọi Detail Plan có Produced ≥ Order Q'ty ở mọi size → hoàn tất Big Plan.  
> Không: còn một size của một Detail Plan có Produced < Order Q'ty → Big Plan giữ RELEASED, Planner theo dõi phần còn lại.  
> Kiểm thử:  
> - Order 1.000, Planning 1.030, Produced 1.000 → Detail Plan đã đủ (Overrun là dự phòng)  
> - Còn một size thiếu 1 đôi → chưa hoàn tất  
> Nguồn: BRD IJ v0.3 FR-IJ-13, BR-IJ-17, AC-19 · Q-20260923-11 (câu 2)  

#### B30 · Xem báo cáo I/J Production Plan

- Planner · Web · I/J Plan
- Đến từ: B29
- Đi tới: B32 · Báo cáo I/J Production Plan (Remaining) → xếp ca tiếp

> Planner xem báo cáo tiến độ ép để lên kế hoạch cho ngày tiếp theo.  
> Khi nào: có Big Plan RELEASED còn Detail Plan có Remaining > 0.  
> Thao tác: báo cáo "I/J Production Plan", xuất Excel.  
> Kết quả: danh sách Detail Plan kèm Produced, Remaining, Progress; không có cột MIC, Cycle, Estimated Date; Planner xếp tiếp ca ở Injection Schedule.  
> Chưa chốt: báo cáo chưa có trên prototype, cột và bộ lọc chưa có mẫu của khách (OQ-IJ-03).  
> Nguồn: BRD IJ v0.3 FR-IJ-14 · meeting 25/09/2026 · Q-20260930-07 · Q-20261001-09  

#### B31 · Chuyển Big Plan COMPLETED

- Planner · System (auto) · I/J Plan
- Đến từ: B29
- Đi tới: B33 · Big Plan COMPLETED (đủ Order Q'ty)
- Đi tới: B34 · End

> Hệ thống đóng Big Plan khi mọi Detail Plan đã ép đủ.  
> Kết quả: Big Plan RELEASED → COMPLETED; Detail Plan chỉ xem, không Revision, không Compound Calculate.  
> Kiểm thử:  
> - Big Plan 2 Detail Plan, size cuối nhận thêm 1 đôi A-grade → COMPLETED  
> Chưa chốt: đóng thiếu khi không ép tiếp phần còn lại chưa có trong mô hình Big Plan (OQ-IJ-10).  
> Nguồn: BRD IJ v0.3 FR-IJ-13, §6.5, AC-19  

#### B36 · Chọn P.O (Month) · Model · Base Color

- Planner · Web · I/J Plan
- Đến từ: B35
- Đi tới: B37 · Cộng Total Monthly Order Q'ty theo size

> Planner chọn tháng, Model và màu cần tính khuôn — độc lập với từng Detail Plan.  
> Thao tác: I/J Plan › tab "Mold Calculate" (hoặc nút "Mold Calculate") › chọn "P.O (MONTH)", "MODEL", "BASE COLOR".  
> Hệ thống: "P.O (MONTH)" là Plan Month (tháng sản xuất) của Master Plan, chép xuống WO lúc Release; "MODEL" liệt kê Model có P.O trong tháng, "BASE COLOR" liệt kê màu có P.O của Model trong tháng.  
> Kết quả: bộ ba đã lưu thì hiện "Cycle", "Need Mold Q'ty" đã lưu và dòng "Saved <ngày giờ>"; chưa lưu thì ghi "Not saved yet".  
> Chưa chốt: đổi bộ chọn khi còn thay đổi chưa lưu thì prototype bỏ thay đổi đó, không hỏi lại.  
> Nguồn: Q-20261009-10 (yêu cầu 06/10/2026) · prototype v0.77 / v0.86 · meeting 25/09/2026  

#### B37 · Cộng Total Monthly Order Q'ty theo size

- Planner · System (auto) · I/J Plan
- Đến từ: B05, B36
- Đi tới: B38 · Nhập Cycle · Need Mold Q'ty theo size

> Hệ thống cộng số lượng mọi P.O của Model và Base Color đã chọn trong tháng.  
> Hệ thống: Total Monthly Order Q'ty của size = Σ số lượng size đó trên mọi P.O của Model và Base Color trong tháng ("P.O source · selected Base Color"); số lượng và Overrun của Big Plan không làm đổi số này.  
> Kiểm thử:  
> - Hai P.O cùng Model, cùng Base Color, size M3/W5 = 120 + 80 → Total Monthly Order Q'ty 200; P.O cùng Model khác màu không cộng vào  
> Nguồn: Q-20261009-10 (yêu cầu 06/10/2026) · prototype v0.77 / v0.86 · BRD IJ v0.3 MH-06 (8)  

#### B38 · Nhập Cycle · Need Mold Q'ty theo size

- Planner · Web · I/J Plan
- Đến từ: B37
- Đi tới: B39 · Tính Shortage Mold = INV − Need

> Planner nhập Cycle và số khuôn cần cho từng size.  
> Thao tác: ô "CYCLE" (mặc định 100) · dòng "Need Mold Q'ty" ("User input by size") nhập số nguyên không âm cho từng size.  
> Hệ thống: không còn Shifts / Day, Working Days; Need Mold Q'ty không còn tính từ Cycle — Planner tự nhập.  
> Chưa chốt: Cycle không tham gia công thức nào trên màn — Cycle dùng để làm gì (OQ-IJ-34); Cycle ở đây và năng suất khuôn của Injection Schedule có dùng chung một nguồn không (OQ-IJ-14).  
> Nguồn: Q-20261009-10 (yêu cầu 06/10/2026) · prototype v0.77 / v0.86  

#### B39 · Tính Shortage Mold = INV − Need

- Planner · System (auto) · I/J Plan
- Đến từ: B06, B38
- Đi tới: B40 · Có size Shortage Mold < 0?

> Hệ thống lấy tồn khuôn và tính số khuôn thừa / thiếu theo size.  
> Hệ thống: INV Mold Q'ty = mọi khuôn của Model theo size trong Mold Management ("Current mold inventory · view only"); Shortage Mold = INV Mold Q'ty − Need Mold Q'ty theo size và cột Total.  
> Kiểm thử:  
> - INV 1, Need 3 → Shortage −2  
> - INV 2, Need 2 → Shortage 0  
> Chưa chốt: có tính khuôn In Repair / Retired không (OQ-IJ-05).  
> Nguồn: Q-20261009-10 (yêu cầu 06/10/2026) · prototype v0.77 / v0.86 · meeting 25/09/2026  

#### B40 · Có size Shortage Mold < 0?

- Planner
- Đến từ: B39
- Đi tới [Có]: B41 · Tô đỏ Shortage Mold
- Đi tới [Không]: B42 · Save Calculation

> Model và màu đã chọn có thiếu khuôn ở size nào không?  
> Có: Shortage Mold < 0 ở ít nhất một size → tô đỏ size đó.  
> Không: mọi size có Shortage Mold ≥ 0 → tô xanh dương.  
> Kiểm thử:  
> - INV 2, Need 2 → 0, xanh dương  
> - INV 1, Need 3 → −2, đỏ  
> Nguồn: Q-20261009-10 (yêu cầu 06/10/2026) · prototype v0.77 / v0.86  

#### B41 · Tô đỏ Shortage Mold

- Planner · System (auto) · I/J Plan
- Đến từ: B40
- Đi tới: B43 · Shortage Mold theo size — chỉ cảnh báo
- Đi tới: B42 · Save Calculation

> Hệ thống tô đỏ size thiếu khuôn (Shortage Mold âm) để Planner xử lý với bộ phận khuôn; size ≥ 0 tô xanh dương.  
> Kết quả: chỉ cảnh báo, không chặn "Save Calculation", "Save Plan" hay Release.  
> Chưa chốt: Shortage Mold có cần cảnh báo trên Big Plan hay ràng buộc Release không (OQ-IJ-15).  
> Nguồn: Q-20261009-10 (yêu cầu 06/10/2026) · prototype v0.77 / v0.86  

#### B42 · Save Calculation

- Planner · Web · I/J Plan
- Đến từ: B40, B41
- Đi tới: B44 · Cycle > 0 và có P.O nguồn?

> Planner lưu Cycle và Need Mold Q'ty của tháng, Model và màu đang chọn.  
> Thao tác: nút "Save Calculation".  
> Kết quả: kiểm ở bước kế; hợp lệ thì báo "Mold calculation saved · <tháng> / <Model> / <Base Color> · Need <n> / INV <n> molds."  
> Nguồn: Q-20261009-10 (yêu cầu 06/10/2026) · prototype v0.77 / v0.86  

#### B44 · Cycle > 0 và có P.O nguồn?

- Planner
- Đến từ: B42
- Đi tới [Không]: B45 · Save Calculation bị chặn
- Đi tới [Có]: B46 · Lưu theo tháng · Model · Base Color

> Đủ điều kiện lưu không?  
> Có: Cycle > 0 và bộ P.O (Month) / Model / Base Color có ít nhất một P.O → lưu.  
> Không: Cycle = 0, âm hoặc để trống, hoặc bộ chọn không có P.O → không lưu, báo "Select a P.O (Month) / Model / Base Color and enter a positive Cycle."  
> Kiểm thử:  
> - Cycle = 0 → bị chặn, báo lỗi  
> Nguồn: Q-20261009-10 (yêu cầu 06/10/2026) · prototype v0.77 / v0.86  

#### B46 · Lưu theo tháng · Model · Base Color

- Planner · System (auto) · I/J Plan
- Đến từ: B44
- Đi tới: B47 · End

> Hệ thống lưu Cycle và Need Mold Q'ty theo size cho bộ P.O (Month) + Model + Base Color.  
> Kết quả: mở lại cùng bộ thì hiện số đã lưu và "Saved <ngày giờ>"; INV Mold Q'ty và Shortage Mold tính lại theo tồn khuôn hiện tại.  
> Nguồn: Q-20261009-10 (yêu cầu 06/10/2026) · prototype v0.77 / v0.86  

#### B49 · Mở Compound Calculate của Big Plan

- Warehouse Staff · Web · I/J Plan
- Đến từ: B48
- Đi tới: B50 · Tính Need Compound theo size

> Warehouse Staff mở phần tính compound của một Big Plan.  
> Khi nào: Big Plan đã được Planner "Save Plan" ít nhất một lần; Big Plan NEW hoặc DRAFT.  
> Thao tác: trang Big Plan › "Step 2 · Compound Calculate".  
> Chặn khi: Big Plan RELEASED hoặc COMPLETED → mọi ô tắt; Planner chỉ xem, không sửa được.  
> Chưa chốt: BRD tách Compound Calculate thành tab riêng của Warehouse Staff, prototype v0.54 đặt ở bước 2 của trang Big Plan mà Planner mở.  
> Nguồn: BRD IJ v0.3 §6.3, FR-IJ-09, BR-IJ-15, AC-15 · Q-20260928-01 (câu 3) · Q-20260930-07 (câu 3) · Q-20260930-08 (câu 1)  

#### B50 · Tính Need Compound theo size

- Warehouse Staff · System (auto) · I/J Plan
- Đến từ: B07, B49
- Đi tới: B51 · Chọn Item Code · tỷ lệ trộn

> Hệ thống tính lượng compound cần theo size từ Planning Q'ty đã lưu của Big Plan và Part BOM của Model.  
> Thao tác: "Step 2 · Compound Calculate" › dòng "Part Weight", "Gate Weight" ("Part BOM · g / pair"), "BOM" ("(Part + Gate Weight) ÷ 1000 · kg / pair"), "Need Compound" — mọi dòng chỉ đọc; ô "Part BOM" hiện mã Part BOM của Model (vd "BOM-00040") kèm "Size Details: Part Weight + Gate Weight".  
> Hệ thống: BOM (kg / đôi) của size = (Part Weight + Gate Weight) ÷ 1000; Need Compound của size = Planning Q'ty × BOM; Total Need = Σ Need Compound các size.  
> Kiểm thử:  
> - Size M3/W5 Planning 316 đôi, Part Weight 300 g + Gate Weight 50 g → BOM 0,350 → 110,6 kg  
> Chưa chốt: Part BOM có nhiều Compound Type thì tách Need Compound theo Compound Type hay cộng chung — prototype v0.68 có một dòng Part Weight / Gate Weight cho mỗi size, số gram là dữ liệu mẫu; Part BOM thiếu số của một size thì chặn lưu hay tính 0.  
> Nguồn: Q-20261001-10 (OQ-91) · Q-20261001-02 (D2) · BRD IJ v0.3 BR-IJ-16 · prototype v0.68  

#### B51 · Chọn Item Code · tỷ lệ trộn

- Warehouse Staff · Web · I/J Plan
- Đến từ: B08, B50
- Đi tới: B52 · Nhập Material Overrun %

> Warehouse Staff chọn nguyên vật liệu và tỷ lệ trộn.  
> Thao tác: dòng "Raw material (Item Code)" › chọn Item Code nhóm RAWMATERIAL · ô tỷ lệ "1 : …" (mặc định 100); "Add Item Code" thêm dòng, dấu x xoá dòng.  
> Chặn khi: một Item Code chỉ chọn một lần trong cùng Big Plan; mọi Item Code đã chọn thì "Add Item Code" mờ ("Every raw material item is already added").  
> Nguồn: BRD IJ v0.3 MH-05 (4, 5, 7) · prototype v0.68  

#### B52 · Nhập Material Overrun %

- Warehouse Staff · Web · I/J Plan
- Đến từ: B51
- Đi tới: B53 · Tính Final Need · Need (kg)

> Warehouse Staff nhập tỷ lệ hao hụt nguyên vật liệu.  
> Thao tác: ô "Material Overrun %" trong khối "Compound Summary" (mặc định 5).  
> Nguồn: BRD IJ v0.3 MH-05 (8)  

#### B53 · Tính Final Need · Need (kg)

- Warehouse Staff · System (auto) · I/J Plan
- Đến từ: B52
- Đi tới: B54 · Save Plan

> Hệ thống tính tổng lượng cần gồm hao hụt và chia cho từng nguyên vật liệu.  
> Hệ thống: Material Overrun = Total Need × Material Overrun %; Final Need = Total Need + Material Overrun; Need (kg) của Item Code = Final Need × tỷ lệ ÷ Σ tỷ lệ.  
> Kiểm thử:  
> - Total Need 110,6, Overrun 5% → 5,5 → Final Need 116,1 kg; một Item Code tỷ lệ 100 → 116,1 kg  
> Nguồn: BRD IJ v0.3 MH-05 (6, 10, 11), BR-IJ-16, AC-13  

#### B54 · Save Plan

- Warehouse Staff · Web · I/J Plan
- Đến từ: B53
- Đi tới: B55 · Có nguyên vật liệu tỷ lệ > 0?

> Warehouse Staff lưu kết quả Compound Calculate của Big Plan.  
> Khi nào: Big Plan NEW hoặc DRAFT.  
> Thao tác: "Step 2 · Compound Calculate" › nút "Save Plan".  
> Kết quả: chỉ lưu Compound của Big Plan; trạng thái Big Plan không đổi.  
> Nguồn: BRD IJ v0.3 §6.3 bước 4, MH-05 (12) · Q-20260930-08 (câu 1)  

#### B55 · Có nguyên vật liệu tỷ lệ > 0?

- Warehouse Staff
- Đến từ: B54
- Đi tới [Không]: B56 · Compound không lưu — thiếu nguyên vật liệu
- Đi tới [Có]: B57 · Lưu Compound của Big Plan

> Big Plan đã có nguyên vật liệu hợp lệ chưa?  
> Có: có ít nhất một dòng nguyên vật liệu và Σ tỷ lệ > 0 → lưu.  
> Không: không có dòng nào hoặc Σ tỷ lệ = 0 → không lưu, báo "Add a raw material with a positive mix ratio before saving the Big Plan."  
> Kiểm thử:  
> - Xoá hết dòng nguyên vật liệu, bấm "Save Plan" → bị chặn, báo lỗi  
> Nguồn: BRD IJ v0.3 FR-IJ-09, AC-14 · prototype v0.68  

#### B57 · Lưu Compound của Big Plan

- Warehouse Staff · System (auto) · I/J Plan
- Đến từ: B55
- Đi tới: B58 · End

> Hệ thống lưu Final Need và Need (kg) theo Item Code vào Big Plan.  
> Kết quả: Final Need theo Item Code là số hệ thống dùng tạo SO PR khi Planner Release Big Plan.  
> Kiểm thử:  
> - Lưu Compound Final Need 316,2 kg, Big Plan còn DRAFT → chưa có SO PR; Release → SO PR 316,2 kg  
> Chưa chốt: Planner đổi Planning Q'ty sau khi Compound đã lưu thì hệ thống có đánh dấu Compound phải tính lại và chặn Release tới khi tính lại không.  
> Nguồn: BRD IJ v0.3 FR-IJ-09 · Q-20260930-08 (câu 1) · Q-20261001-11 (OQ-94)  

#### B60 · Bấm Revision

- Planner · Web · I/J Plan
- Đến từ: B59
- Đi tới: B61 · Mọi WO của Big Plan Produced = 0?

> Planner mở Revision để sửa kế hoạch đã khoá của Big Plan.  
> Khi nào: Big Plan RELEASED, chưa mở Revision; nút "Revision" chỉ hiện lúc này.  
> Thao tác: trang Big Plan (dải "Big Plan n is Released. Use Revision to change this Big Plan.") › nút "Revision".  
> Chặn khi: Big Plan NEW / DRAFT → "Big Plan <n> is already editable."; Big Plan COMPLETED → không có nút; trang chỉ đọc của Detail Plan không có nút "Revision".  
> Nguồn: BRD IJ v0.3 §6.4 bước 1–2, MH-04, FR-IJ-08 · Q-20260930-08 (câu 4) · prototype v0.54  

#### B61 · Mọi WO của Big Plan Produced = 0?

- Planner
- Đến từ: B60
- Đi tới [Không]: B62 · Revision bị chặn — có WO đã có sản lượng
- Đi tới [Có]: B63 · Mở bản nháp Revision

> Mọi WO của Big Plan đã chưa có sản lượng?  
> Có: mọi Detail Plan của Big Plan có Produced = 0 ở mọi size → mở Revision.  
> Không: một WO có Produced > 0 → không mở, báo "Revision not allowed — 1-1, 1-2, 1-3, 1-4 of Big Plan 1 already have injection output."; phần còn lại xử lý qua Remaining.  
> Kiểm thử:  
> - Big Plan 4 WO, cả 4 Produced 0 → mở được  
> - Một WO Produced 1 đôi, 3 WO còn lại 0 → bị chặn  
> Chưa chốt: câu chặn do prototype v0.54 tự đặt, chờ duyệt chữ (OQ-IJ-23).  
> Nguồn: BRD IJ v0.3 BR-IJ-06, AC-11, AC-12 · Q-20260923-10 (câu 3) · Q-20260930-08 (câu 4) · prototype v0.54  

#### B63 · Mở bản nháp Revision

- Planner · System (auto) · I/J Plan
- Đến từ: B61
- Đi tới: B64 · Sửa Overrun · Save Plan

> Hệ thống giữ bản đang có của Big Plan làm bản gốc và mở khoá các ô nhập.  
> Kết quả: báo "Revision draft opened for Big Plan 2. Save Plan retains the previous version and returns the Big Plan to Draft."; góc phải ghi "Big Plan n · Released · Revision draft"; Big Plan vẫn RELEASED, bản đã Release vẫn hiệu lực.  
> Nguồn: BRD IJ v0.3 §6.4 bước 2, MH-04 (5), §6.8 · Q-20260930-08 (câu 4) · prototype v0.54  

#### B64 · Sửa Overrun · Save Plan

- Planner · Web · I/J Plan
- Đến từ: B63
- Đi tới: B65 · Lưu bản cũ vào lịch sử · Big Plan → DRAFT

> Planner sửa Order & Overrun của bản Revision Big Plan rồi lưu.  
> Thao tác: "Step 1 · Order & Overrun" › sửa "OVERRUN" › "Save Plan" › popup "Save I/J Detail Plan?".  
> Kết quả: rời trang không "Save Plan" thì bản nháp Revision được giữ, Big Plan vẫn RELEASED.  
> Chặn khi: một WO có tổng Order Q'ty ≠ Q'ty WO (như luồng chính).  
> Nguồn: BRD IJ v0.3 §6.4 bước 3a, 3b · Q-20260930-07 · Q-20260930-08 (câu 4) · prototype v0.54  

#### B65 · Lưu bản cũ vào lịch sử · Big Plan → DRAFT

- Planner · System (auto) · I/J Plan
- Đến từ: B64
- Đi tới: B66 · Big Plan DRAFT — Injection Schedule giữ ca đã xếp, chặn xếp thêm
- Đi tới: B67 · Release lại Big Plan

> Hệ thống lưu bản cũ vào lịch sử, lưu bản mới và đưa Big Plan về DRAFT.  
> Kết quả: Big Plan RELEASED → DRAFT; Warehouse Staff tính lại Compound được khi cần; ca đã xếp ở Injection Schedule giữ nguyên, Injection Schedule chặn xếp thêm ca cho các WO của Big Plan tới khi Big Plan RELEASED lại.  
> Kiểm thử:  
> - WO có 2 ca đã xếp, Save Plan bản Revision → 2 ca giữ, không xếp được ca thứ 3  
> Chưa chốt: bản lịch sử Revision xem ở đâu (OQ-IJ-16).  
> Nguồn: BRD IJ v0.3 FR-IJ-08, §6.4 · Q-20260923-11 (câu 4) · Q-20260930-08 (câu 4)  

#### B67 · Release lại Big Plan

- Planner · Web · I/J Plan
- Đến từ: B65
- Đi tới: B68 · Big Plan RELEASED · khoá lại kế hoạch

> Planner Release lại Big Plan sau Revision.  
> Khi nào: Big Plan DRAFT.  
> Thao tác: I/J Plan List › tick Big Plan › "Release (n)".  
> Nguồn: BRD IJ v0.3 §6.4 bước 4, FR-IJ-03 · Q-20261009-08 · prototype v0.86  

#### B68 · Big Plan RELEASED · khoá lại kế hoạch

- Planner · System (auto) · I/J Plan
- Đến từ: B67
- Đi tới: B69 · Kế hoạch ép mới → Injection Schedule
- Đi tới: B70 · End

> Hệ thống phát hành lại Big Plan và khoá kế hoạch theo bản mới.  
> Kết quả: Big Plan DRAFT → RELEASED; Injection Schedule xếp tiếp theo số mới; Big Plan đã có SO PR nên hệ thống không tạo SO PR mới, câu báo ghi "<số Big Plan> already has an SO PR".  
> Chưa chốt: Final Need đổi sau Revision thì SO PR cũ được cập nhật, huỷ hay có SO PR bổ sung — prototype v0.68 giữ SO PR cũ.  
> Nguồn: BRD IJ v0.3 §6.4 bước 4 · Q-20260923-11 (câu 4) · Q-20261001-11 (OQ-94) · Q-20261009-08 · prototype v0.86  

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

#### Big Plan (I/J Plan)

`NEW` → `DRAFT` → `RELEASED` → `COMPLETED`

Bước chuyển:

- `NEW` -- Save Plan Big Plan --> `DRAFT`
- `DRAFT` -- Release — Planner --> `RELEASED`
- `RELEASED` -- Mọi Detail Plan đủ Order Q'ty --> `COMPLETED`
- `RELEASED` -- Revision + Save Plan (mọi WO Produced = 0) --> `DRAFT` (quay lại)
- `NEW` -- Release — Big Plan NEW --> `RELEASED` (quay lại)

## Input

| # | Input | Loại | Đi vào bước |
| --- | --- | --- | --- |
| I-1 | Work Order `RELEASED` từ Master Plan — số WO, Q'ty, P.O (Month) = Plan Month, Style, Model, Base Color, Area (chỉ để xem), Destination, SPRAY / Logo, Start I/J Date, I/J ETC, Priority | Chứng từ — flow Master Plan | Start → Sinh Detail Plan cho mỗi WO |
| I-2 | Khoá gom trên WO — Style · Model · Base Color · P.O Month (= Plan Month); không gồm Area, SPRAY / Logo, Destination, Part BOM | Chứng từ — flow Master Plan | Có Big Plan cùng khoá NEW / DRAFT? |
| I-3 | Q'ty theo size của WO — phân bổ SO + Common Stock, làm Order Q'ty của Detail Plan | Chứng từ — flow Master Plan | Cộng Order Q'ty theo size các WO |
| I-4 | Sản lượng A-grade đã xác nhận (POP các ca Injection), cộng dồn theo size | Kết quả sản xuất — MES | Cập nhật Produced · Remaining |
| I-5 | P.O của Model và Base Color trong tháng, theo size | Chứng từ — module Sales | Cộng Total Monthly Order Q'ty theo size |
| I-6 | INV Mold Q'ty — mọi khuôn của Model theo size trong Mold Management | Tồn khuôn — Mold Management | Tính Shortage Mold = INV − Need |
| I-7 | Part BOM của Model — Part Weight (g) và Gate Weight (g) theo size, theo Compound Type | Master data | Tính Need Compound theo size |
| I-8 | Item nhóm RAWMATERIAL (Item Code nguyên vật liệu) | Master data | Chọn Item Code · tỷ lệ trộn |

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

| Bước | Vai trò | Màn hình · nút trên UI |
| --- | --- | --- |
| Sinh Detail Plan cho mỗi WO · Tạo Big Plan NEW theo khoá gom · Gắn Detail Plan vào Big Plan | System (auto) | I/J Plan · tab `I/J Plan` · `I/J Plan List` (dòng `n (Big Plan)` / `n-m`) |
| Mở Big Plan | Planner | I/J Plan List · `Detail` trên dòng Big Plan → trang Big Plan 2 bước |
| Cộng Order Q'ty theo size các WO · Nhập Overrun % theo size cho Big Plan · Tính Planning Q'ty Big Plan · từng WO | System (auto) · Planner | Big Plan · `Step 1 · Order & Overrun` |
| Save Plan · Lưu kế hoạch · Big Plan → DRAFT | Planner · System (auto) | Big Plan · `Save Plan` → popup `Save I/J Detail Plan?` |
| Xem Detail Plan (từng WO) | Planner | I/J Plan List · `Detail` trên dòng Detail Plan → trang chỉ đọc (Order Q'ty, Planning Q'ty theo size của WO) |
| Release Big Plan · Big Plan RELEASED · khoá Detail Plan | Planner · System (auto) | I/J Plan List · tick dòng Big Plan + `Release (n)` |
| Big Plan đã có SO PR? · Tạo SO PR theo Final Need | System (auto) | Khi Release Big Plan; xem ở trang Big Plan · `Step 2 · Compound Calculate` · dải `Sales Order Purchase Request (SO PR)` |
| Cập nhật Produced · Remaining · Chuyển Big Plan COMPLETED | System (auto) | I/J Plan List · cột `Progress`; báo cáo `I/J Production Plan` |
| Xem báo cáo I/J Production Plan | Planner | Báo cáo `I/J Production Plan` (chưa có trên prototype) |
| Chọn P.O (Month) · Model · Base Color · Nhập Cycle · Need Mold Q'ty theo size · Save Calculation | Planner | I/J Plan · tab `Mold Calculate` · `Save Calculation` |
| Mở Compound Calculate · Chọn Item Code · tỷ lệ trộn · Nhập Material Overrun % · Save Plan | Warehouse Staff | Big Plan · `Step 2 · Compound Calculate` (BRD: tab riêng của Warehouse Staff) |
| Bấm Revision · Sửa Overrun · Save Plan · Release lại Big Plan | Planner | Big Plan · `Revision` (mọi WO Produced = 0) → `Save Plan`; I/J Plan List · `Release (n)` |

## Output

| # | Output | Điều kiện sinh ra |
| --- | --- | --- |
| O-1 | Save bị chặn — tổng Order Q'ty lệch Q'ty WO | Planner bấm `Save Plan` của Big Plan khi một WO có Σ Order Q'ty các size ≠ Q'ty của WO (không tính Overrun); Big Plan giữ trạng thái cũ |
| O-2 | Big Plan `RELEASED` → Injection Schedule (kế hoạch ép) | Planner Release Big Plan `NEW` / `DRAFT`; kế hoạch khoá, Planning Q'ty theo size từng WO sang Injection Schedule — gắn máy, số khuôn, ngày / ca ép, ngày ép xong làm ở Injection Schedule |
| O-3 | SO PR (Requested) → Purchase lập Purchase Order → hàng về kho nhập nguyên vật liệu (WMS Inbound) → Stock Out ra khu Mixing theo MOR của WO / WI (flow Material Issue & Return) | Tự động khi Release Big Plan chưa có SO PR: một Sales Order Purchase Request cho Big Plan, mỗi Item Code một dòng = Final Need × tỷ lệ ÷ Σ tỷ lệ (kg), trạng thái Requested; Big Plan đã có SO PR (Release lại sau Revision) thì không tạo thêm |
| O-4 | Báo cáo I/J Production Plan (Remaining) → xếp ca tiếp | Big Plan `RELEASED` còn Detail Plan có Remaining = Order Q'ty − Produced > 0; cột Produced · Remaining · Progress (không có MIC, Cycle, Estimated Date) |
| O-5 | Big Plan `COMPLETED` (đủ Order Q'ty) | Tự động khi mọi Detail Plan có Produced ≥ Order Q'ty ở mọi size (Overrun là dự phòng) |
| O-6 | Shortage Mold theo size — chỉ cảnh báo | Shortage Mold = INV Mold Q'ty − Need Mold Q'ty < 0 ở ít nhất một size của Model và Base Color trong tháng (tô đỏ; ≥ 0 tô xanh dương) |
| O-7 | Save Calculation bị chặn | Cycle bằng 0 / để trống, hoặc bộ P.O (Month) / Model / Base Color không có P.O |
| O-8 | Compound không lưu — thiếu nguyên vật liệu | Không có dòng nguyên vật liệu hoặc Σ tỷ lệ = 0 |
| O-9 | Revision bị chặn — có WO đã có sản lượng | Planner bấm `Revision` khi một WO của Big Plan có Produced > 0; phần còn lại xử lý qua Remaining |
| O-10 | Big Plan `DRAFT` — Injection Schedule giữ ca đã xếp, chặn xếp thêm | Planner `Save Plan` bản Revision; bản cũ lưu lịch sử |
| O-11 | Kế hoạch ép mới → Injection Schedule | Planner Release lại Big Plan sau Revision; không tạo SO PR mới |

## Thuật ngữ

| Thuật ngữ | Nghĩa trong flow này |
| --- | --- |
| `Big Plan` | Nhóm Detail Plan cùng khoá gom Style + Model + Base Color + Plan Month (không theo Area, SPRAY / Logo), hiển thị P.O (Month) · Style · Model · Base Color; nơi Planner lập kế hoạch (Overrun, Save Plan, Compound, Revision), mỗi Big Plan tối đa một SO PR, và nơi duy nhất mang trạng thái NEW → DRAFT → RELEASED → COMPLETED |
| `Detail Plan` | Kế hoạch ép của một Work Order, chỉ xem; Planning Q'ty theo Overrun % của Big Plan cha, theo trạng thái Big Plan cha |
| `Khoá gom` | Style + Model + Base Color + P.O Month (= Plan Month) của WO — Detail Plan cùng khoá vào chung một Big Plan NEW / DRAFT, kể cả WO của hai Master Plan khác Area |
| `Area · P.O Month` | Area của Master Plan (Country giao hàng → Area), chép xuống WO, chỉ để xem ở I/J Plan, không tham gia khoá gom · tháng sản xuất, bằng Plan Month của Master Plan |
| `Order Q'ty` | Số lượng theo size của Work Order, gồm phân bổ SO và Common Stock |
| `Common Stock` | Phần WO sản xuất vượt phân bổ SO, Planner quyết định ở Master Plan; tính trong Order Q'ty |
| `Overrun %` | Tỷ lệ ép dư dự phòng theo size, nhập một lần cho Big Plan, mặc định 3% |
| `Planning Q'ty` | Số cần ép = Order Q'ty × (1 + Overrun %), làm tròn gần nhất |
| `I/J ETC` | Hạn ép xong của WO, chép từ Master Plan; ngày ép xong dự kiến tính ở Injection Schedule, không ở I/J Plan |
| `Total Monthly Order Q'ty` | Tổng số lượng mọi P.O của Model trong tháng theo size, gồm mọi màu |
| `Need Mold · INV Mold · Shortage Mold` | Số khuôn cần (Planner nhập theo size) · tồn khuôn từ Mold Management (chỉ xem) · Shortage Mold = INV − Need, âm là thiếu |
| `Mold Management` | Nơi quản lý khuôn — nguồn INV Mold Q'ty |
| `Compound · Part BOM · BOM` | Nguyên liệu phối trộn để ép · định mức phần ép theo Model: Part Weight (g), Gate Weight (g) theo size · BOM = (Part Weight + Gate Weight) ÷ 1000 kg / đôi |
| `Need Compound · Final Need` | Planning Q'ty × BOM theo size · Total Need × (1 + Material Overrun %) |
| `Material Overrun %` | Tỷ lệ hao hụt nguyên vật liệu, mặc định 5% |
| `SO PR` | Sales Order Purchase Request — yêu cầu mua nguyên vật liệu hệ thống tự tạo khi Release Big Plan, theo Final Need từng Item Code; trạng thái đầu Requested |
| `Purchase Order` | Đơn mua hàng do Purchase lập từ SO PR, ngoài I/J Plan; hàng về kho nhập theo PO ở WMS Inbound |
| `Produced · Remaining` | Sản lượng A-grade đã xác nhận cộng dồn · Remaining = max(0, Order Q'ty − Produced) |
| `POP` | Point of Production — khai báo sản lượng theo ca |
| `Revision` | Mở lại kế hoạch của Big Plan RELEASED để sửa khi mọi WO có Produced = 0; Save Plan lưu bản cũ vào lịch sử và đưa Big Plan về DRAFT |
