业务需求:薪资核算时,系统会根据核算期间员工的状态,将数据拆分成不同的期间段,以用作逻辑处理,造成时间期间标识分段的常见原因有:员工人事事件发生变动(如:入职、调动、离职、转正等)、成本中心发生变化等。
造成期间分段的工资项,放在信息类型0014-经常性支付里面,根据工资项的有效期间和核算期间分段。
系统配置:下面以一个工资项核算时具体的示例做说明(月中离职人员)
0014-经常性支付:4000-地区津贴(根据实际出勤天数给补贴),这种适用于PA30需要输入基数的情况。
CN 累积工资项
1 总金额
3 月工资
4000地区津贴 0 0000 1 1 0 00 9
二、 Edit basic data WPBP
WPBP分割:
01 2022.01.01 2022.01.21 01 入职
02 2022.01.22 2022.01.31 05 主动辞职
读取: P0000、 P0001、 P0007、 P0008、 P0027,拆分WPBP
P0014 CN14 GEN NOAB
输入:P0014、WPBP
CN14 Splitting WPBP and assigning the split to IT
*
****
ELIMI A 消除时间期标识
WPBPCW 仅分割WBPB
输出:处理的是0008-基本工资
操作符ELIMI:删除当前工作条目中工资类型的期间指标(拆分指标)
工作表中的条目(IT、OT、RT……IT)通过拆分指标分配给基础数据(工作中心、税务、成本分配等)中的各个有效期。这允许系统为工资/薪水创建准确的时间参考,并计算和分配SI供款和其他成本,等等。
如果不再需要区分当前正在处理的工资类型中某个要素类的部分期间,可以使用操作ELIMI删除相应的拆分指示器。您最多可以指定3个拆分指示器作为参数,或为所有指示器输入“*”。
ELIMI SSS
SSS 1-3 split indicators with the assignment:
* 所有的期间标识全部移除
R 雇员子组分组 Table: T503 for pers.calc.rule
A Work center period WPBP
1 1st national split /SI) SV
2 2nd national split (Tax) XST
3 3rd national split (not used)
T Alternative payment ALP
K Cost accounting成本中心 C1
U Bank transfer银行转账 BT
X Variable assignment V0 Operation SETIN
Y Absence assignment
Z Time unit然后,通过操作(例如operation ADDWT)将当前工作字段中的工资类型放置在输出表(例如OT)中,不带拆分指标。
Operation RESET enables you to reset specific split indicators to their original values.
操作重置允许您将特定拆分指示器重置为其原始值
操作符WPBPC:WPBPC操作将当前工资类型的金额分配给工资单期间中的活动WPBP期间。(将工资项的金额分配到每个WPBP期间)
此操作使用表OT表头条目中的当前工资类型作为输入。
“A”,WPBP有多个周期时,金额按日历日同时减少。
“D”,工资类型将分配给所有未减少金额的现有WPBP期间。
“S”,且有效期开始,或在此期间结束时,将使用此日期拆分表WPBP中的条目。工资类型存储在相应WPBP期间的表OT中。
“W”,且有效期开始,或在该期间结束时,表WPBP中的条目将使用该日期进行拆分(与选项“S”一样)。与“S”不同,工资类型不存储在OT表中。
“X”,则工资类型存储在表OT f中有效期间隔适合的每个WPBP期间。如果为工资类型设置了WPBP拆分,则工资类型将存储在表OT中,而不进行更改。如果在第二个参数中指定不同的工资类型名称,则工资类型将使用此名称存储在表OT中。因此,在执行操作WPBPC之前,可能需要使用操作ELIMI删除拆分。如果设置了特定于国家/地区的拆分(C1、C2或C3拆分),则操作会将其解释为错误。该员工被工资单拒绝。所有其他拆分按原样传输。如果不存在活动期间,工资类型将分配给最后一个WPBP期间。减少总是以日历日为基础。(月中入职)
处理后的工资类型或工序调用中指定的工资类型将写入表OT(输出表),并使用适当的分割指标和减少的金额作为每个WPBP期间的工序输出。参数规范“W”是唯一的例外。
OOOOOSVVVV
OOOOO WPBPC Operation name
S
blank distribute to all WPBP periods
S split and distribute WPBP
W split but do not distribute WPBP
A distribute to active WPBP periods
with calendar-day reductions
D distribute to all existing WPBP periods
X combination of 'S' and 'A'VVVV Results wage type
blank input wage type = results wage type
wage wage type name of input wage type is replaced
type by wage type name of results wage
name type
SORT IT C 基本工资降序排列(对工资项排序)然后清除期间标识
Z0001 清除员工子组标识
*
3
****
/4J1 子女教育调整金额
NUM=& /4J1 设置
NUM?1 比较
*
<
ELIMI * 消除时间期标识
ADDWT * OT 输出表
NUM=1 设置
ADDWT&/4J1 VAR 变量表(放在变量表中,用作前面的判断,避免重复)
操作符ADDWT:当前工作字段中工资类型的值将添加到后续工资类型中。您还可以选择重命名工资类型或将其存储在变量中。
OOOOOSVVVV
OOOOO ADDWT Name of operation
S Result table of the operation
blank Output table OT
A Previous employer table VAG
C Cumulation table CRT
D Difference table DT
E Results table RT
G Gross results table GRT
H Alt. results table AIT
I Input table IT
L Results table last payroll LRT
M Incentive wages results LS
N Loan LO (can only be used with function P0045)
O see blank above
S Cumulated and variable info EX/ES
U Difference table DFT
W Wage maintenance table Operation ADDWTVX Cumulated tax table SCRT
Z Table of time wage types ZL
& Variable table VAR
表T512T中的VVVV工资类型(对于相同的输入和输出工资类型-*),如果S=“&”变量名称,则使用ADDWT操作将当前工资类型的金额、数字和费率添加到四个字符的变量名称下。它们存储在变量表变量的过渡期间。变量表是临时的。在函数PIT中,不应使用参数S=I(IT)。
在函数PRT中,参数S=E(RT)不应用于更改现有工资类型。
在PRT和ACTIO中,不应使用参数S=空白(OT)。
但是,如果使用此选项,则应特别注意工资类型的顺序和表OT的(slater)处理。1. L100 1 2 6 ADDWT * OT L100 1 2 6(工资项L100存储在OT表)
2. L100 0 0 6 ADDWT L222 OT L222 0 0 6(工资项L100存储在L222中)
3. L200 0 1 3 ADDWT L222 OT L222 0 1 9(工资项L200加到L222中,注意工资项如果原来的有值,会叠加)
4. /101 0 1 3 ADDWT &XYZ0 VAR XYZ0 0 2 5(工资项/101加到变量XYZ0中)
P0014 CN11 GEN NOAB(系统标准的)
输入(从P0014中获取数据)
P0014
WPBP
处理
输出
IT(将数据写入IT表)
降序排列、清除员工子组标识。
PRINT RT 打印RT表
PRINT VAR 打印VS表
PRINT:打印功能记录内部表或数据结构的内容。该函数用于测试目的。
AB Absences
AIT Alternative IT
AST Tax (A)
ASV SI (A)
BST Tax (B)
BSV SI (B)
BTZ Bank Transfer Assignment
C0 Alt. cost distribution
C1 Cost distribution
RT Results
WPBP Work center
ZL Time wage types
四、 Import last payroll result(不涉及折减的问题)
五、Processing of time data
从这里输出应出勤天数、实际出勤天数、计薪天数等数据。会涉及到天数的计算
(1)指定每月应出勤小时数:22*8=176
Processing of time data
IF SPRN
ELSE(可以在这里设置不同的工资项目处理、增强也可以放在这里)
ENDIF
ACTIO TT01(注意一下ACTIO对应的规则怎么写)
输入:WPBP
处理:TT01 补贴
输出:IT
TT01 补贴
*
****
OUTWPPLANT 变量关键字中P.范围
****
1000
GCY TT04 用准确的工资类型
2000
GCY TT03 用准确的工资类型
3000
GCY TT02 用准确的工资类型
4000
GCY TT01 用准确的工资类型
Z110 计算应出勤天数(ACTIO读取WPBP数据)
*
****
RTE=YCURYY 设置
RTE?2022 比较
*
RTE=YCURPP 设置
RTE?01 比较(以202201为分界点,之前和之后的规则不同)
*
ZERO= R AmtNumRteTime = 0
OUTWPPAYSB 变量键的工资发放范围
**
AMT=21.75 集合
ADDWTI4000 IT 输出表(每月应出勤天数为21.75作为基数计算每天数据)
Z1
AMT=GADIVI 集合(从实际出勤中获取数据,排多少班,出勤多少天就计算多少)
ADDWTI4000 IT 输出表
<
>
ZERO= NAR AmtNumRteTime = 0(清空NAR的值)
OUTWPPAYSB 变量键的工资发放范围
**
Z1
(待完善)
业务需求:鉴于项目的高压性,有两种项目补贴方式
(1)如果是H9及以上,每人每月补贴1500,每月按照实际出勤天数/20*1500折算;
(2)如果是H9以下,根据职级判断每个职级对应的补贴,根据实际出勤天数折算。
(3)如果是项目经理:每人每月2000,每月按照实际出勤天数/20*2000折算;
如上项目经理和职级两种取最大值作为项目补贴。
系统实现:
(1)计算员工的实际出勤天数;
(2)通过逻辑判断员工的身份,算出两种结果的值
(3)比较哪一个大,写入对应的实际支付工资项目里面。