SMRPD00100_특근신청등록.xrw 68 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481
  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))
  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. if(ipt_emplno.value == "")
  668. {
  669. messageBox("사원번호를 입력하거나 사원 리스트에서 사원번호를 선택하십시오","I999");
  670. return;
  671. }
  672. model.removenode("/root/main/list/ovtmworkapplist");
  673. model.removenode("/root/main/list/ovtmworkallapplist");
  674. //model.removenode("/root/main/list");
  675. model.refresh();
  676. misfMsterDetailRetrieve();
  677. // submit("TRRPD00101");
  678. misfSetReadOnlyCol(grd_ovtmworkapplist, "appfromdd,appfromtm", true);
  679. grd_ovtmworkapplist.colDisabled (1) = true;
  680. grd_ovtmworkapplist.colDisabled (3) = true;
  681. for(var i=3; i<grd_ovtmworkapplist.rows; i++) {
  682. grd_ovtmworkapplist.rowHeight(i) = 23;
  683. }
  684. ]]>
  685. </script>
  686. </button>
  687. <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; ">
  688. <script type="javascript" ev:event="xforms-value-changed">
  689. <![CDATA[
  690. ipt_dutym_s.value=ipt_appfromdd.value;
  691. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  692. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  693. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  694. var instcd = cmb_instcd.value;
  695. if( getStringLength(ipt_appfromdd.value) == "6" ) {
  696. model.removeNodeset(cmb_instcd.attribute("ref"));
  697. model.makeNode("/root/send/retrparams/instcd");
  698. misfComboInstCdListMulti("cmb_instcd",ipt_appfromdd.value+"31","","Y");
  699. cmb_instcd.value = instcd;
  700. model.refresh();
  701. }
  702. /*
  703. if(!b_First) {
  704. submit("TRRPD00105");
  705. }
  706. */
  707. model.refresh();
  708. ]]>
  709. </script>
  710. </input>
  711. <caption id="caption2" class="search_name" style="left:559px; top:9px; width:99px; height:17px; ">관리부서 :</caption>
  712. <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; ">
  713. <choices>
  714. <itemset>
  715. <label/>
  716. <value/>
  717. </itemset>
  718. </choices>
  719. <script type="javascript" ev:event="xforms-value-changed">
  720. <![CDATA[
  721. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  722. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  723. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  724. if(!b_First)
  725. {
  726. submit("TRRPD00105");
  727. }
  728. ]]>
  729. </script>
  730. </select1>
  731. <caption id="caption7" class="search_name" style="left:10px; top:9px; width:86px; height:17px; ">소속기관 :</caption>
  732. <button id="btn_dutdept" class="icon_search" style="left:727px; top:10px; width:16px; height:16px; ">
  733. <caption/>
  734. <script type="javascript" ev:event="DOMActivate">
  735. <![CDATA[
  736. // misfOpenPopUpList("02", ipt_dutdeptcd, "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  737. misfOpenPopUpList("02", ipt_dutdeptcd,"","dutunitcd,dutunitnm", cmb_instcd.value + "," + ipt_appfromdd.value+"31", "instcd,basedd");
  738. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  739. model.setValue("/root/send/retrparams/dutplcedeptcd", model.getValue("/root/send/retrparams/dutunitcd"));
  740. model.setValue("/root/send/retrparams/flag", "1");
  741. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  742. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  743. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  744. submit("TRRPD00105");
  745. model.refresh();
  746. ]]>
  747. </script>
  748. </button>
  749. <input id="ipt_dutdeptnm" ref="/root/send/retrparams/dutunitnm" class="input_search" style="left:750px; top:8px; width:85px; height:19px; ">
  750. <script type="javascript" ev:event="xforms-value-changed">
  751. <![CDATA[
  752. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  753. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  754. model.setValue("/root/send/retrparams/dutplcedeptcd", model.getValue("/root/send/retrparams/dutunitcd"));
  755. model.setValue("/root/send/retrparams/flag", "1");
  756. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  757. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  758. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  759. submit("TRRPD00105");
  760. model.refresh();
  761. ]]>
  762. </script>
  763. <script type="javascript" ev:event="onkeypress">
  764. <![CDATA[
  765. if(event.keyCode == 13)
  766. {
  767. ipt_dutdeptnm.value = ipt_dutdeptnm.currentText;
  768. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  769. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  770. model.setValue("/root/send/retrparams/dutplcedeptcd", model.getValue("/root/send/retrparams/dutunitcd"));
  771. model.setValue("/root/send/retrparams/flag", "1");
  772. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  773. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  774. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  775. submit("TRRPD00105");
  776. model.refresh();
  777. }
  778. ]]>
  779. </script>
  780. </input>
  781. <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; ">
  782. <script type="javascript" ev:event="xforms-value-changed">
  783. <![CDATA[
  784. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  785. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  786. model.setValue("/root/send/retrparams/dutplcedeptcd", model.getValue("/root/send/retrparams/dutunitcd"));
  787. model.setValue("/root/send/retrparams/flag", "1");
  788. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  789. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  790. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  791. submit("TRRPD00105");
  792. model.refresh();
  793. ]]>
  794. </script>
  795. <script type="javascript" ev:event="onkeypress">
  796. <![CDATA[
  797. if(event.keyCode == 13)
  798. {
  799. ipt_dutdeptcd.value = ipt_dutdeptcd.currentText;
  800. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  801. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  802. model.setValue("/root/send/retrparams/dutplcedeptcd", model.getValue("/root/send/retrparams/dutunitcd"));
  803. model.setValue("/root/send/retrparams/flag", "1");
  804. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  805. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  806. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  807. submit("TRRPD00105");
  808. model.refresh();
  809. }
  810. ]]>
  811. </script>
  812. </input>
  813. <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; ">
  814. <choices>
  815. <itemset>
  816. <label/>
  817. <value/>
  818. </itemset>
  819. </choices>
  820. <script type="javascript" ev:event="xforms-value-changed">
  821. <![CDATA[
  822. model.setValue("/root/send/retrparams/appdd", model.getValue("/root/send/retrparams/dutym"));
  823. model.setValue("/root/send/retrparams/dutplcedeptcd", cmb_dutplce.value);
  824. model.setValue("/root/send/retrparams/flag", "1");
  825. model.setValue("/root/send/retrparams2/instcd", model.getValue("/root/send/retrparams/instcd"));
  826. model.setValue("/root/send/retrparams2/dutunitcd", model.getValue("/root/send/retrparams/dutunitcd"));
  827. model.setValue("/root/send/retrparams2/dutym", model.getValue("/root/send/retrparams/dutym"));
  828. if(!b_First)
  829. {
  830. submit("TRRPD00105");
  831. }
  832. model.dispatch("onmouseup");
  833. ]]>
  834. </script>
  835. </select1>
  836. <caption id="caption8" style="left:424px; top:8px; width:15px; height:20px; font-weight:bold; text-align:center; vertical-align:middle; ">~</caption>
  837. <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; ">
  838. <script type="javascript" ev:event="xforms-value-changed">
  839. <![CDATA[
  840. ipt_dutym_e.value = ipt_apptodd.value;
  841. /*
  842. if(!b_First) {
  843. submit("TRRPD00105");
  844. }
  845. */
  846. ]]>
  847. </script>
  848. </input>
  849. <select1 id="combo1" ref="/root/send/retrparams/deptgb" appearance="minimal" style="left:840px; top:8px; width:100px; height:19px; ">
  850. <choices>
  851. <item>
  852. <label>근무지</label>
  853. <value>1</value>
  854. </item>
  855. <item>
  856. <label>소속부서</label>
  857. <value>2</value>
  858. </item>
  859. <item>
  860. <label>소속과(팀)</label>
  861. <value>3</value>
  862. </item>
  863. <item>
  864. <label>소속부(실)</label>
  865. <value>4</value>
  866. </item>
  867. </choices>
  868. <script type="javascript" ev:event="xforms-value-changed">
  869. <![CDATA[
  870. model.setValue("/root/send/retrparams2/deptgb", model.getValue("/root/send/retrparams/deptgb"));
  871. submit("TRRPD00105");
  872. ]]>
  873. </script>
  874. </select1>
  875. </group>
  876. <caption id="caption9" class="tit_2" style="left:222px; top:79px; width:105px; height:13px; ">특근 신청 내역</caption>
  877. <button id="btn_grdadd" class="btn2_letter3" style="left:1088px; top:73px; width:53px; height:19px; ">
  878. <caption>행추가</caption>
  879. <script type="javascript" ev:event="DOMActivate">
  880. <![CDATA[
  881. model.removeNodeset("/root/main/daylist");
  882. fmisfGridIUD(grd_ovtmworkapplist, "A");
  883. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd")) = "";
  884. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptodd")) = "";
  885. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("deprtmangraprvyn")) = "N";
  886. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("earlyattdncyn")) = "N";
  887. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("deprtmangrcouyn")) = "N";
  888. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplceinstcd")) = cmb_instcd.value;
  889. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptcd")) = ipt_dutdeptcd.value;
  890. ]]>
  891. </script>
  892. </button>
  893. <button id="btn_grddel" class="btn2_letter3" style="left:1142px; top:73px; width:53px; height:19px; ">
  894. <caption>행삭제</caption>
  895. <script type="javascript" ev:event="DOMActivate">
  896. <![CDATA[
  897. var iRowIdx=grd_ovtmworkapplist.row;
  898. // if (misfCheckDeleteYN(grd_ovtmworkapplist) == "Y")
  899. // {
  900. // // 1 : 초기 insert 한상태, 3 : insert한 Row를 Edit 한경우 3으로 변경됨
  901. // if(grd_ovtmworkapplist.rowstatus(iRowIdx) == 1 || grd_ovtmworkapplist.rowstatus(iRowIdx) == 3)
  902. // {
  903. // grd_ovtmworkapplist.deleteRow(grd_ovtmworkapplist.row, false);
  904. // }
  905. // else
  906. // {
  907. // grd_ovtmworkapplist.addStatus(iRowIdx,"delete");
  908. // }
  909. // }
  910. if(grd_ovtmworkapplist.rowstatus(grd_ovtmworkapplist.row) == 1 || grd_ovtmworkapplist.rowstatus(grd_ovtmworkapplist.row) == 3)
  911. {
  912. grd_ovtmworkapplist.deleteRow(grd_ovtmworkapplist.row, false);
  913. }
  914. else
  915. {
  916. grd_ovtmworkapplist.addStatus(grd_ovtmworkapplist.row,"delete");
  917. }
  918. model.refresh();
  919. ]]>
  920. </script>
  921. </button>
  922. <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; ">
  923. <row>
  924. <col ref="emplno" rowspan="2" style="text-align:center; "/>
  925. <col imemode="hangul" ref="emplnm" rowspan="2" style="text-align:center; "/>
  926. <col disabled="true" ref="earlyattdncyn" rowspan="2" type="combo" visibility="hidden" style="text-align:center; ">
  927. <choices>
  928. <itemset nodeset="/root/init/combo1">
  929. <label ref="label"/>
  930. <value ref="value"/>
  931. </itemset>
  932. </choices>
  933. </col>
  934. <col ref="appfromdd" type="inputdate" format="yyyy-mm-dd" required="true"/>
  935. <col ref="appfromtm" type="input" format="hh:nn" style="text-align:center; "/>
  936. <col ref="apptodd" type="inputdate" format="yyyy-mm-dd"/>
  937. <col ref="apptotm" type="input" format="hh:nn" style="text-align:center; "/>
  938. <col ref="apptm_v" rowspan="2" type="input" format="hh:nn" style="text-align:center; "/>
  939. <col ref="ovtmworkholibiztm_v" rowspan="2" type="output" visibility="hidden"/>
  940. <col ref="ovtmworknigtbiztm_v" rowspan="2" type="output" visibility="hidden"/>
  941. <col ref="ovtmworkextnbiztm150_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  942. <col ref="ovtmworkextnbiztm100_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  943. <col ref="ovtmworkextnbiztm50_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  944. <col ref="earlyattdnctm150_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  945. <col ref="coufromdd" format="yyyy-mm-dd" required="true" style="height:25; text-align:center; "/>
  946. <col ref="coufromtm" format="hh:nn" style="text-align:center; "/>
  947. <col ref="coutodd" format="yyyy-mm-dd" style="text-align:center; "/>
  948. <col ref="coutotm" format="hh:nn" style="text-align:center; "/>
  949. <col ref="coutm_v" rowspan="2" format="hh:nn" style="text-align:center; "/>
  950. <col ref="deprtmangraprvyn" rowspan="2" style="text-align:center; "/>
  951. <col ref="deprtmangrcouyn" rowspan="2" style="text-align:center; "/>
  952. <col ref="ovtmworkholibiztm" rowspan="2" type="output" visibility="hidden"/>
  953. <col ref="ovtmworknigtbiztm" rowspan="2" type="output" visibility="hidden"/>
  954. <col ref="ovtmworkextnbiztm150" rowspan="2" type="output" visibility="hidden"/>
  955. <col ref="ovtmworkextnbiztm100" rowspan="2" type="output" visibility="hidden"/>
  956. <col ref="ovtmworkextnbiztm50" rowspan="2" type="output" visibility="hidden"/>
  957. <col ref="ovtmworkholibizmm" rowspan="2" type="output" visibility="hidden"/>
  958. <col ref="ovtmworknigtbizmm" rowspan="2" type="output" visibility="hidden"/>
  959. <col ref="ovtmworkextnbizmm150" rowspan="2" type="output" visibility="hidden"/>
  960. <col ref="ovtmworkextnbizmm100" rowspan="2" type="output" visibility="hidden"/>
  961. <col ref="ovtmworkextnbizmm50" rowspan="2" type="output" visibility="hidden"/>
  962. <col ref="earlyattdnctm150" rowspan="2" type="output" visibility="hidden"/>
  963. <col ref="earlyattdncmm150" rowspan="2" type="output" visibility="hidden"/>
  964. <col ref="apptm" rowspan="2" visibility="hidden"/>
  965. <col ref="appmm" rowspan="2" visibility="hidden"/>
  966. <col ref="coutm" rowspan="2" visibility="hidden"/>
  967. <col ref="coumm" rowspan="2" visibility="hidden"/>
  968. <col ref="dutdd" rowspan="2" visibility="hidden"/>
  969. <col ref="instnm" rowspan="2" visibility="hidden"/>
  970. <col ref="instcd" rowspan="2" visibility="hidden"/>
  971. <col ref="dutplceinstnm" rowspan="2" visibility="hidden"/>
  972. <col ref="dutplceinstcd" rowspan="2" visibility="hidden"/>
  973. <col ref="deptcd" rowspan="2" visibility="hidden"/>
  974. <col ref="deptnm" rowspan="2" visibility="hidden"/>
  975. <col ref="dutdeptcd" rowspan="2" visibility="hidden"/>
  976. <col ref="dutdeptnm" rowspan="2" visibility="hidden"/>
  977. <col ref="dutplcedeptnm" rowspan="2" visibility="hidden"/>
  978. <col ref="dutplcedeptcd" rowspan="2" visibility="hidden"/>
  979. </row>
  980. <row>
  981. <col colspan="4" ref="appresn" type="input" maxlength="100"/>
  982. <col colspan="4" ref="couresn"/>
  983. </row>
  984. <script type="javascript" ev:event="onbuttonclick">
  985. <![CDATA[
  986. // if (grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("emplno")) //사원번호 버튼을 눌렀을 때
  987. // {
  988. // rpbfOpenPopUpList("SPRPB00101", ipt_temp, "emplno,emplnm,dutunitcd,dutunitnm", "", "N");
  989. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplno")) = model.getValue("/root/main/templist/emplno");
  990. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplnm")) = model.getValue("/root/main/templist/emplnm");
  991. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptcd")) = model.getValue("/root/main/templist/dutunitcd");
  992. // grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptnm")) = model.getValue("/root/main/templist/dutunitnm");
  993. // model.refresh();
  994. // }
  995. ]]>
  996. </script>
  997. <script type="javascript" ev:event="xforms-value-changed">
  998. <![CDATA[
  999. fSetDateAndTime();
  1000. if(grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("appfromdd") || grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("appfromtm") ||
  1001. grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("apptodd") || grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("apptotm"))
  1002. {
  1003. var sAppFromDD = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromdd"));
  1004. var sAppFromTM = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromtm"));
  1005. var sAppToDD = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptodd"));
  1006. var sAppToTM = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptotm"));
  1007. var iFromDDTM = parseFloat(sAppFromDD + sAppFromTM);
  1008. var iToDDTM = parseFloat(sAppToDD + sAppToTM);
  1009. for(var i=3; i<grd_ovtmworkapplist.rows; i++)
  1010. {
  1011. if(grd_ovtmworkapplist.row != i)
  1012. {
  1013. var sFromDD = grd_ovtmworkapplist.valueMatrix(i, grd_ovtmworkapplist.colRef("appfromdd"));
  1014. var sFromTM = grd_ovtmworkapplist.valueMatrix(i, grd_ovtmworkapplist.colRef("appfromtm"));
  1015. var sToDD = grd_ovtmworkapplist.valueMatrix(i, grd_ovtmworkapplist.colRef("apptodd"));
  1016. var sToTM = grd_ovtmworkapplist.valueMatrix(i, grd_ovtmworkapplist.colRef("apptotm"));
  1017. var iFrom = parseFloat(sFromDD + sFromTM);
  1018. var iTo = parseFloat(sToDD + sToTM);
  1019. if( (iFromDDTM >= iFrom && iFromDDTM <= iTo) )
  1020. {
  1021. messageBox("[ 신청시작시간 ] 이 다른 근무에 중복 시간대가 존재합니다. \n\n삭제후 새로 등록하시거나 중복된 시간을 수정하세요", "I999");
  1022. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appfromtm")) = "";
  1023. return;
  1024. }
  1025. if( (iToDDTM >= iFrom && iToDDTM <= iTo) )
  1026. {
  1027. messageBox("[ 신청종료시간 ] 이 다른 근무에 중복 시간대가 존재합니다. \n\n삭제후 새로 등록하시거나 중복된 시간을 수정하세요", "I999");
  1028. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptotm")) = "";
  1029. return;
  1030. }
  1031. }
  1032. }
  1033. }else if (grd_ovtmworkapplist.col == grd_ovtmworkapplist.colRef("apptm_v")){
  1034. var apptm = grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptm_v"));
  1035. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coutm_v")) = apptm;
  1036. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("apptm")) = apptm.substring(0, 2);
  1037. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("appmm")) = apptm.substring(2, 4);
  1038. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coutm")) = apptm.substring(0, 2);
  1039. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("coumm")) = apptm.substring(2, 4);
  1040. }
  1041. var iTemp = parseFloat(opt_temp.value);
  1042. opt_temp.value = ++iTemp;
  1043. ]]>
  1044. </script>
  1045. </multilinegrid>
  1046. <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; ">
  1047. <col ref="instcd" visibility="hidden"/>
  1048. <col ref="dutunitcd" visibility="hidden"/>
  1049. <col ref="dutunitnm" visibility="hidden"/>
  1050. <col ref="emplno" style="text-align:center; "/>
  1051. <col ref="emplnm"/>
  1052. <col ref="jobkindnm"/>
  1053. <script type="javascript" ev:event="onrowchanged">
  1054. <![CDATA[
  1055. model.setValue("/root/send/retrparams/emplno", grd_dutempllist.valueMatrix(grd_dutempllist.row, grd_dutempllist.colRef("emplno")));
  1056. model.setValue("/root/send/retrparams/emplnm", grd_dutempllist.valueMatrix(grd_dutempllist.row, grd_dutempllist.colRef("emplnm")));
  1057. model.removeNodeset("/root/main/ovtmworkapplist");
  1058. model.removeNodeset("/root/main/ovtmworkallapplist");
  1059. model.refresh();
  1060. btn_search.dispatch("DOMActivate");
  1061. grd_dutempllist.dispatch("onmouseup");
  1062. ]]>
  1063. </script>
  1064. </datagrid>
  1065. <line id="line2" class="line_1" style="x1:215px; y1:93px; x2:215px; y2:716px; "/>
  1066. <caption id="caption3" class="tit_2" style="left:0px; top:79px; width:142px; height:13px; ">직원목록</caption>
  1067. <datagrid id="grd_daylist" nodeset="/root/main/daylist" visibility="hidden" caption="날짜^휴일구분^요일명" colsep="^" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:665px; width:215px; height:50px; ">
  1068. <col ref="basedd"/>
  1069. <col ref="holiflag"/>
  1070. <col ref="daynm"/>
  1071. </datagrid>
  1072. <button id="btn_allapplist" class="btn2_letter8" style="left:978px; top:73px; width:108px; height:19px; ">
  1073. <caption>기 신청내역 보기</caption>
  1074. <script type="javascript" ev:event="DOMActivate">
  1075. <![CDATA[
  1076. if(btn_allapplist.label == "기 신청내역 보기")
  1077. {
  1078. btn_allapplist.attribute("text") = "기 신청내역 닫기";
  1079. grd_ovtmworkapplist.attribute("style") = "left:220px; top:73px; width:973px; height:173px; ";
  1080. grp_allapplist.visible = true;
  1081. }
  1082. else
  1083. {
  1084. btn_allapplist.attribute("text") = "기 신청내역 보기";
  1085. grd_ovtmworkapplist.attribute("style") = "left:220px; top:73px; width:973px; height:644px; ";
  1086. grp_allapplist.visible = false;
  1087. }
  1088. ]]>
  1089. </script>
  1090. </button>
  1091. <group id="grp_allapplist" visibility="hidden" style="left:220px; top:253px; width:974px; height:465px; ">
  1092. <caption id="caption4" class="tit_2" style="left:2px; top:4px; width:142px; height:13px; ">특근 기 신청 내역</caption>
  1093. <line id="line4" class="line_1" style="x1:0px; y1:18px; x2:971px; y2:18px; "/>
  1094. <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; ">
  1095. <row>
  1096. <col ref="emplno" rowspan="2" style="text-align:center; "/>
  1097. <col imemode="hangul" ref="emplnm" rowspan="2" style="text-align:center; "/>
  1098. <col disabled="true" ref="earlyattdncyn" rowspan="2" type="combo" visibility="hidden" style="text-align:center; ">
  1099. <choices>
  1100. <itemset nodeset="/root/init/combo1">
  1101. <label ref="label"/>
  1102. <value ref="value"/>
  1103. </itemset>
  1104. </choices>
  1105. </col>
  1106. <col disabled="true" ref="appfromdd" format="yyyy-mm-dd" required="true"/>
  1107. <col ref="appfromtm" format="hh:nn" style="text-align:center; "/>
  1108. <col disabled="true" ref="apptodd" format="yyyy-mm-dd"/>
  1109. <col ref="apptotm" format="hh:nn" style="text-align:center; "/>
  1110. <col ref="apptm_v" rowspan="2" type="output" style="text-align:center; "/>
  1111. <col ref="ovtmworkholibiztm_v" rowspan="2" type="output" visibility="hidden"/>
  1112. <col ref="ovtmworknigtbiztm_v" rowspan="2" type="output" visibility="hidden"/>
  1113. <col ref="ovtmworkextnbiztm150_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  1114. <col ref="ovtmworkextnbiztm100_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  1115. <col ref="ovtmworkextnbiztm50_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  1116. <col ref="earlyattdnctm150_v" rowspan="2" type="output" visibility="hidden" style="text-align:center; "/>
  1117. <col ref="coufromdd" format="yyyy-mm-dd" required="true" style="height:25; text-align:center; "/>
  1118. <col ref="coufromtm" format="hh:nn" style="text-align:center; "/>
  1119. <col ref="coutodd" format="yyyy-mm-dd" style="text-align:center; "/>
  1120. <col ref="coutotm" format="hh:nn" style="text-align:center; "/>
  1121. <col ref="coutm_v" rowspan="2" style="text-align:center; "/>
  1122. <col ref="deprtmangraprvyn" rowspan="2" style="text-align:center; "/>
  1123. <col ref="deprtmangrcouyn" rowspan="2" style="text-align:center; "/>
  1124. <col ref="ovtmworkholibiztm" rowspan="2" type="output" visibility="hidden"/>
  1125. <col ref="ovtmworknigtbiztm" rowspan="2" type="output" visibility="hidden"/>
  1126. <col ref="ovtmworkextnbiztm150" rowspan="2" type="output" visibility="hidden"/>
  1127. <col ref="ovtmworkextnbiztm100" rowspan="2" type="output" visibility="hidden"/>
  1128. <col ref="ovtmworkextnbiztm50" rowspan="2" type="output" visibility="hidden"/>
  1129. <col ref="ovtmworkholibizmm" rowspan="2" type="output" visibility="hidden"/>
  1130. <col ref="ovtmworknigtbizmm" rowspan="2" type="output" visibility="hidden"/>
  1131. <col ref="ovtmworkextnbizmm150" rowspan="2" type="output" visibility="hidden"/>
  1132. <col ref="ovtmworkextnbizmm100" rowspan="2" type="output" visibility="hidden"/>
  1133. <col ref="ovtmworkextnbizmm50" rowspan="2" type="output" visibility="hidden"/>
  1134. <col ref="earlyattdnctm150" rowspan="2" type="output" visibility="hidden"/>
  1135. <col ref="earlyattdncmm150" rowspan="2" type="output" visibility="hidden"/>
  1136. <col ref="apptm" rowspan="2" visibility="hidden"/>
  1137. <col ref="appmm" rowspan="2" visibility="hidden"/>
  1138. <col ref="coutm" rowspan="2" visibility="hidden"/>
  1139. <col ref="coumm" rowspan="2" visibility="hidden"/>
  1140. <col ref="dutdd" rowspan="2" visibility="hidden"/>
  1141. <col ref="instnm" rowspan="2" visibility="hidden"/>
  1142. <col ref="instcd" rowspan="2" visibility="hidden"/>
  1143. <col ref="dutplceinstnm" rowspan="2" visibility="hidden"/>
  1144. <col ref="dutplceinstcd" rowspan="2" visibility="hidden"/>
  1145. <col ref="deptcd" rowspan="2" visibility="hidden"/>
  1146. <col ref="deptnm" rowspan="2" visibility="hidden"/>
  1147. <col ref="dutdeptcd" rowspan="2" visibility="hidden"/>
  1148. <col ref="dutdeptnm" rowspan="2" visibility="hidden"/>
  1149. <col ref="dutplcedeptnm" rowspan="2" visibility="hidden"/>
  1150. <col ref="dutplcedeptcd" rowspan="2" visibility="hidden"/>
  1151. </row>
  1152. <row>
  1153. <col colspan="4" ref="appresn" maxlength="100"/>
  1154. <col colspan="4" ref="couresn"/>
  1155. </row>
  1156. </multilinegrid>
  1157. <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; ">
  1158. <col ref="emplno"/>
  1159. <col ref="emplnm"/>
  1160. <col ref="appfromdd" format="yyyy-mm-dd"/>
  1161. <col ref="appfromtm" format="hh:nn"/>
  1162. <col ref="apptodd" format="yyyy-mm-dd"/>
  1163. <col ref="apptotm" format="hh:nn"/>
  1164. <col ref="apptm_v"/>
  1165. <col ref="appresn"/>
  1166. </datagrid>
  1167. </group>
  1168. <button id="button1" class="btn2_letter10" style="left:846px; top:73px; width:130px; height:19px; ">
  1169. <caption>기 신청내역 엑셀저장</caption>
  1170. <script type="javascript" ev:event="DOMActivate">
  1171. <![CDATA[
  1172. misfSaveExcel(grd_excelsave);
  1173. ]]>
  1174. </script>
  1175. </button>
  1176. </group>
  1177. <group id="group3" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  1178. <line id="line75" class="line_6" style="x1:0; y1:25; x2:1195; y2:25; "/>
  1179. <button id="btn_save" class="btn4_letter2" style="left:1063px; top:3px; width:56px; height:22px; ">
  1180. <caption>저장</caption>
  1181. <script type="javascript" ev:event="DOMActivate">
  1182. <![CDATA[
  1183. for (var i = 3; i < grd_ovtmworkapplist.rows;i ++){
  1184. if (model.getValue("/root/main/list/ovtmworkapplist[" + (i - 2) + "]/apptm_v").length < 4){
  1185. messageBox(i + "번째 신청시간 입력형태가 잘 못 되었습니다. 예) 07:30", "E999", "");
  1186. return;
  1187. }
  1188. }
  1189. var updtdata = getGridUpdateData(grd_ovtmworkapplist);
  1190. if (updtdata == "")
  1191. {
  1192. messageBox("변경된 데이터가","I004");
  1193. return;
  1194. }
  1195. if(!fsaveCheckValue()) return;
  1196. if(!fsaveCheckNull()) return;
  1197. misfSave("TXRPD00101");
  1198. misfGridInit(grd_daylist);
  1199. model.setValue("/root/send/retrparams/appfrdd", "");
  1200. model.setValue("/root/send/retrparams/apptodd", "");
  1201. grd_ovtmworkapplist.colDisabled (1) = true;
  1202. grd_ovtmworkapplist.colDisabled (3) = true;
  1203. ]]>
  1204. </script>
  1205. </button>
  1206. <button id="btn_clear" class="btn4_letter3" style="left:1120px; top:3px; width:68px; height:22px; ">
  1207. <caption>초기화</caption>
  1208. <script type="javascript" ev:event="DOMActivate">
  1209. <![CDATA[
  1210. var updtdata = getGridUpdateData(grd_ovtmworkapplist);
  1211. if (updtdata != "") {
  1212. var ret = messageBox("그리드에 작업 중인 내용이 있습니다. 초기화 작업을","Q003");
  1213. if (ret != 6) { // not OK
  1214. return;
  1215. }
  1216. }
  1217. fInitialize();
  1218. ]]>
  1219. </script>
  1220. </button>
  1221. <input id="ipt_popworkgbn" ref="/root/send/retrparams/popworkgbn" class="input_search" visibility="hidden" style="left:980px; top:3px; width:20px; height:19px; "/>
  1222. <input id="ipt_temp" ref="/root/main/templist/emplno" class="input_search" visibility="hidden" style="left:900px; top:3px; width:20px; height:19px; ">
  1223. <script type="javascript" ev:event="xforms-value-changed">
  1224. <![CDATA[
  1225. rpbfValidationCheck("EMPLNO", "emplno,emplnm,dutunitcd,dutunitnm");
  1226. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplno")) = model.getValue("/root/main/templist/emplno");
  1227. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplnm")) = model.getValue("/root/main/templist/emplnm");
  1228. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptcd")) = model.getValue("/root/main/templist/dutunitcd");
  1229. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptnm")) = model.getValue("/root/main/templist/dutunitnm");
  1230. model.refresh();
  1231. ]]>
  1232. </script>
  1233. </input>
  1234. <output id="opt_temp" ref="/root/send/retrparams/temp" visibility="hidden" style="left:765px; top:4px; width:85px; height:19px; "/>
  1235. <input id="ipt_temp2" ref="/root/main/templist/emplnm" class="input_search" visibility="hidden" style="left:920px; top:3px; width:20px; height:19px; ">
  1236. <script type="javascript" ev:event="xforms-value-changed">
  1237. <![CDATA[
  1238. rpbfValidationCheck("EMPLNM", "emplno,emplnm,dutunitcd,dutunitnm");
  1239. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplno")) = model.getValue("/root/main/templist/emplno");
  1240. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplnm")) = model.getValue("/root/main/templist/emplnm");
  1241. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptcd")) = model.getValue("/root/main/templist/dutunitcd");
  1242. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptnm")) = model.getValue("/root/main/templist/dutunitnm");
  1243. model.refresh();
  1244. ]]>
  1245. </script>
  1246. </input>
  1247. <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; "/>
  1248. <input id="ipt_instnm" ref="/root/send/retrparams/instnm" class="input_search" visibility="hidden" style="left:1020px; top:3px; width:30px; height:19px; "/>
  1249. <input id="ipt_dutplceinstcd" ref="/root/send/retrparams/dutplceinstcd" class="input_search" visibility="hidden" style="left:1000px; top:3px; width:20px; height:19px; "/>
  1250. <input id="input1" ref="/root/send/retrparams/retrflag" class="input_search" visibility="hidden" style="left:875px; top:5px; width:20px; height:19px; "/>
  1251. <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; "/>
  1252. </group>
  1253. </xhtml:body>
  1254. </xhtml:html>