SMRPD05500_근태자료출력.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" ytype="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>SMRPD02500_근태자료출력</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list>
  11. <dutcdlist/>
  12. <dutcdlist/>
  13. </list>
  14. <resn>
  15. <reqresn/>
  16. <dutresn/>
  17. </resn>
  18. <daylist/>
  19. <resltdata>
  20. <dutschelist/>
  21. </resltdata>
  22. <resnlist/>
  23. <stndduttableitem>
  24. <day/>
  25. <evening/>
  26. <night/>
  27. <total/>
  28. </stndduttableitem>
  29. <authcheck>
  30. <check/>
  31. </authcheck>
  32. <close>
  33. <closeyn>
  34. <cnt/>
  35. <closeyn/>
  36. </closeyn>
  37. </close>
  38. <print>
  39. <printlist/>
  40. <daylist/>
  41. </print>
  42. </main>
  43. <send>
  44. <instcd/>
  45. <dutym/>
  46. <dutunitcd/>
  47. <dutunitnm/>
  48. <appscheexecflag/>
  49. <jobkind/>
  50. <emplno/>
  51. <dutdd/>
  52. <dutschelist/>
  53. <anualcalcyy/>
  54. <resnlist/>
  55. <apryn/>
  56. <deptpryn>Y</deptpryn>
  57. <params>
  58. <instcd/>
  59. <dutym/>
  60. <dutunitcd/>
  61. <appscheexecflag/>
  62. <flag/>
  63. </params>
  64. <dutcdparams>
  65. <instcd/>
  66. <dutunitcd/>
  67. </dutcdparams>
  68. <winparams>
  69. <instcd/>
  70. <dutunitcd/>
  71. <dutym/>
  72. </winparams>
  73. </send>
  74. <init/>
  75. <hidden/>
  76. <temp>
  77. </temp>
  78. <codedata>
  79. <popupmenu>
  80. <dutschelist>
  81. </dutschelist>
  82. </popupmenu>
  83. <popuptemp>
  84. <dutschelist>
  85. <item>
  86. <name>사유 및 helper 등록</name>
  87. <func>fOpenPopup</func>
  88. </item>
  89. <item>
  90. <name>개인근무변경신청</name>
  91. <func>fOpenPopupChngApp</func>
  92. </item>
  93. <item>
  94. <name>지우기</name>
  95. <func>fGridCellClear</func>
  96. </item>
  97. <item>
  98. <name>-</name>
  99. <func/>
  100. </item>
  101. </dutschelist>
  102. </popuptemp>
  103. </codedata>
  104. </root>
  105. </instance>
  106. <submission id="TRRPD02203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/dutcdparams" resultref="/root/main/list"/>
  107. <submission id="TRRPD02204" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/authcheck"/>
  108. <submission id="TRRPD02206" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/daylist"/>
  109. <submission id="TRRPD02208" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/close"/>
  110. <submission id="TRRPD05501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/resltdata"/>
  111. </model>
  112. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  113. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  114. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  115. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  116. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  117. <script type="javascript" src="../../../mis/dligclaznsmngtweb/js/RPD001.js"/>
  118. <script type="javascript" ev:event="xforms-ready">
  119. <![CDATA[
  120. fInitialize();
  121. ]]>
  122. </script>
  123. <script type="javascript">
  124. <![CDATA[
  125. var iDay1ColIdx = 6;
  126. var iDay31ColIdx = 38;
  127. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  128. function fInitialize()
  129. {
  130. model.removeNodeset("/root/main/resltdata/dutschelist");
  131. model.removeNodeset("/root/main/resltdata/dutmancntlist");
  132. model.removeNodeset("/root/main/resnlist");
  133. model.removeNodeset("/root/main/list/dutcdlist");
  134. model.resetInstanceNode("/root/main/yearnoinfoitem");
  135. model.resetInstanceNode("/root/main/resn");
  136. misfMsterDetailSet(grd_dutschelist, null, "TRRPD05501", "Y");
  137. misfComboInstCdListMulti("cmb_instcd",getCurrentDate().substr(0, 8),"","N");
  138. misfGetAndSetUserInfo();
  139. misfGetUserAuth();
  140. model.setValue("/root/send/appscheexecflag", "2");
  141. model.setValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  142. model.setValue("/root/send/dutym", getCurrentDate().substr(0, 6));
  143. model.setValue("/root/send/dutcdparams/instcd", getUserInfo("dutplceinstcd"));
  144. if ( getUserInfo("dutplceinstcd") == "001" ) {
  145. cmb_instcd.disabled = false;
  146. }
  147. ipt_dutym.dispatch("xforms-value-changed");
  148. model.refresh();
  149. }
  150. // 일자별 근무 세팅
  151. function fSetScheDutCd(sDutCd)
  152. {
  153. var iPreRowIdx = 0;
  154. for(var i=0; i<grd_dutschelist.selectedCells.length; i++) {
  155. var iColIdx = grd_dutschelist.selectedCells.item(i).col;
  156. var iRowIdx = grd_dutschelist.selectedCells.item(i).row;
  157. if(iColIdx <= iDay1ColIdx || iColIdx >= iDay31ColIdx) {
  158. continue;
  159. }
  160. if(grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("suppflag")) == "1") {
  161. continue;
  162. }
  163. if(grd_dutschelist.colRef("brngfwrdoffqty") <= iColIdx) continue;
  164. if(grd_dutschelist.rowStyle(iRowIdx, "data", "background-color") == "#E5EFFC") continue;
  165. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = sDutCd;
  166. if(iPreRowIdx != iRowIdx) {
  167. fStatusCheck(iRowIdx);
  168. iPreRowIdx = iRowIdx;
  169. }
  170. var iRet = fScheValidCheck_Under1Year(iRowIdx, iColIdx);
  171. if(iRet != 6 && iRet != 100) {
  172. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  173. grd_dutschelist.row = iRowIdx;
  174. grd_dutschelist.col = iColIdx;
  175. return;
  176. }
  177. else if(iRet != 100 && iRet == 6) {
  178. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "V1";
  179. }
  180. // 신청 OFF, 실시 밤근무 체크
  181. if(fScheValidCheck_DutSet(iRowIdx, iColIdx) != 6) {
  182. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  183. grd_dutschelist.row = iRowIdx;
  184. grd_dutschelist.col = iColIdx;
  185. return;
  186. }
  187. // 5일연속 근무 체크
  188. if(fScheValidCheck_5DayDut(iRowIdx, iColIdx) != 6) {
  189. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  190. grd_dutschelist.row = iRowIdx;
  191. grd_dutschelist.col = iColIdx;
  192. return;
  193. }
  194. if(fScheValidCheck_OffCnt(iRowIdx, iColIdx) != 6) {
  195. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  196. grd_dutschelist.row = iRowIdx;
  197. grd_dutschelist.col = iColIdx;
  198. return;
  199. }
  200. // 신청 OFF, 실시 밤근무 체크
  201. fScheValidCheck_NightVacation(iRowIdx, iColIdx);
  202. if(fSetYearHoliOffCntByDutCd(iRowIdx, iColIdx)) {
  203. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  204. grd_dutschelist.row = iRowIdx;
  205. grd_dutschelist.col = iColIdx;
  206. }
  207. }
  208. if(grd_dutschelist.col + 1 != iDay31ColIdx - 2) {
  209. grd_dutschelist.col = grd_dutschelist.col + 1;
  210. }
  211. fSetYearHoliOffCnt();
  212. }
  213. // 조회
  214. function fRetrieve()
  215. {
  216. grd_dutschelist.rebuildStyle();
  217. if(model.getValue("/root/send/dutym") == "") {
  218. messageBox("적용년월을", "C002");
  219. return;
  220. }
  221. model.setValue("/root/send/emplno", "");
  222. model.setValue("/root/send/anualcalcyy", ipt_dutym.value.substr(0, 4));
  223. misfMsterDetailRetrieve();
  224. fSetScheFlagRowStyle(); // 실시일때와, 확정일때 로우스타일을 바꾼다.
  225. fSetCalendarScheList(); // 번표에 달력의 일자를 세팅한다.
  226. }
  227. function fSetScheFlagRowStyle()
  228. {
  229. for(var i=2 ; i<grd_dutschelist.rows; i++) {
  230. if(model.getValue("/root/send/appscheexecflag") == "3") {
  231. misfSetReadOnlyCol(grd_dutschelist, "part", true, i);
  232. }
  233. else {
  234. misfSetReadOnlyCol(grd_dutschelist, "part", false, i);
  235. grd_dutschelist.rowStyle(i, "data", "background-color") = "#FFFFFF";
  236. }
  237. var sJobKindCd = model.getValue("/root/main/resltdata/dutschelist[" + (i - 1) +"]/jobkindcd");
  238. if(sJobKindCd == "2820") {
  239. grd_dutschelist.rowStyle(i, "data", "background-color") = "#FEF2FE";
  240. }
  241. }
  242. }
  243. function fSetCalendarScheList()
  244. {
  245. var basedd = new Array();
  246. var holiflag = new Array();
  247. var daynm = new Array();
  248. for( var i=1; i<=31; i++) {
  249. basedd[i - 1] = model.getValue("/root/main/daylist["+ i + "]/basedd");
  250. holiflag[i - 1] = model.getValue("/root/main/daylist["+ i + "]/holiflag");
  251. daynm[i - 1] = model.getValue("/root/main/daylist["+ i + "]/daynm");
  252. if(basedd[i - 1] == "") {
  253. grd_dutschelist.colHidden(i + iDay1ColIdx) = true;
  254. }
  255. else {
  256. grd_dutschelist.colHidden(i + iDay1ColIdx) = false;
  257. }
  258. }
  259. var sche_caption = grd_dutschelist.caption;
  260. var sche_split = sche_caption.split("^");
  261. sche_caption = "기관코드";
  262. for(var j=1; j<sche_split.length; j++ ) {
  263. if(j > 44 && j < 76) {
  264. sche_caption = sche_caption + "^" + daynm[j - 45];
  265. }
  266. else {
  267. sche_caption = sche_caption + "^" + sche_split[j];
  268. }
  269. }
  270. grd_dutschelist.caption = sche_caption;
  271. }
  272. // 근무년월 변경 이벤트
  273. function fDutYMValueChanged()
  274. {
  275. model.removenode("/root/main/close");
  276. submit("TRRPD02208");
  277. submit("TRRPD02206");
  278. }
  279. ]]>
  280. </script>
  281. </xhtml:head>
  282. <xhtml:body pagewidth="1211" pageheight="784" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  283. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  284. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:230px; height:14px; ">근태자료출력</caption>
  285. <caption id="caption4" class="patient_text_black" style="left:922px; top:0px; width:272px; "/>
  286. </group>
  287. <group id="group3" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  288. <line id="line1" class="line_1" style="x1:0px; y1:74px; x2:1195px; y2:74px; "/>
  289. <caption id="caption9" class="tit_2" style="left:5px; top:59px; width:109px; height:13px; ">근무 스케줄</caption>
  290. <group id="group4" style="left:0px; top:10px; width:1195px; height:40px; vertical-align:top; ">
  291. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1195px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  292. <line id="line3" class="line_4" style="x1:1110px; y1:4px; x2:1110px; y2:29px; border-color:#ffe4bb; border-left-style:solid; "/>
  293. <caption id="caption1" class="search_name" style="left:393px; top:9px; width:91px; height:17px; ">근무년월 :</caption>
  294. <caption id="caption2" class="search_name" style="left:870px; top:9px; width:68px; height:17px; ">구분 :</caption>
  295. <input id="ipt_dutym" ref="/root/send/dutym" class="input_search" inputtype="date" format="yyyy-mm" style="left:480px; top:9px; width:110px; height:19px; text-align:center; ">
  296. <script type="javascript" ev:event="xforms-value-changed">
  297. <![CDATA[
  298. var instcd = cmb_instcd.value;
  299. if( getStringLength(ipt_dutym.value) == "6" ) {
  300. misfComboInstCdListMulti("cmb_instcd",ipt_dutym.value+"31","","N");
  301. cmb_instcd.value = instcd;
  302. model.refresh();
  303. }
  304. fDutYMValueChanged();
  305. fRetrieve() ;
  306. ]]>
  307. </script>
  308. </input>
  309. <button id="btn_search" class="btn1_letter2" navindex="4" style="left:1125px; top:7px; width:56px; height:22px; text-align:left; ">
  310. <caption>조회</caption>
  311. <script type="javascript" ev:event="DOMActivate">
  312. <![CDATA[
  313. ipt_dutym.dispatch("xforms-value-changed");
  314. ]]>
  315. </script>
  316. </button>
  317. <select1 id="rdo_appscheexecflag" ref="/root/send/appscheexecflag" appearance="full" cellspacing="10" cols="2" overflow="hidden" style="left:935px; top:10px; width:115px; height:20px; border-style:none; ">
  318. <choices>
  319. <item>
  320. <label>실시</label>
  321. <value>2</value>
  322. </item>
  323. <item>
  324. <label>확정</label>
  325. <value>3</value>
  326. </item>
  327. </choices>
  328. </select1>
  329. <caption id="caption3" class="search_name" style="left:638px; top:9px; width:90px; height:17px; ">직 종 :</caption>
  330. <select1 id="cmb_jobkind" ref="/root/send/jobkind" class="combo_search" visibility="visible" appearance="minimal" style="left:725px; top:9px; width:110px; height:19px; text-align:center; ">
  331. <choices>
  332. <item>
  333. <label>전체</label>
  334. <value/>
  335. </item>
  336. <item>
  337. <label>간호직</label>
  338. <value>1</value>
  339. </item>
  340. <item>
  341. <label>병원지원직</label>
  342. <value>2</value>
  343. </item>
  344. </choices>
  345. </select1>
  346. <select1 id="cmb_instcd" ref="/root/send/instcd" class="combo_search" disabled="true" navindex="1" appearance="minimal" style="left:102px; top:9px; width:243px; height:19px; ">
  347. <choices>
  348. <itemset>
  349. <label/>
  350. <value/>
  351. </itemset>
  352. </choices>
  353. <script type="javascript" ev:event="xforms-value-changed">
  354. <![CDATA[
  355. model.setValue("/root/send/dutcdparams/instcd", cmb_instcd.value)
  356. ]]>
  357. </script>
  358. </select1>
  359. <caption id="caption29" class="search_name" style="left:14px; top:9px; width:86px; height:17px; ">소속기관 :</caption>
  360. </group>
  361. <button id="btn_excsave" class="btn2_letter4" style="left:1130px; top:54px; width:64px; height:19px; ">
  362. <caption>엑셀저장</caption>
  363. <script type="javascript" ev:event="DOMActivate">
  364. <![CDATA[
  365. misfSaveExcel(grd_dutschelist);
  366. ]]>
  367. </script>
  368. </button>
  369. <datagrid id="grd_dutschelist" nodeset="/root/main/resltdata/dutschelist" class="text_center" allowuserresize="false" backcoloralternate="transparent" caption="기관코드^기관^사원번호^성명^근무지^직종^1^2^3^4^5^6^7^8^9^10^11^12^13^14^15^16^17^18^19^20^21^22^23^24^25^26^27^28^29^30^31^월&#xA;사용&#xA;휴가^발생&#xA;휴가^1년&#xA;미만&#xA;휴가|기관코드^기관^사원번호^성명^근무지^직종^월^화^수^목^금^토^일^월^화^수^목^금^토^일^월^화^수^목^금^토^일^월^화^수^목^금^토^일^월^화^수^월&#xA;사용&#xA;휴가^발생&#xA;휴가^1년&#xA;미만&#xA;휴가" colsep="^" colwidth="100, 70, 60, 60, 100, 70, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 40, 40, 40" explorerbar="sort" frozencols="4" mergecellsfixedcols="bycolrec" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" style="left:1px; top:79px; width:1193px; height:641px; ">
  370. <col ref="instcd" visibility="hidden"/>
  371. <col ref="instnm" visibility="hidden"/>
  372. <col ref="emplno"/>
  373. <col ref="emplnm"/>
  374. <col ref="dutplcedeptnm"/>
  375. <col ref="jobkindnm"/>
  376. <col ref="day01" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  377. <col ref="day02" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  378. <col ref="day03" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  379. <col ref="day04" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  380. <col ref="day05" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  381. <col ref="day06" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  382. <col ref="day07" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  383. <col ref="day08" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  384. <col ref="day09" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  385. <col ref="day10" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  386. <col ref="day11" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  387. <col ref="day12" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  388. <col ref="day13" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  389. <col ref="day14" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  390. <col ref="day15" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  391. <col ref="day16" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  392. <col ref="day17" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  393. <col ref="day18" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  394. <col ref="day19" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  395. <col ref="day20" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  396. <col ref="day21" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  397. <col ref="day22" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  398. <col ref="day23" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  399. <col ref="day24" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  400. <col ref="day25" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  401. <col ref="day26" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  402. <col ref="day27" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  403. <col ref="day28" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  404. <col ref="day29" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  405. <col ref="day30" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  406. <col ref="day31" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  407. <col ref="monthv"/>
  408. <col ref="yearv"/>
  409. <col ref="oneyearunderv"/>
  410. <script type="javascript" ev:event="onaftersort">
  411. <![CDATA[
  412. grd_dutschelist.gridToInstance();
  413. ]]>
  414. </script>
  415. </datagrid>
  416. </group>
  417. <group id="group5" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  418. <line id="line75" class="line_6" style="x1:0; y1:25; x2:1195; y2:25; "/>
  419. <input id="ipt_cnt" ref="/root/main/close/closeyn/cnt" visibility="hidden" inputtype="input" style="left:875px; top:5px; width:24px; height:19px; "/>
  420. <input id="ipt_closeyn" ref="/root/main/close/closeyn/closeyn" visibility="hidden" inputtype="input" style="left:900px; top:5px; width:24px; height:19px; "/>
  421. </group>
  422. </xhtml:body>
  423. </xhtml:html>