Skip to main content

ประวัติการปรับปรุง (Release Notes)

หน้านี้คือรายงานการเปลี่ยนแปลงของระบบ ATP30 ที่สรุปอย่างเป็นทางการจากคลังข้อมูลโค้ด (Source Code) ของทั้ง 3 ส่วนหลัก ได้แก่:

  • Admin / Backoffice (Frontend)
  • Driver Application (Mobile Web)
  • Core API (Backend Logic & Database)

[1.5.1] - 2026-04-23​

การปรับปรุงความถูกต้องของเวลาตารางรอบรถและเสถียรภาพของตารางข้อมูล (Wall-Clock Time Accuracy & Table Stability)

Multi-Repo Interaction​

  • Route Round & Schedule Time Accuracy:
    • Core API: แก้ logic การจัดการเวลา route round ให้ยึดรูปแบบ wall-clock time สำหรับเวลาตารางเดินรถ เพื่อป้องกันเวลารอบรถคลาดเคลื่อนจากการแปลง timezone ระหว่าง backend และหน้าจอผู้ใช้ พร้อมเพิ่ม test coverage ใน driver.service, route-rounds.service, และ trip-records-vehicle.service (Commit: 40539f3)
    • Frontend: ปรับการ format เวลาในหน้า Admin ให้แสดงเวลาตามตารางจริงในหน้าสัญญา, Trip History, Trip Record และ modal ที่เกี่ยวข้อง โดยแยกกรณีเวลาตารางออกจากการแสดงวันที่ทั่วไป (Commit: f70473b0)
    • Driver: ปรับการแสดงเวลาตารางในหน้า Driver เช่น Home, Fuel Record schedule, Trip Record detail และ Edit ให้ใช้ wall-clock time ตรงกับเวลาที่กำหนดในตารางเดินรถ (Commit: db73e72)
  • Time Handling Guard & Regression Tests:
    • Frontend/Driver: เพิ่ม time policy guard สำหรับตรวจ code pattern ที่เสี่ยงทำให้เวลาคลาดเคลื่อน เพื่อป้องกันการใช้ date/time utility ผิดประเภทในอนาคต (Commits: fb08500a, 084cb55)
    • Core API: เพิ่ม regression tests ด้าน time handling สำหรับ driver, route rounds และ trip records เพื่อยืนยันว่า logic เวลาไม่ถอยกลับไปผิดพลาดซ้ำ (Commit: 151c6fd)
  • Admin Table & User Detail UI:
    • Frontend: แก้พฤติกรรม DataTable แบบ sticky column ให้ใช้งานเสถียรขึ้น และปรับ spacing หน้า User Detail ให้อ่านง่ายและเป็นระเบียบกว่าเดิม (Commit: 8fe91ecd)
  • Version Updates:
    • Frontend: อัปเดต version เป็น 1.0.12 (Commit: 682015f6)
    • Driver: อัปเดต version เป็น 1.6.4 (Commit: ffc9a56)
    • Core API: อัปเดต version เป็น 0.0.2 (Commit: 9e61c7f)

[1.5.0] - 2026-04-22​

การกำหนดมาตรฐานเวลา Asia/Bangkok ทั่วทั้งระบบ, การเพิ่มประสิทธิภาพ Dashboard และการจัดการตารางข้อมูลแบบ Sticky (Time Standardization, Dashboard Accuracy & Enhanced Data Tables)

Multi-Repo Interaction​

  • Timezone Standardization (Asia/Bangkok):
    • Core API: ปรับปรุงระบบจัดการเวลาทั้งหมดให้ใช้มาตรฐาน Asia/Bangkok ผ่าน datetime.util กลาง โดยเปลี่ยนจากการใช้ dayjs แบบอิสระมาเป็นการใช้ helper functions ที่ควบคุม timezone อย่างเข้มงวด เพื่อความแม่นยำของข้อมูลรายได้และรายงาน (Commits: b58ba0c, 5bba7f2)
    • Frontend: เปลี่ยนมาใช้ datetime.util เพื่อแสดงผลและส่งข้อมูลวันที่ในรูปแบบ Bangkok Time พร้อมเพิ่มการเรียงลำดับคอลัมน์ใน TripTable ตามลำดับเวลาจริง (Commits: d3192f66, 59530cf9)
    • Driver: อัปเดตการจัดการเวลาในหน้า Mobile ให้ตรงกับมาตรฐาน UTC/Bangkok เพื่อให้การบันทึกเที่ยวรถถูกต้องตามเวลาจริง (Commits: 6432652, 328cdf1)
  • Dashboard & Reporting Accuracy:
    • Core API: ย้ายการจัดการวันที่ใน Dashboard ไปใช้ Bangkok-based date-only objects ทำให้การกรองข้อมูลรายเดือนและรายปีมีความแม่นยำ 100% ไม่คลาดเคลื่อนจากปัญหา timezone (Commit: 2c81b15)
    • Core API: ปรับปรุงการดึงข้อมูลวันหยุด (Holidays) ให้กรองเฉพาะที่เกี่ยวข้องกับลูกค้า หรือเป็นวันหยุดส่วนกลาง เพื่อความถูกต้องในการคำนวณรายได้ (Commit: 1a9f7d6)
  • Table UI & Component Enhancements:
    • Frontend: อัปเกรด DataTable ให้รองรับ Sticky Columns (คอลัมน์ตรึงกับที่) ช่วยให้การดูข้อมูลในตารางขนาดใหญ่บนหน้าจอขนาดเล็กสะดวกขึ้น และมาตรฐานการตั้งค่าตารางให้สม่ำเสมอทั่วแอป (Commit: 2b13e510)
    • Frontend: เพิ่มระบบลบวันหยุดแบบยกปี (Holiday deletion by year) ในหน้าตั้งค่า และเพิ่มตัวกรองยานพาหนะในหน้า Refuel เพื่อการจัดการที่รวดเร็วขึ้น (Commit: ab52e34c)
  • Azure Storage & Infrastructure:
    • Core API: พัฒนา Azure Storage client ใหม่ให้รองรับทั้ง Managed Identity (Service-to-Service), Connection Strings และ Account Keys เพิ่มความยืดหยุ่นในการเชื่อมต่อ cloud storage (Commit: a0eaf81)
    • Frontend/Driver: ปิดการทำงานของระบบแปลภาษาอัตโนมัติในเบราว์เซอร์ และระบุภาษาหลักเป็นภาษาไทย เพื่อป้องกัน UI เพี้ยนจากการแปลที่ผิดพลาด (Commits: 3bc43bb0, f6b20e2)
  • Business Logic & UX:
    • Frontend/Core API: ปรับปรุงระบบ Vehicle ให้พนักงานขับรถ (Driver) เป็นฟิลด์เลือกได้ (Optional) เพื่อรองรับกรณีรถว่างหรือเปลี่ยนคนขับกะทันหัน และเพิ่มระบบการอัปเดตสัญญาร่าง (Draft Contract Updates) (Commits: 424a8314, 5bba7f2)
    • Driver: เพิ่มระบบจัดรูปแบบเบอร์โทรศัพท์ (Phone number formatting) และปรับให้ระบบทำการโหลดข้อมูลใหม่ (Refetch) เมื่อมีการเข้าสู่ระบบซ้ำ เพื่อความเสถียรของ session (Commits: 72898b6, 180f24c)

[1.4.4] - 2026-04-20​

การปรับปรุง UI ข้อมูลการเรียกเก็บเงิน, ความแม่นยำคำนวณราคาน้ำมัน และเพิ่ม Performance Testing (Billing UI, Fuel Accuracy & QA Framework)

Multi-Repo Interaction​

  • Contract Service Restructure & Billing Logic:
    • Backend: แยก contracts.service.ts ขนาดใหญ่ออกเป็นโมดูลย่อยตาม contract group (A–F) ประกอบด้วย contracts-billing-a/b/c/d/e/f.service.ts, contracts-validation.service.ts, contracts-write.service.ts, และ contracts-fuel.service.ts เพื่อให้ maintain และ test ได้ง่ายขึ้น พร้อมเพิ่ม validation logic รองรับทุก group อย่างครบถ้วน (Commit: d85aea5)
    • Backend: แก้ bug การ trigger billing statements calculation โดยเพิ่มรับ contractId เพื่อให้สามารถ trigger คำนวณ billing สำหรับสัญญาที่ระบุได้โดยตรง ไม่ต้องรันทั้งหมด (Commit: c39c365)
  • Trip Record Audit Logs & WorkArea:
    • Backend: ปรับปรุง Trip Record audit logs ให้แสดง remark อย่างละเอียด พร้อมชื่อ entity จริง (เช่น ชื่อรถ, สาย, ผู้ขับ) แทนที่ ID ดิบ เพื่อให้ตรวจสอบย้อนหลังได้ชัดเจนขึ้น และแก้ path ของ vehicle logbook endpoint ให้ถูกต้อง (Commit: c6007b0)
    • Backend: เพิ่มการรองรับการเรียงลำดับ workArea (workArea sorting) และปรับรูปแบบข้อความ remark ใน trip log ให้อ่านง่ายและมีข้อมูลบริบทมากขึ้น (Commit: 17396d3)
  • Fuel Price Calculation Accuracy:
    • Backend: ปรับ logic คำนวณราคาน้ำมันใน ContractsFuelService ให้รองรับช่วงวันที่ที่ข้ามเดือน เช่น สัญญาที่มีช่วง billing period คร่อมเดือน จะได้ราคาน้ำมันที่ถูกต้องตามช่วงวันที่จริง พร้อมปรับปรุง error message ให้ชัดเจนขึ้น (Commit: 780607e)
    • Backend: เพิ่ม fuelType เข้า vehicle query ของ user เพื่อให้ฝั่ง Frontend แสดงตารางราคาน้ำมันได้ถูก type ทันที และปรับ query ลำดับการดึงข้อมูลเที่ยวรถว่างเปล่า (empty trips) ให้เรียงตามวันที่จริง (Commits: 131b9a6, 39855cf)
    • Frontend: อัปเดต contract type definitions ให้ตรงกับ backend schema ที่เปลี่ยนไป รองรับ fuelType และ field ใหม่ที่ return จาก API (Commit: 7409d812)
  • Billing History & Invoice UI:
    • Frontend: เพิ่มหน้า ดูรายละเอียด Billing History (ViewBillingHistoryDetail) พร้อม API integration และ routing ทำให้ผู้ใช้ดูรายละเอียดการวางบิลย้อนหลังได้โดยตรงจากหน้ารายการ (Commit: 80473ddb)
    • Frontend: ปรับ UI ตารางใบแจ้งหนี้ (Billing Table) ให้ใช้ theme tokens และเพิ่ม auto-show logic สำหรับตารางราคาน้ำมัน (Fuel Price Table) ในโหมด Edit ให้แสดงอัตโนมัติเมื่อมีข้อมูล (Commit: 695dccc4)
    • Frontend: มาตรฐาน numeric display ทั่วทั้ง contract view components โดยใช้ formatShowNumber utility ให้ตัวเลขแสดงผลสม่ำเสมอ (Commit: 4b60ed71)
  • Table Sorting & Trip History:
    • Frontend: เพิ่มฟีเจอร์เรียงลำดับ Column (Column Sorting) ในหน้า รายได้คนขับ, ใบแจ้งหนี้สัญญา และ การเรียกเก็บเงินลูกค้า ช่วยให้ค้นหาและดูข้อมูลได้สะดวกขึ้น (Commit: 51d806c4)
    • Frontend: ย้าย state management ของหน้า Trip History และหน้าอื่น ๆ จาก URL search parameters เป็น location state เพื่อให้ UX ราบรื่นและการ navigate ไม่กระทบ URL ที่แชร์ได้ (Commit: c3943e30)
    • Frontend: อัปเดต Trip History search form schema, validation และ error handling ให้รองรับ customer code ที่เป็น optional ได้อย่างถูกต้อง (Commits: a6ac05f1, 98bd0884)
  • Form & UX Improvements:
    • Frontend: เพิ่มการแสดง validation error message ใน custom form components ทำให้ผู้ใช้เห็น error กำกับ field โดยตรงแทนที่จะต้องอ่าน generic error (Commit: e740410d)
    • Frontend: แก้ bug React hooks ใน A2Form และ InitTripRoundPrice ที่เรียก hook ผิดลำดับ ทำให้ฟอร์มกลุ่ม A2 และการตั้งราคาเที่ยวทำงานถูกต้อง (Commit: fd4016c3)
    • Frontend: เพิ่ม global payload trimming สำหรับ axios requests เพื่อตัด whitespace ออกจากข้อมูลก่อนส่ง API ลด error ที่เกิดจากการกรอกช่องว่างโดยไม่ตั้งใจ (Commit: 640f0a47)
  • Driver Application:
    • Driver: เพิ่ม utility จัดรูปแบบเบอร์โทรศัพท์ (phone number formatting) และนำไปแสดงใน driver profile ให้อ่านเบอร์ได้ง่ายขึ้น (Commit: 72898b6)
    • Driver: ซ่อนส่วน Refuel Schedule Display เมื่อไม่มีตารางเวลาน้ำมัน เพื่อลด UI ที่ไม่มีข้อมูลแสดงให้ดูสะอาดขึ้น (Commit: 034d2cf)
    • Driver: ปรับให้ข้อมูลคนขับ (Driver data) ถูก refetch อัตโนมัติเมื่อ login count เปลี่ยน ทำให้สถานะการ login/logout ของคนขับซิงก์กับข้อมูลล่าสุดโดยไม่ต้องรีเฟรชเอง (Commit: 180f24c)
  • QA & Performance Testing Framework:
    • Backend/QA: เพิ่ม k6 Performance Testing Framework ครบชุด ประกอบด้วย load profiles 4 แบบ (smoke, smoke50, sla, capacity), ระบบ report อัตโนมัติเป็น Markdown/HTML, และ dashboard รายละเอียดจาก k6 built-in สำหรับวัด SLA ตามสัญญา (≤ 30 concurrent users, p95 ≤ 3 วินาที) พร้อม early-abort เมื่อ threshold ล้มเพื่อประหยัดเวลา QA (Commits: a1618f5, 64c9469, acefb95, ad7e5aa, 1753ffc, e087500)

[1.4.3] - 2026-04-11​

การยกระดับการตรวจสัญญา ฟอร์มบันทึกงานภาคสนาม และความแม่นยำของรายงาน (Validation, Driver Capture & Reporting Accuracy)

Multi-Repo Interaction​

  • Contract Workflow Hardening:
    • Backend: เพิ่มการตรวจสัญญาแบบละเอียดผ่าน POST /contracts/validate โดยแยก error ตาม section จริงของฟอร์ม เช่น basic, routes, billing, fuel, passDetail, และชุดข้อมูล Full-time ต่าง ๆ พร้อมตรวจ route reference ซ้ำ/อ้างอิงผิด, วันที่เริ่ม-สิ้นสุด, billing date, fuel range coverage, และเงื่อนไขบังคับของแต่ละ group ก่อนให้ผู้ใช้ข้ามขั้นตอนหรือบันทึกจริง (Commits: 1b6bd9d, f6d38069)
    • Frontend: หน้า Create/Edit Contract รองรับ section-specific validation dialog, แยก logic map ข้อมูลสัญญาเดิมกลับเข้าฟอร์ม, เตือนก่อนออกจากหน้าถ้ายังมีข้อมูลไม่ถูกบันทึก, และเพิ่มการตรวจชื่อสายรถซ้ำกับเวลาเดินรถซ้ำใน Step 1 ตั้งแต่ฝั่ง form เพื่อกันข้อมูลผิดก่อนถึง backend (Commit: 418cf3e4)
  • Driver Trip Capture UX & Data Sync:
    • Driver: ฟอร์มบันทึกเที่ยวรถบนมือถือเพิ่มปุ่มลัด วันนี้ ใน Bottom Sheet ของ Date/Time picker, บังคับตรวจ เวลาเริ่ม < เวลาสิ้นสุด และ เลขไมล์เริ่ม < เลขไมล์สิ้นสุด, ปรับพฤติกรรม select-all ตอน focus ช่องกรอกตัวเลข/ข้อความ และทำให้รายการหน้า Home กับหน้า Detail refresh ตามข้อมูลล่าสุดหลังบันทึกหรือบันทึกร่าง (Commits: 9409938, fc6adcf, cf123cb)
    • Backend: ปรับ /driver/trip-record และ /driver/trip-record/:id ให้จัดเวลา route round แบบ UTC-safe มากขึ้น, ตอบ detail payload ในรูปแบบที่หน้า Driver ใช้ตรง ๆ, และทำให้ selected date filtering ของรายการเที่ยวรถตรงกับวันที่ที่ผู้ใช้เลือกได้เสถียรกว่าเดิม (Commit: d939d89)
  • Reporting, OT Calculation & Export Quality:
    • Backend: แยก utility กลางสำหรับคำนวณ OT ทั้งแบบ OVER_HOUR และ TIME_PERIOD, นำไปใช้ใน trip-record reporting services, เติม dateWithTargetTime ให้ path รายงานรายได้ใช้เวลาอ้างอิงตรงกัน, และเพิ่ม test สำหรับกติกาการปัดเศษ OT เพื่อให้ผลลัพธ์รายได้/รายงานตรงกับ logic สัญญามากขึ้น (Commits: 603ee6b, 2be3f92, 6f0c667)
    • Backend: เพิ่ม scripts/mockups สำหรับตรวจ export ฝั่ง billing, ปรับ style/format ของไฟล์ Excel รายงาน, และครอบการลบ-สร้าง driverIncome ใหม่ใน reporting path ด้วย transaction เพื่อลดความเสี่ยงข้อมูลรายได้หายบางส่วนหาก process ล้มระหว่างทาง (Commits: 3001915, d939d89)
  • Quality Assurance & Internal Tooling:
    • Frontend: เพิ่ม end-to-end tests สำหรับ contract flow, อัปเดต version ของ frontend เป็น 1.0.7, และเพิ่ม script สำหรับ reconnaissance หน้า login เพื่อรองรับการทดสอบอัตโนมัติ/agent workflows ในรอบถัดไป (Commits: fd5b9fda, daf6a646)

[1.4.2] - 2026-04-09​

การเพิ่มประสิทธิภาพการคัดกรองข้อมูลและความเสถียรของระบบ (Search, Sorting & Backend Stability)

Multi-Repo Interaction​

  • Trip History & Data Management:
    • Frontend: เพิ่มฟีเจอร์การเรียงลำดับ (Sorting) ตามเวลาในหน้ารายการประวัติการเดินรถ และเพิ่มระบบ Validation สำหรับ Excel Header ก่อนนำเข้าข้อมูล (Commits: f4ef817e, c6cb3199)
    • Backend: ปรับปรุงความเสถียรของระบบ Export ข้อมูล และเพิ่มการป้องกันการสร้างตารางเวลาซ้ำซ้อนใน RouteRoundsService เพื่อรักษาความถูกต้องของข้อมูล (Commit: 838e879c)
  • Driver Experience & Form Standards:
    • Driver: มาตรฐานใหม่สำหรับการกรอกข้อมูล โดยใช้ Mobile Bottom Sheet สำหรับการเลือกวันที่/เวลา และบังคับใช้รูปแบบเวลา 24 ชั่วโมงในทุกฟอร์ม (Commits: d3e120c, caae085)
  • System Stability:
    • Frontend: ปรับปรุงการตั้งค่า Vite (optimizeDeps.exclude) เพื่อจัดการปัญหา Dependency ที่ทำให้ Build พัง (Commit: 92a84e24)
    • Core API: แก้ไขข้อผิดพลาด 422 Unprocessable Entity ในระบบ Trip Export (Commit: 838e879c)

[1.4.1] - 2026-04-09​

การยกระดับการตรวจสอบสัญญา การค้นหาข้อมูล และความทนทานของระบบ (Validation, Search & Reliability)

Multi-Repo Interaction​

  • Contract Validation & Draft Safety:
    • Backend: เพิ่ม Contract Validation Endpoint สำหรับ flow สร้าง/แก้ไขสัญญา, ขยาย validation ให้รองรับสัญญากลุ่ม F, และแนบ user context พร้อม logging เข้า billing services เพื่อให้การคำนวณและตรวจสอบย้อนหลังมีร่องรอยชัดเจนขึ้น (Commits: f1aadbf, e3c162c)
    • Frontend: ผูกหน้า Create/Edit Contract เข้ากับ Contract Validation API, เพิ่ม validation เวลา route ซ้ำแบบ real-time, ป้องกัน runtime error จากการตรวจ route round, และแยก logic form เป็น hook/module ย่อยสำหรับ billing และ pass detail synchronization เพื่อให้ draft flow เสถียรและ maintain ได้ง่ายขึ้น (Commits: fbf5e335, e531768e, 9d63198b, a0823f33)
  • Trip Record, Trip History & Export Control:
    • Backend: เพิ่ม customer filtering, configurable sorting และ Excel export สำหรับ Trip Record พร้อมปรับ lookup ของ contract route ผ่าน metadata และ fallback logic รวมถึงยกระดับ styling ของ Excel template ให้พร้อมใช้งานจริงมากขึ้น (Commits: ba45297, 54fa8a3)
    • Frontend: เพิ่ม column sorting ใน Trip History, ย้าย data tables ไปใช้ server-side sorting พร้อม loading skeleton ระหว่างโหลดข้อมูลใหม่ ทำให้หน้ารายการอ่านผลลัพธ์ได้ต่อเนื่องขึ้นโดยไม่กระโดด (Commits: f4ef817e, 17d00ed1)
  • Dashboard Performance & File Upload Resilience:
    • Backend: ปรับ query ของ Dashboard และการนับเที่ยวรายสัปดาห์ในปฏิทินให้ dynamic มากขึ้น พร้อมเพิ่ม timeout controls และ retry logic ให้ blob uploads เพื่อรองรับการอัปโหลดไฟล์ในเครือข่ายไม่เสถียร (Commits: b9ee202, 0fe0195)
  • Access Control & UI Consistency:
    • Backend: เพิ่มการตรวจสอบ isActive ทั้งระดับ user และ role ใน JwtAuthGuard และอัปเดตโครงสร้าง /auth/me response เพื่อให้ Frontend รับรู้สถานะสิทธิ์ล่าสุดได้ตั้งแต่ต้นทาง (Commit: a05dd00)
    • Frontend: เปลี่ยน hardcoded colors ไปใช้ theme tokens มากขึ้น, ปรับ sync ของแท็บ refuel และ layout ของ modal/table, และทำให้ component styles ใช้มาตรฐานเดียวกันชัดเจนขึ้นในหลายหน้าจอหลัก (Commits: f9823558, 94af78a9)

[1.4.0] - 2026-04-06​

การยกระดับความเชื่อมั่นและเสถียรภาพ (System Integrity & Trust)

Multi-Repo Interaction​

  • Quality Assurance:
    • Frontend: อัปเกรดระบบทดสอบอัตโนมัติ (Playwright E2E) เพื่อครอบคลุมเส้นทางการใช้งานหลัก (Flow) ให้แม่นยำขึ้น (Commit: d96c5b02)
  • UX & Persistence:
    • Frontend: พัฒนาระบบ Filter State Persistence บน URL Query Parameters ทำให้เมื่อแอดมินแชร์ลิงก์หน้ารายการเดินรถ หรือกดปุ่มย้อนกลับของ Browser ค่าการค้นหาและตัวกรองจะไม่หายไป (Commit: 3e0522af)
    • Frontend: ปรับ Login Form ให้เริ่ม validate เมื่อกด submit แทนการตรวจระหว่างพิมพ์หรือ blur field ช่วยลด error states ที่โผล่เร็วเกินไปในหน้าเข้าสู่ระบบ (Commit: cd9d37d7)
  • Data Integrity:
    • Frontend: เพิ่มระบบ Excel Header Validation ทันทีที่เลือกไฟล์ ป้องกันการเสียเวลาอัปโหลดไฟล์ที่ผิดรูปแบบ (Commit: c6cb3199)
    • Frontend: อัปเดต Dropdown เลือกข้อมูลลูกค้าให้แสดงทั้งรหัส (Code) และชื่อ (Name) ควบคู่กันไป และ Refactor โครงสร้างตารางแสดงผลในหน้ารายการเดินรถ (Trip Record Table) (Commit: 9f53e0b2)
    • Backend: เพิ่ม customerId filter และ customer code sorting ใน vehicle endpoints พร้อมแนบ customerCode กลับมาใน customer list response ทำให้การค้นหาและ map ข้อมูลลูกค้าระหว่างหน้า Vehicle กับ dropdown ฝั่ง Frontend ตรงกันมากขึ้น (Commit: fde2d58)
    • Backend: เพิ่มระบบตรวจสอบและป้องกันข้อมูลรถและพนักงานขับรถซ้ำซ้อนภายในหน้ารายการเดินรถ (Trip Record Duplicate Validation) (Commit: 744bc55)
  • Security & API Access Control:
    • Frontend: ปรับ auth session handling ให้ล้าง token และ redirect กลับ /login ทันทีเมื่อ /auth/me ตอบ 401, เพิ่มค้นหาบัตรเติมน้ำมันใน dropdown, และปรับ validation / refresh flow ของ vehicle management กับ refuel records ให้สอดคล้องกับข้อมูลจริงมากขึ้น (Commit: 67ef5205)
    • Backend: ตั้งค่า CORS Origin Configuration ล่วงหน้าเพื่อยกระดับความปลอดภัยให้ครอบคลุมการเชื่อมต่อจาก Frontend ที่ได้รับอนุญาตเท่านั้น (Commit: 744bc55)
    • Backend: ปรับปรุงความยืดหยุ่นในการตั้งค่า Environment Variables โดยถอด Global ConfigModule Validation ออกและเพิ่ม Fallback สำหรับ JWT Access Secret เผื่อเปิดรับการ Deploy ได้ง่ายขึ้น (Commit: 29f8004)
    • Backend: กำหนดสิทธิ์การเข้าถึง Fuel Card API อย่างชัดเจน โดยอนุญาตให้พนักงานขับรถ (Driver) สามารถดูข้อมูลบัตรเชื้อเพลิงได้โดยตรงจากระบบ ในขณะที่การสร้าง/แก้ไขยังจำกัดเฉพาะเจ้าหน้าที่ (OFFICE) เท่านั้น (Commit: 09e1438)
    • Backend: อัปเกรด Global Exception Filter ให้บันทึก Request Log ทุกครั้งที่เกิด Error และกรองข้อมูลสำคัญ (password, token, secret) ออกจาก Log อัตโนมัติ เพื่อความปลอดภัยของข้อมูล (Commit: 35ff6aa)
  • Financial Calculation Fixes:
    • Backend: แก้ไขข้อผิดพลาดในสูตรคำนวณ OT (Overtime) ของสัญญา — แก้จุดบั๊กที่ใช้ตัวแปรผิดในการปัดเศษชั่วโมง OT และแก้ logic การนับรอบปกติ vs รอบ OT ที่เคยนับซ้ำกัน ส่งผลให้ตัวเลขในใบแจ้งหนี้ถูกต้องมากขึ้น (Commit: 192019a)
    • Backend: เพิ่มระบบ Billing Period Splitting (getContractBillingPeriods) สำหรับแบ่งงวดวางบิลตามวันตัดรอบของสัญญาแต่ละฉบับ รองรับกรณีเดือนที่ไม่มีวันดังกล่าวโดยอัตโนมัติ เช่น วันที่ 31 ในเดือนกุมภาพันธ์ (Commit: 192019a)
  • Billing View Accuracy:
    • Frontend: ปรับ Customer Invoice E Form ให้แยกยอดงานหลักกับยอด Standby ออกจากกันอย่างชัดเจน พร้อมคำนวณภาษีหัก ณ ที่จ่ายและยอดสุทธิของส่วน Standby ตามข้อมูลจริงในใบวางบิล (Commit: 5455e65e)
  • Driver Trip Record Auditing:
    • Backend: เพิ่มระบบ Trip Log Auditing สำหรับพนักงานขับรถ — ทุกครั้งที่มีการแก้ไขข้อมูลการเดินรถ (เลขไมล์, เวลาออก-ถึงปลายทาง) ระบบจะสร้าง Log อัตโนมัติบันทึกค่าก่อนและหลังการเปลี่ยนแปลง เพื่อความโปร่งใสของข้อมูล (Commit: 2a75c7c)
  • Income Calculation Stability:
    • Backend: ครอบ Income Recalculation ด้วย Atomic Database Transaction ทำให้การลบและสร้างข้อมูลรายได้ใหม่เกิดขึ้นพร้อมกันทั้งหมด หรือไม่เกิดเลย ป้องกันข้อมูลรายได้เสียหาย (Partial Write) กรณีระบบมีปัญหากลางคัน นอกจากนี้ลบ Query วันหยุดที่ซ้ำซ้อนออก (Commit: 91e7b32)
  • Error Handling Standardization:
    • Backend: Refactor ระบบ Error Handling และ Fuel Card Lookup Logic ให้ใช้ค่าคงที่ส่วนกลาง (Constants) แทนการฝัง String ตรงในโค้ด ทำให้บำรุงรักษาง่ายขึ้น (Commit: 9372334)
  • Driver Mobile UX:
    • Driver: ขยายผลการใช้ Mobile Bottom Sheet ให้ครอบคลุมไปถึงการเลือกวันที่และเวลา (Date/Time Picker) แทนที่ Native Input เดิม เพื่อความสม่ำเสมอของ UI (Commit: d3e120c)
    • Driver: เพิ่มฟิลด์ตรวจสอบข้อมูลยานพาหนะเข้าสู่ฟอร์ม Logbook และปรับปรุงการส่งข้อมูลคำขอ Standby (Commit: 886b91b)
    • Driver: เพิ่ม Mobile Bottom Sheet สำหรับ Dropdown การเลือกข้อมูล (FormSelect) บนหน้าจอมือถือ — แทนที่ Dropdown แบบ Desktop ที่ใช้งานยากบน Touchscreen ด้วย Bottom Sheet ที่ขึ้นมาจากด้านล่าง รองรับการค้นหาและ Infinite Scroll ในตัว (Commit: caae085)
    • Driver: แก้ไข Label การแสดงผลในหน้าเลือกยานพาหนะและบัตรเชื้อเพลิงให้แสดงข้อมูลที่ถูกต้องและเข้าใจง่ายกว่าเดิม (Commit: 32506c7)

[1.3.0] - 2026-04-03​

การเข้าถึงแบบ Mobile-First และระบบแจ้งเตือนอัปเดต (Accessibility & Lifecycle)

Multi-Repo Interaction​

  • UI Architecture:
    • Frontend: ปรับมาตราฐานความสูงปุ่มทั่วระบบเป็น 44px (Standard Touch Target Size) เพื่อให้ผู้ที่ใช้งานผ่านหน้าจอสัมผัสหรือมือถือใช้งานได้มีประสิทธิภาพสูงสุด (Commit: a830a4d6)
    • Frontend: แก้ไขปัญหา Full-height Sidebar Scroll และมีการนำเลขเวอร์ชันของแอปมาแสดงที่ Sidebar เพื่อความสะดวกในการแจ้งปัญหา (Commit: be0e86ba)
  • Lifecycle Management:
    • Frontend: ติดตั้งระบบ Update Notification Banner เพื่อแจ้งเตือนพนักงานทันทีเมื่อมีการอัปเดตระบบเวอร์ชันใหม่ ป้องกันการใช้งานโค้ดเก่าที่ค้างอยู่ในเครื่อง (Commit: a830a4d6)
  • Performance (Driver):
    • Driver: เปลี่ยนคอมโพเนนต์ FormSelect ทั้งหมดเป็น AsyncPaginate ประมวลผลและโหลดข้อมูลแบบแบ่งหน้า ช่วยลดปริมาณการใช้ Data และทำให้แอปโหลดเร็วขึ้นในพื้นที่สัญญาณอ่อน (Commit: e279c74)

[1.2.0] - 2026-04-02​

การจัดการสิทธิ์และระบบการเงินเชิงลึก (Finance & RBAC)

Multi-Repo Interaction​

  • Finance Logic:
    • Backend: พัฒนาเซอร์วิส Driver Income Calculation แยกตรรกะการคำนวณรายได้พนักงานประจำและพนักงานชั่วคราว พร้อมระบบ Export รายงานเบื้องลึก (Commit: 9620247)
    • Frontend: พัฒนาหน้าจอ Billing Manual Entry สำหรับการกรอกรายการวางบิลในกรณีพิเศษหรือกรณีที่ขู้อมูลเดินรถต้นทางมีปัญหา (Commit: bd995e87)
  • Security & Permissions:
    • Frontend: ปรับหน้าการตั้งค่า Roles & Permissions ให้มีรายละเอียดสิทธิที่ครอบคลุมฟังก์ชันการเงินและการแก้ไขข้อมูลเดินรถมากขึ้น (Commit: 42636f33)
  • UI Standardization:
    • Frontend: Refactor ครั้งใหญ่ เปลี่ยนคอมโพเนนต์ MainCard เป็น Card มาตราฐานใหม่ที่รองรับ Responsive ได้ดีกว่าเดิมทั่วทั้งระบบ (Commit: 1341c9d0)

[1.1.8] - 2026-03-29​

ความปลอดภัยและการจัดการตัวรถ (Security & Fleet Management)

Multi-Repo Interaction​

  • Auth Security:
    • Frontend: เพิ่มมาตรการรักษาความปลอดภัยโดยทำการบล็อก User ประเภท OFFICE ไม่ให้ล็อกอินผ่านระบบส่วนหน้าโดยตรง (Commit: a602978)
    • Backend: ปรับปรุงระบบ JWT Auth Validation และอัปเดต Type Definitions ของระบบ Auth ให้รัดกุมยิ่งขึ้น (Commit: 70483a7)
  • Fleet Feature:
    • Frontend: เปิดตัวหน้าสรุปการเติมน้ำมัน (Fuel Record View) และนำ useVehicle Query Hook มาใช้ในการจัดการข้อมูลรถแบบ Real-time (Commit: 105db7f)
    • Backend: แก้ไขปัญหาการบันทึกสถานะ StandbyWork ของรถบริการที่ข้อมูลอาจสูญหายขณะบันทึก (Commit: 1390cf2)

[1.1.5] - 2026-03-25​

การมอบประสบการณ์การใช้งานภาษาไทยที่สมบูรณ์ (Localization & Polish)

Multi-Repo Interaction​

  • Core UI Polish:
    • Frontend: แก้ไขปัญหา Thai Text Clipping (ข้อความภาษาไทยโดนตัดสระในบางเบราว์เซอร์) ทั่วทั้งแอปพลิเคชัน (Commit: bf8096d)
    • Frontend: ปรับปรุง Empty/Error States ให้แสดงข้อความและรูปภาพที่สื่อสารกับผู้ใช้งานได้อย่างสุภาพและเป็นกันเองยิ่งขึ้น (Commit: 507a260)
  • Error Management:
    • Backend: ทำการ Centralize Exception Handling ย้ายข้อความแจ้งเตือน Error ทั้งหมดไปไว้ในไฟล์ค่าคงที่ส่วนกลาง เพื่อความง่ายในการแปลภาษาและแก้ไขในอนาคต (Commit: 6194900)

[1.1.2] - 2026-03-15​

โครงการปรับปรุงความเร็วและโครงสร้าง (Infrastructure & Speed)

  • Performance:
    • Backend: ติดตั้งระบบ Route Round Caching เพื่อลดภาระการคิวรี่ข้อมูลซ้ำซ้อนจากฐานข้อมูลขณะเรียกดูหน้ารายการเดินรถจำนวนมาก (Commit: 72e94d8)
  • Deployment Strategy:
    • Frontend: แก้ไขกลยุทธ์การ Trigger ของ CI/CD และปรับโครงสร้าง Git Branching สำหรับการดึงข้อมูลอัตโนมัติ (Commit: 8eb66f6)

[1.1.0] - 2026-03-04​

การเปิดรับสัญญาประเภทพิเศษครั้งแรก (Alpha Launch: D, E, F Contracts)

Multi-Repo Interaction​

  • Contract Expansion:
    • Backend: เริ่มต้นระบบรองรับสัญญาประเภท Standby D, E, F และระบบจัดการราคาน้ำมัน (Fuel Price Management) (Commit: b5d91f5)
    • Frontend: เปิดใช้งานหน้ารับสัญญารูปแบบใหม่ (Types: D, E, F) พร้อมระบบ Validation ฟอร์มสัญญาที่เข้มงวดขึ้น (Commit: 67553e4e)
  • Operation Tools:
    • Frontend: เพิ่มคอมโพเนนต์ UserInformationForm และระบบหน้าสำหรับจัดการเจ้าหน้าที่ประจำจุด (Work Area) (Commit: febdf139)
  • Logic Correction:
    • Backend: แก้ไขตรรกะการคำนวณจำนวนรถสำหรับพนักงานประจำ (Fulltime Vehicle Amounts) ให้สอดคล้องกับพฤติกรรมการใช้งานจริง (Commit: 606e0262)

[1.0.0] - 2026-02-15​

จุดเริ่มต้นระบบคู่มือ ATP30 (Initial Documentation Framework)

Initial​

  • จัดทำโครงสร้างพื้นฐานสำหรับ Admin Manual และ Driver Manual
  • ก่อตั้งระบบ Release Notes (Changelog) เพื่อติดตามการเปลี่ยนแปลงย้อนหลังในแบบมืออาชีพ
  • เริ่มต้นการเชื่อมโยงข้อมูลสัญญาฉบับพื้นฐานและการตั้งค่าระบบเบื้องต้น