xSMRPS00400_개인별교육신청.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/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. <prieductrgtmanlist/>
  12. <rpsdedydlist/>
  13. </list>
  14. </main>
  15. <send>
  16. <retrparams>
  17. <instcd/>
  18. <appyy/>
  19. <mainbdunit/>
  20. <indappyn/>
  21. <cmpltcursstdyyn/>
  22. <emplno/>
  23. <emplnm/>
  24. <dutplcedeptcd/>
  25. <dutplcedeptnm/>
  26. </retrparams>
  27. <detailsend/>
  28. </send>
  29. <init/>
  30. <temp>
  31. <msg>
  32. <count/>
  33. <instcd/>
  34. <educdg/>
  35. <appyy/>
  36. <educcd/>
  37. </msg>
  38. </temp>
  39. </root>
  40. </instance>
  41. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  42. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  43. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  44. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  45. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  46. <script type="javascript" src="../../../mis/educationmngtweb/js/RPS001.js"/>
  47. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  48. <script type="javascript" ev:event="xforms-ready">
  49. <![CDATA[
  50. fInit();
  51. ]]>
  52. </script>
  53. <script type="javascript">
  54. <![CDATA[
  55. function fInit()
  56. {
  57. model.setValue("/root/send/retrparams/appyy", getCurrentDate().substr(0, 4));
  58. model.removenode("/root/main/list/prieductrgtmanlist");
  59. model.removenode("/root/main/list/rpsdedydlist");
  60. misfComboComCdListMulti("Z0007", "cmb_instcd", null, "Y");
  61. rpsEducSetComboList(model.getValue("/root/send/retrparams/appyy"), "M02-000,M02-006", "cmb_mainbdunit,grd_rpsdedydlist.medinstvalucd", "Y", "1");
  62. misfMsterDetailSet(grd_prieductrgtmanlist, null, "TRRPS00401", "Y");
  63. misfMsterDetailSet(grd_rpsdedydlist, grd_prieductrgtmanlist, "TRRPS00202", "Y");
  64. misfGetUserAuth();
  65. model.setValue("/root/send/retrparams/instcd", getUserInfo("dutplceinstcd"));
  66. model.setValue("/root/send/retrparams/emplno", getUserInfo("userid"));
  67. model.setValue("/root/send/retrparams/emplnm", getUserInfo("usernm"));
  68. model.setValue("/root/send/retrparams/dutplcedeptcd", getUserInfo("dutplcecd"));
  69. model.setValue("/root/send/retrparams/dutplcedeptnm", getUserInfo("dutplcenm"));
  70. model.refresh();
  71. // if(DUTY_PART_YN == "Y")
  72. // {
  73. ipt_emplno.disabled = false;
  74. ipt_emplnm.disabled = false;
  75. btn_empl.disabled = false;
  76. // }
  77. }
  78. function fRetrieve()
  79. {
  80. if(!isRequiredControls("ipt_appyy")) return;
  81. if(!isRequiredControls("ipt_emplno")) return;
  82. submit("TRRPS00401");
  83. if(grd_prieductrgtmanlist.fixedRows < grd_prieductrgtmanlist.rows)
  84. {
  85. for(var i=1; i<grd_prieductrgtmanlist.rows; i++)
  86. {
  87. var sYn = grd_prieductrgtmanlist.valueMatrix(i, grd_prieductrgtmanlist.colRef("indapppossyn"));
  88. var dYn = grd_prieductrgtmanlist.valueMatrix(i, grd_prieductrgtmanlist.colRef("deptaprvyn"));
  89. if(sYn == "N" || dYn == "Y")
  90. {
  91. misfSetReadOnlyCol(grd_prieductrgtmanlist, "indappyn,indappdd", true, i);
  92. }
  93. }
  94. grd_prieductrgtmanlist.row = grd_prieductrgtmanlist.fixedRows;
  95. grd_prieductrgtmanlist.dispatch("onrowchanged");
  96. }
  97. }
  98. function fSave()
  99. {
  100. if(misfSave("TXRPS00401"))
  101. {
  102. var iLength = instance1.selectNodes("/root/temp/msg").length;
  103. if(iLength > 0)
  104. {
  105. var fcmt = "";
  106. // Error 구분
  107. if(model.getValue("/root/temp/msg/educappflag") == 'Full') //정원체크 error msg
  108. {
  109. fcmt = "정원이 마감된 교육이므로 신청할 수";
  110. }else if(model.getValue("/root/temp/msg/educappflag") == 'EndTm') //기간체크 error msg
  111. {
  112. fcmt = "교육신청기간이 마감이되어 교육신청을 변경할 수";
  113. }
  114. var sErrInstcd = model.getValue("/root/temp/msg/instcd");
  115. var sErrEducdg = model.getValue("/root/temp/msg/educdg");
  116. var sErrAppyy = model.getValue("/root/temp/msg/appyy");
  117. var sErrEduccdd = model.getValue("/root/temp/msg/educcd");
  118. for(var i=1; i<grd_prieductrgtmanlist.rows; i++)
  119. {
  120. var sInstcd = grd_prieductrgtmanlist.valueMatrix(i, grd_prieductrgtmanlist.colRef("instcd"));
  121. var sEducdg = grd_prieductrgtmanlist.valueMatrix(i, grd_prieductrgtmanlist.colRef("educdg"));
  122. var sAppyy = grd_prieductrgtmanlist.valueMatrix(i, grd_prieductrgtmanlist.colRef("appyy"));
  123. var sEduccd = grd_prieductrgtmanlist.valueMatrix(i, grd_prieductrgtmanlist.colRef("educcd"));
  124. var sEducCnt = grd_prieductrgtmanlist.valueMatrix(i, grd_prieductrgtmanlist.colRef("educcnts"));
  125. if((sErrInstcd + sErrEducdg + sErrAppyy + sErrEduccdd) == (sInstcd + sEducdg + sAppyy + sEduccd))
  126. {
  127. messageBox("교육내용 : [ " + sEducCnt + "] 은(는) \n\n" + fcmt, "I004");
  128. grd_prieductrgtmanlist.valueMatrix(i, grd_prieductrgtmanlist.colRef("indappyn")) = "N";
  129. grd_prieductrgtmanlist.valueMatrix(i, grd_prieductrgtmanlist.colRef("indappdd")) = "";
  130. return;
  131. }
  132. }
  133. }
  134. fRetrieve();
  135. }
  136. }
  137. ]]>
  138. </script>
  139. <submission id="TRRPS00401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="/root/main/list"/>
  140. <submission id="TXRPS00401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/list/prieductrgtmanlist" resultref="/root/temp"/>
  141. <submission id="TRRPS00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/detailsend" resultref="/root/main/list/rpsdedydlist"/>
  142. </model>
  143. </xhtml:head>
  144. <xhtml:body style="margin-left:8; margin-right:8; ">
  145. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  146. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">개인별교육신청(사용안함)</caption>
  147. </group>
  148. <group id="group2" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  149. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:10px; width:1195px; height:61px; background-color:#fffbf2; border-color:#ffd799; "/>
  150. <caption id="caption1" class="search_name" style="left:305px; top:20px; width:89px; height:17px; ">주체기관 :</caption>
  151. <line id="line8" class="line_1" style="x1:0px; y1:94px; x2:1195px; y2:94px; "/>
  152. <caption id="caption20" class="tit_2" style="left:5px; top:80px; width:169px; height:13px; ">개인별교육신청</caption>
  153. <datagrid id="grd_prieductrgtmanlist" nodeset="/root/main/list/prieductrgtmanlist" autoresize="true" caption="기관코드^주체단위^사원번호^주관부서^년 도^주관부서^교육명^차수^신청/정원^교육기간^교육기간^신청기간^신청기간^교육신청&#xA;마감시간^개인신청&#xA;가능여부^교육&#xA;신청^교육&#xA;신청일자^부서&#xA;승인^최종&#xA;승인^교육&#xA;이수&#xA;여부^교육내용|기관코드^주체단위^사원번호^주관부서^교육코드^년 도^교육명^차수^신청/정원^From^To^From^To^교육신청&#xA;마감시간^개인신청&#xA;가능여부^교육&#xA;신청^교육&#xA;신청일자^부서&#xA;승인^최종&#xA;승인^교육&#xA;이수&#xA;여부^교육내용" colsep="^" colwidth="0, 60, 0, 120, 0, 0, 250, 40, 60, 70, 70, 70, 70, 72, 55, 39, 74, 38, 40, 44, 100" dataheight="25" ellipsis="true" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:0px; top:99px; width:1195px; height:376px; ">
  154. <col ref="instcd"/>
  155. <col ref="mainbdunitnm" style="text-align:center; "/>
  156. <col ref="emplno"/>
  157. <col ref="educcd"/>
  158. <col ref="appyy"/>
  159. <col ref="chrgdeptnm"/>
  160. <col ref="educcdnm"/>
  161. <col ref="educdg" style="text-align:center; "/>
  162. <col ref="leftemplcnt" style="text-align:center; "/>
  163. <col ref="educfromdd" format="yyyy-mm-dd" style="text-align:center; "/>
  164. <col ref="eductodd" format="yyyy-mm-dd" style="text-align:center; "/>
  165. <col ref="educappfromdd" format="yyyy-mm-dd" style="text-align:center; "/>
  166. <col ref="educapptodd" format="yyyy-mm-dd" style="text-align:center; "/>
  167. <col ref="educappendtm" format="hh:nn" style="text-align:center; "/>
  168. <col disabled="true" ref="indapppossyn" style="text-align:center; "/>
  169. <col checkvalue="Y,N" ref="indappyn" type="checkbox"/>
  170. <col ref="indappdd" format="yyyy-mm-dd"/>
  171. <col ref="deptaprvyn" style="text-align:center; "/>
  172. <col ref="lastaprvyn" style="text-align:center; "/>
  173. <col ref="cmpltcursstdyyn" style="text-align:center; "/>
  174. <col ref="educcnts" visibility="hidden"/>
  175. <script type="javascript" ev:event="onrowchanged">
  176. <![CDATA[
  177. grd_prieductrgtmanlist.dispatch("onmouseup");
  178. model.copyNode("/root/send/detailsend", grd_prieductrgtmanlist.attribute("nodeset") + "[" + (grd_prieductrgtmanlist.row-1) + "]");
  179. submit("TRRPS00202");
  180. ]]>
  181. </script>
  182. <script type="javascript" ev:event="onaftersort">
  183. <![CDATA[
  184. grd_prieductrgtmanlist.gridToInstance();
  185. ]]>
  186. </script>
  187. <script type="javascript" ev:event="xforms-value-changed">
  188. <![CDATA[
  189. if(grd_prieductrgtmanlist.col == grd_prieductrgtmanlist.colRef("indappyn"))
  190. {
  191. var sIndAppPossYn = grd_prieductrgtmanlist.valueMatrix(grd_prieductrgtmanlist.row, grd_prieductrgtmanlist.colRef("indapppossyn"));
  192. if(sIndAppPossYn == "Y")
  193. {
  194. var sYn = grd_prieductrgtmanlist.valueMatrix(grd_prieductrgtmanlist.row, grd_prieductrgtmanlist.colRef("indappyn"));
  195. if(sYn == "Y")
  196. {
  197. grd_prieductrgtmanlist.valueMatrix(grd_prieductrgtmanlist.row, grd_prieductrgtmanlist.colRef("indappdd")) = getCurrentDate();
  198. }
  199. else
  200. {
  201. grd_prieductrgtmanlist.valueMatrix(grd_prieductrgtmanlist.row, grd_prieductrgtmanlist.colRef("indappdd")) = "";
  202. }
  203. }
  204. }
  205. ]]>
  206. </script>
  207. </datagrid>
  208. <caption id="caption10" class="search_name" style="left:15px; top:20px; width:89px; height:17px; ">년 도 :</caption>
  209. <caption id="caption2" class="search_name" style="left:605px; top:20px; width:89px; height:17px; ">주체단위 :</caption>
  210. <caption id="caption29" class="search_name" style="left:15px; top:45px; width:89px; height:17px; ">신청여부 :</caption>
  211. <button id="btn_search" class="btn1_letter2" navindex="8" style="left:1125px; top:30px; width:56px; height:22px; text-align:left; ">
  212. <caption>조회</caption>
  213. <script type="javascript" ev:event="DOMActivate">
  214. <![CDATA[
  215. fRetrieve();
  216. ]]>
  217. </script>
  218. </button>
  219. <line id="line7" style="x1:1110px; y1:18px; x2:1110px; y2:61px; border-color:#ffe4bb; border-left-style:solid; "/>
  220. <caption id="caption3" class="search_name" style="left:305px; top:45px; width:89px; height:17px; ">이수여부 :</caption>
  221. <button id="btn_empl" class="icon_search" disabled="true" style="left:770px; top:45px; width:16px; height:16px; ">
  222. <caption/>
  223. <script type="javascript" ev:event="DOMActivate">
  224. <![CDATA[
  225. rpbfOpenPopUpList("SPRPB00101", ipt_emplno, "emplno,emplnm,dutplcedeptcd,dutplcedeptnm", "", "N");
  226. model.refresh();
  227. ]]>
  228. </script>
  229. </button>
  230. <caption id="caption4" class="search_name" style="left:605px; top:45px; width:86px; height:17px; ">사원번호 :</caption>
  231. <input id="ipt_emplnm" ref="/root/send/retrparams/emplnm" class="input_search" disabled="true" navindex="7" style="left:789px; top:45px; width:76px; height:19px; text-align:center; ">
  232. <script type="javascript" ev:event="xforms-value-changed">
  233. <![CDATA[
  234. misfValidationCheck("01-2", "", "emplno,emplnm");
  235. model.refresh();
  236. ]]>
  237. </script>
  238. <script type="javascript" ev:event="onkeypress">
  239. <![CDATA[
  240. if(event.keyCode == 13)
  241. {
  242. ipt_emplnm.value = ipt_emplnm.currentText;
  243. misfValidationCheck("01-2", "", "emplno,emplnm");
  244. model.setFocus("btn_search");
  245. model.refresh();
  246. }
  247. ]]>
  248. </script>
  249. </input>
  250. <input id="ipt_emplno" ref="/root/send/retrparams/emplno" class="input_s_essential" disabled="true" navindex="6" style="left:696px; top:45px; width:70px; height:19px; text-align:center; ">
  251. <script type="javascript" ev:event="xforms-value-changed">
  252. <![CDATA[
  253. rpbfValidationCheck("EMPLNO", "emplno,emplnm");
  254. model.refresh();
  255. ]]>
  256. </script>
  257. <script type="javascript" ev:event="onkeypress">
  258. <![CDATA[
  259. if(event.keyCode == 13)
  260. {
  261. if(ipt_emplno.value == ipt_emplno.currentText) return;
  262. ipt_emplno.value = ipt_emplno.currentText;
  263. rpbfValidationCheck("EMPLNO", "emplno,emplnm");
  264. model.refresh();
  265. }
  266. ]]>
  267. </script>
  268. </input>
  269. <select1 id="cmb_mainbdunit" ref="/root/send/retrparams/mainbdunit" class="combo_search" navindex="3" appearance="minimal" style="left:696px; top:20px; width:95px; height:19px; ">
  270. <choices>
  271. <itemset>
  272. <label/>
  273. <value/>
  274. </itemset>
  275. </choices>
  276. </select1>
  277. <input id="ipt_appyy" ref="/root/send/retrparams/appyy" class="input_s_essential" navindex="2" inputtype="date" format="yyyy" style="left:102px; top:20px; width:95px; height:19px; text-align:center; ">
  278. <script type="javascript" ev:event="xforms-value-changed">
  279. <![CDATA[
  280. fRetrieve();
  281. ]]>
  282. </script>
  283. </input>
  284. <select1 id="rdo_cmpltcursstdyyn" ref="/root/send/retrparams/cmpltcursstdyyn" navindex="5" appearance="full" cellspacing="10" cols="3" overflow="visible" style="left:392px; top:45px; width:163px; height:20px; border-style:none; ">
  285. <choices>
  286. <item>
  287. <label>전체</label>
  288. <value/>
  289. </item>
  290. <item>
  291. <label>이수</label>
  292. <value>Y</value>
  293. </item>
  294. <item>
  295. <label>미이수</label>
  296. <value>N</value>
  297. </item>
  298. </choices>
  299. <script type="javascript" ev:event="xforms-value-changed">
  300. <![CDATA[
  301. fRetrieve();
  302. ]]>
  303. </script>
  304. </select1>
  305. <select1 id="rdo_indappyn" ref="/root/send/retrparams/indappyn" navindex="4" appearance="full" cellspacing="10" cols="3" overflow="visible" style="left:102px; top:45px; width:168px; height:20px; border-style:none; ">
  306. <choices>
  307. <item>
  308. <label>전체</label>
  309. <value/>
  310. </item>
  311. <item>
  312. <label>신청</label>
  313. <value>Y</value>
  314. </item>
  315. <item>
  316. <label>미신청</label>
  317. <value>N</value>
  318. </item>
  319. </choices>
  320. <script type="javascript" ev:event="xforms-value-changed">
  321. <![CDATA[
  322. fRetrieve();
  323. ]]>
  324. </script>
  325. </select1>
  326. <select1 id="cmb_instcd" ref="/root/send/retrparams/instcd" class="combo_search" navindex="1" appearance="minimal" style="left:392px; top:20px; width:183px; height:19px; ">
  327. <choices>
  328. <itemset>
  329. <label/>
  330. <value/>
  331. </itemset>
  332. </choices>
  333. <script type="javascript" ev:event="xforms-value-changed">
  334. <![CDATA[
  335. fRetrieve();
  336. ]]>
  337. </script>
  338. </select1>
  339. <line id="line1" class="line_1" style="x1:0px; y1:503px; x2:1195px; y2:503px; "/>
  340. <caption id="caption5" class="tit_2" style="left:5px; top:489px; width:169px; height:13px; ">교육세부내역</caption>
  341. <datagrid id="grd_rpsdedydlist" nodeset="/root/main/list/rpsdedydlist" caption="순번^교육내용^교육시간^교육시간^소요시간^소요시간^의료기관평가코드^비고^적용년도^기관^교육코드|순번^교육내용^From^To^시간^일^의료기관평가코드^비고^적용년도^기관^교육코드" colsep="^" colwidth="37, 374, 50, 50, 50, 50, 144, 100, 61, 100, 100" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="select" rowsep="|" tooltip="true" style="left:0px; top:508px; width:1195px; height:236px; ">
  342. <col class="input_s_essential" disabled="true" ref="seq" _key="true" style="text-align:right; "/>
  343. <col disabled="true" ref="educcnts" _key="true"/>
  344. <col disabled="true" ref="educfromtm" format="hh:nn" style="text-align:center; "/>
  345. <col disabled="true" ref="eductotm" format="hh:nn" style="text-align:center; "/>
  346. <col disabled="true" ref="educusetm" format="#,###.#" style="text-align:center; "/>
  347. <col disabled="true" ref="educusedd" format="#,###.#" style="text-align:center; "/>
  348. <col disabled="true" ref="medinstvalucd" type="combo" style="text-align:center; ">
  349. <choices>
  350. <itemset>
  351. <label/>
  352. <value/>
  353. </itemset>
  354. </choices>
  355. </col>
  356. <col disabled="true" ref="cmt" style="text-align:left; "/>
  357. <col class="input_s_essential" ref="appyy" visibility="hidden" _key="true"/>
  358. <col class="input_s_essential" ref="instcd" visibility="hidden" _key="true"/>
  359. <col class="input_s_essential" ref="educcd" visibility="hidden" _key="true"/>
  360. </datagrid>
  361. <button id="btn_init" class="btn2_letter4" style="left:1130px; top:74px; width:64px; height:19px; ">
  362. <caption>엑셀저장</caption>
  363. <script type="javascript" ev:event="DOMActivate">
  364. <![CDATA[
  365. misfSaveExcel(grd_prieductrgtmanlist);
  366. ]]>
  367. </script>
  368. </button>
  369. <caption id="caption7" class="search_name" style="left:886px; top:20px; width:86px; height:17px; ">부서 :</caption>
  370. <output id="ipt_dutplacenm" ref="/root/send/retrparams/dutplcedeptnm" class="output_search" appearance="output" style="left:950px; top:20px; width:140px; height:19px; "/>
  371. <input id="ipt_dutplacecd" ref="/root/send/retrparams/dutplcedeptcd" class="input_search" visibility="hidden" style="left:990px; top:35px; width:70px; height:19px; text-align:center; "/>
  372. <button id="button2" class="btn2_letter8" style="left:1086px; top:483px; width:108px; height:19px; ">
  373. <caption>첨부파일다운로드</caption>
  374. <script type="javascript" ev:event="DOMActivate">
  375. <![CDATA[
  376. // misfSaveExcel(grd_rpsmedcdlist);
  377. ]]>
  378. </script>
  379. </button>
  380. </group>
  381. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  382. <button id="btn_save" class="btn4_letter2" style="left:1139px; top:3px; width:56px; height:22px; ">
  383. <caption>저장</caption>
  384. <script type="javascript" ev:event="DOMActivate">
  385. <![CDATA[
  386. fSave();
  387. ]]>
  388. </script>
  389. </button>
  390. </group>
  391. </xhtml:body>
  392. </xhtml:html>