shr.defineClass("shr.customer.gtiit.BatchSubmitShemeBillMySubmissionEditEx", shr.compensation.BatchSubmitShemeBillMySubmissionEdit, { initalizeDOM:function(){ shr.customer.gtiit.BatchSubmitShemeBillMySubmissionEditEx.superClass.initalizeDOM.call(this); }, setGridNameEvent: function() { var _self = this; $entry = $('#entry'); $entry.jqGrid("option",{ afterSaveCell: function (rowid, cellname, value, iRow, iCol, rowData) { if(cellname == "startTime" || cellname == "endTime" || cellname == "restStartTime" || cellname == "restEndTime"){ //发生日期 var effectTime = $("#entry").jqGrid("getCell",rowid,"effectDate"); var cellTime = $("#entry").jqGrid("getCell",rowid,cellname); if(effectTime && cellTime){ var effectDate = _self.convertTimeZone(effectTime); let year = effectDate.getFullYear(); // 获取年份(4位数) let month = effectDate.getMonth() + 1; // 获取月份(0-11,需要加1) let day = effectDate.getDate(); // 获取日期(1-31) // 格式化为年月日字符串 let formattedDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`; var cellTimeOfDate = new Date(cellTime); let hours = cellTimeOfDate.getHours(); // 获取小时(0-23) let minutes = cellTimeOfDate.getMinutes(); // 获取分钟(0-59) let formattedTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`; $("#entry").jqGrid("setCell",rowid,cellname,formattedDate+" "+formattedTime); } _self.countHourAndMultiple(rowid); } if(cellname == "effectDate"){ //发生日期 var effectTime = $("#entry").jqGrid("getCell",rowid,"effectDate"); var effectDate = new Date(); if(effectTime){ effectDate = new Date(effectTime); } effectDate = _self.convertTimeZone(effectTime); let year = effectDate.getFullYear(); // 获取年份(4位数) let month = effectDate.getMonth() + 1; // 获取月份(0-11,需要加1) let day = effectDate.getDate(); // 获取日期(1-31) // 格式化为年月日字符串 let formattedDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`; //开始时间 var startTime = $("#entry").jqGrid("getCell",rowid,"startTime"); //结束时间 var endTime = $("#entry").jqGrid("getCell",rowid,"endTime"); //休息开始时间 var restStartTime = $("#entry").jqGrid("getCell",rowid,"restStartTime"); //休息结束时间 var restEndTime = $("#entry").jqGrid("getCell",rowid,"restEndTime"); if(startTime){ var startTimeOfDate = new Date(startTime); let hours = startTimeOfDate.getHours(); // 获取小时(0-23) let minutes = startTimeOfDate.getMinutes(); // 获取分钟(0-59) let formattedTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`; $("#entry").jqGrid("setCell",rowid,"startTime",formattedDate+" "+formattedTime); } if(endTime){ var endTimeOfDate = new Date(endTime); let hours = endTimeOfDate.getHours(); // 获取小时(0-23) let minutes = endTimeOfDate.getMinutes(); // 获取分钟(0-59) let formattedTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`; $("#entry").jqGrid("setCell",rowid,"endTime",formattedDate+" "+formattedTime); } if(restStartTime){ var restStartTimeOfDate = new Date(restStartTime); let hours = restStartTimeOfDate.getHours(); // 获取小时(0-23) let minutes = restStartTimeOfDate.getMinutes(); // 获取分钟(0-59) let formattedTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`; $("#entry").jqGrid("setCell",rowid,"restStartTime",formattedDate+" "+formattedTime); } if(restEndTime){ var restEndTimeOfDate = new Date(restEndTime); let hours = restEndTimeOfDate.getHours(); // 获取小时(0-23) let minutes = restEndTimeOfDate.getMinutes(); // 获取分钟(0-59) let formattedTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`; $("#entry").jqGrid("setCell",rowid,"restEndTime",formattedDate+" "+formattedTime); } _self.countHourAndMultiple(rowid); } }, "afterEditCell":function(rowid, colName, value,iRow, iCol,rowData){ if(colName === "person"){ var id = "#"+iRow + "_person"; var option = $(id).shrPromptBox("option"); var subWidgetOptions = option.subWidgetOptions subWidgetOptions.multiselect = true; subWidgetOptions.filter = " hrOrgUnit.id = '" + $("#hrOrgUnit").shrPromptBox("getValue").id + "'"; subWidgetOptions.otherParams = {adminOrgId:$("#adminOrg").shrPromptBox("getValue").id,hrOrgUnitId:$("#hrOrgUnit").shrPromptBox("getValue").id}; $(id).shrPromptBox("option",{ "subWidgetOptions":subWidgetOptions, "onchange":function(e, val) { var personData = val.current; var prevPersonData = val.previous; var length = personData.length; var newRowData = []; for(var i =0; i 0){ value = cur.children().attr('value'); } var type = "NUMBER"; if(!_self.checkNumValid(value, type)){ shr.showWarning({ message: $.cmpIntegrateI18n.submitBill.label11 /* 请输入正确格式 */, hideAfter : 9 }); $(tds[i]).focus(); $(tds[i]).css({ "border" : "solid 2px red" }); return false; }else{ $(tds[i]).css({ "border":"" }); } } //校验开始时间和结束时间不能有重叠 var allRowData = $("#entry").jqGrid("getAllRowData"); for(var i = 0; i < allRowData.length; i++){ var startTime = new Date(allRowData[i]["startTime"]); var endTime = new Date(allRowData[i]["endTime"]); for(var j = i+1; j < allRowData.length; j++){ var nextStartTime = new Date(allRowData[j]["startTime"]); var nextEndTime = new Date(allRowData[j]["endTime"]); if (startTime < nextEndTime && nextStartTime < endTime) { shr.showWarning({message:"Intersection between start and end times"}); return false; } } } //校验分录只能有一种职位 var positionSet = new Set(); //校验分录只能是同一个直接上级 var superiorSet = new Set(); for(var i = 0; i < allRowData.length; i++){ if(allRowData[i].position){ positionSet.add(allRowData[i].position.id); }else{ positionSet.add(""); } if(allRowData[i].superiorId){ superiorSet.add(allRowData[i].superiorId); }else{ superiorSet.add(""); } } if(positionSet.size > 1){ shr.showWarning({message:"Entries cannot have data from different positions"}); return false; } if(superiorSet.size > 1){ shr.showWarning({message:"The direct supervisor corresponding to the employee position in the entry must be consistent"}); return false; } var calSchemeField = "submitScheme_el"; if (_self.getOperateState() == 'VIEW') { calSchemeField = "submitScheme"; } var calSchemeId = $("#"+calSchemeField).val(); //是否勾选校验方案 var isPlanCheck = true; _self.remoteCall({ type:"post", async: false, method:"isTakeCheck", param:{calSchemeId:calSchemeId}, success:function(res){ isPlanCheck = res.isPlanCheck; } }); if(isPlanCheck){ for(var i = 0; i < allRowData.length; i++){ var beginContractDate = new Date(allRowData[i]["beginContractDate"]); var endContractDate = new Date(allRowData[i]["endContractDate"]); var effectDate = new Date(allRowData[i]["effectDate"]); if(beginContractDate && endContractDate){ //发生日期要在合同开始和结束日期之间 if(effectDateendContractDate){ shr.showWarning({message:"The occurrence date should be between the start and end dates of the contract"}); return false; } } } var flag = true; _self.remoteCall({ type:"post", async: false, method:"getInductionDate", param:{}, success:function(res){ if(res.enterDate){ var enterDate = new Date(res.enterDate); for(var i = 0; i < allRowData.length; i++){ var effectDate = new Date(allRowData[i]["effectDate"]); //发生日期不能小于入职日期 if(effectDate= 0; i--) { deleteRowIds += ids[i] + ","; $editGrid.jqGrid('delRow', ids[i]); } //新增页面,清除缓存数据 $("#entry")[0].p.data = []; this.clearDelEntryIdsFromDB(submitSchemeId, deleteRowIds); } var billId = $("#id").val(); //删除分录时如果这条数据已在数据库中,则会直接删除数据库记录,所以要重新计算单头的总工时和总金额 _self.remoteCall({ type:"post", async: false, method:"countHourAmount", param:{"billId":billId}, success:function(res){ } }); this.countHourAmount(); }, submitAction: function(event) { var _self = this; if (_self.validate() && _self.verify()) { var allRowData = $("#entry").jqGrid("getAllRowData"); // 获取当前日期 let currentDate = new Date(); // 获取本月的第一天 let firstDayOfCurrentMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1); // 获取上个月的第一天 let firstDayOfLastMonth = new Date(currentDate.getFullYear(), currentDate.getMonth() - 1, 1); if (currentDate.getMonth() === 0) { // 如果当前月份为1月,需要调整为上一年的12月 firstDayOfLastMonth.setFullYear(currentDate.getFullYear() - 1); } var calSchemeField = "submitScheme_el"; if (_self.getOperateState() == 'VIEW') { calSchemeField = "submitScheme"; } var calSchemeId = $("#"+calSchemeField).val(); var isPlanCheck = true; var isCurrentDepart = true; //获取是否勾选了 校验方案和离职方案 _self.remoteCall({ type:"post", async: false, method:"isTakeCheck", param:{calSchemeId:calSchemeId}, success:function(res){ isPlanCheck = res.isPlanCheck; isCurrentDepart = res.isCurrentDepart; } }); //勾选离职方案 if(isCurrentDepart){ var isDepartMonth = true; var cmpOrgRelationId = ""; for(var i = 0; i < allRowData.length; i++){ cmpOrgRelationId = allRowData[i].cmpEmpORelation.id; } //判断当月是否有离职生效日期或兼职失效日期在本月的数据 _self.remoteCall({ type:"post", async: false, method:"checkDepartDate", param:{cmpOrgRelationId:cmpOrgRelationId}, success:function(res){ isDepartMonth = res.flag; } }); //勾选离职方案后只能提交当月的数据 if(isDepartMonth){ for(var i = 0; i < allRowData.length; i++){ var effectDate = new Date(allRowData[i]["effectDate"]); if(!(effectDate.getFullYear()==currentDate.getFullYear() && effectDate.getMonth()==currentDate.getMonth())){ shr.showWarning({message:"Only allow submission of the occurrence date of the current month"}); return false; } } }else{ //当月没有离职或兼职失效数据时不允许提交 shr.showWarning({message:"The selected position does not have a resignation form that takes effect this month, or the expiration date of the part-time job is not within this month, so it cannot be submitted"}); return false; } }else if(isPlanCheck){ //校验XX号之后不允许提交 var submitDateMessage = ''; _self.remoteCall({ type:"post", async: false, method:"checkSumbitDate", param:{}, success:function(res){ submitDateMessage = res.resultMessage; } }); if(submitDateMessage){ shr.showWarning({message:submitDateMessage}); return false; } //勾选校验方案只能提交上月的数据 for(var i = 0; i < allRowData.length; i++){ var effectDate = new Date(allRowData[i]["effectDate"]); if(!(effectDate>=firstDayOfLastMonth && effectDate8) { //表格数据超过一定数量,限制高度 $("#entry").jqGrid('setGridHeight', 300); } shr.setIframeHeight(); } }; dataGrid_option.onPaging = function(){ } dataGrid_option.beforeReloadGrid = function() { if(!grid_readonly ) { waf("#entry").find('tr.selected-row').click(); var data = waf("#entry").jqGrid('getGridParam','data'); data.length = 0; waf("#entry").jqGrid('setGridParam',{data:$("#entry").jqGrid('getAllPageData'),datatype:'local'}); } shr.setIframeHeight(); } //选择表格前设置姓名过滤条件 dataGrid_option.beforeSelectRow = function() { _self.setNameF7Filter(); } //审批时有滚动条时,把右侧DIV右移了一些挡住了列表的滚动条,现在先给列表的父标签一个右内边距,这样就不会被挡道。 $('#entry_cont').css('padding-right','20px') waf("#entry").jqGrid(dataGrid_option).jqGrid("setFrozenColumns"); waf("#entry").jqGrid("resizeGrid", { base: waf("#entry"), offset: 0 }); waf(window).resize(function() { waf.ieHack.hackResize(function(e) { waf("#entry").jqGrid("resizeGrid", { base: waf("#entry"), offset: 0 }); }, waf("#entry")); }); $entry.jqGrid(dataGrid_option).trigger('reloadGrid'); //查看状态初始化分页 if(grid_readonly) { _self.initPage(); } if (_self.operateState == 'ADDNEW' || _self.operateState == 'EDIT') { _self.setGridNameEvent(); } if(!$("#entry_searchBar").length){ _self.initCmpEntrySearchBar(); } }, /** * 分录增加复制按钮 */ addCopyBtn: function() { var _self = this; var str = []; str.push(''); str.push(''); $("#deleteRow_entry").after(str.join("")); }, copyRowAction: function(event) { var $editGrid = this.getEditGrid(event.currentTarget); var ids = $editGrid.jqGrid('getSelectedRows'); if(!ids || ids.length===0){ shr.showWarning({message: $.cmpIntegrateI18n.common.selectRowMust /* 请先选择表格中的数据! */}); return; } for(var i = 0; i < ids.length; i++){ var getRowRealData = $("#entry").jqGrid("getRowRealData", ids[i]); getRowRealData.id = ''; $("#entry").jqGrid("addRow", {data:getRowRealData}); } } });