เอกสาร Waypoint
หน้าเว็บไซต์ หลังบ้าน

📦 ระบบรับส่งพัสดุ

รับ คำนวณราคา พิมพ์ใบฝากส่ง + ฉลาก สแกน QR เข้า/ออก ส่งมอบให้ผู้รับด้วย PIN

Flow การทำงาน

  1. ลูกค้าฝากพัสดุที่สาขาต้นทาง — พนักงานกรอกข้อมูลในระบบ → ระบบสร้างรหัส PR + YYMMDD + 6 chars + PIN 6 หลัก
  2. พิมพ์ใบฝากส่งให้ลูกค้า + ใบฉลากแปะกล่อง
  3. มอบหมายให้เที่ยวรถ — เลือกเที่ยวที่จะส่ง
  4. พิมพ์ใบสรุปคนรถ — รายการพัสดุทั้งหมดในเที่ยวนั้น
  5. รถออก → status = in_transit
  6. ถึงสาขาปลายทาง → สแกน QR เข้าสาขา → ระบบแจ้งเตือนสาขาอัตโนมัติ
  7. ผู้รับมารับ → สแกน QR + กรอก PIN 6 หลัก → ส่งมอบเสร็จ

รับพัสดุใหม่

เมนู: พัสดุ → + รับพัสดุใหม่

กรอกข้อมูลใน 4 ส่วน:

🛣️ เส้นทาง

  • ต้นทาง (สาขาที่รับ)
  • ปลายทาง (สาขาที่จะส่ง)

👤 ผู้ส่ง

  • ชื่อ * + โทร *
  • เลขบัตรประชาชน (ถ้ามี)

📞 ผู้รับ

  • ชื่อ * + โทร * (จำเป็น — สำหรับติดต่อ)
  • เลขบัตรประชาชน

📦 รายละเอียดพัสดุ

  • ประเภท (เอกสาร/พัสดุ/แตกหักง่าย/ใหญ่/อื่นๆ)
  • น้ำหนัก (กก.) + จำนวนชิ้น
  • ขนาด L × W × H (ซม.)
  • คำอธิบาย ("กล่องน้ำตาล ขนาดกลาง")
  • มูลค่าประกัน (ถ้าต้องประกัน)
  • หมายเหตุ

การ์ดราคา (ฝั่งขวา) — Live calc

ระบบคำนวณราคาแบบ realtime เมื่อเปลี่ยนต้นทาง/ปลายทาง/น้ำหนัก/ประเภท/มูลค่าประกัน

เลือกวิธีชำระ

วิธีผลในระบบ
💵 เงินสดpayment_status = paid (ผู้ส่งจ่ายที่ต้นทาง)
📱 QR Codepayment_status = paid
🟥 เก็บปลายทาง (COD)payment_status = pending → เก็บตอนผู้รับมารับ → collected_at_dest

กด "บันทึก + พิมพ์ใบฝากส่ง" → save → redirect ไปหน้า detail พร้อมปุ่ม:

เคล็ดลับ: PIN 6 หลักจะแสดงเด่นในใบฝากส่ง — บอกผู้ส่งให้แจ้ง PIN นี้กับผู้รับเพื่อตอนรับของ

รายการพัสดุ

เมนู: พัสดุ

Stat cards ด้านบน

Filter

Action ในแต่ละแถว

หน้ารายละเอียดพัสดุ

คลิกรหัสพัสดุ → หน้านี้แสดง:

Actions (ทำได้ตามสถานะ)

สถานะปัจจุบันปุ่มที่กดได้
received (ยังไม่มี trip)มอบหมายให้เที่ยวรถ — เลือกจาก dropdown ของเที่ยวที่ตรง route
on_manifestขึ้นรถแล้ว (mark loaded)
loadedรถออกแล้ว (mark in_transit)
in_transit / loadedถึงสาขาปลายทาง (mark arrived) → แจ้งเตือนสาขาอัตโนมัติ
arrivedส่งมอบให้ผู้รับ (ต้องกรอก PIN 6 หลัก)

สแกน QR Code

เมนู: สแกนพัสดุ — มี 3 tabs

📷 Tab 1: สแกนผ่านกล้อง

  1. กด "เริ่มสแกน" → เบราว์เซอร์ขออนุญาตกล้อง → อนุญาต
  2. หันกล้องไปที่ QR บนใบฝากส่ง/ฉลาก
  3. ระบบอ่าน QR อัตโนมัติ → load ข้อมูลพัสดุ
เบราว์เซอร์อนุญาตกล้อง: เฉพาะ HTTPS หรือ localhost — ถ้าใช้ http://192.168.x.x จะใช้กล้องไม่ได้ ต้องตั้ง HTTPS

🖼️ Tab 2: สแกนจากรูปภาพ

⌨️ Tab 3: กรอกรหัสด้วยมือ

กรอก PR260517XXXXXX → กดค้นหา

หลังสแกนเจอแล้วทำอะไรได้?

ใบสรุปส่งของให้คนรถ

เมนู: ใบสรุปส่งของ

  1. เลือกวันที่ที่ต้องการดู
  2. ตารางแสดงทุกเที่ยวในวันนั้นพร้อม:
    • รหัสเที่ยว + เส้นทาง + เวลาออก
    • ทะเบียนรถ
    • จำนวนพัสดุ + น้ำหนักรวม + รายได้รวม
  3. กดปุ่ม "พิมพ์" สำหรับเที่ยวที่มีพัสดุ → เปิด manifest_print.php

ใบสรุปคนรถมีอะไร?

💡 ใบนี้สำคัญมาก: คนขับใช้ตรวจสอบของเมื่อรับ + ส่งมอบ + ใช้เป็นหลักฐานเก็บ COD ที่ปลายทาง

สถานะพัสดุทั้ง 8 แบบ

สถานะเกิดเมื่อไหร่
received รับแล้วหลังบันทึกพัสดุใหม่
on_manifest อยู่ในใบสรุปรถหลังมอบหมายให้ trip
loaded ขึ้นรถแล้วกดปุ่ม "ขึ้นรถแล้ว"
in_transit อยู่ระหว่างขนส่งกดปุ่ม "รถออกแล้ว"
arrived ถึงสาขาปลายทางสแกนเข้าสาขาที่ปลายทาง
delivered ส่งมอบแล้วผู้รับมารับด้วย PIN ที่ถูก
returned ตีกลับ(manual โดย admin)
lost สูญหาย(manual โดย admin)

การคำนวณราคา

$base       = max(min_price, distance × baht_per_km)
$weight     = max(0, weight − free_kg) × baht_per_kg
$type_mult  = doc 0.8× | parcel 1× | fragile 1.3× | oversized 1.5×
$surcharge  = ($base + $weight) × ($type_mult − 1)
$insurance  = max(10, declared_value × 0.01)
$total      = round(($base + $weight + max(0,$surcharge) + $insurance) / 5) × 5

ค่า settings (แก้ได้)

Setting keyDefaultความหมาย
parcel_base_per_km0.50บาท/กม.
parcel_min_price50ราคาขั้นต่ำ
parcel_weight_free_kg1น้ำหนักฟรี
parcel_weight_per_kg8บาท/กก. ส่วนเกิน
parcel_insurance_rate0.01อัตราประกัน (1% = 0.01)