canTripBillEditEx.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. /****
  2. * 出差变更单拓展
  3. * 20250120
  4. * 匡原值_coyle
  5. */
  6. shr.defineClass("shr.ats.CanTripBillEditEx", shr.ats.CanTripBillEdit, {
  7. initalizeDOM: function () {
  8. shr.ats.CanTripBillEditEx.superClass.initalizeDOM.call(this);
  9. var that = this;
  10. },
  11. /**
  12. * 增加保存验证
  13. * @return {Boolean}
  14. */
  15. verify: function () {
  16. var that = this;
  17. var workArea = that.getWorkarea();
  18. $form = $('form', workArea);
  19. if (!$form.valid()) {
  20. return false;
  21. }
  22. var realbeginTime = atsMlUtile.getFieldOriginalValue("entries_realStartTime");
  23. var realendTime = atsMlUtile.getFieldOriginalValue("entries_realEndTime");
  24. var realTripDays = atsMlUtile.getFieldOriginalValue("entries_realTripDays");
  25. //202501
  26. var triptime = atsMlUtile.getFieldOriginalValue("entries_triptime");
  27. if (triptime <= 0) {
  28. shr.showError({message: jsBizMultLan.atsManager_canTripBillEdit_i18n_24});
  29. return false;
  30. }
  31. //出差变更开始时间不能大于请假确认 结束时间
  32. var regEx = new RegExp("\\-", "gi");
  33. realbeginTime = realbeginTime.replace(regEx, "/");
  34. realendTime = realendTime.replace(regEx, "/");
  35. var beginTimeOfDate = new Date(realbeginTime);
  36. var endTimeOfDate = new Date(realendTime);
  37. var longTime = endTimeOfDate.getTime() - beginTimeOfDate.getTime();
  38. if (longTime < 0) {
  39. shr.showWarning({message: jsBizMultLan.atsManager_canTripBillEdit_i18n_9});
  40. return false;
  41. }
  42. return true;
  43. }
  44. /**
  45. * 计算 设置出差变更单中,实际出差开始时间,实际出差结束时间之间的时长
  46. */
  47. , getRealTripLength: function () {
  48. var that = this;
  49. var personId = $("#entries_person_el").val();
  50. var startTime;
  51. var endTime;
  52. var startDate;
  53. var endDate;
  54. var tripBillId = $('#entries_tripEntryBill_el').val();
  55. var startTimeStr = atsMlUtile.getFieldOriginalValue("entries_realStartTime");
  56. var endTimeStr = atsMlUtile.getFieldOriginalValue("entries_realEndTime");
  57. if (startTimeStr != "" && startTimeStr != null && endTimeStr != "" && endTimeStr != null) {
  58. startTime = startTimeStr.replace("\\/", "-");
  59. endTime = endTimeStr.replace("\\/", "-");
  60. if (startTime.substring(0, 16) > endTime.substring(0, 16)) {
  61. return;
  62. }
  63. var isAllDay = atsMlUtile.getFieldOriginalValue("entries_isAllDay");
  64. that.remoteCall({
  65. type: "post",
  66. async: false,
  67. method: "getRealLeaveLengthInfo",
  68. param: {
  69. personId: personId,
  70. beginTime: startTime,
  71. endTime: endTime,
  72. tripBillId: tripBillId,
  73. isAllDay: isAllDay,
  74. isElasticCalLen: $("#entries_isElasticCalLen").shrCheckbox("isSelected")
  75. },
  76. success: function (res) {
  77. info = res;
  78. var day = parseFloat(info.leaveBillDays);
  79. day = day.toFixed(atsMlUtile.getSysDecimalPlace());
  80. atsMlUtile.setTransNumValue("entries_realTripDays", day);
  81. //二开拓展 202501
  82. that.tripTimeVal(day);
  83. }
  84. });
  85. }
  86. }
  87. ,setRealStartAndEndTime: function (res) {
  88. var that = this;
  89. atsMlUtile.setTransDateTimeValue("entries_realStartTime", res.startTime);
  90. atsMlUtile.setTransDateTimeValue("entries_realEndTime", res.endTime);
  91. atsMlUtile.setTransNumValue("entries_realTripDays", res.tripDays);
  92. //二开拓展 202501
  93. //计算总时间 定制 向上取整
  94. var dayVal = res.tripDays;
  95. var triptime = 0;
  96. if(dayVal == 0.29 || dayVal == 0.43 || dayVal == 0.86){
  97. triptime = Math.floor( dayVal * 7 );
  98. }else{
  99. triptime = Math.ceil( dayVal * 7 );
  100. }
  101. atsMlUtile.setTransNumValue("entries_triptime", triptime);
  102. $('#entries_startTimeDateType').shrSelect("setValue", res.startTimeDateType ? res.startTimeDateType.value : "1");
  103. $('#entries_endTimeDateType').shrSelect("setValue", res.endTimeDateType ? res.endTimeDateType.value : "1");
  104. that.setDateAndHMS(res.startTime, res.endTime);
  105. },
  106. //202501 二开拓展时长
  107. tripTimeVal: function (dayVal) {
  108. var triptime = 0;
  109. if(dayVal == 0.29 || dayVal == 0.43 || dayVal == 0.86){
  110. triptime = Math.floor( dayVal * 7 );
  111. }else{
  112. triptime = Math.ceil( dayVal * 7 );
  113. }
  114. atsMlUtile.setTransNumValue("entries_triptime", triptime);
  115. }
  116. });