ประวัติการปรับปรุง (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)
- Core API: แก้ logic การจัดการเวลา
- 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)
- Frontend/Driver: เพิ่ม
- Admin Table & User Detail UI:
- Frontend: แก้พฤติกรรม
DataTableแบบ sticky column ให้ใช้งานเสถียรขึ้น และปรับ spacing หน้า User Detail ให้อ่านง่ายและเป็นระเบียบกว่าเดิม (Commit: 8fe91ecd)
- Frontend: แก้พฤติกรรม
- Version Updates:
[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)
- Core API: ปรับปรุงระบบจัดการเวลาทั้งหมดให้ใช้มาตรฐาน
- 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)
- Frontend: อัปเกรด
- 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)
- Core API: พัฒนา
- 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)
- Backend: แยก
- 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)
- Backend: ปรับ logic คำนวณราคาน้ำมันใน
- 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 โดยใช้
formatShowNumberutility ให้ตัวเลขแสดงผลสม่ำเสมอ (Commit: 4b60ed71)
- Frontend: เพิ่มหน้า ดูรายละเอียด Billing History (
- 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)
- Driver: เพิ่ม utility จัดรูปแบบเบอร์โทรศัพท์ (
- 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)
- Backend: เพิ่มการตรวจสัญญาแบบละเอียดผ่าน
- 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)
- Driver: ฟอร์มบันทึกเที่ยวรถบนมือถือเพิ่มปุ่มลัด
- 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)
- Backend: แยก utility กลางสำหรับคำนวณ OT ทั้งแบบ
- Quality Assurance & Internal Tooling:
[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:
- System Stability:
[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:
- Access Control & UI Consistency:
- Backend: เพิ่มการตรวจสอบ
isActiveทั้งระดับ user และ role ในJwtAuthGuardและอัปเดตโครงสร้าง/auth/meresponse เพื่อให้ Frontend รับรู้สถานะสิทธิ์ล่าสุดได้ตั้งแต่ต้นทาง (Commit: a05dd00) - Frontend: เปลี่ยน hardcoded colors ไปใช้ theme tokens มากขึ้น, ปรับ sync ของแท็บ refuel และ layout ของ modal/table, และทำให้ component styles ใช้มาตรฐานเดียวกันชัดเจนขึ้นในหลายหน้าจอหลัก (Commits: f9823558, 94af78a9)
- Backend: เพิ่มการตรวจสอบ
[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)
- Frontend: พัฒนาระบบ
- Data Integrity:
- Frontend: เพิ่มระบบ Excel Header Validation ทันทีที่เลือกไฟล์ ป้องกันการเสียเวลาอัปโหลดไฟล์ที่ผิดรูปแบบ (Commit: c6cb3199)
- Frontend: อัปเดต Dropdown เลือกข้อมูลลูกค้าให้แสดงทั้งรหัส (Code) และชื่อ (Name) ควบคู่กันไป และ Refactor โครงสร้างตารางแสดงผลในหน้ารายการเดินรถ (Trip Record Table) (Commit: 9f53e0b2)
- Backend: เพิ่ม
customerIdfilter และ 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)
- Frontend: ปรับ auth session handling ให้ล้าง token และ redirect กลับ
- 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)
- Frontend: ปรับ
- 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)
- Driver: เปลี่ยนคอมโพเนนต์
[1.2.0] - 2026-04-02
การจัดการสิทธิ์และระบบการเงินเชิงลึก (Finance & RBAC)
Multi-Repo Interaction
- Finance Logic:
- Security & Permissions:
- Frontend: ปรับหน้าการตั้งค่า Roles & Permissions ให้มีรายละเอียดสิทธิที่ครอบคลุมฟังก์ชันการเงินและการแก้ไขข้อมูลเดินรถมากขึ้น (Commit: 42636f33)
- UI Standardization:
- Frontend: Refactor ครั้งใหญ่ เปลี่ยนคอมโพเนนต์
MainCardเป็นCardมาตราฐานใหม่ที่รองรับ Responsive ได้ดีกว่าเดิมทั่วทั้งระบบ (Commit: 1341c9d0)
- Frontend: Refactor ครั้งใหญ่ เปลี่ยนคอมโพเนนต์
[1.1.8] - 2026-03-29
ความปลอดภัยและการจัดการตัวรถ (Security & Fleet Management)
Multi-Repo Interaction
- Auth Security:
- Fleet Feature:
[1.1.5] - 2026-03-25
การมอบประสบการณ์การใช้งานภาษาไทยที่สมบูรณ์ (Localization & Polish)
Multi-Repo Interaction
- Core UI Polish:
- 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:
- 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) เพื่อติดตามการเปลี่ยนแปลงย้อนหลังในแบบมืออาชีพ
- เริ่มต้นการเชื่อมโยงข้อมูลสัญญาฉบับพื้นฐานและการตั้งค่าระบบเบื้องต้น