Step 3: เงื่อนไขรายได้
Step นี้ใช้เพิ่มรายได้พิเศษนอกเหนือจากราคาหลัก

ใช้ทำอะไร
- เปิด/ปิดรายได้พิเศษแต่ละรายการด้วย switch
- ระบุอัตราเงินต่อหน่วยเมื่อเปิดใช้งาน
- กำหนดรายได้ที่เกิดจากเงื่อนไขงานจริง เช่น OT, วันอาทิตย์, วันหยุด, งานเกิน, หรือค่ากะ
รายการที่แสดงตาม group
- กลุ่ม
DและEจะเห็นครบทุกตัวเลือก - กลุ่มอื่นจะเห็นเฉพาะ
- รถบัสเที่ยวที่ 87/ต่อเดือน
- รถ van เที่ยวที่ 5/ต่อวัน
- เที่ยวที่ 3
- ค่ากิโลเมตรเกิน
- ค่ากะ
- ค่าชาร์จไฟ
จุดที่โค้ดบังคับจริง
- ถ้าเปิดใช้งานรายการใด ต้องกรอก
รายได้/ต่อหน่วย - ถ้าไม่กรอก ระบบจะไม่ให้สร้างสัญญาต่อ
- Step นี้เป็นด่านสุดท้ายก่อนกดสร้างสัญญาจริง
สิ่งที่ควรจำ
- รายได้พิเศษจะมีผลต่อการคำนวณเงินจริง
- ควรตรวจว่าทุก switch ที่เปิดไว้มี rate ครบก่อนบันทึก
วิธีเข้าใจ OT แบบ OVER_HOUR
ถ้าในสัญญาเลือกเงื่อนไข OT เป็น OVER_HOUR ระบบจะใช้กติกา "ทำงานเกิน 8+1 ชั่วโมง"
- ระบบดูเวลาของวันนั้นจาก
standby เริ่มรายการแรกถึงstandby จบรายการสุดท้าย - ถ้าเวลารวม ไม่เกิน 9 ชั่วโมง จะยังไม่เกิด OT
- ถ้าเวลารวม เกิน 9 ชั่วโมง จะนับเฉพาะ "ส่วนที่เกิน" เป็น OT
การปัดเศษชั่วโมง OT
- เศษต่ำกว่า
15 นาทีไม่นับเพิ่ม - เศษตั้งแต่
15ถึง44นาที ปัดเป็น0.5 ชั่วโมง - เศษตั้งแต่
45 นาทีขึ้นไป ปัดเป็น1 ชั่วโมง
ตัวอย่าง
9 ชั่วโมง 10 นาที= ยังไม่มี OT9 ชั่วโมง 20 นาที= OT0.5 ชั่วโมง9 ชั่วโมง 50 นาที= OT1 ชั่วโมง10 ชั่วโมง 20 นาที= OT1.5 ชั่วโมง
หมายเหตุ: ถ้าสัญญาเลือก
TIME_PERIODระบบจะไม่ใช้กติกา 9 ชั่วโมง แต่จะคิด OT จากเวลาที่อยู่นอกกรอบเวลาทำงานที่กำหนดแทน เช่น ก่อน08:00หรือหลัง17:00
อ้างอิงโค้ด
/Users/chanchaitasujai/Project-ATP30/atp30-core-api/src/contracts/contracts.service.ts/Users/chanchaitasujai/Project-ATP30/atp30-core-api/src/trip-records/utils/ot-calculation.util.ts