#faq#permission#warehouse#shelf#erp_option#troubleshooting
จำกัดคลัง/ที่เก็บที่ผู้ใช้เลือกได้ (perm_wh_shelf) ตั้งอย่างไร และทำไมผู้ใช้เห็นคลังไม่ครบ
ตอบสั้น: เป็นตัวเลือกระดับบริษัท erp_option.perm_wh_shelf (ช่องติ๊ก "ใช้คลังที่เก็บตามสิทธิ์พนักงาน") เมื่อเปิด รายการคลัง/ที่เก็บที่ผู้ใช้เลือกได้จะเหลือเฉพาะแถวใน erp_user_group_wh_shelf ของกลุ่มที่ผู้ใช้สังกัด แยกตามจอ PU (ซื้อ) / SI (ขาย) / IM (นำเข้า-โอน) / ST (ตรวจนับ) ถ้าผู้ใช้ไม่เห็นคลังที่ต้องการ ให้ตรวจ 3 อย่าง: ติ๊กตัวเลือกนี้ไว้หรือไม่ ผู้ใช้อยู่กลุ่มไหน และกลุ่มนั้นถูกกำหนดคลังในแท็บของจอนั้นไว้หรือยัง
รายละเอียด
วิธีตั้ง:
- ติ๊ก "ใช้คลังที่เก็บตามสิทธิ์พนักงาน" ในหน้าตั้งค่าบริษัท (
erp_option, แท็บ "3.สินค้าคงคลัง" —tab3Item.ts:97) - จัดผู้ใช้เข้ากลุ่มพนักงาน ERP ใน
erp_user_group_detail(เมนูmenu_setup_user_group1.1.6master_detail_specs.go:332) — เป็นคนละชุดกับกลุ่มsml_user_and_groupที่ใช้กับสิทธิ์เมนู - กำหนดคลัง/ที่เก็บของกลุ่มที่เมนู
menu_setup_user_group_warehouse_shelf(master-detail 4 แท็บwh_pu,wh_si,wh_im,wh_st—master_detail_specs.go:378) แท็บหนึ่งเก็บscreen_codeตายตัวของมัน ต้องมีรหัสคลังอยู่ในic_warehouseมิฉะนั้นขึ้น "ไม่พบรหัสคลังสินค้า"
ระบบใช้สิทธิ์นี้ที่ไหนบ้าง (ทั้งหมดผ่านเงื่อนไข EXISTS กลาง permWhShelfExists, perm_wh_shelf.go:26):
- รายการเลือกคลัง/ที่เก็บของจอเอกสาร (
applyPermWhShelf,:42) — หัวเอกสารของกลุ่มจอwhTopDocFlagsตัวกรองสิทธิ์ แทนที่ ตัวกรองสาขา ส่วนตารางสินค้า AND กับตัวกรองสาขา - คลัง/ที่เก็บตั้งต้นของแถวสินค้า (
loadGridWhPerm,:80) ถ้าผู้ใช้มีerp_user.ic_wht/ic_shelfและสิทธิ์เปิด ค่าของผู้ใช้ชนะค่าของสินค้า; ถ้าสิทธิ์ปิด ค่าเหล่านี้ถูกล้างทิ้ง - เลือกคลังจากฟอร์มยอดคงเหลือ F3/F4 (
POST /process/lookup/wh-pick-check,whPickAllowed:127) — คลังและที่เก็บต้องเป็นแถวของสินค้าในic_wh_shelfและอยู่ในกลุ่มของผู้ใช้ - หน้าเลือกคลัง/ฟอร์มยอดคงเหลือนอกเอกสาร (
POST /process/lookup/wh-perm-filter,WarehousePermFilter,perm_wh_shelf_rest.go:25) - รายงาน "เคลื่อนไหวสินค้า" และ "สินค้า_รายงานเคลื่อนไหว" เลือกที่เก็บ/คลังล่วงหน้าตามสิทธิ์ (
report_menu_ic.go:556,562)
ทั้ง 3 route อยู่ใน routeRights เป็นสิทธิ์ read (ทำไมเข้าเมนู/กดบันทึกแล้วขึ้น 403 ไม่มีสิทธิ์ และตั้งสิทธิ์เมนูให้ผู้ใช้อย่างไร)
ข้อควรระวัง
- flag เอกสารที่ไม่อยู่ใน
permScreenGridจะไม่ถูกกรองในตารางสินค้า แม้เปิดสิทธิ์ ส่วนหัวเอกสารที่ไม่อยู่ในpermScreenTopกรองแต่ไม่ระบุscreen_code - กลุ่มที่ไม่มีแถวคลังในแท็บของจอนั้น = เลือกคลังไม่ได้เลยในจอนั้น (EXISTS ไม่เจอ) ไม่ใช่เลือกได้ทั้งหมด
- รายงานที่ใช้โหมดสิทธิ์นี้ปฏิเสธ Custom SQL (
permGuarded) (บทเรียนระบบสิทธิ์เมนู (Permission & Menu Rights)) - รายงานเคลื่อนไหวสินค้าตามที่เก็บ ถ้าเปิดสิทธิ์แต่ผู้ใช้ไม่มีที่เก็บเลย จะแจ้ง "กรุณาเลือกที่เก็บสินค้า"
ดูเพิ่ม
- สิทธิ์คลัง/ที่เก็บรายกลุ่มผู้ใช้ (perm_wh_shelf)
- ตัวกรองหน้าค้นหา (Lookup filters: party / ref-doc / warehouse / held items)
- ข้อมูลหลักแบบหัว-รายการ รหัสอัตโนมัติ และเลย์เอาต์รายการ (Master-detail, code auto-run, DataList)
- ทำไมเข้าเมนู/กดบันทึกแล้วขึ้น 403 ไม่มีสิทธิ์ และตั้งสิทธิ์เมนูให้ผู้ใช้อย่างไร
- โอนสินค้าระหว่างคลัง/ที่เก็บ (72/70) ทำงานยังไง ต้นทุนเปลี่ยนไหม
- ตรวจนับสต็อกแล้วปรับยอดยังไง (ตรวจนับ 76 → ปรับปรุงเพิ่ม 66 / ลด 68)
ที่มาในโค้ด
backend/internal/application/process/perm_wh_shelf.go:26permWhShelfExistsและตารางpermScreenGrid/permScreenTop(บรรทัด 14-22)backend/internal/application/process/perm_wh_shelf.go:42applyPermWhShelfbackend/internal/application/process/perm_wh_shelf.go:80loadGridWhPerm(อ่านerp_option.perm_wh_shelf,erp_user.ic_wht/ic_shelf)backend/internal/application/process/perm_wh_shelf.go:127whPickAllowedbackend/internal/application/process/perm_wh_shelf_rest.go:25WarehousePermFilter/whPermFilter(บรรทัด 40)backend/internal/application/process/master_detail_specs.go:378เมนูmenu_setup_user_group_warehouse_shelffrontend/src/config/schemas/erpOption/tab3Item.ts:97ช่องติ๊กperm_wh_shelf