# เมนู: Tab Operate → Scan Out

ใช้สำหรับสร้างใบงานและสแกนปล่อยสินค้าขึ้นรถ พร้อมเซ็นลายเซ็นและออก Delivery Note

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

| สถานะ         | ความหมาย                                    |
| ------------- | ------------------------------------------- |
| **OPENED**    | สร้างใบงานแล้ว — รอเริ่มสแกน                |
| **RELEASING** | กำลังสแกนปล่อยสินค้า                        |
| **CLOSED**    | ปล่อยสินค้าสมบูรณ์ — Inventory: Shipped Qty |

---

## 1. การสร้างใบงาน Scan Out

> **เงื่อนไข:** DSO ต้องมีสถานะ **PICKED, PACKED หรือ PARTIAL_PICKED** เท่านั้น

| DSO Status                                | ผลลัพธ์                                                         |
| ----------------------------------------- | --------------------------------------------------------------- |
| PICKED / PACKED / PARTIAL_PICKED          | สร้างได้                                                        |
| ALLOCATED / PICKING / PACKING / RELEASING | Error: `Job status must be in PACKED, PICKED or PARTIAL_PICKED` |
| CLOSED                                    | ค้นหาไม่พบ                                                      |

### 1.1 สร้าง Scan Out จาก DSO 1 ใบ

1. Handheld → Tab **Operate** → เมนู **Scan Out**

2. กด **⋯ (3 จุด)** มุมขวาบน → เลือก **Scan out by Pallet**

3. คลิกที่ช่อง **Expect Release job**

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

5. กด **Next**

6. กรอก **Vehicle No** (ทะเบียนรถ)

7. กด **Start**

### 1.2 สร้าง Scan Out จาก DSO หลายใบพร้อมกัน

ทำตามขั้นตอนเดิม แต่ในขั้นที่ 4 เลือก **Checkbox หลายใบงาน DSO** พร้อมกัน

**ผลลัพธ์หลังสร้างสำเร็จ:**

* Scan Out Job สถานะ = **OPENED**

* ระบบ Gen **เลขใบงาน** ให้อัตโนมัติ

* DSO ทุกใบที่เลือกเปลี่ยนเป็น **RELEASING**

* Booking No. และ Vehicle No. ใน DSO (บนเว็บ) ตรงกับที่กรอกใน HH

---

## 2. การสแกนปล่อยสินค้า

 1. เข้าใบงาน Scan Out (Status = OPENED)

 2. สแกนตาม **Scan Profile** ที่กำหนด จนครบทุกรายการ

    | Profile        | การสแกน                   |
    | -------------- | ------------------------- |
    | Full Pallet    | สแกน Pallet ID ทั้งพาเลท  |
    | Partial Pallet | สแกน SKU + Qty ทีละรายการ |
    | SSCC           | สแกน SSCC Barcode         |

 3. กด **Load job success**

 4. *(ไม่บังคับ)* คลิกปุ่ม **กล้อง** เพื่อถ่ายรูปสินค้าก่อนโหลดขึ้นรถ

 5. กรอก **Driver Name** (ชื่อคนขับรถ)

 6. กด **Release Car**

 7. เซ็นลายเซ็น **Person release** (ผู้ดำเนินการปล่อยสินค้า)

 8. กด **Confirm Release Signed**

 9. เซ็นลายเซ็น **Driver** (คนขับรถ)

10. กด **Confirm Driver Signed**

### **ผลลัพธ์หลังยืนยันสมบูรณ์:**

* Scan Out Job + DSO สถานะ = **CLOSED**

* Inventory: Picked/Packed Qty → **Shipped Qty**

* รูปถ่าย (ถ้ามี) เก็บใน DSO Tab Basic > **DN Image**

> 📌 **Summary Qty:** ระบบแสดงจำนวนสินค้าที่สแกนแล้ว (X/จำนวนทั้งหมด) มุมซ้ายบนตลอดเวลา สรุปรวมอีกครั้งในหน้า Driver Name ก่อน Release Car

---

## 1.3 Short Ship — ปล่อยได้ไม่ครบ

> **เงื่อนไข:** ต้องเปิดใช้งาน **Allow Short Ship** ก่อน

1. สแกนปล่อยสินค้าตาม Profile ที่กำหนด — สแกนได้ไม่ครบทุกรายการ

2. กด **Load job success**

3. กด **Confirm release of work, Return remaining products**

4. กรอก **Driver Name** → กด **Release Car**

5. เซ็นลายเซ็น Person release → กด **Confirm Release Signed**

6. เซ็นลายเซ็น Driver → กด **Confirm Driver Signed**

### **ผลลัพธ์:**

* Scan Out Job + DSO สถานะ = **CLOSED**

* Inventory: สินค้าที่ปล่อยออก → Shipped Qty

* ระบบสร้าง **Job Move** อัตโนมัติ (Status = Wait Move) สำหรับคืนสินค้าที่เหลือกลับ Location เดิม

> ⚠️ **Allow Short Ship ปิด:** กด Load job success โดยสแกนไม่ครบ → Error: `Please scan the product completely`

---

## 1.4 การยกเลิกใบงาน Scan Out (Cancel Release)

> ✅ **ยกเลิกได้ทุก Status: OPENED, RELEASING และ CLOSED**

### ยกเลิกจากในใบงาน (ทุก Status)

1. Handheld → **Scan Out** → เข้าใบงานที่ต้องการ

2. กด **⋯ (3 จุด)** มุมขวาบน

3. กด **Cancel Release**

### ยกเลิกจากหน้า List (ทุก Status)

1. Handheld → **Scan Out** → หน้ารายการ

2. **สไลด์การ์ด** ใบงานที่ต้องการ จากขวาไปซ้าย

3. กด **Cancel**

### **ผลลัพธ์หลังยกเลิกสำเร็จ:**

* Scan Out Job หายออกจากรายการ

* DSO กลับเป็นสถานะเดิมก่อนสร้าง Scan Out (**PICKED** หรือ **PACKED**)

* *(ถ้า CLOSED)* Inventory: Shipped Qty → Picked/Packed Qty

---

## 1.5 การออกเอกสาร Delivery Note (DN)

ออกได้ทุก Status — แต่ข้อมูลลายเซ็นจะสมบูรณ์เฉพาะ CLOSED เท่านั้น

| สถานะ Scan Out | ข้อมูลใน DN                                                          |
| -------------- | -------------------------------------------------------------------- |
| **OPENED**     | ข้อมูลสินค้าครบ — **ไม่มี** ลายเซ็น / ชื่อคนขับ / วันที่จัดส่ง       |
| **RELEASING**  | ข้อมูลสินค้าครบ — **ไม่มี** ลายเซ็น / ชื่อคนขับ / วันที่จัดส่ง       |
| **CLOSED**     | ข้อมูลสมบูรณ์ — **มี** ลายเซ็นทั้ง 2 ฝ่าย / ชื่อคนขับ / วันที่จัดส่ง |

### ออก DN จากในใบงาน

1. Handheld → **Scan Out** → เข้าใบงาน

2. กด **⋯ (3 จุด)** มุมขวาบน

3. กด **Print Worksheet**

### ออก DN จากหน้า List

1. Handheld → **Scan Out** → หน้ารายการ

2. **สไลด์การ์ด** ใบงานที่ต้องการ จากขวาไปซ้าย

3. กด **Print**


