ผู้ใช้ทั้งหมด
เมนูผู้ใช้ทั้งหมดใช้จัดการบัญชีพนักงานและสิทธิ์ branch-warehouse ซึ่งมีผลกับเมนูที่เห็น สิทธิ์อนุมัติ สิทธิ์รับสินค้า งานโอนสินค้า และงานคลังตามสาขา
ทางเข้าในแอป
| App | Target |
|---|---|
| Mobile | EmployeeList -> EmployeeDetail / profile / transfer receive setting |
| POS Terminal | employee -> EmployeeDetailForm |
Workflow
API และ Permission Rules
| Operation | Service |
|---|---|
| List users | getUsers({ page, search }) -> GET /users |
| Detail | getUserById(id) |
| Patch profile | patchUser({ id, payload }) |
| Get warehouse permissions | getUserBranchWarehousePermissions({ userId, branchId }) |
| Create warehouse permission | createUserBranchWarehousePermission({ whsCode, whsName, canApprove: 1 }) |
| Update warehouse permission | updateUserBranchWarehousePermission โดยตั้ง canApprove เป็น 0 หรือ 1 |
กฎสำคัญ:
- admin เข้าเมนูพนักงานได้แม้ dept ปกติไม่ตรง
- การเปลี่ยน warehouse permission มีผลกับ inventory/receiving flows และอาจต้อง refresh/re-login เพื่อให้ทุกเมนูคำนวณใหม่
- flag เช่น
approveCustomerถูกใช้ต่อใน customer management - employee profile self-service แยกจาก admin employee management
การตั้งค่าภายในหน้ารายละเอียด
| Control | สิทธิ์และผลลัพธ์ |
|---|---|
| Permission flags | ผู้จัดการพนักงาน/Admin เท่านั้นที่แก้ได้ ผู้ใช้ทั่วไปดูอย่างเดียว |
| Password | Reset ผู้อื่นต้องยืนยัน; เจ้าของบัญชีใช้ verification เพื่อตั้งรหัสตนเอง |
| ตั้งค่ารับโอน | เลือกสาขาแล้วกำหนดแยกทีละคลัง โดย scope คือ user + branch + warehouse |
| Warehouse toggle | สร้าง grant ด้วย canApprove: 1 เมื่อยังไม่มี หรืออัปเดตเป็น 0/1 เมื่อมีแล้ว |
| ผลกระทบ | มีผลต่อเมนู การอนุมัติ รับสินค้า และโอนสินค้า บางจุดอาจต้อง refresh/login ใหม่ |
สิทธิ์และ guard
| เรื่อง | รายละเอียด |
|---|---|
| Terminal menu key | employee |
| deptCode ที่เห็นเมนู | -2, 1, 2, 3, 4, 7, 29, 21, 8, 9, 27 |
| Admin override | admin เข้า Employee ได้แม้ dept rule ไม่ผ่าน |
| Branch warehouse rule | permission ผูกกับ user และ branch |
Mobile vs POS Terminal
| เรื่อง | Mobile | POS Terminal |
|---|---|---|
| Navigation | employee stack พร้อม profile และ transfer receive setting | HomeScreen split-pane menu key employee |
| แก้ permission | transfer receive setting screen | permission toggles ใน EmployeeDetailForm |
| Profile | employee profile screen | profile fields ใน detail form |
| Refresh | screen/list refresh | split list/detail refresh |
Developer Handoff Map
| Area | Code |
|---|---|
| Mobile stack | apps/mobile/src/screens/employeeStack/* |
| Terminal detail | apps/pos-terminal/src/screens/HomeScreen/EmployeeDetailForm.tsx |
| User service | apps/*/src/services/user.ts, users.ts |
| Menu access | HomeScreen/mobile menu config และ @bsr/utils permission helpers |