Packing Planning Spray — the Planner builds a Packing Plan in 3 steps (pick Spray IN → pick Repair Inventory → allocate to Customer P.Os), one plan per P.O; Release Plan → RELEASED and the packing material MOR is created automatically; RELEASED plans go to Packing Result Spray

Fine Chemical (FC) · MES module · v0.6 · 14/10/2026 · Standard flow — for implementation, testing and development

Process Flow (swimlane)

MES · Packing Planning Spray — the Planner builds plans in 3 steps, one plan per P.O, Release creates the packing material MORPhaseInputPlannerOutputException — Revision of a released planNo — fix quantitiesYesYesNot yetSpray IN List (A + A-) —received at Outsourcing ResultRepair Inventory — Repaired goods(Spray Out · Pending repair,Packing Spray · Pending repair)Remaining not yet recordedreturned — Packing Result SprayCustomer P.O · ETD · P.OMonth (Sales Order)Source P.O Remaining returned— Exchange Customer POMaster data: Packing BOM(Model · Size · Destination)Master dataStart▣ Packing Planning SprayCreate Packing PlanWeb▣ Packing Planning SprayStep 1 · PickSpray INWeb▣ Packing Planning SprayStep 2 · PickRepair InventoryWeb▣ Packing Planning SprayStep 3 · Allocateto Detail P.OWebAllocation valid?▣ Packing Planning SprayRelease Packing PlanWeb▣ Packing Planning SpraySplit plan per P.O· hold sourcesSystem (auto)▣ Packing Planning SprayCreate a material MORMOR (one / plan)System (auto)EndRevision neededPlan hasRecord Output?▣ Packing Planning SprayCreate RevisionPacking PlanWeb▣ Packing Planning SprayRelease againPacking PlanWebEndPlan RELEASED (Waiting) →Packing Result Spray ·source of Exchange Customer POPacking material MOR (autocreated on Release) → WMSRevision locked — planalready has outputPlan NEW · opens Step 3to edit quantitiesPlan RELEASED again · keepsthe existing MORThe Planner opens the Packing Plan page for sprayed SPRAY goods waiting for packing. When: any time goods are waiting for packing; WO release does not pre-create a Packing Plan. Action: Packing Planning Spray › "Create Spray Plan" button → "Add Packing Spray Plan" page. System: only goods whose WO Model attribute is Spray; Logo / OOMG goods are planned in Packing Planning Logo. System: the "Plan Details" card has "Plan No." (Auto-generated), "P.O (Month) *" defaulting to the first month, "Plan Date"; a 3-step bar and the footer "Reset" · "Back" · "Next". Result: Step 1 opens; nothing is saved yet. Blocked when: "P.O (Month) *" is empty and "Next" is pressed in Step 1 → "Select P.O (Month) first." Test: - Leave "P.O (Month) *" empty and press "Next" → "Select P.O (Month) first." shows, still on Step 1 Source: Q-20261001-10 (OQ-93) · Q-20260929-13 · CHANGELOG v0.66 · prototype v0.70The Planner ticks sprayed SPRAY goods as the plan source. Action: Step 1 · "Select Spray IN" › tick each row. System: the table holds A + A- received at Outsourcing Result, each row carrying LOT No., Grade and the P.O assigned at Outsourcing Planning; Step 1 only selects, it does not allocate. Result: ticked rows add to "Selected Stock (by size)" in Step 3; Step 3 shows only the P.O written on the Spray IN row. Test: - Tick a Spray IN row for P.O 260811-07 → Step 3 shows only P.O 260811-07 Source: Q-20261001-10 (OQ-93) · Q-20261002-02 (3) · CHANGELOG v0.66 · prototype v0.70The Planner optionally adds repaired goods from Repair Inventory to the plan; this step is not mandatory. Action: Step 2 · "Select Repair Inventory" › tick repaired rows; "Back" to Step 1, "Next" to Step 3. System: only Repaired rows can be ticked, taken from Repair / Rework slips with Source "Spray Out · Pending repair" or "Packing Spray · Pending repair"; Step 2 only selects, it does not allocate. Result: ticked rows add to "Selected Stock (by size)"; allocation uses Repair goods first. Test: - Tick nothing and press "Next" → Step 3 opens with sources from Step 1 only - RW slip "Spray Out · Pending repair" set to Repaired with 10 pairs → Step 2 shows a 10-pair row that can be ticked System: "Spray Out · Pending repair" goods go straight into this Step 2 once repaired, not back to Step 2 of Outsourcing Planning; grade C received at Outsourcing Result is scrap, written to Defect Records, and does not enter Step 2. Source: Q-20261013-01 · Q-20261007-01 · Q-20260929-06 · prototype v0.91The Planner splits the selected goods over Customer P.Os by size; this is the only allocation step. Action: Step 3 · "Allocate to Detail P.O" › "Allocate" / "Remove" buttons in the "Action" column per P.O · "Auto Allocate" button · type into the "Allocated" row. System: P.Os match Model, Base Color, Upper Color, AL / INT and the same "P.O (Month)", only the P.O written on the Spray IN row; "Remaining" = P.O order quantity − quantity held by other Packing Plans, plus the Remaining not yet recorded that Packing Result Spray returns (Pending repair is not returned; it goes to Repair / Rework) and the balance returned by Exchange Customer PO. System: "Auto Allocate" fills the earliest-ETD P.O first, Repair goods first; "Selected Stock (by size)" updates "Allocated to P.O" and "Not Allocated". Result: a "Packing Plan summary" per P.O appears below; the footer has the "Release Plan" button. Test: - A P.O that just got 30 pairs of W5 back from Exchange Customer PO → its W5 "Remaining" rises by 30 Source: Q-20261013-01 · Q-20261001-06 · Q-20261002-03 · Q-20260929-06, -08 · CHANGELOG v0.58 · prototype v0.91The system checks the allocation before saving or releasing. Yes: for every P.O, "Allocated" by size ≤ selected goods and ≤ the P.O "Remaining", total > 0 and a "Plan Date" is set → "Release Plan" allowed. No: an error shows and the quantities must be fixed — "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." Test: - Type a W5 "Allocated" one pair above the W5 "Remaining" → the P.O balance error shows and the plan cannot be released Source: prototype v0.70The Planner releases the plans just allocated; there is no draft save and no approver. When: Step 3 of the plan page, once the allocation is valid. Action: Step 3 › "Release Plan" button → popup "Release n Packing Plan(s)?" listing "PKP-… → P.O …" and a "P.O · Source" table by size → "Confirm & Release". Result: the plan → RELEASED and shows in "Packing List" with status "Released". Test: - Press "Cancel" in the popup → no plan is created - Step 3 has no "Save Draft" button Source: Q-20261012-06 · Q-20261007-03 · prototype v0.90The system creates one plan per allocated P.O and reserves the source for it. System: one Packing Plan per P.O, numbered "PKP-<YYYYMMDD>-NN" by plan date; plan lines carry LOT / Repair No., WO and Grade by size. Result: the RELEASED plan shows in Packing Result Spray with status "Waiting"; the allocated source is reserved, and fully used rows no longer appear on other plan pages. Test: - Release a plan that uses up a source row → a new "Create Spray Plan" page no longer lists that row in Step 1 Source: Q-20261012-06 · Q-20261007-03 · prototype v0.90The system creates one packing material MOR for the plan just released; the Planner does not create MORs by hand. System: materials come from the Packing BOM by Model + Size + Destination; need per material by size = ⌈plan pairs × line Qty ÷ Quantity (pairs / carton)⌉; Issue From "WH-PK-01 / Packing Store". Result: MOR "MOR-PK-…" with status "Requested", By "System (on Release)" → WMS issues the material; the "MOR" column of "Packing List" shows the MOR number, a plan without MOR shows "—". Not covered: a plan created by Exchange Customer PO gets no new MOR — it carries the MOR number of its source plan. Test: - Size W5 360 pairs, Quantity 12 pairs / carton, "F2 Carton box" Qty 1 → 30 cartons - Neither the "MOR" column nor the plan detail page has a "Create MOR" button Source: Q-20261012-06 · Q-20261007-03 · Q-20261001-08 · BRD §6.2 · prototype v0.90 · Q-20261014-02The system checks whether a released plan can still be changed. Not yet: a RELEASED plan without Record Output in Packing Result Spray → the "Revision" button shows. Yes: the plan has Record Output → no "Revision" button; the command is still blocked with "Packing has started or this plan is not Released. Revision is unavailable." Source: Q-20261012-06 · Q-20261007-03 · prototype v0.90The Planner reopens a released plan to change quantities before packing starts. When: the plan is RELEASED and has no Record Output. Action: plan detail page › "Revision" button. Result: the plan → NEW and the previous version is kept in history; opening a NEW plan goes straight to Step 3 of the edit page. Test: - A NEW plan has no "Reject", "Delete" or "Save Draft" button Source: Q-20261012-06 · Q-20261007-03 · prototype v0.90The Planner edits the quantities and releases the NEW plan again. Action: Step 3 of the edit page › change "Allocated" → "Release Plan" → "Confirm & Release"; or detail page › "Edit quantities" → "Release Packing Plan". Result: the plan → RELEASED; the existing MOR is kept, no new MOR is created. Test: - Revise a plan that has MOR-PK-2602 and release it again → the "MOR" column still shows MOR-PK-2602 Open: whether the MOR quantities follow the edited plan (OQ-90). Source: Q-20261012-06 · Q-20261007-03 · prototype v0.90
Startwhere the flow begins
Endevery Start reaches at least one End
Process steptop strip = screen used, colored tag = platform
Decisionevery outgoing branch carries its condition
Data / documentinputs in the Input lane, results in the Output lane
Main flowthe required order of steps
Tags on a boxMaster dataWebSystem (auto)

Status lifecycle

Packing PlanNEWRELEASEDCOMPLETEDRelease Packing PlanNew plan: Release Plan in Step 3 goes straight to RELEASEDPacking Result Spray meets ORDERRevision — no Record Output yet
◻ NEW ◻ RELEASED ◻ COMPLETED

Input

#InputTypeUsed in step
I-1Spray IN List — A + A- goods received at Outsourcing Result, each row carrying the LOT No. and the P.O assigned at Outsourcing PlanningProcess stock pool — Spray Out / Outsourcing flowStep 1 · Pick Spray IN
I-2Repair Inventory — goods repaired (Repaired) at Repair / Rework, each row carrying the LOT No. where the defect aroseProcess inventory — Repair / Rework flowStep 2 · Pick Repair Inventory
I-3Remaining not yet recorded on the plan in Packing Result Spray, returned to the P.O balance (Pending repair is not returned — it goes to Repair / Rework)Document — flow Packing Result SprayStep 3 · Allocate to Detail P.O
I-4Customer P.O by size — Model, Base Color, Upper Color, AL / INT, Destination, ETD, P.O MonthDocument — Sales OrderStep 3 · Allocate to Detail P.O
I-5Remaining (balance) of the source P.O returned when the Exchange Customer PO ticket is CONFIRMEDDocument — Exchange Customer PO flowStep 3 · Allocate to Detail P.O
I-6Packing BOM — key Model + Size + Destination; header Quantity = pairs / carton; line Qty is per cartonMaster dataCreate packing material MOR (one / plan)

Step ↔ screen

StepRoleScreen · UI button
Create Packing Plan · Step 1 · Pick Spray IN · Step 2 · Pick Repair Inventory · Step 3 · Allocate to Detail P.OPlannerPacking Planning Spray · Create Spray Plan → Add Packing Spray Plan (Select Spray IN · Select Repair Inventory · Allocate to Detail P.O)
Release Packing PlanPlannerPacking Planning Spray · Step 3 · Release Plan → Confirm & Release
Create Packing Plan Revision · Release Packing Plan againPlannerPacking Planning Spray · plan detail page · Revision; plan NEW · Step 3 · Release Plan → Confirm & Release, or Edit quantities → Release Packing Plan
Split the plan by P.O · hold the source · Create the packing material MOR (one per plan)System (auto)Packing Planning Spray

Output

#OutputProduced when
O-1Plan RELEASED in Waiting status → Packing Result Spray for the Packing Operator to record packing output; a plan not fully packed is the source of Exchange Customer POPlanner clicks Release Plan → Confirm & Release in Step 3
O-2Packing material MOR (MOR-PK-…, Requested, Issue From WH-PK-01) — one MOR per plan, created automatically on Release → WMS issues the material. A plan created by Exchange Customer PO gets no new MOR and uses the MOR of its source planRelease of a plan without a MOR
O-3Revision locked — the plan already has outputPlanner views a plan that already has Record Output
O-4Plan back to NEW, opens straight at Step 3 to edit quantitiesPlanner presses Revision on a plan RELEASED without Record Output
O-5Plan RELEASED again — the existing MOR is kept, no new MORPlanner releases the plan again NEW

Glossary

GlossaryMeaning in this flow
P.OCustomer P.O — the customer order; each Packing Plan belongs to exactly one P.O
P.O MonthMonth of the P.O; mandatory in Plan Details; Trimming Result LOTs can only be allocated to P.Os of the same P.O Month
ETDEstimated shipping date of the P.O — Auto Allocate fills the earliest-ETD P.O first
LOTProduction lot per shift (suffix AB day shift, CD night shift), carried from Curing through Trimming
Logo / SPRAY · OOMGGoods type from the WO Model attribute; Logo and SPRAY are mutually exclusive, OOMG goods follow the Logo flow
AL / INTMarket of the P.O (column name as on the prototype) — one condition for matching sources to a P.O
Spray IN ListA + A- goods back from spraying, received at Outsourcing Result, already carrying a P.O
Repair InventoryGoods repaired (Repaired) at Repair / Rework, waiting to be reused
Selected Stock (by size)Total goods picked in Step 1 and Step 2 by size: Selected · Allocated to P.O · Not Allocated
Detail P.O · Remaining · AllocatedStep 3 table of matching P.Os: Remaining = P.O order quantity − quantity held by other Packing Plans; Allocated is the quantity given to the P.O in the plan being built
Plan QtyTotal Allocated of the plan by size (Daily Packing Q'ty) — basis for Remaining in Packing Result and for the MOR material
Packing BOMPacking material standard by Model + Size + Destination; Quantity = pairs / carton; line Qty is per carton
MORMaterial Out Request — asks warehouse WH-PK-01 to issue packing material; one MOR per plan, created automatically on Release; a plan created by Exchange Customer PO carries the MOR number of its source plan
Exchange Customer PO (EXC)Separate function to move goods between Customer P.Os — see the Exchange Customer PO flow