SMRPD00300_특근신청등록(누적).xrw 69 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>특근신청등록</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <daylist/>
  11. <list>
  12. <ovtmworkapplist/>
  13. <ovtmworkallapplist/>
  14. </list>
  15. <templist>
  16. <emplno/>
  17. <emplnm/>
  18. <instnm/>
  19. <instcd/>
  20. <dutplceinstnm/>
  21. <dutplceinstcd/>
  22. <deptcd/>
  23. <deptnm/>
  24. <dutdeptcd/>
  25. <dutdeptnm/>
  26. <dutplcedeptcd/>
  27. <dutplcedeptnm/>
  28. <dutunitcd/>
  29. <dutunitnm/>
  30. </templist>
  31. <empl>
  32. <empllist/>
  33. </empl>
  34. </main>
  35. <send>
  36. <retrparams>
  37. <instcd/>
  38. <dutym/>
  39. <emplno/>
  40. <emplnm/>
  41. <ovtmworkapplist/>
  42. <appfrdd/>
  43. <apptodd/>
  44. <dutplcedeptcd/>
  45. <dutym_s/>
  46. <dutym_e/>
  47. <dutym_ee/>
  48. <popworkgbn/>
  49. <dutplceinstcd/>
  50. <instnm/>
  51. <instcd/>
  52. <dutplceinstnm/>
  53. <deptcd/>
  54. <deptnm/>
  55. <dutdeptcd/>
  56. <dutdeptnm/>
  57. <dutplcedeptnm/>
  58. <appdd/>
  59. <dutunitcd/>
  60. <dutunitnm/>
  61. <flag/>
  62. <temp>0</temp>
  63. <retrflag>pri</retrflag>
  64. <deptgb/>
  65. </retrparams>
  66. <retrparams2>
  67. <instcd/>
  68. <dutunitcd/>
  69. <dutym/>
  70. <deptgb/>
  71. </retrparams2>
  72. </send>
  73. <init>
  74. <combo1>
  75. <label>Y</label>
  76. <value>Y</value>
  77. <label>N</label>
  78. <value>N</value>
  79. </combo1>
  80. </init>
  81. <tempday>
  82. <dutinfo/>
  83. </tempday>
  84. <hidden/>
  85. <temp>
  86. </temp>
  87. </root>
  88. </instance>
  89. <submission id="TRRPD00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="/root/main/ovtmworkapplist"/>
  90. <submission id="TRRPD00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="/root/main/daylist"/>
  91. <submission id="TRRPD10102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="/root/tempday/dutinfo"/>
  92. <submission id="TRRPD00105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams2" resultref="/root/main/empl"/>
  93. <submission id="TXRPD00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="root/temp/douchecklist"/>
  94. <bind id="bind1"/>
  95. </model>
  96. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  97. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  98. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  99. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  100. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  101. <script type="javascript" src="../../../mis/dligclaznsmngtweb/js/RPD001.js"/>
  102. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  103. <script type="javascript" src="../../../mis/pubwelfmngtweb/js/RPS001.js"/>
  104. <script type="javascript" ev:event="xforms-ready">
  105. <![CDATA[
  106. fInitialize();
  107. ]]>
  108. </script>
  109. <script type="javascript">
  110. <![CDATA[
  111. var b_First = true;
  112. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  113. function fInitialize()
  114. {
  115. misfGridInit(grd_ovtmworkapplist);
  116. misfGridInit(grd_allapplist);
  117. misfGridInit(grd_daylist);
  118. model.resetInstanceNode("/root/send/retrparams");
  119. model.setValue("/root/send/retrparams/deptgb", "1");
  120. model.setValue("/root/send/retrparams2/deptgb", "1");
  121. //model.setValue("/root/send/retrparams/dutym", getCurrentDate();
  122. //model.setValue("/root/send/retrparams/dutym_s", getCurrentDate();
  123. submit("TRRPD10102", false);
  124. model.setValue("/root/send/retrparams/dutym", model.getValue("/root/tempday/dutinfo/dutlist/fromymd"));
  125. model.setValue("/root/send/retrparams/dutym_s", model.getValue("/root/tempday/dutinfo/dutlist/fromymd"));
  126. model.setValue("/root/send/retrparams/dutym_ee", model.getValue("/root/tempday/dutinfo/dutlist/toymd"));
  127. model.setValue("/root/send/retrparams/dutym_e", model.getValue("/root/tempday/dutinfo/dutlist/toymd"));
  128. // misfComboComCdListMulti("Z0007","cmb_instcd");
  129. misfComboInstCdListMulti("cmb_instcd",getCurrentDate().substr(0, 8),"","Y");
  130. misfGetAndSetUserInfo();
  131. misfGetUserAuth();
  132. rpdfSetControlAuth();
  133. rpdfComboCdList(cmb_dutplce); // 권한별 근무부서 세팅
  134. rpdfSetDutUnitCombo();
  135. cmb_dutplce.dispatch("xforms-value-changed");
  136. fmisfMsterDetailSet(grd_ovtmworkapplist, null, "TRRPD00101", "Y");
  137. model.setValue("/root/send/retrparams/instcd", getUserInfo("dutplceinstcd"));
  138. model.setValue("/root/send/retrparams/popworkgbn", "SMRPD00100");
  139. //model.setValue("/root/send/retrparams/emplno", getUserInfo("userid"));
  140. //model.setValue("/root/send/retrparams/emplnm", getUserInfo("usernm"));
  141. model.setValue("/root/send/retrparams/dutunitcd", DUT_UNIT_CD);
  142. model.setValue("/root/send/retrparams/dutunitnm", DUT_UNIT_NM);
  143. model.setValue("/root/send/retrparams/dutdeptcd", DUT_UNIT_CD);
  144. model.setValue("/root/send/retrparams/dutplceinstcd", getUserInfo("dutplceinstcd"));
  145. model.setValue("/root/send/retrparams/retrflag", "pri");
  146. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  147. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  148. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  149. //화면 권한 설정
  150. btn_save.disabled = !(checkAuth("X"));
  151. if(cmb_dutplce.visible)
  152. {
  153. caption5.visible = false;
  154. ipt_emplno.visible = false;
  155. ipt_emplnm.visible = false;
  156. ipt_emplhelp.visible = false;
  157. }
  158. else
  159. {
  160. caption5.visible = true;
  161. ipt_emplno.visible = true;
  162. ipt_emplnm.visible = true;
  163. ipt_emplhelp.visible = true;
  164. }
  165. cmb_dutplce.value = DUT_UNIT_CD;
  166. opt_temp.value = 0;
  167. model.refresh();
  168. b_First = false;
  169. cmb_dutplce.dispatch("xforms-value-changed");
  170. if (cmb_dutplce.value == "")
  171. {
  172. cmb_dutplce.select(0);
  173. }
  174. if(grd_dutempllist.rows > 1)
  175. {
  176. grd_dutempllist.select(1, grd_dutempllist.colRef("emplnm")) = true;
  177. grd_dutempllist.row = 1;
  178. grd_dutempllist.dispatch("onrowchanged");
  179. }
  180. }
  181. function fsaveCheckNull()
  182. {
  183. for(i=3; i< grd_ovtmworkapplist.rows; i++)
  184. {
  185. var check_emplno = model.getValue(grd_ovtmworkapplist.attribute("nodeset") + "[" + ( i - 2 ) + "]/emplno");
  186. var check_fdd = model.getValue(grd_ovtmworkapplist.attribute("nodeset") + "[" + ( i - 2 ) + "]/appfromdd");
  187. var check_tdd = model.getValue(grd_ovtmworkapplist.attribute("nodeset") + "[" + ( i - 2 ) + "]/apptodd");
  188. var check_ftm = model.getValue(grd_ovtmworkapplist.attribute("nodeset") + "[" + ( i - 2 ) + "]/appfromtm");
  189. var check_ttm = model.getValue(grd_ovtmworkapplist.attribute("nodeset") + "[" + ( i - 2 ) + "]/apptotm");
  190. var deprtmangraprvyn = model.getValue(grd_ovtmworkapplist.attribute("nodeset") + "[" + ( i - 2 ) + "]/deprtmangraprvyn");
  191. var check_cnt = parseFloat(check_tdd)-parseFloat(check_fdd);
  192. var status=grd_ovtmworkapplist.rowStatus(i);
  193. if(check_emplno =="")
  194. {
  195. messageBox("사원번호는","I003");
  196. return false;
  197. }
  198. if(check_fdd =="" ||check_tdd =="" ||check_ftm=="" ||check_ttm=="")
  199. {
  200. messageBox("신청시간은","I003");
  201. return false;
  202. }
  203. if(status=="2"||status=="4")
  204. {
  205. if(deprtmangraprvyn =='Y')
  206. {
  207. messageBox("이미 승인된 건은 수정","E001");
  208. return false;
  209. }
  210. }
  211. // if(status !="0")
  212. // {
  213. // if(check_cnt > 1 || check_cnt < 0)
  214. // {
  215. // messageBox("신청기간이 1일을","E003");
  216. // return false;
  217. // }
  218. // }
  219. if(parseFloat(check_fdd) >parseFloat(check_tdd))
  220. {
  221. messageBox("신청종료일자는 신청시작일자 ","E012");
  222. return false;
  223. }
  224. if(check_fdd==check_tdd)
  225. {
  226. if(parseFloat(check_ftm) >parseFloat(check_ttm))
  227. {
  228. messageBox("신청종료시간은 신청시작시간 ","E012");
  229. return false;
  230. }
  231. }
  232. }
  233. return true;
  234. }
  235. function fsaveCheckValue()
  236. {
  237. var iInsCnt = 0;
  238. var iDupCnt = 0;
  239. var bDel = false;
  240. var icolidx = grd_ovtmworkapplist.colRef("emplno");
  241. var icolidx2 = grd_ovtmworkapplist.colRef("appfromdd");
  242. var icolidx3 = grd_ovtmworkapplist.colRef("appfromtm");
  243. for(var i=0; i<grd_ovtmworkapplist.rows; i++)
  244. {
  245. if(grd_ovtmworkapplist.rowStatus(i) == 1 || grd_ovtmworkapplist.rowStatus(i) == 3)
  246. {
  247. iInsCnt = i;
  248. break;
  249. }
  250. }
  251. for(var i=iInsCnt; i<grd_ovtmworkapplist.rows; i++)
  252. {
  253. for(var j=1; j<i; j++)
  254. {
  255. if(grd_ovtmworkapplist.valueMatrix(i, icolidx3) == grd_ovtmworkapplist.valueMatrix(j, icolidx3) && grd_ovtmworkapplist.valueMatrix(i, icolidx2) == grd_ovtmworkapplist.valueMatrix(j, icolidx2) && grd_ovtmworkapplist.valueMatrix(i, icolidx) == grd_ovtmworkapplist.valueMatrix(j, icolidx))
  256. {
  257. if(grd_ovtmworkapplist.rowStatus(i) == 1 || grd_ovtmworkapplist.rowStatus(i) == 3)
  258. {
  259. var ret= messageBox("같은일자의 같은 시작시간이 존재합니다. ", "Q001");
  260. if (ret != 6)
  261. { // not OK
  262. bDel = false;
  263. return false;
  264. }
  265. else
  266. {
  267. grd_ovtmworkapplist.deleteItem(i);
  268. iDupCnt++;
  269. bDel = true;
  270. }
  271. }
  272. }
  273. }
  274. if(bDel)
  275. {
  276. bDel = false;
  277. i--;
  278. }
  279. }
  280. if(iDupCnt > 0)
  281. {
  282. messageBox("[ " + iDupCnt + " ]" + " 건의 중복된 행이 삭제", "I001");
  283. }
  284. return true;
  285. }
  286. function frpdfGetNightTime(pFrdate, pFrtime, pTodate, pTotime)
  287. {
  288. //===== 야간근무시간
  289. var sGjfrdt = parseFloat(pFrdate);
  290. var sGjtodt_v = pFrdate.rpdfToDate("YYYYMMDD").rpdfGetRelativeDate(1, "D").rpdfFormat();
  291. var sGjtodt = parseFloat(sGjtodt_v);
  292. var pFrtt = pFrtime.substr(0, 2);
  293. var pFrmm = pFrtime.substr(2, 2);
  294. var pTott = pTotime.substr(0, 2);
  295. var pTomm = pTotime.substr(2, 2);
  296. var sNghtTm
  297. if(parseFloat(pFrdate) == parseFloat(pTodate))
  298. {
  299. if(parseFloat(pFrtt) >= 0 && parseFloat(pFrtt) <= 6)
  300. {
  301. if(parseFloat(pTotime) >= 600)
  302. {
  303. pTott = "06";
  304. pTomm = "00";
  305. }
  306. }
  307. else if(parseFloat(pTott) >= 22 && parseFloat(pTott) <= 24)
  308. {
  309. if(parseFloat(pFrtime) < 2200)
  310. {
  311. pFrtt = "22";
  312. pFrmm = "00";
  313. }
  314. }
  315. }
  316. else if(parseFloat(pFrdate) < parseFloat(pTodate))
  317. {
  318. if(parseFloat(pFrtime) < 2200)
  319. {
  320. pFrtt = "22";
  321. pFrmm = "00";
  322. }
  323. if(parseFloat(pTotime) >= 600)
  324. {
  325. pTott = "30";
  326. pTomm = "00";
  327. }
  328. else
  329. {
  330. pTott = (24 + parseFloat(pTott)).toString();
  331. }
  332. }
  333. var iTM = parseFloat(pTott) - parseFloat(pFrtt);
  334. var iMM = 0;
  335. if(parseFloat(pFrmm) > parseFloat(pTomm))
  336. {
  337. iTM--;
  338. iMM = (60 + parseFloat(pTomm)) - parseFloat(pFrmm);
  339. }
  340. else
  341. {
  342. iMM = parseFloat(pTomm) - parseFloat(pFrmm);
  343. }
  344. var sTM = ( iTM.toString().length == 1 ) ? "0" + iTM.toString() : iTM.toString();
  345. var sMM = ( iMM.toString().length == 1 ) ? "0" + iMM.toString() : iMM.toString();
  346. var iRet = (iTM * 60) + iMM;
  347. return iRet;
  348. }
  349. function fSetDateAndTime()
  350. {
  351. //신청일자 및 시간 유효성 체크
  352. if(grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("appfromdd"))
  353. {
  354. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/apptodd", model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/appfromdd"));
  355. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coufromdd", model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/appfromdd"));
  356. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coutodd", model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/appfromdd"));
  357. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptodd")) = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd"));
  358. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coufromdd")) = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd"));
  359. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coutodd")) = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd"));
  360. fCalcTime();
  361. // grd_ovtmworkapplist.col = grd_ovtmworkapplist.colRef("appfromtm");
  362. // grd_ovtmworkapplist.editCell();
  363. }
  364. else if(grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("appfromtm"))
  365. {
  366. var check_h = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, 5);
  367. check_hh = check_h.substring(0, 2);
  368. check_mm = check_h.substring(2, 4);
  369. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coufromtm")) = check_h;
  370. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coufromtm", check_h);
  371. if(parseFloat(check_hh) > 24 ||parseFloat(check_mm) > 59 ||check_h.length != 4 )
  372. {
  373. messageBox("신청시작시간 입력형식이 ","E004");
  374. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/appfromtm", "");
  375. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coufromtm", "");
  376. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromtm")) = "";
  377. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coufromtm")) = "";
  378. return;
  379. }
  380. fCalcTime();
  381. }
  382. else if(grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("apptodd"))
  383. {
  384. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coutodd")) = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptodd"));
  385. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coutodd", model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/apptodd"));
  386. fCalcTime();
  387. }
  388. else if(grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("apptotm"))
  389. {
  390. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd"));
  391. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptodd"));
  392. var check_fdd = model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/appfromdd");
  393. var check_tdd = model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/apptodd");
  394. var check_cnt = parseFloat(check_tdd) - parseFloat(check_fdd);
  395. if(check_cnt >2 || check_cnt < 0 || check_tdd.length != 8 || check_fdd.length != 8)
  396. {
  397. messageBox("신청일자 입력형식이 ","E004");
  398. if(grd_ovtmworkapplist.rowStatus(grd_ovtmworkapplist.row) == 1 || grd_ovtmworkapplist.rowStatus(grd_ovtmworkapplist.row) == 3)
  399. {
  400. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/appfromdd", "");
  401. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coufromdd", "");
  402. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd")) = "";
  403. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coufromdd")) = "";
  404. }
  405. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/apptodd", "");
  406. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coutodd", "");
  407. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptodd")) = "";
  408. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coutodd")) = "";
  409. return;
  410. }
  411. var check_h= grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row,7);
  412. check_hh = check_h.substring(0, 2);
  413. check_mm = check_h.substring(2, 4);
  414. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coutotm", check_h);
  415. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coutotm")) = check_h;
  416. if(parseFloat(check_hh) > 24 ||parseFloat(check_mm) > 59 ||check_h.length != 4)
  417. {
  418. messageBox("신청종료시간 입력형식이 ","E004");
  419. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/apptotm", "");
  420. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coutotm", "");
  421. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptotm")) = "";
  422. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coutotm")) = "";
  423. return;
  424. }
  425. fCalcTime();
  426. }
  427. else if(grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("emplno")) //사원번호로 검색시
  428. {
  429. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplno"));
  430. ipt_temp.value = model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/emplno");
  431. ipt_temp.dispatch("xforms-value-changed");
  432. }
  433. else if(grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("emplnm")) // 사원명으로 검색시
  434. {
  435. // ipt_temp2.value = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplnm"));
  436. ipt_temp2.value = model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/emplnm");
  437. ipt_temp2.dispatch("xforms-value-changed");
  438. }
  439. if(grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("appfromdd") ||
  440. grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("appfromtm") ||
  441. grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("apptodd") ||
  442. grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("apptotm"))
  443. {
  444. }
  445. model.dispatch("onmouseup");
  446. }
  447. function fCalcTime()
  448. {
  449. var frDate = model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/appfromdd");
  450. var frTime = model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/appfromtm");
  451. var toDate = model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/apptodd");
  452. var toTime = model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/apptotm");
  453. var earlyattdncyn = model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/earlyattdncyn");
  454. // var frDate = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd"));
  455. // var frTime = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromtm"));
  456. // var toDate = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptodd"));
  457. // var toTime = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptotm"));
  458. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("earlyattdncyn"));
  459. //휴일 유무에 따라 신청시간 계산
  460. if(frDate != ""&& frTime != "" && toDate != "" && toTime != "" && frDate.length == 8 && toDate.length == 8)
  461. {
  462. // model.setValue("/root/send/retrparams/appfrdd", grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd")));
  463. // model.setValue("/root/send/retrparams/apptodd", grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptodd")));
  464. model.setValue("/root/send/retrparams/appfrdd", model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/appfromdd"));
  465. model.setValue("/root/send/retrparams/apptodd", model.getValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/apptodd"));
  466. submit("TRRPD00102");
  467. //휴일 날짜 가져오기 성공했으면 실행
  468. if(grd_daylist.rows - 1 > 0 )
  469. {
  470. //신청시간,분 계산 및 값 셋팅
  471. var dutTime = rpdfGetCalcDutyTime(frDate, frTime, toDate, toTime);
  472. var dutTime_v = dutTime / 60;
  473. var dutMin_v = dutTime % 60;
  474. dutTime_v = parseInt(dutTime_v);
  475. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/apptm", dutTime_v);
  476. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/appmm", dutMin_v);
  477. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coutm", dutTime_v);
  478. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coumm", dutMin_v);
  479. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptm")) = dutTime_v;
  480. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appmm")) = dutMin_v;
  481. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coutm")) = dutTime_v;
  482. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coumm")) = dutMin_v;
  483. if(earlyattdncyn =='Y')
  484. {
  485. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/earlyattdnctm150", dutTime_v);
  486. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/earlyattdncmm150", dutMin_v);
  487. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("earlyattdnctm150")) =dutTime_v;
  488. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("earlyattdncmm150")) =dutMin_v;
  489. }
  490. else
  491. {
  492. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkextnbiztm150", dutTime_v);
  493. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkextnbizmm150", dutMin_v);
  494. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworkextnbiztm150")) =dutTime_v;
  495. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworkextnbizmm150")) =dutMin_v;
  496. }
  497. if(dutMin_v < 10)
  498. {
  499. dutMin_v = "0" + dutMin_v;
  500. }
  501. if(dutTime_v < 10)
  502. {
  503. dutTime_v = "0" + dutTime_v;
  504. }
  505. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/apptm_v", dutTime_v + "" + dutMin_v);
  506. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/coutm_v", dutTime_v + "" + dutMin_v);
  507. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, 8) = dutTime_v + ":" + dutMin_v;
  508. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, 19) = dutTime_v + ":" + dutMin_v;
  509. if(earlyattdncyn =='Y')
  510. {
  511. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/earlyattdnctm150_v", dutTime_v + "" + dutMin_v);
  512. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, 14) = dutTime_v + ":" + dutMin_v;
  513. }
  514. else
  515. {
  516. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkextnbiztm150_v", dutTime_v + "" + dutMin_v);
  517. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, 11) = dutTime_v + ":" + dutMin_v;
  518. }
  519. //휴일 시간,분 계산 및 값 셋팅
  520. var holyflag1 = model.getValue("/root/main/daylist[1]/holiflag") == '0' ? 'Y' : 'N';
  521. var holyflag2 = model.getValue("/root/main/daylist[2]/holiflag") == '0' ? 'Y' : 'N';
  522. if(holyflag1 == 'Y' || holyflag2 == 'Y')
  523. {
  524. var holyTime = rpdfGetHolyTime(frDate, frTime, toDate,toTime, holyflag1, holyflag2);
  525. var holyTime_v = holyTime / 60;
  526. var holyMin_v = holyTime % 60;
  527. var holyTime_v = parseInt(holyTime_v);
  528. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkholibiztm", holyTime_v);
  529. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkholibizmm", holyMin_v);
  530. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworkholibiztm")) = holyTime_v;
  531. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworkholibizmm")) = holyMin_v;
  532. if(holyMin_v < 10)
  533. {
  534. holyMin_v = "0" + holyMin_v;
  535. }
  536. if(holyTime_v< 10)
  537. {
  538. holyTime_v = "0" + holyTime_v ;
  539. }
  540. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkholibiztm_v", holyTime_v + ":" + holyMin_v);
  541. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, 9) = holyTime_v + ":" + holyMin_v;
  542. }
  543. //아래 조건에따라 야간 시간,분 계산 및 값 셋팅
  544. if((frTime <= "0600" && toTime >= "0600") || (frTime <= "0600" && toTime <= "0600") || frTime >= "2200" || toTime <= "0600" || toTime >= "2200" || frDate < toDate)
  545. {
  546. var nightDutTime = frpdfGetNightTime(frDate, frTime, toDate, toTime);
  547. var nightDutTime_v = nightDutTime / 60;
  548. var nightDutMin_v = nightDutTime % 60;
  549. var nightDutTime_v = parseInt(nightDutTime_v);
  550. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworknigtbiztm", nightDutTime_v);
  551. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworknigtbizmm", nightDutMin_v);
  552. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworknigtbiztm")) = nightDutTime_v;
  553. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworknigtbizmm")) = nightDutMin_v;
  554. if(earlyattdncyn == 'N')
  555. {
  556. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkextnbiztm50", nightDutTime_v);
  557. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkextnbizmm50", nightDutMin_v);
  558. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworkextnbiztm50")) = nightDutTime_v;
  559. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworkextnbizmm50")) = nightDutMin_v;
  560. }
  561. if(nightDutMin_v < 10)
  562. {
  563. nightDutMin_v = "0" + nightDutMin_v;
  564. }
  565. if(nightDutTime_v < 10)
  566. {
  567. nightDutTime_v = "0" + nightDutTime_v;
  568. }
  569. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworknigtbiztm_v", nightDutTime_v + ":" + nightDutMin_v);
  570. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, 10) = nightDutTime_v + ":" + nightDutMin_v;
  571. if(earlyattdncyn == 'N')
  572. {
  573. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkextnbiztm50_v", nightDutTime_v + ":" + nightDutMin_v);
  574. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, 13) = nightDutTime_v + ":" + nightDutMin_v;
  575. }
  576. }
  577. else
  578. {
  579. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworknigtbiztm", "");
  580. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworknigtbizmm", "");
  581. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkextnbiztm50", "");
  582. model.setValue(grd_ovtmworkapplist.nodeset + "[" + (grd_ovtmworkapplist.row - 2) + "]/ovtmworkextnbizmm50", "");
  583. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworknigtbiztm")) = "";
  584. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworknigtbizmm")) = "";
  585. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworkextnbiztm50")) = "";
  586. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("ovtmworkextnbizmm50")) = "";
  587. }
  588. }
  589. }
  590. model.refresh();
  591. }
  592. ]]>
  593. </script>
  594. </xhtml:head>
  595. <xhtml:body pagewidth="1211" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  596. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  597. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">특근신청등록</caption>
  598. </group>
  599. <group id="group2" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  600. <line id="line1" class="line_1" style="x1:0px; y1:93px; x2:1194px; y2:93px; "/>
  601. <group id="group4" style="left:0px; top:10px; width:1195px; height:60px; vertical-align:top; ">
  602. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1195px; height:60px; "/>
  603. <caption id="caption5" class="search_name" style="left:10px; top:35px; width:86px; height:17px; ">사원번호 :</caption>
  604. <button id="ipt_emplhelp" class="icon_search" navindex="6" style="left:179px; top:36px; width:16px; height:16px; ">
  605. <caption/>
  606. <script type="javascript" ev:event="DOMActivate">
  607. <![CDATA[
  608. rpbfOpenPopUpList("SPRPB00101", ipt_emplno, "emplno,emplnm,dutunitcd,dutunitnm", "", "N");
  609. model.refresh();
  610. ]]>
  611. </script>
  612. </button>
  613. <caption id="caption1" class="search_name" style="left:222px; top:9px; width:86px; height:17px; ">근무년월 :</caption>
  614. <line id="line3" class="line_4" style="x1:1115px; y1:6px; x2:1115px; y2:28px; border-color:#ffe4bb; border-left-style:solid; "/>
  615. <input id="ipt_emplno" ref="/root/send/retrparams/emplno" class="input_search" navindex="5" maxlength="8" style="left:99px; top:34px; width:76px; height:19px; ">
  616. <script type="javascript" ev:event="onkeypress">
  617. <![CDATA[
  618. if(event.keyCode == 13)
  619. {
  620. if(ipt_emplno.value == ipt_emplno.currentText) return;
  621. ipt_emplno.value = ipt_emplno.currentText;
  622. rpbfValidationCheck("EMPLNO", "emplno,emplnm,dutunitcd,dutunitnm");
  623. model.refresh();
  624. }
  625. ]]>
  626. </script>
  627. <script type="javascript" ev:event="xforms-value-changed">
  628. <![CDATA[
  629. rpbfValidationCheck("EMPLNO", "emplno,emplnm,dutunitcd,dutunitnm");
  630. model.refresh();
  631. ]]>
  632. </script>
  633. </input>
  634. <input id="ipt_emplnm" ref="/root/send/retrparams/emplnm" class="input_search" navindex="7" imemode="hangul" style="left:200px; top:34px; width:67px; height:19px; ">
  635. <script type="javascript" ev:event="onkeypress">
  636. <![CDATA[
  637. if(event.keyCode == 13)
  638. {
  639. if(ipt_emplnm.value == ipt_emplnm.currentText) return;
  640. ipt_emplnm.value = ipt_emplnm.currentText;
  641. rpbfValidationCheck("EMPLNM", "emplno,emplnm,dutunitcd,dutunitnm");
  642. model.refresh();
  643. }
  644. ]]>
  645. </script>
  646. <script type="javascript" ev:event="xforms-value-changed">
  647. <![CDATA[
  648. rpbfValidationCheck("EMPLNM", "emplno,emplnm,dutunitcd,dutunitnm");
  649. model.refresh();
  650. ]]>
  651. </script>
  652. </input>
  653. <button id="btn_search" class="btn1_letter2" style="left:1125px; top:7px; width:56px; height:22px; text-align:left; ">
  654. <caption>조회</caption>
  655. <script type="javascript" ev:event="DOMActivate">
  656. <![CDATA[
  657. if(ipt_dutym_s.value == "")
  658. {
  659. messageBox("근무월은", "I003");
  660. return;
  661. }
  662. if(model.getValue("/root/send/retrparams/dutunitcd") == "")
  663. {
  664. messageBox("관리부서 선택하십시오", "I999");
  665. return;
  666. }
  667. /*
  668. if(ipt_emplno.value == "")
  669. {
  670. messageBox("사원번호를 입력하거나 사원 리스트에서 사원번호를 선택하십시오","I999");
  671. return;
  672. }
  673. */
  674. model.removenode("/root/main/list/ovtmworkapplist");
  675. model.removenode("/root/main/list/ovtmworkallapplist");
  676. model.removenode("/root/main/list");
  677. model.refresh();
  678. misfMsterDetailRetrieve();
  679. // submit("TRRPD00101");
  680. misfSetReadOnlyCol(grd_ovtmworkapplist, "appfromdd,appfromtm", true);
  681. grd_ovtmworkapplist.colDisabled (1) = true;
  682. grd_ovtmworkapplist.colDisabled (3) = true;
  683. for(var i=3; i<grd_ovtmworkapplist.rows; i++) {
  684. grd_ovtmworkapplist.rowHeight(i) = 23;
  685. }
  686. ]]>
  687. </script>
  688. </button>
  689. <input id="ipt_appfromdd" ref="/root/send/retrparams/dutym" class="input_s_essential" navindex="2" inputtype="date" format="yyyy-mm-dd" style="left:312px; top:8px; width:108px; height:19px; text-align:center; ">
  690. <script type="javascript" ev:event="xforms-value-changed">
  691. <![CDATA[
  692. ipt_dutym_s.value=ipt_appfromdd.value;
  693. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  694. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  695. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  696. var instcd = cmb_instcd.value;
  697. if( getStringLength(ipt_appfromdd.value) == "6" ) {
  698. model.removeNodeset(cmb_instcd.attribute("ref"));
  699. model.makeNode("/root/send/retrparams/instcd");
  700. misfComboInstCdListMulti("cmb_instcd",ipt_appfromdd.value+"31","","Y");
  701. cmb_instcd.value = instcd;
  702. model.refresh();
  703. }
  704. /*
  705. if(!b_First) {
  706. submit("TRRPD00105");
  707. }
  708. */
  709. model.refresh();
  710. ]]>
  711. </script>
  712. </input>
  713. <caption id="caption2" class="search_name" style="left:559px; top:9px; width:99px; height:17px; ">관리부서 :</caption>
  714. <select1 id="cmb_instcd" ref="/root/send/retrparams/instcd" class="combo_search" navindex="1" appearance="minimal" style="left:100px; top:8px; width:110px; height:19px; ">
  715. <choices>
  716. <itemset>
  717. <label/>
  718. <value/>
  719. </itemset>
  720. </choices>
  721. <script type="javascript" ev:event="xforms-value-changed">
  722. <![CDATA[
  723. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  724. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  725. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  726. if(!b_First)
  727. {
  728. submit("TRRPD00105");
  729. }
  730. ]]>
  731. </script>
  732. </select1>
  733. <caption id="caption7" class="search_name" style="left:10px; top:9px; width:86px; height:17px; ">소속기관 :</caption>
  734. <button id="btn_dutdept" class="icon_search" style="left:727px; top:10px; width:16px; height:16px; ">
  735. <caption/>
  736. <script type="javascript" ev:event="DOMActivate">
  737. <![CDATA[
  738. // misfOpenPopUpList("02", ipt_dutdeptcd, "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  739. misfOpenPopUpList("02", ipt_dutdeptcd,"","dutunitcd,dutunitnm", cmb_instcd.value + "," + ipt_appfromdd.value+"31", "instcd,basedd");
  740. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  741. model.setValue("/root/send/retrparams/dutplcedeptcd", model.getValue("/root/send/retrparams/dutunitcd"));
  742. model.setValue("/root/send/retrparams/flag", "1");
  743. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  744. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  745. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  746. submit("TRRPD00105");
  747. model.refresh();
  748. ]]>
  749. </script>
  750. </button>
  751. <input id="ipt_dutdeptnm" ref="/root/send/retrparams/dutunitnm" class="input_search" style="left:750px; top:8px; width:85px; height:19px; ">
  752. <script type="javascript" ev:event="xforms-value-changed">
  753. <![CDATA[
  754. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  755. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  756. model.setValue("/root/send/retrparams/dutplcedeptcd", model.getValue("/root/send/retrparams/dutunitcd"));
  757. model.setValue("/root/send/retrparams/flag", "1");
  758. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  759. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  760. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  761. submit("TRRPD00105");
  762. model.refresh();
  763. ]]>
  764. </script>
  765. <script type="javascript" ev:event="onkeypress">
  766. <![CDATA[
  767. if(event.keyCode == 13)
  768. {
  769. ipt_dutdeptnm.value = ipt_dutdeptnm.currentText;
  770. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  771. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  772. model.setValue("/root/send/retrparams/dutplcedeptcd", model.getValue("/root/send/retrparams/dutunitcd"));
  773. model.setValue("/root/send/retrparams/flag", "1");
  774. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  775. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  776. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  777. submit("TRRPD00105");
  778. model.refresh();
  779. }
  780. ]]>
  781. </script>
  782. </input>
  783. <input id="ipt_dutdeptcd" ref="/root/send/retrparams/dutunitcd" class="input_search" maxlength="10" style="left:647px; top:8px; width:75px; height:19px; text-align:center; ">
  784. <script type="javascript" ev:event="xforms-value-changed">
  785. <![CDATA[
  786. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  787. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  788. model.setValue("/root/send/retrparams/dutplcedeptcd", model.getValue("/root/send/retrparams/dutunitcd"));
  789. model.setValue("/root/send/retrparams/flag", "1");
  790. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  791. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  792. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  793. submit("TRRPD00105");
  794. model.refresh();
  795. ]]>
  796. </script>
  797. <script type="javascript" ev:event="onkeypress">
  798. <![CDATA[
  799. if(event.keyCode == 13)
  800. {
  801. ipt_dutdeptcd.value = ipt_dutdeptcd.currentText;
  802. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  803. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  804. model.setValue("/root/send/retrparams/dutplcedeptcd", model.getValue("/root/send/retrparams/dutunitcd"));
  805. model.setValue("/root/send/retrparams/flag", "1");
  806. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  807. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  808. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  809. submit("TRRPD00105");
  810. model.refresh();
  811. }
  812. ]]>
  813. </script>
  814. </input>
  815. <select1 id="cmb_dutplce" ref="/root/send/retrparams/dutunitcd" class="combo_search" navindex="4" visibility="visible" appearance="minimal" style="left:648px; top:8px; width:188px; height:19px; ">
  816. <choices>
  817. <itemset>
  818. <label/>
  819. <value/>
  820. </itemset>
  821. </choices>
  822. <script type="javascript" ev:event="xforms-value-changed">
  823. <![CDATA[
  824. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  825. model.setValue("/root/send/retrparams/dutplcedeptcd", cmb_dutplce.value);
  826. model.setValue("/root/send/retrparams/flag", "1");
  827. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  828. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  829. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  830. if(!b_First)
  831. {
  832. submit("TRRPD00105");
  833. }
  834. model.dispatch("onmouseup");
  835. ]]>
  836. </script>
  837. </select1>
  838. <caption id="caption8" style="left:424px; top:8px; width:15px; height:20px; font-weight:bold; text-align:center; vertical-align:middle; ">~</caption>
  839. <input id="ipt_apptodd" ref="/root/send/retrparams/dutym_ee" class="input_s_essential" navindex="3" inputtype="date" style="left:442px; top:8px; width:108px; height:19px; text-align:center; ">
  840. <script type="javascript" ev:event="xforms-value-changed">
  841. <![CDATA[
  842. ipt_dutym_e.value = ipt_apptodd.value;
  843. /*
  844. if(!b_First) {
  845. submit("TRRPD00105");
  846. }
  847. */
  848. ]]>
  849. </script>
  850. </input>
  851. <select1 id="combo1" ref="/root/send/retrparams/deptgb" appearance="minimal" style="left:840px; top:8px; width:100px; height:19px; ">
  852. <choices>
  853. <item>
  854. <label>근무지</label>
  855. <value>1</value>
  856. </item>
  857. <item>
  858. <label>소속부서</label>
  859. <value>2</value>
  860. </item>
  861. <item>
  862. <label>소속과(팀)</label>
  863. <value>3</value>
  864. </item>
  865. <item>
  866. <label>소속부(실)</label>
  867. <value>4</value>
  868. </item>
  869. </choices>
  870. <script type="javascript" ev:event="xforms-value-changed">
  871. <![CDATA[
  872. model.setValue("/root/send/retrparams2/deptgb", model.getValue("/root/send/retrparams/deptgb"));
  873. submit("TRRPD00105");
  874. ]]>
  875. </script>
  876. </select1>
  877. </group>
  878. <caption id="caption9" class="tit_2" style="left:222px; top:79px; width:105px; height:13px; ">특근 신청 내역</caption>
  879. <button id="btn_grdadd" class="btn2_letter3" style="left:1088px; top:73px; width:53px; height:19px; ">
  880. <caption>행추가</caption>
  881. <script type="javascript" ev:event="DOMActivate">
  882. <![CDATA[
  883. if (grd_dutempllist.row < 1){
  884. messageBox("직원을 선택한 후 행추가 하시기 바랍니다.", "E999", "");
  885. return;
  886. }
  887. model.removeNodeset("/root/main/daylist");
  888. fmisfGridIUD(grd_ovtmworkapplist, "A");
  889. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd")) = "";
  890. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptodd")) = "";
  891. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("deprtmangraprvyn")) = "N";
  892. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("earlyattdncyn")) = "N";
  893. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("deprtmangrcouyn")) = "N";
  894. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplceinstcd")) = cmb_instcd.value;
  895. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptcd")) = ipt_dutdeptcd.value;
  896. var irow = grd_ovtmworkapplist.row - grd_ovtmworkapplist.fixedRows + 1;
  897. //alert(grd_dutempllist.row + "==" + irow);
  898. model.setValue("/root/main/list/ovtmworkapplist[" + irow + "]/emplno", model.getValue("/root/main/empl/empllist[" + grd_dutempllist.row + "]/emplno"));
  899. model.setValue("/root/main/list/ovtmworkapplist[" + irow + "]/emplnm", model.getValue("/root/main/empl/empllist[" + grd_dutempllist.row + "]/emplnm"));
  900. grd_ovtmworkapplist.topRow = irow;
  901. model.refresh();
  902. ]]>
  903. </script>
  904. </button>
  905. <button id="btn_grddel" class="btn2_letter3" style="left:1142px; top:73px; width:53px; height:19px; ">
  906. <caption>행삭제</caption>
  907. <script type="javascript" ev:event="DOMActivate">
  908. <![CDATA[
  909. var iRowIdx=grd_ovtmworkapplist.row;
  910. // if (misfCheckDeleteYN(grd_ovtmworkapplist) == "Y")
  911. // {
  912. // // 1 : 초기 insert 한상태, 3 : insert한 Row를 Edit 한경우 3으로 변경됨
  913. // if(grd_ovtmworkapplist.rowstatus(iRowIdx) == 1 || grd_ovtmworkapplist.rowstatus(iRowIdx) == 3)
  914. // {
  915. // grd_ovtmworkapplist.deleteRow(grd_ovtmworkapplist.row, false);
  916. // }
  917. // else
  918. // {
  919. // grd_ovtmworkapplist.addStatus(iRowIdx,"delete");
  920. // }
  921. // }
  922. if(grd_ovtmworkapplist.rowstatus(grd_ovtmworkapplist.row) == 1 || grd_ovtmworkapplist.rowstatus(grd_ovtmworkapplist.row) == 3)
  923. {
  924. grd_ovtmworkapplist.deleteRow(grd_ovtmworkapplist.row, false);
  925. }
  926. else
  927. {
  928. grd_ovtmworkapplist.addStatus(grd_ovtmworkapplist.row,"delete");
  929. }
  930. model.refresh();
  931. ]]>
  932. </script>
  933. </button>
  934. <multilinegrid id="grd_ovtmworkapplist" nodeset="/root/main/list/ovtmworkapplist" caption="사원번호^성명^조출여부^신청시간^신청시간^신청시간^신청시간^신청&#xA;시간&#xA;(분)^휴일^야간^연장^연장^연장^조출150^조정시간^조정시간^조정시간^조정시간^조정&#xA;시간&#xA;(분)^승인여부^조정여부|사원번호^성명^조출여부^From일시^From일시^To일시^To일시^신청&#xA;시간&#xA;(분)^휴일^야간^연장^연장^연장^조출150^From일시^From일시^To일시^To일시^조정&#xA;시간&#xA;(분)^승인여부^조정여부|사원번호^성명^조출여부^신청사유^신청사유^신청사유^신청사유^신청&#xA;시간&#xA;(분)^휴일^야간^150^100^+50^조출150^조정사유^조정사유^조정사유^조정사유^조정&#xA;시간&#xA;(분)^승인여부^조정여부" colsep="^" colwidth="70, 71, 0, 90, 70, 90, 70, 50, 0, 0, 0, 0, 50, 0, 80, 60, 90, 60, 50, 32, 32" rowheader="update" rowsep="|" mergecellsfixedrows="bycolrec" style="left:220px; top:98px; width:973px; height:619px; ">
  935. <row>
  936. <col ref="emplno" rowspan="2" style="text-align:center; "/>
  937. <col imemode="hangul" ref="emplnm" rowspan="2" style="text-align:center; "/>
  938. <col disabled="true" ref="earlyattdncyn" rowspan="2" type="combo" visibility="hidden" style="text-align:center; ">
  939. <choices>
  940. <itemset nodeset="/root/init/combo1">
  941. <label ref="label"/>
  942. <value ref="value"/>
  943. </itemset>
  944. </choices>
  945. </col>
  946. <col ref="appfromdd" type="inputdate" format="yyyy-mm-dd" required="true"/>
  947. <col ref="appfromtm" type="input" format="hh:nn" style="text-align:center; "/>
  948. <col ref="apptodd" type="inputdate" format="yyyy-mm-dd"/>
  949. <col ref="apptotm" type="input" format="hh:nn" style="text-align:center; "/>
  950. <col ref="apptm_v" rowspan="2" type="input" format="hh:nn" style="text-align:center; "/>
  951. <col ref="ovtmworkholibiztm_v" rowspan="2" type="output" visibility="hidden"/>
  952. <col ref="ovtmworknigtbiztm_v" rowspan="2" type="output" visibility="hidden"/>
  953. <col ref="ovtmworkextnbiztm150_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  954. <col ref="ovtmworkextnbiztm100_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  955. <col ref="ovtmworkextnbiztm50_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  956. <col ref="earlyattdnctm150_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  957. <col ref="coufromdd" format="yyyy-mm-dd" required="true" style="height:25; text-align:center; "/>
  958. <col ref="coufromtm" format="hh:nn" style="text-align:center; "/>
  959. <col ref="coutodd" format="yyyy-mm-dd" style="text-align:center; "/>
  960. <col ref="coutotm" format="hh:nn" style="text-align:center; "/>
  961. <col ref="coutm_v" rowspan="2" format="hh:nn" style="text-align:center; "/>
  962. <col ref="deprtmangraprvyn" rowspan="2" style="text-align:center; "/>
  963. <col ref="deprtmangrcouyn" rowspan="2" style="text-align:center; "/>
  964. <col ref="ovtmworkholibiztm" rowspan="2" type="output" visibility="hidden"/>
  965. <col ref="ovtmworknigtbiztm" rowspan="2" type="output" visibility="hidden"/>
  966. <col ref="ovtmworkextnbiztm150" rowspan="2" type="output" visibility="hidden"/>
  967. <col ref="ovtmworkextnbiztm100" rowspan="2" type="output" visibility="hidden"/>
  968. <col ref="ovtmworkextnbiztm50" rowspan="2" type="output" visibility="hidden"/>
  969. <col ref="ovtmworkholibizmm" rowspan="2" type="output" visibility="hidden"/>
  970. <col ref="ovtmworknigtbizmm" rowspan="2" type="output" visibility="hidden"/>
  971. <col ref="ovtmworkextnbizmm150" rowspan="2" type="output" visibility="hidden"/>
  972. <col ref="ovtmworkextnbizmm100" rowspan="2" type="output" visibility="hidden"/>
  973. <col ref="ovtmworkextnbizmm50" rowspan="2" type="output" visibility="hidden"/>
  974. <col ref="earlyattdnctm150" rowspan="2" type="output" visibility="hidden"/>
  975. <col ref="earlyattdncmm150" rowspan="2" type="output" visibility="hidden"/>
  976. <col ref="apptm" rowspan="2" visibility="hidden"/>
  977. <col ref="appmm" rowspan="2" visibility="hidden"/>
  978. <col ref="coutm" rowspan="2" visibility="hidden"/>
  979. <col ref="coumm" rowspan="2" visibility="hidden"/>
  980. <col ref="dutdd" rowspan="2" visibility="hidden"/>
  981. <col ref="instnm" rowspan="2" visibility="hidden"/>
  982. <col ref="instcd" rowspan="2" visibility="hidden"/>
  983. <col ref="dutplceinstnm" rowspan="2" visibility="hidden"/>
  984. <col ref="dutplceinstcd" rowspan="2" visibility="hidden"/>
  985. <col ref="deptcd" rowspan="2" visibility="hidden"/>
  986. <col ref="deptnm" rowspan="2" visibility="hidden"/>
  987. <col ref="dutdeptcd" rowspan="2" visibility="hidden"/>
  988. <col ref="dutdeptnm" rowspan="2" visibility="hidden"/>
  989. <col ref="dutplcedeptnm" rowspan="2" visibility="hidden"/>
  990. <col ref="dutplcedeptcd" rowspan="2" visibility="hidden"/>
  991. </row>
  992. <row>
  993. <col colspan="4" ref="appresn" type="input" maxlength="100"/>
  994. <col colspan="4" ref="couresn"/>
  995. </row>
  996. <script type="javascript" ev:event="onbuttonclick">
  997. <![CDATA[
  998. // if (grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("emplno")) //사원번호 버튼을 눌렀을 때
  999. // {
  1000. // rpbfOpenPopUpList("SPRPB00101", ipt_temp, "emplno,emplnm,dutunitcd,dutunitnm", "", "N");
  1001. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplno")) = model.getValue("/root/main/templist/emplno");
  1002. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplnm")) = model.getValue("/root/main/templist/emplnm");
  1003. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptcd")) = model.getValue("/root/main/templist/dutunitcd");
  1004. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptnm")) = model.getValue("/root/main/templist/dutunitnm");
  1005. // model.refresh();
  1006. // }
  1007. ]]>
  1008. </script>
  1009. <script type="javascript" ev:event="xforms-value-changed">
  1010. <![CDATA[
  1011. fSetDateAndTime();
  1012. if(grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("appfromdd") || grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("appfromtm") ||
  1013. grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("apptodd") || grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("apptotm"))
  1014. {
  1015. var sAppFromDD = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd"));
  1016. var sAppFromTM = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromtm"));
  1017. var sAppToDD = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptodd"));
  1018. var sAppToTM = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptotm"));
  1019. var emplno = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplno"));
  1020. var iFromDDTM = parseFloat(sAppFromDD + sAppFromTM);
  1021. var iToDDTM = parseFloat(sAppToDD + sAppToTM);
  1022. for(var i=3; i<grd_ovtmworkapplist.rows; i++)
  1023. {
  1024. if(grd_ovtmworkapplist.row != i)
  1025. {
  1026. var sFromDD = grd_ovtmworkapplist.valueMatrix(i, grd_ovtmworkapplist.colRef("appfromdd"));
  1027. var sFromTM = grd_ovtmworkapplist.valueMatrix(i, grd_ovtmworkapplist.colRef("appfromtm"));
  1028. var sToDD = grd_ovtmworkapplist.valueMatrix(i, grd_ovtmworkapplist.colRef("apptodd"));
  1029. var sToTM = grd_ovtmworkapplist.valueMatrix(i, grd_ovtmworkapplist.colRef("apptotm"));
  1030. var emplno1 = grd_ovtmworkapplist.valueMatrix(i, grd_ovtmworkapplist.colRef("emplno"));
  1031. var iFrom = parseFloat(sFromDD + sFromTM);
  1032. var iTo = parseFloat(sToDD + sToTM);
  1033. if( (iFromDDTM >= iFrom && iFromDDTM <= iTo && emplno == emplno1) )
  1034. {
  1035. messageBox("[ 신청시작시간 ] 이 다른 근무에 중복 시간대가 존재합니다. \n\n삭제후 새로 등록하시거나 중복된 시간을 수정하세요", "I999");
  1036. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromtm")) = "";
  1037. return;
  1038. }
  1039. if( (iToDDTM >= iFrom && iToDDTM <= iTo && emplno == emplno1) )
  1040. {
  1041. messageBox("[ 신청종료시간 ] 이 다른 근무에 중복 시간대가 존재합니다. \n\n삭제후 새로 등록하시거나 중복된 시간을 수정하세요", "I999");
  1042. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptotm")) = "";
  1043. return;
  1044. }
  1045. }
  1046. }
  1047. }else if (grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("apptm_v")){
  1048. var apptm = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptm_v"));
  1049. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coutm_v")) = apptm;
  1050. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptm")) = apptm.substring(0, 2);
  1051. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appmm")) = apptm.substring(2, 4);
  1052. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coutm")) = apptm.substring(0, 2);
  1053. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coumm")) = apptm.substring(2, 4);
  1054. }
  1055. var iTemp = parseFloat(opt_temp.value);
  1056. opt_temp.value = ++iTemp;
  1057. ]]>
  1058. </script>
  1059. </multilinegrid>
  1060. <datagrid id="grd_dutempllist" nodeset="/root/main/empl/empllist" caption="기관코드^근무부서코드^근무부서^사원번호^성명^직종" colsep="^" colwidth="0, 0, 1, 60, 65, 70" ellipsis="true" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:0px; top:98px; width:214px; height:619px; ">
  1061. <col ref="instcd" visibility="hidden"/>
  1062. <col ref="dutunitcd" visibility="hidden"/>
  1063. <col ref="dutunitnm" visibility="hidden"/>
  1064. <col ref="emplno" style="text-align:center; "/>
  1065. <col ref="emplnm"/>
  1066. <col ref="jobkindnm"/>
  1067. <script type="javascript" ev:event="onrowchanged">
  1068. <![CDATA[
  1069. //model.setValue("/root/send/retrparams/emplno", grd_dutempllist.valueMatrix(grd_dutempllist.row, grd_dutempllist.colRef("emplno")));
  1070. //model.setValue("/root/send/retrparams/emplnm", grd_dutempllist.valueMatrix(grd_dutempllist.row, grd_dutempllist.colRef("emplnm")));
  1071. /*
  1072. model.removeNodeset("/root/main/ovtmworkapplist");
  1073. model.removeNodeset("/root/main/ovtmworkallapplist");
  1074. model.refresh();
  1075. btn_search.dispatch("DOMActivate");
  1076. grd_dutempllist.dispatch("onmouseup");
  1077. */
  1078. ]]>
  1079. </script>
  1080. </datagrid>
  1081. <line id="line2" class="line_1" style="x1:215px; y1:93px; x2:215px; y2:716px; "/>
  1082. <caption id="caption3" class="tit_2" style="left:0px; top:79px; width:142px; height:13px; ">직원목록</caption>
  1083. <datagrid id="grd_daylist" nodeset="/root/main/daylist" visibility="hidden" caption="날짜^휴일구분^요일명" colsep="^" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:665px; width:215px; height:50px; ">
  1084. <col ref="basedd"/>
  1085. <col ref="holiflag"/>
  1086. <col ref="daynm"/>
  1087. </datagrid>
  1088. <button id="btn_allapplist" class="btn2_letter8" visibility="hidden" style="left:978px; top:73px; width:108px; height:19px; ">
  1089. <caption>기 신청내역 보기</caption>
  1090. <script type="javascript" ev:event="DOMActivate">
  1091. <![CDATA[
  1092. if(btn_allapplist.label == "기 신청내역 보기")
  1093. {
  1094. btn_allapplist.attribute("text") = "기 신청내역 닫기";
  1095. grd_ovtmworkapplist.attribute("style") = "left:220px; top:73px; width:973px; height:173px; ";
  1096. grp_allapplist.visible = true;
  1097. }
  1098. else
  1099. {
  1100. btn_allapplist.attribute("text") = "기 신청내역 보기";
  1101. grd_ovtmworkapplist.attribute("style") = "left:220px; top:73px; width:973px; height:644px; ";
  1102. grp_allapplist.visible = false;
  1103. }
  1104. ]]>
  1105. </script>
  1106. </button>
  1107. <group id="grp_allapplist" visibility="hidden" style="left:220px; top:253px; width:974px; height:465px; ">
  1108. <caption id="caption4" class="tit_2" style="left:2px; top:4px; width:142px; height:13px; ">특근 기 신청 내역</caption>
  1109. <line id="line4" class="line_1" style="x1:0px; y1:18px; x2:971px; y2:18px; "/>
  1110. <multilinegrid id="grd_allapplist" nodeset="/root/main/list/ovtmworkallapplist" caption="사원번호^성명^조출&#xA;여부^신청시간^신청시간^신청시간^신청시간^신청&#xA;시간&#xA;(분)^휴일^야간^연장^연장^연장^조출150^조정시간^조정시간^조정시간^조정시간^조정&#xA;시간&#xA;(분)^승인여부^조정여부|사원번호^성명^조출&#xA;여부^From일시^From일시^To일시^To일시^신청&#xA;시간&#xA;(분)^휴일^야간^연장^연장^연장^조출150^From일시^From일시^To일시^To일시^조정&#xA;시간&#xA;(분)^승인여부^조정여부|사원번호^성명^조출&#xA;여부^신청사유^신청사유^신청사유^신청사유^신청&#xA;시간&#xA;(분)^휴일^야간^150^100^+50^조출150^조정사유^조정사유^조정사유^조정사유^조정&#xA;시간&#xA;(분)^승인여부^조정여부" colsep="^" colwidth="70, 71, 35, 90, 70, 90, 70, 50, 0, 0, 0, 0, 0, 0, 80, 60, 90, 60, 50, 32, 32" rowheader="update" rowsep="|" mergecellsfixedrows="bycolrec" style="left:0px; top:23px; width:973px; height:441px; ">
  1111. <row>
  1112. <col ref="emplno" rowspan="2" style="text-align:center; "/>
  1113. <col imemode="hangul" ref="emplnm" rowspan="2" style="text-align:center; "/>
  1114. <col disabled="true" ref="earlyattdncyn" rowspan="2" type="combo" visibility="hidden" style="text-align:center; ">
  1115. <choices>
  1116. <itemset nodeset="/root/init/combo1">
  1117. <label ref="label"/>
  1118. <value ref="value"/>
  1119. </itemset>
  1120. </choices>
  1121. </col>
  1122. <col disabled="true" ref="appfromdd" format="yyyy-mm-dd" required="true"/>
  1123. <col ref="appfromtm" format="hh:nn" style="text-align:center; "/>
  1124. <col disabled="true" ref="apptodd" format="yyyy-mm-dd"/>
  1125. <col ref="apptotm" format="hh:nn" style="text-align:center; "/>
  1126. <col ref="apptm_v" rowspan="2" type="output" style="text-align:center; "/>
  1127. <col ref="ovtmworkholibiztm_v" rowspan="2" type="output" visibility="hidden"/>
  1128. <col ref="ovtmworknigtbiztm_v" rowspan="2" type="output" visibility="hidden"/>
  1129. <col ref="ovtmworkextnbiztm150_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  1130. <col ref="ovtmworkextnbiztm100_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  1131. <col ref="ovtmworkextnbiztm50_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  1132. <col ref="earlyattdnctm150_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  1133. <col ref="coufromdd" format="yyyy-mm-dd" required="true" style="height:25; text-align:center; "/>
  1134. <col ref="coufromtm" format="hh:nn" style="text-align:center; "/>
  1135. <col ref="coutodd" format="yyyy-mm-dd" style="text-align:center; "/>
  1136. <col ref="coutotm" format="hh:nn" style="text-align:center; "/>
  1137. <col ref="coutm_v" rowspan="2" style="text-align:center; "/>
  1138. <col ref="deprtmangraprvyn" rowspan="2" style="text-align:center; "/>
  1139. <col ref="deprtmangrcouyn" rowspan="2" style="text-align:center; "/>
  1140. <col ref="ovtmworkholibiztm" rowspan="2" type="output" visibility="hidden"/>
  1141. <col ref="ovtmworknigtbiztm" rowspan="2" type="output" visibility="hidden"/>
  1142. <col ref="ovtmworkextnbiztm150" rowspan="2" type="output" visibility="hidden"/>
  1143. <col ref="ovtmworkextnbiztm100" rowspan="2" type="output" visibility="hidden"/>
  1144. <col ref="ovtmworkextnbiztm50" rowspan="2" type="output" visibility="hidden"/>
  1145. <col ref="ovtmworkholibizmm" rowspan="2" type="output" visibility="hidden"/>
  1146. <col ref="ovtmworknigtbizmm" rowspan="2" type="output" visibility="hidden"/>
  1147. <col ref="ovtmworkextnbizmm150" rowspan="2" type="output" visibility="hidden"/>
  1148. <col ref="ovtmworkextnbizmm100" rowspan="2" type="output" visibility="hidden"/>
  1149. <col ref="ovtmworkextnbizmm50" rowspan="2" type="output" visibility="hidden"/>
  1150. <col ref="earlyattdnctm150" rowspan="2" type="output" visibility="hidden"/>
  1151. <col ref="earlyattdncmm150" rowspan="2" type="output" visibility="hidden"/>
  1152. <col ref="apptm" rowspan="2" visibility="hidden"/>
  1153. <col ref="appmm" rowspan="2" visibility="hidden"/>
  1154. <col ref="coutm" rowspan="2" visibility="hidden"/>
  1155. <col ref="coumm" rowspan="2" visibility="hidden"/>
  1156. <col ref="dutdd" rowspan="2" visibility="hidden"/>
  1157. <col ref="instnm" rowspan="2" visibility="hidden"/>
  1158. <col ref="instcd" rowspan="2" visibility="hidden"/>
  1159. <col ref="dutplceinstnm" rowspan="2" visibility="hidden"/>
  1160. <col ref="dutplceinstcd" rowspan="2" visibility="hidden"/>
  1161. <col ref="deptcd" rowspan="2" visibility="hidden"/>
  1162. <col ref="deptnm" rowspan="2" visibility="hidden"/>
  1163. <col ref="dutdeptcd" rowspan="2" visibility="hidden"/>
  1164. <col ref="dutdeptnm" rowspan="2" visibility="hidden"/>
  1165. <col ref="dutplcedeptnm" rowspan="2" visibility="hidden"/>
  1166. <col ref="dutplcedeptcd" rowspan="2" visibility="hidden"/>
  1167. </row>
  1168. <row>
  1169. <col colspan="4" ref="appresn" maxlength="100"/>
  1170. <col colspan="4" ref="couresn"/>
  1171. </row>
  1172. </multilinegrid>
  1173. <datagrid id="grd_excelsave" nodeset="/root/main/list/ovtmworkallapplist" visibility="hidden" caption="사원번호^성명^신청기간^신청기간^신청기간^신청기간^신청시간^신청사유|사원번호^성명^From 일시^From 일시^To 일시^To 일시^신청시간^신청사유" colsep="^" colwidth="100, 100, 100, 100, 100, 100, 70, 210" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:325px; width:935px; height:135px; ">
  1174. <col ref="emplno"/>
  1175. <col ref="emplnm"/>
  1176. <col ref="appfromdd" format="yyyy-mm-dd"/>
  1177. <col ref="appfromtm" format="hh:nn"/>
  1178. <col ref="apptodd" format="yyyy-mm-dd"/>
  1179. <col ref="apptotm" format="hh:nn"/>
  1180. <col ref="apptm_v"/>
  1181. <col ref="appresn"/>
  1182. </datagrid>
  1183. </group>
  1184. <button id="button1" class="btn2_letter10" visibility="hidden" style="left:846px; top:73px; width:130px; height:19px; ">
  1185. <caption>기 신청내역 엑셀저장</caption>
  1186. <script type="javascript" ev:event="DOMActivate">
  1187. <![CDATA[
  1188. misfSaveExcel(grd_excelsave);
  1189. ]]>
  1190. </script>
  1191. </button>
  1192. </group>
  1193. <group id="group3" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  1194. <line id="line75" class="line_6" style="x1:0; y1:25; x2:1195; y2:25; "/>
  1195. <button id="btn_save" class="btn4_letter2" style="left:1063px; top:3px; width:56px; height:22px; ">
  1196. <caption>저장</caption>
  1197. <script type="javascript" ev:event="DOMActivate">
  1198. <![CDATA[
  1199. for (var i = 3; i < grd_ovtmworkapplist.rows;i ++){
  1200. if (model.getValue("/root/main/list/ovtmworkapplist[" + (i - 2) + "]/apptm_v").length < 4){
  1201. messageBox(i + "번째 신청시간 입력형태가 잘 못 되었습니다. 예) 07:30", "E999", "");
  1202. return;
  1203. }
  1204. }
  1205. var updtdata = getGridUpdateData(grd_ovtmworkapplist);
  1206. if (updtdata == "")
  1207. {
  1208. messageBox("변경된 데이터가","I004");
  1209. return;
  1210. }
  1211. if(!fsaveCheckValue()) return;
  1212. if(!fsaveCheckNull()) return;
  1213. misfSave("TXRPD00101");
  1214. misfGridInit(grd_daylist);
  1215. model.setValue("/root/send/retrparams/appfrdd", "");
  1216. model.setValue("/root/send/retrparams/apptodd", "");
  1217. grd_ovtmworkapplist.colDisabled (1) = true;
  1218. grd_ovtmworkapplist.colDisabled (3) = true;
  1219. ]]>
  1220. </script>
  1221. </button>
  1222. <button id="btn_clear" class="btn4_letter3" style="left:1120px; top:3px; width:68px; height:22px; ">
  1223. <caption>초기화</caption>
  1224. <script type="javascript" ev:event="DOMActivate">
  1225. <![CDATA[
  1226. var updtdata = getGridUpdateData(grd_ovtmworkapplist);
  1227. if (updtdata != "") {
  1228. var ret = messageBox("그리드에 작업 중인 내용이 있습니다. 초기화 작업을","Q003");
  1229. if (ret != 6) { // not OK
  1230. return;
  1231. }
  1232. }
  1233. fInitialize();
  1234. ]]>
  1235. </script>
  1236. </button>
  1237. <input id="ipt_popworkgbn" ref="/root/send/retrparams/popworkgbn" class="input_search" visibility="hidden" style="left:980px; top:3px; width:20px; height:19px; "/>
  1238. <input id="ipt_temp" ref="/root/main/templist/emplno" class="input_search" visibility="hidden" style="left:900px; top:3px; width:20px; height:19px; ">
  1239. <script type="javascript" ev:event="xforms-value-changed">
  1240. <![CDATA[
  1241. rpbfValidationCheck("EMPLNO", "emplno,emplnm,dutunitcd,dutunitnm");
  1242. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplno")) = model.getValue("/root/main/templist/emplno");
  1243. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplnm")) = model.getValue("/root/main/templist/emplnm");
  1244. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptcd")) = model.getValue("/root/main/templist/dutunitcd");
  1245. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptnm")) = model.getValue("/root/main/templist/dutunitnm");
  1246. model.refresh();
  1247. ]]>
  1248. </script>
  1249. </input>
  1250. <output id="opt_temp" ref="/root/send/retrparams/temp" visibility="hidden" style="left:765px; top:4px; width:85px; height:19px; "/>
  1251. <input id="ipt_temp2" ref="/root/main/templist/emplnm" class="input_search" visibility="hidden" style="left:920px; top:3px; width:20px; height:19px; ">
  1252. <script type="javascript" ev:event="xforms-value-changed">
  1253. <![CDATA[
  1254. rpbfValidationCheck("EMPLNM", "emplno,emplnm,dutunitcd,dutunitnm");
  1255. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplno")) = model.getValue("/root/main/templist/emplno");
  1256. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplnm")) = model.getValue("/root/main/templist/emplnm");
  1257. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptcd")) = model.getValue("/root/main/templist/dutunitcd");
  1258. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptnm")) = model.getValue("/root/main/templist/dutunitnm");
  1259. model.refresh();
  1260. ]]>
  1261. </script>
  1262. </input>
  1263. <input id="ipt_dutym_s" ref="/root/send/retrparams/dutym_s" class="input_search" visibility="hidden" style="left:960px; top:3px; width:20px; height:19px; "/>
  1264. <input id="ipt_instnm" ref="/root/send/retrparams/instnm" class="input_search" visibility="hidden" style="left:1020px; top:3px; width:30px; height:19px; "/>
  1265. <input id="ipt_dutplceinstcd" ref="/root/send/retrparams/dutplceinstcd" class="input_search" visibility="hidden" style="left:1000px; top:3px; width:20px; height:19px; "/>
  1266. <input id="input1" ref="/root/send/retrparams/retrflag" class="input_search" visibility="hidden" style="left:875px; top:5px; width:20px; height:19px; "/>
  1267. <input id="ipt_dutym_e" ref="/root/send/retrparams/dutym_e" class="input_search" visibility="hidden" style="left:825px; top:5px; width:19px; height:19px; "/>
  1268. </group>
  1269. </xhtml:body>
  1270. </xhtml:html>