1.1 案例简介
工资计算一直都是人事管理中的一道难题,他涵盖考勤签到、补签、请假、节假日、调休、加班、个税等多表复杂计算。
1.2 设计思路
那么,我们如何通过简道云进行工资计算呢?设计思路如下:
1)每个需要计算的项目都用一张表单来维护数据,例如:考勤数据存放在一张表单中,请假、补签等用另外的表进行数据存储与管理。
2)补签的数据需要同步至考勤表中,用考勤表算出所有实际考勤数据。
3)请假单独计算,在数据工厂中,对考勤和请假数据进行加减,得到一个月的所有实际出勤天数。
4)另外一张表录入每月实际应出勤天数,在数据工厂中通过与实际出勤天数进行对比,少出勤的天数按比例进行工资扣减。
5)周末加班天数和晚加班次数另外进行加班工资计算。
6)最后根据基础工资、提成工资、考勤扣减、加班工资等数据得出税前工资。
7)根据税前工资、社保缴纳基数等数据即可计算出每月工资数据。
8)本案例的考勤周期以每月 1 号至月末为一个考勤周期,计算工资时,在本月月初计算上月全月工资,计算结果同步至表单中,同时同步的数据通过数据工厂同步至工资表(因为工资计算时需要历史工资数据来计算个税)。
1.3 预期效果
工资辅助表中通过数据工厂同步了上月考勤对应的工资数据(示例数据为 2022 年 8 月),那么 9 月 10 日可以按照此工资计算发放员工工资。如下图所示:
2. 设置步骤
在学习之前建议安装 人事OA管理 应用模板,本文将按照模板中的示例数据进行讲解。
2.1 表单设计
- 工资表(主表):用于数据工厂中通过历史工资发放情况计算个税。
- 工资表(辅助表):用于同步数据工厂输出表数据,并将同步的数据再工资表新增一份。
- 薪资基础表:录入底薪、社保扣减数、附加专项扣除数等数据。
- 绩效/提成表:录入除底薪以外的其他绩效收入。
- 考勤签到表:正常每日工作签到记录。
- 请假申请表:请假申请表单,用于后期考勤扣减。若请的是年假,则不进行扣减。
- 补签申请表:录入实际工作但是忘记打卡的数据。
- 周末加班申请表:非工作日加班时,录入加班天数。用于后续加班工资计算。
- 节假日/调休管理:录入每年节假日、调休数据(录入周一至周五放假的日期及周六周日需上班的日期)。
- 年假管理:年初录入每个员工每年的年假周期及年假天数。
- 考勤周期录入:录入每月的考勤天数。
以上 11 张表单记录了每个员工每个月的基础薪资和考勤数据。
考勤相关的表单需要设计日期时间字段,后期可以根据日期计算出对应月份的工资数据。
2.2 智能助手设置
设置 3 个智能助手,用于「补签申请」数据同步至「考勤签到」表单。
- 补签申请提交后,自动在考勤表中新增一条数据。
- 后续流程审批属于修改数据,数据修改后,将修改的内容(包括补签时间等)同步至考勤签到表单中。
- 若考勤申批未通过,则需要自动删除考勤签到表中的这条数据。
2.3 数据工厂设置
数据工厂的设置,可以在数据工厂管理处,点击「工资计算」这个数据流进行查看:
工资计算时,需要用到考勤管理中的 4 张表单以及工资管理中的 3 张表单进行计算:
以下几张表单,需要对数据进行过滤,动态取出上月所有数据。如下图所示:
其中请假申请除了需要过滤出上月数据以外,还需要过滤出请假类型为「年假」的数据,便于后续考勤扣减中,需要将年假数据加回来。
以下几张表单需要通过日期、姓名字段对上月数据进行汇总,如下图所示:
这一步是因为计算个税时,需要用到历史累计个税来计算当前月份的个税:
通过数据工厂中的字段设置节点计算个税。如下图所示:
个税计算公式如下:
ROUND(IFS(累计应纳税所得额<=36000,累计应纳税所得额*0.03-累计至本月应纳税额辅助,
AND(36000<累计应纳税所得额,累计应纳税所得额<=144000),累计应纳税所得额*0.1-2520-
累计至本月应纳税额辅助,AND(144000<累计应纳税所得额,累计应纳税所得额<=300000),
累计应纳税所得额*0.2-16920-累计至本月应纳税额辅助,AND(300000<累计应纳税所得额,
累计应纳税所得额<=420000),累计应纳税所得额*0.25-31920-累计至本月应纳税额辅助,
AND(420000<累计应纳税所得额,累计应纳税所得额<=660000),累计应纳税所得额*0.3-52920-
累计至本月应纳税额辅助,AND(660000<累计应纳税所得额,累计应纳税所得额<=960000),
累计应纳税所得额*0.35-85920-累计至本月应纳税额辅助,960000<累计应纳税所得额,
累计应纳税所得额*0.45-181920-累计至本月应纳税额辅助),2)
注:这里的「累计至本月应纳税额辅助」数据是工资表中取的上上个月的数据,数据工厂中我们取的上月的考勤数据来计算本月应发工资,那么对于上个月而言,其实「累计至本月应纳税额辅助」也就是上月考勤数据的再上个月累计应纳税额。
由于同一个节点计算税后工资会触发数据工厂公式套嵌层级校验,因此可以另加一个字段设置节点来计算税后工资。
2.4 输出表同步
数据工厂计算得出的工资是基于上月考勤数据而计算的,假设每月的发工资日为 10 号,那么我们可以在每月的 10 号之前将上月的的工资数据同步至输出表。如下图所示:
同步周期为每月一次,同步时间为 1 号至 9 号中的一天,如 9 月 5 日零点同步:
2.5 数据自动新增
由于数据工厂的成环校验,在数据工厂计算时使用了工资表,那么同步时无法直接将输出表再同步至「工资表」。因此上一步我们同步数据的表为一个中间表,在数据同步完成后,需要通过智能助手将中间表的数据自动向「工资表」中新增工。
当「工资辅助表」修改数据后,自动向「工资表」中新增数据:
因为工资表为流程表单,因此触发动作选择「修改数据」。同时,流程设计时需要设置自动提交规则,在触发后的短期内,自动提交,从而触发工资表数据新增。
设置节点限时处理规则为流程到达的 1 分钟后自动提交流程,如下图所示:
注:这里同步表单选择流程表的原因是,输出表直接同步的数据无法触发智能助手,因此需要流程审批后再设置自动触发。
2.6 效果演示
工资辅助表中通过数据工厂同步了上月考勤对应的工资数据(示例数据为 2022 年 8 月),那么 9 月 10 日可以按照此工资计算发放员工工资。如下图所示:
当流程自动流程达到限时时间后,自动流转结束,同时自动向工资表中新增一份数据:
3. 注意事项
1)同步数据时,会将输出表的全部数据添加到表单中,不会删除表单中已有的数据
2)每次最多同步 20000 行、200 列数据,最多同时触发 300 条流程。即,如果您需要计算的工资人数大于 300 人,则无法通过此案例同步工资数据。
4. 个税计算器
假设每月全勤,工资不变,社保基数、专项扣除以及五险一金等缴纳金额不变,那么你可以通过下方个税计算器预测每月税后工资以及个税缴纳金额:
|