问题现象: | 环境:U890+SP1+最新补丁 问题模块:考勤休假 考勤休假管理中-日常业务-假期管理- 2012年年假额度的计算都不正确,按照计算公式中1-3年的年假额度应该是5天。比如0009这个,计算出来的年假额度应该是5天,但系统计算出来7天。查看了2011年该人员年假额度是2天。但是在上年已经休掉了。本期额度应该是5天。烦请帮忙处理,客户比较急,希望在下周一能处理完毕。 另外有一个考勤算法不会设置,客户每月计算是否全勤,在考勤算法中有一个全勤奖项目:先需要再加3个条件 1.入职日期在当月考勤期间前 2.考勤人员工号为D0001-D****的人员 3.考勤期间内无请假、调休记录; 以下是目前系统的全勤奖算法: 如果 考勤月结果.应出勤(天数)=0 那么 0 否则 (如果 考勤月结果.应出勤(天数)= 考勤月结果.调整后的月实际出勤时间(天数) 那么 1.0 否则 0 结束) 结束 (数据已上传至ftp/u8shanghai/煜鹏通讯.rar) |
问题原因: | |
解决方案: | 您好, 此问题【经查看数据/测试】现做如下分析与答复: 【问题原因】 问题1: 年假算的不对的原因是公式中有个条件的计算公式错误, 如果 MonthsBetween( 人员基本信息表.到职日期, @SYSLOGINDATE)>=12 并且 MonthsBetween( 人员基本信息表.到职日期, @SYSLOGINDATE)<24 那么 floor(5.00*((DaysBetween( 人员基本信息表.到职日期, Strtodate( 请假额度.请假期间+'-12-31'))-365)/365)) 这条公式中的,5*后面加一个括号,在最后再加一个括号就对了,上面是修改正确的, 应该是先除再乘.你定义的是先乘再除了. 问题2:增加的条件可以如下加进去,请自己测试是否算法正确 如果 考勤月结果.应出勤(天数)=0 那么 0 否则 (如果 考勤月结果.应出勤(天数)= 考勤月结果.调整后的月实际出勤时间(天数) 并且 考勤月结果.事假(小时)+ 考勤月结果.病假(小时)+ 考勤月结果.探亲假(小时)+ 考勤月结果.调休(小时)=0 并且 人员基本信息表.到职日期 < @sysTMPerionBegin 并且 人员基本信息表.工号 包含 'D0001-D%' 那么 1.0 否则 0 结束) 结束 |
相关补丁: | |
版本: | 8.90 |
模块: | 考勤管理 |
产品: | 人力资源 |
问题名称: | 上海-煜鹏通讯-肖亨安-考勤休假 |
最后更新: | 2012-02-27 23:24:06 |