Packing Planning Spray — Planner lập Packing Plan 3 bước (chọn Spray IN → chọn Repair Inventory → phân bổ vào Customer P.O), mỗi P.O một plan, Release Plan → RELEASED và tự tạo MOR vật tư đóng gói; plan RELEASED sang Packing Result Spray

Fine Chemical (FC) · Module MES · v0.6 · 14/10/2026 · Flow chuẩn — dùng để triển khai, kiểm thử và phát triển

Process Flow (swimlane)

MES · Packing Planning Spray — Planner lập plan 3 bước, mỗi P.O một plan, Release tự tạo MOR vật tư đóng góiPhaseInputPlannerOutputNgoại lệ — Revision plan đã ReleaseKhông — sửa sốCóCóChưaSpray IN List (A + A-) —nhận ở Outsourcing ResultRepair Inventory — hàng Repaired(Spray Out · Pending repair,Packing Spray · Pending repair)Remaining chưa nhậptrả về — Packing Result SprayCustomer P.O · ETD · P.OMonth (Sales Order)Remaining P.O nguồn hoàntrả — Exchange Customer POMaster data: Packing BOM(Model · Size · Destination)Master dataStart▣ Packing Planning SprayTạo Packing PlanWeb▣ Packing Planning SprayStep 1 · ChọnSpray INWeb▣ Packing Planning SprayStep 2 · ChọnRepair InventoryWeb▣ Packing Planning SprayStep 3 · Phân bổvào Detail P.OWebPhân bổ hợp lệ?▣ Packing Planning SprayPhát hành Packing PlanWeb▣ Packing Planning SprayTách plan theo P.O· giữ nguồnSystem (auto)▣ Packing Planning SprayTạo MOR vật tưđóng gói (một / plan)System (auto)EndCần RevisionPlan đã cóRecord Output?▣ Packing Planning SprayTạo RevisionPacking PlanWeb▣ Packing Planning SprayPhát hành lạiPacking PlanWebEndPlan RELEASED (Waiting) →Packing Result Spray ·nguồn Exchange Customer POMOR vật tư đóng gói (tựtạo khi Release) → WMSRevision bị khoá — planđã có sản lượngPlan NEW · mở thẳng Step 3để sửa sốPlan RELEASED lại · giữMOR cũPlanner mở trang lập Packing Plan cho hàng SPRAY đã sơn về, đang chờ đóng gói. Khi nào: bất kỳ lúc nào có hàng chờ đóng gói; Release WO không sinh sẵn Packing Plan. Thao tác: Packing Planning Spray › nút "Create Spray Plan" → trang "Add Packing Spray Plan". Hệ thống: chỉ hàng có Model attribute của WO là Spray; hàng Logo / OOMG lập plan ở Packing Planning Logo. Hệ thống: khung "Plan Details" gồm "Plan No." (Auto-generated), "P.O (Month) *" mặc định tháng đầu, "Plan Date"; thanh 3 bước, chân trang "Reset" · "Back" · "Next". Kết quả: mở Step 1, chưa lưu gì. Chặn khi: "P.O (Month) *" trống mà bấm "Next" ở Step 1 → "Select P.O (Month) first." Kiểm thử: - Bỏ trống "P.O (Month) *" rồi bấm "Next" → hiện "Select P.O (Month) first.", vẫn ở Step 1 Nguồn: Q-20261001-10 (OQ-93) · Q-20260929-13 · CHANGELOG v0.66 · prototype v0.70Planner tick hàng SPRAY đã sơn về làm nguồn của plan. Thao tác: Step 1 · "Select Spray IN" › tick ô chọn từng dòng. Hệ thống: bảng là A + A- nhận ở Outsourcing Result, mỗi dòng mang LOT No., Grade và P.O đã gán ở Outsourcing Planning; Step 1 chỉ chọn, không phân bổ. Kết quả: dòng đã tick cộng vào "Selected Stock (by size)" của Step 3; Step 3 chỉ hiện P.O ghi trên dòng Spray IN. Kiểm thử: - Tick một dòng Spray IN mang P.O 260811-07 → Step 3 chỉ hiện P.O 260811-07 Nguồn: Q-20261001-10 (OQ-93) · Q-20261002-02 (3) · CHANGELOG v0.66 · prototype v0.70Planner chọn thêm hàng đã sửa xong trong Repair Inventory để bù cho plan; bước này không bắt buộc. Thao tác: Step 2 · "Select Repair Inventory" › tick dòng đã sửa; "Back" về Step 1, "Next" sang Step 3. Hệ thống: chỉ dòng đã Repaired tick được, lấy từ phiếu Repair / Rework có Source "Spray Out · Pending repair" hoặc "Packing Spray · Pending repair"; Step 2 chỉ chọn, không phân bổ. Kết quả: dòng đã tick cộng vào "Selected Stock (by size)"; khi phân bổ, hàng Repair được dùng trước. Kiểm thử: - Không tick dòng nào, bấm "Next" → vào Step 3 với nguồn chỉ từ Step 1 - Phiếu RW "Spray Out · Pending repair" ghi Repaired 10 đôi → Step 2 có dòng 10 đôi chọn được Hệ thống: hàng "Spray Out · Pending repair" sửa xong đi thẳng vào Step 2 này, không quay về Step 2 của Outsourcing Planning; C nhận ở Outsourcing Result là hàng hỏng, ghi Defect Records, không vào Step 2. Nguồn: Q-20261013-01 · Q-20261007-01 · Q-20260929-06 · prototype v0.91Planner chia hàng đã chọn cho từng Customer P.O theo size; đây là bước duy nhất phân bổ. Thao tác: Step 3 · "Allocate to Detail P.O" › nút "Allocate" / "Remove" ở cột "Action" từng P.O · nút "Auto Allocate" · gõ số dòng "Allocated". Hệ thống: P.O khớp Model, Base Color, Upper Color, AL / INT và cùng "P.O (Month)", chỉ P.O ghi trên dòng Spray IN; "Remaining" = số đặt của P.O − số các Packing Plan khác đang giữ, cộng phần Remaining chưa nhập trả về từ Packing Result Spray (Pending repair không trả về, đi Repair / Rework) và balance hoàn trả từ Exchange Customer PO. Hệ thống: "Auto Allocate" lấp P.O có ETD sớm trước, hàng Repair trước; "Selected Stock (by size)" cập nhật "Allocated to P.O" và "Not Allocated". Kết quả: dưới bảng hiện "Packing Plan summary" theo P.O; chân trang có nút "Release Plan". Kiểm thử: - P.O vừa được Exchange Customer PO hoàn trả 30 đôi W5 → "Remaining" W5 của P.O đó tăng 30 Nguồn: Q-20261013-01 · Q-20261001-06 · Q-20261002-03 · Q-20260929-06, -08 · CHANGELOG v0.58 · prototype v0.91Hệ thống kiểm số phân bổ trước khi lưu hoặc Release. Có: mỗi P.O có "Allocated" theo size ≤ hàng đã chọn và ≤ "Remaining" của P.O, tổng > 0, có "Plan Date" → cho "Release Plan". Không: báo lỗi và sửa số — "P.O … / <size>: n pairs more than the selected stock" · "<size>: total Packing quantity exceeds the current P.O balance." · "Allocate at least one pair to a Detail P.O." · "Enter a Plan Date." Kiểm thử: - Gõ "Allocated" W5 lớn hơn "Remaining" W5 một đôi → báo vượt balance của P.O, không Release được Nguồn: prototype v0.70Planner phát hành các plan vừa phân bổ; không có bước lưu nháp và không có người duyệt. Khi nào: Step 3 của trang lập plan, khi phân bổ đã hợp lệ. Thao tác: Step 3 › nút "Release Plan" → popup "Release n Packing Plan(s)?" liệt kê "PKP-… → P.O …" và bảng "P.O · Source" theo size → nút "Confirm & Release". Kết quả: plan → RELEASED, hiện ở "Packing List" với trạng thái "Released". Kiểm thử: - Bấm "Cancel" trong popup → không sinh plan - Step 3 không có nút "Save Draft" Nguồn: Q-20261012-06 · Q-20261007-03 · prototype v0.90Hệ thống tạo plan cho từng P.O đã phân bổ và giữ nguồn cho plan. Hệ thống: mỗi P.O một Packing Plan, số "PKP-<YYYYMMDD>-NN" theo ngày plan; dòng plan ghi LOT / Repair No., WO, Grade theo size. Kết quả: plan RELEASED hiện ở Packing Result Spray với trạng thái "Waiting"; nguồn đã phân bổ bị giữ, phần dùng hết không còn hiện ở trang lập plan khác. Kiểm thử: - Release plan dùng hết một dòng nguồn → trang "Create Spray Plan" mới không còn dòng đó ở Step 1 Nguồn: Q-20261012-06 · Q-20261007-03 · prototype v0.90Hệ thống tạo một MOR vật tư đóng gói cho plan vừa Release; Planner không tạo MOR tay. Hệ thống: vật tư lấy từ Packing BOM theo Model + Size + Destination; nhu cầu từng vật tư theo size = ⌈số đôi của plan × Qty dòng ÷ Quantity (đôi / thùng)⌉; Issue From "WH-PK-01 / Packing Store". Kết quả: MOR "MOR-PK-…" trạng thái "Requested", By "System (on Release)" → WMS xuất vật tư; cột "MOR" của "Packing List" hiện số MOR, plan chưa có MOR hiện "—". Không áp: plan sinh từ Exchange Customer PO không tạo MOR mới — plan đó mang số MOR của plan nguồn. Kiểm thử: - Size W5 360 đôi, Quantity 12 đôi / thùng, "F2 Carton box" Qty 1 → 30 thùng - Cột "MOR" và trang chi tiết plan không có nút "Create MOR" Nguồn: Q-20261012-06 · Q-20261007-03 · Q-20261001-08 · BRD §6.2 · prototype v0.90 · Q-20261014-02Hệ thống xét plan đã Release còn sửa được không. Chưa: plan RELEASED chưa có Record Output ở Packing Result Spray → có nút "Revision". Có: plan đã có Record Output → không có nút "Revision"; gọi lệnh vẫn bị chặn bằng "Packing has started or this plan is not Released. Revision is unavailable." Nguồn: Q-20261012-06 · Q-20261007-03 · prototype v0.90Planner mở lại plan đã Release để sửa số khi chưa đóng gói. Khi nào: plan RELEASED, chưa có Record Output. Thao tác: trang chi tiết plan › nút "Revision". Kết quả: plan → NEW, lưu lịch sử bản trước; mở plan NEW thì vào thẳng Step 3 của trang sửa plan. Kiểm thử: - Plan NEW không có nút "Reject", "Delete" hay "Save Draft" Nguồn: Q-20261012-06 · Q-20261007-03 · prototype v0.90Planner sửa số rồi phát hành lại plan NEW. Thao tác: Step 3 của trang sửa plan › sửa "Allocated" → nút "Release Plan" → "Confirm & Release"; hoặc trang chi tiết › "Edit quantities" → "Release Packing Plan". Kết quả: plan → RELEASED; MOR đã tạo được giữ, không tạo MOR mới. Kiểm thử: - Revision plan có MOR-PK-2602 rồi Release lại → cột "MOR" vẫn MOR-PK-2602 Chưa chốt: số lượng MOR có cập nhật theo plan đã sửa không (OQ-90). Nguồn: Q-20261012-06 · Q-20261007-03 · prototype v0.90
Bắt đầuđiểm khởi động của luồng
Kết thúcmỗi Bắt đầu đi tới ít nhất một Kết thúc
Bước xử lýdải trên = màn hình thực hiện, ô màu = nền tảng
Điểm quyết địnhmỗi nhánh đi ra đều có nhãn điều kiện
Dữ liệu / chứng từđầu vào ở lane Input, kết quả ở lane Output
Luồng chínhthứ tự bắt buộc của các bước
Nhãn trên hộpMaster dataWebSystem (auto)

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

Packing PlanNEWRELEASEDCOMPLETEDRelease Packing PlanPlan mới: Release Plan ở Step 3 vào thẳng RELEASEDPacking Result Spray đủ ORDERRevision — chưa Record Output
◻ NEW ◻ RELEASED ◻ COMPLETED

Input

#InputLoạiĐi vào bước
I-1Spray IN List — hàng A + A- nhận ở Outsourcing Result, mỗi dòng mang LOT No. và P.O đã gán ở Outsourcing PlanningBể tồn công đoạn — flow Spray Out / OutsourcingStep 1 · Chọn Spray IN
I-2Repair Inventory — hàng đã sửa xong (Repaired) ở Repair / Rework, mỗi dòng mang LOT No. nơi phát sinh lỗiBể tồn công đoạn — flow Repair / ReworkStep 2 · Chọn Repair Inventory
I-3Remaining chưa nhập của plan ở Packing Result Spray, trả về balance P.O (Pending repair không trả về — đi Repair / Rework)Chứng từ — flow Packing Result SprayStep 3 · Phân bổ vào Detail P.O
I-4Customer P.O theo size — Model, Base Color, Upper Color, AL / INT, Destination, ETD, P.O MonthChứng từ — Sales OrderStep 3 · Phân bổ vào Detail P.O
I-5Remaining (balance) của P.O nguồn được hoàn trả khi phiếu Exchange Customer PO CONFIRMEDChứng từ — flow Exchange Customer POStep 3 · Phân bổ vào Detail P.O
I-6Packing BOM — khoá Model + Size + Destination; header Quantity = số đôi / thùng; Qty dòng tính cho 1 thùngMaster dataTạo MOR vật tư đóng gói (một / plan)

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

BướcVai tròMàn hình · nút trên UI
Tạo Packing Plan · Step 1 · Chọn Spray IN · Step 2 · Chọn Repair Inventory · Step 3 · Phân bổ vào Detail P.OPlannerPacking Planning Spray · Create Spray Plan → Add Packing Spray Plan (Select Spray IN · Select Repair Inventory · Allocate to Detail P.O)
Phát hành Packing PlanPlannerPacking Planning Spray · Step 3 · Release Plan → Confirm & Release
Tạo Revision Packing Plan · Phát hành lại Packing PlanPlannerPacking Planning Spray · trang chi tiết plan · Revision; plan NEW · Step 3 · Release Plan → Confirm & Release, hoặc Edit quantities → Release Packing Plan
Tách plan theo P.O · giữ nguồn · Tạo MOR vật tư đóng gói (một / plan)System (auto)Packing Planning Spray

Output

#OutputĐiều kiện sinh ra
O-1Plan RELEASED trạng thái Waiting → Packing Result Spray để Packing Operator nhập kết quả đóng gói; plan chưa đóng gói hết là nguồn của Exchange Customer POPlanner bấm Release Plan → Confirm & Release ở Step 3
O-2MOR vật tư đóng gói (MOR-PK-…, Requested, Issue From WH-PK-01) — một MOR / plan, tự tạo khi Release → WMS xuất kho. Plan sinh từ Exchange Customer PO không tạo MOR mới, dùng MOR của plan nguồnRelease plan chưa có MOR
O-3Revision bị khoá — plan đã có sản lượngPlanner xem plan đã có Record Output
O-4Plan về NEW, mở thẳng Step 3 để sửa sốPlanner bấm Revision trên plan RELEASED chưa có Record Output
O-5Plan RELEASED lại — MOR đã tạo được giữ, không tạo thêmPlanner phát hành lại plan NEW

Thuật ngữ

Thuật ngữNghĩa trong flow này
P.OCustomer P.O — đơn hàng của khách; mỗi Packing Plan thuộc đúng một P.O
P.O MonthTháng của P.O; bắt buộc chọn ở Plan Details; LOT từ Trimming Result chỉ phân bổ được cho P.O cùng P.O Month
ETDNgày dự kiến xuất hàng của P.O — Auto Allocate lấp P.O có ETD sớm trước
LOTLô sản xuất theo ca (mã đuôi AB ca ngày, CD ca đêm), mang theo từ Curing qua Trimming
Logo / SPRAY · OOMGLoại hàng theo Model attribute của WO; Logo và SPRAY loại trừ nhau, hàng OOMG đi theo luồng Logo
AL / INTThị trường của P.O (nguyên văn cột trên prototype) — một điều kiện khớp nguồn với P.O
Spray IN ListHàng A + A- đã sơn về, nhận ở Outsourcing Result, đã mang P.O
Repair InventoryHàng đã sửa xong (Repaired) ở Repair / Rework, chờ dùng lại
Selected Stock (by size)Tổng hàng đã chọn ở Step 1 và Step 2 theo size: Selected · Allocated to P.O · Not Allocated
Detail P.O · Remaining · AllocatedBảng P.O khớp nguồn ở Step 3: Remaining = số đặt của P.O − số các Packing Plan khác đang giữ; Allocated là số phân bổ cho P.O trong plan đang lập
Plan QtyTổng Allocated của plan theo size (Daily Packing Q'ty) — căn cứ tính Remaining ở Packing Result và vật tư của MOR
Packing BOMĐịnh mức vật tư đóng gói theo Model + Size + Destination; Quantity = số đôi / thùng; Qty dòng tính cho 1 thùng
MORMaterial Out Request — yêu cầu kho WH-PK-01 xuất vật tư đóng gói; một MOR / plan, tự tạo khi Release; plan sinh từ Exchange Customer PO mang số MOR của plan nguồn
Exchange Customer PO (EXC)Chức năng riêng đổi hàng giữa các Customer P.O — xem flow Exchange Customer PO