Hold ที่เกิดจากการแจ้งสินค้าสูญหาย (Lost) ระหว่างหยิบสแกน
เมื่อเจ้าหน้าที่หยิบสินค้าแล้วพบว่าสูญหายหรือไม่พบที่ Location ระบบรองรับการแจ้ง Lost ผ่าน Handheld ใน 4 Module ที่มีรูปแบบการทำงานเหมือนกัน
เมื่อแจ้ง Lost ทั้ง Location (Full Location Lost) และกด Move and Reallocate:
ระบบย้ายสินค้าทั้งหมดใน Location ที่แจ้ง Lost ไปยัง Location Lost ที่ตั้งค่าไว้
Inventory ที่ย้ายไปถูก Hold ทันที
ระบบสร้างใบงาน MOVE + HOLD คู่กันให้อัตโนมัติ
ระบบ Re-Allocate Inventory ตัวอื่นมาแทนให้อัตโนมัติ (ถ้ามีของเพียงพอ)
ถ้า Re-Allocate ไม่ได้ (ของหมด) →
กด Close → แยก Batch รายการที่หาสต็อกไม่ได้ออก, สถานะ = PAR ALLOCATED, ไม่ให้สแกนต่อ
กด Next Picking → แยก Batch รายการที่หาสต็อกไม่ได้ออก, สถานะ = PAR ALLOCATED, สแกนส่วนที่มีต่อได้
ถ้ามี SKU เพียงตัวเดียวในใบงาน → สถานะ = OUT OF STOCK ทันที
1.1 Scan Pick Single
เส้นทางเมนู: Tab Operate → Scan Pick
แจ้ง Lost บางส่วน (Partial Lost)
-
เข้าใบงาน Scan Pick ที่เตรียมไว้ (DSO Status = ALLOCATED)
-
สแกนตาม Profile ที่กำหนด ตามจำนวนที่มี (เช่น 1 Qty)
-
กดสไลด์การ์ดจากขวามาซ้าย
-
เลือก Lost/Damage
ผลลัพธ์:
ระบบแสดง Pop-up "Item not found or damage" — มี Document Type สำหรับ Hold พร้อมให้เลือก Location ที่ตั้งค่าไว้สำหรับ Lost
แจ้ง Lost ทั้ง Location (Full Location Lost)
-
เข้าใบงาน Scan Pick ที่เตรียมไว้
-
กดสไลด์การ์ดจากขวามาซ้าย → เลือก Lost/Damage
-
เลือก Location Lost ที่ตั้งค่าไว้
-
กด Move and Reallocate
ผลลัพธ์:
ตาม Business Logic ร่วมด้านบน
📌 กรณีอยู่ใน Load Planning: หากใบงาน Scan Pick อยู่ภายใต้ Load Planning ที่ Status = WIP — แจ้ง Lost แล้ว Load Planning ยังคงสถานะ WIP ไม่เปลี่ยนแปลง
1.2 Scan Pick Wave
เส้นทางเมนู: Tab Operate → Scan Pick → เลือกงาน Wave
แจ้ง Lost บางส่วน (Partial Lost)
-
เข้าเมนู Scan Pick → เลือกงาน Wave ที่ต้องการหยิบ
-
สแกนตาม Scan Profile ตามจำนวนที่มี (เช่น 1 Qty)
-
กดสไลด์การ์ดจากขวามาซ้าย → เลือก Lost/Damage
ผลลัพธ์:
ระบบแสดง Pop-up "Item not found or damage" — มี Document Type สำหรับ Hold
แจ้ง Lost ทั้งใบงาน DSO (เมื่อ DSO มีสินค้าเพียง 1 Location)
-
เข้าเมนู Scan Pick → เลือกงาน Wave
-
กดสไลด์การ์ดจากขวามาซ้าย → เลือก Lost/Damage
-
เลือก Location Lost ที่ตั้งค่าไว้
-
กด Move and Reallocate
ผลลัพธ์:
-
ตาม Business Logic ร่วม (ย้าย + Hold + สร้าง MOVE/HOLD)
-
DSO ที่เกี่ยวข้องถูกนำออกจาก Wave อัตโนมัติ
-
DSO ที่เกี่ยวข้องถูกนำออกจาก Load Planning อัตโนมัติ (ถ้าอยู่ใน Load Planning)
-
Load Planning ยังคงสถานะ WIP ถ้ายังมี DSO ใบอื่นอยู่ใน Truck เดียวกัน
📌 กรณีไม่อยู่ใน Load Planning: Business Logic การ Hold/Re-Allocate เหมือนกันทุกอย่าง เพียงไม่มีผลกระทบกับ Load Planning
Hold ที่เกิดขึ้นในกระบวนการรับคืนสินค้า
2.1 Return (GRR) — Immediate Hold when Receive
เมนู: Return
ใช้เมื่อต้องการพักสินค้าทันทีขณะยืนยันรับคืน (Confirm Return) โดยไม่ต้องสร้างเอกสาร Hold แยกทีหลัง
2.1.1 Hold สินค้าทั้งแถว (1 SKU)
-
ไปที่เมนู Return → เข้าไปในใบงาน RETURN ที่เตรียมไว้ (Status = RETURNING, Return Type = Claim)
-
กด Next
-
ใส่ Return Reason ให้ครบ
-
ติ๊ก Checkbox "Immediate hold when receive"
-
กรอก Hold Reason
-
กด Confirm Return
ผลลัพธ์:
-
ขึ้น Pop-up Create Shipment Order แสดงเลข DSO ที่สร้าง — กด OK เพื่อเด้งไปยังใบงาน DSO
-
ใบงาน GRR เปลี่ยน Status = RETURN
-
ข้อมูลถูกเพิ่มใน Inventory Enquiry เป็น Row สีเทา พร้อม Good Status = Good และ Hold
2.1.2 รับคืนแบบผสม (Damage & Hold คนละแถว)
ใช้เมื่อมี SKU มากกว่า 1 ตัวในใบงาน และต้องการ Hold บางแถว / Damage บางแถว
-
ไปที่เมนู Return → เข้าใบงาน → กด Next
-
ใส่ Return Reason ให้ครบ
-
ติ๊ก Checkbox "Immediate hold when receive" เฉพาะแถวที่ต้องการ Hold
-
กรอก Hold Reason ตามแถวที่ติ๊ก
-
เปลี่ยน Received Condition ของแถวอื่นเป็น Damage ตามต้องการ
-
กด Confirm Return
ผลลัพธ์:
-
ขึ้น Pop-up Create Shipment Order เหมือนเดิม
-
ใบงาน GRR เปลี่ยน Status = RETURN
-
Inventory Enquiry แสดง Good Status ตรงตามแถวที่ตั้งค่าไว้ — ช่อง Hold และ Damage ขึ้นแยกกันตามแถว
⚠️ ข้อจำกัดสำคัญ: ไม่สามารถ Hold และ Damage ในบรรทัดเดียวกันได้ — หากติ๊ก Immediate Hold พร้อมเปลี่ยน Received Condition เป็น Damage ในแถวเดียวกัน ระบบจะไม่อนุญาตให้ Save
2.2 Scan Return — SKU Suspend / Unhold
เส้นทางเมนู: Tab Operate → Scan Return
2.2.1 สแกนรับสินค้าและระบุ Hold
-
เข้าใช้งาน Handheld → Tab Operate → เมนู Scan Return
-
กรอก Return Key ของใบงานที่เตรียมไว้ → เลือก Return Reason → กด Confirm
-
สแกนตาม Profile ที่กำหนดให้ครบทุกตัว
-
สไลด์ SKU ที่สแกนไป จากซ้ายมาขวา
-
กด SKU Suspend
-
เลือก Reason
-
กด OK
-
กด Close Job → Confirm Close Job
-
กด Confirm Return → เซ็นลายเซ็น → Confirm Return
ผลลัพธ์:
-
รับสำเร็จ ขึ้น "Record Success"
-
ใบงานเปลี่ยน Status เป็น RETURN (ตรงกันทั้ง HH และเว็บ)
-
ข้อมูลเพิ่มใน Inventory Enquiry เป็น Row สีเทา
-
จัดเก็บเป็น Goods Status = Hold พร้อม Hold Reason ตามที่ระบุ
📌 การแยกรับสินค้าดีและสินค้า Hold ในใบงานเดียวกัน: ทำได้ในกรณีที่ใบงานมี SKU มากกว่า 1 ตัว — สไลด์เฉพาะ SKU ที่ต้องการ Hold เท่านั้น SKU อื่นจะยังคงเป็น Goods Status = Good ตามปกติ
2.2.2 แก้ไขสถานะจาก Hold เป็น Unhold บน Handheld
ใช้เมื่อสไลด์ Hold ไปแล้ว แต่ต้องการยกเลิกก่อน Close Job
-
หลังกด SKU Suspend และเลือก Reason ไปแล้ว
-
สไลด์ SKU เดิมอีกครั้ง จากซ้ายมาขวา
-
กด SKU Suspend อีกครั้ง
-
กด OK (โดยไม่เลือก Reason ใหม่)
ผลลัพธ์:
สินค้าแถวนั้นจัดเก็บเป็น Goods Status = Good ตามปกติ (ไม่ใช่ Hold)
2.2.3 รับเข้าด้วย Profile Scan ที่มี Location (ปิดงานทันที)
ใช้เมื่อต้องการรับคืนพร้อมระบุ Location ในขั้นตอนเดียว (ใบงาน GRR Status = RETURN, Profile = Location > SKU > QTY)
-
เข้าเมนู Scan Return → กรอก Return Key → เลือก Return Reason → กด Confirm
-
สแกนตาม Profile ที่กำหนดให้ครบทุกตัว
-
กด Close Job → Confirm Close Job
-
กด Confirm Return → เซ็นลายเซ็น → Confirm Return
ผลลัพธ์:
-
ใบงาน GRR เปลี่ยน Status = CLOSED ทันที
-
ข้อมูลถูกเพิ่มใน Inventory Enquiry พร้อม Hold Reason ตรงกับที่กรอกไป (ถ้ามีการ Hold ระหว่างสแกน)
Hold ที่เกี่ยวข้องกับ Module อื่น
3.1 จองสินค้าที่ Hold/Damage - Allocation by Single Order
ปกติสินค้าที่ติด Hold จะ Allocate ไม่ได้ แต่สำหรับงานที่ใช้ Pick Strategy ที่อนุญาตให้หยิบสินค้า Hold หรือ Damage ได้ ระบบจะอนุญาตให้ Allocate ได้ตามปกติ
จองสินค้าที่มี Status Damage
-
ไปที่เมนู Inventory Operate / Transfer
-
กด + หน้าใบงาน Transfer
-
เข้าไปในใบงานที่เตรียมไว้ (Status = OPENED, Pick Strategy รองรับการหยิบ Damage)
-
ไปที่ Tab Allocation
-
กด Confirm
ผลลัพธ์: Allocate สำเร็จ — Status ใบงาน = ALLOCATED, ข้อมูล Update กลับไปที่ Inventory ถูกต้อง
จองสินค้าที่มี Status Hold
ขั้นตอนเดียวกัน แต่ Pick Strategy ต้องรองรับการหยิบ Hold — ผลลัพธ์เหมือนกัน (Allocate สำเร็จ, Status = ALLOCATED)
จองสินค้าที่มีทั้ง Damage และ Hold (คนละ SKU)
ขั้นตอนเดียวกัน โดย Pick Strategy ต้องรองรับการหยิบทั้ง Hold และ Damage แยกคนละตัวกัน — ผลลัพธ์ Allocate สำเร็จเหมือนกัน
จองสินค้าที่มีทั้ง Damage, Hold และ Good ปนกัน
ขั้นตอนเดียวกัน โดย Pick Strategy ต้องรองรับการหยิบทั้ง 3 สถานะแยกคนละตัวกัน — ผลลัพธ์ Allocate สำเร็จครบทุกสถานะ
📌 สรุป: เงื่อนไขเดียวที่ทำให้ Allocate สินค้า Hold/Damage ได้คือ Pick Strategy ของใบงานนั้นต้องตั้งค่าให้หยิบสถานะนั้นได้ มิฉะนั้นจะ Allocate ไม่ได้ตาม Default
3.2 นับสต็อกที่ติด Hold - Cycle Count / Scan Cycle Count
ใบงานนับสต็อก (Cycle Count) รองรับการนับและปรับยอด Hold (After) เป็นส่วนหนึ่งของผลการนับ ทั้งผ่านหน้าเว็บและ Handheld
นับสต็อกที่ติด Hold ผ่านหน้าเว็บ (Cycle Count)
-
ไปที่เมนู Cycle Count → เข้าไปในใบงานที่เตรียมไว้ (Status = WIP)
-
กด 3 จุด ขวาบน → Hover ที่ "Go to round" → เลือก Round ที่ต้องการ
-
ดับเบิลคลิก และแก้ไข Available (After), Damaged (After), Hold (After) ให้ครบทุกตัว
-
กด 3 จุด ขวาบน → กด "Counted Successfully"
ผลลัพธ์:
-
สถานะเอกสารเปลี่ยนเป็น COMPLETED
-
สามารถดำเนินการนับสต็อกและยืนยันรอบจนจบกระบวนการได้สำเร็จ
-
สามารถทำต่อรอบที่ 2 และ 3 ได้ด้วยขั้นตอนเดียวกัน (เลือก Round 2 / Round 3 ตามลำดับ)
นับสต็อกที่ติด Hold ผ่าน Handheld (Scan Cycle Count)
-
เข้าใช้งาน Handheld → Tab Operate → เมนู Scan Cycle Count
-
สแกนบาร์โค้ดใบงานจากรายงานเพื่อเข้าสู่ใบงาน (ใบงานมี Inventory ที่เป็น Hold)
-
สแกนยืนยัน Location ที่ต้องการนับ
-
สแกนยืนยัน SKU ที่พบในตำแหน่งนั้น
-
ระบุ Quantity ที่นับได้จริง
-
กด Confirm Round → เซ็นลายเซ็น → Confirm Cycle Count
-
เซ็นลายเซ็น Audit → Confirm Cycle Count
-
เซ็นลายเซ็น Verify Customer → Confirm Cycle Count
ผลลัพธ์:
-
ระบบบันทึกจำนวนสินค้าที่นับได้จริงเข้าสู่รอบการนับปัจจุบัน
-
Status ของ SKU ถูกต้อง (รวม Hold)
-
หน้าจอ Handheld รีเซ็ตพร้อมสแกน Location/SKU ถัดไป
-
สถานะเอกสารบนเว็บเปลี่ยนเป็น COMPLETED
สรุปผลลัพธ์ตาม Doc Type
| Doc Type | ผลกับ Inventory Enquiry |
|---|---|
| Hold | สถานะสินค้า → Hold, แสดง Hold ID, Hold Qty, Hold Reason |
| Unhold | สถานะสินค้า → Available, Hold ID/Qty/Reason หายไป |
| Change | Hold Reason เปลี่ยนเป็นค่าใหม่ — Hold Qty ไม่เปลี่ยนแปลง |
วงจรสถานะเอกสาร Hold
| สถานะ | เกิดขึ้นเมื่อ |
|---|---|
| OPENED | สร้างเสร็จ (Save หรือ Import) — รอ Process |
| COMPLETED | กด Process สำเร็จ |
| CANCELED | ยกเลิกผ่านเว็บสำเร็จ (เฉพาะ OPENED, ผ่านเว็บเท่านั้น) |
เปรียบเทียบ 4 ช่องทางการเกิด Hold
| ช่องทาง | ใครเป็นคนสั่ง | สร้างเอกสารแยกไหม |
|---|---|---|
| Manual (Inventory Operate > Hold) | User | ✅ สร้างเอกสาร Hold โดยตรง |
| Import | User (ผ่านไฟล์) | ✅ สร้างเอกสาร Hold โดยตรง |
| Auto Hold (กฎอัตโนมัติ) | System (ตามกฎที่ตั้งไว้) | ✅ สร้างเอกสาร Hold ให้อัตโนมัติ |
| Lost ระหว่างหยิบ-สแกน | System (จากการแจ้ง Lost) | ✅ สร้างใบงาน MOVE + HOLD คู่กันอัตโนมัติ |
| Immediate Hold ตอนรับคืน | User (ติ๊ก Checkbox ตอน Confirm Return) | ❌ ฝังอยู่ในกระบวนการ Return ไม่มีเอกสาร Hold แยก |