#faq#delete#edit#guard#period#lock
ทำไมลบหรือแก้เอกสารไม่ได้ ขึ้น ห้ามแก้ไข หรือลบข้อมูล
ตอบสั้น: ระบบตรวจตามลำดับ สิทธิ์ผู้ใช้, ล็อกเด็ดขาด, สถานะเอกสาร (ถูกใช้ต่อ / ปิดแล้ว / ยกเลิกแล้ว / เป็นสำเนา), งวดบัญชีปิด, และการมีเอกสารอื่นอ้างอิง ข้อความที่ขึ้นบอกว่าติดด่านไหน
รายละเอียด
| ข้อความ / อาการ | สาเหตุ | แก้อย่างไร |
|---|---|---|
| ปุ่มลบ/แก้ไขเป็นสีเทา | ผู้ใช้ไม่มีสิทธิ์ลบ/แก้ (rights.canDelete, rights.canEdit) และฝั่งหลังบ้าน trans/delete ต้องมีสิทธิ์ลบ |
ให้ผู้ดูแลเพิ่มสิทธิ์เมนูนั้น |
| "Lock เด็ดขาด : ห้ามแก้ไข หรือลบข้อมูล" | แถวมี is_lock_record = 1 |
ลบ/แก้จากหน้าจอไม่ได้ (trans_validate.go:112-124) |
| "ห้ามแก้ไข หรือลบข้อมูล" | ใบถูกใช้ต่อแล้ว (used_status / used_status_2 = 1), ปิดรายการแล้ว (doc_success = 1), ยกเลิกแล้ว (last_status = 1), เป็นสำเนา (is_doc_copy = 1) หรือเป็นใบสั่งจอง (flag 34) ที่อนุมัติแล้ว (approve_status >= 1) |
ดูใบที่อ้างอิงอยู่ แล้วลบ/ยกเลิกใบนั้นก่อน (trans_validate.go:132-156) |
| "วันที่เอกสาร dd/mm/yyyy ได้ถูกปิดงวดไปแล้ว หรือยังไม่ได้กำหนดงวดบัญชี กรุณาตรวจสอบ" | วันที่เอกสารไม่อยู่ในงวดที่ status = 0 หรือยังไม่มีงวด |
เปิดงวด/สร้างงวดที่ erp_account_period (period.go:53-61) |
| "เอกสาร X มีการอ้างอิงไปแล้วโดยเอกสาร Y ไม่สามารถลบได้" | มีใบอื่น (ที่ยังไม่ยกเลิก) ดึงใบนี้ไปแล้ว | ลบ/ยกเลิกใบ Y ก่อน (trans.go:409) |
| "เอกสาร X ถูกนำไปใช้/รับคืนแล้วโดยเอกสาร Y ลบไม่ได้" | มัดจำ/เงินล่วงหน้าที่ถูกตัดใช้หรือมีใบคืนแล้ว | ยกเลิกใบที่ใช้/คืนก่อน (trans_deposit.go:264) |
ใบวางบิล/รับ-จ่ายชำระ (ap_ar_trans) ลบไม่ได้ |
ถูกใช้ ปิด หรือยกเลิกแล้ว (ไม่ดู used_status_2) |
ทำนองเดียวกัน (docs.go:463-490) |
- ด่านฝั่งลบเรียงจาก
checkTransScreenDelete: ล็อก -> สถานะ -> งวด (trans_validate.go:95-107) แล้วค่อยตรวจการอ้างอิงในdeleteTransTx - ตอนแก้ไขเอกสารที่มีอยู่ ระบบใช้ด่านล็อกและสถานะชุดเดียวกัน (
trans_validate.go:54-60) และแจ้ง "ไม่พบเอกสารที่จะแก้ไข" ถ้าเลขที่ไม่มีจริง - ใบเสนอราคา (flag 30) แก้ได้แม้ถูกใช้ต่อ เมื่อเปิดออปชันแก้ใบเสนอราคา (
sale_order_edit) (trans_validate.go:133-135)
ข้อควรระวัง
- "ถูกอ้างอิง" นับเฉพาะใบถัดไปที่ยังไม่ยกเลิก (
last_status = 0) ถ้าใบถัดไปถูกยกเลิกแล้ว ใบต้นทางลบได้ - ใบที่ยกเลิกแล้วลบไม่ได้เลย เพราะ
last_status = 1(ใบเดิมต้องเก็บคู่กับใบยกเลิก)
ดูเพิ่ม
- ยกเลิก แก้ไข ลบเอกสาร ต่างกันอย่างไร ผลต่อสต็อกและ GL
- สถานะยกเลิก/อนุมัติเอกสาร (last_status / approve_status / cancel flag)
- งวดบัญชี ปิดงวด และสิ้นปี (account period / erp_account_period / checkOpenPeriod)
- งวดบัญชี ปิดงวด/ปิดปี และประมวลผล GL ใหม่ (Period & Year Close, GL Rebuild)
- บทเรียนยกเลิก ลบ และยกเลิกรายบรรทัด (Cancel, Delete & Partial Cancel)
- บทเรียนระบบสิทธิ์เมนู (Permission & Menu Rights)
ที่มาในโค้ด
backend/internal/application/process/trans_validate.go:95checkTransScreenDeleteและ:112refuseLockedRecordbackend/internal/application/process/trans_validate.go:132editLockedและ:142checkStoredEditablebackend/internal/application/process/period.go:53periodErrorและ:68checkStoredDocPeriodbackend/internal/application/process/trans.go:409ข้อความมีการอ้างอิงแล้วbackend/internal/application/process/trans_deposit.go:264ข้อความมัดจำถูกใช้แล้วbackend/internal/application/process/docs.go:463checkStoredApArEditablebackend/internal/adapter/inbound/http/process/permission.go:47trans/deleteใช้สิทธิ์ลบfrontend/account/transaction/UniversalTransScreen.tsx:3086ปุ่มลบปิดเมื่อไม่มีสิทธิ์