找回密码
 注册成为天翎用户
查看: 1043|回复: 1

[已解决] 请假时间与工作日历的关系

[复制链接]
yina0902 发表于 2017-11-9 10:25:44 | 显示全部楼层 |阅读模式
本帖最后由 Jay 于 2017-11-14 14:22 编辑

案例:需要做一个请假表,其中事假、补休都是按照正常的工作日期,但是产假、丧假这些跨周末,也就是需要跨非工作日计算的假期怎么弄?是能获取不同的工作日历 还是在计算天数的基础上,增加时间段内的非工作日天数;

如:A请陪产假8天,请假时间为11月9日(周四)至11月16日(周四),如果按照普通的计算,那么会扣掉11月11日(周六)、11月12日(周日)两个非工作日,显示请假6天,但对于陪产假来说,非工作日也是包含在假期里面的。但如果是请事假,那就是请假6天。

请问该如何实现?
Q:339811786
Jay 发表于 2017-11-9 11:06:13 | 显示全部楼层
您好,您参考一下这里的代码,稍改下字段名就可以了
  1. (function(){
  2.             var style = getItemValueAsString("请假类别");
  3.                 var starttime1 = getItemValueAsString("请假开始日期");
  4.                 var endtime1 = getItemValueAsString("请假结束日期");
  5.                 var diffday = 0;
  6.                 var day="";
  7.                 var hour="";
  8.                 if (starttime1 != null && endtime1 != null && !"".equals(starttime1) && !"".equals(endtime1)) {
  9.                         if("产假".equals(style)){
  10.                                 diffday = diffHours(starttime1, endtime1);
  11.                                 if (diffday + 1 > round(diffday, 0) + 1) {
  12.                                 diffday = round(diffday, 0) + 1;
  13.                             } else {
  14.                                 diffday = round(diffday, 0);
  15.                             }
  16.                                 day = toFloor(diffday/24);
  17.                                 hour = diffday%24;
  18.                         }else{       
  19.                                 diffday = getWorkingTimesCount(starttime1, endtime1);
  20.                                 if (diffday + 1 > round(diffday, 0) + 1) {
  21.                                 diffday = round(diffday, 0) + 1;
  22.                             } else {
  23.                                 diffday = round(diffday, 0);
  24.                             }
  25.                                 day = toFloor(diffday/8);
  26.                                 hour = diffday%8;
  27.                         }
  28.                        
  29.                 }
  30.                 var _curDoc = getCurrentDocument();
  31.                 _curDoc.findItem("请假小时").setValue(hour);
  32.                 return day;
  33. })();
复制代码
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 22:18

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表