Skip to main content

การตรวจสอบข้อมูลบันทึกเที่ยวรถ

หน้าจอข้อมูลบันทึกเที่ยวรถ

ภาพ: หน้ารายการข้อมูลบันทึกเที่ยวรถ

เมนู ข้อมูลบันทึกเที่ยวรถ คือหน้าตรวจงานจริงหลังจากมีการสร้างแผนเที่ยวใน Trip Record หรือหลังจากพนักงานขับรถบันทึกข้อมูลภาคสนามแล้ว

หน้าจอนี้ใช้สำหรับ:

  • ตรวจความครบถ้วนของข้อมูลเที่ยวรถ
  • แก้ไขรายการที่ยังไม่ถูกอนุมัติ
  • อนุมัติรายการเพื่อให้ข้อมูลไหลไปคำนวณรายได้และวางบิล
  • export รายการที่ค้นหาออกเป็น Excel

หน้านี้ต่างจาก Trip Record อย่างไร​

  • Trip Record เน้นการวางแผนและจัดตารางเที่ยว
  • Trip History เน้นการตรวจผลการปฏิบัติงานจริงและสถานะอนุมัติ

ทั้งสองหน้าใช้ข้อมูลชุดเดียวกันเป็นหลัก แต่ต่างกันที่มุมมองและ action ที่ผู้ใช้ทำได้

ตัวกรองบนหน้าจอ​

จาก schema และ query จริงของหน้า ระบบรองรับตัวกรองดังนี้

  • ลูกค้า
    • เป็นตัวกรองหลัก
    • ถ้าไม่เลือกลูกค้า ระบบจะยังไม่ query list
  • สัญญา
    • เป็น optional
    • ใช้แคบผลลัพธ์ให้อยู่เฉพาะสัญญาที่ต้องการ
  • วันที่ทำรายการ
    • เป็น optional
    • ใช้เจาะรายการของวันปฏิบัติงาน
  • สถานะอนุมัติ
    • เลือกได้ระหว่าง อนุมัติ และ รออนุมัติ

ระบบดึงข้อมูลอย่างไร​

เมื่อกดค้นหา หน้า Trip History จะส่ง query ไปที่ GET /trip-records โดยใช้ parameter หลักดังนี้

  • customerId
  • contractId
  • selectedDate
  • isApproved
  • page
  • pageSize

จุดนี้สำคัญเพราะหมายความว่า Trip History ไม่ได้มีฐานข้อมูลแยกจาก Trip Record แต่เป็นการเปิดดูข้อมูล trip-records ในมุมของการตรวจสอบย้อนหลัง

ตารางรายการแสดงอะไรบ้าง​

จากคอลัมน์จริงใน TripHistoryTable ผู้ใช้งานจะเห็นข้อมูลสำคัญ เช่น

  • ชื่อสัญญา
  • สายรถ
  • เวลาและประเภทเที่ยว IN / OUT
  • สถานะ Shift / Office
  • รหัสรถ
  • ชื่อพนักงานขับรถ
  • เลขไมล์เริ่มต้นและสิ้นสุด
  • วันที่เวลาเริ่มต้นและสิ้นสุดการเดินรถ
  • จำนวนผู้โดยสาร
  • สถานะอนุมัติ

ถ้ารายการยังไม่อนุมัติ ระบบจะแสดงปุ่ม ดู, แก้ไข, และ ลบ แต่ถ้ารายการอนุมัติแล้ว ระบบจะเหลือ action แค่ ดู

การอนุมัติรายการ​

หน้า list รองรับการอนุมัติหลายรายการพร้อมกัน โดยมีเงื่อนไขจากโค้ดจริงดังนี้

  1. ต้องมี permission สำหรับอนุมัติ
  2. ต้องเลือกรายการที่ ยังไม่อนุมัติ
  3. ทุกรายการที่เลือกต้องมีทั้ง odometerStart และ odometerEnd

ถ้ารายการใดไม่มีเลขไมล์ต้นหรือปลาย ระบบจะ block ทันที และแจ้งข้อความว่าไม่สามารถอนุมัติได้

เมื่อผ่านเงื่อนไขแล้ว ระบบจะยิง PATCH /trip-records/approve พร้อม array ของ ids

การแก้ไขและการลบ​

จากตารางจริง

  • รายการที่ ยังไม่อนุมัติ
    • แก้ไขได้
    • ลบได้
  • รายการที่ อนุมัติแล้ว
    • ดูรายละเอียดได้อย่างเดียว

ดังนั้นถ้าฝ่ายปฏิบัติการต้องแก้ข้อมูลภายหลัง ควรทำก่อนกดอนุมัติ หรือมี process ชัดเจนสำหรับย้อนแก้ไขที่ backend

การ Export Excel​

ปุ่ม Export Excel อยู่ด้านบนของหน้าและใช้ผลการค้นหาปัจจุบันเป็นฐาน

endpoint ที่ใช้จริงคือ GET /trip-records/export

ระบบจะส่ง filter ชุดเดียวกับหน้าจอ เช่น

  • customerId
  • contractId
  • selectedDate
  • isApproved
  • page
  • pageSize

ในโค้ดหน้า list ตั้งค่า export เป็น page=1 และ pageSize=1000 ดังนั้น export จะพยายามดึงข้อมูลกว้างกว่าที่แสดงอยู่ใน table หน้าแรก

วิธีใช้งานที่แนะนำ​

  1. เลือก ลูกค้า
  2. ถ้าต้องการ ให้เลือก สัญญา, วันที่ทำรายการ, และ สถานะอนุมัติ
  3. กดค้นหา
  4. ตรวจรายการที่ต้องการอนุมัติ โดยดูเลขไมล์ต้นและปลายก่อนเสมอ
  5. ถ้าข้อมูลยังผิด ให้แก้ไขจาก action ในแถว
  6. เมื่อข้อมูลครบแล้วค่อยกด อนุมัติ
  7. ถ้าต้องส่งต่อฝ่ายอื่น ให้ใช้ Export Excel

จุดที่ต้องระวัง​

warning
  • ถ้าไม่เลือกลูกค้า ระบบจะไม่แสดงข้อมูล
  • รายการที่อนุมัติแล้วไม่สามารถแก้ไขจากหน้า list ได้
  • การอนุมัติจะไม่ผ่านถ้ายังไม่มี เลขไมล์เริ่มต้น หรือ เลขไมล์สิ้นสุด
  • ข้อมูลที่อนุมัติแล้วจะถูกใช้ต่อในรายได้นักขับและเอกสารการเงิน

หน้านี้เชื่อมกับอะไรบ้าง​

อ้างอิงโค้ด​

  • atp30-tos-frontend/src/views/pages/trip-history/index.tsx
  • atp30-tos-frontend/src/views/pages/trip-history/TripHistoryTable.tsx
  • atp30-tos-frontend/src/hooks/useTripHistory.ts
  • atp30-tos-frontend/src/api/trip-history.ts
  • atp30-tos-frontend/src/types/triphistory.ts