SMRPD10100_개인근무변경신청승인.xrw 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435
  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. <list>
  11. <chngapplist/>
  12. </list>
  13. </main>
  14. <send>
  15. <retrparams>
  16. <instcd/>
  17. <frdutymd/>
  18. <todutymd/>
  19. <dutunitcd/>
  20. <dutunitnm/>
  21. <emplno/>
  22. <emplnm/>
  23. <cnfmyn>N</cnfmyn>
  24. </retrparams>
  25. </send>
  26. <init/>
  27. <temp/>
  28. <tempday>
  29. <dutinfo/>
  30. </tempday>
  31. </root>
  32. </instance>
  33. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  34. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  35. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  36. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  37. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  38. <script type="javascript" src="../../../mis/dligclaznsmngtweb/js/RPD001.js"/>
  39. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  40. <script type="javascript" ev:event="xforms-ready">
  41. <![CDATA[
  42. fInit();
  43. ]]>
  44. </script>
  45. <script type="javascript">
  46. <![CDATA[
  47. var ALL_CHECKED = false;
  48. function fInit()
  49. {
  50. model.removenode("/root/main/list/chngapplist");
  51. misfMsterDetailSet(grd_chngapplist, null, "TRRPD10101", "Y");
  52. // misfComboComCdListMulti("Z0007","cmb_instcd");
  53. misfComboInstCdListMulti("cmb_instcd",ipt_frdutymd.value,"","N");
  54. misfGetAndSetUserInfo();
  55. misfGetUserAuth();
  56. rpdfSetControlAuth();
  57. rpdfComboCdList(cmb_dutplce); // 권한별 근무부서 세팅
  58. rpdfSetDutUnitCombo();
  59. fSetDate();
  60. model.setValue("/root/send/retrparams/instcd", getUserInfo("dutplceinstcd"));
  61. model.setValue("/root/send/retrparams/dutunitcd", DUT_UNIT_CD);
  62. model.setValue("/root/send/retrparams/dutunitnm", DUT_UNIT_NM);
  63. // model.setValue("/root/send/retrparams/emplno", getUserInfo("userid"));
  64. // model.setValue("/root/send/retrparams/emplnm", getUserInfo("usernm"));
  65. //화면 권한 설정
  66. btn_search.disabled = !(checkAuth("R"));
  67. btn_save.disabled = !(checkAuth("X"));
  68. model.refresh();
  69. if (cmb_dutplce.value == "")
  70. {
  71. cmb_dutplce.select(0);
  72. }
  73. }
  74. function fSetDate()
  75. {
  76. var dt = new Date();
  77. var lastdt = new Date(dt.getYear(), dt.getMonth()+1, 0);
  78. //ipt_frdutymd.value = getCurrentDate().substr(0, 6) + "01";
  79. //ipt_todutymd.value = getCurrentDate().substr(0, 6) + lastdt.getDate();
  80. submit("TRRPD10102", false);
  81. ipt_frdutymd.value = model.getValue("/root/tempday/dutinfo/dutlist/fromymd");
  82. ipt_todutymd.value = model.getValue("/root/tempday/dutinfo/dutlist/toymd");
  83. model.refresh();
  84. }
  85. function fSave()
  86. {
  87. if (misfSave("TXRPD10001")){
  88. btn_search.dispatch("DOMActivate");
  89. }
  90. }
  91. function fAddRow()
  92. {
  93. misfGridIUD(grd_chngapplist, "A");
  94. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("emplno")) = ipt_emplno.value;
  95. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("emplnm")) = ipt_emplnm.value;
  96. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("appymd")) = getCurrentDate();
  97. }
  98. ]]>
  99. </script>
  100. <submission id="TXRPD10001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/list/chngapplist" resultref="/root/temp"/>
  101. <submission id="TRRPD10101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="/root/main/list"/>
  102. <submission id="TRRPD10102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="/root/tempday/dutinfo"/>
  103. </model>
  104. </xhtml:head>
  105. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  106. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  107. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:230px; height:14px; ">개인근무변경신청승인</caption>
  108. <caption id="caption4" class="patient_text_black" style="left:922px; top:0px; width:272px; "/>
  109. </group>
  110. <group id="group3" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  111. <datagrid id="grd_chngapplist" nodeset="/root/main/list/chngapplist" caption="승인^승인 temp^근무무서^기관코드^사원번호^성명^근무일자^변경전 근무코드^변경후 근무코드^신청일^신청사유^caption1^caption2^밤근무월제한일수" colsep="^" colwidth="42, 0, 0, 0, 98, 100, 140, 105, 105, 140, 420, 100, 100" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" style="left:0px; top:94px; width:1195px; height:640px; ">
  112. <col checkvalue="Y,N" ref="cnfm" type="checkbox"/>
  113. <col ref="cnfmtemp" visibility="hidden"/>
  114. <col ref="dutunitcd" visibility="hidden"/>
  115. <col ref="instcd" visibility="hidden"/>
  116. <col ref="emplno" style="text-align:center; "/>
  117. <col ref="emplnm"/>
  118. <col ref="dutdd" format="yyyy-mm-dd" style="text-align:center; "/>
  119. <col ref="beforedutcd" style="text-align:center; "/>
  120. <col ref="afterdutcd" style="text-align:center; "/>
  121. <col ref="appdd" format="yyyy-mm-dd" style="text-align:center; "/>
  122. <col ref="appresn"/>
  123. <col ref="dutym" visibility="hidden"/>
  124. <col ref="daycnt" visibility="hidden"/>
  125. <script type="javascript" ev:event="xforms-value-changed">
  126. <![CDATA[
  127. if(grd_chngapplist.col == grd_chngapplist.colRef("dutdd"))
  128. {
  129. model.setValue("/root/send/retrparams2/dutymd", grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("dutdd")));
  130. model.setValue("/root/send/retrparams2/emplno", grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("emplno")));
  131. submit("TRRPD10002");
  132. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("beforedutcd")) = model.getValue("/root/temp/pridutcd/dutcd");
  133. }
  134. ]]>
  135. </script>
  136. <script type="javascript" ev:event="onclick">
  137. <![CDATA[
  138. if(grd_chngapplist.col == grd_chngapplist.colRef("cnfm") && grd_chngapplist.row < grd_chngapplist.fixedRows)
  139. {
  140. if(ALL_CHECKED)
  141. {
  142. ALL_CHECKED = false;
  143. for(var i=1; i<grd_chngapplist.rows; i++)
  144. {
  145. grd_chngapplist.valueMatrix(i, grd_chngapplist.colRef("cnfm")) = "N";
  146. grd_chngapplist.addStatus(i, "update");
  147. }
  148. }
  149. else
  150. {
  151. ALL_CHECKED = true;
  152. for(var i=1; i<grd_chngapplist.rows; i++)
  153. {
  154. grd_chngapplist.valueMatrix(i, grd_chngapplist.colRef("cnfm")) = "Y";
  155. grd_chngapplist.addStatus(i, "update");
  156. }
  157. }
  158. }
  159. ]]>
  160. </script>
  161. </datagrid>
  162. <line id="line2" class="line_1" style="x1:0px; y1:89px; x2:1195px; y2:89px; "/>
  163. <group id="group4" style="left:0px; top:10px; width:1195px; height:55px; vertical-align:top; ">
  164. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1195px; height:55px; background-color:#fffbf2; border-color:#ffd799; "/>
  165. <caption id="caption5" class="search_name" style="left:350px; top:7px; width:86px; height:17px; ">근무일자 :</caption>
  166. <line id="line3" class="line_4" style="x1:1110px; y1:7px; x2:1110px; y2:29px; border-color:#ffe4bb; border-left-style:solid; "/>
  167. <caption id="caption1" class="search_name" style="left:350px; top:31px; width:86px; height:17px; ">사원번호 :</caption>
  168. <caption id="caption2" class="search_name" style="left:15px; top:31px; width:92px; height:17px; ">관리부서 :</caption>
  169. <caption id="caption3" style="left:531px; top:5px; width:20px; height:20px; text-align:center; vertical-align:bottom; ">~</caption>
  170. <input id="ipt_frdutymd" ref="/root/send/retrparams/frdutymd" class="input_s_essential" inputtype="date" style="left:437px; top:6px; width:95px; height:19px; ">
  171. <script type="javascript" ev:event="xforms-value-changed">
  172. <![CDATA[
  173. var instcd = cmb_instcd.value;
  174. if( getStringLength(ipt_frdutymd.value) == "8" ) {
  175. model.removeNodeset(cmb_instcd.attribute("ref"));
  176. model.makeNode("/root/send/retrparams/instcd");
  177. misfComboInstCdListMulti("cmb_instcd",ipt_frdutymd.value,"","N");
  178. cmb_instcd.value = instcd;
  179. model.refresh();
  180. }
  181. ]]>
  182. </script>
  183. </input>
  184. <input id="ipt_todutymd" ref="/root/send/retrparams/todutymd" class="input_s_essential" inputtype="date" style="left:550px; top:6px; width:95px; height:19px; "/>
  185. <input id="ipt_emplno" ref="/root/send/retrparams/emplno" class="input_search" navindex="2" style="left:438px; top:30px; width:70px; height:19px; ">
  186. <script type="javascript" ev:event="onkeypress">
  187. <![CDATA[
  188. if(event.keyCode == 13)
  189. {
  190. if(ipt_emplno.value == ipt_emplno.currentText) return;
  191. ipt_emplno.value = ipt_emplno.currentText;
  192. rpbfValidationCheck("EMPLNO", "emplno,emplnm,unitcd,unitnm");
  193. model.refresh();
  194. }
  195. ]]>
  196. </script>
  197. <script type="javascript" ev:event="xforms-value-changed">
  198. <![CDATA[
  199. rpbfValidationCheck("EMPLNO", "emplno,emplnm,unitcd,unitnm");
  200. model.refresh();
  201. ]]>
  202. </script>
  203. </input>
  204. <button id="btn_emplhelp" class="icon_search" style="left:512px; top:32px; width:16px; height:16px; ">
  205. <caption/>
  206. <script type="javascript" ev:event="DOMActivate">
  207. <![CDATA[
  208. rpbfOpenPopUpList("SPRPB00101", ipt_emplno, "emplno,emplnm,unitcd,unitnm", "", "N");
  209. model.refresh();
  210. ]]>
  211. </script>
  212. </button>
  213. <input id="ipt_emplnm" ref="/root/send/retrparams/emplnm" class="input_search" navindex="3" style="left:532px; top:30px; width:113px; height:19px; ">
  214. <script type="javascript" ev:event="onkeypress">
  215. <![CDATA[
  216. if(event.keyCode == 13)
  217. {
  218. if(ipt_emplno.value == ipt_emplno.currentText) return;
  219. ipt_emplno.value = ipt_emplno.currentText;
  220. rpbfValidationCheck("EMPLNM", "emplno,emplnm,unitcd,unitnm");
  221. model.refresh();
  222. model.setFocus("btn_search");
  223. }
  224. ]]>
  225. </script>
  226. <script type="javascript" ev:event="xforms-value-changed">
  227. <![CDATA[
  228. rpbfValidationCheck("EMPLNM", "emplno,emplnm,unitcd,unitnm");
  229. model.refresh();
  230. ]]>
  231. </script>
  232. </input>
  233. <button id="btn_search" class="btn1_letter2" navindex="4" style="left:1124px; top:7px; width:56px; height:22px; text-align:left; ">
  234. <caption>조회</caption>
  235. <script type="javascript" ev:event="DOMActivate">
  236. <![CDATA[
  237. misfMsterDetailRetrieve();
  238. // misfSetReadOnlyCol(grd_chngapplist, "emplno,emplnm,dutdd,appdd,appresn", true);
  239. ALL_CHECKED = false;
  240. ]]>
  241. </script>
  242. </button>
  243. <select1 id="rdo_cnfmyn" ref="/root/send/retrparams/cnfmyn" appearance="full" cols="3" overflow="visible" style="left:762px; top:7px; width:150px; height:19px; ">
  244. <choices>
  245. <item>
  246. <label>전체</label>
  247. <value>%</value>
  248. </item>
  249. <item>
  250. <label>승인</label>
  251. <value>Y</value>
  252. </item>
  253. <item>
  254. <label>미승인</label>
  255. <value>N</value>
  256. </item>
  257. </choices>
  258. </select1>
  259. <caption id="caption7" class="search_name" style="left:675px; top:7px; width:86px; height:17px; ">승인여부 :</caption>
  260. <select1 id="cmb_instcd" ref="/root/send/retrparams/instcd" class="combo_search" navindex="1" appearance="minimal" style="left:102px; top:6px; width:218px; height:19px; ">
  261. <choices>
  262. <itemset>
  263. <label/>
  264. <value/>
  265. </itemset>
  266. </choices>
  267. <script type="javascript" ev:event="xforms-value-changed">
  268. <![CDATA[
  269. ]]>
  270. </script>
  271. </select1>
  272. <caption id="caption9" class="search_name" style="left:15px; top:9px; width:86px; height:17px; ">소속기관 :</caption>
  273. <button id="btn_dutdept" class="icon_search" style="left:187px; top:32px; width:16px; height:16px; ">
  274. <caption/>
  275. <script type="javascript" ev:event="DOMActivate">
  276. <![CDATA[
  277. misfOpenPopUpList("02", ipt_dutdeptcd, "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  278. ]]>
  279. </script>
  280. </button>
  281. <input id="ipt_dutdeptnm" ref="/root/send/retrparams/dutunitnm" class="input_search" navindex="3" style="left:205px; top:30px; width:115px; height:19px; ">
  282. <script type="javascript" ev:event="xforms-value-changed">
  283. <![CDATA[
  284. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  285. model.refresh();
  286. ]]>
  287. </script>
  288. <script type="javascript" ev:event="onkeypress">
  289. <![CDATA[
  290. if(event.keyCode == 13)
  291. {
  292. ipt_dutdeptnm.value = ipt_dutdeptnm.currentText;
  293. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  294. model.refresh();
  295. }
  296. ]]>
  297. </script>
  298. </input>
  299. <input id="ipt_dutdeptcd" ref="/root/send/retrparams/dutunitcd" class="input_search" navindex="2" maxlength="10" style="left:102px; top:30px; width:80px; height:19px; ">
  300. <script type="javascript" ev:event="xforms-value-changed">
  301. <![CDATA[
  302. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  303. model.refresh();
  304. ]]>
  305. </script>
  306. <script type="javascript" ev:event="onkeypress">
  307. <![CDATA[
  308. if(event.keyCode == 13)
  309. {
  310. ipt_dutdeptcd.value = ipt_dutdeptcd.currentText;
  311. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  312. model.refresh();
  313. }
  314. ]]>
  315. </script>
  316. </input>
  317. <select1 id="cmb_dutplce" ref="/root/send/retrparams/dutunitcd" class="combo_search" visibility="visible" appearance="minimal" style="left:102px; top:30px; width:218px; height:19px; ">
  318. <choices>
  319. <itemset>
  320. <label/>
  321. <value/>
  322. </itemset>
  323. </choices>
  324. <script type="javascript" ev:event="xforms-value-changed">
  325. <![CDATA[
  326. ]]>
  327. </script>
  328. </select1>
  329. </group>
  330. <caption id="caption8" class="tit_2" style="left:5px; top:74px; width:165px; height:13px; ">변경신청내역</caption>
  331. <button id="btn_addrow" class="btn2_letter3" visibility="hidden" style="left:1021px; top:68px; width:53px; height:19px; ">
  332. <caption>행추가</caption>
  333. <script type="javascript" ev:event="DOMActivate">
  334. <![CDATA[
  335. fAddRow();
  336. ]]>
  337. </script>
  338. </button>
  339. <button id="btn_delrow" class="btn2_letter3" visibility="hidden" style="left:1076px; top:68px; width:53px; height:19px; ">
  340. <caption>행삭제</caption>
  341. <script type="javascript" ev:event="DOMActivate">
  342. <![CDATA[
  343. misfGridIUD(grd_chngapplist, "D");
  344. ]]>
  345. </script>
  346. </button>
  347. <button id="btn_excelsave" class="btn2_letter4" style="left:1131px; top:69px; width:64px; height:19px; ">
  348. <caption>엑셀저장</caption>
  349. <script type="javascript" ev:event="DOMActivate">
  350. <![CDATA[
  351. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  352. if (fileName != "")
  353. {
  354. grd_chngapplist.saveExcel(fileName, "SheetName", true, true, "", "");
  355. }
  356. ]]>
  357. </script>
  358. </button>
  359. </group>
  360. <group id="group5" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  361. <line id="line4" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25; "/>
  362. <button id="btn_save" class="btn4_letter2" style="left:1139px; top:3px; width:56px; height:22px; ">
  363. <caption>저장</caption>
  364. <script type="javascript" ev:event="DOMActivate">
  365. <![CDATA[
  366. fSave();
  367. ]]>
  368. </script>
  369. </button>
  370. </group>
  371. </xhtml:body>
  372. </xhtml:html>