# เมนู: Utilities > Create Rule

ระบบที่พักสินค้าให้อัตโนมัติตามเงื่อนไขที่ตั้งไว้ โดยไม่ต้องสร้างเอกสาร Hold เองทุกครั้ง เหมาะกับสถานการณ์ เช่น สินค้าใกล้หมดอายุ, สินค้าตีคืนจากลูกค้าที่ต้องรอตรวจสอบ, หรือมีการแก้ไขข้อมูลสำคัญในคลัง

# 1. การสร้างกฎ Auto Hold

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

2. เลือก **Create Rule**

3. เลือก **Trigger = Autohold**

4. ตรวจสอบ **Storer Code** และ **Warehouse Code** (ระบบ Default ให้)

5. เลือก **When Hold** ตามประเภทที่ต้องการ:

   * **Inventory** — ใช้กับเงื่อนไขจากข้อมูลสต็อก (เช่น วันหมดอายุ, การแก้ไขข้อมูลสำคัญ)

   * **Return** — ใช้กับเงื่อนไขจากการรับคืนสินค้า

6. กด **Add Condition**

7. ตั้งค่าเงื่อนไข (Condition) ตามที่ต้องการ

8. กด **Save**

# 2. เงื่อนไขและข้อจำกัดของกฎ

| ข้อจำกัด                                           | รายละเอียด                                                                                            |
| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| **จำนวนเงื่อนไขสูงสุด**                            | เพิ่มได้สูงสุด **2 Condition** ต่อ 1 กฎ — กดปุ่ม Add Condition ครั้งที่ 3 ปุ่มจะ Disable              |
| **Operator สำหรับข้อมูล Text**                     | Lock เป็น **Equal** เสมอ — ไม่สามารถคลิกเปลี่ยนค่าได้                                                 |
| **ตัวเลขในเงื่อนไขวันที่ (Plus/Minus)**            | รับค่าได้สูงสุดเพียง **หลักสิบ (0-99)** — กรอกเกิน (เช่น 999) ระบบไม่อนุญาตหรือแจ้ง Error             |
| **กฎที่เป็นไปไม่ได้ทางตรรกะ (Logical Impossible)** | เมื่อกด **Show Data Effect** ระบบแสดงผล **"No Record"** ตามตรรกะที่ถูกต้อง — ต้องไม่เกิด System Crash |

# 3. การทำงานของระบบตามประเภท Trigger

| When Hold     | จังหวะที่ระบบทำงาน                                                      |
| ------------- | ----------------------------------------------------------------------- |
| **Inventory** | ประมวลผล**รอบดึก** (Batch job) — ตรวจสอบเงื่อนไขกับข้อมูลสต็อกที่มีอยู่ |
| **Return**    | พักสินค้า**ทันที** หลังยืนยันการรับคืน (Confirm Return) ไม่ต้องรอรอบดึก |

### **ผลลัพธ์เมื่อ Trigger ทำงานสำเร็จ:**

* ระบบสร้างเอกสาร **Hold** ให้อัตโนมัติ

* สินค้าที่ตรงเงื่อนไขถูกพักอัตโนมัติ

# 4. การแก้ไขและเปิด/ปิดกฎ

## แก้ไขรายละเอียดกฎ

1. ไปที่เมนู **Utilities** → เข้ารายละเอียดของ Rule ที่ต้องการแก้ไข

2. แก้ไขเงื่อนไขตามต้องการ

3. กด **Save**

## เปิด/ปิดการใช้งานกฎ

1. ไปที่หน้ารายการ Rule บน Utilities

2. สลับ **Toggle** เพื่อเปลี่ยน Action (เปิด/ปิดการใช้งาน)

**ผลลัพธ์:** Action เปลี่ยนและบันทึกทันที — สถานะ Rule ในรายการอัปเดตตาม Action ที่เปลี่ยน