atsOverTimeBillBatchEditEx.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719
  1. shr.defineClass("shr.customer.gtiit.AtsOverTimeBillBatchEditEx", shr.ats.AtsOverTimeBillBatchEdit, {
  2. initalizeDOM:function(){
  3. shr.customer.gtiit.AtsOverTimeBillBatchEditEx.superClass.initalizeDOM.call(this);
  4. var that = this;
  5. var entries_cont = waf("#entries");
  6. entries_cont.jqGrid("option", {
  7. onChange: function (rowid, cellname, value, iRow, iCol) {
  8. console.log(rowid, cellname, value, iRow, iCol, 123123);
  9. },
  10. // 其他配置...
  11. beforeEditCell: function (rowid, cellname, value, iRow, iCol) {
  12. console.log("进入编辑前:", rowid, cellname, value, iRow, iCol);
  13. },
  14. beforeSaveCell: function (
  15. rowid,
  16. cellname,
  17. value,
  18. iRow,
  19. iCol
  20. ) {
  21. },
  22. afterSaveCell: function (rowid, cellname, value, iRow, iCol) {
  23. if (value["adminOrgUnit.id"]) {
  24. $("#entries").jqGrid(
  25. "setCell",
  26. rowid,
  27. "adminOrgUnit.id",
  28. value["adminOrgUnit.id"]
  29. );
  30. }
  31. that.removePreShowError(rowid);
  32. if (cellname == "otDate") {
  33. var val = value;
  34. if (val.length <= 10) {
  35. val = val + " 00:00:00";
  36. }
  37. val &&
  38. $("#entries").jqGrid(
  39. "setCell",
  40. rowid,
  41. "startTime",
  42. val
  43. );
  44. val &&
  45. $("#entries").jqGrid(
  46. "setCell",
  47. rowid,
  48. "endTime",
  49. val
  50. );
  51. that.changeOverTimeType(rowid);
  52. that.calRestTimeLen(rowid);
  53. that.getOTContrlParams(rowid);
  54. }
  55. if (cellname == "otType") {
  56. that.changeOTCompens(rowid);
  57. that.countOvertimeHourAction();
  58. }
  59. // 添加 开始时间 结束时间 休息时长(分钟) 响应时间
  60. if (
  61. cellname == "startTime" ||
  62. cellname == "endTime" ||
  63. cellname == "restTime"
  64. ) {
  65. if (cellname != "restTime") {
  66. that.calRestTimeLen(rowid);
  67. }
  68. that.calculateOTtimes(rowid);
  69. }
  70. if (cellname == "person") {
  71. that.calRestTimeLen(rowid);
  72. that.getOTContrlParams(rowid);
  73. }
  74. if (cellname == "applyOTTime") {
  75. // 加班小时数 发生改变就给予提示
  76. that.changOtTimeTipInfo(rowid);
  77. that.countOvertimeHourAction();
  78. }
  79. if (cellname == "otCompens") {
  80. that.countOvertimeHourAction();
  81. }
  82. if (
  83. cellname == "restStartTime" ||
  84. cellname == "restStartTime2" ||
  85. cellname == "restEndTime" ||
  86. cellname == "restEndTime2"
  87. ) {
  88. //计算休息时间,加班时间
  89. var startTime = $("#entries").jqGrid(
  90. "getCell",
  91. rowid,
  92. "startTime"
  93. );
  94. var endTime = $("#entries").jqGrid(
  95. "getCell",
  96. rowid,
  97. "endTime"
  98. );
  99. var restStartTime = $("#entries").jqGrid(
  100. "getCell",
  101. rowid,
  102. "restStartTime"
  103. );
  104. var restEndTime = $("#entries").jqGrid(
  105. "getCell",
  106. rowid,
  107. "restEndTime"
  108. );
  109. var restStartTime2 = $("#entries").jqGrid(
  110. "getCell",
  111. rowid,
  112. "restStartTime2"
  113. );
  114. var restEndTime2 = $("#entries").jqGrid(
  115. "getCell",
  116. rowid,
  117. "restEndTime2"
  118. );
  119. if (startTime == "" || endTime == "") {
  120. return;
  121. }
  122. var totalRestTime = 0;
  123. var totalRestTimeLong = 0;
  124. var restStartTimeOfDate;
  125. var restEndTimeOfDate;
  126. if(shr.getBowserInfo().browser === 'IE' || shr.getBowserInfo().browser === 'Safari'){
  127. restStartTime = restStartTime.replace(/-/g,'/');
  128. restEndTime = restEndTime.replace(/-/g,'/');
  129. restStartTime2 = restStartTime2.replace(/-/g,'/');
  130. restEndTime2 = restEndTime2.replace(/-/g,'/');
  131. }
  132. if (restStartTime != "" && restEndTime != "") {
  133. restStartTimeOfDate = new Date(restStartTime);
  134. restEndTimeOfDate = new Date(restEndTime);
  135. var times =
  136. restEndTimeOfDate.getTime() -
  137. restStartTimeOfDate.getTime();
  138. if (times < 0) {
  139. times = 0;
  140. }
  141. totalRestTimeLong += times;
  142. times = times / 1000 / 60;
  143. totalRestTime += times;
  144. }
  145. if (restStartTime2 != "" && restEndTime2 != "") {
  146. var restStartTime2OfDate = new Date(restStartTime2);
  147. var restEndTime2OfDate = new Date(restEndTime2);
  148. if (
  149. (restStartTime != "" &&
  150. restEndTime2OfDate.getTime() >
  151. restStartTimeOfDate.getTime() &&
  152. restStartTimeOfDate.getTime() >=
  153. restStartTime2OfDate.getTime()) ||
  154. (restEndTime != "" &&
  155. restEndTimeOfDate.getTime() <=
  156. restEndTime2OfDate.getTime() &&
  157. restStartTime2OfDate.getTime() <
  158. restEndTimeOfDate.getTime()) ||
  159. (restStartTime != "" &&
  160. restEndTime != "" &&
  161. restEndTimeOfDate.getTime() >=
  162. restEndTime2OfDate.getTime() &&
  163. restStartTime2OfDate.getTime() >=
  164. restStartTimeOfDate.getTime())
  165. ) {
  166. //时间有交叉
  167. $("#entries").jqGrid(
  168. "setCell",
  169. rowid,
  170. "restEndTime2",
  171. restStartTime2
  172. );
  173. } else {
  174. var times =
  175. restEndTime2OfDate.getTime() -
  176. restStartTime2OfDate.getTime();
  177. if (times < 0) {
  178. times = 0;
  179. }
  180. totalRestTimeLong += times;
  181. times = times / 1000 / 60;
  182. totalRestTime += times;
  183. }
  184. }
  185. var t1 = totalRestTime.toFixed(
  186. atsMlUtile.getSysDecimalPlace()
  187. );
  188. $("#entries").jqGrid("setCell", rowid, "restTime", t1);
  189. var startTime = NewDate(startTime + ":00");
  190. var endTime = NewDate(endTime + ":00");
  191. var se =
  192. endTime.getTime() -
  193. startTime.getTime() -
  194. totalRestTimeLong; // 毫秒
  195. var tfl = se / (3600 * 1000);
  196. $("#entries").jqGrid(
  197. "setCell",
  198. rowid,
  199. "applyOTTime",
  200. tfl
  201. );
  202. that.getOTContrlParams(rowid);
  203. that.countOvertimeHourAction();
  204. }
  205. },
  206. afterEditCell: function (rowid, cellname, value, iRow, iCol) {
  207. if (
  208. cellname == "otType" &&
  209. that.OTContrlParams[rowid] &&
  210. that.OTContrlParams[rowid].isOtrolByDateType
  211. ) {
  212. $("#" + iRow + "_otType").shrPromptBox("disable");
  213. }
  214. if (cellname == "otCompens") {
  215. if (that.filter[rowid] == undefined) {
  216. // R20221006-0542 修复选择加班费后 再点击“补偿方式”F7就变成了调休的问题
  217. // that.changeOTCompens(rowid);
  218. }
  219. if (that.filter[rowid]) {
  220. // $("#"+rowid+"_otCompens").shrPromptBox("setFilter",that.filter[rowid]);
  221. $(
  222. "#" +
  223. $("#entries").jqGrid(
  224. "getCell",
  225. rowid,
  226. "rn"
  227. ) +
  228. "_otCompens"
  229. ).shrPromptBox("setFilter", that.filter[rowid]);
  230. }
  231. }
  232. if (cellname == "person") {
  233. var hrOrgUnitId = $("#hrOrgUnit_el").val();
  234. $("#" + rowid + "_person")
  235. .shrPromptBox()
  236. .attr("data-params", hrOrgUnitId);
  237. $("#" + iRow + "_person").shrPromptBox("option", {
  238. onchange: function (e, value) {
  239. $("#entries").jqGrid(
  240. "setCell",
  241. rowid,
  242. "person.number",
  243. value.current
  244. ? value.current["person.number"]
  245. : ""
  246. );
  247. }
  248. });
  249. }
  250. if(cellname == "attAdminOrgUnit"){
  251. var personId = $("#entries").jqGrid("getCell", rowid, "person").id;
  252. var attendanceDate = $("#entries").jqGrid("getCell", rowid, "otDate");
  253. if(!(personId && attendanceDate)){
  254. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_YM_999});
  255. return false;
  256. }else{
  257. //$("#"+rowid+"_attPosition").shrPromptBox().attr("data-params", adminOrg);
  258. $("#"+iRow+"_attAdminOrgUnit").shrPromptBox("setOtherParams", {
  259. personId: personId,
  260. attendanceDate: attendanceDate
  261. });
  262. }
  263. }
  264. }
  265. });
  266. this.updateCalWidth();
  267. },
  268. updateCalWidth:function(inWidth){
  269. // 获取jqGrid的引用
  270. var $grid = $("#entries");
  271. // 获取列模型
  272. var colModel = $grid.jqGrid('getGridParam', 'colModel');
  273. // 找到 'startTime' 列的索引
  274. var columnIndex = -1;
  275. $.each(colModel, function (i, col) {
  276. if (col.name === 'startTime' || col.name === 'endTime'
  277. || col.name === 'restStartTime' || col.name === 'restEndTime'
  278. || col.name === 'restStartTime2' || col.name === 'restEndTime2'
  279. || col.name === 'realStartTime' || col.name === 'realEndTime') {
  280. columnIndex = i;
  281. // 设置新的列宽
  282. var newWidth = inWidth?inWidth:75; // 新的宽度值
  283. // 调整列标题的宽度
  284. $('.ui-jqgrid-labels > th:eq(' + columnIndex + ')').css('width', newWidth + 'px');
  285. // 调整列内容的宽度
  286. $grid.find('tbody tr').each(function () {
  287. var $td = $(this).find('td:eq(' + columnIndex + ')');
  288. $td.css('width', newWidth + 'px');
  289. });
  290. // 调整jqGrid的列宽(确保jqGrid内部状态更新)
  291. $grid.jqGrid('setColProp', col.name, { width: newWidth });
  292. }
  293. });
  294. },
  295. calculateOTtimes: function (rowid) {
  296. var startTime = $("#entries").jqGrid("getCell", rowid, "startTime");
  297. var endTime = $("#entries").jqGrid("getCell", rowid, "endTime");
  298. var restTime = $("#entries").jqGrid("getCell", rowid, "restTime");
  299. if (startTime == "[object Object]") {
  300. $("#" + rowid)
  301. .find("td")
  302. .eq("5")
  303. .text("");
  304. $("#" + rowid)
  305. .find("td")
  306. .eq("5")
  307. .attr("title", "");
  308. }
  309. if (endTime == "[object Object]") {
  310. $("#" + rowid)
  311. .find("td")
  312. .eq("6")
  313. .text("");
  314. $("#" + rowid)
  315. .find("td")
  316. .eq("6")
  317. .attr("title", "");
  318. }
  319. if (startTime != "" && endTime != "") {
  320. var restVal = 0;
  321. if (restTime != "" && /^[0-9]*$/.test(restTime)) {
  322. restVal = restTime; // 分钟数
  323. }
  324. var startTime = NewDate(startTime + ":00");
  325. var endTime = NewDate(endTime + ":00");
  326. var se =
  327. endTime.getTime() -
  328. startTime.getTime() -
  329. restVal * 1000 * 60; // 毫秒
  330. var tfl = se / (3600 * 1000);
  331. $("#entries").jqGrid(
  332. "setCell",
  333. rowid,
  334. "applyOTTime",
  335. tfl.toFixed(fixedNum)
  336. );
  337. this.countOvertimeHourAction();
  338. }
  339. },
  340. getOverTimeType: function (rowid, otDate, personId) {
  341. var _self = this;
  342. var tDate = otDate;
  343. var url =
  344. shr.getContextPath() +
  345. "/dynamic.do?method=getOverTimeTypeAndOtCompens";
  346. url +=
  347. "&otDate=" +
  348. encodeURIComponent(otDate) +
  349. "&personId=" +
  350. encodeURIComponent(personId)+"&uipk="+shr.getUrlRequestParam('uipk');
  351. $.ajax({
  352. url: url,
  353. async: false,
  354. success: function (response) {
  355. if (
  356. response.otTypeValue != null &&
  357. response.otTypeValue != undefined &&
  358. response.otTypeValue != ""
  359. ) {
  360. var responseObejct = {
  361. id: response.otTypeValue,
  362. name: response.otTypeText
  363. };
  364. if (_self.isOtTypeEffective(response.otTypeValue)) {
  365. // $('#entries').restoreCell(rowid,4); // 先恢复单元格状态再重新赋值,可以避免
  366. $("#entries").jqGrid(
  367. "setCell",
  368. rowid,
  369. "otType",
  370. responseObejct
  371. );
  372. //设置该加班类型的补偿方式过滤
  373. var otCompensIds = _self.getOTCompensByOTType(
  374. personId,
  375. response.otTypeValue,
  376. tDate
  377. );
  378. if (otCompensIds) {
  379. var otCompensIdsStr = _self
  380. .getOTCompensByOTType(
  381. personId,
  382. response.otTypeValue,
  383. tDate
  384. )
  385. .replace(/(,)/g, "','");
  386. _self.filter[rowid] =
  387. "BaseInfo.id in ('" +
  388. otCompensIdsStr +
  389. "')";
  390. }
  391. var compens = response.compensInfo;
  392. if (compens != null) {
  393. var defaultJson = {
  394. id: compens.id,
  395. name: compens.name
  396. };
  397. $("#entries").jqGrid(
  398. "setCell",
  399. rowid,
  400. "otCompens",
  401. defaultJson
  402. );
  403. }
  404. } else {
  405. $("#entries").jqGrid(
  406. "setCell",
  407. rowid,
  408. "otType",
  409. null
  410. );
  411. }
  412. }else{
  413. $("#entries").jqGrid('setCell',rowid,"otType",null);
  414. }
  415. },
  416. error: function (response) {}
  417. });
  418. _self.changeWorkType(rowid);
  419. _self.countOvertimeHourAction();
  420. },
  421. changeOTCompens: function (rowid) {
  422. var that = this;
  423. var otCompensId;
  424. if (!$("#entries").jqGrid("getCell", rowid, "otType")) {
  425. return;
  426. } else {
  427. otTypeId = $("#entries").jqGrid("getCell", rowid, "otType").id;
  428. }
  429. if (!$("#entries").jqGrid("getCell", rowid, "person")) {
  430. return;
  431. } else {
  432. var personId = $("#entries").jqGrid("getCell", rowid, "person").id;
  433. }
  434. if (!$("#entries").jqGrid("getCell", rowid, "otDate")) {
  435. return;
  436. } else {
  437. var otDate = $("#entries").jqGrid("getCell", rowid, "otDate");
  438. }
  439. var otCompensIds = that.getOTCompensByOTTypes(personId, otTypeId);
  440. var url =
  441. shr.getContextPath() +
  442. "/dynamic.do";
  443. that.remoteCall({
  444. type: "post",
  445. method: "getDefaultOTCompens",
  446. url: url,
  447. param: {
  448. personId: personId,
  449. otTypeId: otTypeId,
  450. otDate: otDate
  451. },
  452. async: false,
  453. success: function (res) {
  454. var info = res;
  455. if (info.defaultId == "" || info.defaultId == undefined) {
  456. shr.showWarning({
  457. message:
  458. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_28
  459. });
  460. } else {
  461. var defaultOTCompens = {
  462. id: info.defaultId,
  463. name: info.defaultName
  464. };
  465. $("#entries").jqGrid(
  466. "setCell",
  467. rowid,
  468. "otCompens",
  469. defaultOTCompens
  470. );
  471. if (otCompensIds) {
  472. var otCompensIdsStr = otCompensIds.replace(
  473. /(,)/g,
  474. "','"
  475. );
  476. that.filter[rowid] =
  477. "BaseInfo.id in ('" + otCompensIdsStr + "')";
  478. }
  479. }
  480. }
  481. });
  482. that.countOvertimeHourAction();
  483. },
  484. verify: function () {
  485. var _self = this;
  486. var obj = $("#entries").jqGrid("getRowData");
  487. var errorString = "";
  488. var errorFlag = 0;
  489. var billerrorString = "";
  490. if (obj.length == 0) {
  491. shr.showWarning({
  492. message:
  493. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_7
  494. });
  495. return false;
  496. }
  497. if (!_self.checkRowIsOver()) {
  498. // closeLoader();
  499. return false;
  500. }
  501. _rowMap = {};
  502. openLoader(
  503. 1,
  504. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_29
  505. );
  506. jQuery(obj).each(function (n) {
  507. errorString = _self.checkEveryRow(n + 1, this);
  508. if (errorString) {
  509. _self.preShowError(
  510. n + 1,
  511. this.person.name + " " + errorString
  512. );
  513. billerrorString =
  514. billerrorString +
  515. shr.formatMsg(
  516. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_44,
  517. [n + 1]
  518. ) +
  519. errorString;
  520. errorFlag = 1;
  521. }
  522. });
  523. if (errorString && errorString != "") {
  524. var showMes = "";
  525. showMes += billerrorString.replace(/。/g, "。</br>");
  526. shr.showWarning({ message: showMes });
  527. closeLoader();
  528. return false;
  529. }
  530. errorString = _self.validateOTEntry();
  531. if (errorString && errorString != "") {
  532. shr.showWarning({ message: errorString });
  533. closeLoader();
  534. return false;
  535. }
  536. var hasOtType = _self.checkOtType();
  537. if (!hasOtType) {
  538. return false;
  539. }
  540. if (errorFlag == 0) {
  541. //工作流审批界面,加班补提控制。
  542. var boo = true;
  543. boo = _self.validateIsFillOtVerify();
  544. closeLoader();
  545. // if(!_self.checkOtDate()){
  546. // return false;
  547. // }
  548. return boo;
  549. } else {
  550. closeLoader();
  551. return false;
  552. }
  553. },
  554. changeWorkType: function (rowid) {
  555. var that = this;
  556. var otDate;
  557. if (!$("#entries").jqGrid("getCell", rowid, "otDate")) {
  558. return;
  559. } else {
  560. otDate = $("#entries").jqGrid("getCell", rowid, "otDate");
  561. }
  562. _self.remoteCall({
  563. type:"post",
  564. async: false,
  565. method:"workMultiple",
  566. param:{otDate:otDate},
  567. success:function(res){
  568. if(res.otTypeValue){
  569. var responseObejct = {id: res.otTypeValue,name: res.otTypeText};
  570. $("#entries").jqGrid("setCell",rowid,"otType",responseObejct);
  571. }
  572. }
  573. });
  574. var otType = $("#entries").jqGrid("getCell",rowid,"otType");
  575. if(!otType){
  576. _self.remoteCall({
  577. type:"post",
  578. async: false,
  579. method:"jobType",
  580. param:{otDate:otDate},
  581. success:function(res){
  582. if(res.otTypeValue){
  583. var responseObejct = {id: res.otTypeValue,name: res.otTypeText};
  584. $("#entries").jqGrid("setCell",rowid,"otType",responseObejct);
  585. }
  586. }
  587. });
  588. }
  589. },
  590. /**
  591. * 删除行
  592. */
  593. deleteRowAction: function(event) {
  594. var $editGrid = this.getEditGrid(event.currentTarget);
  595. var ids = $editGrid.jqGrid('getSelectedRows');
  596. if (ids.length > 0) {
  597. for (var i = ids.length - 1; i >= 0; i--) {
  598. $editGrid.jqGrid('delRow', ids[i]);
  599. }
  600. this.countOvertimeHourAction();
  601. }else{
  602. shr.showInfo({
  603. message: $.shrI18n.common.tips.chooseTableDataFirst,
  604. hideAfter: 3
  605. });
  606. }
  607. },
  608. countOvertimeHourAction:function(){
  609. var allRowData = $("#entries").jqGrid("getAllRowData");
  610. var length = allRowData.length;
  611. var weekdayHour = 0;//工作日加班小时数
  612. var restdayHour = 0;//休息日加班小时数
  613. var holidayHour = 0;//法定节假日加班小时数
  614. var totalDuration = 0;//加班总时长
  615. var compensatoryTotal = 0;//调休加班总时长
  616. var totalOvertimePay = 0;//加班费加班总时长
  617. for(var i=0; i<length; i++){
  618. var otType = allRowData[i].otType.id;
  619. var applyOTTime = allRowData[i].applyOTTime;
  620. var otCompens = allRowData[i].otCompens.id;
  621. if(applyOTTime == ""){
  622. continue;
  623. }
  624. if(otType == "rBy0u1YgQ9C1OxcM85mxyY6C/nU="){
  625. weekdayHour = Number(weekdayHour)+Number(applyOTTime);
  626. }else if(otType == "zr+ur5D4RA+2bdVZ2VPqp46C/nU="){
  627. restdayHour = Number(restdayHour)+Number(applyOTTime);
  628. }else if(otType == "sRWUOt7sRpOY0TCo6NMqGY6C/nU="){
  629. holidayHour = Number(holidayHour)+Number(applyOTTime);
  630. }
  631. if(otCompens == "AERg0TIcSnaM40EKvJCdRKlrTmA="){
  632. compensatoryTotal = Number(compensatoryTotal)+Number(applyOTTime);
  633. }else if(otCompens == "zkbt5bMLQ3ehUivmKbtBOqlrTmA="){
  634. totalOvertimePay = Number(totalOvertimePay)+Number(applyOTTime);
  635. }
  636. }
  637. totalDuration = Number(weekdayHour)+Number(restdayHour)+Number(holidayHour);
  638. // $("#weekdayHour").val(weekdayHour);
  639. // $("#restdayHour").val(restdayHour);
  640. // $("#holidayHour").val(holidayHour);
  641. // $("#totalDuration").val(totalDuration);
  642. // $("#compensatoryTotal").val(compensatoryTotal);
  643. // $("#totalOvertimePay").val(totalOvertimePay);
  644. this.getField("weekdayHour").shrNumberField("setValue",weekdayHour);
  645. this.getField("restdayHour").shrNumberField("setValue",restdayHour);
  646. this.getField("holidayHour").shrNumberField("setValue",holidayHour);
  647. this.getField("totalDuration").shrNumberField("setValue",totalDuration);
  648. this.getField("compensatoryTotal").shrNumberField("setValue",compensatoryTotal);
  649. this.getField("totalOvertimePay").shrNumberField("setValue",totalOvertimePay);
  650. },
  651. checkOtDate:function(){
  652. var allRowData = $("#entries").jqGrid("getAllRowData");
  653. for(var i=0; i<allRowData.length; i++){
  654. var otDate = allRowData[i].otDate;
  655. otDate = new Date(otDate);
  656. const currentDate = new Date();
  657. const lastMonthDate = new Date(currentDate.getFullYear(), currentDate.getMonth() - 1, currentDate.getDate());
  658. var lastYear = lastMonthDate.getFullYear();
  659. var lastMonth = lastMonthDate.getMonth();
  660. if(otDate.getMonth() != lastMonth || otDate.getFullYear() != lastYear){
  661. shr.showWarning({message: "Only overtime records with the previous month's overtime date can be submitted for the current month"});
  662. return false;
  663. }
  664. }
  665. return true;
  666. }
  667. });
  668. waf.defineCustomeClass("cellformatter.shrTextArea", cellformatter.defaultFormatter, {
  669. unformat: function (cell, rowId) {
  670. return $.trim($(cell).text());
  671. },
  672. format: function (cellval, rwd) {
  673. if (!$.type.isEmpty(cellval)) {
  674. return "<pre class='required' style='width:98%;color:rgb(153, 153, 153)'>" + cellval + "</pre>";
  675. } else {
  676. return cellformatter.defaultFormatter.prototype.format.call(this, cellval, rwd);
  677. }
  678. },
  679. });