对于时间期间标识,怎么拆分运算的?

业务需求:薪资核算时,系统会根据核算期间员工的状态,将数据拆分成不同的期间段,以用作逻辑处理,造成时间期间标识分段的常见原因有:员工人事事件发生变动(如:入职、调动、离职、转正等)、成本中心发生变化等。

造成期间分段的工资项,放在信息类型0014-经常性支付里面,根据工资项的有效期间和核算期间分段。

系统配置:下面以一个工资项核算时具体的示例做说明(月中离职人员)

0014-经常性支付:4000-地区津贴(根据实际出勤天数给补贴),这种适用于PA30需要输入基数的情况。

一、查看工资项目的属性:SM30-V_512W_D

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 ADDWTV

             X           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中)

三、Process additional payments/deductions

 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)比较哪一个大,写入对应的实际支付工资项目里面。

你可能感兴趣的:(50.薪资管理,程序人生,职场和发展)