Dữ liệu chấm công được sử dụng để tính số lượng thời gian - giờ công, ngày công và đặc điểm của số lượng này : làm việc, nghỉ phép, nghỉ ốm, OT, làm bù v.v. Giá trị đếm này là cơ sở để tính ra tiền cho người lao động.
Ta thường dùng kết quả đếm công này trong 1 bước tính thu nhập cho người lao động ở tính năng Payrolls (HR)
Xử lý dữ liệu chấm công là công việc phức tạp, vì mỗi công ty cần khai thác dữ liệu chấm công theo nhiều cách khác nhau.
Nếu không đặt trước các quy tắc đọc dữ liêu chấm công ở đây, ta vẫn có thể tổng hợp công bằng báo cáo excel hoặc dùng các công cụ thuần túy kỹ thuật khác để tập hợp, lọc, tính toán ra dữ liệu công.
Các bộ quy tắc này giúp việc đọc bảng chấm công hiệu quả hơn bằng cách định nghĩa ra các quy tắc đếm công. Sau đó là có thể sử dụng các user table, tags, functions để lấy ra kết quả công ngay lập tức, nhanh , gọn , chính xác.
Các bộ quy tắc còn giúp việc maintain hệ thống hiệu quả hơn. Toàn bộ quy tắc tính được thiết lập trong chương trình thay vì nằm ở các template báo cáo vốn rất dễ bị thay đổi từ version này sang version khác.
Các bộ quy tắc này gom theo mã quy tắc TsrCode. Mỗi bộ quy tắc có nhiều có nhiều quy tắc phân biệt bằng SubCode.
Ngoài ra quy tắc đọc có thể thay đổi theo kỳ. Khi đếm công, quy tắc đang áp dụng cho kỳ nào thì phải đi với kỳ ấy, điều này đặc biệt quan trọng khi đếm lại công trong quá khứ. Do đó khi đếm công cho một kỳ bằng 1 bộ quy tắc, Phoebus sẽ chọn bộ quy tắc đang hiệu lực tại kỳ đang đếm để sử dụng.
Ví dụ: Ta định nghĩa 1 bộ quy tắc cho kỳ 2016-001. Đến kỳ 2016-007 ta thêm vài quy tắc con và đặt kỳ hiêu lực là 2016-007. Như vậy khi chấm công từ kỳ 1->6 áp dụng các quy tắc cài đặt từ 2016-001. Từ kỳ 2016-007 trở đi, việc đếm công hoàn toàn dựa vào các quy tắc mới được cài đặt trong kỳ 2016-007
Đối với mỗi bộ đọc, ta khai báo tiêu chí để tìm ra các record TimeSheet Record cần thiết.
Chú ý tiêu chí phân tích được đọc chính xác : 101
mã phân tích phải chính xác =101
. nếu muốn đọc nhiều tiêu chí dùng <<101|102..102z
Stt | Tiêu chí | Diễn giải | |
---|---|---|---|
1 | Đọc luôn toàn bộ | ||
2 | <<A | B..Bz | Đọc A và toàn bộ mã từ B..Bz |
3 | ! | Đọc nếu mã trống | |
4 | ! A..Z | Đọc các mã không nằm trong khoảng A..Z | |
5 | ! A | Đọc nếu mã khác A |
Trong trường hợp dữ liệu được ghi nhận 1 kỳ / 1 con số. Ví dụ giá trị cần đọc xuất hiên ở tất cả các record chấm công trong 1 trong 30 cột dữ liệu. Ta sẽ chỉ cần đọc record đầu tiên để tìm ra con số này. Khi ấy, ta chỉ cần bật Read First Record Only lên là xong.
Nếu cần đếm công theo quy tắc phức tạp hơn là sử dụng các trường của nhóm Counting Criteria. Ta có thể dùng công thức ở ô Counting with Calculation Criteria. Các mẩu tin TimeSheet Record khi tính với công thức này trả về true
sẽ được đếm.
pbs.BO.Data.TSCount?TsrCode=Profile&Period=C
<#TsCount(TsCode;EmplCode;inPeriods - optional)> - Đếm số TSH record với profile TsCode
<#TsQuantityCount(TsCode;EmplCode;inPeriods - optional)> - Tính tổng số QTY với profile TsCode
<#TsValueCount(TsCode;EmplCode;inPeriods - optional)> - Tính tổng số Value0-8 với profile TsCode
Ta cần trích xuất dữ liệu công như sau :
Thiết lập sẽ như sau để đếm công cho cột đầu tiên (150% OT ...)
Ý nghĩa cột này cần đếm ra số giờ làm OT (TS0 = OT
) đổi lấy tiền cash (TS2=Y
) trong ngày thường từ thứ 2 .. thứ 6 (Calculation Criteria = IsWorkingDay([TimeSheetDate])) đối với onshore staff (TS9 = <<N1..N1z
- thiếu trên hình chụp màn hình).
Sau khi định nghĩa profile. Ta sử dụng nó để đếm công cho cho nhân viên E0001
trong kỳ 5/2016
chỉ bằng 1 công thức đơn giản:
<#TsCount(TSHON_OTY:01;E0001;2016005)>
Ta cũng có thể dùng user table để lấy ra bảng OT này cho toàn bộ nhân viên onshore:
User Table(pbs.BO.Data.TSCount?TSHON_OTY:01&Period=2016005)
Case study : Chính sách OT cụ thể của một công ty điều hành dầu khí:
Updated on : 2021-01-22 14:54:12. by : . at T470-01.
Topic : TimeSheet Reader. pbs.bo.hr.tsr