跳至主要內容
全部系列薪酬進階功能
Attend()相關函數如何取值異常考勤數據?
Attend()相關函數如何取值異常考勤數據?

薪酬運算的時候如何取值遲到、早退、曠工、缺勤的數據進行準確計算薪酬?

Workstem CS avatar
作者:Workstem CS
5 個月前已更新

很多企業會給員工發勤工獎,那在考勤過程中需要統計這些考勤異常信息,然後跟據考勤異常數據,給員工計算出不同的勤工獎。

Workstem是如何取值這些異常考勤數據信息的呢?

系統提供了相應的統計異常考勤數據的函數:

CountAttendStatusByDay(Status Item, Range in mins)

SumAttendData(Item)

CountAttendDataByDay('beLateLength','0-20','a*10')

下面就詳細介紹一下這幾個函數該如何使用:

第一步

「薪酬」> 「設置」 >「薪酬項目」>「設置」

第二步

點擊「設置」進入「薪酬項目」詳情界面,找到對應需要設置公式的項目點開「公式」或新增項目到公式設置步驟,,進入「薪酬項目」公式設置界面

第三步

1、在薪酬運算週期對應的考勤週期,考勤狀態(遲到,早退,實際出勤)以天為組織統計該狀態出現的次數(一個月之內,有遲到狀態的總天數),點開「函數」找到CountAttendStatusByDay(Status Item, Range in mins)這個函數,查看這個函數的相關解釋說明及舉例

注意:「參數說明」

Status Item: beLateLength,leaveEarlyLength,shiftLabor, absenceLength ;

分別代表“遲到”、“早退”、“曠工”、“缺勤”

Range in mins: 代表“分鐘數範圍”,如'1-10'分鐘

CountAttendStatusByDay返回的結果為“天數”

示例:以遲到為例

假定當前的薪酬計算週期為2020-03-01到2020-03-31,考勤週期一致

某員工當月一共有5天,有遲到記錄。其中2天遲到在10分鐘內。其他3天遲到20分鐘

CountAttendStatusByDay('beLateLength','1-10') 結果為2

CountAttendStatusByDay('beLateLength','10-30') 結果為3

CountAttendStatusByDay('beLateLength','1-30') 結果為5

2、獲取考勤相關資料(遲到/早退/總分鐘數,工作時長等)的總分鐘數,點開「函數」找到SumAttendData(Item)這個函數,查看這個函數的相關解釋說明及舉例

注意:「參數說明」

Item:beLateLength,leaveEarlyLength,shiftLabor,totalWorkingDaysOrHours,workingOvertimeOnWeekdays,workingOvertimeOnRestDays,workingOvertimeOnStatutoryHolidays,absenceLength

分別統計為遲到、早退、缺勤、總出勤時長、工作日加班時長、休息日加班時長、法定假日加班時長的總分鐘數

示例:

假定當前的薪酬計算週期為2020-03-01到2020-03-31,考勤週期一致

某員工當月一共有3天有遲到記錄。分別遲到了5分鐘,8分鐘,10分鐘

SumAttendData('beLateLength') 結果為23分鐘(5+8+10)

3、獲取考勤相關資料(遲到/早退/確定,工作時長等)中符合參數二聲明時間範圍的次數,獲得次數通過參數三的運算式運算,作為函數的運算結果,點開「函數」找到

CountAttendDataByDay('AttendItemName','MinsRange','Expression')這個函數,查看這個函數的相關解釋說明及舉例

注意:「參數說明」

AttendItemName: beLateLength,leaveEarlyLength,shiftLabor,absenceLength,totalWorkingDaysOrHours,workingOvertimeOnWeekdays,workingOvertimeOnStatutoryHolidays,workingOvertimeOnRestDays

分別統計的是遲到、早退、曠工、缺勤、總的工作天數/時長、工作日加班、法定工作日加班、休息日加班

MinsRange:分鐘數時間範圍(如:‘1-10’分鐘)

Expression:次數運算式,支持+-*/四則運算

示例:

假定當前的薪酬計算週期為2020-03-01到2020-03-31,考勤週期一致

某員工當月一共有5天,有遲到記錄。其中2天遲到在10分鐘內。另外3天遲到了20分鐘

CountAttendDataByDay('beLateLength','1-10','a*10') 結果為20

CountAttendDataByDay('beLateLength','11-20','a*50') 結果為150

相容寫法:

var str = 'tempValue' + '+' + BasicSalary + '>=0' + '&&' + 'tempValue'+ '+' + BasicSalary + '<=200000'

CountAttendDataByDay('beLateLength',str,'a*50')

相容寫法:

var str = 'totalWorkingDaysOrHours' + '+' + 'leaveEarlyLength' + BasicSalary + '>=0' + '&&' + 'totalWorkingDaysOrHours'+ '+' + BasicSalary + '<=200000' CountAttendDataByDay('str','a*10')

是否回答了您的問題?