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

🎫 การจัดการจอง

ระบบจองตั๋วฝั่งหลังบ้าน — จองให้ลูกค้า ดูการจอง ยืนยันชำระเงิน ยกเลิก พิมพ์ตั๋ว

หน้าแดชบอร์ด

เป็นหน้าแรกหลัง login — แสดงสถิติของวันนี้และสิ่งที่ต้องจัดการ:

การ์ดความหมาย
🔵 เที่ยวรถวันนี้จำนวนเที่ยวที่ออกในวันนี้
🟢 การจองวันนี้จำนวนการจองที่สร้างในวันนี้
🟡 ยอดขายวันนี้รายได้รวม (เฉพาะที่ payment_status = paid)
🔴 รอชำระเงินจำนวนการจองที่ยังไม่ชำระ (ทุกช่วงเวลา)

ด้านล่างแบ่งเป็น 2 ส่วน:

หน้ารายการการจอง

เมนู: การจอง

ฟังก์ชั่นในหน้า

คอลัมน์ในตาราง

คอลัมน์ข้อมูล
รหัสจองBK + YYYYMMDD + 5 chars (เช่น BK20260518A1B2C) — คลิกเข้าดูรายละเอียด
ลูกค้าชื่อ + เบอร์โทร
เที่ยวรหัสเที่ยวรถ
เส้นทางต้นทาง → ปลายทาง (ช่วงที่ลูกค้านั่ง)
วันเดินทางวันที่ + เวลาออก
ที่นั่งจำนวนที่นั่งที่จอง
ยอดราคารวม
สถานะbadge: รอชำระ / ชำระแล้ว / ยกเลิก / คืนเงิน
จัดการดูรายละเอียด / พิมพ์ตั๋ว

รายละเอียดการจอง

คลิกรหัสจองจากตาราง → เข้าหน้า booking_view.php

ฝั่งซ้าย: ข้อมูลการเดินทาง

ฝั่งขวา: ลูกค้า + ชำระเงิน + สัมภาระ

ยืนยันการรับชำระเงิน

เฉพาะรายการที่ รอชำระ — มีฟอร์มด้านขวา:

  1. เลือกช่องทาง: QR Code / เงินสด / โอนธนาคาร
  2. ใส่เลขอ้างอิง (ถ้ามี)
  3. กด "ยืนยันชำระเงิน" → สถานะเป็น paid

ยกเลิกการจอง

กดปุ่มแดง "ยกเลิกการจอง" → confirm

  • เปลี่ยนสถานะเป็น cancelled
  • คืนที่นั่งให้เที่ยวรถอัตโนมัติ (available_seats + N)
  • ลบ booking_seats records

ลงทะเบียนสัมภาระ

กด "ลงทะเบียนสัมภาระ" → ไป luggage.php?booking_id=...

  • กรอกชื่อเจ้าของ น้ำหนัก คำอธิบาย
  • บันทึก → สร้าง LG code + พิมพ์ใบปะติด

พิมพ์เอกสาร

ปุ่มมุมขวาบน:

  • 🎫 พิมพ์ตั๋ว — เปิด ticket.php
  • 🛍️ ใบปะติด — เปิด luggage_tag.php

จองตั๋วใหม่ (Admin Booking)

เมนู: การจอง → + จองตั๋วใหม่ หรือคลิก "+ จองตั๋วใหม่" บนหน้ารายการจอง

หน้าจะแบ่งเป็น 4 step มี step indicator ด้านบน — แต่ละ step แสดงต่อกันในหน้าเดียว

Step 1: ค้นหา

Step 2: เปรียบเทียบเที่ยวรถ

ตารางแสดงทุกเที่ยวที่ผ่านเส้นทางนี้ พร้อมข้อมูลครบ:

คอลัมน์อธิบาย
เที่ยวรหัสเที่ยว + รหัสเส้นทาง + ผ่าน (ถ้าปลายทางอยู่กลางทาง)
เส้นทาง/รถชื่อเส้นทาง · ทะเบียน · ประเภทรถ · พนักงานขับ
ขึ้นเวลารถจะมาถึงสถานีต้นทาง (departure_time + arrival_offset)
ใช้เวลาระยะเวลาเดินทาง + จำนวนจุดจอดระหว่างทาง
ลงเวลารถจะถึงสถานีปลายทางของลูกค้า
ระยะกิโลเมตรที่ลูกค้านั่งจริง
ที่ว่างbadge เขียวถ้าพอ / แดงถ้าเต็ม
ราคาคำนวณตามระยะ × ราคา/กม. + ขั้นต่ำ
จัดการปุ่ม "เลือก"
Badge "ผ่าน" คืออะไร?
เมื่อเที่ยวรถนั้นไม่ใช่รถ direct (ต้นทาง→ปลายทาง = ของลูกค้าเปะ) แต่ผ่านสาขาของลูกค้า ระบบจะติด badge "ผ่าน" สีฟ้าให้พนักงานเห็นว่า "รถสายนี้ผ่านจุดที่ลูกค้าจะลงระหว่างทาง"

Step 3: เลือกที่นั่ง

Step 4: ข้อมูลผู้โดยสาร + ชำระ

วิธีชำระผลลัพธ์ในระบบ
เงินสดpayment_status = paid, booking_status = confirmed
QR Code PromptPaypaid + confirmed (ถือว่าเก็บที่เคาน์เตอร์แล้ว)
โอนธนาคารpaid + confirmed + payment_ref
รอชำระภายหลังpayment_status = pending, booking_status = reserved

กด "ยืนยันการจอง" → save + redirect ไป booking_view.php เพื่อพิมพ์ตั๋วต่อ

จัดการเที่ยวรถ

เมนู: เที่ยวรถ

ดูรายการ + กรองวันที่

สถานะเที่ยวรถ

สถานะความหมาย
scheduledกำหนดการ — ยังไม่ออก
boardingกำลังขึ้นรถ
departedรถออกแล้ว
arrivedถึงปลายทาง
cancelledยกเลิก

เพิ่ม/แก้เที่ยวรถ

  1. กด "+ เพิ่มเที่ยว"
  2. เลือก เส้นทาง (ที่สร้างไว้แล้ว)
  3. เลือก รถโดยสาร (เฉพาะที่ active)
  4. กรอก วันที่ออก เวลาออก เวลาถึง (ถ้ามี)
  5. กรอกชื่อ + เบอร์พนักงานขับ
  6. เลือกสถานะ (ปกติ scheduled)
  7. บันทึก — ระบบจะตั้ง available_seats = total_seats ของรถ
เตือน: เปิดเที่ยวให้ลูกค้าจองได้ทันทีหลังบันทึก — ไม่ต้อง publish เพิ่ม

ผังที่นั่งของเที่ยว

คลิก 🔍 ไอคอน grid (สีฟ้า) บนแถวของเที่ยวรถในหน้า trips.php → เข้าหน้า trip_seats.php

ใช้สำหรับ: