atsOverTimeBillEdit.js 73 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740
  1. shr.defineClass("shr.ats.AtsOverTimeBillEdit", shr.framework.Edit, {
  2. _uiClass:"",
  3. effectiveFlag:true,
  4. isOTControl:false,
  5. isOtrolByDateType:false,
  6. defaultOTCompens:null,
  7. personId : "",
  8. _ATS_OVERTIME_LEGALHOLIDAYDAY_OVERTIME_ID: "sRWUOt7sRpOY0TCo6NMqGY6C/nU=", //法定节假日id 来源于AtsServerUtils.java
  9. _ATS_OVERTIMECOMPENS_OVERTIME_ID: "zkbt5bMLQ3ehUivmKbtBOqlrTmA=", //加班费id
  10. _invariantVale: {id:"zkbt5bMLQ3ehUivmKbtBOqlrTmA=",
  11. name:jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_8},
  12. initalizeDOM:function(){
  13. shr.ats.AtsOverTimeBillEdit.superClass.initalizeDOM.call(this);
  14. var that = this ;
  15. that.setNavigateLine();
  16. var paramMethod = shr.getUrlRequestParam("method");
  17. //从我要加班菜单中点击进来的URL上没有method参数
  18. if(paramMethod == null){
  19. $("#breadcrumb").find(".active").text(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_24);
  20. if(shrDataManager.pageNavigationStore.getDatas().length==0){
  21. // var url = window.location.protocol +"//" + window.location.host + ":" + window.location.port
  22. // + "/shr/dynamic.do?uipk=com.kingdee.eas.hr.ats.app.CancelLeaveBillForm&inFrame=true&fromHeader=true";
  23. var object_bread_1 = {
  24. name: jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_24,
  25. url: window.location.href,
  26. workPlatformId: "Qz9UfhLqB0+vmMJ4+80EykRLkh4="
  27. }
  28. shrDataManager.pageNavigationStore.pop();
  29. shrDataManager.pageNavigationStore.addItem(object_bread_1);
  30. }
  31. }
  32. that.getOTContrlParams();
  33. that.setButtonVisible(); //初始化页面安装状态,如果是已经提交的或者审批通过的单据编辑按钮不显示
  34. //隐藏加班列表按钮
  35. if (that.getOperateState() == 'EDIT' || that.getOperateState() == 'VIEW') {
  36. if(that.isFromWF()){ // 来自流程中心
  37. $('#cancel').hide();
  38. $('#cancelAll').hide();
  39. if (that.getOperateState() == 'EDIT'){
  40. $("#hrOrgUnit").shrPromptBox("disable");
  41. }
  42. }
  43. }
  44. that.processF7ChangeEvent();
  45. //增加业务组织处理
  46. that.processF7ChangeEventHrOrgUnit();
  47. that.processApplyOTTime();
  48. if(that.getOperateState() == "VIEW"){//不显示秒
  49. if(atsMlUtile.getFieldOriginalValue("entries_startTime")!=""){
  50. atsMlUtile.setTransDateTimeValue("entries_startTime",atsMlUtile.getFieldOriginalValue("entries_startTime").substring(0,16));
  51. }
  52. if(atsMlUtile.getFieldOriginalValue("entries_endTime")!=""){
  53. atsMlUtile.setTransDateTimeValue("entries_endTime",atsMlUtile.getFieldOriginalValue("entries_endTime").substring(0,16));
  54. }
  55. if(atsMlUtile.getFieldOriginalValue("entries_realStartTime")!=""){
  56. atsMlUtile.setTransDateTimeValue("entries_realStartTime",atsMlUtile.getFieldOriginalValue("entries_realStartTime").substring(0,16));
  57. }
  58. if(atsMlUtile.getFieldOriginalValue("entries_realEndTime")!=""){
  59. atsMlUtile.setTransDateTimeValue("entries_realEndTime",atsMlUtile.getFieldOriginalValue("entries_realEndTime").substring(0,16));
  60. }
  61. }else{
  62. if(atsMlUtile.getFieldOriginalValue("entries_startTime")!=""){
  63. atsMlUtile.setTransDateTimeValue("entries_startTime",atsMlUtile.getFieldOriginalValue("entries_startTime").substring(0,16));
  64. }
  65. if(atsMlUtile.getFieldOriginalValue("entries_endTime")!=""){
  66. atsMlUtile.setTransDateTimeValue("entries_endTime",atsMlUtile.getFieldOriginalValue("entries_endTime").substring(0,16));
  67. }
  68. if(atsMlUtile.getFieldOriginalValue("entries_realStartTime")!=""){
  69. atsMlUtile.setTransDateTimeValue("entries_realStartTime",atsMlUtile.getFieldOriginalValue("entries_realStartTime").substring(0,16));
  70. }
  71. if(atsMlUtile.getFieldOriginalValue("entries_realEndTime")!=""){
  72. atsMlUtile.setTransDateTimeValue("entries_realEndTime",atsMlUtile.getFieldOriginalValue("entries_realEndTime").substring(0,16));
  73. }
  74. }
  75. //新增页面的时候默认算出,编辑页面不计算
  76. if ( that.getOperateState() == "ADDNEW" ) {
  77. //默认值为当前申请天
  78. //var otDate=$('#applyDate').val()||'';
  79. //默认值为工作日
  80. var otDate=atsMlUtile.getFieldOriginalValue('entries_otDate')||'';
  81. var personId=$('#entries_person_el').val()||'';
  82. that.getOverTimeType(otDate,personId);
  83. that.calculataApplyOTTime();
  84. }
  85. /*$("#entries_restTime").blur(function(){
  86. that.calculataApplyOTTime();
  87. });*/
  88. //处理时间加班开始时间与加班开始时间一致
  89. that.realOverTimeSynOverTime();
  90. that.changeOverTimeType();
  91. that.setNumberFieldEnable();
  92. var personId = $('#entries_person_el').val();
  93. var otTypeId = $("#entries_otType_el").val();
  94. if ( that.getOperateState()=="VIEW"){
  95. personId = $('#entries_person').val();
  96. otTypeId = $("#entries_otType").val();
  97. }
  98. // that.getDefaultOTCompens(personId,otTypeId);
  99. //设置默认的补偿方式
  100. if(!that.billId){
  101. that.setDefaultOTCompens();
  102. }
  103. // 判断【加班费】是否有效(存在且生效)
  104. that.effectiveFlag = that.isOTCompensEffective(that._ATS_OVERTIMECOMPENS_OVERTIME_ID);
  105. //当加班类型为法定节假日加班时
  106. if(that.getOperateState() != "VIEW"){
  107. that.handleLegalHoliday();
  108. that.otCompensChange();
  109. }
  110. that.isOverWarnValue(this.getFieldValue('entries_otType'),this.getFieldValue('entries_otCompens'));
  111. //启用加班管控 且加班类型受日期控制,加班类型不能编辑
  112. if( that.isOtrolByDateType){
  113. $("#entries_otType").shrPromptBox("disable");
  114. }
  115. /*面包屑问题*/
  116. if (shr.getCurrentViewPage().uipk == "com.kingdee.eas.hr.ats.app.AtsOverTimeBillForm") {
  117. if (shrDataManager.pageNavigationStore.getDatas() && shrDataManager.pageNavigationStore.getDatas().length == 2) {
  118. $("#breadcrumb").find("li.active")
  119. .html(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_24);
  120. var a = shrDataManager.pageNavigationStore.getDatas()[1];
  121. a.name = jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_24;
  122. shrDataManager.pageNavigationStore.pop();
  123. shrDataManager.pageNavigationStore.addItem(a);
  124. }else if (shrDataManager.pageNavigationStore.getDatas() && shrDataManager.pageNavigationStore.getDatas().length == 3) {
  125. $("#breadcrumb li").eq(2).remove();
  126. $("#breadcrumb").find("li.active")
  127. .html(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_24);
  128. shrDataManager.pageNavigationStore.pop();
  129. }else if (shrDataManager.pageNavigationStore.getDatas() && shrDataManager.pageNavigationStore.getDatas().length == 4) {
  130. $("#breadcrumb li").eq(3).html(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_3);
  131. }
  132. }
  133. if(that.isFromWF()){
  134. $("#addInstanceToDeskItem").css('display','none');
  135. }
  136. //审核编辑界面
  137. if(that.isFromWF() && that.getOperateState() == 'EDIT')
  138. {
  139. $("#entries_person").shrPromptBox("disable");
  140. }
  141. if (shr.getCurrentViewPage().uipk == "com.kingdee.eas.hr.ats.app.AtsOverTimeBillForm"){
  142. that.isHaveEffectiveFile();
  143. }
  144. if(that.getOperateState() == 'EDIT')
  145. {
  146. var otCompensIds = that.getOTCompensByOTType($('#entries_person_el').val(),$('#entries_otType').shrPromptBox("getValue").id).replace(/(,)/g, "','") ;
  147. if(otCompensIds && otCompensIds != ''){
  148. $('#entries_otCompens').shrPromptBox("setFilter","BaseInfo.id in ('"+otCompensIds+"')");
  149. }
  150. }
  151. that.processTripDays();
  152. if(that.getOperateState() != 'VIEW'){
  153. $('#entries_person').bind('change',function(){
  154. that.initPersonMess();
  155. });
  156. }
  157. if(that.getOperateState() != 'VIEW'){
  158. $('#entries_otDate').bind('change',function(){
  159. var otDate=atsMlUtile.getFieldOriginalValue('entries_otDate');
  160. $('#entries_startTime').shrDateTimePicker('setValue', otDate);
  161. $('#entries_endTime').shrDateTimePicker('setValue', otDate);
  162. that.setOverTimeRemark();
  163. });
  164. }
  165. that.initCcPersonPrompt();
  166. that.setOverTimeRemark();
  167. },
  168. setOverTimeRemark:function(){
  169. var that = this;
  170. if(shr.getCurrentViewPage().uipk != "com.kingdee.eas.hr.ats.app.AtsOverTimeBillForm" && shr.getCurrentViewPage().uipk != "com.kingdee.eas.hr.ats.app.AtsOverTimeBillAllForm"){
  171. return;
  172. }
  173. /*
  174. if (that.getOperateState() == 'VIEW') {
  175. return;
  176. }*/
  177. var otDate = atsMlUtile.getFieldOriginalValue("entries_otDate");
  178. var personId = atsMlUtile.getFieldOriginalValue("entries_person");
  179. if ( personId && personId != "") {
  180. that.remoteCall({
  181. type:"post",
  182. async: false,
  183. method:"getAttencePolicyStrMsg",
  184. param:{personId:personId,otDate:otDate,fieldName:"otExplain"},
  185. success:function(res){
  186. var info = res;
  187. var msg = info.otExplain;
  188. $("#overTimeRemark").html(msg);
  189. }
  190. });
  191. }
  192. },
  193. clearCCPersonIdsPrompt :function() {
  194. if ($('#ccPersonIds').length == 0) {
  195. return;
  196. }
  197. atsCcPersonUtils.clearCCPersonIdsPrompt(this);
  198. },
  199. initCcPersonPrompt :function() {
  200. if ($('#ccPersonIds').length == 0) {
  201. return;
  202. }
  203. atsCcPersonUtils.initCCPersonIdsPrompt(this);
  204. if (this.getOperateState() != 'VIEW') {
  205. var person = $('#entries_person').shrPromptBox("getValue");
  206. if (!person) {
  207. // shr.showWarning({message:"Please select people."});
  208. } else {
  209. $('#ccPersonIds').shrPromptBox("setOtherParams", {
  210. // handler: "com.kingdee.shr.ats.web.handler.team.F7.TeamPersonForEmpOrgF7ListHandler",
  211. personId: person.id
  212. });
  213. }
  214. }
  215. }
  216. ,initPersonMess : function(){
  217. var that = this ;
  218. $('#entries_person_el').val(that.personId);
  219. },processTripDays : function(){
  220. var that = this ;
  221. $("#entries_otDate").change(function(){
  222. that.changeOverHrOrgUnit();
  223. //判断是否存在有效的考勤档案
  224. that.isExistsEffectiveAtsFile();
  225. });
  226. },
  227. //判断是否存在有效的考勤档案
  228. isExistsEffectiveAtsFile: function(){
  229. var that = this;
  230. var otDate = atsMlUtile.getFieldOriginalValue("entries_otDate");
  231. var personId = $("#entries_person_el").val();
  232. if (otDate && otDate!=""&&otDate!=null && personId && personId != "") {
  233. that.remoteCall({
  234. type:"post",
  235. async: false,
  236. method:"isExistsEffectiveAtsFile",
  237. param:{personId:personId,otDate:otDate},
  238. success:function(res){
  239. //如果没有有效的考勤档案,后台会抛出异常
  240. }
  241. });
  242. }
  243. },
  244. changeOverHrOrgUnit : function(){
  245. var that = this;
  246. var overStartTime = atsMlUtile.getFieldOriginalValue("entries_otDate");
  247. if ( overStartTime!=""&&overStartTime!=null ) {
  248. overStartTime = overStartTime.replace("\\-","/");
  249. var personId = $("#entries_person_el").val();
  250. that.remoteCall({
  251. type:"post",
  252. async: false,
  253. method:"getHrOrgUnit",
  254. param:{personId:personId,beginTime:overStartTime},
  255. success:function(res){
  256. info = res;
  257. if(res.hrOrgUnitname && res.hrOrgUnitId){
  258. $("#hrOrgUnit").val(res.hrOrgUnitname);
  259. $("#hrOrgUnit_el").val(res.hrOrgUnitId);
  260. }
  261. }
  262. });
  263. }
  264. }
  265. ,processF7ChangeEventHrOrgUnit : function(){
  266. var that = this;
  267. if (that.getOperateState() != 'VIEW') {
  268. $("#hrOrgUnit").shrPromptBox("option", {
  269. onchange : function(e, value) {
  270. var info = value.current;
  271. that.initCurrentHrOrgUnit(info.id);
  272. $("#entries_person_el").val("");
  273. $("#entries_person").val("");
  274. $("#entries_person_number").val("");//@
  275. $("#entries_adminOrgUnit").val("");
  276. $("#entries_position").val("");
  277. }
  278. });
  279. }
  280. }
  281. ,initCurrentHrOrgUnit: function(hrOrgUnitId) {
  282. var that = this;
  283. //---??
  284. // $("#entries_tripType").shrPromptBox().attr("data-params",hrOrgUnitId);
  285. $("#entries_person").shrPromptBox().attr("data-params",hrOrgUnitId);
  286. that.initQuerySolutionHrOrgUnit(hrOrgUnitId);
  287. }
  288. ,initQuerySolutionHrOrgUnit: function(hrOrgUnitId) {
  289. var that = this;
  290. that.remoteCall({
  291. type:"post",
  292. method:"initQuerySolution",
  293. param:{
  294. hrOrgUnitId : hrOrgUnitId
  295. },
  296. async: true, //false
  297. success:function(res){
  298. }
  299. });
  300. }
  301. ,isHaveEffectiveFile : function() {
  302. var _self = this;
  303. _self.remoteCall({
  304. type:"post",
  305. method:"isHaveEffectiveFile",
  306. param:{
  307. personid:""
  308. },
  309. async: false,
  310. success:function(res){
  311. var info = res;
  312. if (!info.isHaveFile){
  313. shr.showWarning({message:jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_5});
  314. }
  315. }
  316. });
  317. }
  318. ,handleLegalHoliday: function(){
  319. var that = this;
  320. //BT883973:编辑模式下 补偿方式可以开放选择
  321. // if(that.getOperateState() == "EDIT"){
  322. // if($("#entries_otType_el").val() == that._ATS_OVERTIME_LEGALHOLIDAYDAY_OVERTIME_ID){
  323. // $('#entries_otCompens').attr("readonly",true);
  324. // $('#entries_otCompens').parent().next().css("display","none");
  325. // }
  326. // }
  327. $("#entries_otType").shrPromptBox("option", {
  328. onchange : function(e, value) {
  329. var info = value.current;
  330. var typeId = info.id != undefined && info.id != "" ? info.id : info.submitFormat;
  331. var otCompensIds = that.getOTCompensByOTType($('#entries_person_el').val(),typeId);
  332. if(otCompensIds == null || otCompensIds == undefined){
  333. otCompensIds = "";
  334. }else{
  335. otCompensIds = otCompensIds.replace(/(,)/g, "','") ;
  336. }
  337. that.getDefaultOTCompens($('#entries_person_el').val(),typeId);
  338. that.setDefaultOTCompens();
  339. if(otCompensIds && otCompensIds != ""){
  340. $('#entries_otCompens').shrPromptBox("setFilter","BaseInfo.id in ('"+otCompensIds+"')");
  341. }
  342. }
  343. });
  344. $("#entries_attAdminOrgUnit").shrPromptBox("option", {
  345. verifyBeforeOpenCallback : function(e, value) {
  346. var personId = $("#entries_person_el").val();
  347. var attendanceDate = $("#entries_otDate").val()
  348. if(!(personId && attendanceDate)){
  349. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_YM_999});
  350. return false;
  351. }else{
  352. $('#entries_attAdminOrgUnit').shrPromptBox("setOtherParams", {
  353. personId: personId,
  354. attendanceDate: attendanceDate
  355. });
  356. }
  357. }
  358. });
  359. }
  360. //获取默认的加班补偿方式
  361. ,getDefaultOTCompens : function ( personId, otTypeId) {
  362. var _self = this;
  363. //var personId = $('#entries_person_el').val();
  364. //var otTypeId = $("#entries_otType_el").val();
  365. var otDate = atsMlUtile.getFieldOriginalValue('entries_otDate');
  366. if(otDate && otDate != '' && personId != '' && otTypeId){
  367. _self.remoteCall({
  368. type:"post",
  369. method:"getDefaultOTCompens",
  370. param:{personId:personId,otTypeId:otTypeId,otDate:otDate},
  371. async: false,
  372. success:function(res){
  373. var info = res;
  374. if (info.defaultId == "" || info.defaultId ==undefined ){
  375. _self.defaultOTCompens = {id:info.defaultId,name:info.defaultName};
  376. shr.showWarning({message:jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_29});
  377. }else {
  378. _self.defaultOTCompens = {id:info.defaultId,name:info.defaultName};
  379. if(!info.otrolByDateType){
  380. $("#entries_otType").shrPromptBox("enable");
  381. }else{
  382. $("#entries_otType").shrPromptBox("disable");
  383. }
  384. }
  385. }
  386. });
  387. }
  388. }
  389. //获取当前加班类型的加班补偿方式
  390. ,getOTCompensByOTType : function ( personId, otTypeId) {
  391. var _self = this;
  392. var otCompens="";
  393. var otDate = atsMlUtile.getFieldOriginalValue('entries_otDate');
  394. if(otDate && otDate != '' && personId != '' && otTypeId != ''){
  395. _self.remoteCall({
  396. type:"post",
  397. method:"getOTCompensByOTType",
  398. param:{personId:personId,otTypeId:otTypeId,hrOrgUnit:$("#hrOrgUnit").shrPromptBox("getValue").id,otDate:atsMlUtile.getFieldOriginalValue('entries_otDate')},
  399. async: false,
  400. success:function(res){
  401. otCompens = res.otCompens;
  402. }
  403. });
  404. }
  405. return otCompens;
  406. }
  407. //设置默认的加班补偿方式
  408. ,setDefaultOTCompens : function () {
  409. var _self = this;
  410. if (_self.defaultOTCompens!=null && _self.defaultOTCompens != ""){
  411. $('#entries_otCompens').shrPromptBox("setValue",_self.defaultOTCompens);
  412. }
  413. }
  414. // 判断加班补偿方式是否有效(存在且生效)
  415. ,isOTCompensEffective : function (OTCompens) {
  416. var _self = this;
  417. var flag = true;
  418. _self.remoteCall({
  419. type:"post",
  420. method:"isOTCompensEffective",
  421. param:{
  422. OTCompens:OTCompens
  423. },
  424. async: false,
  425. success:function(res){
  426. var info = res;
  427. if (info.resFlag == false){
  428. flag = false;
  429. }else {
  430. flag = true;
  431. }
  432. }
  433. });
  434. return flag;
  435. }
  436. // 判断加班补偿方式是否有效(存在且生效)
  437. ,isOtTypeEffective : function (OtType) {
  438. var _self = this;
  439. var flag = true;
  440. _self.remoteCall({
  441. type:"post",
  442. method:"isOtTypeEffective",
  443. param:{
  444. OtType:OtType
  445. },
  446. async: false,
  447. success:function(res){
  448. var info = res;
  449. if (info.resFlag == false){
  450. flag = false;
  451. }else {
  452. flag = true;
  453. }
  454. }
  455. });
  456. return flag;
  457. }
  458. /**
  459. * 设置编码字段是否可编辑
  460. */
  461. ,setNumberFieldEnable : function() {
  462. var that = this ;
  463. if (that.getOperateState().toUpperCase() == 'EDIT' || that.getOperateState().toUpperCase() == 'ADDNEW') {
  464. var overtimeBillNumberFieldCanEdit = that.initData.overtimeBillNumberFieldCanEdit;
  465. if (typeof overtimeBillNumberFieldCanEdit != 'undefined' && !overtimeBillNumberFieldCanEdit) {
  466. that.getField('number').shrTextField('option', 'readonly', true);
  467. }
  468. //初始化HR组织ID
  469. var hrOrgUnitID = that.initData.initCurrentHrOrgUnit;
  470. if (typeof hrOrgUnitID != 'undefined' && hrOrgUnitID) {
  471. that.initCurrentHrOrgUnit(hrOrgUnitID);
  472. }
  473. }
  474. }
  475. //提交即生效
  476. ,submitEffectAction : function (event) {
  477. var _self = this,
  478. workArea = _self.getWorkarea(),
  479. $form = $('form', workArea);
  480. if ( _self.validate() && $form.valid() && _self.verify()) {
  481. var beginDate = atsMlUtile.getFieldOriginalValue("entries_startTime").split(" ")[0];
  482. var endDate = atsMlUtile.getFieldOriginalValue("entries_endTime").split(" ")[0];
  483. var billType = "overTime";
  484. var personId = $('#entries_person_el').val()
  485. _self.remoteCall({
  486. type:"post",
  487. method:"billCheck",
  488. param:{beginDate:beginDate,endDate:endDate,personId:personId,billType:billType},
  489. async: true,
  490. success:function(res){
  491. var result = res.result;
  492. if(result==""){
  493. if(shr.atsBillUtil.isInWorkFlow(_self.billId)){
  494. shr.showConfirm(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_6, function() {
  495. _self.prepareSubmitEffect(event, 'submitEffect');
  496. });
  497. }else{
  498. shr.showConfirm(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_14, function() {
  499. _self.prepareSubmitEffect(event, 'submitEffect');
  500. });
  501. }
  502. }else{
  503. shr.showConfirm(result+jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_20,function(){
  504. if(shr.atsBillUtil.isInWorkFlow(_self.billId)){
  505. shr.showConfirm(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_6, function() {
  506. _self.prepareSubmitEffect(event, 'submitEffect');
  507. });
  508. }else{
  509. shr.showConfirm(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_14, function() {
  510. _self.prepareSubmitEffect(event, 'submitEffect');
  511. });
  512. }
  513. });
  514. }
  515. }
  516. });
  517. }
  518. }
  519. ,prepareSubmitEffect : function (event, action){
  520. var _self = this;
  521. var data = _self.assembleSaveData(action);
  522. var target;
  523. if (event && event.currentTarget) {
  524. target = event.currentTarget;
  525. }
  526. shr.doAction({
  527. target: target,
  528. url: _self.dynamicPage_url,
  529. type: 'post',
  530. data: data,
  531. success : function(response) {
  532. _self.back();
  533. }
  534. });
  535. }
  536. /**
  537. * 点击取消按钮 返回到个人请假列表list(个人) || com.kingdee.eas.hr.ats.app.AtsOverTimeBillList
  538. */
  539. ,cancelAction:function(){
  540. /*var that = this ;
  541. window.location.href = shr.getContextPath()+"/dynamic.do?uipk=com.kingdee.eas.hr.ats.app.AtsOverTimeBillList";*/
  542. var serviceId = shr.getUrlParam("serviceId");
  543. if(!serviceId){
  544. serviceId = 'vA0Y5XHfR8eJESywHpQQSPI9KRA=';
  545. }
  546. this.reloadPage({
  547. uipk: 'com.kingdee.eas.hr.ats.app.AtsOverTimeBillList',
  548. serviceId:serviceId
  549. });
  550. }
  551. /**
  552. * 专员列表点击取消的方法
  553. * 这里有点特殊,采用屏蔽按钮,增加专员取消按钮的方法 替代 维护2次 atsOverTimeBillEdit.js 的方式
  554. */
  555. ,cancelAllAction:function(){
  556. /*var that = this ;
  557. window.location.href = shr.getContextPath()+"/dynamic.do?uipk=com.kingdee.eas.hr.ats.app.AtsOverTimeBillAllList";*/
  558. this.reloadPage({
  559. uipk: 'com.kingdee.eas.hr.ats.app.AtsOverTimeBillAllList'
  560. });
  561. }
  562. ,getOverTimeType:function(otDate,personId){
  563. var _self = this;
  564. var url = shr.getContextPath() + "/dynamic.do?method=getOverTimeType";
  565. url += '&otDate=' + encodeURIComponent(otDate) + '&personId=' + encodeURIComponent(personId)+"&uipk="+shr.getUrlRequestParam('uipk');
  566. if(otDate != "" && personId != ""){
  567. $.ajax({
  568. url: url,
  569. async:false,
  570. //data:{otDate:,personId:encodeURIComponent(personId)},
  571. //data:{otDate:encodeURIComponent(otDate),personId:encodeURIComponent(personId)},
  572. success: function(response){
  573. if(response.otTypeValue!=null && response.otTypeValue !=undefined && response.otTypeValue!=''){
  574. if (_self.isOtTypeEffective(response.otTypeValue)){
  575. var responseObejct = {id:response.otTypeValue,name:response.otTypeText }
  576. $('#entries_otType').shrPromptBox("setValue",responseObejct);
  577. }else {
  578. $('#entries_otType').shrPromptBox("setValue","");
  579. }
  580. }else {
  581. $('#entries_otType').shrPromptBox("setValue","");
  582. }
  583. }
  584. ,error: function(response) {
  585. }
  586. })
  587. };
  588. }
  589. ,changeOverTimeType:function(){
  590. var that=this;
  591. $('#entries_otDate').change(function(){ //加班日期
  592. // var otDate=$(this).val()||'';
  593. var otDate = atsMlUtile.getFieldOriginalValue("entries_otDate")||'';
  594. var personId=$('#entries_person_el').val()||'';
  595. that.getOverTimeType(otDate,personId);
  596. that.isOverWarnValue($("#entries_otType_el").val(),$("#entries_otCompens_el").val());
  597. //获取休息时长
  598. var startTime = atsMlUtile.getFieldOriginalValue("entries_startTime");
  599. var endTime = atsMlUtile.getFieldOriginalValue("entries_endTime");
  600. if(startTime == "" || startTime == undefined){
  601. return ;
  602. }
  603. if(endTime == "" || endTime == undefined){
  604. return ;
  605. }
  606. var startTimeOfDate = new Date(startTime);
  607. var endTimeOfDate = new Date(endTime);
  608. var longTime = endTimeOfDate.getTime() - startTimeOfDate.getTime();
  609. if(longTime <= 0)
  610. {
  611. atsMlUtile.setTransNumValue("entries_applyOTTime",0);
  612. atsMlUtile.setTransNumValue("entries_restTime",0,{'decimalPrecision':0});
  613. return ;
  614. }else{
  615. that.calculataApplyRestTime();
  616. }
  617. });
  618. },
  619. //获取系统小数位长度
  620. getDecimalPlace : function (floatTime, otTimeType ) {
  621. var fixeNum = atsMlUtile.getSysDecimalPlace();
  622. floatTime = floatTime.toFixed(fixeNum);
  623. if(floatTime < 0){
  624. atsMlUtile.setTransNumValue(otTimeType,0);
  625. }else{
  626. atsMlUtile.setTransNumValue(otTimeType,floatTime);
  627. }
  628. }
  629. ,getJsonLength:function(jsonData){
  630. var jsonLength = 0;
  631. for(var item in jsonData){
  632. jsonLength++;
  633. }
  634. return jsonLength;
  635. },
  636. processF7ChangeEvent:function(){
  637. var that = this;
  638. //that.initActionF7();
  639. if (that.getOperateState() != 'VIEW') {
  640. $("#entries_person").shrPromptBox("option", {
  641. onchange : function(e, value) {
  642. //alert( JSON.stringify( value ) );
  643. var info = value.current;
  644. if(info != null){
  645. if(info.hasOwnProperty("id")){
  646. $("#entries_person_number").val(info["person.number"]);//@
  647. $("#entries_adminOrgUnit").val(info["adminUnit.name"]);//行政组织
  648. $("#entries_position").val(info["position.name"]);//职位
  649. $('#entries_person_el').val(info["person.id"]);
  650. that.personId=info["person.id"];
  651. var otDate=atsMlUtile.getFieldOriginalValue('entries_otDate')||'';
  652. that.getOverTimeType(otDate,info["id"]);
  653. that.getOTContrlParams();
  654. if( that.isOtrolByDateType){
  655. $("#entries_otType").shrPromptBox("disable");
  656. }
  657. }
  658. }
  659. }, afterOnSelectRowHandler: function (e, value) {
  660. that.clearCCPersonIdsPrompt();
  661. that.initCcPersonPrompt();
  662. }
  663. });
  664. }
  665. },
  666. /**
  667. * 初始化ActionFilter,过滤用工状态,把离职的去掉
  668. */
  669. /*initActionF7 : function () {
  670. var that = this;
  671. var fliter = " employeeType.number != 'S09' "; //001正式 002试用 003停薪留职 004离退休 s09 离职
  672. $("#entries_person").shrPromptBox("setFilter",fliter);
  673. },*/
  674. //处理申请加班小时数,申请加班小时数默认等于实际加班小时数
  675. processApplyOTTime : function(){
  676. var that = this ;
  677. /*$("#entries_applyOTTime").keyup(function(){
  678. $("#entries_realOTTime").val($("#entries_applyOTTime").val());
  679. });*/
  680. $("#entries_restTime").change(function(){
  681. that.calculataApplyOTTime();
  682. that.calculataRealOTTime();
  683. }) ;
  684. //加班结束时间选择完后 计算申请加班小时数
  685. $("#entries_endTime,#entries_startTime").change(function(){
  686. var startTime = atsMlUtile.getFieldOriginalValue("entries_startTime");
  687. var endTime = atsMlUtile.getFieldOriginalValue("entries_endTime");
  688. if(startTime == "" || startTime == undefined){
  689. return ;
  690. }
  691. if(endTime == "" || endTime == undefined){
  692. return ;
  693. }
  694. var startTimeOfDate = new Date(startTime);
  695. var endTimeOfDate = new Date(endTime);
  696. var longTime = endTimeOfDate.getTime() - startTimeOfDate.getTime();
  697. if(longTime <= 0)
  698. {
  699. atsMlUtile.setTransNumValue("entries_applyOTTime",0);
  700. atsMlUtile.setTransNumValue("entries_restTime",0,{'decimalPrecision':0});
  701. return ;
  702. }else{
  703. that.calculataApplyRestTime();
  704. }
  705. that.calculataApplyOTTime();
  706. that.calculataRealOTTime();
  707. //that.calculataApplyRestTime();
  708. });
  709. function calculataRestTime() {
  710. var regEx = new RegExp("\\-", "gi"); //i不区分大小写 g匹配所有
  711. var restTime =0;
  712. var restStartTime = atsMlUtile.getFieldOriginalValue("entries_restStartTime");
  713. var restEndTime = atsMlUtile.getFieldOriginalValue("entries_restEndTime");
  714. if (restStartTime!=undefined && restStartTime!="" && restEndTime!=undefined && restEndTime!="") {
  715. restStartTime = restStartTime.replace(regEx, "/");
  716. restEndTime = restEndTime.replace(regEx, "/");
  717. var startTimeOfDate = new Date(restStartTime);
  718. var endTimeOfDate = new Date(restEndTime);
  719. var longTime = endTimeOfDate.getTime() - startTimeOfDate.getTime();
  720. restTime += longTime / 1000.0 / 60;//分钟
  721. }
  722. var restStartTime2 = atsMlUtile.getFieldOriginalValue("entries_restStartTime2");
  723. var restEndTime2 = atsMlUtile.getFieldOriginalValue("entries_restEndTime2");
  724. if (restStartTime2!=undefined && restStartTime2!="" && restEndTime2!=undefined && restEndTime2!="") {
  725. restStartTime2 = restStartTime2.replace(regEx, "/");
  726. restEndTime2 = restEndTime2.replace(regEx, "/");
  727. var startTimeOfDate2 = new Date(restStartTime2);
  728. var endTimeOfDate2 = new Date(restEndTime2);
  729. var longTime2 = endTimeOfDate2.getTime() - startTimeOfDate2.getTime();
  730. restTime += longTime2 / 1000.0 / 60;//分钟
  731. }
  732. atsMlUtile.setTransNumValue("entries_restTime",restTime,{'decimalPrecision':0});
  733. that.calculataRealOTTime();
  734. that.calculataApplyOTTime();
  735. // that.calculataApplyRestTime();
  736. }
  737. $("#entries_restStartTime,#entries_restEndTime,#entries_restStartTime2,#entries_restEndTime2").change(function(){//开始休息时间1
  738. that.disableRestTime();
  739. if (! that.verifyRestTime(false)){
  740. return
  741. }
  742. calculataRestTime();
  743. });
  744. //实际加班结束时间选择完后 计算实际小时数
  745. $("#entries_realEndTime,#entries_realStartTime").change(function(){
  746. that.calculataRealOTTime();
  747. });
  748. },
  749. disableRestTime:function (){
  750. var restStartTime = atsMlUtile.getFieldOriginalValue("entries_restStartTime");
  751. var restEndTime = atsMlUtile.getFieldOriginalValue("entries_restEndTime");
  752. var restStartTime2 = atsMlUtile.getFieldOriginalValue("entries_restStartTime2");
  753. var restEndTime2 = atsMlUtile.getFieldOriginalValue("entries_restEndTime2");
  754. if (
  755. (restStartTime ==undefined || restStartTime=="")
  756. &&(restStartTime2 ==undefined || restStartTime2=="")
  757. &&(restEndTime ==undefined || restEndTime=="")
  758. &&(restEndTime2 ==undefined || restEndTime2=="")
  759. ){
  760. $("#entries_restTime").shrTextField("enable");
  761. atsMlUtile.setTransNumValue("entries_restTime",0,{'decimalPrecision':0});
  762. this.calculataApplyOTTime();
  763. this.calculataRealOTTime();
  764. } else {
  765. $("#entries_restTime").shrTextField("disable");
  766. }
  767. },
  768. calculataApplyOTTime : function(){
  769. var startTime = atsMlUtile.getFieldOriginalValue("entries_startTime");
  770. var endTime = atsMlUtile.getFieldOriginalValue("entries_endTime");
  771. var restTime = atsMlUtile.getFieldOriginalValue("entries_restTime");
  772. if( (new String(restTime)).trim()=='' ){
  773. restTime=0;
  774. atsMlUtile.setTransNumValue("entries_restTime",0,{'decimalPrecision':0});
  775. }else{
  776. restTime=parseFloat(restTime);
  777. if(restTime<0.0){
  778. atsMlUtile.setTransNumValue("entries_restTime",0,{'decimalPrecision':0});
  779. restTime=0.0;
  780. }
  781. }
  782. if ( startTime!=""&&startTime!=null && endTime!=""&&endTime!=null ) {
  783. var regEx = new RegExp("\\-","gi");
  784. startTime = startTime.replace(regEx,"/");
  785. endTime = endTime.replace(regEx,"/");
  786. var startTimeOfDate = new Date(startTime);
  787. var endTimeOfDate = new Date(endTime);
  788. var longTime = endTimeOfDate.getTime() - startTimeOfDate.getTime();
  789. if (longTime <= 0) {
  790. atsMlUtile.setTransNumValue("entries_applyOTTime",0);
  791. //$("#entries_realOTTime").val(0);//时刻根据 实际的止-实际的起-休息通过在调用that.calculataApplyOTTime()后调用that.calculataRealOTTime()来达到的
  792. }else{
  793. t1 = parseFloat(longTime)/1000.0/60/60;
  794. t1 = t1 - parseFloat(restTime)/60;
  795. var that = this;
  796. that.getDecimalPlace(t1,"entries_applyOTTime");
  797. }
  798. }
  799. },
  800. calculataRealOTTime : function(){
  801. var realStartTime = atsMlUtile.getFieldOriginalValue("entries_realStartTime");
  802. var realEndTime = atsMlUtile.getFieldOriginalValue("entries_realEndTime");
  803. var restTime = atsMlUtile.getFieldOriginalValue("entries_restTime")||'';
  804. if( (new String(restTime)).trim()=='' ){
  805. restTime=0;
  806. atsMlUtile.setTransNumValue("entries_restTime",0,{'decimalPrecision':0});
  807. }else{
  808. restTime=parseFloat(restTime);
  809. if(restTime<0.0){
  810. atsMlUtile.setTransNumValue("entries_restTime",0,{'decimalPrecision':0});
  811. restTime=0.0;
  812. }
  813. }
  814. if ( realStartTime!=""&&realStartTime!=null && realEndTime!=""&&realEndTime!=null ) {
  815. var regEx = new RegExp("\\-","gi");
  816. realStartTime = realStartTime.replace(regEx,"/");
  817. realEndTime = realEndTime.replace(regEx,"/");
  818. var realStartTimeOfDate = new Date(realStartTime);
  819. var realEndTimeOfDate = new Date(realEndTime);
  820. //lzq 加上减去休息时间
  821. var floatTime = parseFloat( realEndTimeOfDate.getTime() - realStartTimeOfDate.getTime() )/1000.0/60/60 - parseFloat(restTime)/60;;
  822. if (floatTime <= 0.0) {
  823. atsMlUtile.setTransNumValue("entries_realOTTime",0);
  824. }else{
  825. //t1 = parseFloat(longTime)/1000.0/60/60;\
  826. var that = this;
  827. that.getDecimalPlace(floatTime,"entries_realOTTime");
  828. }
  829. }
  830. },
  831. realOverTimeSynOverTime : function(){
  832. var that = this ;
  833. $("#entries_startTime").change(function(){
  834. var startTime = atsMlUtile.getFieldOriginalValue("entries_startTime");
  835. atsMlUtile.setTransDateTimeValue("entries_realStartTime",startTime);
  836. that.calculataRealOTTime();
  837. });
  838. $("#entries_endTime").change(function(){
  839. var endTime = atsMlUtile.getFieldOriginalValue("entries_endTime");
  840. atsMlUtile.setTransDateTimeValue("entries_realEndTime",endTime);
  841. var startTime = atsMlUtile.getFieldOriginalValue("entries_startTime");
  842. if (startTime!="" && startTime!=undefined){
  843. atsMlUtile.setTransDateTimeValue("entries_realStartTime",startTime);
  844. }
  845. that.calculataRealOTTime();
  846. });
  847. $("#entries_applyOTTime").change(function(){
  848. atsMlUtile.setTransNumValue("entries_realOTTime",atsMlUtile.getFieldOriginalValue('entries_applyOTTime'));
  849. })
  850. },
  851. calculataApplyRestTime : function(){
  852. var that = this ;
  853. var otDate = atsMlUtile.getFieldOriginalValue("entries_otDate");
  854. var personId=$('#entries_person_el').val() ;
  855. var realStartTime = atsMlUtile.getFieldOriginalValue("entries_startTime");
  856. var realEndTime = atsMlUtile.getFieldOriginalValue("entries_endTime");
  857. var url = shr.getContextPath() + "/dynamic.do?method=getMyRestTime";
  858. url += '&tDay=' + encodeURIComponent(otDate) + '&personId=' + encodeURIComponent(personId);
  859. url +='&realStartTime=' + encodeURIComponent(realStartTime) + '&realEndTime=' + encodeURIComponent(realEndTime)+"&uipk="+shr.getUrlRequestParam('uipk');
  860. $.ajax({
  861. url: url,
  862. async:false,
  863. success: function(response){
  864. var restTime = response.restTime ;
  865. var restStartTime = response.restStartTime ;
  866. var restStartTime2 = response.restStartTime2 ;
  867. var restEndTime = response.restEndTime ;
  868. var restEndTime2 = response.restEndTime2 ;
  869. atsMlUtile.setTransNumValue("entries_restTime",restTime,{'decimalPrecision':0});
  870. atsMlUtile.setTransDateTimeValue("entries_restStartTime",restStartTime);
  871. atsMlUtile.setTransDateTimeValue("entries_restEndTime",restEndTime);
  872. atsMlUtile.setTransDateTimeValue("entries_restStartTime2", restStartTime2);
  873. atsMlUtile.setTransDateTimeValue("entries_restEndTime2", restEndTime2);
  874. that.disableRestTime()
  875. }
  876. ,error: function(response) {
  877. }
  878. });
  879. },
  880. verify:function(){
  881. var _self = this ;
  882. var workArea = _self.getWorkarea();
  883. $form = $('form', workArea);
  884. if (!$form.valid()) {
  885. return false;
  886. }
  887. if ( !_self.verifyRestTime(true)) {
  888. return
  889. }
  890. var startTime = atsMlUtile.getFieldOriginalValue("entries_startTime");
  891. var endTime = atsMlUtile.getFieldOriginalValue("entries_endTime");
  892. var regEx = new RegExp("\\-","gi"); //i不区分大小写 g匹配所有
  893. startTime = startTime.replace(regEx,"/");
  894. endTime = endTime.replace(regEx,"/");
  895. var startTimeOfDate = new Date(startTime);
  896. var endTimeOfDate = new Date(endTime);
  897. var longTime = endTimeOfDate.getTime() - startTimeOfDate.getTime();
  898. var realstartTime = atsMlUtile.getFieldOriginalValue("entries_realStartTime");
  899. var realendTime = atsMlUtile.getFieldOriginalValue("entries_realEndTime");
  900. var realstartTimeOfDate = new Date( realstartTime.replace(regEx,"/") );
  901. var realendTimeOfDate = new Date( realendTime.replace(regEx,"/") );
  902. var longTime_real = realendTimeOfDate.getTime() - realstartTimeOfDate.getTime();
  903. //处理加班日期 与 加班开始时间 和结束时间的日期保持一致
  904. var overDate = atsMlUtile.getFieldOriginalValue("entries_otDate");
  905. var overTimeBegin = atsMlUtile.getFieldOriginalValue("entries_startTime");
  906. overTimeBegin = overTimeBegin.substring(0,10); //2014-01-02 00:00
  907. var overTimeEnd = atsMlUtile.getFieldOriginalValue("entries_endTime");
  908. overTimeEnd = overTimeEnd.substring(0,10);
  909. var overTimeDate = new Date(overDate.replace(regEx,"/"));
  910. var overTimeStartDate = new Date(overTimeBegin.replace(regEx,"/"));
  911. var overTimeEndDate = new Date(overTimeEnd.replace(regEx,"/"));
  912. //var longTime_start = overTimeStartDate.getTime() - overTimeDate.getTime()-24*60*60*1000 ;
  913. //var longTime_end = overTimeEndDate.getTime() - overTimeDate.getTime()-24*60*60*1000;
  914. var otTypeId = "";
  915. if (_self.getOperateState().toUpperCase() == 'VIEW') {
  916. otTypeId = $("#entries_otType").val();
  917. }else {
  918. otTypeId = $("#entries_otType_el").val();
  919. }
  920. if(otTypeId == null || otTypeId == undefined || otTypeId.length == 0){
  921. shr.showInfo({message: overDate + jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_12});
  922. return false;
  923. }
  924. //检查人员是否有考勤档案
  925. var isExistsFile = true;
  926. var personNum = "";
  927. if("ADDNEW" == this.getOperateState() || "EDIT" == this.getOperateState()){
  928. personNum = $("#entries_person_number").val()//@
  929. }else if("VIEW" == this.getOperateState()){
  930. personNum = $("#entries_person_number").text()//@
  931. }
  932. /* _self.remoteCall({
  933. type:"post",
  934. method:"isExistsAttanceFile",
  935. async: false,
  936. param:{personNum: personNum},
  937. success:function(res){
  938. var info = res;
  939. if (!info.isExistsFile){
  940. shr.showWarning({message:"该员工还没有生效的假期档案/考勤档案!"});
  941. isExistsFile = false;
  942. }
  943. }
  944. });
  945. if(!isExistsFile){
  946. return false;
  947. }*/
  948. if ( overTimeStartDate.getTime() <overTimeDate.getTime()-24*60*60*1000 ) {//longTime_start != 0 && longTime_end != 0
  949. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_2});
  950. return false;
  951. }
  952. if ( overTimeEndDate.getTime()-24*60*60*1000 > overTimeDate.getTime() ) {
  953. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_2});
  954. return false;
  955. }
  956. if ( overTimeEndDate.getTime()- overTimeStartDate.getTime() >=2*24*60*60*1000) {
  957. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_2});
  958. return false;
  959. }
  960. if (longTime <= 0) {
  961. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_10});
  962. return false;
  963. }else if (longTime_real <= 0) {
  964. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_19});
  965. return false;
  966. }else if ($("#entries_otCompens").attr("title")
  967. ==jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_4 && !_self.isOverMaxQuota()){
  968. return false;
  969. }
  970. var otTime = atsMlUtile.getFieldOriginalValue("entries_applyOTTime");
  971. if(parseFloat(otTime) < 0){
  972. shr.showWarning({message:jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_11});
  973. return false;
  974. }
  975. if(parseFloat(otTime) == 0){
  976. shr.showWarning({message:jsBizMultLan.atsManager_atsOverTimeBillEdit_YM_0001});
  977. return false;
  978. }
  979. var personId = $('#entries_person_el').val();
  980. if (_self.getOperateState().toUpperCase() == 'VIEW') {
  981. personId = $('#entries_person').val();
  982. }
  983. var flag = true ;
  984. _self.remoteCall({
  985. type:"post",
  986. method:"isCrossShift",
  987. async: false,
  988. param:{personId: personId,overDate:overDate,overTimeBegin:atsMlUtile.getFieldOriginalValue("entries_startTime")+":00",overTimeEnd:atsMlUtile.getFieldOriginalValue("entries_endTime")+":00"},
  989. success:function(res){
  990. var info = res;
  991. if (info.isCrossShift){
  992. shr.showWarning({message:jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_42});
  993. flag = false ;
  994. }
  995. }
  996. });
  997. var model = _self.getCurrentModel();
  998. _self.remoteCall({
  999. method:"validateIsFillOt",
  1000. param:{model:model},
  1001. async: false,
  1002. success:function(res){
  1003. info = res;
  1004. if(res.errorString){
  1005. shr.showError({message:res.errorString});
  1006. flag = false;
  1007. // return false;
  1008. }
  1009. }
  1010. });
  1011. _self.remoteCall({
  1012. type:"post",
  1013. method:"isWorkTime",
  1014. async: false,
  1015. param:{personId: personId,overDate:overDate,overTimeBegin:atsMlUtile.getFieldOriginalValue("entries_startTime")+":00",overTimeEnd:atsMlUtile.getFieldOriginalValue("entries_endTime")+":00"},
  1016. success:function(res){
  1017. var info = res;
  1018. if (info.isWorkTime){
  1019. shr.showWarning({message:jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_9});
  1020. flag = false ;
  1021. }
  1022. }
  1023. });
  1024. _self.remoteCall({
  1025. type:"post",
  1026. method:"isAtFixedOverTimeOrExcep",
  1027. async: false,
  1028. param:{personId: personId,overDate:overDate,overTimeBegin:atsMlUtile.getFieldOriginalValue("entries_startTime")+":00",overTimeEnd:atsMlUtile.getFieldOriginalValue("entries_endTime")+":00"},
  1029. success:function(res){
  1030. var info = res;
  1031. if (info.isAtFixedOverTimeOrExcep){
  1032. shr.showWarning({message:jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_1});
  1033. flag = false ;
  1034. }
  1035. }
  1036. });
  1037. //工作流审批中编辑校验补提加班单
  1038. if(_self.isFromWF())
  1039. {
  1040. var model = _self.getCurrentModel();
  1041. _self.remoteCall({
  1042. method:"validateIsFillOt",
  1043. param:{model:model},
  1044. async: false,
  1045. success:function(res){
  1046. info = res;
  1047. if(res.errorString){
  1048. shr.showError({message:res.errorString});
  1049. flag = false;
  1050. // return false;
  1051. }
  1052. }
  1053. });
  1054. _self.remoteCall({
  1055. method:"validOtStart",
  1056. param:{personId:personId,applyOTTime:otTime},
  1057. async: false,
  1058. success:function(res){
  1059. info = res;
  1060. if(res.info){
  1061. shr.showError({message:res.info});
  1062. flag = false ;
  1063. }
  1064. }
  1065. });
  1066. }
  1067. return flag;
  1068. },
  1069. verifyRestTime: function( beforeSubmit){
  1070. var startTime0 = atsMlUtile.getFieldOriginalValue("entries_startTime");
  1071. var endTime0 = atsMlUtile.getFieldOriginalValue("entries_endTime");
  1072. if(startTime0 == "" || startTime0 == undefined){
  1073. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_2});
  1074. return false;
  1075. }
  1076. if(endTime0 == "" || endTime0 == undefined){
  1077. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_1});
  1078. return false;
  1079. }
  1080. var startTimeOfDate = new Date(startTime0);
  1081. var endTimeOfDate = new Date(endTime0);
  1082. var restStartTime = atsMlUtile.getFieldOriginalValue("entries_restStartTime");
  1083. var restEndTime = atsMlUtile.getFieldOriginalValue("entries_restEndTime");
  1084. var restStartTime2 = atsMlUtile.getFieldOriginalValue("entries_restStartTime2");
  1085. var restEndTime2 = atsMlUtile.getFieldOriginalValue("entries_restEndTime2");
  1086. var restStartTimeOfDate = new Date(restStartTime);
  1087. var restEndTimeOfDateOfDate = new Date(restEndTime);
  1088. if (restStartTime!=undefined && restStartTime!=""){
  1089. if (restStartTimeOfDate.getTime()<startTimeOfDate.getTime() ||restStartTimeOfDate.getTime()>endTimeOfDate.getTime()){
  1090. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_6});
  1091. return false;
  1092. }
  1093. }
  1094. if (restEndTime!=undefined && restEndTime!="") {
  1095. if (restEndTimeOfDateOfDate.getTime() < startTimeOfDate.getTime() || restEndTimeOfDateOfDate.getTime() > endTimeOfDate.getTime()
  1096. ||restEndTimeOfDateOfDate.getTime() < restStartTimeOfDate.getTime()) {
  1097. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_3});
  1098. return false;
  1099. }
  1100. }
  1101. var restStartTimeOfDate2 = new Date(restStartTime2);
  1102. var restEndTimeOfDateOfDate2 = new Date(restEndTime2);
  1103. if (restStartTime2!=undefined && restStartTime2!=""){
  1104. if (restStartTimeOfDate2.getTime()<startTimeOfDate.getTime() ||restStartTimeOfDate2.getTime()>endTimeOfDate.getTime()){
  1105. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_8});
  1106. return false
  1107. }
  1108. }
  1109. if (restEndTime2!=undefined && restEndTime2!="") {
  1110. if (restEndTimeOfDateOfDate2.getTime() < startTimeOfDate.getTime() || restEndTimeOfDateOfDate2.getTime() > endTimeOfDate.getTime()
  1111. ||restEndTimeOfDateOfDate2.getTime() < restStartTimeOfDate2.getTime()){
  1112. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_4});
  1113. return false;
  1114. }
  1115. }
  1116. if( (restStartTime!="" && restStartTime!=undefined && (restEndTime==""||restEndTime==undefined))
  1117. || (restEndTime!="" && restEndTime!=undefined && (restStartTime==""||restStartTime==undefined))
  1118. )
  1119. {
  1120. if (beforeSubmit){
  1121. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_5});
  1122. }
  1123. return false;
  1124. }
  1125. if( (restStartTime2!="" && restStartTime2!=undefined && (restEndTime2==""||restEndTime2==undefined))
  1126. || (restEndTime2!="" && restEndTime2!=undefined && (restStartTime2==""||restStartTime2==undefined))
  1127. )
  1128. {
  1129. if (beforeSubmit) {
  1130. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_7});
  1131. }
  1132. return false;
  1133. }
  1134. if (restStartTime != "" && restStartTime != undefined && restStartTime2 != "" && restStartTime2 != undefined) {
  1135. //两个加班休息时间都填了,那么判断不能交叉
  1136. if((restStartTimeOfDate.getTime()<restEndTimeOfDateOfDate2.getTime() && restStartTimeOfDate.getTime()>=restStartTimeOfDate2.getTime())
  1137. ||(restStartTimeOfDate2.getTime()<restEndTimeOfDateOfDate.getTime() && restStartTimeOfDate2.getTime()>=restStartTimeOfDate.getTime())
  1138. ){
  1139. shr.showInfo({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_26952836_i18n_0});
  1140. return false;
  1141. }
  1142. }
  1143. return true;
  1144. },
  1145. // verify:function(){
  1146. // var regEx = new RegExp("\\-","gi");//i不区分大小写 g匹配所有
  1147. // var msgValue = this.getFieldValue("entries_msgValue");
  1148. //
  1149. // var beginTime = this.getFieldValue("entries_beginTime");
  1150. // var endTime = this.getFieldValue("entries.endTime");
  1151. // beginTime = beginTime.replace(regEx,"/");//2013/6/12 19:38:02
  1152. // endTime = endTime.replace(regEx,"/");
  1153. // var beginTimeOfDate = new Date(beginTime);
  1154. // var endTimeOfDate = new Date(endTime);
  1155. // if(beginTimeOfDate.getTime()>endTimeOfDate.getTime()){
  1156. // shr.showInfo({message: "请假开始日期不能大于请假结束日期"});
  1157. // return false;
  1158. // }else if(parseFloat(msgValue) == 0 ){
  1159. // shr.showInfo({message: "当前人的可用年假为"+msgValue+"天,不能提交或保存"});
  1160. // return false;
  1161. // }
  1162. // else{
  1163. // return true;
  1164. // }
  1165. // },
  1166. /**
  1167. * HRBillStateEnum(与转正,调动,离职单据的一致) || BizStateEnum 这个是 EAS7.5版的请假单使用的审批状态值,后续不用这个了<br/>
  1168. * 后续的加班,出差,请假,补签卡都用HRBillStateEnum这个单据状态,以便可以统一修改<br/>
  1169. * view: <field name="billState" label="单据状态" type="text"></field> <br/>
  1170. * 查看页面取值 var billState = $("#billState").html();
  1171. * view: <field name="billState" label="单据状态" type="text"></field> <br/>
  1172. * 查看页面取值 var billState = $("#billState").val();
  1173. *
  1174. * 设置编辑按钮是否隐藏 || 对应EAS7.5 Version 审批状态字段值<br/>
  1175. * 0-save 未提交 || -1 未提交 <br/>
  1176. * 1-submited 未审批 || 0 未审核 <br/>
  1177. * 2-auditing 审批中 || 1 审核中 <br/>
  1178. * 3-audited 审批通过 || 3 审核完成 <br/>
  1179. * 4-auditend 审批不通过 || 4 审核终止 <br/>
  1180. */
  1181. setButtonVisible:function(){
  1182. var that = this;
  1183. var billState = $("#billState").val();
  1184. //alert(billState);
  1185. if (billState) {
  1186. if (billState==3 ||
  1187. jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_17==billState ||
  1188. billState ==4||
  1189. jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_16==billState ||
  1190. billState ==2||
  1191. jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_18==billState ) {
  1192. $("#edit").hide();
  1193. $("#submit").hide();
  1194. $("#submitEffect").hide();
  1195. } else if (1==billState ||
  1196. jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_22== billState ||
  1197. 2 == billState ||
  1198. jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_18==billState ) { //未审批或审批中
  1199. if(!this.isFromWF()){
  1200. $("#edit").hide();
  1201. $("#submit").hide();
  1202. $("#submitEffect").hide();
  1203. }
  1204. }
  1205. }
  1206. if (this.getOperateState().toUpperCase() == 'VIEW') { //查看状态下不允许提交
  1207. //不允许提交生效
  1208. $("#submitEffect").hide();
  1209. if(billState == 0)
  1210. {
  1211. $("#submit").show();
  1212. }else {
  1213. $("#submit").hide();
  1214. }
  1215. if(this.isFromWF()){ // 来自任务中心
  1216. $('#cancelAll').hide();
  1217. $('#submit')
  1218. .text(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_21);
  1219. $('#edit').hide();
  1220. }
  1221. }
  1222. //新增和编辑状态隐藏返回XX列表
  1223. if (this.getOperateState().toUpperCase() == 'ADDNEW' || this.getOperateState().toUpperCase() == 'EDIT' ) {
  1224. $("#returnToOverTimeBillList").hide();
  1225. }
  1226. //如果是工作流打回,界面上的"返回XX列表"不显示
  1227. if (this.isFromWF()) {
  1228. $("#returnToOverTimeBillList").hide();
  1229. $("#cancel").hide();
  1230. }
  1231. /*
  1232. if(billState){
  1233. if(!this.isFromWF()){
  1234. if("审批通过" == billState || "审批中" == billState || "未审批" == billState){
  1235. $("#edit").hide();
  1236. $("#submit").hide();
  1237. $("#submitEffect").hide();
  1238. }
  1239. }
  1240. }
  1241. */
  1242. }
  1243. //没有找到调休规则
  1244. ,isOverMaxQuota : function(){
  1245. var resFlag = true;
  1246. var _self = this;
  1247. if($('#hrOrgUnit_el')==null || $('#hrOrgUnit_el') ==""){
  1248. shr.showWarning({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_15});
  1249. return;
  1250. }
  1251. _self.remoteCall({
  1252. type:"post",
  1253. method:"isOverMaxQuota",
  1254. async: false,
  1255. param:{
  1256. personId:$('#entries_person_el').val() || $('#entries_person').val() ||'',
  1257. otDate:atsMlUtile.getFieldOriginalValue('entries_otDate')||'',
  1258. currentValue:atsMlUtile.getFieldOriginalValue('entries_applyOTTime'),
  1259. otType:$('#entries_otType_el').val() || $('#entries_otType').val() || '',
  1260. hrOrgUnitId:$('#hrOrgUnit_el').val()
  1261. },
  1262. success:function(res){
  1263. var info = res;
  1264. if (!info.resFlag) {
  1265. shr.showWarning({message:info.resMsg});
  1266. resFlag = false;
  1267. }
  1268. }
  1269. });
  1270. return resFlag;
  1271. },
  1272. isOverWarnValue:function(otType,otCompens)
  1273. {
  1274. //add by aniskin_guosj,otType、otCompens非空限制
  1275. if (otType!=null && otType!=undefined && otType!="" &&
  1276. otCompens!=null && otCompens!=undefined && otCompens!="")
  1277. {
  1278. if(!this.isOTControl)
  1279. {
  1280. return;
  1281. }
  1282. var data={
  1283. personId: this.getFieldValue('entries_person'),
  1284. otDate: this.getFieldValue('entries_otDate'),
  1285. otType:otType,
  1286. otCompens:otCompens
  1287. }
  1288. this.remoteCall({
  1289. type:"post",
  1290. method:"getPersonOTLimitInfo",
  1291. param:data,
  1292. success:function(res){
  1293. var info = res;
  1294. if(info.isOverWarnValue)
  1295. {
  1296. var html="";
  1297. if(info.cycleDateType!=3)
  1298. {
  1299. html=jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_23
  1300. + shr.formatMsg(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_0, [info.personName, info.dateValue, info.used])
  1301. +jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_26
  1302. +"<span style='color:red'>"+info.substract
  1303. +jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_25
  1304. + "</span>"
  1305. +"【"
  1306. + jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_27
  1307. + info.warnValue+","
  1308. + jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_7
  1309. + info.limitValue+"】";
  1310. }
  1311. else
  1312. {
  1313. html=jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_23
  1314. + shr.formatMsg(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_28, [info.dateValue, info.startDate, info.endDate, info.used])
  1315. + info.personName+""
  1316. + jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_26
  1317. +"<span style='color:red'>"+info.substract
  1318. +jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_25
  1319. + "</span>"
  1320. +"【"
  1321. + jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_27
  1322. +info.warnValue+","
  1323. + jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_7
  1324. +info.limitValue+"】";
  1325. }
  1326. $("#show_info").html(html);
  1327. $("#message_head").show();
  1328. }
  1329. else
  1330. {
  1331. $("#message_head").hide();
  1332. }
  1333. }
  1334. });
  1335. }
  1336. },otCompensChange:function()
  1337. {
  1338. var that=this;
  1339. $("#entries_otCompens").shrPromptBox("option", {
  1340. onchange : function(e, value) {
  1341. var info = value.current;
  1342. var comId = info.id != undefined && info.id != "" ? info.id : info.submitFormat;
  1343. if (info!=null){
  1344. that.isOverWarnValue($("#entries_otType_el").val(),comId);
  1345. }
  1346. }
  1347. });
  1348. },getOTContrlParams:function()
  1349. {
  1350. var that=this;
  1351. if( that.getOperateState() == 'VIEW' ){
  1352. return;
  1353. }
  1354. var personId = $('#entries_person_el').val();
  1355. if(personId == null || personId == ''){
  1356. personId = $('#entries_person').val();
  1357. }
  1358. var url = shr.getContextPath()+'/dynamic.do?handler=com.kingdee.shr.ats.bill.util.BillBizUtil&method=getOTContrlParams';
  1359. shr.ajax({
  1360. type:"post",
  1361. async:false,
  1362. url:url,
  1363. data:{personId:personId},
  1364. success:function(res){
  1365. if(res)
  1366. {
  1367. that.isOTControl=res.isOTControl;
  1368. that.isOtrolByDateType=res.isOtrolByDateType;
  1369. }
  1370. }
  1371. });
  1372. }
  1373. //返回个人加班单链接跳转
  1374. ,returnToOverTimeBillListAction:function(){
  1375. // window.location.href = shr.getContextPath()+"/dynamic.do?uipk=com.kingdee.eas.hr.ats.app.AtsLeaveBillList";
  1376. this.reloadPage({
  1377. uipk: 'com.kingdee.eas.hr.ats.app.AtsOverTimeBillList'
  1378. });
  1379. },
  1380. goNextPage: function(source) {
  1381. // 普通提交,返回上一页面
  1382. if ($("#bill_flag").val() == "employeeself"){
  1383. _self.reloadPage({
  1384. uipk: "com.kingdee.eas.hr.ats.app.AtsOverTimeBillList"
  1385. });
  1386. }else{
  1387. _self.reloadPage({
  1388. uipk: "com.kingdee.eas.hr.ats.app.AtsOverTimeBillAllList"
  1389. });
  1390. }
  1391. },
  1392. setNavigateLine : function(){
  1393. var fromFlag = localStorage.getItem("fromFlag");
  1394. var empolyeeBoardFlag = sessionStorage.getItem("empolyeeBoardFlag");
  1395. var parentUipk = "";
  1396. if(parent.window.shr==null){
  1397. parentUipk = shr.getCurrentViewPage().uipk;
  1398. }else{
  1399. parentUipk = parent.window.shr.getCurrentViewPage().uipk;
  1400. }
  1401. if(fromFlag == "employeeBoard"){//来自我的考勤的时候。将导航条删除掉。
  1402. $("#breadcrumb").parent().parent().remove();
  1403. localStorage.removeItem("fromFlag");
  1404. }
  1405. if(("empolyeeBoardFlag" == empolyeeBoardFlag && "com.kingdee.eas.hr.ats.app.WorkCalendar.empATSDeskTop" == parentUipk)){
  1406. $("#breadcrumb").remove();
  1407. window.parent.changeDialogTitle(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_24);
  1408. }
  1409. }
  1410. ,getCurrentModel : function(){
  1411. var that = this ;
  1412. var model = shr.ats.AtsOverTimeBillEdit.superClass.getCurrentModel.call(this);
  1413. var startTime = model.entries[0].startTime ;
  1414. var endTime = model.entries[0].endTime;
  1415. var realStartTime = model.entries[0].realStartTime ;
  1416. var realEndTime = model.entries[0].realEndTime;
  1417. if(!(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/.test(startTime)))
  1418. {
  1419. model.entries[0].startTime = startTime+":00";
  1420. }
  1421. if(!(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/.test(endTime)))
  1422. {
  1423. model.entries[0].endTime = endTime+":00";
  1424. }
  1425. if(!(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/.test(realStartTime)))
  1426. {
  1427. if(!(realStartTime.trim() == "")){
  1428. model.entries[0].realStartTime = realStartTime+":00";
  1429. }
  1430. }
  1431. if(!(/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/.test(realEndTime)))
  1432. {
  1433. if(!(realEndTime.trim() == "")){
  1434. model.entries[0].realEndTime = realEndTime+":00";
  1435. }
  1436. }
  1437. var personId = model.entries[0].person;
  1438. var date = model.entries[0].otDate;
  1439. var personDateStr = personId +"_"+date.substring(0,10);
  1440. if(personDateStr){
  1441. _self.remoteCall({
  1442. type:"post",
  1443. method:"getPersonAdminOrgUnit",
  1444. param:{ personDateStr:personDateStr},
  1445. async: false,
  1446. success:function(res){
  1447. var info = res;
  1448. var personAtsInfo = res[personDateStr];
  1449. if(personAtsInfo && personAtsInfo.adminOrgUnit){
  1450. model.entries[0]["adminOrgUnit"]= personAtsInfo.adminOrgUnit;
  1451. model.entries[0]["position"]= personAtsInfo.position;
  1452. }
  1453. }
  1454. });
  1455. }
  1456. model.ccPersonIds = model.ccPersonIds && model.ccPersonIds.id || "";
  1457. model.ccPerson = model.ccPersonIds;
  1458. return model ;
  1459. }
  1460. ,saveAction: function(event) {
  1461. var _self = this,
  1462. workArea = _self.getWorkarea(),
  1463. $form = $('form', workArea);
  1464. if (_self.validate()&&_self.verify()&&($form.valid())) {
  1465. var beginDate = atsMlUtile.getFieldOriginalValue("entries_startTime").split(" ")[0];
  1466. var endDate = atsMlUtile.getFieldOriginalValue("entries_endTime").split(" ")[0];
  1467. var billType = "overTime";
  1468. var personId = $('#entries_person_el').val()
  1469. _self.remoteCall({
  1470. type:"post",
  1471. method:"billCheck",
  1472. param:{beginDate:beginDate,endDate:endDate,personId:personId,billType:billType},
  1473. async: true,
  1474. success:function(res){
  1475. var result = res.result;
  1476. if(result==""){
  1477. _self.doSave(event, 'save');
  1478. }else{
  1479. shr.showConfirm(result+jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_20,function(){
  1480. _self.doSave(event, 'save');
  1481. });
  1482. }
  1483. }
  1484. });
  1485. }
  1486. },
  1487. assembleSaveData: function(action) {
  1488. var data = shr.ats.AtsOverTimeBillEdit.superClass.assembleSaveData.call(this,action);
  1489. var model = JSON.parse(data.model);
  1490. var personDateStr = '';
  1491. var personId = model.entries.person;
  1492. var date = model.entries.otDate;
  1493. if(date && personId){
  1494. personDateStr += personId +"_"+date.substring(0,10);
  1495. }
  1496. _self.remoteCall({
  1497. type:"post",
  1498. method:"getPersonAdminOrgUnit",
  1499. param:{
  1500. personDateStr:personDateStr
  1501. },
  1502. async: false,
  1503. success:function(res){
  1504. var info = res;
  1505. var person_date = personId +"_"+date.substring(0,10);
  1506. if(res[person_date] != null){
  1507. model.entries["adminOrgUnit"] = res[person_date].adminOrgUnit;
  1508. model.entries["position"] = res[person_date].position;
  1509. }
  1510. }
  1511. });
  1512. model.ccPerson = model.ccPersonIds;
  1513. var assModeljson = $.toJSON(model) ;
  1514. data.model = assModeljson ;
  1515. return data;
  1516. }
  1517. ,submitAction: function(event) {
  1518. var _self = this,
  1519. workArea = _self.getWorkarea(),
  1520. $form = $('form', workArea);
  1521. var flag = false ;
  1522. if (shr.getCurrentViewPage().uipk == "com.kingdee.eas.hr.ats.app.AtsOverTimeBillForm") {
  1523. var personId = $('#entries_person_id').val();
  1524. var proposerId = $('#proposer_id').val();
  1525. if(undefined != personId && undefined != proposerId && personId != "" && proposerId != "" && personId != proposerId){
  1526. shr.showError({message: jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_30, hiddenAfter: 5});
  1527. return;
  1528. }
  1529. }
  1530. if (_self.validate()&&_self.verify()&&($form.valid())) {
  1531. var beginDate = atsMlUtile.getFieldOriginalValue("entries_startTime").split(" ")[0];
  1532. var endDate = atsMlUtile.getFieldOriginalValue("entries_endTime").split(" ")[0];
  1533. var billType = "overTime";
  1534. var personId = $('#entries_person_el').val()
  1535. _self.remoteCall({
  1536. type:"post",
  1537. method:"billCheck",
  1538. param:{beginDate:beginDate,endDate:endDate,personId:personId,billType:billType},
  1539. async: false,
  1540. success:function(res){
  1541. var result = res.result;
  1542. if(result==""){
  1543. shr.showConfirm(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_13, function() {
  1544. _self.doSubmit(event, 'submit');
  1545. });
  1546. }else{
  1547. shr.showConfirm(result+jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_20,function(){
  1548. shr.showConfirm(jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_13, function() {
  1549. _self.doSubmit(event, 'submit');
  1550. });
  1551. });
  1552. }
  1553. }
  1554. });
  1555. }
  1556. }
  1557. ,before :function(){
  1558. var _self = this,
  1559. workArea = _self.getWorkarea(),
  1560. $form = $('form', workArea);
  1561. var flag = false ;
  1562. if (_self.validate()&&($form.valid())) {
  1563. var beginDate = atsMlUtile.getFieldOriginalValue("entries_startTime").split(" ")[0];
  1564. var endDate = atsMlUtile.getFieldOriginalValue("entries_endTime").split(" ")[0];
  1565. var billType = "overTime";
  1566. var personId = $('#entries_person_el').val()
  1567. _self.remoteCall({
  1568. type:"post",
  1569. method:"billCheck",
  1570. param:{beginDate:beginDate,endDate:endDate,personId:personId,billType:billType},
  1571. async: false,
  1572. success:function(res){
  1573. var result = res.result;
  1574. if(result==""){
  1575. flag= true;
  1576. }else{
  1577. shr.showConfirm(result+jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_20,function(){
  1578. flag= true;
  1579. });
  1580. }
  1581. }
  1582. });
  1583. }
  1584. // return false 也能保存,固让js报错,后续让eas修改 return false 逻辑
  1585. //var len = workArea.length() ;
  1586. return flag ;
  1587. }
  1588. ,beforeSave:function(){
  1589. var _self = this,
  1590. workArea = _self.getWorkarea(),
  1591. $form = $('form', workArea);
  1592. if (($form.valid() && _self.verify())) {
  1593. var beginDate = atsMlUtile.getFieldOriginalValue("entries_startTime").split(" ")[0];
  1594. var endDate = atsMlUtile.getFieldOriginalValue("entries_endTime").split(" ")[0];
  1595. var billType = "overTime";
  1596. var personId = $('#entries_person_el').val()
  1597. _self.remoteCall({
  1598. type:"post",
  1599. method:"billCheck",
  1600. param:{beginDate:beginDate,endDate:endDate,personId:personId,billType:billType},
  1601. async: true,
  1602. success:function(res){
  1603. var result = res.result;
  1604. if(result==""){
  1605. return true;
  1606. }else{
  1607. shr.showConfirm(result+jsBizMultLan.atsManager_atsOverTimeBillEdit_i18n_20,function(){
  1608. return true;
  1609. });
  1610. }
  1611. }
  1612. });
  1613. }
  1614. // return false 也能保存,固让js报错,后续让eas修改 return false 逻辑
  1615. var len = workArea.length() ;
  1616. return false ;
  1617. }
  1618. });