# เมนู: Return

ใช้สำหรับสร้างและจัดการใบรับคืนสินค้า (GRR) เมื่อสินค้าเดินทางกลับถึงคลัง

## วงจรสถานะใบงาน GRR

| สถานะ         | ความหมาย                                               |
| ------------- | ------------------------------------------------------ |
| **RETURNING** | GRR ถูกสร้าง — รอดำเนินการรับคืน                       |
| **RETURN**    | รับคืนสินค้าสำเร็จ — สินค้าขึ้น Inventory เป็นแถวสีเทา |
| **PUTAWAY**   | ระบุ Location ครบแล้ว — รอปิดใบงาน                     |
| **CLOSED**    | ปิดใบงานสมบูรณ์ — สินค้าพร้อมใช้งาน (แถวสีดำ)          |

---

## 1.1 การสร้าง GRR อ้างอิง SO/DSO (Web)

> **เงื่อนไข:** DSO ต้องมีสถานะ **CLOSED** หรือ **PAR CLOSED**

### วิธีที่ 1 — ค้นหาจาก Release Key

1. ไปที่เมนู **Return**

2. คลิกปุ่ม **New**

3. เลือก **Document Type** (RTC / RTR / RTJ)

4. กรอก Release Key → คลิก **Search Now**

5. ติ๊ก Checkbox หน้าใบงาน DSO ที่ต้องการ

6. คลิก **Confirm** → คลิก **Confirm** บน Pop-up

### วิธีที่ 2 — ค้นหาจาก SO Number

1. ไปที่เมนู **Return** → คลิก **New**

2. เลือก **Document Type**

3. เปลี่ยน Dropdown เป็น **SO Number**

4. กรอก SO Number → คลิก **Search Now**

5. ติ๊ก Checkbox → คลิก **Confirm** → **Confirm**

### ผลลัพธ์ที่ถูกต้อง

* ได้รับเลข **Return Key**

* สถานะ = **RETURNING**

* รายละเอียดตรงกับ DSO (หน้า Basic และ Tab SKU)

* มี Tag ตาม Type และ Ref. Outbound ลิงก์ไปยัง DSO

---

## 1.2 การสร้าง GRR ผ่าน Request Return

### วิธีที่ 1 — สร้างจากในใบงาน RR

1. ไปที่เมนู **Request Return (RR)** → เปิดใบงาน (Status = OPENED)

2. คลิก **Next** เพื่อเข้า Tab SKU

3. ใส่ **Return Reason** ให้ครบ

4. คลิป **Return** → คลิก **Create** ที่ Pop-up

### วิธีที่ 2 — ค้นหา RR Key จากเมนู Return

1. ไปที่เมนู **Return** → คลิก **New**

2. เปลี่ยน **Search By** เป็น **Request Return Key**

3. กรอก Request Return Key → คลิก **Search Now**

4. ติ๊ก Checkbox → คลิก **Confirm** → **Confirm**

### ผลลัพธ์ที่ถูกต้อง

* GRR สถานะ = **RETURNING**

* หน้า Return Key แสดงว่ามาจาก RR

* Tag Return Type ตรงตามใบงาน RR + Ref. Outbound ถูกต้อง

---

## 1.3 การสร้าง GRR ผ่าน Import

รองรับ 2 รูปแบบ: **Data from table** และ **Upload file (Excel)**

### วิธีที่ 1 — Data from table

1. ไปที่เมนู **Return** → คลิก **Import**

2. Pop-up Document Type → คลิก **Create** → คลิก **Next**

3. กรอก **Release Key** และข้อมูล SKU, Qty ตาม DSO ที่อ้างอิง

4. *(ไม่บังคับ)* ตั้งค่า Toggle ตามต้องการ

5. คลิก **Import Now**

### วิธีที่ 2 — Upload file (Excel)

1. ไปที่เมนู **Return** → คลิก **Import**

2. Pop-up Document Type → คลิก **Create**

3. เลือก **Upload file** → คลิก **Next**

4. อัปโหลดไฟล์ Excel Template ที่กรอกข้อมูลครบถ้วน

5. *(ไม่บังคับ)* ตั้งค่า Toggle ตามต้องการ

6. คลิก **Import Now**

### Toggle พิเศษในหน้า Import GRR

| Toggle                          | การตั้งค่า | พฤติกรรม                                             |
| ------------------------------- | ---------- | ---------------------------------------------------- |
| **Stop import if error found**  | เปิด       | หยุด Import ทั้งหมดทันทีที่พบ Error                  |
| **Stop import if error found**  | ปิด        | Import แถวที่ถูกต้อง แจ้ง Error เฉพาะแถวที่มีปัญหา   |
| **Confirm receive immediately** | เปิด       | หลัง Import สำเร็จ สถานะเปลี่ยนเป็น **RETURN** ทันที |
| **Confirm receive immediately** | ปิด        | สถานะเป็น RETURNING รอ Confirm Return แยก            |

> 📌 **Split by SO Number:** สร้างใบงาน GRR แยกตาม SO Number อัตโนมัติ ต้องตั้งค่า Customer Reference Release Label 01 = SO Number ก่อน

### ข้อผิดพลาดที่พบบ่อย

| Error Message                             | สาเหตุ                                                    |
| ----------------------------------------- | --------------------------------------------------------- |
| `Not found related detail in Release Job` | Release Key ไม่มีในระบบ หรือ SKU ไม่ตรงกับ DSO ที่อ้างอิง |
| `SKU Code does not exist: [SKU]`          | SKU ที่กรอกไม่มีใน Master ของระบบ                         |

---

## 1.4 การยืนยันรับคืนสินค้า (Confirm Return)

> ⚠️ **เงื่อนไข:** ต้องใส่ **Return Reason** ทุกครั้งก่อน Confirm

1. ไปที่เมนู **Return** → เปิดใบงาน (Status = RETURNING หรือ RETURN)

2. คลิก **Next** เพื่อเข้า Tab SKU

3. ใส่ **Return Reason** ให้ครบทุกแถว

4. *(ไม่บังคับ)* ระบุ Location ตอนนี้เลยได้ (ดูหัวข้อ 4.1)

5. คลิก **Confirm Return**

### ผลลัพธ์หลัง Confirm Return สำเร็จ — Return Claim

* Pop-up **Create Shipment Order** ปรากฏขึ้น แสดงเลข DSO ชดเชยที่สร้าง

* คลิก **OK** → ระบบพาไปที่ใบงาน DSO ชดเชยที่สร้างอัตโนมัติ

* GRR เปลี่ยนสถานะ = **RETURN**

* สินค้าขึ้นใน Inventory Enquiry เป็น **แถวสีเทา**

### ผลลัพธ์หลัง Confirm Return สำเร็จ — Return Refund / Reject

* **ไม่มี** Pop-up Create Shipment Order

* **ไม่มี** DSO ชดเชยถูกสร้าง

* GRR เปลี่ยนสถานะ = **RETURN**

* สินค้าขึ้นใน Inventory Enquiry เป็น **แถวสีเทา**

> ⚠️ **Over Receive (ปิด):** ใส่ Qty เกินจากที่ระบุ → Error ไม่สามารถ Confirm ได้

---

## กรณีพิเศษ: รับคืนบางส่วน (Partial Receive)

กรณีต้องการรับคืนทีละหลายครั้งจากใบงาน DSO เดียว:

1. **ครั้งที่ 1:** ใส่ Qty น้อยกว่าจำนวนทั้งหมด → Confirm Return → GRR เป็น RETURN

   * DSO ชดเชยสร้างตามจำนวนที่รับจริง

   * DSO ต้นฉบับยังเหลือ Remaining Qty สำหรับสร้าง GRR ใหม่

2. **ครั้งที่ 2:** สร้าง GRR ใหม่จาก DSO เดิม → ระบบแสดงจำนวนที่เหลือ → Confirm Return ครบ

   * DSO ต้นฉบับจะไม่ปรากฏในการค้นหาอีกต่อไป

---

## 1.5 การระบุ Received Condition (Good / Damage / Hold)

### รับคืนเป็นสินค้าเสียหาย (Damage)

1. เปิดใบงาน GRR (Status = RETURNING) → **Next**

2. ใส่ Return Reason

3. เปลี่ยน **Received Condition** เป็น **Damage** (ทำได้ทีละแถวหรือทั้งหมด)

4. คลิก **Confirm Return**

> ผลลัพธ์: Inventory แสดง Goods Status = **Damage**

### รับคืนแบบผสม (บางตัว Good / บางตัว Damage)

ทำเหมือนขั้นตอนข้างต้น แต่เปลี่ยน Received Condition เฉพาะแถวที่เป็นสินค้าเสียหาย

#### พักสินค้าทันทีขณะรับคืน (Immediate Hold)

1. เปิดใบงาน GRR (Status = RETURNING) → **Next**

2. ใส่ Return Reason

3. ติ๊ก **Checkbox Immediate hold when receive** ที่แถวที่ต้องการพัก

4. เลือก **Hold Reason**

5. คลิก **Confirm Return**

> ผลลัพธ์: Inventory แสดง Goods Status = **Hold** พร้อม Hold Reason ที่ระบุ

> 📌 **รับแบบผสม Damage + Hold:** ระบุ Received Condition = Damage และติ๊ก Hold พร้อมกันได้ในแถวเดียว — Inventory จะแสดงทั้ง Damage และ Hold


