SPRPD10001_개인근무변경신청(팝업).xrw 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  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>개인 근무 변경 신청 HELP</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list>
  11. <chngapplist/>
  12. </list>
  13. <reglist>
  14. <chngapplist/>
  15. </reglist>
  16. <dutcd>
  17. <dutcdlist/>
  18. </dutcd>
  19. </main>
  20. <send>
  21. <retrparams>
  22. <instcd/>
  23. <dutym/>
  24. <emplno/>
  25. <dutunitcd/>
  26. </retrparams>
  27. <dutcd>
  28. <instcd/>
  29. <dutunitcd/>
  30. </dutcd>
  31. </send>
  32. <init/>
  33. <temp/>
  34. <target/>
  35. </root>
  36. </instance>
  37. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  38. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  39. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  40. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  41. <script type="javascript" src="../../../mis/dligclaznsmngtweb/js/RPD001.js"/>
  42. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  43. <script type="javascript" ev:event="xforms-ready">
  44. <![CDATA[
  45. fInit();
  46. ]]>
  47. </script>
  48. <script type="javascript">
  49. <![CDATA[
  50. var grd_schetemp = opener.grd_dutschelist;
  51. var iDay1ColIdx = opener.window.javascript.iDay1ColIdx;
  52. function fInit()
  53. {
  54. model.removeNodeset("/root/main/list/chngapplist");
  55. model.removeNodeset("/root/main/reglist/chngapplist");
  56. misfGetAndSetUserInfo();
  57. misfGetUserAuth();
  58. misfMsterDetailSet(grd_chngapplist, null, "TRRPD10001", "Y");
  59. grd_chngapplist.rowHeight(0) = 47;
  60. var sEmplNo = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("emplno"));
  61. var sDutYM = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("dutym"));
  62. var sDeptCd = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("dutplcedeptcd"));
  63. var sDutDD = (grd_schetemp.col - iDay1ColIdx).toString().length == 1 ? "0" + (grd_schetemp.col - iDay1ColIdx).toString() : (grd_schetemp.col - iDay1ColIdx).toString();
  64. model.setValue("/root/send/retrparams/instcd", model.getValue("/root/target/instcd"));
  65. model.setValue("/root/send/retrparams/emplno", sEmplNo);
  66. model.setValue("/root/send/retrparams/dutym", sDutYM + sDutDD);
  67. model.setValue("/root/send/retrparams/dutunitcd", sDeptCd);
  68. model.setValue("/root/send/dutcd/instcd", model.getValue("/root/target/instcd"));
  69. model.setValue("/root/send/dutcd/dutunitcd", sDeptCd);
  70. submit("TRRPD03702");
  71. submit("TRRPD10001");
  72. fCheckExistsAppList();
  73. if(JOB_RESP_CD == "1901" || JOB_RESP_CD == "1070" || JOB_RESP_CD == "1907" || JOB_RESP_CD == "1080" || DUTY_RESP_YN == "Y" || DUTY_PART_YN == "Y") // 권한이 UM, 팀장, JM, 복무책임자, 인사담당자
  74. {
  75. grd_chngapplist.colHidden(grd_chngapplist.colRef("cnfm")) = false;
  76. }
  77. model.refresh();
  78. }
  79. function fCheckExistsAppList()
  80. {
  81. if(instance1.selectNodes("/root/main/list/chngapplist").length == 0)
  82. {
  83. var sDutYM = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("dutym"));
  84. var sDutDD = (grd_schetemp.col - iDay1ColIdx).toString().length == 1 ? "0" + (grd_schetemp.col - iDay1ColIdx).toString() : (grd_schetemp.col - iDay1ColIdx).toString();
  85. var sDutYMD = sDutYM + sDutDD;
  86. grd_chngapplist.addRow();
  87. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("instcd")) = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("instcd"));
  88. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("emplno")) = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("emplno"));
  89. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("emplnm")) = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("emplnm"));
  90. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("dutdd")) = sDutYMD;
  91. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("beforedutcd")) = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.col);
  92. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("afterdutcd")) = "";
  93. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("appdd")) = getCurrentDate();
  94. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("appresn")) = "";
  95. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("cnfm")) = "Y";
  96. }
  97. else
  98. {
  99. var sDutYM = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("dutym"));
  100. var sDutDD = (grd_schetemp.col - iDay1ColIdx).toString().length == 1 ? "0" + (grd_schetemp.col - iDay1ColIdx).toString() : (grd_schetemp.col - iDay1ColIdx).toString();
  101. var sDutYMD = sDutYM + sDutDD;
  102. model.copyNode("/root/main/reglist", "/root/main/list");
  103. model.refresh();
  104. misfSetReadOnlyCol(grd_chngapplist, "dutdd,appdd,appresn", true)
  105. var bExists = false;
  106. for(var i=1; i<grd_chngapplist.rows; i++)
  107. {
  108. var sCnfm = grd_chngapplist.valueMatrix(i, grd_chngapplist.colRef("cnfm"));
  109. if(sCnfm == "Y")
  110. {
  111. grd_chngapplist.rowStyle(i, "all", "background-color") = "#DDDDDD";
  112. }
  113. if(grd_chngapplist.valueMatrix(i, grd_chngapplist.colRef("cnfm")) == sDutYMD)
  114. {
  115. bExists = true;
  116. }
  117. }
  118. if(!bExists)
  119. {
  120. messageBox("금일 변경 신청 있습니다.\n\n부서장 확인이 이루어졌을시에는 \n\n부서장 확인 취소 하신 다음 수정후 저장하십시오.", "I999");
  121. }
  122. else
  123. {
  124. grd_chngapplist.addRow();
  125. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("instcd")) = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("instcd"));
  126. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("emplno")) = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("emplno"));
  127. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("emplnm")) = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.colRef("emplnm"));
  128. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("dutdd")) = sDutYMD;
  129. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("beforedutcd")) = grd_schetemp.valueMatrix(grd_schetemp.row, grd_schetemp.col);
  130. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("afterdutcd")) = "";
  131. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("appdd")) = getCurrentDate();
  132. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("appresn")) = "";
  133. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("cnfm")) = "Y";
  134. }
  135. }
  136. }
  137. function fSave()
  138. {
  139. if(grd_chngapplist.rows > 1)
  140. {
  141. for(var i=1; i<grd_chngapplist.rows; i++)
  142. {
  143. if(grd_chngapplist.rowStatus(i) != 0 && grd_chngapplist.rowStatus(i) != 4 && grd_chngapplist.rowStatus(i) != 5 && grd_chngapplist.rowStatus(i) != 6)
  144. {
  145. var sDutDD = grd_chngapplist.valueMatrix(i, grd_chngapplist.colRef("dutdd"));
  146. var sBeforeDutCd = grd_chngapplist.valueMatrix(i, grd_chngapplist.colRef("beforedutcd"));
  147. var sAfterDutCd = grd_chngapplist.valueMatrix(i, grd_chngapplist.colRef("afterdutcd"));
  148. var sAppResn = grd_chngapplist.valueMatrix(i, grd_chngapplist.colRef("appresn"));
  149. if(sDutDD == "" || sBeforeDutCd == "" || sAfterDutCd == "" || sAppResn == "")
  150. {
  151. messageBox("[ 근무일자 | 변경전 근무코드 | 변경후 근무코드 | 신청사유 ]는 입력 해야 합니다.", "I999");
  152. return;
  153. }
  154. }
  155. }
  156. var sChngData = grd_chngapplist.getUpdateData();
  157. if(sChngData == "")
  158. {
  159. return;
  160. }
  161. else
  162. {
  163. misfSave("TXRPD10001");
  164. window.close();
  165. }
  166. }
  167. }
  168. ]]>
  169. </script>
  170. <submission id="TRRPD10001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="/root/main/list"/>
  171. <submission id="TXRPD10001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/list/chngapplist" resultref="/root/temp"/>
  172. <submission id="TRRPD10002" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="/root/temp"/>
  173. <submission id="TRRPD03702" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/dutcd" resultref="/root/main/dutcd"/>
  174. </model>
  175. </xhtml:head>
  176. <xhtml:body pagewidth="800" pageheight="460" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  177. <group id="group1" style="left:0px; top:0px; width:770px; height:15px; ">
  178. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:230px; height:14px; ">개인근무변경신청</caption>
  179. </group>
  180. <group id="group3" scroll="auto" style="left:0px; top:13px; width:770px; height:407px; ">
  181. <datagrid id="grd_chngapplist" nodeset="/root/main/reglist/chngapplist" backcoloralternate="transparent" caption="기관&#xA;코드^사원번호^성명^근무일자^변경전&#xA;근무코드^변경후&#xA;근무코드^신청일^신청사유^확인" colsep="^" colwidth="0, 0, 0, 90, 55, 55, 85, 220, 30" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" style="left:0px; top:29px; width:580px; height:376px; ">
  182. <col ref="instcd" visibility="hidden"/>
  183. <col ref="emplno" visibility="hidden" style="text-align:center; "/>
  184. <col ref="emplnm" visibility="hidden" style="text-align:center; "/>
  185. <col ref="dutdd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  186. <col ref="beforedutcd" style="text-align:center; "/>
  187. <col ref="afterdutcd" type="input" style="text-align:center; "/>
  188. <col ref="appdd" type="inputdate" style="text-align:center; "/>
  189. <col ref="appresn" type="input"/>
  190. <col checkvalue="Y,N" ref="cnfm" type="checkbox" visibility="hidden"/>
  191. <script type="javascript" ev:event="xforms-value-changed">
  192. <![CDATA[
  193. if(grd_chngapplist.col == grd_chngapplist.colRef("dutdd"))
  194. {
  195. model.setValue("/root/send/retrparams2/instcd", grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("instcd")));
  196. model.setValue("/root/send/retrparams2/dutymd", grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("dutdd")));
  197. model.setValue("/root/send/retrparams2/emplno", grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("emplno")));
  198. submit("TRRPD10002");
  199. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("beforedutcd")) = model.getValue("/root/temp/pridutcd/dutcd");
  200. }
  201. else if(grd_chngapplist.col == grd_chngapplist.colRef("afterdutcd"))
  202. {
  203. var sDutCd = grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("afterdutcd"));
  204. var node = instance1.selectSingleNode("/root/main/dutcd/dutcdlist[dutcd='" + sDutCd.toUpperCase() + "']/dutcd");
  205. if(node == null)
  206. {
  207. messageBox("등록되지 않은 근무코드를 사용", "E001");
  208. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("afterdutcd")) = "";
  209. return;
  210. }
  211. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("afterdutcd")) = sDutCd.toUpperCase();
  212. }
  213. ]]>
  214. </script>
  215. </datagrid>
  216. <line id="line2" class="line_1" style="x1:0px; y1:24px; x2:579px; y2:24px; "/>
  217. <caption id="caption8" class="tit_2" style="left:5px; top:9px; width:100px; height:13px; ">변경신청내역</caption>
  218. <datagrid id="grd_dutcdlist" nodeset="/root/main/dutcd/dutcdlist" class="text_center" allowuserresize="true" caption="근무&#xA;코드^근무명^근무시간^Day인원^Evening인원^Night인원|근무&#xA;코드^근무명^근무시간^Day인원^Evening인원^Night인원" colsep="^" colwidth="42, 126, 30, 30, 30, 30" mergecellsfixedrows="bycolrec" rowsep="|" style="left:584px; top:29px; width:185px; height:376px; ">
  219. <col ref="dutcd" style="font-size:8pt; "/>
  220. <col ref="dutnm" style="font-size:8pt; "/>
  221. <col ref="duttm" visibility="hidden"/>
  222. <col ref="daycnt" visibility="hidden"/>
  223. <col ref="eveningpsnno" visibility="hidden"/>
  224. <col ref="nigtpsnno" visibility="hidden"/>
  225. <script type="javascript" ev:event="ondblclick">
  226. <![CDATA[
  227. if (grd_dutcdlist.rows > 2 && grd_chngapplist.rows > 0 && grd_chngapplist.row > 0)
  228. {
  229. // 권한이 UM, 팀장, JM, 복무책임자, 인사담당자
  230. if(JOB_RESP_CD != "1901" && JOB_RESP_CD != "1070" && JOB_RESP_CD != "1907" && JOB_RESP_CD != "1080" && DUTY_RESP_YN != "Y" && DUTY_PART_YN != "Y")
  231. {
  232. if(grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("cnfm")) == "Y")
  233. {
  234. messageBox("선택하신 행은 이미 확인이 되었으므로 수정 할 수 없습니다.\n\n근무 확인후 근무변경 재 신청을 하십시오", "I999");
  235. return;
  236. }
  237. }
  238. grd_chngapplist.valueMatrix(grd_chngapplist.row, grd_chngapplist.colRef("afterdutcd")) = grd_dutcdlist.valueMatrix(grd_dutcdlist.row, grd_dutcdlist.colRef("dutcd"));
  239. if(grd_chngapplist.rowStatus(grd_chngapplist.row) == 0)
  240. {
  241. grd_chngapplist.addStatus(grd_chngapplist.row, "update");
  242. }
  243. }
  244. ]]>
  245. </script>
  246. </datagrid>
  247. <caption id="caption2" class="tit_2" style="left:590px; top:9px; width:165px; height:13px; ">근무코드</caption>
  248. <line id="line1" class="line_1" style="x1:586px; y1:25px; x2:768px; y2:26px; "/>
  249. <output id="output1" style="left:135px; top:3px; width:20px; height:19px; background-color:#DDDDDD; border-style:solid; "/>
  250. <output id="output2" style="left:200px; top:3px; width:20px; height:19px; border-style:solid; "/>
  251. <caption id="caption1" style="left:160px; top:5px; width:30px; height:15px; ">확인</caption>
  252. <caption id="caption3" style="left:225px; top:5px; width:50px; height:15px; ">미확인</caption>
  253. </group>
  254. <button id="btn_save" class="btn4_letter2" style="left:654px; top:423px; width:56px; height:22px; ">
  255. <caption>저장</caption>
  256. <script type="javascript" ev:event="DOMActivate">
  257. <![CDATA[
  258. fSave();
  259. ]]>
  260. </script>
  261. </button>
  262. <button id="btn_cancel" class="btn4_letter2" style="left:714px; top:423px; width:56px; height:22px; ">
  263. <caption>취소</caption>
  264. <script type="javascript" ev:event="DOMActivate">
  265. <![CDATA[
  266. window.close();
  267. ]]>
  268. </script>
  269. </button>
  270. </xhtml:body>
  271. </xhtml:html>