123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665 |
- shr.defineClass("shr.customer.gtiit.AtsOverTimeBillBatchEditEx", shr.ats.AtsOverTimeBillBatchEdit, {
- initalizeDOM:function(){
- shr.customer.gtiit.AtsOverTimeBillBatchEditEx.superClass.initalizeDOM.call(this);
- var that = this;
- var entries_cont = waf("#entries");
- entries_cont.jqGrid("option", {
- onChange: function (rowid, cellname, value, iRow, iCol) {
- console.log(rowid, cellname, value, iRow, iCol, 123123);
- },
- beforeSaveCell: function (
- rowid,
- cellname,
- value,
- iRow,
- iCol
- ) {},
- afterSaveCell: function (rowid, cellname, value, iRow, iCol) {
- if (value["adminOrgUnit.id"]) {
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "adminOrgUnit.id",
- value["adminOrgUnit.id"]
- );
- }
- that.removePreShowError(rowid);
- if (cellname == "otDate") {
- var val = value;
- if (val.length <= 10) {
- val = val + " 00:00:00";
- }
- val &&
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "startTime",
- val
- );
- val &&
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "endTime",
- val
- );
- that.changeOverTimeType(rowid);
- that.calRestTimeLen(rowid);
- that.getOTContrlParams(rowid);
- }
- if (cellname == "otType") {
- that.changeOTCompens(rowid);
- that.countOvertimeHourAction();
- }
- // 添加 开始时间 结束时间 休息时长(分钟) 响应时间
- if (
- cellname == "startTime" ||
- cellname == "endTime" ||
- cellname == "restTime"
- ) {
- if (cellname != "restTime") {
- that.calRestTimeLen(rowid);
- }
- that.calculateOTtimes(rowid);
- }
- if (cellname == "person") {
- that.calRestTimeLen(rowid);
- that.getOTContrlParams(rowid);
- }
- if (cellname == "applyOTTime") {
- // 加班小时数 发生改变就给予提示
- that.changOtTimeTipInfo(rowid);
- that.countOvertimeHourAction();
- }
- if (cellname == "otCompens") {
- that.countOvertimeHourAction();
- }
- if (
- cellname == "restStartTime" ||
- cellname == "restStartTime2" ||
- cellname == "restEndTime" ||
- cellname == "restEndTime2"
- ) {
- //计算休息时间,加班时间
- var startTime = $("#entries").jqGrid(
- "getCell",
- rowid,
- "startTime"
- );
- var endTime = $("#entries").jqGrid(
- "getCell",
- rowid,
- "endTime"
- );
- var restStartTime = $("#entries").jqGrid(
- "getCell",
- rowid,
- "restStartTime"
- );
- var restEndTime = $("#entries").jqGrid(
- "getCell",
- rowid,
- "restEndTime"
- );
- var restStartTime2 = $("#entries").jqGrid(
- "getCell",
- rowid,
- "restStartTime2"
- );
- var restEndTime2 = $("#entries").jqGrid(
- "getCell",
- rowid,
- "restEndTime2"
- );
- if (startTime == "" || endTime == "") {
- return;
- }
-
- var totalRestTime = 0;
- var totalRestTimeLong = 0;
- var restStartTimeOfDate;
- var restEndTimeOfDate;
- if(shr.getBowserInfo().browser === 'IE' || shr.getBowserInfo().browser === 'Safari'){
- restStartTime = restStartTime.replace(/-/g,'/');
- restEndTime = restEndTime.replace(/-/g,'/');
- restStartTime2 = restStartTime2.replace(/-/g,'/');
- restEndTime2 = restEndTime2.replace(/-/g,'/');
- }
- if (restStartTime != "" && restEndTime != "") {
- restStartTimeOfDate = new Date(restStartTime);
- restEndTimeOfDate = new Date(restEndTime);
- var times =
- restEndTimeOfDate.getTime() -
- restStartTimeOfDate.getTime();
- if (times < 0) {
- times = 0;
- }
- totalRestTimeLong += times;
- times = times / 1000 / 60;
- totalRestTime += times;
- }
- if (restStartTime2 != "" && restEndTime2 != "") {
- var restStartTime2OfDate = new Date(restStartTime2);
- var restEndTime2OfDate = new Date(restEndTime2);
- if (
- (restStartTime != "" &&
- restEndTime2OfDate.getTime() >
- restStartTimeOfDate.getTime() &&
- restStartTimeOfDate.getTime() >=
- restStartTime2OfDate.getTime()) ||
- (restEndTime != "" &&
- restEndTimeOfDate.getTime() <=
- restEndTime2OfDate.getTime() &&
- restStartTime2OfDate.getTime() <
- restEndTimeOfDate.getTime()) ||
- (restStartTime != "" &&
- restEndTime != "" &&
- restEndTimeOfDate.getTime() >=
- restEndTime2OfDate.getTime() &&
- restStartTime2OfDate.getTime() >=
- restStartTimeOfDate.getTime())
- ) {
- //时间有交叉
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "restEndTime2",
- restStartTime2
- );
- } else {
- var times =
- restEndTime2OfDate.getTime() -
- restStartTime2OfDate.getTime();
- if (times < 0) {
- times = 0;
- }
- totalRestTimeLong += times;
- times = times / 1000 / 60;
- totalRestTime += times;
- }
- }
- var t1 = totalRestTime.toFixed(
- atsMlUtile.getSysDecimalPlace()
- );
- $("#entries").jqGrid("setCell", rowid, "restTime", t1);
- var startTime = NewDate(startTime + ":00");
- var endTime = NewDate(endTime + ":00");
- var se =
- endTime.getTime() -
- startTime.getTime() -
- totalRestTimeLong; // 毫秒
- var tfl = se / (3600 * 1000);
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "applyOTTime",
- tfl
- );
- that.getOTContrlParams(rowid);
- that.countOvertimeHourAction();
- }
- },
- afterEditCell: function (rowid, cellname, value, iRow, iCol) {
- if (
- cellname == "otType" &&
- that.OTContrlParams[rowid] &&
- that.OTContrlParams[rowid].isOtrolByDateType
- ) {
- $("#" + iRow + "_otType").shrPromptBox("disable");
- }
- if (cellname == "otCompens") {
- if (that.filter[rowid] == undefined) {
- // R20221006-0542 修复选择加班费后 再点击“补偿方式”F7就变成了调休的问题
- // that.changeOTCompens(rowid);
- }
- if (that.filter[rowid]) {
- // $("#"+rowid+"_otCompens").shrPromptBox("setFilter",that.filter[rowid]);
- $(
- "#" +
- $("#entries").jqGrid(
- "getCell",
- rowid,
- "rn"
- ) +
- "_otCompens"
- ).shrPromptBox("setFilter", that.filter[rowid]);
- }
- }
- if (cellname == "person") {
- var hrOrgUnitId = $("#hrOrgUnit_el").val();
- $("#" + rowid + "_person")
- .shrPromptBox()
- .attr("data-params", hrOrgUnitId);
- $("#" + iRow + "_person").shrPromptBox("option", {
- onchange: function (e, value) {
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "person.number",
- value.current
- ? value.current["person.number"]
- : ""
- );
- }
- });
- }
- if(cellname == "attAdminOrgUnit"){
- var personId = $("#entries").jqGrid("getCell", rowid, "person").id;
- var attendanceDate = $("#entries").jqGrid("getCell", rowid, "otDate");
- if(!(personId && attendanceDate)){
- shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_YM_999});
- return false;
- }else{
- //$("#"+rowid+"_attPosition").shrPromptBox().attr("data-params", adminOrg);
- $("#"+iRow+"_attAdminOrgUnit").shrPromptBox("setOtherParams", {
- personId: personId,
- attendanceDate: attendanceDate
- });
- }
- }
- }
- });
- },
- calculateOTtimes: function (rowid) {
- var startTime = $("#entries").jqGrid("getCell", rowid, "startTime");
- var endTime = $("#entries").jqGrid("getCell", rowid, "endTime");
- var restTime = $("#entries").jqGrid("getCell", rowid, "restTime");
- if (startTime == "[object Object]") {
- $("#" + rowid)
- .find("td")
- .eq("5")
- .text("");
- $("#" + rowid)
- .find("td")
- .eq("5")
- .attr("title", "");
- }
- if (endTime == "[object Object]") {
- $("#" + rowid)
- .find("td")
- .eq("6")
- .text("");
- $("#" + rowid)
- .find("td")
- .eq("6")
- .attr("title", "");
- }
- if (startTime != "" && endTime != "") {
- var restVal = 0;
- if (restTime != "" && /^[0-9]*$/.test(restTime)) {
- restVal = restTime; // 分钟数
- }
- var startTime = NewDate(startTime + ":00");
- var endTime = NewDate(endTime + ":00");
- var se =
- endTime.getTime() -
- startTime.getTime() -
- restVal * 1000 * 60; // 毫秒
- var tfl = se / (3600 * 1000);
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "applyOTTime",
- tfl.toFixed(fixedNum)
- );
- this.countOvertimeHourAction();
- }
- },
- getOverTimeType: function (rowid, otDate, personId) {
- var _self = this;
- var tDate = otDate;
- var url =
- shr.getContextPath() +
- "/dynamic.do?method=getOverTimeTypeAndOtCompens";
- url +=
- "&otDate=" +
- encodeURIComponent(otDate) +
- "&personId=" +
- encodeURIComponent(personId)+"&uipk="+shr.getUrlRequestParam('uipk');
- $.ajax({
- url: url,
- async: false,
- success: function (response) {
- if (
- response.otTypeValue != null &&
- response.otTypeValue != undefined &&
- response.otTypeValue != ""
- ) {
- var responseObejct = {
- id: response.otTypeValue,
- name: response.otTypeText
- };
- if (_self.isOtTypeEffective(response.otTypeValue)) {
- // $('#entries').restoreCell(rowid,4); // 先恢复单元格状态再重新赋值,可以避免
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "otType",
- responseObejct
- );
- //设置该加班类型的补偿方式过滤
- var otCompensIds = _self.getOTCompensByOTType(
- personId,
- response.otTypeValue,
- tDate
- );
- if (otCompensIds) {
- var otCompensIdsStr = _self
- .getOTCompensByOTType(
- personId,
- response.otTypeValue,
- tDate
- )
- .replace(/(,)/g, "','");
- _self.filter[rowid] =
- "BaseInfo.id in ('" +
- otCompensIdsStr +
- "')";
- }
- var compens = response.compensInfo;
- if (compens != null) {
- var defaultJson = {
- id: compens.id,
- name: compens.name
- };
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "otCompens",
- defaultJson
- );
- }
- } else {
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "otType",
- null
- );
- }
- }else{
- $("#entries").jqGrid('setCell',rowid,"otType",null);
- }
- },
- error: function (response) {}
- });
- _self.changeWorkType(rowid);
- _self.countOvertimeHourAction();
- },
- changeOTCompens: function (rowid) {
- var that = this;
- var otCompensId;
- if (!$("#entries").jqGrid("getCell", rowid, "otType")) {
- return;
- } else {
- otTypeId = $("#entries").jqGrid("getCell", rowid, "otType").id;
- }
- if (!$("#entries").jqGrid("getCell", rowid, "person")) {
- return;
- } else {
- var personId = $("#entries").jqGrid("getCell", rowid, "person").id;
- }
- if (!$("#entries").jqGrid("getCell", rowid, "otDate")) {
- return;
- } else {
- var otDate = $("#entries").jqGrid("getCell", rowid, "otDate");
- }
- var otCompensIds = that.getOTCompensByOTTypes(personId, otTypeId);
- var url =
- shr.getContextPath() +
- "/dynamic.do";
- that.remoteCall({
- type: "post",
- method: "getDefaultOTCompens",
- url: url,
- param: {
- personId: personId,
- otTypeId: otTypeId,
- otDate: otDate
- },
- async: false,
- success: function (res) {
- var info = res;
- if (info.defaultId == "" || info.defaultId == undefined) {
- shr.showWarning({
- message:
- jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_28
- });
- } else {
- var defaultOTCompens = {
- id: info.defaultId,
- name: info.defaultName
- };
- $("#entries").jqGrid(
- "setCell",
- rowid,
- "otCompens",
- defaultOTCompens
- );
- if (otCompensIds) {
- var otCompensIdsStr = otCompensIds.replace(
- /(,)/g,
- "','"
- );
- that.filter[rowid] =
- "BaseInfo.id in ('" + otCompensIdsStr + "')";
- }
- }
- }
- });
- that.countOvertimeHourAction();
- },
- verify: function () {
- var _self = this;
- var obj = $("#entries").jqGrid("getRowData");
- var errorString = "";
- var errorFlag = 0;
- var billerrorString = "";
- if (obj.length == 0) {
- shr.showWarning({
- message:
- jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_7
- });
- return false;
- }
- if (!_self.checkRowIsOver()) {
- // closeLoader();
- return false;
- }
- _rowMap = {};
- openLoader(
- 1,
- jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_29
- );
- jQuery(obj).each(function (n) {
- errorString = _self.checkEveryRow(n + 1, this);
- if (errorString) {
- _self.preShowError(
- n + 1,
- this.person.name + " " + errorString
- );
- billerrorString =
- billerrorString +
- shr.formatMsg(
- jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_44,
- [n + 1]
- ) +
- errorString;
- errorFlag = 1;
- }
- });
- if (errorString && errorString != "") {
- var showMes = "";
- showMes += billerrorString.replace(/。/g, "。</br>");
- shr.showWarning({ message: showMes });
- closeLoader();
- return false;
- }
- errorString = _self.validateOTEntry();
- if (errorString && errorString != "") {
- shr.showWarning({ message: errorString });
- closeLoader();
- return false;
- }
- var hasOtType = _self.checkOtType();
- if (!hasOtType) {
- return false;
- }
- if (errorFlag == 0) {
- //工作流审批界面,加班补提控制。
- var boo = true;
- boo = _self.validateIsFillOtVerify();
- closeLoader();
- // if(!_self.checkOtDate()){
- // return false;
- // }
- return boo;
- } else {
- closeLoader();
- return false;
- }
- },
- changeWorkType: function (rowid) {
- var that = this;
- var otDate;
- if (!$("#entries").jqGrid("getCell", rowid, "otDate")) {
- return;
- } else {
- otDate = $("#entries").jqGrid("getCell", rowid, "otDate");
- }
- _self.remoteCall({
- type:"post",
- async: false,
- method:"workMultiple",
- param:{otDate:otDate},
- success:function(res){
- if(res.otTypeValue){
- var responseObejct = {id: res.otTypeValue,name: res.otTypeText};
- $("#entries").jqGrid("setCell",rowid,"otType",responseObejct);
- }
- }
- });
- var otType = $("#entries").jqGrid("getCell",rowid,"otType");
- if(!otType){
- _self.remoteCall({
- type:"post",
- async: false,
- method:"jobType",
- param:{otDate:otDate},
- success:function(res){
- if(res.otTypeValue){
- var responseObejct = {id: res.otTypeValue,name: res.otTypeText};
- $("#entries").jqGrid("setCell",rowid,"otType",responseObejct);
- }
- }
- });
- }
- },
- /**
- * 删除行
- */
- deleteRowAction: function(event) {
- var $editGrid = this.getEditGrid(event.currentTarget);
- var ids = $editGrid.jqGrid('getSelectedRows');
- if (ids.length > 0) {
- for (var i = ids.length - 1; i >= 0; i--) {
- $editGrid.jqGrid('delRow', ids[i]);
- }
- this.countOvertimeHourAction();
- }else{
- shr.showInfo({
- message: $.shrI18n.common.tips.chooseTableDataFirst,
- hideAfter: 3
- });
- }
- },
- countOvertimeHourAction:function(){
- var allRowData = $("#entries").jqGrid("getAllRowData");
- var length = allRowData.length;
- var weekdayHour = 0;//工作日加班小时数
- var restdayHour = 0;//休息日加班小时数
- var holidayHour = 0;//法定节假日加班小时数
- var totalDuration = 0;//加班总时长
- var compensatoryTotal = 0;//调休加班总时长
- var totalOvertimePay = 0;//加班费加班总时长
- for(var i=0; i<length; i++){
- var otType = allRowData[i].otType.id;
- var applyOTTime = allRowData[i].applyOTTime;
- var otCompens = allRowData[i].otCompens.id;
- if(applyOTTime == ""){
- continue;
- }
- if(otType == "rBy0u1YgQ9C1OxcM85mxyY6C/nU="){
- weekdayHour = Number(weekdayHour)+Number(applyOTTime);
- }else if(otType == "zr+ur5D4RA+2bdVZ2VPqp46C/nU="){
- restdayHour = Number(restdayHour)+Number(applyOTTime);
- }else if(otType == "sRWUOt7sRpOY0TCo6NMqGY6C/nU="){
- holidayHour = Number(holidayHour)+Number(applyOTTime);
- }
- if(otCompens == "AERg0TIcSnaM40EKvJCdRKlrTmA="){
- compensatoryTotal = Number(compensatoryTotal)+Number(applyOTTime);
- }else if(otCompens == "zkbt5bMLQ3ehUivmKbtBOqlrTmA="){
- totalOvertimePay = Number(totalOvertimePay)+Number(applyOTTime);
- }
- }
- totalDuration = Number(weekdayHour)+Number(restdayHour)+Number(holidayHour);
- // $("#weekdayHour").val(weekdayHour);
- // $("#restdayHour").val(restdayHour);
- // $("#holidayHour").val(holidayHour);
- // $("#totalDuration").val(totalDuration);
- // $("#compensatoryTotal").val(compensatoryTotal);
- // $("#totalOvertimePay").val(totalOvertimePay);
- this.getField("weekdayHour").shrNumberField("setValue",weekdayHour);
- this.getField("restdayHour").shrNumberField("setValue",restdayHour);
- this.getField("holidayHour").shrNumberField("setValue",holidayHour);
- this.getField("totalDuration").shrNumberField("setValue",totalDuration);
- this.getField("compensatoryTotal").shrNumberField("setValue",compensatoryTotal);
- this.getField("totalOvertimePay").shrNumberField("setValue",totalOvertimePay);
- },
- checkOtDate:function(){
- var allRowData = $("#entries").jqGrid("getAllRowData");
- for(var i=0; i<allRowData.length; i++){
- var otDate = allRowData[i].otDate;
- otDate = new Date(otDate);
- const currentDate = new Date();
- const lastMonthDate = new Date(currentDate.getFullYear(), currentDate.getMonth() - 1, currentDate.getDate());
- var lastYear = lastMonthDate.getFullYear();
- var lastMonth = lastMonthDate.getMonth();
- if(otDate.getMonth() != lastMonth || otDate.getFullYear() != lastYear){
- shr.showWarning({message: "Only overtime records with the previous month's overtime date can be submitted for the current month"});
- return false;
- }
- }
- return true;
- }
- });
|