Features

TMS — Transport Management

งานขนส่ง (Shipment)

สร้างและติดตามงานขนส่งตั้งแต่ต้นจนจบ

สถานะ (lifecycle):

สร้างใหม่ → จัดรถแล้ว → กำลังหยิบสินค้า → ขึ้นของแล้ว → กำลังจัดส่ง → ส่งถึงแล้ว → เสร็จสมบูรณ์
                ↓                                                    ↓
             ยกเลิก                                            ส่งไม่สำเร็จ → กำลังจัดส่ง (retry)

ฟีเจอร์หลัก:

  • สร้างงานขนส่งพร้อมรายการสินค้า (คำนวณน้ำหนักรวมอัตโนมัติ)
  • จัดรถและคนขับ → ระบบสร้าง Trip อัตโนมัติ
  • ไทม์ไลน์สถานะพร้อมพิกัด GPS และหมายเหตุ
  • ออก Outbound WMS อัตโนมัติเมื่อเข้าสถานะ "กำลังหยิบสินค้า"

ลิงก์ติดตามสถานะ (Public Tracking)

ลูกค้าสามารถติดตามสถานะงานขนส่งได้โดยไม่ต้องล็อกอิน

URL: /tracking/t/<tracking_token>

แสดงผล:

  • เลขที่งาน, ชื่อลูกค้า, ปลายทาง, วันนัดส่ง, badge สถานะ
  • การ์ดผู้ส่งสินค้า — ชื่อคนขับ + ปุ่มโทรเลย + ทะเบียนรถ (แสดงเมื่อจัดรถแล้ว)
  • Milestone timeline 7 ขั้น พร้อมเวลาและหมายเหตุ
  • หน้าจอพิเศษสำหรับสถานะยกเลิก/ส่งไม่สำเร็จ
  • Auto-refresh ทุก 60 วินาที

ลิงก์: ปรากฏในหน้า detail ของงานขนส่ง พร้อมปุ่มคัดลอก

Token: UUID-safe 32-byte สร้างอัตโนมัติเมื่อสร้างงาน ไม่มีวันหมดอายุ

การติดตาม GPS (Fleet Tracking)

  • คนขับส่ง GPS ping ผ่าน /api/tracking/position ทุก 5 วินาที (เมื่อเปิดแชร์ตำแหน่ง)
  • Dispatcher เห็นแผนที่ Fleet แบบ real-time ที่ /tracking/
  • บันทึกพิกัดใน vehicle_positions และแนบกับ shipment_status_log

WMS — Warehouse Management

รับของเข้า (Inbound)

  • สร้าง Inbound document พร้อมรายการสินค้าและ lot number
  • ยืนยัน → เพิ่ม stock อัตโนมัติ (StockMovement type: IN)
  • รองรับ lot tracking (track_lot = True ต่อสินค้า)

จ่ายของออก (Outbound + Pick List)

  • สร้างจาก Shipment อัตโนมัติ หรือสร้างเองก็ได้
  • ระบบสร้าง Pick List แบบ FEFO (First Expired First Out) อัตโนมัติ
  • ยืนยัน → ตัด stock (StockMovement type: OUT)

Stock

  • ดู stock ปัจจุบันแยกตามสินค้า/คลัง/lot
  • แจ้งเตือน low stock (เมื่อ stock < min_stock)
  • ดู stock movement history

Masters — ข้อมูลหลัก

Entity Fields หลัก หมายเหตุ
ลูกค้า code, name, phone, address, lat/lng พิกัดใช้กับ fleet map
รถ plate_no, vehicle_type, capacity_kg, status สถานะ: ว่าง/วิ่งงาน/ซ่อม
คนขับ full_name, license_no, phone, user_id เชื่อมกับ User role=DRIVER
สินค้า sku, name, uom, weight_kg, track_lot, min_stock
คลัง code, name, address
Location warehouse/zone/bin สำหรับ pick list

Reports

รายงาน URL Export
สรุปงานขนส่ง /reports/shipments CSV
Trip log /reports/trips CSV
Stock คงเหลือ /reports/stock CSV
Stock movement /reports/stock-movements CSV

Auth

  • Session-based login (Flask-Login)
  • CSRF protection ทุก form (Flask-WTF)
  • Role-based access control ทุก route
  • Remember me (persistent session)