員工在一個工資核算期間(在中國大部分為自然月,以下行文中用月代替工資核算期間)里的在職狀態,可以分為以下三種情形:
Case 1、全月在職,即全月的雇傭狀態都是3
Case 2、全月不在職,即全月的雇傭狀態都是0、1或者2
Case 3、部分在職部分不在職,即這個月的雇傭狀態部分期間是3、部分期間是0、1或者2
這種情況包括以下幾種情景:
1)當月月中入職
2)當月月中離職
3)當月離職,隔幾天后,再次入職。這種情況發生的概率很小,本文不做討論。
在某些業務場景下,如果我們需要在規則中判斷哪一段是第一段、哪一段是最后一段,可以在規則中使用操作WPALL做判斷處理。
比如:
1)在十二月,取WPBP最后一段內的基本工資做基數計算13薪;
2)在工資計算時。取WPBP第一段的員工主數據作為判斷的依據,計算員工的某個津貼標準。
對于員工全月在職的情形,工資核算時的內表WPBP可以有1到多段,在WPBP表中用分段號(WPBP Split)01、02等標識。
1)假如WPBP只有一段,則WPALL?FRST和WPALL?LAST都返回真值(Y);
2)假如WPBP有兩段,則WPALL?FRST對第一段返回真值(Y),WPALL?LAST對第二段返回真值(Y);
3)假如WPBP有三段及以上,則WPALL?FRST對第一段返回真值,WPALL?LAST對最后一段返回真值(Y),對第二段操作WPALL?FRST和WPALL?LAST均返回假值(N)。
對于員工當月月中入職的情形,如果IT0000、IT0001、IT0007、IT0008、IT0027和IT0014在入職后本月內沒有變化,則WPBP只有一段(第一段從入職日期開始),則WPALL?FRST和WPALL?LAST都返回真值(Y)。
對于員工當月月中離職的情形,如果IT0000、IT0001、IT0007、IT0008、IT0027和IT0014在當月在職期間沒有變化,則WPBP有兩段,而不是一段。第一段是在職期間(雇傭狀態為3),第二段是不在職期間(雇傭狀態為0、1和2),則WPALL?FRST和WPALL?LAST都對第一段返回真值(Y),而不是WPALL?FRST對第一段返回真值、WPALL?LAST對第二段返回真值。
計算規則示例:
D WPALL?FRST
Y 操作1 操作2 ...
N 操作3 操作4 ...
D WPALL?LAST
Y 操作1 操作2 ...
N 操作3 操作4 ...

