กระทู้เก่าบอร์ด อ.Yeadram
2,433 2
URL.หัวข้อ /
URL
คำนวณหาเวลาเข้า-ออกจาก TextFile
ผม Import Text file ข้อมูลเวลาเข้าใน
table TimeImport ซึ่งจะมี
EmployeeID < เก็บรหัสพนักงาน
DateTime < เก็บเวลารูดบัตร
Shift < เก็บกะการทำงาน
table Employee ข้อมูลพนักงาน
EmployeeCode < รหัสพนักงาน
Name < ชื่อ
LastName < นามสกุล
Income1 < รายได้ตัวที่1
Income2 < รายได้ตัวที่2
Income3 < รายได้ตัวที่3
Income4 < รายได้ตัวที่4
Income5 < รายได้ตัวที่5
Salary < ค่าแรง
StartTime< เวลาเข้างาน
BreakTime< เวลาพัก
EndTime< เวลาเลิกงาน
StartOT < เวลา OT
EndOT < เลิก OT
พนักงานมีการทำงาน 8.30 - 17.30 เวลา OT 17.30 - 18.30
ต้องการให้มีการคำนวณเวลาเข้า-ออกของพนักงาน , ค่าแรงที่ได้ (ถ้ามีเวลาเข้าออกตามเวลาเข้างานปกติ(8.30-17.30)ได้ตามEmployee.Salary) ,OT (ถ้าทำงานช่วงเวลาโอทีได้ค่าโอที),รวมรายได้(ค่าแรง+OT) โดยให้ไปบันทึกใน tableใหม่ ชื่อ PaymentDaily จะต้องทำยังไงครับ พอจะมีแนวทางมั้ยครับ ปัญหาหลักคือ ให้หาเวลาเข้าออกของพนักงานแล้วให้มาลงในTable ใหม่ครับ ประมาณว่า
Employee StartTime EndTIme Intime OutTIme SumIncome SumOT Total
0001 8:30 17:30 8:29 18:39 300 200 500
table TimeImport ซึ่งจะมี
EmployeeID < เก็บรหัสพนักงาน
DateTime < เก็บเวลารูดบัตร
Shift < เก็บกะการทำงาน
table Employee ข้อมูลพนักงาน
EmployeeCode < รหัสพนักงาน
Name < ชื่อ
LastName < นามสกุล
Income1 < รายได้ตัวที่1
Income2 < รายได้ตัวที่2
Income3 < รายได้ตัวที่3
Income4 < รายได้ตัวที่4
Income5 < รายได้ตัวที่5
Salary < ค่าแรง
StartTime< เวลาเข้างาน
BreakTime< เวลาพัก
EndTime< เวลาเลิกงาน
StartOT < เวลา OT
EndOT < เลิก OT
พนักงานมีการทำงาน 8.30 - 17.30 เวลา OT 17.30 - 18.30
ต้องการให้มีการคำนวณเวลาเข้า-ออกของพนักงาน , ค่าแรงที่ได้ (ถ้ามีเวลาเข้าออกตามเวลาเข้างานปกติ(8.30-17.30)ได้ตามEmployee.Salary) ,OT (ถ้าทำงานช่วงเวลาโอทีได้ค่าโอที),รวมรายได้(ค่าแรง+OT) โดยให้ไปบันทึกใน tableใหม่ ชื่อ PaymentDaily จะต้องทำยังไงครับ พอจะมีแนวทางมั้ยครับ ปัญหาหลักคือ ให้หาเวลาเข้าออกของพนักงานแล้วให้มาลงในTable ใหม่ครับ ประมาณว่า
Employee StartTime EndTIme Intime OutTIme SumIncome SumOT Total
0001 8:30 17:30 8:29 18:39 300 200 500
2 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R18947
ขอบคุณครับสำหรับคำแนะนำ
Time: 0.3142s
ผมแนะหลักการให้ละกัน ผมเคยทำระบบ Time Keeper ด้วยการสแกนลายนิ้วมือมาก่อน คิดว่าน่าจะนำไปใช้ได้
1. พนักงานต้องตอกบัตรอย่างน้อยวันละ 2 ครั้ง คือขาเข้ากับขาออก
2. เวลาขาเข้าเราจะใช้คำสั่ง MIN ในการจับ
3. ถ้า MIN > 8:30 คือสาย
4. ถ้า MIN <= 8:30 คือปกติ
5. เวลาขาออกเราจะใช้คำสั่ง MAX ในการจับ
6. ถ้า MAX < 17:30 คือออกก่อนเวลา
7. ถ้า MAX >= 17:30 จนถึงช่วงเวลาหนึ่งที่เราต้องกำหนดขึ้นมาเพื่อบอกให้ระบบรู้ว่าคนนี้มีการออกจากงานเวลาปกติ (ไม่มี OT)
8. จากข้อ 7 ถ้าเราไม่กำหนด แล้วเขาออกงาน 17:35 ก็จะได้ OT 5 นาที
9. ถ้า MAX >= 18:30 ก็จะได้ OT 1 ชั่วโมง
ด้วยหลักการนี้คุณนำไปทำคิวรีเพื่อดึงข้อมูลมาอีกตารางได้ครับ
สิ่งที่คุณต้องคิดทบทวนคือ มีเหตุการณ์แปลกๆ เกี่ยวกับการลงเวลาบ้างหรือเปล่า เช่นที่ผมเจอแล้วไม่ได้คิดเอาไว้ล่วงหน้าคือ
พนักงานตายในระหว่างเวลาทำงาน เรื่องจริงครับ กว่าจะรู้จะขึ้นอืดอยู่ที่ชั้น 7 แล้ว มิน่าไม่ยอมตอกบัตรออก