Skip to main content

การดูและบันทึกเที่ยวรถ

ในหน้านี้ท่านจะเห็นรายการงานที่ได้รับมอบหมายทั้งหมดในแต่ละวัน รวมถึงสถานะและเครื่องมือในการกรองข้อมูล

ส่วนประกอบของรายการเที่ยวรถ (Trip Item)​

ในแต่ละแถวหรือบัตรงาน จะประกอบด้วยข้อมูลสำคัญดังนี้:

  • เวลาและประเภท: รอบเวลาเดินรถ เช่น 06:00 (In) หรือ 17:30 (Out)
  • ข้อมูลเส้นทาง: ชื่อสายรถที่ท่านต้องวิ่ง
  • ชื่อลูกค้า: บริษัทผู้ว่าจ้างที่ท่านต้องไปรับ-ส่งผู้โดยสาร
  • สถานะ: ระบุขั้นตอนปัจจุบัน (เช่น ยังไม่ถึงเวลา, รอบันทึก, เสร็จสิ้น, อนุมัติแล้ว)

การดูและกรองตารางเที่ยวรถตามวัน​

ท่านสามารถดูงานของวันอื่นๆ ได้โดยใช้ ตัวเลือกวันที่ (Date Picker) ที่ส่วนบนของหน้าจอ:

  • วันนี้: แสดงงานที่ต้องปฏิบัติในปัจจุบัน
  • พรุ่งนี้: ดูแผนงานล่วงหน้า 1 วัน
  • เมื่อวานนี้: ตรวจสอบงานที่ผ่านมาแล้ว

ค่าเริ่มต้นของหน้าเป็น วันนี้ และระบบจะยิง GET /driver/trip-record?selectedDate=YYYY-MM-DD ตามวันที่ที่เลือกจริงทุกครั้ง ไม่ได้ใช้ค่าช่วงเวลาแบบคร่าว ๆ

ถ้าเลื่อนหน้าลงไปสุด ระบบจะโหลดรายการเพิ่มแบบแบ่งหน้าให้อัตโนมัติ แต่จะเริ่มโหลดเพิ่มก็ต่อเมื่อมีการ scroll จริงแล้ว เพื่อไม่ให้หน้าแรกยิง query ซ้ำโดยไม่จำเป็น

การบันทึกเที่ยวรถ (Trip Record)​

เมื่อท่านต้องเริ่มงานหรือจบงานในแต่ละเที่ยว ให้ปฏิบัติดังนี้:

การเริ่มงาน (Start Trip)​

  1. เลือกเที่ยวรถที่มีสถานะ "รอบันทึก" แล้วกดปุ่ม "เริ่ม"
  2. ถ่ายรูปมาตรวัดระยะทาง (Odometer) เริ่มต้นให้ชัดเจน
  3. กรอกตัวเลขเลขไมล์เริ่มต้นลงในระบบ แล้วกด "ถัดไป" หรือ "บันทึก"

การจบงาน (End Trip)​

  1. เมื่อถึงจุดหมาย ให้กดปุ่ม "ดำเนินการต่อ" ในเที่ยวรถเดิม
  2. ถ่ายรูปมาตรวัดระยะทางเมื่อสิ้นสุดงาน
  3. กรอกตัวเลขเลขไมล์สิ้นสุด และระบุ จำนวนผู้โดยสาร (Passenger Amount)
  4. ตรวจสอบความถูกต้องแล้วกด "ส่งข้อมูล"

สิ่งที่ฟอร์มบังคับตรวจจากโค้ดจริง​

เมื่อเปิดฟอร์มบันทึกหรือแก้ไขเที่ยวรถ ระบบตรวจข้อมูลอย่างน้อยดังนี้:

  • ต้องเลือกรถ (รหัสรถ)
  • ต้องมี วันที่และเวลาเริ่มต้น
  • ต้องมี วันที่และเวลาเสร็จสิ้น
  • เวลาเริ่มต้น ต้องน้อยกว่า เวลาสิ้นสุด
  • ต้องกรอก เลขไมล์เริ่มต้น และ เลขไมล์สิ้นสุด
  • เลขไมล์เริ่มต้น ต้องน้อยกว่า เลขไมล์สิ้นสุด
  • ต้องกรอก จำนวนผู้โดยสาร

นอกจากนี้ เมื่อเลือก รหัสรถ ระบบจะเติม ประเภทรถ ให้ตามข้อมูล master ที่ผูกกับรถคันนั้นทันที

Date/Time Picker บนมือถือ​

ในหน้าจอบันทึกเที่ยวรถแบบ mobile ระบบไม่ได้ใช้ native date input ตรง ๆ แต่เปิดเป็น Bottom Sheet ที่มีทั้งปฏิทินและตัวเลือกเวลา

สิ่งที่ทำได้จากหน้าจอนี้:

  • เลือกวันจากปฏิทิน
  • เลือกชั่วโมงและนาทีแบบ 24 ชั่วโมง
  • กดปุ่มลัด วันนี้ เพื่อกระโดดกลับมาวันและเวลาปัจจุบันอย่างรวดเร็ว

พฤติกรรมนี้ช่วยให้กรอกเวลาเริ่ม/จบงานได้สม่ำเสมอกว่าเดิม โดยเฉพาะบนมือถือ

หลังจากกดบันทึกจะเกิดอะไรขึ้น​

  • ถ้ากด บันทึกร่าง ระบบจะส่ง isDraft=true
  • ถ้ากด บันทึกข้อมูล ระบบจะส่ง isDraft=false
  • หลังบันทึกสำเร็จ query ของหน้า detail และรายการเที่ยวรถหน้า Home จะถูก refresh ตามข้อมูลล่าสุด

ผลคือเมื่อกลับไปหน้า Home หรือเปิดดูรายการเดิมอีกครั้ง ผู้ใช้ควรเห็นค่าที่เพิ่งบันทึกไว้ทันที โดยไม่ต้องปิดแอปหรือ reload เอง

อ้างอิงโค้ดล่าสุด​

  • /Users/chanchaitasujai/Project-ATP30/atp30-tos-driver/src/views/home/index.tsx
  • /Users/chanchaitasujai/Project-ATP30/atp30-tos-driver/src/hooks/query/useTripRecord.ts
  • /Users/chanchaitasujai/Project-ATP30/atp30-tos-driver/src/views/trip-record/edit/index.tsx
  • /Users/chanchaitasujai/Project-ATP30/atp30-tos-driver/src/hooks/query/useTripRecordMutation.ts
  • /Users/chanchaitasujai/Project-ATP30/atp30-tos-driver/src/components/DateTimeField.tsx

:::warning ข้อควรระวัง การบันทึกเลขไมล์และรูปถ่ายที่ชัดเจน มีผลโดยตรงต่อการคำนวณคะแนนประสิทธิภาพ (X-Ratio) และความถูกต้องของรายได้ของท่าน :::