Complete Mobile And Terminal Menu Map
หน้านี้เป็น menu map ครบทุกเมนูที่ปรากฏใน Mobile Home และ POS Terminal Home รวมถึงจุดต่างของ Terminal ที่มี POS หน้าร้าน
Source of truth
- Mobile menu:
apps/mobile/src/screens/homeScreen/index.tsx - Mobile navigation:
apps/mobile/src/navigation/RootNavigator.tsx - Terminal menu:
apps/pos-terminal/src/screens/HomeScreen/config.ts - Terminal POS route:
apps/pos-terminal/src/navigation/RootNavigator.tsx - Terminal POS screen:
apps/pos-terminal/src/screens/StorefrontPosStack
Menu groups
Complete menu table
| Group | Menu | Mobile target | Terminal key / target | Notes |
|---|---|---|---|---|
| การขาย | ใบสั่งขาย | OrderList mode default | salesOrder | ดู/สร้าง/แก้ไขใบสั่งขาย |
| การขาย | ตรวจสอบใบสั่งขาย | OrderList mode shipping-review | salesOrderReview | ตรวจรายการก่อนส่งต่อ flow จัดส่ง/ออกเอกสาร |
| การขาย | ใบจองราคา | BookingPriceList | bookingPrice | สร้างใบจองราคาและแปลงเป็นใบสั่งขายได้ |
| การขาย | ใบแจ้งหนี้ | InvoiceList | invoice | ดูใบแจ้งหนี้, ชำระเงิน, พิมพ์, ส่ง B1 ตามสิทธิ์/สถานะ |
| การขาย | ใบจัดส่งสินค้าสายส่ง | ShippingList | shippingRoute | ต้องเป็นสาขาหลัก (isMain = true) |
| การขาย | ใบจัดส่งสินค้าหน้าร้าน | StorefrontList | shippingStorefront | เอกสารจัดสินค้าหน้าร้าน ไม่ใช่ POS หน้าร้านเต็มจอ |
| การขาย | ใบเบิกยืมดูปลา | BorrowList | borrowFish | รองรับ flow เบิกยืมและ conversion ตามสถานะ |
| การขาย | POS หน้าร้าน | ไม่มี | StorefrontPos route | เฉพาะ Terminal เปิดจากปุ่มใน menu pane |
| คลังสินค้า | รับสินค้าเข้าตรง | GoodsReceiptList | goodsReceipt | non-main branch เปิดได้แม้ไม่ผ่าน deptCode stock set |
| คลังสินค้า | โอนสินค้าไปสาขา | TransferOutList | transferOut | ใช้สำหรับโอนสินค้าออกไปสาขาอื่น |
| คลังสินค้า | รับสินค้าจากสาขา | TransferInList | transferIn | รับสินค้าจากเอกสารโอนเข้า |
| คลังสินค้า | ย้ายสินค้าตู้แช่ | TransferWarehouseList | transferWarehouse | ชื่อในเอกสารเดิมบางจุดอาจเรียกย้ายสินค้าระหว่างคลัง |
| ข้อมูล | สินค้า | ProductList | product | ดูสินค้า, ราคา, inventory context |
| ข้อมูล | ลูกค้า | CustomerList mode default | customer | ดูข้อมูลลูกค้า, tier/point, ที่อยู่, สร้างเอกสารจากลูกค้า |
| ข้อมูล | ขนส่ง | TransportList | transport | ต้องเป็นสาขาหลัก (isMain = true) |
| ข้อมูล | การจัดการลูกค้า | CustomerManagementList | customerManagement | จัดการ draft/คำขอลูกค้า |
| ข้อมูล | จัดการที่อยู่ลูกค้า | CustomerManagementAddressList | customerAddressManagement | จัดการคำขอ/ข้อมูลที่อยู่ |
| ข้อมูล | เปิด/ปิด สถานะลูกค้า | CustomerList mode request | customerActivation | ใช้ permission set เฉพาะ MENU_CAN_ACTIVE_CUSTOMER |
| ข้อมูล | ลดหนี้ / คืนสินค้า | CreditNoteList | creditNote | Mobile อนุญาตด้วย deptCode หรือ user code override; Terminal มี userPermission เช่นกัน |
| ข้อมูล | ผู้ใช้ทั้งหมด | EmployeeList | employee | Terminal admin เปิดได้ตาม rule ของ canAccessMenu |
| ข้อมูล | ยานพาหนะ | VehicleList | vehicle | ใช้ permission set เดียวกับ employee menu |
| อื่นๆ | ฝากเงิน | DepositList | deposit | มี shortcut สร้างรายการใหม่เมื่อมีสิทธิ์ |
| อื่นๆ | บิลน้ำมัน | ExpenseBillList | expenseBill | ต้องเป็นสาขาหลัก (isMain = true) |
Permission flow
Main-branch-only menus
เมนูที่ยังบังคับ branch.isMain = true:
ใบจัดส่งสินค้าสายส่งขนส่งบิลน้ำมัน
เมนู stock เหล่านี้เปิดให้ non-main branch ได้:
รับสินค้าเข้าตรงโอนสินค้าไปสาขารับสินค้าจากสาขาย้ายสินค้าตู้แช่
Mobile shortcuts
Mobile มี shortcut บน card บางเมนู:
| Menu | Shortcut target |
|---|---|
| ใบสั่งขาย | CustomerList mode default แล้วสร้าง order จากลูกค้า |
| ใบจองราคา | CustomerList mode booking |
| ใบเบิกยืมดูปลา | CustomerList mode borrow |
| ใบจัดส่งสินค้าสายส่ง | ShippingDetail create mode |
| ขนส่ง | TransportDetail new transport |
| ฝากเงิน | DepositDetail new deposit |
Terminal interaction model
Terminal ไม่ใช้ navigation stack แยกทุกเมนูเหมือน Mobile Home แต่ใช้ selected menu state:
Terminal จึงให้ผู้ใช้ทำงานแบบ list + detail ต่อเนื่องในจอเดียว ส่วน Mobile ใช้ stack navigation จาก list ไป detail
POS หน้าร้าน เฉพาะ Terminal
POS หน้าร้าน ไม่ใช่รายการใน terminalMenus แต่เป็นปุ่มเปิด route StorefrontPos
ใช้เมื่อเครื่อง Terminal ทำหน้าที่เป็น POS หน้าร้านเต็มรูปแบบ แยกจากเมนู ใบจัดส่งสินค้าหน้าร้าน ซึ่งเป็น workflow เอกสารจัดส่ง/จัดสินค้า
Update checklist เมื่อเพิ่มเมนู
- เพิ่ม Mobile
MENU_SECTIONS, visibility set, navigation target, shortcut ถ้ามี - เพิ่ม Terminal
terminalMenus, permission set, detail/list handler ถ้ามี - เพิ่ม route/screen ถ้าเป็น flow ใหม่
- อัปเดตหน้านี้และ
home-menu-and-permissions - อัปเดต changelog