月中离职扣款计算公式取值不对

2018/3/19 21:53:34济南用友

产品版本: 1022-用友T6-人事通标准版10.3 适用产品: T6系列
产品模块: 25-薪资管理 提交时间: 2012-06-12
问题现象:

在薪资模块设置的 月中离职扣款 计算公式 如下:

如果 ISNULL(人员基本信息.离职日期,会计期间最后一天)<>会计期间最后一天

那么
     如果 DaysBetween(会计期间第一天,人员基本信息.入职时间)<0
     那么
         如果 DaysBetween(会计期间第一天,人员基本信息.离职日期)>=0 
         那么
              如果 DaysBetween(会计期间最后一天,人员基本信息.离职日期)<0 
              那么
                    (薪资项目.基本工资  + 薪资项目.奖金 + 薪资项目.奖金调增 - 薪资项目.奖金调扣) * (DaysBetween(人员基本信息.离职日期,会计期间最后一天)) / 会计期间天数
              否则 0
              结束
         否则 0
         结束
     否则 0
     结束
否则 0
结束

此公式计算后,在职人员也会计算出月中离职扣款

原因分析: 经查,人事通后台数据库中,即使人员未离职,其leavedate(离职日期)字段也有值,值为'1900-01-01',而软件在计算时,会将为'1900-01-01'这个日期视为会计期间最后一天(case when 语句)。从而导致以上的计算公式会计算出在职人员的月中离职扣款。
解决方案:

首先通过员工类别来判断该员工是否已离职。更改后的公式如下:

如果 人员基本信息.职工类别='离职'
那么

如果 DaysBetween(会计期间第一天,人员基本信息.离职日期)>=0  那么
如果 DaysBetween(会计期间最后一天,人员基本信息.离职日期)<0  那么
(薪资项目.基本工资  + 薪资项目.奖金 + 薪资项目.奖金调增 - 薪资项目.奖金调扣) * (DaysBetween(人员基本信息.离职日期,会计期间最后一天)) / 会计期间天数
否则 0
结束
否则 0
结束
否则 0
结束

 

  • 设为首页
  • 济南用友|
  • 用友畅捷通软件山东济南销售服务中心|
  • 联系我们|
  • 鲁ICP备2021016587号-3
  • Copyright © 2021 山东一友信息科技有限公司