Outsourcing Planning (Spray Out) — build the spray plan in 3 steps, approve, create the Stock Out slip to the vendor; the plan becomes SENT when the warehouse approves the slip

Fine Chemical (FC) · Module MES · v0.8 · 13/10/2026 · Standard flow — for implementation, testing and development

Process Flow (swimlane)

MES · Outsourcing Planning (Spray Out) — Planner builds and approves the plan in 3 steps, the system creates a Stock Out slip, the plan becomes SENT when the warehouse approves itPhaseInputPlannerWarehouse StaffOutputExceptions — edit an unshipped plan · drop a plan (delete draft / cancel)NoYesNot yetYesNEWNoPassAPPROVEDStock Out APPROVEDYesNot yetYesNoNoYesMaster data: Vendor(spray supplier)Master dataWaiting SPRAY-OUT ZONE —LOT Spray A + A- (TrimmingResult · WH-TRM-01)Repair Inventory — Spray goods(Trimming · Pending repairrepaired — Repaired)Customer P.O SPRAY · ETD· P.O Month (Sales Order)Start▣ Outsourcing PlanningCreate Spray Out PlanWeb▣ Outsourcing PlanningStep 1 · Select WaitingSPRAY-OUT ZONEWeb▣ Outsourcing PlanningStep 2 · PickRepair InventoryWeb▣ Outsourcing PlanningStep 3 · Allocateto Detail P.OWebAllocation valid?Release now?▣ Outsourcing PlanningSave Spray Out Plan draftWeb▣ Outsourcing PlanningRelease SprayOut PlanWebApprove plan?▣ Outsourcing PlanningReject SprayOut PlanWeb▣ Outsourcing PlanningApprove Spray Out PlanWeb▣ Outsourcing PlanningCreate Stock Out slipWH-TRM-01 → VendorSystem (auto)▣ OutboundApprove Stock Out slipWeb▣ Outsourcing PlanningMove plan to SENT(OUT DATE = approval date)System (auto)EndPlan needs editingStock Out slipAPPROVED?▣ Outsourcing PlanningEdit Spray Out Plan(Edit / Revise plan)WebEndDrop the planPlan DRAFT?▣ Outsourcing PlanningDelete draft planWebStock Out slipnot yet APPROVED?▣ Outsourcing PlanningCancel Spray Out PlanWebEndRelease blocked — overAvailable / Remaining P.O,no VendorPlan DRAFT — reopenStep 3, release laterPlan REJECTED — sourcereleased, make a new planStock Out slip → WMS(waiting for warehouse approval)Plan SENT — LOTs at vendor(WH-TRM-01 deducted), waiting forOutsourcing ResultNo edit — goods alreadyissued to the vendorPlan edited at Step 3 — theStock Out slip followsDraft plan deleted ·source releasedCannot cancel — theStock Out slip is APPROVEDPlan CANCELLED — sourcereleased, Stock Out slip cancelledThe Planner creates a new Spray Out Plan to send trimmed SPRAY goods to the spray vendor. Action: Outsourcing Planning › "SPRAY OUT List" › "Create Plan" button → "Add Spray Out Plan" page; the "Plan Details" card has "Plan No." (Auto-generated) · "P.O (Month) *" · "Plan Date" · "Vendor *". System: Plan No. is SPO-YYYYMMDD-NN; P.O (Month) defaults to the first month that still has SPRAY P.O with Remaining; the Vendor list comes from the spray-vendor master data (COVA, MINH HUY). Blocked when: "Next" is pressed in Step 1 without a P.O (Month) — "Select P.O (Month) first." Test: - Leave P.O (Month) empty and press Next → the message above, no move to Step 2 Source: Q-20261001-10 (OQ-93) · Q-20260929-02 · prototype v0.69The Planner picks the SPRAY LOTs waiting to be sprayed — this step only selects, it does not allocate to a P.O. Action: "Step 1 · Select Waiting SPRAY-OUT ZONE" › tick the "Select" column; columns LOT No. · Trimming Plan · P.O (Month) · WO No. · Model · Base Color · AL / INT · Grade · IN Date · Curing Days · quantity by size · Available. System: "IN Date" = the date the LOT entered Curing; "Curing Days" = Plan Date − Curing Date. Step 1 has no Status column (Step 2 Repair still has one). System: the source is the A + A- recorded at Trimming Result for Spray LOTs, held in WH-TRM-01; "Available" = recorded quantity − quantity held by other live Spray Out plans (DRAFT, NEW, APPROVED, SENT, RECEIVED). Blocked when: the LOT is not SPRAY goods — "Logo output — unavailable for Spray Out"; the LOT is fully held — "Fully reserved" (the reason shows when hovering the locked tick box). Test: - A Logo LOT → its tick box is locked; hovering shows the reason above - LOT of 100 pairs, another plan holds 60 → Available 40 Source: Q-20261001-10 (OQ-93) · Q-20260929-01 · Q-20261006-06 (3) · prototype v0.80The Planner also picks repaired Spray goods from the Repair warehouse to spray in the same plan — this step only selects. Action: "Step 2 · Select Repair Inventory" › tick rows; columns Repair No. (with "from RW-…") · WO No. · Model · Base Color · AL / INT · quantity by size · Available. System: only Repair / Rework slips already "Repaired" for SPRAY goods with Source "Trimming · Pending repair" are shown; "Available" = good repaired quantity − quantity held by other Spray Out plans − quantity used by Packing Plans on the same Repair row. Result: SPRAY goods that went Pending repair at Trimming are ticked here once repaired and sent for painting with the plan; "Spray Out · Pending repair" goods do not come back here once repaired, they go to Step 2 of Packing Planning Spray. Test: - RW slip "Trimming · Pending repair" for SPRAY goods set to Repaired with 3 pairs → Step 2 shows a 3-pair row that can be ticked - RW slip "Spray Out · Pending repair" set to Repaired → no row in this Step 2 (it shows in Packing Planning Spray) Source: Q-20261013-01 · Q-20261001-11 (OQ-96) · prototype v0.91The Planner allocates the stock picked in Step 1 and Step 2 to each Customer P.O — this is the only allocation step. Action: "Step 3 · Allocate to Detail P.O" › block "Selected Stock (by size)" (Selected · "Allocated to P.O" · "Not Allocated"); each P.O has two rows "Remaining" / "Allocated" (input by size), "Action" column "Allocate" / "Remove", buttons "Auto Allocate", "Clear". System: only SPRAY P.O of the same P.O (Month) that match Model · Base Color · AL / INT and the accepted Grade are listed; "Remaining" = P.O ORDER − quantity already allocated by other live Spray Out plans. System: "Auto Allocate" uses repair stock first, then the P.O with the earliest ETD; one plan can hold several P.O; an empty Vendor takes the vendor of the first P.O. Test: - Pick 1,802 pairs, Auto Allocate → Repair rows are used first and the earliest-ETD P.O is filled first - No matching P.O → "No Customer P.O in P.O Month … matches the selected stock." Source: Q-20260929-06 · Q-20261001-10 (OQ-93) · prototype v0.69The system checks the allocation before saving or releasing the plan. Yes: Vendor and Plan Date are set, all P.O share one P.O (Month), each LOT / size total ≤ "Available", each P.O / size total ≤ "Remaining", and at least one pair is allocated. No: errors on the page — "Select the Vendor." · "LOT … / … exceeds Available (n)." · "P.O … / … exceeds the P.O Remaining (n)." · "All P.O of one plan must be in the same P.O Month." · "Allocate at least one pair to a Detail P.O." Test: - Available 136, enter 137 → blocked "exceeds Available (136)" - P.O Remaining 80, enter 80 → allowed Source: prototype v0.69Does the Planner release the plan now or save a draft to keep editing? Yes: press "Release Plan" in Step 3. Not yet: press "Save Draft". Source: prototype v0.69The Planner saves the plan as a draft to reopen and edit later. Action: Step 3 › "Save Draft" button. Result: plan → DRAFT; the allocated quantities are held at once (deducted from LOT / Repair Available and P.O Remaining) until the draft is deleted; reopening the plan goes straight to Step 3. Test: - A draft holding 40 pairs of LOT A → another plan sees LOT A Available reduced by 40 Open: whether a DRAFT plan should hold the source — prototype v0.69 holds it from the moment the draft is saved. Source: prototype v0.69The Planner releases the plan for approval. Action: Step 3 › "Release Plan" button → dialog "Release Spray Out Plan …?" (P.O (Month) · P.O in plan · Vendor · Plan Date · Send Qty, size table by "P.O · LOT / Repair") › "Release Plan". System: re-checks as in "Allocation valid?"; quantities by size are held for each Customer P.O, repair stock first. Result: plan → NEW (waiting for approval); message "… released · New (waiting for approval) · n P.O · n pairs reserved · Vendor …". Test: - Release a plan with 2 P.O → SPRAY OUT List shows two rows (one per P.O) with the same plan number Source: Q-20261001-10 (OQ-93) · prototype v0.69The Planner decides whether the NEW plan may be sent to the spray vendor. Pass: press "Approve" on the plan detail page. No: press "Reject". Open: the Planner approving differs from BRD §7 (Production Supervisor approves) — awaiting customer confirmation. Source: Q-20261005-01 (2) · Q-20260928-04 · prototype v0.69The Planner rejects the plan with a reason; the held source is released. When: plan NEW. Action: plan detail page › "Reject" button → dialog "Reject Spray Out Plan …?" › enter the reason › "Reject". Result: plan → REJECTED, a final status — it cannot be reopened; LOTs, Repair rows and P.O Remaining are released ("LOT reservation released"); the Planner makes a new plan if needed. Blocked when: the reason is empty. Test: - Reject a plan holding 40 pairs of LOT A → a new plan sees LOT A Available back up by 40 - Reject without a reason → cannot be saved Open: prototype v0.69 has no reason field in the Reject dialog yet. Source: Q-20260923-19 (C) · Q-20261005-01 (2) · prototype v0.69The Planner approves the plan so the goods can be shipped to the spray vendor. When: plan NEW. Action: plan detail page › "Approve" button → dialog "Approve Spray Out Plan …?" › "Approve". System: re-checks the allocation as at Release (Vendor, Available, P.O Remaining). Result: plan → APPROVED; the system then creates the Stock Out slip (next step). Test: - Approve a NEW plan → plan APPROVED with one Stock Out slip carrying the plan number Source: Q-20261005-01 (2) · Q-20261005-04 · prototype v0.69The system creates one Stock Out slip to issue the plan goods from WH-TRM-01 to the Vendor. When: the plan becomes APPROVED. System: one slip per plan, issuing warehouse WH-TRM-01, receiver = plan Vendor; one slip line per plan line (LOT or Repair row × Customer P.O) by size; LOT / Repair goods only, no other material. Result: the Stock Out slip waits for warehouse approval on the WMS Outbound screen; WH-TRM-01 stock does not change until the slip is APPROVED. Test: - Approve a plan of 4 lines, 2,050 pairs → Stock Out slip with 4 lines, 2,050 pairs, Vendor COVA Open: the slip status at creation (SAVED or SUBMITTED) and its number; prototype v0.69 still creates an MOR-SO instead of a Stock Out. Source: Q-20261005-04 · Q-20260930-05 (Curing Stock Out precedent)The Warehouse Staff approves the Stock Out slip when the goods actually leave the factory for the spray vendor. When: the Stock Out slip of an APPROVED plan is not yet APPROVED. Action: WMS › "Outbound" screen (Stock Out) › open the slip carrying the Spray Out Plan number › Approve. System: deducts the slip LOTs / Repair rows from WH-TRM-01 by size under the WMS Slip rules. Result: Stock Out slip → APPROVED; the plan moves to SENT in the next step. Test: - LOT of 1,826 pairs, slip issues 640 of it → after the slip is APPROVED the LOT stock in WH-TRM-01 is 1,186 Open: who submits the slip before approval, and whether the warehouse may change quantities on the generated slip. Source: Q-20261005-05 (2)The system moves the plan to SENT when its Stock Out slip is approved. When: the plan Stock Out slip becomes APPROVED. System: plan OUT DATE = the slip approval date; "At vendor" = Send Qty. Result: plan → SENT; the plan appears in "Waiting to Return" of Outsourcing Result. Outsourcing Planning no longer has the "Send to vendor" block or the "Confirm Spray Out" button. Test: - Slip APPROVED on 2026-08-11 → plan SENT, OUT DATE 2026-08-11 Open: prototype v0.69 still shows the "Send to vendor" block with "OUT DATE" and the "Confirm Spray Out" button. Source: Q-20261005-05 (2)Can the plan still be edited? Not yet: plan DRAFT, NEW, or APPROVED with the Stock Out slip not yet APPROVED → editing allowed. Yes: the Stock Out slip is APPROVED (goods issued, plan SENT / RECEIVED) → no edit; REJECTED / CANCELLED cannot be reopened either. Source: Q-20261005-05 (1)The Planner reopens a plan whose goods have not been issued to change the allocation. When: plan DRAFT / NEW ("Edit plan" button) or APPROVED with the Stock Out slip not yet APPROVED ("Revise plan" button). Action: detail page › "Edit plan" / "Revise plan" → the "Edit Spray Out Plan" page opens at Step 3 › "Save Draft", "Release Plan" or "Save revision". Result: DRAFT / NEW save per the button; APPROVED with "Save revision" → the plan stays APPROVED and the system updates the Stock Out slip lines to the new quantities. Blocked when: the plan was changed by someone else or the slip is APPROVED — "The plan changed or has already shipped. Reopen the current plan before editing." Test: - Revise an APPROVED plan down by 40 pairs while the slip is not APPROVED → the Stock Out slip drops by 40 pairs Open: revising an APPROVED plan skips re-approval — differs from the rule that a Revision goes back to DRAFT and is approved again. Source: Q-20261005-05 (1) · prototype v0.69Is the plan to drop still a draft? Yes: plan DRAFT → can be deleted. No: check whether it can be cancelled. Source: prototype v0.69The Planner deletes a draft plan that is no longer needed. Action: DRAFT plan detail page › "Delete Draft" button. Result: the plan is deleted; the held source and P.O Remaining are released; message "… deleted · reservation released". Test: - A NEW plan → no "Delete Draft" button Source: prototype v0.69Can the plan still be cancelled? Yes: plan NEW, or APPROVED with the Stock Out slip not yet APPROVED → cancellation allowed. No: the Stock Out slip is APPROVED (goods issued) → no cancellation; message "Status cannot change after shipment or receipt." Source: Q-20261005-05 (1)The Planner cancels a plan whose goods have not been issued. Action: plan detail page › "Cancel Plan" button → dialog "Cancel Spray Out Plan …?" › "Cancel Plan". Result: plan → CANCELLED; the source and P.O Remaining are released ("LOT reservation released"); for an APPROVED plan whose Stock Out slip is not APPROVED, the system cancels that slip. Test: - Cancel an APPROVED plan holding 100 pairs with the slip not APPROVED → the LOT has 100 pairs Available again, the Stock Out slip is CANCELLED, WH-TRM-01 stock unchanged Source: Q-20261005-05 (1) · prototype v0.69
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

Spray Out PlanDRAFTNEWAPPROVEDSENTRECEIVEDRelease PlanApprove · sinh Stock OutStock Out APPROVED (WMS)Record Result — Remaining used upDeletedDelete DraftREJECTEDRejectCANCELLEDCancel PlanEdit plan · Save DraftCancel Plan
◻ DRAFT ◻ NEW / SENT ◻ APPROVED / RECEIVED ◻ REJECTED / CANCELLED

Input

#InputTypeUsed in step
I-1Vendor master data (spray vendors, e.g. COVA · MINH HUY)Master dataCreate Spray Out Plan
I-2Waiting SPRAY-OUT ZONE — Spray LOTs with A + A- recorded at Trimming Result, held in warehouse WH-TRM-01Process inventory — Trimming flowStep 1 · Select Waiting SPRAY-OUT ZONE LOTs
I-3Repair Inventory — Spray goods repaired (Repaired) at Repair / Rework, including Pending repair received from the vendorStock pool — Repair / Rework flowStep 2 · Pick Repair Inventory
I-4Customer P.O SPRAY · ETD · P.O Month (from the Sales Order)Document — Sales OrderStep 3 · Allocate to Detail P.O

Step ↔ screen

StepRoleScreen · UI button
Create Spray Out PlanPlannerOutsourcing Planning · SPRAY OUT List · Create Plan → Add Spray Out Plan (card Plan Details)
Step 1 · Select Waiting SPRAY-OUT ZONE LOTs · Step 2 · Select Repair Inventory · Step 3 · Allocate to Detail P.OPlannerOutsourcing Planning · Step 1 · Select Waiting SPRAY-OUT ZONE · Step 2 · Select Repair Inventory · Step 3 · Allocate to Detail P.O (Allocate, Remove, Auto Allocate, Clear)
Save draft · Release Spray Out PlanPlannerOutsourcing Planning · Save Draft, Release Plan
Approve · Reject Spray Out PlanPlannerOutsourcing Planning · Spray Out Plan detail (Approve, Reject)
Create Stock Out slip WH-TRM-01 → VendorSystem (auto)Outsourcing Planning · khi Approve
Approve Stock Out slip → plan SENTWarehouse Staff · System (auto)WMS · Outbound (Stock Out); plan SENT, OUT DATE = approval date
Edit · Delete draft · Cancel Spray Out PlanPlannerOutsourcing Planning · Edit plan, Revise plan, Delete Draft, Cancel Plan

Output

#OutputProduced when
O-1Release blocked — over Available / P.O Remaining, no VendorThe Step 3 allocation fails the checks
O-2Plan DRAFT — reopen at Step 3, release laterThe Planner clicks Save Draft
O-3Plan REJECTED + reason — source released, make a new planThe Planner clicks Reject plan NEW
O-5Stock Out slip WH-TRM-01 → Vendor sent to WMS (waiting for warehouse approval)The plan becomes APPROVED
O-6Plan SENT — LOTs at vendor (WH-TRM-01 deducted), waiting for Outsourcing ResultThe plan Stock Out slip APPROVED in WMS
O-7No edit — goods already at the vendorPlan SENT / RECEIVED
O-8Plan edited at Step 3 — the Stock Out slip follows the new quantitiesThe Planner edits plan DRAFT / NEW / APPROVED
O-9Draft plan deleted · source releasedThe Planner clicks Delete Draft
O-10Cannot cancel — the Stock Out slip is APPROVEDPlan SENT / RECEIVED
O-11Plan CANCELLED — source released, the unapproved Stock Out slip is cancelledThe Planner clicks Cancel Plan plan NEW / APPROVED

Glossary

GlossaryMeaning in this flow
P.OCustomer PO — the customer order; one Spray Out Plan can hold several P.O of the same P.O (Month)
P.O (Month)Month of the P.O; all P.O in one plan must share the month
Waiting SPRAY-OUT ZONEZone waiting for spraying: Spray LOTs with A + A- recorded at Trimming Result, held in WH-TRM-01
Repair InventorySpray goods repaired (Repaired) at Repair / Rework
AvailableQuantity still selectable on a LOT / Repair row = source quantity − quantity held by other live plans
RemainingQuantity of the P.O still to be sprayed = ORDER − quantity allocated by other live Spray Out plans
VendorSpray supplier that receives the goods (e.g. COVA, MINH HUY)
OUT DATEDate the goods leave for the vendor = date the plan Stock Out slip is approved
Stock OutWMS issue slip (Outbound screen); created by the system on Approve of a Spray Out Plan, issuing the plan LOTs / Repair rows from WH-TRM-01 to the Vendor
SENTGoods have left the factory and are at the spray vendor; received back in Outsourcing Result
A / A-Good grade (A) and good with minor defects (A-)