加班时长按0.5小时取整
【适用版本】
s-HR Cloud V8.8及以上
【应用场景】
计算加班时长时,小数部分小于0.5时取0,大于0.5时取5,例如:1.7->1.5,2.3->2,3.5->3.5
【详细说明/示例/操作步骤】
一、PC端
找到\eas\server\deploy\easweb.ear\shr_web.war\attendmanage\web\js\shr\ats\util\路径下的atsMlUtile.js文件
setTransNumValue方法内新增代码:
if(fieldName == 'entries_applyOTTime' || fieldName == 'entries_realOTTime'){
numStr = this.roundUp(numStr);
}
新增方法:
,roundUp: function (value) {
// 获取小数点后的第一位
var decimalPart = value - Math.floor(value);
if (decimalPart < 0.5) { // 如果小于等于 0.5,则直接返回Math.floor的值
return Math.floor(value);
} else { // 如果大于等于 0.5,则返回小数点第一位为 5
return Math.floor(value) + 0.5;
}
}
如图
二、移动端
1、找到我要加班单据js文件
2、新增方法
新增方法:
function roundUp(value) {
// 获取小数点后的第一位
var decimalPart = value - Math.floor(value);
if (decimalPart < 0.5) { // 如果小于等于 0.5,则直接返回Math.floor的值
return Math.floor(value);
} else { // 如果大于等于 0.5,则返回小数点第一位为 5
return Math.floor(value) + 0.5;
}
}
如图
3、修改代码
3.1 第一句代码
entry.applyOTTime = ((entry.otIntervalLength * entry.days - (entry.restTime || 0) / 60) || 0).toFixed(_this.decimal)
有两个地方需要修改:
修改为:
entry.applyOTTime = roundUp((entry.otIntervalLength * entry.days - (entry.restTime || 0) / 60) || 0)
3.2 第二句代码
entry.applyOTTime = ((entry.otIntervalLength * entry.days - entry.restTime / 60) || 0).toFixed(_this.decimal)
修改为:
entry.applyOTTime = roundUp((entry.otIntervalLength * entry.days - entry.restTime / 60) || 0)
3.3 第三句代码
entry.applyOTTime = (entry.otIntervalLength * entry.days - event.new_value / 60 || 0).toFixed(_this.decimal)
修改为:
entry.applyOTTime = roundUp(entry.otIntervalLength * entry.days - event.new_value / 60 || 0)
【注意事项/常见错误】
先备份再修改,不用重启服务器,扩展开发单据的同时也要记得扩展安装资源库。
以上仅为前端代码修改,因后台有重新计算时间,若要支持,需要后台同步修改。
加班时长按0.5小时取整
本文2024-09-22 21:54:32发表“s-hr cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-shr-123122.html