atsOverTimeBillBatchEdit.js 103 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663
  1. var _rowMap;
  2. var isOTControl = false;
  3. var isOtrolByDateType = false;
  4. var fixedNum;
  5. shr.defineClass(
  6. "shr.ats.AtsOverTimeBillBatchEdit",
  7. shr.ats.atttenceEditFormImport,
  8. {
  9. filter: {},
  10. OTContrlParams: {},
  11. initalizeDOM: function () {
  12. shr.ats.AtsOverTimeBillBatchEdit.superClass.initalizeDOM.call(this);
  13. var that = this;
  14. that.remoteCall({
  15. type: "post",
  16. method: "getDecimalPlace",
  17. //handler:
  18. // "com.kingdee.shr.ats.web.handler.AtsBillBaseEditHandler",
  19. success: function (res) {
  20. fixedNum = res;
  21. }
  22. });
  23. // that.getOTContrlParams();
  24. //按组织填充按钮
  25. $(
  26. '<button type="button" style="margin-left:4px;margin-right:4px" class="shrshrbtn-primary shrbtn" id="orgfill">' +
  27. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_17 +
  28. "</button>"
  29. ).insertAfter($("#addRow_entries"));
  30. var classfullNameService =
  31. "com.kingdee.shr.ats.web.formEditImport.AtsOverTimeBillFileEditFormService";
  32. //导入 按钮
  33. $(
  34. '<button type="button" style="margin-left:4px;margin-right:4px;display: none" class="shrshrbtn-primary shrbtn" id="import">' +
  35. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_3 +
  36. "</button>"
  37. ).insertAfter($("#addRow_entries"));
  38. $("#import").click(function () {
  39. that.importAction(null, classfullNameService);
  40. });
  41. $(".editGrid-toolbar").append(
  42. '<div style="display: inline;padding-left: 20px;">' +
  43. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_32 +
  44. '<div><div id="hasNum"></div>'
  45. );
  46. var serviceId = shr.getUrlRequestParam("serviceId");
  47. var url =
  48. shr.getContextPath() +
  49. "/dynamic.do?checkLicense=true&uipk=com.kingdee.eas.hr.ats.app.OverTimeOrgFillForm";
  50. url += "&serviceId=" + encodeURIComponent(serviceId);
  51. $("#orgfill").click(function () {
  52. $("#orgFillDiv").attr("src", url);
  53. var gridNum = $("#entries").getGridParam("reccount");
  54. $("#hasNum").val(gridNum);
  55. $("#orgFillDiv").dialog({
  56. title:
  57. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_17,
  58. width: 1020,
  59. height: 450,
  60. modal: true,
  61. resizable: false,
  62. position: {
  63. my: "center",
  64. at: "top+20%",
  65. of: window
  66. },
  67. open: function (event, ui) {},
  68. buttons: [
  69. {
  70. text:
  71. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_19,
  72. click: function () {
  73. //校验F7数据
  74. if (that.checkF7Data()) {
  75. var oldRowIds = $("#entries").getDataIDs();
  76. that.fillGrid();
  77. var newRowIds = $("#entries").getDataIDs();
  78. rowIds = that.getFillRowId(
  79. oldRowIds,
  80. newRowIds
  81. );
  82. $.each(rowIds, function (n, value) {
  83. //that.calRestTimeLen(value); 2015-11-03:组织填充不用自动计算时长
  84. that.changOtTimeTipInfo(value);
  85. });
  86. //检查不超过100条记录
  87. //that.checkRowIsOver();
  88. $(this).dialog("close");
  89. } else {
  90. return;
  91. }
  92. }
  93. },
  94. {
  95. text:
  96. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_5,
  97. click: function () {
  98. $(this).dialog("close");
  99. }
  100. }
  101. ]
  102. });
  103. $("#orgFillDiv").attr("style", "width:1020px;height:550px;");
  104. });
  105. var entries_cont = waf("#entries");
  106. entries_cont.jqGrid("option", {
  107. onChange: function (rowid, cellname, value, iRow, iCol) {
  108. console.log(rowid, cellname, value, iRow, iCol, 123123);
  109. },
  110. beforeSaveCell: function (
  111. rowid,
  112. cellname,
  113. value,
  114. iRow,
  115. iCol
  116. ) {},
  117. afterSaveCell: function (rowid, cellname, value, iRow, iCol) {
  118. if (value["adminOrgUnit.id"]) {
  119. $("#entries").jqGrid(
  120. "setCell",
  121. rowid,
  122. "adminOrgUnit.id",
  123. value["adminOrgUnit.id"]
  124. );
  125. }
  126. that.removePreShowError(rowid);
  127. if (cellname == "otDate") {
  128. var val = value;
  129. if (val.length <= 10) {
  130. val = val + " 00:00:00";
  131. }
  132. val &&
  133. $("#entries").jqGrid(
  134. "setCell",
  135. rowid,
  136. "startTime",
  137. val
  138. );
  139. val &&
  140. $("#entries").jqGrid(
  141. "setCell",
  142. rowid,
  143. "endTime",
  144. val
  145. );
  146. that.changeOverTimeType(rowid);
  147. that.calRestTimeLen(rowid);
  148. that.getOTContrlParams(rowid);
  149. }
  150. if (cellname == "otType") {
  151. that.changeOTCompens(rowid);
  152. }
  153. // 添加 开始时间 结束时间 休息时长(分钟) 响应时间
  154. if (
  155. cellname == "startTime" ||
  156. cellname == "endTime" ||
  157. cellname == "restTime"
  158. ) {
  159. if (cellname != "restTime") {
  160. that.calRestTimeLen(rowid);
  161. }
  162. that.calculateOTtimes(rowid);
  163. }
  164. if (cellname == "person") {
  165. that.calRestTimeLen(rowid);
  166. that.getOTContrlParams(rowid);
  167. }
  168. if (cellname == "applyOTTime") {
  169. // 加班小时数 发生改变就给予提示
  170. that.changOtTimeTipInfo(rowid);
  171. }
  172. if (
  173. cellname == "restStartTime" ||
  174. cellname == "restStartTime2" ||
  175. cellname == "restEndTime" ||
  176. cellname == "restEndTime2"
  177. ) {
  178. //计算休息时间,加班时间
  179. var startTime = $("#entries").jqGrid(
  180. "getCell",
  181. rowid,
  182. "startTime"
  183. );
  184. var endTime = $("#entries").jqGrid(
  185. "getCell",
  186. rowid,
  187. "endTime"
  188. );
  189. var restStartTime = $("#entries").jqGrid(
  190. "getCell",
  191. rowid,
  192. "restStartTime"
  193. );
  194. var restEndTime = $("#entries").jqGrid(
  195. "getCell",
  196. rowid,
  197. "restEndTime"
  198. );
  199. var restStartTime2 = $("#entries").jqGrid(
  200. "getCell",
  201. rowid,
  202. "restStartTime2"
  203. );
  204. var restEndTime2 = $("#entries").jqGrid(
  205. "getCell",
  206. rowid,
  207. "restEndTime2"
  208. );
  209. if (startTime == "" || endTime == "") {
  210. return;
  211. }
  212. var totalRestTime = 0;
  213. var totalRestTimeLong = 0;
  214. var restStartTimeOfDate;
  215. var restEndTimeOfDate;
  216. if(shr.getBowserInfo().browser === 'IE' || shr.getBowserInfo().browser === 'Safari'){
  217. restStartTime = restStartTime.replace(/-/g,'/');
  218. restEndTime = restEndTime.replace(/-/g,'/');
  219. restStartTime2 = restStartTime2.replace(/-/g,'/');
  220. restEndTime2 = restEndTime2.replace(/-/g,'/');
  221. }
  222. if (restStartTime != "" && restEndTime != "") {
  223. restStartTimeOfDate = new Date(restStartTime);
  224. restEndTimeOfDate = new Date(restEndTime);
  225. var times =
  226. restEndTimeOfDate.getTime() -
  227. restStartTimeOfDate.getTime();
  228. if (times < 0) {
  229. times = 0;
  230. }
  231. totalRestTimeLong += times;
  232. times = times / 1000 / 60;
  233. totalRestTime += times;
  234. }
  235. if (restStartTime2 != "" && restEndTime2 != "") {
  236. var restStartTime2OfDate = new Date(restStartTime2);
  237. var restEndTime2OfDate = new Date(restEndTime2);
  238. if (
  239. (restStartTime != "" &&
  240. restEndTime2OfDate.getTime() >
  241. restStartTimeOfDate.getTime() &&
  242. restStartTimeOfDate.getTime() >=
  243. restStartTime2OfDate.getTime()) ||
  244. (restEndTime != "" &&
  245. restEndTimeOfDate.getTime() <=
  246. restEndTime2OfDate.getTime() &&
  247. restStartTime2OfDate.getTime() <
  248. restEndTimeOfDate.getTime()) ||
  249. (restStartTime != "" &&
  250. restEndTime != "" &&
  251. restEndTimeOfDate.getTime() >=
  252. restEndTime2OfDate.getTime() &&
  253. restStartTime2OfDate.getTime() >=
  254. restStartTimeOfDate.getTime())
  255. ) {
  256. //时间有交叉
  257. $("#entries").jqGrid(
  258. "setCell",
  259. rowid,
  260. "restEndTime2",
  261. restStartTime2
  262. );
  263. } else {
  264. var times =
  265. restEndTime2OfDate.getTime() -
  266. restStartTime2OfDate.getTime();
  267. if (times < 0) {
  268. times = 0;
  269. }
  270. totalRestTimeLong += times;
  271. times = times / 1000 / 60;
  272. totalRestTime += times;
  273. }
  274. }
  275. var t1 = totalRestTime.toFixed(
  276. atsMlUtile.getSysDecimalPlace()
  277. );
  278. $("#entries").jqGrid("setCell", rowid, "restTime", t1);
  279. var startTime = NewDate(startTime + ":00");
  280. var endTime = NewDate(endTime + ":00");
  281. var se =
  282. endTime.getTime() -
  283. startTime.getTime() -
  284. totalRestTimeLong; // 毫秒
  285. var tfl = se / (3600 * 1000);
  286. $("#entries").jqGrid(
  287. "setCell",
  288. rowid,
  289. "applyOTTime",
  290. tfl
  291. );
  292. that.getOTContrlParams(rowid);
  293. }
  294. },
  295. afterEditCell: function (rowid, cellname, value, iRow, iCol) {
  296. if (
  297. cellname == "otType" &&
  298. that.OTContrlParams[rowid] &&
  299. that.OTContrlParams[rowid].isOtrolByDateType
  300. ) {
  301. $("#" + iRow + "_otType").shrPromptBox("disable");
  302. }
  303. if (cellname == "otCompens") {
  304. if (that.filter[rowid] == undefined) {
  305. // R20221006-0542 修复选择加班费后 再点击“补偿方式”F7就变成了调休的问题
  306. // that.changeOTCompens(rowid);
  307. }
  308. if (that.filter[rowid]) {
  309. // $("#"+rowid+"_otCompens").shrPromptBox("setFilter",that.filter[rowid]);
  310. $(
  311. "#" +
  312. $("#entries").jqGrid(
  313. "getCell",
  314. rowid,
  315. "rn"
  316. ) +
  317. "_otCompens"
  318. ).shrPromptBox("setFilter", that.filter[rowid]);
  319. }
  320. }
  321. if (cellname == "person") {
  322. var hrOrgUnitId = $("#hrOrgUnit_el").val();
  323. $("#" + rowid + "_person")
  324. .shrPromptBox()
  325. .attr("data-params", hrOrgUnitId);
  326. $("#" + iRow + "_person").shrPromptBox("option", {
  327. onchange: function (e, value) {
  328. $("#entries").jqGrid(
  329. "setCell",
  330. rowid,
  331. "person.number",
  332. value.current
  333. ? value.current["person.number"]
  334. : ""
  335. );
  336. }
  337. });
  338. }
  339. if(cellname == "attAdminOrgUnit"){
  340. var personId = $("#entries").jqGrid("getCell", rowid, "person").id;
  341. var attendanceDate = $("#entries").jqGrid("getCell", rowid, "otDate");
  342. if(!(personId && attendanceDate)){
  343. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_YM_999});
  344. return false;
  345. }else{
  346. //$("#"+rowid+"_attPosition").shrPromptBox().attr("data-params", adminOrg);
  347. $("#"+iRow+"_attAdminOrgUnit").shrPromptBox("setOtherParams", {
  348. personId: personId,
  349. attendanceDate: attendanceDate
  350. });
  351. }
  352. }
  353. }
  354. });
  355. that.setButtonVisible(); //初始化页面安装状态,如果是已经提交的或者审批通过的单据编辑按钮不显示
  356. //隐藏提交生效按钮
  357. if (that.getOperateState() == "EDIT") {
  358. if (that.isFromWF()) {
  359. // 来自流程中心
  360. $("#submitEffect").hide();
  361. $("#submit").text(
  362. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_25
  363. );
  364. }
  365. }
  366. //审核编辑界面
  367. if (
  368. that.isFromWF() &&
  369. that.getOperateState() == "EDIT" &&
  370. $("#billState").val() != 0
  371. ) {
  372. $("#deleteRow_entries")
  373. .unbind("click")
  374. .attr("onclick", "")
  375. .css("cursor", "default");
  376. $("#addRow_entries")
  377. .unbind("click")
  378. .attr("onclick", "")
  379. .css("cursor", "default");
  380. $(".editGrid-toolbar").hide();
  381. $("#submit").hide();
  382. var lastRowNum = $("#entries").getGridParam("reccount");
  383. for (var i = 1; i <= lastRowNum; i++) {
  384. var temp_id = $("#entries tr:eq(" + i + ")").attr("id");
  385. $("#entries").jqGrid(
  386. "setCell",
  387. temp_id,
  388. "person",
  389. "",
  390. "not-editable-cell"
  391. );
  392. }
  393. }
  394. //考勤计算--已计算页签--明细显示模式--请假按钮进来,只显示提交生效按钮
  395. if (
  396. shr.getUrlParam("fromCalDetail") != null &&
  397. shr.getUrlParam("fromCalDetail") == "1"
  398. ) {
  399. $("#save").hide();
  400. $("#submit").hide();
  401. $("#cancelAll").hide();
  402. $("#import").hide();
  403. $("#orgfill").hide();
  404. $(".view_manager_header > div > div").eq(0).remove();
  405. $("#submitEffect").addClass("shrbtn-primary");
  406. $('#workAreaDiv .ui-jqgrid-bdiv').css('max-height','253px') // 当页面作为弹框时 表格过长则隐藏滑动
  407. }
  408. //增加业务组织处理
  409. that.processF7ChangeEventHrOrgUnit();
  410. var hrOrgUnitId = $("#hrOrgUnit_el").val();
  411. that.initCurrentHrOrgUnit(hrOrgUnitId);
  412. that.initCcPersonPrompt();
  413. },
  414. clearCCPersonIdsPrompt: function () {
  415. if ($('#ccPersonIds').length == 0) {
  416. return;
  417. }
  418. atsCcPersonUtils.clearCCPersonIdsPrompt(this);
  419. },
  420. initCcPersonPrompt: function () {
  421. if ($('#ccPersonIds').length == 0) {
  422. return;
  423. }
  424. atsCcPersonUtils.initCCPersonIdsPrompt(this);
  425. if (this.getOperateState() != "VIEW") {
  426. var person = $("#proposer").shrPromptBox("getValue");
  427. if (!person) {
  428. // shr.showWarning({message:"Please select people."});
  429. } else {
  430. $("#ccPersonIds").shrPromptBox("setOtherParams", {
  431. // handler: "com.kingdee.shr.ats.web.handler.team.F7.TeamPersonForEmpOrgF7ListHandler",
  432. personId: person.id
  433. });
  434. }
  435. }
  436. },
  437. processF7ChangeEventHrOrgUnit: function () {
  438. var that = this;
  439. if (that.getOperateState() != "VIEW") {
  440. $("#hrOrgUnit").shrPromptBox("option", {
  441. onchange: function (e, value) {
  442. var info = value.current;
  443. that.initCurrentHrOrgUnit(info.id);
  444. // that.emptyHrOrgBasedEntryData();
  445. // $("#entries_person_number").val("");
  446. // $("#entries_adminOrgUnit").val("");
  447. // $("#entries_position").val("");
  448. }
  449. });
  450. }
  451. },
  452. initCurrentHrOrgUnit: function (hrOrgUnitId) {
  453. var that = this;
  454. // $("#entries_person").shrPromptBox().attr("data-params",hrOrgUnitId);
  455. that.initQuerySolutionHrOrgUnit(hrOrgUnitId);
  456. },
  457. //切换业务组织,清空分录与业务组织相关的字段:人员、补签卡原因(视图上配)
  458. // ,emptyHrOrgBasedEntryData : function(){
  459. // $("#entries").find('[aria-describedby=entries_person], [aria-describedby=entries_otCompens],'
  460. // + '[aria-describedby=entries_otReason]').text("");
  461. // }
  462. initQuerySolutionHrOrgUnit: function (hrOrgUnitId) {
  463. var that = this;
  464. that.remoteCall({
  465. type: "post",
  466. method: "initQuerySolution",
  467. param: {
  468. hrOrgUnitId: hrOrgUnitId
  469. },
  470. async: true,
  471. success: function (res) {}
  472. });
  473. },
  474. //新增 jqgrid 行 方法, 复写
  475. addRowAction: function (event) {
  476. //增加自己的逻辑
  477. var that = this;
  478. var num = $("#entries").jqGrid("getRowData").length;
  479. if (num >= 100) {
  480. shr.showWarning({
  481. message:
  482. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_6
  483. });
  484. return;
  485. }
  486. var source = event.currentTarget,
  487. $editGrid = this.getEditGrid(source);
  488. var data = this.createNewEntryModel(); // 默认的补偿方式
  489. if (typeof data === "undefined") {
  490. data = {};
  491. }
  492. var editGridCont = this._getEditGridCont(source);
  493. if (editGridCont.data("editType") == "inline") {
  494. // 表格内编辑
  495. $editGrid.jqGrid("addRow", { data: data });
  496. } else {
  497. $editGrid.wafGrid("addForm");
  498. }
  499. var event = document.createEvent("HTMLEvents");
  500. event.initEvent("editComplete_" + $editGrid.attr("id"), true, true);
  501. event.eventType = "message";
  502. document.dispatchEvent(event);
  503. },
  504. // 获取填充的 rowId,导入的rowId
  505. getFillRowId: function (oldRowIds, newRowIds) {
  506. var size = newRowIds.length;
  507. var sizeOld = oldRowIds.length;
  508. if (sizeOld == 0) {
  509. return newRowIds;
  510. }
  511. var rowIds = [];
  512. for (var i = 0; i < size; i++) {
  513. if (i >= sizeOld) {
  514. rowIds.push(newRowIds[i]);
  515. }
  516. }
  517. return rowIds;
  518. },
  519. /**
  520. * 专员列表点击取消的方法
  521. * 这里有点特殊,采用屏蔽按钮,增加专员取消按钮的方法 替代 维护2次 atsOverTimeBillEdit.js 的方式
  522. */
  523. cancelAllAction: function () {
  524. /*var that = this ;
  525. window.location.href = shr.getContextPath()+"/dynamic.do?uipk=com.kingdee.eas.hr.ats.app.AtsOverTimeBillAllList";*/
  526. this.reloadPage({
  527. uipk: "com.kingdee.eas.hr.ats.app.AtsOverTimeBillAllList",
  528. serviceId: shr.getUrlRequestParam("serviceId")
  529. });
  530. },
  531. submitAction: function (event) {
  532. var _self = this,
  533. workArea = _self.getWorkarea(),
  534. $form = $("form", workArea);
  535. if (!_self.validate()) {
  536. return;
  537. }
  538. if ($form.valid() && _self.verify()) {
  539. shr.showConfirm(
  540. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_15,
  541. function () {
  542. _self.doSubmit(event, "submit");
  543. }
  544. );
  545. }
  546. },
  547. //提交即生效
  548. submitEffectAction: function (event) {
  549. var _self = this,
  550. workArea = _self.getWorkarea(),
  551. $form = $("form", workArea);
  552. if (!_self.validate()) {
  553. return;
  554. }
  555. if ($form.valid() && _self.verify()) {
  556. if (shr.atsBillUtil.isInWorkFlow(_self.billId)) {
  557. shr.showConfirm(
  558. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_4,
  559. function () {
  560. _self.prepareSubmitEffect(event, "submitEffect");
  561. }
  562. );
  563. } else {
  564. shr.showConfirm(
  565. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_16,
  566. function () {
  567. _self.prepareSubmitEffect(event, "submitEffect");
  568. }
  569. );
  570. }
  571. }
  572. },
  573. assembleSaveData: function (action) {
  574. var data = shr.ats.AtsOverTimeBillBatchEdit.superClass.assembleSaveData.call(
  575. this,
  576. action
  577. );
  578. var model = JSON.parse(data.model);
  579. var personDateStr = "";
  580. var length = 0;
  581. if (model.entries) {
  582. length = model.entries.length;
  583. for (var i = 0; i < length; i++) {
  584. if (
  585. model.entries[i].otReason &&
  586. model.entries[i].otReason.state
  587. ) {
  588. delete model.entries[i].otReason.state;
  589. }
  590. if (
  591. model.entries[i].otType &&
  592. model.entries[i].otType.state
  593. ) {
  594. delete model.entries[i].otType.state;
  595. }
  596. if (
  597. model.entries[i].otCompens &&
  598. model.entries[i].otCompens.state
  599. ) {
  600. delete model.entries[i].otCompens.state;
  601. }
  602. if (model.entries[i]["adminOrgUnit.id"]) {
  603. model.entries[i]["adminOrgUnit"] =
  604. model.entries[i]["adminOrgUnit.id"];
  605. }
  606. //2018-06-04 不知道怎么莫名其妙多了两个字段,而且是从第二个分录开始才有的
  607. //先屏蔽,有空再研究
  608. delete model.entries[i].person["person.gender"];
  609. delete model.entries[i].person["personOtherInfo.age"];
  610. delete model.entries[i].person["attendanceFileHIS.isAttendance"];
  611. //组装参数
  612. var personId = model.entries[i].person.id;
  613. var date = model.entries[i].otDate;
  614. if (date && personId) {
  615. if (i > 0) {
  616. personDateStr += ",";
  617. }
  618. personDateStr += personId + "_" + date.substring(0, 10);
  619. }
  620. }
  621. if (personDateStr) {
  622. _self.remoteCall({
  623. type: "post",
  624. method: "getPersonAdminOrgUnit",
  625. param: { personDateStr: personDateStr },
  626. async: false,
  627. success: function (res) {
  628. var info = res;
  629. var personAtsInfo = {};
  630. for (var i = 0; i < length; i++) {
  631. var personId = model.entries[i].person.id;
  632. var date = model.entries[i].otDate;
  633. if (date && personId) {
  634. var person_date =
  635. personId + "_" + date.substring(0, 10);
  636. personAtsInfo = res[person_date];
  637. if (
  638. personAtsInfo &&
  639. personAtsInfo.adminOrgUnit
  640. ) {
  641. model.entries[i]["adminOrgUnit"] =
  642. personAtsInfo.adminOrgUnit;
  643. model.entries[i]["position"] =
  644. personAtsInfo.position;
  645. }
  646. }
  647. }
  648. }
  649. });
  650. }
  651. model.ccPerson = model.ccPersonIds;
  652. var assModeljson = $.toJSON(model);
  653. data.model = assModeljson;
  654. }
  655. return data;
  656. },
  657. prepareSubmitEffect: function (event, action) {
  658. var _self = this;
  659. var data = _self.assembleSaveData(action);
  660. var target;
  661. if (event && event.currentTarget) {
  662. target = event.currentTarget;
  663. }
  664. shr.doAction({
  665. target: target,
  666. url: _self.dynamicPage_url,
  667. type: "post",
  668. data: data,
  669. success: function (response) {
  670. //考勤计算--已计算页签--明细显示模式--请假按钮进来,提交生效后直接返回列表
  671. if($('#detailOperationDialog', parent.document).length > 0) {
  672. top.jsBinder.closeDialog();
  673. }
  674. if (
  675. shr.getUrlParam("fromCalDetail") != null &&
  676. shr.getUrlParam("fromCalDetail") == "1"
  677. ) {
  678. _self.cancelAllAction();
  679. } else {
  680. _self.back();
  681. }
  682. }
  683. });
  684. },
  685. /*
  686. ,importAction: function(gridID,classfullName) {
  687. var _self = this;
  688. if(gridID != undefined)
  689. {
  690. grid = gridID ;
  691. }
  692. if(classfullName != undefined)
  693. {
  694. className = classfullName ;
  695. }
  696. var importDiv = $('#importDiv');
  697. if (importDiv.length > 0) {
  698. // importDiv.data('uipk', lastUipk);
  699. // importDiv.data('viewModel', viewModel);
  700. // importDiv.data('classify', classify);
  701. // importDiv.dialog('open');
  702. // return;
  703. }
  704. $('#importDiv').remove();
  705. selfParam = _self.setImportSelfParam();
  706. // 未生成dialog
  707. importDiv = $('<div id="importDiv"></div>').appendTo($('body'));
  708. importDiv.data('uipk', lastUipk);
  709. importDiv.data('viewModel', viewModel);
  710. importDiv.data('grid', grid);
  711. importDiv.data('className', className);
  712. importDiv.data('selfParam',selfParam);
  713. // importDiv.data('classify', classify);
  714. var oldRowIds = $("#entries").getDataIDs();
  715. if(_self.checkUpload()){
  716. importDiv.dialog({
  717. autoOpen: true,
  718. width: 708,
  719. height: 700,
  720. title: "导入数据",
  721. resizable: true,
  722. position: ['top','top'],
  723. modal: true,
  724. open: function(event, ui) {
  725. //ie10不支持这段。
  726. /*if ($.browser.msie) {
  727. var url = shr.assembleURL('hr.ats.com.atttendanceCommonImport', 'view', {
  728. lastUipk: lastUipk,
  729. viewModel: viewModel ,
  730. className : className
  731. //classify:classify
  732. });
  733. var content = '<iframe id="importFrame" name="importFrame" width="700" height="600" frameborder="0" scrolling="no" allowtransparency="true" src="' + url + '"></iframe>';
  734. importDiv.append(content);
  735. } else {---------------------
  736. var url = shr.assembleURL('hr.ats.com.atttendanceCommonImport$page', 'view');
  737. shr.loadHTML({
  738. url: url,
  739. success: function(response) {
  740. importDiv.append(response);
  741. }
  742. });
  743. //}
  744. document.documentElement.style.overflow='hidden';
  745. },
  746. close: function(event, ui) {
  747. document.documentElement.style.overflow='scroll';
  748. importDiv.empty();
  749. // 触发计算 请假次数 剩余额度 时长
  750. //点击序号列 让人员失去焦点
  751. $("#entries tr:eq(1) td:eq(0)").click();
  752. var newRowIds = $("#entries").getDataIDs();
  753. var rowIds = _self.getFillRowId(oldRowIds,newRowIds);
  754. $.each(rowIds,function(n,value) {
  755. //若用户不填休息时间,自动计算休息时间;否则使用用户填写的休息时间
  756. var restTime = $("#entries").jqGrid('getCell',value,"restTime") ;
  757. if(restTime===''){
  758. _self.calRestTimeLen(value);
  759. }
  760. _self.changOtTimeTipInfo(value);
  761. });
  762. //检查不超过100条记录
  763. //_self.checkRowIsOver();
  764. }
  765. });
  766. }
  767. $(".ui-dialog-titlebar-close").bind("click" , function(){
  768. importDiv.dialog("close");
  769. });
  770. }
  771. */
  772. verify: function () {
  773. var _self = this;
  774. var obj = $("#entries").jqGrid("getRowData");
  775. var errorString = "";
  776. var errorFlag = 0;
  777. var billerrorString = "";
  778. if (obj.length == 0) {
  779. shr.showWarning({
  780. message:
  781. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_7
  782. });
  783. return false;
  784. }
  785. if (!_self.checkRowIsOver()) {
  786. // closeLoader();
  787. return false;
  788. }
  789. _rowMap = {};
  790. openLoader(
  791. 1,
  792. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_29
  793. );
  794. jQuery(obj).each(function (n) {
  795. errorString = _self.checkEveryRow(n + 1, this);
  796. if (errorString) {
  797. _self.preShowError(
  798. n + 1,
  799. this.person.name + " " + errorString
  800. );
  801. billerrorString =
  802. billerrorString +
  803. shr.formatMsg(
  804. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_44,
  805. [n + 1]
  806. ) +
  807. errorString;
  808. errorFlag = 1;
  809. }
  810. });
  811. if (errorString && errorString != "") {
  812. var showMes = "";
  813. showMes += billerrorString.replace(/。/g, "。</br>");
  814. shr.showWarning({ message: showMes });
  815. closeLoader();
  816. return false;
  817. }
  818. errorString = _self.validateOTEntry();
  819. if (errorString && errorString != "") {
  820. shr.showWarning({ message: errorString });
  821. closeLoader();
  822. return false;
  823. }
  824. // if(!_self.verifyCheck()){
  825. // closeLoader();
  826. // return false;
  827. // }
  828. var hasOtType = _self.checkOtType();
  829. if (!hasOtType) {
  830. return false;
  831. }
  832. if (errorFlag == 0) {
  833. //工作流审批界面,加班补提控制。
  834. var boo = true;
  835. boo = _self.validateIsFillOtVerify();
  836. closeLoader();
  837. return boo;
  838. } else {
  839. closeLoader();
  840. return false;
  841. }
  842. },
  843. checkOtType: function () {
  844. var rows = $("#entries").getGridParam("reccount");
  845. if (rows > 0) {
  846. for (var i = 1; i <= rows; i++) {
  847. var tempId = $("#entries tr").eq(i).attr("id");
  848. var person = $("#entries").jqGrid(
  849. "getCell",
  850. tempId,
  851. "person"
  852. );
  853. var otType = $("#entries").jqGrid(
  854. "getCell",
  855. tempId,
  856. "otType"
  857. ); //otDate
  858. var otDate = $("#entries").jqGrid(
  859. "getCell",
  860. tempId,
  861. "otDate"
  862. );
  863. if (otType == null || otType == "") {
  864. var errorString = shr.formatMsg(
  865. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_checkOtType_01,
  866. [person.name, otDate]
  867. );
  868. shr.showWarning({ message: errorString });
  869. closeLoader();
  870. return false;
  871. }
  872. }
  873. }
  874. return true;
  875. },
  876. verifyRestTime: function (beforeSubmit, value) {
  877. var startTime0 = value.startTime;
  878. var endTime0 = value.endTime;
  879. if (startTime0 == "" || startTime0 == undefined) {
  880. return jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_2;
  881. }
  882. if (endTime0 == "" || endTime0 == undefined) {
  883. return jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_1;
  884. }
  885. var startTimeOfDate = new Date(startTime0);
  886. var endTimeOfDate = new Date(endTime0);
  887. var restStartTime = value.restStartTime;
  888. var restEndTime = value.restEndTime;
  889. var restStartTime2 = value.restStartTime2;
  890. var restEndTime2 = value.restEndTime2;
  891. var restStartTimeOfDate = new Date(restStartTime);
  892. var restEndTimeOfDateOfDate = new Date(restEndTime);
  893. if (restStartTime != undefined && restStartTime != "") {
  894. if (
  895. restStartTimeOfDate.getTime() < startTimeOfDate.getTime() ||
  896. restStartTimeOfDate.getTime() > endTimeOfDate.getTime()
  897. ) {
  898. return jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_6;
  899. }
  900. }
  901. if (restEndTime != undefined && restEndTime != "") {
  902. if (
  903. restEndTimeOfDateOfDate.getTime() <
  904. startTimeOfDate.getTime() ||
  905. restEndTimeOfDateOfDate.getTime() >
  906. endTimeOfDate.getTime() ||
  907. restEndTimeOfDateOfDate.getTime() <
  908. restStartTimeOfDate.getTime()
  909. ) {
  910. return jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_3;
  911. }
  912. }
  913. var restStartTimeOfDate2 = new Date(restStartTime2);
  914. var restEndTimeOfDateOfDate2 = new Date(restEndTime2);
  915. if (restStartTime2 != undefined && restStartTime2 != "") {
  916. if (
  917. restStartTimeOfDate2.getTime() <
  918. startTimeOfDate.getTime() ||
  919. restStartTimeOfDate2.getTime() > endTimeOfDate.getTime()
  920. ) {
  921. return jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_8;
  922. }
  923. }
  924. if (restEndTime2 != undefined && restEndTime2 != "") {
  925. if (
  926. restEndTimeOfDateOfDate2.getTime() <
  927. startTimeOfDate.getTime() ||
  928. restEndTimeOfDateOfDate2.getTime() >
  929. endTimeOfDate.getTime() ||
  930. restEndTimeOfDateOfDate2.getTime() <
  931. restStartTimeOfDate2.getTime()
  932. ) {
  933. return jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_4;
  934. }
  935. }
  936. if (
  937. (restStartTime != "" &&
  938. restStartTime != undefined &&
  939. (restEndTime == "" || restEndTime == undefined)) ||
  940. (restEndTime != "" &&
  941. restEndTime != undefined &&
  942. (restStartTime == "" || restStartTime == undefined))
  943. ) {
  944. if (beforeSubmit) {
  945. return jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_5;
  946. }
  947. return "";
  948. }
  949. if (
  950. (restStartTime2 != "" &&
  951. restStartTime2 != undefined &&
  952. (restEndTime2 == "" || restEndTime2 == undefined)) ||
  953. (restEndTime2 != "" &&
  954. restEndTime2 != undefined &&
  955. (restStartTime2 == "" || restStartTime2 == undefined))
  956. ) {
  957. if (beforeSubmit) {
  958. return jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_7;
  959. }
  960. return "";
  961. }
  962. if (
  963. restStartTime != "" &&
  964. restStartTime != undefined &&
  965. restStartTime2 != "" &&
  966. restStartTime2 != undefined
  967. ) {
  968. //两个加班休息时间都填了,那么判断不能交叉
  969. if (
  970. (restStartTimeOfDate.getTime() <
  971. restEndTimeOfDateOfDate2.getTime() &&
  972. restStartTimeOfDate.getTime() >=
  973. restStartTimeOfDate2.getTime()) ||
  974. (restStartTimeOfDate2.getTime() <
  975. restEndTimeOfDateOfDate.getTime() &&
  976. restStartTimeOfDate2.getTime() >=
  977. restStartTimeOfDate.getTime())
  978. ) {
  979. return jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_0;
  980. }
  981. }
  982. },
  983. checkEveryRow: function (rownum, value) {
  984. var that = this;
  985. var regEx = new RegExp("\\-", "gi"); //i不区分大小写 g匹配所有
  986. var startTime = value.startTime;
  987. var endTime = value.endTime;
  988. var startTimeOfDate = NewLongDate(startTime + ":00");
  989. var endTimeOfDate = NewLongDate(endTime + ":00");
  990. var longTime = endTimeOfDate.getTime() - startTimeOfDate.getTime();
  991. var otType = value.otType.id;
  992. //处理加班日期 与 加班开始时间 和结束时间的日期保持一致
  993. var overDate = value.otDate; //加班日期
  994. overDate = overDate.substring(0, 10);
  995. var overTimeBegin = value.startTime;
  996. overTimeBegin = overTimeBegin.substring(0, 10); //2014-01-02 00:00
  997. var overTimeEnd = value.endTime;
  998. overTimeEnd = overTimeEnd.substring(0, 10);
  999. var overTimeDate = NewShortDate(overDate);
  1000. var overTimeStartDate = NewShortDate(overTimeBegin);
  1001. var overTimeEndDate = NewShortDate(overTimeEnd);
  1002. if (
  1003. overTimeStartDate.getTime() <
  1004. overTimeDate.getTime() - 24 * 60 * 60 * 1000
  1005. ) {
  1006. //longTime_start != 0 && longTime_end != 0
  1007. // shr.showInfo({message: "不支持跨多天加班。"});
  1008. // return false;
  1009. return jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_1;
  1010. }
  1011. if (
  1012. overTimeEndDate.getTime() - 24 * 60 * 60 * 1000 >
  1013. overTimeDate.getTime()
  1014. ) {
  1015. /*shr.showInfo({message: "不支持跨多天加班。"});
  1016. return false;*/
  1017. return jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_1;
  1018. }
  1019. if (
  1020. overTimeEndDate.getTime() - overTimeStartDate.getTime() >=
  1021. 2 * 24 * 60 * 60 * 1000
  1022. ) {
  1023. return jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_1;
  1024. }
  1025. if (longTime <= 0) {
  1026. /*shr.showInfo({message: "加班开始时间必须小于加班结束时间。"});
  1027. return false;*/
  1028. return jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_8;
  1029. }
  1030. var applyOTTime = value.applyOTTime;
  1031. if (applyOTTime < 0) {
  1032. return jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_11;
  1033. }
  1034. if (applyOTTime == 0) {
  1035. return jsBizMultLan.atsManager_atsOverTimeBillEdit_YM_0001;
  1036. }
  1037. // 检查jqgrid 表格里的是否有重复数据
  1038. var rowValue = new Array();
  1039. rowValue[0] = value.person.id;
  1040. rowValue[1] = value.startTime;
  1041. rowValue[2] = value.endTime;
  1042. _rowMap[rownum] = rowValue;
  1043. for (var prop in _rowMap) {
  1044. if (_rowMap.hasOwnProperty(prop)) {
  1045. var beginTimeTemp = NewLongDate(_rowMap[prop][1]);
  1046. var endTimeTemp = NewLongDate(_rowMap[prop][2]);
  1047. if (
  1048. prop != rownum &&
  1049. _rowMap[prop][0] == value.person.id &&
  1050. !(
  1051. beginTimeTemp.getTime() >=
  1052. endTimeOfDate.getTime() ||
  1053. endTimeTemp.getTime() <= startTimeOfDate.getTime()
  1054. )
  1055. ) {
  1056. return shr.formatMsg(
  1057. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_2,
  1058. [prop]
  1059. );
  1060. }
  1061. }
  1062. }
  1063. var msg = this.verifyRestTime(true, value);
  1064. if (msg != "") {
  1065. return msg;
  1066. }
  1067. //设置同步
  1068. // var info ;
  1069. // that.remoteCall({
  1070. // type:"post",
  1071. // method:"isWorkTime",
  1072. // async: false,
  1073. // param:{personId: value.person.id,overDate:value.otDate,overTimeBegin:value.startTime+":00",overTimeEnd:value.endTime+":00"},
  1074. // success:function(res){
  1075. // info = res;
  1076. // }
  1077. // });
  1078. //
  1079. // if (info.isWorkTime){
  1080. // return "加班开始结束时间和上班时间有交叉。";
  1081. // }
  1082. //
  1083. // //判断申请加班小时数是否达到加班起始值
  1084. // var validOtStartString;
  1085. // that.remoteCall({
  1086. // type:"post",
  1087. // method:"validOtStart",
  1088. // async: false,
  1089. // param:{personId: value.person.id,applyOTTime:applyOTTime},
  1090. // success:function(res){
  1091. // var validInfo = res.info;
  1092. // if(validInfo!=null && validInfo!=""){
  1093. // validOtStartString=validInfo;
  1094. // }
  1095. // }
  1096. // });
  1097. // if(validOtStartString!=null && validOtStartString!=""){
  1098. // return validOtStartString;
  1099. // }
  1100. //
  1101. // //是否在“固定加班”时间段或者“固定加班不计异常”时间段内
  1102. // var obj;
  1103. // that.remoteCall({
  1104. // type:"post",
  1105. // method:"isAtFixedOverTimeOrExcep",
  1106. // async: false,
  1107. // param:{personId: value.person.id,overDate:value.otDate,overTimeBegin:value.startTime+":00",overTimeEnd:value.endTime+":00"},
  1108. // success:function(res){
  1109. // obj = res;
  1110. // }
  1111. // });
  1112. //
  1113. // if (obj.isAtFixedOverTimeOrExcep){
  1114. // return "不能在固定加班时间段内提交加班单。";
  1115. // }
  1116. //
  1117. // var errorString = that.validateIsExistBill(value.person.id,startTime,endTime,$('#id').val());
  1118. // if(errorString){
  1119. // return errorString;
  1120. // }
  1121. // if(value.otCompens.id =="AERg0TIcSnaM40EKvJCdRKlrTmA="){ // 只有等于调休的时候才校验
  1122. // var errorString = that.validateIsValidateLimit(value.person.id,value.otDate,value.applyOTTime,otType);
  1123. // if(errorString){
  1124. // return errorString;
  1125. // }
  1126. // }
  1127. //
  1128. // var errorString = that.checkattencePolicyParm(rownum);
  1129. // if(errorString){
  1130. // return errorString;
  1131. // }
  1132. //燕菊说,补提控制校验放这里 2018-05-30
  1133. //人机问题,集成测试阶段再细细改
  1134. /*
  1135. var fillOTRes;
  1136. that.remoteCall({
  1137. type:"post",
  1138. method:"validIsFillOT",
  1139. async: false,
  1140. param:{
  1141. personId : value.person.id,
  1142. overDate : value.otDate,
  1143. overTimeBegin : value.startTime+":00",
  1144. overTimeEnd : value.endTime+":00"
  1145. },
  1146. success:function(res){
  1147. fillOTRes = res;
  1148. }
  1149. });
  1150. if (fillOTRes.isIllegal){
  1151. return "超过加班补提控制期限!";
  1152. }
  1153. */
  1154. return "";
  1155. }, // 调休额度是否正确 ;
  1156. validateIsValidateLimit: function (
  1157. personId,
  1158. otDate,
  1159. currentValue,
  1160. otType
  1161. ) {
  1162. var that = this;
  1163. if ($("#hrOrgUnit_el") == null || $("#hrOrgUnit_el") == "") {
  1164. shr.showWarning({
  1165. message:
  1166. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_18
  1167. });
  1168. return;
  1169. }
  1170. var info;
  1171. var infoLeaveBillNumber;
  1172. otDate = otDate.substring(0, 10);
  1173. var errorString = "";
  1174. that.remoteCall({
  1175. type: "post",
  1176. async: false,
  1177. method: "isOverMaxQuota",
  1178. param: {
  1179. personId: personId,
  1180. otDate: otDate,
  1181. currentValue: currentValue,
  1182. otType: otType,
  1183. hrOrgUnitId: $("#hrOrgUnit_el").val()
  1184. },
  1185. success: function (res) {
  1186. if (!res.resFlag) {
  1187. errorString = res.resMsg;
  1188. }
  1189. }
  1190. });
  1191. return errorString;
  1192. },
  1193. validateIsExistBill: function (personId, beginTime, endTime, billId) {
  1194. var that = this;
  1195. var info;
  1196. var infoLeaveBillNumber;
  1197. var errorString = "";
  1198. that.remoteCall({
  1199. type: "post",
  1200. async: false,
  1201. method: "validateIsExistBill",
  1202. param: {
  1203. personId: personId,
  1204. beginTime: beginTime,
  1205. endTime: endTime,
  1206. billId: billId
  1207. },
  1208. success: function (res) {
  1209. info = res;
  1210. }
  1211. });
  1212. if (errorString) {
  1213. errorString = shr.formatMsg(
  1214. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_27,
  1215. [
  1216. info.overTimeNum,
  1217. info.personName,
  1218. info.beginTime,
  1219. info.endTime
  1220. ]
  1221. );
  1222. return errorString;
  1223. }
  1224. },
  1225. // 获取表格序号列,修复平台表格序号列位置移动导致的提示列位置错误导致的显示异常bug
  1226. getColNumIndex: function () {
  1227. var _self = this;
  1228. if (_self.colNumIndex) {
  1229. return _self.colNumIndex;
  1230. }
  1231. $.each(
  1232. $("#entries").jqGrid("getAllColumn"),
  1233. function (index, item) {
  1234. if (item.name == "rn") {
  1235. _self.colNumIndex = index;
  1236. }
  1237. }
  1238. );
  1239. return _self.colNumIndex;
  1240. },
  1241. //对校验结果进行页面个性化提示
  1242. preShowError: function (iRow, errorString) {
  1243. var rnColNum = this.getColNumIndex();
  1244. var that = this;
  1245. if (errorString) {
  1246. $("#entries tr:eq(" + iRow + ") td:eq(" + rnColNum + ")")
  1247. .html("!")
  1248. .css("color", "red")
  1249. .attr({
  1250. "data-toggle": "tooltip",
  1251. "data-placement": "left",
  1252. title: errorString
  1253. });
  1254. $("#entries tr[id='" + iRow + "']").css("color", "red");
  1255. /*
  1256. $("#entries tr:eq("+iRow+") td:eq(2)").css("color","red");
  1257. $("#entries tr:eq("+iRow+") td:eq(3)").css("color","red");
  1258. $("#entries tr:eq("+iRow+") td:eq(4)").css("color","red");
  1259. */
  1260. }
  1261. },
  1262. //对校验结果进行页面个性化提示
  1263. preShowWarn: function (iRow, errorString) {
  1264. var rnColNum = this.getColNumIndex();
  1265. var that = this;
  1266. $("#entries")
  1267. .find("tr")
  1268. .eq(iRow)
  1269. .find("td")
  1270. .eq(rnColNum)
  1271. .text("?")
  1272. .css("color", "red")
  1273. .attr({
  1274. "data-toggle": "tooltip",
  1275. "data-placement": "left",
  1276. title: errorString
  1277. });
  1278. },
  1279. //去除个性化展示,每次校验前去除
  1280. removePreShowError: function (rowid) {
  1281. var rnColNum = this.getColNumIndex();
  1282. var rows = $("#entries").getGridParam("reccount");
  1283. var td = $("#entries").find("tr[id='" + rowid + "'] td:eq(" + rnColNum + ")");
  1284. td.attr(
  1285. "title",
  1286. ""
  1287. );
  1288. td.html(
  1289. $("#entries").find("tr[id='" + rowid + "']")[0].rowIndex
  1290. );
  1291. td.css(
  1292. "color",
  1293. "rgb(153, 153, 153)"
  1294. );
  1295. $("#entries").find("tr[id='" + rowid + "']").css(
  1296. "color",
  1297. "rgb(153, 153, 153)"
  1298. ); //如果设置成css("color","initial")会变成黑色,而原界面为灰色
  1299. },
  1300. checkF7Data: function () {
  1301. var that = this;
  1302. var otDate = window.frames[
  1303. "orgFillDiv"
  1304. ].atsMlUtile.getFieldOriginalValue("otDate");
  1305. var adminOrgUnit_el = $(window.frames["orgFillDiv"].document)
  1306. .find("#adminOrgUnit_el")
  1307. .val();
  1308. var adminOrgUnit = $(window.frames["orgFillDiv"].document)
  1309. .find("#adminOrgUnit")
  1310. .val();
  1311. var person_el = $(window.frames["orgFillDiv"].document)
  1312. .find("#person_el")
  1313. .val();
  1314. var person = $(window.frames["orgFillDiv"].document)
  1315. .find("#person")
  1316. .val();
  1317. var startTime = window.frames[
  1318. "orgFillDiv"
  1319. ].atsMlUtile.getFieldOriginalValue("startTime");
  1320. var otType_el = $(window.frames["orgFillDiv"].document)
  1321. .find("#otType_el")
  1322. .val();
  1323. var otType = $(window.frames["orgFillDiv"].document)
  1324. .find("#otType")
  1325. .val();
  1326. var endTime = window.frames[
  1327. "orgFillDiv"
  1328. ].atsMlUtile.getFieldOriginalValue("endTime");
  1329. var otCompens_el = $(window.frames["orgFillDiv"].document)
  1330. .find("#otCompens_el")
  1331. .val();
  1332. var otCompens = $(window.frames["orgFillDiv"].document)
  1333. .find("#otCompens")
  1334. .val();
  1335. var restTime = $(window.frames["orgFillDiv"].document)
  1336. .find("#restTime")
  1337. .val();
  1338. var otReason_el = $(window.frames["orgFillDiv"].document)
  1339. .find("#otReason_el")
  1340. .val();
  1341. var otReason = $(window.frames["orgFillDiv"].document)
  1342. .find("#otReason")
  1343. .val();
  1344. var applyOTTime = $(window.frames["orgFillDiv"].document)
  1345. .find("#applyOTTime")
  1346. .val();
  1347. var remark = $(window.frames["orgFillDiv"].document)
  1348. .find("#remark")
  1349. .val();
  1350. var remain = $(window.frames["orgFillDiv"].document)
  1351. .find("#remain")
  1352. .text();
  1353. var checkAmount = $(window.frames["orgFillDiv"].document)
  1354. .find("#checkAmount")
  1355. .text();
  1356. var attencegroup_el = $(window.frames["orgFillDiv"].document)
  1357. .find("#prop_attencegroup_el")
  1358. .val();
  1359. var prop_attencegroup = $(window.frames["orgFillDiv"].document)
  1360. .find("#prop_attencegroup")
  1361. .val();
  1362. /*
  1363. var otDate = $('iframe')[0].contentWindow.$('#otDate').val();
  1364. var adminOrgUnit_el = $('iframe')[0].contentWindow.$('#adminOrgUnit_el').val();
  1365. var adminOrgUnit = $('iframe')[0].contentWindow.$('#adminOrgUnit').val();
  1366. var person_el = $('iframe')[0].contentWindow.$('#person_el').val();
  1367. var person = $('iframe')[0].contentWindow.$('#person').val();
  1368. var startTime = $('iframe')[0].contentWindow.$('#startTime').val();
  1369. var otType_el = $('iframe')[0].contentWindow.$('#otType_el').val();
  1370. var otType = $('iframe')[0].contentWindow.$('#otType').val();
  1371. var endTime = $('iframe')[0].contentWindow.$('#endTime').val();
  1372. var otCompens_el = $('iframe')[0].contentWindow.$('#otCompens_el').val();
  1373. var otCompens = $('iframe')[0].contentWindow.$('#otCompens').val();
  1374. var restTime = $('iframe')[0].contentWindow.$('#restTime').val();
  1375. var otReason_el = $('iframe')[0].contentWindow.$('#otReason_el').val();
  1376. var otReason = $('iframe')[0].contentWindow.$('#otReason').val();
  1377. var applyOTTime = $('iframe')[0].contentWindow.$('#applyOTTime').val();
  1378. var remark = $('iframe')[0].contentWindow.$('#remark').val();
  1379. var remain = $('iframe')[0].contentWindow.$('#remain').text();
  1380. var checkAmount = $('iframe')[0].contentWindow.$('#checkAmount').text();
  1381. */
  1382. //校验
  1383. if (parseInt(checkAmount) > parseInt(remain)) {
  1384. shr.showWarning({
  1385. message:
  1386. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_33,
  1387. hideAfter: 5
  1388. });
  1389. return false;
  1390. }
  1391. //校验
  1392. if (!otDate) {
  1393. shr.showWarning({
  1394. message:
  1395. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_10,
  1396. hideAfter: 5
  1397. });
  1398. return false;
  1399. }
  1400. if (
  1401. (!adminOrgUnit_el || !adminOrgUnit) &&
  1402. (!person_el || !person) &&
  1403. (attencegroup_el == undefined ||
  1404. attencegroup_el == null ||
  1405. attencegroup_el == "" ||
  1406. prop_attencegroup == undefined ||
  1407. prop_attencegroup == null ||
  1408. prop_attencegroup == "")
  1409. ) {
  1410. shr.showWarning({
  1411. message:
  1412. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_30,
  1413. hideAfter: 5
  1414. });
  1415. return false;
  1416. }
  1417. if (!startTime) {
  1418. shr.showWarning({
  1419. message:
  1420. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_14,
  1421. hideAfter: 5
  1422. });
  1423. return false;
  1424. }
  1425. if (!otType_el || !otType) {
  1426. shr.showWarning({
  1427. message:
  1428. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_9,
  1429. hideAfter: 5
  1430. });
  1431. return false;
  1432. }
  1433. if (!endTime) {
  1434. shr.showWarning({
  1435. message:
  1436. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_13,
  1437. hideAfter: 5
  1438. });
  1439. return false;
  1440. }
  1441. if (!otCompens_el || !otCompens) {
  1442. shr.showWarning({
  1443. message:
  1444. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_0,
  1445. hideAfter: 5
  1446. });
  1447. return false;
  1448. }
  1449. /*if(!restTime){
  1450. shr.showWarning({message: "休息时长(分钟)不能为空!"});
  1451. return false;
  1452. }*/
  1453. /*if(!otReason_el||!otReason){
  1454. shr.showWarning({message: "加班原因不能为空!"});
  1455. return false;
  1456. }*/
  1457. if (!applyOTTime) {
  1458. shr.showWarning({
  1459. message:
  1460. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_20,
  1461. hideAfter: 5
  1462. });
  1463. return false;
  1464. }
  1465. return true;
  1466. },
  1467. fillGrid: function () {
  1468. var that = this;
  1469. var otType_person={};
  1470. var otDate = window.frames[
  1471. "orgFillDiv"
  1472. ].atsMlUtile.getFieldOriginalValue("otDate");
  1473. var adminOrgUnit_el = $(window.frames["orgFillDiv"].document)
  1474. .find("#adminOrgUnit_el")
  1475. .val();
  1476. var adminOrgUnit = $(window.frames["orgFillDiv"].document)
  1477. .find("#adminOrgUnit")
  1478. .val();
  1479. var person_el = $(window.frames["orgFillDiv"].document)
  1480. .find("#person_el")
  1481. .val();
  1482. var person = $(window.frames["orgFillDiv"].document)
  1483. .find("#person")
  1484. .val();
  1485. var person_number = $(window.frames["orgFillDiv"].document)
  1486. .find("#person_number")
  1487. .val();
  1488. var startTime = window.frames[
  1489. "orgFillDiv"
  1490. ].atsMlUtile.getFieldOriginalValue("startTime");
  1491. var otType_el = $(window.frames["orgFillDiv"].document)
  1492. .find("#otType_el")
  1493. .val();
  1494. var otType = $(window.frames["orgFillDiv"].document)
  1495. .find("#otType")
  1496. .val();
  1497. var endTime = window.frames[
  1498. "orgFillDiv"
  1499. ].atsMlUtile.getFieldOriginalValue("endTime");
  1500. var otCompens_el = $(window.frames["orgFillDiv"].document)
  1501. .find("#otCompens_el")
  1502. .val();
  1503. var otCompens = $(window.frames["orgFillDiv"].document)
  1504. .find("#otCompens")
  1505. .val();
  1506. var restTime = $(window.frames["orgFillDiv"].document)
  1507. .find("#restTime")
  1508. .val();
  1509. var restStartTime = $(window.frames["orgFillDiv"].document)
  1510. .find("#restStartTime")
  1511. .val();
  1512. var restStartTime2 = $(window.frames["orgFillDiv"].document)
  1513. .find("#restStartTime2")
  1514. .val();
  1515. var restEndTime = $(window.frames["orgFillDiv"].document)
  1516. .find("#restEndTime")
  1517. .val();
  1518. var restEndTime2 = $(window.frames["orgFillDiv"].document)
  1519. .find("#restEndTime2")
  1520. .val();
  1521. var otReason_el = $(window.frames["orgFillDiv"].document)
  1522. .find("#otReason_el")
  1523. .val();
  1524. var otReason = $(window.frames["orgFillDiv"].document)
  1525. .find("#otReason")
  1526. .val();
  1527. var applyOTTime = $(window.frames["orgFillDiv"].document)
  1528. .find("#applyOTTime")
  1529. .val();
  1530. var hrOrgUnitId = $(window.frames["orgFillDiv"].document)
  1531. .find("#bill_hrOrgUnit_el")
  1532. .val();
  1533. var attencegroupId = $(window.frames["orgFillDiv"].document)
  1534. .find("#prop_attencegroup_el")
  1535. .val();
  1536. var prop_attencegroup = $(window.frames["orgFillDiv"].document)
  1537. .find("#prop_attencegroup")
  1538. .val();
  1539. var description = $(window.frames["orgFillDiv"].document)
  1540. .find("#remark")
  1541. .val();
  1542. var setType = $(window.frames["orgFillDiv"].document)
  1543. .find("#setType1")
  1544. .is(":visible")
  1545. ? 1
  1546. : 2;
  1547. var attAdminOrgUnit_el = $(window.frames["orgFillDiv"].document).find("#attAdminOrgUnit_el").val();
  1548. var attAdminOrgUnit = $(window.frames["orgFillDiv"].document).find("#attAdminOrgUnit").val();
  1549. var currentPagePermItemId = that.currentPagePermItemId;
  1550. var hasNum = $("#entries").getGridParam("reccount"); // 已经存在的条数
  1551. /* that.remoteCall({
  1552. type: "post",
  1553. async: false,
  1554. method: "getOtTypeByPersons",
  1555. param: {
  1556. otDate: otDate,
  1557. attencegroupId: attencegroupId,
  1558. hrOrgUnitId: hrOrgUnitId,
  1559. orgUnitId: adminOrgUnit_el,
  1560. setType: setType,
  1561. personIds: person_el
  1562. },success: function (res) {
  1563. otType_person=res.otTypeByPersons
  1564. }
  1565. });*/
  1566. if (
  1567. (adminOrgUnit_el && adminOrgUnit) ||
  1568. (attencegroupId && prop_attencegroup)
  1569. ) {
  1570. that.remoteCall({
  1571. type: "post",
  1572. async: false,
  1573. method: "getPersonsByOrgUnit",
  1574. param: {
  1575. attencegroupId: attencegroupId,
  1576. hrOrgUnitId: hrOrgUnitId,
  1577. orgUnitId: adminOrgUnit_el,
  1578. otDate: otDate,
  1579. otType: otType_el,
  1580. personIds: person_el,
  1581. setType: setType,
  1582. currentPagePermItemId: currentPagePermItemId
  1583. },
  1584. success: function (res) {
  1585. info = res;
  1586. var personColl = jQuery.parseJSON(info.personColl);
  1587. var rowTipId = [];
  1588. $.each(personColl, function (n, value) {
  1589. // 拼json string
  1590. var otDateString = ' "otDate" : "' + otDate + '"';
  1591. var adminOrgUnitString =
  1592. ' "adminOrgUnit" : { "id": "' +
  1593. adminOrgUnit_el +
  1594. '", "name": "' +
  1595. adminOrgUnit +
  1596. '"}';
  1597. var personString =
  1598. ' "person" : { "id": "' +
  1599. value.id +
  1600. '", "name": "' +
  1601. value.name +
  1602. '"}';
  1603. var startTimeString =
  1604. ' "startTime" : "' + startTime + '"';
  1605. var otTypeString =
  1606. ' "otType" : { "id": "' +
  1607. value.simpleName +
  1608. '", "name": "' +
  1609. value.simpleNamePingYin +
  1610. '"}';
  1611. var endTimeString =
  1612. ' "endTime" : "' + endTime + '"';
  1613. var otCompensString = "";
  1614. if (otCompens_el) {
  1615. var otCompensString =
  1616. ' "otCompens" : { "id": "' +
  1617. otCompens_el +
  1618. '", "name": "' +
  1619. otCompens +
  1620. '"}';
  1621. }
  1622. var attAdminOrgUnitString = ' "attAdminOrgUnit" : { "id": "'
  1623. + attAdminOrgUnit_el
  1624. + '", "name": "'
  1625. + attAdminOrgUnit
  1626. + '"}';
  1627. var restTimeString =
  1628. ' "restTime" : "' + restTime + '"';
  1629. var restStartTimeString =
  1630. ' "restStartTime" : "' + restStartTime + '"';
  1631. var restStartTime2String =
  1632. ' "restStartTime2" : "' + restStartTime2 + '"';
  1633. var restEndTimeString =
  1634. ' "restEndTime" : "' + restEndTime + '"';
  1635. var restEndTime2String =
  1636. ' "restEndTime2" : "' + restEndTime2 + '"';
  1637. var otReasonString =
  1638. ' "otReason" : { "id": "' +
  1639. otReason_el +
  1640. '", "name": "' +
  1641. otReason +
  1642. '"}';
  1643. var applyOTTimeString =
  1644. ' "applyOTTime" : "' + applyOTTime + '"';
  1645. var descriptionString =
  1646. ' "description" : "' + description + '"';
  1647. var dataString =
  1648. ' { "data" : {' +
  1649. otDateString +
  1650. ", " +
  1651. adminOrgUnitString +
  1652. ", " +
  1653. personString +
  1654. ", " +
  1655. startTimeString +
  1656. ", " +
  1657. otTypeString +
  1658. ", " +
  1659. endTimeString +
  1660. ", " +
  1661. otCompensString +
  1662. ", " +
  1663. attAdminOrgUnitString +
  1664. ', ' +
  1665. restTimeString +
  1666. ", " +
  1667. restStartTimeString +
  1668. ", " +
  1669. restEndTimeString +
  1670. ", " +
  1671. restStartTime2String +
  1672. ", " +
  1673. restEndTime2String +
  1674. ", " +
  1675. otReasonString +
  1676. ", " +
  1677. applyOTTimeString +
  1678. ", " +
  1679. descriptionString +
  1680. "}} ";
  1681. var dataJson = jQuery.parseJSON(dataString);
  1682. $("#entries").jqGrid("addRow", dataJson);
  1683. //点击序号列 让人员失去焦点
  1684. $("#entries tr:eq(1) td:eq(0)").click();
  1685. // hasNum
  1686. if (value.addressTX == "2") {
  1687. rowTipId.push(n + 1 + hasNum);
  1688. }
  1689. });
  1690. if (rowTipId.length != 0) {
  1691. for (var ii = 0; rowTipId.length > ii; ii++) {
  1692. that.preShowWarn(
  1693. rowTipId[ii],
  1694. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_31
  1695. );
  1696. }
  1697. }
  1698. }
  1699. });
  1700. } else {
  1701. that.remoteCall({
  1702. type: "post",
  1703. async: false,
  1704. method: "getOtTypeByPersons",
  1705. param: {
  1706. otDate: otDate,
  1707. personIds: person_el
  1708. },success: function (res) {
  1709. otType_person=res.otTypeByPersons
  1710. }
  1711. });
  1712. var person_el_split = person_el.split(",");
  1713. var person_split = person.split(",");
  1714. var person_number_split = person_number.split(",");
  1715. for (var i = 0; i < person_el_split.length; i++) {
  1716. // 拼json string
  1717. var otDateString = ' "otDate" : "' + otDate + '"';
  1718. var personString =
  1719. ' "person" : { "id": "' +
  1720. person_el_split[i] +
  1721. '", "name": "' +
  1722. person_split[i] +
  1723. '", "number": "' +
  1724. person_number_split[i] +
  1725. '"}';
  1726. var startTimeString = ' "startTime" : "' + startTime + '"';
  1727. if (otType_person[person_el_split[i]]){
  1728. var otTypeString =
  1729. ' "otType" : { "id": "' +
  1730. otType_person[person_el_split[i]].otTypeValue +
  1731. '", "name": "' +
  1732. otType_person[person_el_split[i]].otTypeText +
  1733. '"}';
  1734. }else {
  1735. var otTypeString =
  1736. ' "otType" : { "id": "' +
  1737. otType_el +
  1738. '", "name": "' +
  1739. otType +
  1740. '"}';
  1741. }
  1742. var endTimeString = ' "endTime" : "' + endTime + '"';
  1743. var otCompensString =
  1744. ' "otCompens" : { "id": "' +
  1745. otCompens_el +
  1746. '", "name": "' +
  1747. otCompens +
  1748. '"}';
  1749. var attAdminOrgUnitString = ' "attAdminOrgUnit" : { "id": "'
  1750. + attAdminOrgUnit_el
  1751. + '", "name": "'
  1752. + attAdminOrgUnit
  1753. + '"}';
  1754. var restTimeString = ' "restTime" : "' + restTime + '"';
  1755. var restStartTimeString =
  1756. ' "restStartTime" : "' + restStartTime + '"';
  1757. var restStartTime2String =
  1758. ' "restStartTime2" : "' + restStartTime2 + '"';
  1759. var restEndTimeString =
  1760. ' "restEndTime" : "' + restEndTime + '"';
  1761. var restEndTime2String =
  1762. ' "restEndTime2" : "' + restEndTime2 + '"';
  1763. var otReasonString =
  1764. ' "otReason" : { "id": "' +
  1765. otReason_el +
  1766. '", "name": "' +
  1767. otReason +
  1768. '"}';
  1769. var applyOTTimeString =
  1770. ' "applyOTTime" : "' + applyOTTime + '"';
  1771. var descriptionString =
  1772. ' "description" : "' + description + '"';
  1773. var dataString =
  1774. ' { "data" : {' +
  1775. otDateString +
  1776. ", " +
  1777. personString +
  1778. ", " +
  1779. startTimeString +
  1780. ", " +
  1781. otTypeString +
  1782. ", " +
  1783. endTimeString +
  1784. ", " +
  1785. otCompensString +
  1786. ", " +
  1787. attAdminOrgUnitString +
  1788. ', ' +
  1789. restTimeString +
  1790. ", " +
  1791. restStartTimeString +
  1792. ", " +
  1793. restEndTimeString +
  1794. ", " +
  1795. restStartTime2String +
  1796. ", " +
  1797. restEndTime2String +
  1798. ", " +
  1799. otReasonString +
  1800. ", " +
  1801. applyOTTimeString +
  1802. ", " +
  1803. descriptionString +
  1804. "}} ";
  1805. // var dataJson = jQuery.parseJSON(dataString);
  1806. var dataJson = shr.explainJson(dataString);
  1807. $("#entries").jqGrid("addRow", dataJson);
  1808. //点击序号列 让人员失去焦点
  1809. $("#entries tr:eq(1) td:eq(0)").click();
  1810. }
  1811. }
  1812. },
  1813. checkRowIsOver: function () {
  1814. if ($("#entries").jqGrid("getRowData").length > 100) {
  1815. shr.showWarning({
  1816. message:
  1817. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_6
  1818. });
  1819. return false;
  1820. } else {
  1821. return true;
  1822. }
  1823. },
  1824. // 如 加班小时数发生变化 则给予提示
  1825. changOtTimeTipInfo: function (rowid) {
  1826. //
  1827. var that = this;
  1828. var startTime = $("#entries").jqGrid("getCell", rowid, "startTime");
  1829. var endTime = $("#entries").jqGrid("getCell", rowid, "endTime");
  1830. var restTime = $("#entries").jqGrid("getCell", rowid, "restTime");
  1831. var applyOTTime = $("#entries").jqGrid(
  1832. "getCell",
  1833. rowid,
  1834. "applyOTTime"
  1835. );
  1836. if (startTime != "" && endTime != "") {
  1837. var restVal = 0;
  1838. if (restTime != "" && /^[0-9]*$/.test(restTime)) {
  1839. restVal = restTime; // 分钟数
  1840. }
  1841. var startTime = new Date(startTime + ":00");
  1842. var endTime = new Date(endTime + ":00");
  1843. var se =
  1844. endTime.getTime() -
  1845. startTime.getTime() -
  1846. restVal * 1000 * 60; // 毫秒
  1847. var tfl = se / (3600 * 1000);
  1848. if (tfl != applyOTTime) {
  1849. if(tfl.toFixed(2)!=applyOTTime.toFixed(2)){
  1850. // 不相等就给予提示
  1851. that.preShowWarn(
  1852. rowid,
  1853. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_24
  1854. );
  1855. }
  1856. }
  1857. //$("#entries").jqGrid('setCell',rowid,"applyOTTime",tfl); 计算的值
  1858. }
  1859. },
  1860. // if(cellname=="startTime" || cellname=="endTime" || cellname=="restTime"){
  1861. calRestTimeLen: function (rowid) {
  1862. var startTime = $("#entries").jqGrid("getCell", rowid, "startTime");
  1863. var endTime = $("#entries").jqGrid("getCell", rowid, "endTime");
  1864. if (startTime == "[object Object]") {
  1865. $("#" + rowid)
  1866. .find("td")
  1867. .eq("5")
  1868. .text("");
  1869. $("#" + rowid)
  1870. .find("td")
  1871. .eq("5")
  1872. .attr("title", "");
  1873. return;
  1874. }
  1875. if (endTime == "[object Object]") {
  1876. $("#" + rowid)
  1877. .find("td")
  1878. .eq("6")
  1879. .text("");
  1880. $("#" + rowid)
  1881. .find("td")
  1882. .eq("6")
  1883. .attr("title", "");
  1884. return;
  1885. }
  1886. if (!$("#entries").jqGrid("getCell", rowid, "otDate")) {
  1887. return;
  1888. } else {
  1889. otDate = $("#entries").jqGrid("getCell", rowid, "otDate");
  1890. }
  1891. if (!$("#entries").jqGrid("getCell", rowid, "person")) {
  1892. return;
  1893. } else {
  1894. personId = $("#entries").jqGrid("getCell", rowid, "person").id;
  1895. }
  1896. this.remoteCall({
  1897. type: "post",
  1898. method: "getMyRestTime",
  1899. async: false,
  1900. param: {
  1901. personId: personId,
  1902. tDay: otDate,
  1903. realStartTime: startTime,
  1904. realEndTime: endTime
  1905. },
  1906. success: function (res) {
  1907. var resLen = res.restTime < 0 ? 0 : res.restTime;
  1908. var restStartTime = res.restStartTime;
  1909. var restStartTime2 = res.restStartTime2;
  1910. var restEndTime = res.restEndTime;
  1911. var restEndTime2 = res.restEndTime2;
  1912. $("#entries").jqGrid("setCell", rowid, "restTime", resLen);
  1913. $("#entries").jqGrid(
  1914. "setCell",
  1915. rowid,
  1916. "restStartTime",
  1917. restStartTime
  1918. );
  1919. $("#entries").jqGrid(
  1920. "setCell",
  1921. rowid,
  1922. "restStartTime2",
  1923. restStartTime2
  1924. );
  1925. $("#entries").jqGrid(
  1926. "setCell",
  1927. rowid,
  1928. "restEndTime",
  1929. restEndTime
  1930. );
  1931. $("#entries").jqGrid(
  1932. "setCell",
  1933. rowid,
  1934. "restEndTime2",
  1935. restEndTime2
  1936. );
  1937. }
  1938. });
  1939. },
  1940. calculateOTtimes: function (rowid) {
  1941. var startTime = $("#entries").jqGrid("getCell", rowid, "startTime");
  1942. var endTime = $("#entries").jqGrid("getCell", rowid, "endTime");
  1943. var restTime = $("#entries").jqGrid("getCell", rowid, "restTime");
  1944. if (startTime == "[object Object]") {
  1945. $("#" + rowid)
  1946. .find("td")
  1947. .eq("5")
  1948. .text("");
  1949. $("#" + rowid)
  1950. .find("td")
  1951. .eq("5")
  1952. .attr("title", "");
  1953. }
  1954. if (endTime == "[object Object]") {
  1955. $("#" + rowid)
  1956. .find("td")
  1957. .eq("6")
  1958. .text("");
  1959. $("#" + rowid)
  1960. .find("td")
  1961. .eq("6")
  1962. .attr("title", "");
  1963. }
  1964. if (startTime != "" && endTime != "") {
  1965. var restVal = 0;
  1966. if (restTime != "" && /^[0-9]*$/.test(restTime)) {
  1967. restVal = restTime; // 分钟数
  1968. }
  1969. var startTime = NewDate(startTime + ":00");
  1970. var endTime = NewDate(endTime + ":00");
  1971. var se =
  1972. endTime.getTime() -
  1973. startTime.getTime() -
  1974. restVal * 1000 * 60; // 毫秒
  1975. var tfl = se / (3600 * 1000);
  1976. $("#entries").jqGrid(
  1977. "setCell",
  1978. rowid,
  1979. "applyOTTime",
  1980. tfl.toFixed(fixedNum)
  1981. );
  1982. }
  1983. },
  1984. //获取档案历史加班类型的加班补偿方式
  1985. getOTCompensByOTType: function (personId, otTypeId, tDate) {
  1986. var _self = this;
  1987. var url =
  1988. shr.getContextPath() +
  1989. "/dynamic.do";
  1990. var otCompens = "";
  1991. _self.remoteCall({
  1992. type: "post",
  1993. method: "getOTCompensByOTType",
  1994. url: url,
  1995. param: {
  1996. personId: personId,
  1997. otTypeId: otTypeId,
  1998. otDate: tDate
  1999. },
  2000. async: false,
  2001. success: function (res) {
  2002. otCompens = res.otCompens;
  2003. }
  2004. });
  2005. return otCompens;
  2006. },
  2007. //获取当前加班类型的加班补偿方式
  2008. getOTCompensByOTTypes: function (personId, otTypeId) {
  2009. var _self = this;
  2010. var url =
  2011. shr.getContextPath() +
  2012. "/dynamic.do";
  2013. var otCompens = "";
  2014. _self.remoteCall({
  2015. type: "post",
  2016. method: "getOTCompensByOTTypes",
  2017. url: url,
  2018. param: { personId: personId, otTypeId: otTypeId },
  2019. async: false,
  2020. success: function (res) {
  2021. otCompens = res.otCompens;
  2022. }
  2023. });
  2024. return otCompens;
  2025. },
  2026. changeOTCompens: function (rowid) {
  2027. var that = this;
  2028. var otCompensId;
  2029. if (!$("#entries").jqGrid("getCell", rowid, "otType")) {
  2030. return;
  2031. } else {
  2032. otTypeId = $("#entries").jqGrid("getCell", rowid, "otType").id;
  2033. }
  2034. if (!$("#entries").jqGrid("getCell", rowid, "person")) {
  2035. return;
  2036. } else {
  2037. var personId = $("#entries").jqGrid("getCell", rowid, "person")
  2038. .id;
  2039. }
  2040. if (!$("#entries").jqGrid("getCell", rowid, "otDate")) {
  2041. return;
  2042. } else {
  2043. var otDate = $("#entries").jqGrid("getCell", rowid, "otDate");
  2044. }
  2045. /*// zkbt5bMLQ3ehUivmKbtBOqlrTmA= 加班费
  2046. var otCompensObejct = {id:"zkbt5bMLQ3ehUivmKbtBOqlrTmA=",name:"加班费"};
  2047. //等于法定节假日 id sRWUOt7sRpOY0TCo6NMqGY6C/nU=
  2048. */
  2049. var otCompensIds = that.getOTCompensByOTTypes(personId, otTypeId);
  2050. var url =
  2051. shr.getContextPath() +
  2052. "/dynamic.do";
  2053. that.remoteCall({
  2054. type: "post",
  2055. method: "getDefaultOTCompens",
  2056. url: url,
  2057. param: {
  2058. personId: personId,
  2059. otTypeId: otTypeId,
  2060. otDate: otDate
  2061. },
  2062. async: false,
  2063. success: function (res) {
  2064. var info = res;
  2065. if (info.defaultId == "" || info.defaultId == undefined) {
  2066. shr.showWarning({
  2067. message:
  2068. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_28
  2069. });
  2070. } else {
  2071. var defaultOTCompens = {
  2072. id: info.defaultId,
  2073. name: info.defaultName
  2074. };
  2075. $("#entries").jqGrid(
  2076. "setCell",
  2077. rowid,
  2078. "otCompens",
  2079. defaultOTCompens
  2080. );
  2081. if (otCompensIds) {
  2082. var otCompensIdsStr = otCompensIds.replace(
  2083. /(,)/g,
  2084. "','"
  2085. );
  2086. that.filter[rowid] =
  2087. "BaseInfo.id in ('" + otCompensIdsStr + "')";
  2088. }
  2089. //$("#"+rowid+"_otCompens").shrPromptBox("setFilter","BaseInfo.id in ('"+otCompensIds+"')");
  2090. }
  2091. //
  2092. }
  2093. });
  2094. /*
  2095. that.remoteCall({
  2096. type:"post",
  2097. method:"getdefautAndOtOTCompens",
  2098. async: false,
  2099. success:function(res){
  2100. var info = res;
  2101. var defaultcompens = info.defaultcompens;
  2102. var overTimeCompens = info.overTimeCompens;
  2103. var defaultJson = {id:defaultcompens.id , name:defaultcompens.name} ;
  2104. var overTimeJson = {id:overTimeCompens.id , name:overTimeCompens.name} ;
  2105. // 如果不是 工作日加班 则是要默认的补偿方式
  2106. // 如果是工作日加班 则是看有没有加班费
  2107. //$("#entries").jqGrid('setCell',rowid,"otCompens",'', 'editable-cell');
  2108. if(otTypeId == "sRWUOt7sRpOY0TCo6NMqGY6C/nU="){ //
  2109. if(overTimeCompens!=null && overTimeCompens!=undefined){
  2110. $("#entries").jqGrid('setCell',rowid,"otCompens",overTimeJson);
  2111. //$("#entries").jqGrid('setCell',rowid,"otCompens",'', 'not-editable-cell');
  2112. }else{
  2113. $("#entries").jqGrid('setCell',rowid,"otCompens",defaultJson);
  2114. }
  2115. }else{
  2116. //$("#entries tr[id='"+rowid+"'] td[aria-describedby='entries_otCompens']").removeClass('not-editable-cell');
  2117. $("#entries").jqGrid('setCell',rowid,"otCompens",defaultJson);
  2118. //$("#entries").jqGrid('setCell',rowid,"otCompens",'', 'not-editable-cell');
  2119. }
  2120. }
  2121. });*/
  2122. /*
  2123. if(otTypeId == "sRWUOt7sRpOY0TCo6NMqGY6C/nU="){
  2124. $("#entries").jqGrid('setCell',rowid,"otCompens",otCompensObejct);
  2125. $("#entries").jqGrid('setCell',rowid,"otCompens",'', 'not-editable-cell');
  2126. }else{
  2127. $("#entries tr[id='"+rowid+"'] td[aria-describedby='entries_otCompens']").removeClass('not-editable-cell');
  2128. }
  2129. */
  2130. },
  2131. changeOverTimeType: function (rowid) {
  2132. var that = this;
  2133. var otDate;
  2134. var personId;
  2135. if (!$("#entries").jqGrid("getCell", rowid, "otDate")) {
  2136. return;
  2137. } else {
  2138. otDate = $("#entries").jqGrid("getCell", rowid, "otDate");
  2139. }
  2140. if (!$("#entries").jqGrid("getCell", rowid, "person")) {
  2141. return;
  2142. } else {
  2143. personId = $("#entries").jqGrid("getCell", rowid, "person").id;
  2144. }
  2145. that.getOverTimeType(rowid, otDate, personId);
  2146. },
  2147. getOverTimeType: function (rowid, otDate, personId) {
  2148. var _self = this;
  2149. var tDate = otDate;
  2150. var url =
  2151. shr.getContextPath() +
  2152. "/dynamic.do?method=getOverTimeTypeAndOtCompens";
  2153. url +=
  2154. "&otDate=" +
  2155. encodeURIComponent(otDate) +
  2156. "&personId=" +
  2157. encodeURIComponent(personId)+"&uipk="+shr.getUrlRequestParam('uipk');
  2158. $.ajax({
  2159. url: url,
  2160. async: false,
  2161. success: function (response) {
  2162. if (
  2163. response.otTypeValue != null &&
  2164. response.otTypeValue != undefined &&
  2165. response.otTypeValue != ""
  2166. ) {
  2167. var responseObejct = {
  2168. id: response.otTypeValue,
  2169. name: response.otTypeText
  2170. };
  2171. if (_self.isOtTypeEffective(response.otTypeValue)) {
  2172. // $('#entries').restoreCell(rowid,4); // 先恢复单元格状态再重新赋值,可以避免
  2173. $("#entries").jqGrid(
  2174. "setCell",
  2175. rowid,
  2176. "otType",
  2177. responseObejct
  2178. );
  2179. //设置该加班类型的补偿方式过滤
  2180. var otCompensIds = _self.getOTCompensByOTType(
  2181. personId,
  2182. response.otTypeValue,
  2183. tDate
  2184. );
  2185. if (otCompensIds) {
  2186. var otCompensIdsStr = _self
  2187. .getOTCompensByOTType(
  2188. personId,
  2189. response.otTypeValue,
  2190. tDate
  2191. )
  2192. .replace(/(,)/g, "','");
  2193. _self.filter[rowid] =
  2194. "BaseInfo.id in ('" +
  2195. otCompensIdsStr +
  2196. "')";
  2197. }
  2198. var compens = response.compensInfo;
  2199. if (compens != null) {
  2200. var defaultJson = {
  2201. id: compens.id,
  2202. name: compens.name
  2203. };
  2204. $("#entries").jqGrid(
  2205. "setCell",
  2206. rowid,
  2207. "otCompens",
  2208. defaultJson
  2209. );
  2210. }
  2211. } else {
  2212. $("#entries").jqGrid(
  2213. "setCell",
  2214. rowid,
  2215. "otType",
  2216. null
  2217. );
  2218. }
  2219. }
  2220. },
  2221. error: function (response) {}
  2222. });
  2223. },
  2224. // 判断加班补偿方式是否有效(存在且生效)
  2225. isOtTypeEffective: function (OtType) {
  2226. var _self = this;
  2227. var flag = true;
  2228. _self.remoteCall({
  2229. type: "post",
  2230. method: "isOtTypeEffective",
  2231. param: {
  2232. OtType: OtType
  2233. },
  2234. async: false,
  2235. success: function (res) {
  2236. var info = res;
  2237. if (info.resFlag == false) {
  2238. flag = false;
  2239. } else {
  2240. flag = true;
  2241. }
  2242. }
  2243. });
  2244. return flag;
  2245. },
  2246. /**
  2247. * 设置分录行的默认值。重写框架此方法
  2248. */
  2249. createNewEntryModel: function () {
  2250. var that = this;
  2251. /*
  2252. var otCompens = that.getDefaultOTCompens();
  2253. return {otCompens:otCompens};*/
  2254. },
  2255. //设置默认的加班补偿方式
  2256. getDefaultOTCompens: function () {
  2257. var _self = this;
  2258. var defaultOTCompens = {};
  2259. //设置同步
  2260. _self.remoteCall({
  2261. type: "post",
  2262. method: "getDefaultOTCompens",
  2263. async: false,
  2264. success: function (res) {
  2265. var info = res;
  2266. if (info.defaultId) {
  2267. defaultOTCompens = {
  2268. id: info.defaultId,
  2269. name: info.defaultName
  2270. };
  2271. }
  2272. }
  2273. });
  2274. return defaultOTCompens;
  2275. },
  2276. setButtonVisible: function () {
  2277. var billState = $("#billState").val();
  2278. //alert(billState);
  2279. if (billState) {
  2280. if (
  2281. billState == 3 ||
  2282. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_22 ==
  2283. billState ||
  2284. billState == 4 ||
  2285. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_21 ==
  2286. billState ||
  2287. billState == 2 ||
  2288. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_23 ==
  2289. billState
  2290. ) {
  2291. $("#edit").hide();
  2292. $("#submit").hide();
  2293. $("#submitEffect").hide();
  2294. } else if (
  2295. 1 == billState ||
  2296. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_26 ==
  2297. billState ||
  2298. 2 == billState ||
  2299. jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_23 ==
  2300. billState
  2301. ) {
  2302. //未审批或审批中
  2303. if (!this.isFromWF()) {
  2304. $("#edit").hide();
  2305. $("#submit").hide();
  2306. $("#submitEffect").hide();
  2307. }
  2308. }
  2309. }
  2310. if (this.getOperateState().toUpperCase() == "VIEW") {
  2311. //查看状态下不允许提交
  2312. //不允许提交生效
  2313. $("#submitEffect").hide();
  2314. }
  2315. //如果是工作流打回,界面上的"取消"不显示
  2316. if (this.isFromWF()) {
  2317. $("#cancelAll").hide();
  2318. }
  2319. },
  2320. setImportSelfParam: function () {
  2321. var billId = $("#id").val();
  2322. return (
  2323. $("#entries").getGridParam("reccount") + "&" + $("#id").val()
  2324. );
  2325. },
  2326. getOTContrlParams: function (rowid) {
  2327. var personId;
  2328. if (!$("#entries").jqGrid("getCell", rowid, "person")) {
  2329. return;
  2330. } else {
  2331. personId = $("#entries").jqGrid("getCell", rowid, "person").id;
  2332. }
  2333. var otDate;
  2334. if (!$("#entries").jqGrid("getCell", rowid, "otDate")) {
  2335. return;
  2336. } else {
  2337. otDate = $("#entries").jqGrid("getCell", rowid, "otDate");
  2338. }
  2339. var that = this;
  2340. var url =
  2341. shr.getContextPath() +
  2342. "/dynamic.do?handler=com.kingdee.shr.ats.bill.util.BillBizUtil&method=getOTContrlParam";
  2343. shr.ajax({
  2344. type: "post",
  2345. async: false,
  2346. url: url,
  2347. data: { personId: personId, otDate: otDate },
  2348. success: function (res) {
  2349. if (res) {
  2350. that.OTContrlParams[rowid] = res;
  2351. // isOTControl=res.isOTControl;
  2352. // isOtrolByDateType=res.isOtrolByDateType;
  2353. }
  2354. }
  2355. });
  2356. },
  2357. beforeSubmit: function () {
  2358. var _self = this,
  2359. workArea = _self.getWorkarea(),
  2360. $form = $("form", workArea);
  2361. _self.beforeWFValidStoreCellValue();
  2362. if ($form.valid() && _self.verify()) {
  2363. return true;
  2364. }
  2365. // return false 也能保存,固让js报错,后续让eas修改 return false 逻辑
  2366. var len = workArea.length();
  2367. return false;
  2368. },
  2369. validateIsFillOtVerify: function () {
  2370. var that = this;
  2371. var boo = true;
  2372. if (that.isFromWF()) {
  2373. var model = that.getCurrentModel();
  2374. that.remoteCall({
  2375. method: "validateIsFillOt",
  2376. param: { model: model },
  2377. async: false,
  2378. success: function (res) {
  2379. info = res;
  2380. if (res.errorString) {
  2381. shr.showError({ message: res.errorString });
  2382. boo = false;
  2383. }
  2384. }
  2385. });
  2386. }
  2387. return boo;
  2388. },
  2389. /**
  2390. * 工作流和其他页面统一校验入口,最好后续把校验都放在一起,方便维护.
  2391. * @return {}
  2392. */
  2393. verifyCheck: function () {
  2394. var that = this;
  2395. var boo = true;
  2396. if (that.isFromWF()) {
  2397. //暂时只处理流程提交,后续可放开把所有检验统一入口
  2398. var model = that.getCurrentModel();
  2399. that.remoteCall({
  2400. method: "verifyCheck",
  2401. param: { model: model },
  2402. async: false,
  2403. success: function (res) {
  2404. info = res;
  2405. if (res.errorString) {
  2406. shr.showError({ message: res.errorString });
  2407. boo = false;
  2408. }
  2409. }
  2410. });
  2411. }
  2412. return boo;
  2413. },
  2414. beforeWFValidStoreCellValue: function () {
  2415. var _self = this;
  2416. if (this.rowid && this.cellname && this.iRow && this.iCol) {
  2417. $("#entries").jqGrid("saveCell", this.rowid, this.iCol);
  2418. //_self.afterSaveCellTrigger(this.rowid, this.cellname, this.value, this.iRow , this.iCol) ;
  2419. }
  2420. },
  2421. checkattencePolicyParm: function (rownum) {
  2422. var that = this;
  2423. var errorString = "";
  2424. var model = that.getCurrentModel();
  2425. if (model.entries[0] && model.entries[0].person) {
  2426. delete model.entries[0].person["person.gender"];
  2427. delete model.entries[0].person["personOtherInfo.age"];
  2428. }
  2429. that.remoteCall({
  2430. method: "checkattencePolicyParm",
  2431. param: { model: model },
  2432. async: false,
  2433. success: function (res) {
  2434. errorString = res.errorString;
  2435. }
  2436. });
  2437. return errorString;
  2438. },
  2439. validateOTEntry: function (rownum) {
  2440. var that = this;
  2441. var errorString = "";
  2442. var model = that.getCurrentModel();
  2443. if (model.entries[0] && model.entries[0].person) {
  2444. delete model.entries[0].person["person.gender"];
  2445. delete model.entries[0].person["personOtherInfo.age"];
  2446. }
  2447. // openLoader();
  2448. that.remoteCall({
  2449. method: "validateOTEntry",
  2450. param: { model: model },
  2451. async: false,
  2452. success: function (res) {
  2453. errorString = res.errorMSg;
  2454. }
  2455. });
  2456. return errorString;
  2457. },
  2458. openLoader: function (type, tip) {
  2459. if (!type) type = 1;
  2460. $("#loaderTip").text(
  2461. tip
  2462. ? tip
  2463. : jsBizMultLan.atsManager_atsOverTimeBillBatchEdit_i18n_12
  2464. );
  2465. $("#loader").css("display", "block");
  2466. },
  2467. getCurrentModel: function () {
  2468. var model =shr.ats.AtsOverTimeBillBatchEdit.superClass.assembleModel.call(this);
  2469. model.ccPersonIds =
  2470. (model.ccPersonIds && model.ccPersonIds.id) || "";
  2471. model.ccPerson = model.ccPersonIds;
  2472. return model;
  2473. }
  2474. }
  2475. );
  2476. function NewDate(str) {
  2477. str = str.split(" ");
  2478. var day = str[0].split("-");
  2479. var hours = str[1].split(":");
  2480. var date = new Date();
  2481. date.setUTCFullYear(day[0], day[1] - 1, day[2]);
  2482. //, hours[3]
  2483. date.setUTCHours(hours[0], hours[1], hours[2]);
  2484. return date;
  2485. }
  2486. /**
  2487. * 创建日期时间
  2488. */
  2489. function NewLongDate(str) {
  2490. str = str.split(" ");
  2491. var day = str[0].split("-");
  2492. var hours = str[1].split(":");
  2493. var date = new Date(
  2494. day[0],
  2495. day[1] - 1,
  2496. day[2],
  2497. hours[0],
  2498. hours[1],
  2499. hours[2] || ""
  2500. );
  2501. return date;
  2502. }
  2503. /**
  2504. * 创建日期
  2505. * 支持IE的创建方式
  2506. */
  2507. function NewShortDate(str) {
  2508. str = str.split(" ");
  2509. var day = str[0].split("-");
  2510. var date = new Date(day[0], day[1] - 1, day[2]);
  2511. return date;
  2512. }