SMRPD00250_개인연차계획및현황.xfdl 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMRPD00250" position="absolute 0 0 1028 776" titletext="개인 연차계획 및 현황" oninit="SMRPD00250_oninit" onload="SMRPD00250_onload">
  5. <Layouts>
  6. <Layout>
  7. <Grid id="grd_srvplist" taborder="4" binddataset="ds_main_srvpinfo_srvplist" useinputpanel="false" position="absolute 0 189 1020 771" autoenter="select" autofittype="col" cellsizingtype="col" anchor="left right bottom" oncellclick="grd_srvplist_oncellclick" onexpanddown="grd_srvplist_onexpanddown">
  8. <Formats>
  9. <Format id="default">
  10. <Columns>
  11. <Column size="21"/>
  12. <Column size="80"/>
  13. <Column size="0"/>
  14. <Column size="0"/>
  15. <Column size="0"/>
  16. <Column size="0"/>
  17. <Column size="0"/>
  18. <Column size="0"/>
  19. <Column size="200"/>
  20. <Column size="70"/>
  21. <Column size="70"/>
  22. <Column size="90"/>
  23. <Column size="80"/>
  24. <Column size="0"/>
  25. </Columns>
  26. <Rows>
  27. <Row size="24" band="head"/>
  28. <Row size="24" band="head"/>
  29. <Row size="24"/>
  30. </Rows>
  31. <Band id="head">
  32. <Cell rowspan="2" taborder="undefined"/>
  33. <Cell col="1" rowspan="2" text="월" taborder="undefined"/>
  34. <Cell col="2" colspan="6" text="계획 연차" taborder="undefined"/>
  35. <Cell col="8" colspan="4" text="사용 연차" taborder="undefined"/>
  36. <Cell col="12" rowspan="2" text="초과 사용&#13;&#10;연차수" taborder="undefined"/>
  37. <Cell col="13" rowspan="2" text="발생연차" taborder="undefined"/>
  38. <Cell row="1" col="2" text="내역"/>
  39. <Cell row="1" col="3"/>
  40. <Cell row="1" col="4" text="-"/>
  41. <Cell row="1" col="5" text="연차수"/>
  42. <Cell row="1" col="6" text="누적연차수"/>
  43. <Cell row="1" col="7" text="누적비율(%)"/>
  44. <Cell row="1" col="8" text="내역"/>
  45. <Cell row="1" col="9" text="연차수"/>
  46. <Cell row="1" col="10" text="누적연차수"/>
  47. <Cell row="1" col="11" text="누적비율(%)"/>
  48. </Band>
  49. <Band id="body">
  50. <Cell celltype="head"/>
  51. <Cell col="1" displaytype="date" text="bind:dutym" mask="yyyy-MM" calendardisplaynulltype="nulltext"/>
  52. <Cell col="2" style="align:left middle;" text="bind:plandaydesc"/>
  53. <Cell col="3" displaytype="text" edittype="text" text="bind:planadd" expandshow="show"/>
  54. <Cell col="4" displaytype="text" edittype="text" text="bind:plandel"/>
  55. <Cell col="5" style="align:center middle;" text="bind:plandayno"/>
  56. <Cell col="6" style="align:center middle;" text="bind:planncnt"/>
  57. <Cell col="7" displaytype="number" style="align:center middle;" text="bind:planyul" expr="expr:Math.round(planyul)"/>
  58. <Cell col="8" style="align:left middle;" text="bind:useddaydesc"/>
  59. <Cell col="9" style="align:center middle;" text="bind:useddayno"/>
  60. <Cell col="10" style="align:center middle;" text="bind:usedncnt"/>
  61. <Cell col="11" displaytype="number" style="align:center middle;" text="bind:usedyul" expr="expr:Math.round(usedyul)"/>
  62. <Cell col="12" text="bind:overused"/>
  63. <Cell col="13" text="bind:genryearno"/>
  64. </Band>
  65. </Format>
  66. </Formats>
  67. </Grid>
  68. <Static id="caption6" text="개인근태집계조회" class="tit_1" position="absolute 0 0 192 23"/>
  69. <Div id="group4" taborder="1" position="absolute 0 23 1022 61" class="div_SA" anchor="left top right">
  70. <Layouts>
  71. <Layout>
  72. <Static id="caption1" text="근무년도 :" class="search_name" position="absolute 9 11 95 28" anchor="default"/>
  73. <Calendar id="ipt_dutym" taborder="1" class="input_search" position="absolute 104 10 199 29" mask="yyyy" anchor="default" autoselect="true" autoskip="true" dateformat="yyyy" value="null" editformat="yyyy" onchanged="group4_ipt_dutym_onchanged" style="align:center middle;"/>
  74. <Static id="caption3" text="사원번호 :" class="search_name" position="absolute 239 11 325 28" anchor="default"/>
  75. <Edit id="ipt_emplno" taborder="2" class="input_search" position="absolute 328 10 393 29" anchor="default" autoselect="true" autoskip="true" onkeydown="group4_ipt_emplno_onkeydown"/>
  76. <Button id="btn_help" taborder="3" class="icon_search" position="absolute 398 12 414 28" anchor="default" onclick="group4_btn_help_onclick"/>
  77. <Edit id="ipt_emplnm" taborder="4" class="input_search" enable="false" position="absolute 419 10 509 29" anchor="default"/>
  78. <Shape id="line13" linetype="vertical" class="line_4" position="absolute 715 8 721 30" anchor="top right"/>
  79. <Button id="btn_sear" taborder="5" text="조회" class="btn1" position="absolute 733 8 789 30" anchor="top right" onclick="group4_btn_sear_onclick"/>
  80. <Button id="btn_save" taborder="6" text="저장" class="btn4" position="absolute 790 8 846 30" anchor="top right" onclick="group4_btn_save_onclick"/>
  81. <Button id="btn_print" taborder="7" text="신청서 출력" class="btn3" position="absolute 911 8 1007 30" anchor="top right" onclick="group4_btn_print_onclick"/>
  82. <Button id="button9" taborder="8" text="Excel" class="btn7" position="absolute 848 8 909 30" anchor="top right" onclick="group4_button9_onclick"/>
  83. </Layout>
  84. </Layouts>
  85. </Div>
  86. <Combo id="cmb_instcd" taborder="2" class="combo_search" visible="false" position="absolute 190 68 335 87"/>
  87. <Static id="caption4" text="개인 복무 현황" class="tit_2" position="absolute 0 71 131 92"/>
  88. <Shape id="line2" linetype="horizontal" class="line_10" position="absolute 0 87 1020 93" anchor="left top right"/>
  89. <Grid id="grd_userinfo" taborder="3" binddataset="ds_main_srvpinfo_userinfo" useinputpanel="false" position="absolute 0 92 1020 158" autoenter="select" autofittype="col" cellsizingtype="col" anchor="all">
  90. <Formats>
  91. <Format id="default">
  92. <Columns>
  93. <Column size="24"/>
  94. <Column size="80"/>
  95. <Column size="90"/>
  96. <Column size="100"/>
  97. <Column size="120"/>
  98. <Column size="90"/>
  99. <Column size="0"/>
  100. <Column size="0"/>
  101. <Column size="100"/>
  102. <Column size="110"/>
  103. <Column size="100"/>
  104. <Column size="100"/>
  105. </Columns>
  106. <Rows>
  107. <Row size="24" band="head"/>
  108. <Row size="24"/>
  109. </Rows>
  110. <Band id="head">
  111. <Cell/>
  112. <Cell col="1" text="사원번호"/>
  113. <Cell col="2" text="성명"/>
  114. <Cell col="3" text="직급"/>
  115. <Cell col="4" text="직위"/>
  116. <Cell col="5" text="발생연차"/>
  117. <Cell col="6" text="총 계획연차 수"/>
  118. <Cell col="7" text="총 연차 계획율(%)"/>
  119. <Cell col="8" text="총 사용 연차수"/>
  120. <Cell col="9" text="총 연차 사용율(%)"/>
  121. <Cell col="10" text="초과 사용 연차수"/>
  122. <Cell col="11" text="초과 사용 처리"/>
  123. </Band>
  124. <Band id="body">
  125. <Cell celltype="head"/>
  126. <Cell col="1" text="bind:emplno" editautoselect="true"/>
  127. <Cell col="2" text="bind:emplnm" editautoselect="true"/>
  128. <Cell col="3" text="bind:jobgradnm" editautoselect="true"/>
  129. <Cell col="4" text="bind:jobposnm" editautoselect="true"/>
  130. <Cell col="5" text="bind:genryearno" editautoselect="true"/>
  131. <Cell col="6" text="bind:plandayno" editautoselect="true"/>
  132. <Cell col="7" text="bind:planyul" editautoselect="true"/>
  133. <Cell col="8" text="bind:useddayno" editautoselect="true"/>
  134. <Cell col="9" displaytype="number" style="align:center middle;" text="bind:usedyul" expr="expr:Math.round(usedyul)" editautoselect="true"/>
  135. <Cell col="10" text="bind:overused"/>
  136. <Cell col="11" text="bind:overgbn"/>
  137. </Band>
  138. </Format>
  139. </Formats>
  140. </Grid>
  141. <Static id="caption8" text="※ 발생연차는 현재 생성자료 기준으로, 추후 개인 발령사항(면직, 휴복직 등) 및 개인 복무 계획에 따라 변동될 수 있습니다. " position="absolute 263 69 1017 89" style="color:#0000ffff;font:Dotum,9,bold;" anchor="top right"/>
  142. <Static id="caption7" text="개인 복무 계획 및 신청 내역" class="tit_2" position="absolute 0 168 275 189" anchor="left bottom"/>
  143. <Shape id="line1" class="line_10" position="absolute 0 180 1020 194" anchor="left right bottom"/>
  144. <Div id="grp_plan" taborder="6" style="background:#ffffffff;border:1 solid #808080ff ;" visible="false" position="absolute 295 250 510 440">
  145. <Layouts>
  146. <Layout>
  147. <Static id="caption5" text="삭제" position="absolute 0 0 0 0"/>
  148. <Button id="button5" taborder="6" text="확인" class="btn2" position="absolute 118 159 160 178" onclick="grp_plan_button5_onclick"/>
  149. <Button id="button6" taborder="7" text="종료" class="btn2" position="absolute 161 159 203 178" onclick="grp_plan_button6_onclick"/>
  150. <Grid id="grd_planlist" taborder="8" binddataset="ds_temp_planlist" useinputpanel="false" position="absolute 10 10 204 155" autoenter="select" autofittype="col" cellsizingtype="col" onexpanddown="grp_plan_grd_planlist_onexpanddown">
  151. <Formats>
  152. <Format id="default">
  153. <Columns>
  154. <Column size="110"/>
  155. <Column size="65"/>
  156. </Columns>
  157. <Rows>
  158. <Row size="24" band="head"/>
  159. <Row size="24"/>
  160. </Rows>
  161. <Band id="head">
  162. <Cell text="계획연차일"/>
  163. <Cell col="1" text="근무코드"/>
  164. </Band>
  165. <Band id="body">
  166. <Cell edittype="expand" style="align:center middle;" text="bind:plandd" mask="####-##-##" maskchar=" " editautoselect="true" editautoskip="true" expandshow="show" calendardisplay="display" calendardisplaynulltype="nulltext"/>
  167. <Cell col="1" displaytype="combo" edittype="combo" text="bind:dutcd" combodataset="ds_cmb_dutcd" combocodecol="value" combodatacol="label"/>
  168. </Band>
  169. </Format>
  170. </Formats>
  171. </Grid>
  172. <Button id="button7" taborder="9" text="행추가" class="btn2" position="absolute 10 159 63 178" onclick="grp_plan_button7_onclick"/>
  173. <Button id="button8" taborder="10" text="행삭제" class="btn2" position="absolute 64 159 117 178" onclick="grp_plan_button8_onclick"/>
  174. </Layout>
  175. </Layouts>
  176. </Div>
  177. <Div id="grp_del" taborder="7" style="background:#ffffffff;border:1 solid #808080ff ;" visible="false" position="absolute 309 256 499 446">
  178. <Layouts>
  179. <Layout>
  180. <Static id="caption2" text="삭제" position="absolute 0 0 0 0" anchor="default"/>
  181. <Button id="button3" taborder="4" text="삭제" class="btn2" position="absolute 94 159 136 178" anchor="default" onclick="grp_del_button3_onclick"/>
  182. <Button id="button4" taborder="5" text="종료" class="btn2" position="absolute 137 159 179 178" anchor="default" onclick="grp_del_button4_onclick"/>
  183. <Grid id="grd_dellist" taborder="6" binddataset="ds_temp_dellist" useinputpanel="false" position="absolute 10 10 179 155" anchor="default" autoenter="select" autofittype="col" cellsizingtype="col">
  184. <Formats>
  185. <Format id="default">
  186. <Columns>
  187. <Column size="110"/>
  188. <Column size="40"/>
  189. </Columns>
  190. <Rows>
  191. <Row size="24" band="head"/>
  192. <Row size="24"/>
  193. </Rows>
  194. <Band id="head">
  195. <Cell text="삭제할 계획연차일"/>
  196. <Cell col="1" text="선택"/>
  197. </Band>
  198. <Band id="body">
  199. <Cell displaytype="date" edittype="date" text="bind:plandd" editautoselect="true" calendardisplay="display" calendardisplaynulltype="nulltext"/>
  200. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:chk" expr="expr:chk == 'Y' ? 1 : 0"/>
  201. </Band>
  202. </Format>
  203. </Formats>
  204. </Grid>
  205. </Layout>
  206. </Layouts>
  207. </Div>
  208. <Div id="calendar1" taborder="8" position="absolute 347 330 565 536" style="background:#ffffffff;border:1 solid #808080ff ;" visible="false">
  209. <Layouts>
  210. <Layout>
  211. <Grid id="grd_calendar" taborder="0" binddataset="ds_hidden_calendar_weeklist_list" useinputpanel="false" selecttype="cell" autofittype="col,allrow" oncellclick="grd_calendar_oncellclick" position="absolute 0 31 216 180" anchor="left top" onclick="">
  212. <Formats>
  213. <Format id="default">
  214. <Columns>
  215. <Column size="61"/>
  216. <Column size="61"/>
  217. <Column size="61"/>
  218. <Column size="61"/>
  219. <Column size="61"/>
  220. <Column size="61"/>
  221. <Column size="61"/>
  222. </Columns>
  223. <Rows>
  224. <Row size="24" band="head"/>
  225. <Row size="24"/>
  226. </Rows>
  227. <Band id="head">
  228. <Cell text="일"/>
  229. <Cell col="1" text="월"/>
  230. <Cell col="2" text="화"/>
  231. <Cell col="3" text="수"/>
  232. <Cell col="4" text="목"/>
  233. <Cell col="5" text="금"/>
  234. <Cell col="6" text="토"/>
  235. </Band>
  236. <Band id="body">
  237. <Cell style="color:red;color2:red;selectfont:arial,9,bold;" class="color_sun" text="bind:sun" taborder="undefined"/>
  238. <Cell col="1" style="selectfont:arial,9,bold;" text="bind:mon" taborder="undefined"/>
  239. <Cell col="2" style="selectfont:arial,9,bold;" text="bind:tue" taborder="undefined"/>
  240. <Cell col="3" style="selectfont:arial,9,bold;" text="bind:wed" taborder="undefined"/>
  241. <Cell col="4" style="selectfont:arial,9,bold;" text="bind:thu" taborder="undefined"/>
  242. <Cell col="5" style="selectfont:arial,9,bold;" text="bind:fri" taborder="undefined"/>
  243. <Cell col="6" style="color:blue;color2:blue;selectfont:arial,9,bold;" class="color_sat" text="bind:sat" taborder="undefined"/>
  244. </Band>
  245. </Format>
  246. </Formats>
  247. </Grid>
  248. <Div id="group2" taborder="1" class="div_SA" position="absolute 0 0 216 31" anchor="default">
  249. <Layouts>
  250. <Layout>
  251. <Button id="button36" taborder="0" onclick="group2_button36_onclick" class="icon_pre_year" position="absolute 8 7 24 23" anchor="default"/>
  252. <Button id="button33" taborder="1" onclick="group2_button33_onclick" class="icon_pre_month" position="absolute 25 7 41 23" anchor="default"/>
  253. <Edit id="output1" taborder="2" readonly="true" class="calendar_output" position="absolute 50 6 88 25" style="border:1 none #3576aeff ;font:Dotum,9,bold;" anchor="default"/>
  254. <Static id="caption24" text="년" class="calendar_output" position="absolute 88 6 108 25" style="color:black;font:Dotum,9,bold;" anchor="default"/>
  255. <Edit id="opt_month" taborder="3" readonly="true" class="calendar_output" position="absolute 108 6 136 25" style="border:1 none #3576aeff ;font:Dotum,9,bold;" anchor="default"/>
  256. <Static id="caption25" text="월" class="calendar_output" position="absolute 130 6 150 25" style="color:black;font:Dotum,9,bold;" anchor="default"/>
  257. <Button id="button35" taborder="4" onclick="group2_button35_onclick" class="icon_next_month" position="absolute 156 7 172 23" anchor="default"/>
  258. <Button id="button31" taborder="5" onclick="group2_button31_onclick" class="icon_next_year" position="absolute 180 7 196 23" anchor="default"/>
  259. </Layout>
  260. </Layouts>
  261. </Div>
  262. </Layout>
  263. </Layouts>
  264. </Div>
  265. <Static id="cap_calendar" text="※ 클릭 시 종료" visible="false" position="absolute 478 516 563 531" style="color:darkblue;" onclick="cap_calendar_onclick"/>
  266. </Layout>
  267. </Layouts>
  268. <Objects>
  269. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_send_oncolumnchanged">
  270. <ColumnInfo>
  271. <Column id="instcd" type="STRING" size="256"/>
  272. <Column id="dutyy" type="STRING" size="256"/>
  273. <Column id="emplno" type="STRING" size="256"/>
  274. <Column id="emplnm" type="STRING" size="256"/>
  275. <Column id="dutplceinst" type="STRING" size="256"/>
  276. </ColumnInfo>
  277. <Rows>
  278. <Row>
  279. <Col id="instcd"/>
  280. <Col id="dutyy"/>
  281. <Col id="emplno"/>
  282. <Col id="emplnm"/>
  283. <Col id="dutplceinst"/>
  284. </Row>
  285. </Rows>
  286. </Dataset>
  287. <Dataset id="ds_main_srvpinfo_userinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  288. <ColumnInfo>
  289. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  290. <Column id="emplnm" type="STRING" size="256" sumtext="이름"/>
  291. <Column id="jobgradcd" type="STRING" size="256" sumtext="직급"/>
  292. <Column id="jobgradnm" type="STRING" size="256" sumtext="직급"/>
  293. <Column id="jobposcd" type="STRING" size="256" sumtext="직위"/>
  294. <Column id="jobposnm" type="STRING" size="256" sumtext="직위"/>
  295. <Column id="genryearno" type="STRING" size="256" sumtext="발생연차"/>
  296. <Column id="plandayno" type="STRING" size="256" sumtext="계획연차수"/>
  297. <Column id="planyul" type="STRING" size="256" sumtext="연차계획율"/>
  298. <Column id="useddayno" type="STRING" size="256" sumtext="사용연차수"/>
  299. <Column id="usedyul" type="STRING" size="256" sumtext="연차사용율"/>
  300. </ColumnInfo>
  301. </Dataset>
  302. <Dataset id="ds_main_srvpinfo_srvplist" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  303. <ColumnInfo>
  304. <Column id="emplno" type="STRING" size="256" sumtext="사원번호"/>
  305. <Column id="dutym" type="STRING" size="256" sumtext="근무월"/>
  306. <Column id="plandaydesc" type="STRING" size="256" sumtext="계획내역"/>
  307. <Column id="plandayno" type="STRING" size="256" sumtext="계획일수"/>
  308. <Column id="planyul" type="STRING" size="256" sumtext="계획율"/>
  309. <Column id="planncnt" type="STRING" size="256" sumtext="누적계획일수"/>
  310. <Column id="useddaydesc" type="STRING" size="256" sumtext="사용내역"/>
  311. <Column id="useddayno" type="STRING" size="256" sumtext="사용일수"/>
  312. <Column id="usedyul" type="STRING" size="256" sumtext="사용율"/>
  313. <Column id="usedncnt" type="STRING" size="256" sumtext="누적사용일수"/>
  314. <Column id="genryearno" type="STRING" size="256" sumtext="발생연차"/>
  315. <Column id="instcd" type="STRING" size="256"/>
  316. <Column id="plandd" type="STRING" size="256"/>
  317. <Column id="dutcd" type="STRING" size="256"/>
  318. </ColumnInfo>
  319. </Dataset>
  320. <Dataset id="ds_temp_planlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  321. <ColumnInfo>
  322. <Column id="instcd" type="STRING" size="256"/>
  323. <Column id="emplno" type="STRING" size="256"/>
  324. <Column id="plandd" type="STRING" size="256"/>
  325. <Column id="dutcd" type="STRING" size="256"/>
  326. </ColumnInfo>
  327. </Dataset>
  328. <Dataset id="ds_temp_dellist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_temp_dellist_oncolumnchanged">
  329. <ColumnInfo>
  330. <Column id="instcd" type="STRING" size="256"/>
  331. <Column id="dutym" type="STRING" size="256"/>
  332. <Column id="emplno" type="STRING" size="256"/>
  333. </ColumnInfo>
  334. </Dataset>
  335. <Dataset id="ds_send_retrparams" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  336. <ColumnInfo>
  337. <Column id="emplno" type="STRING" size="256"/>
  338. <Column id="emplnm" type="STRING" size="256"/>
  339. <Column id="dutplceinst" type="STRING" size="256"/>
  340. <Column id="instcd" type="STRING" size="256"/>
  341. </ColumnInfo>
  342. </Dataset>
  343. <Dataset id="ds_cmb_dutcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  344. <ColumnInfo>
  345. <Column id="label" type="STRING" size="256"/>
  346. <Column id="value" type="STRING" size="256"/>
  347. </ColumnInfo>
  348. <Rows>
  349. <Row>
  350. <Col id="label">연차</Col>
  351. <Col id="value">V</Col>
  352. </Row>
  353. <Row>
  354. <Col id="label">반차</Col>
  355. <Col id="value">V1</Col>
  356. </Row>
  357. </Rows>
  358. </Dataset>
  359. <Dataset id="ds_hidden_calendar_weeklist_list" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  360. <ColumnInfo>
  361. <Column id="sun" type="STRING" size="256"/>
  362. <Column id="mon" type="STRING" size="256"/>
  363. <Column id="tue" type="STRING" size="256"/>
  364. <Column id="wed" type="STRING" size="256"/>
  365. <Column id="thu" type="STRING" size="256"/>
  366. <Column id="fri" type="STRING" size="256"/>
  367. <Column id="sat" type="STRING" size="256"/>
  368. <Column id="today" type="STRING" size="256"/>
  369. </ColumnInfo>
  370. <Rows>
  371. <Row>
  372. <Col id="sun"/>
  373. <Col id="mon"/>
  374. <Col id="tue"/>
  375. <Col id="wed"/>
  376. <Col id="thu"/>
  377. <Col id="fri"/>
  378. <Col id="sat"/>
  379. </Row>
  380. <Row>
  381. <Col id="sun"/>
  382. <Col id="mon"/>
  383. <Col id="tue"/>
  384. <Col id="wed"/>
  385. <Col id="thu"/>
  386. <Col id="fri"/>
  387. <Col id="sat"/>
  388. </Row>
  389. <Row>
  390. <Col id="sun"/>
  391. <Col id="mon"/>
  392. <Col id="tue"/>
  393. <Col id="wed"/>
  394. <Col id="thu"/>
  395. <Col id="fri"/>
  396. <Col id="sat"/>
  397. </Row>
  398. <Row>
  399. <Col id="sun"/>
  400. <Col id="mon"/>
  401. <Col id="tue"/>
  402. <Col id="wed"/>
  403. <Col id="thu"/>
  404. <Col id="fri"/>
  405. <Col id="sat"/>
  406. </Row>
  407. <Row>
  408. <Col id="sun"/>
  409. <Col id="mon"/>
  410. <Col id="tue"/>
  411. <Col id="wed"/>
  412. <Col id="thu"/>
  413. <Col id="fri"/>
  414. <Col id="sat"/>
  415. </Row>
  416. <Row>
  417. <Col id="sun"/>
  418. <Col id="mon"/>
  419. <Col id="tue"/>
  420. <Col id="wed"/>
  421. <Col id="thu"/>
  422. <Col id="fri"/>
  423. <Col id="sat"/>
  424. </Row>
  425. </Rows>
  426. </Dataset>
  427. <Dataset id="ds_send_updatestr" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  428. <ColumnInfo>
  429. <Column id="m" type="STRING" size="256"/>
  430. <Column id="instcd" type="STRING" size="256"/>
  431. <Column id="emplno" type="STRING" size="256"/>
  432. <Column id="plandd" type="STRING" size="256"/>
  433. <Column id="dutcd" type="STRING" size="256"/>
  434. </ColumnInfo>
  435. </Dataset>
  436. <Dataset id="ds_send_userinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  437. <ColumnInfo>
  438. <Column id="emplno" type="STRING" size="256"/>
  439. <Column id="anualcalcyy" type="STRING" size="256"/>
  440. <Column id="overgbn" type="STRING" size="256"/>
  441. </ColumnInfo>
  442. <Rows>
  443. <Row/>
  444. </Rows>
  445. </Dataset>
  446. <Dataset id="ds_overgbn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  447. <ColumnInfo>
  448. <Column id="label" type="STRING" size="256"/>
  449. <Column id="value" type="STRING" size="256"/>
  450. </ColumnInfo>
  451. <Rows>
  452. <Row>
  453. <Col id="label">연차공제</Col>
  454. <Col id="value">1</Col>
  455. </Row>
  456. <Row>
  457. <Col id="label">급여공제</Col>
  458. <Col id="value">2</Col>
  459. </Row>
  460. </Rows>
  461. </Dataset>
  462. </Objects>
  463. <Bind>
  464. <BindItem id="item0" compid="group4.ipt_dutym" propid="value" datasetid="ds_send" columnid="dutyy"/>
  465. <BindItem id="item1" compid="group4.ipt_emplno" propid="value" datasetid="ds_send" columnid="emplno"/>
  466. <BindItem id="item2" compid="group4.ipt_emplnm" propid="value" datasetid="ds_send" columnid="emplnm"/>
  467. <BindItem id="item3" compid="cmb_instcd" propid="value" datasetid="ds_send" columnid="instcd"/>
  468. </Bind>
  469. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  470. * System Name :
  471. * Job Name :
  472. * Creator :
  473. * Make Date : 2017-06-19
  474. * Description :
  475. *---------------------------------------------------------------------------------------
  476. * Modify Date Modifier Modify Description
  477. *---------------------------------------------------------------------------------------
  478. * 2017-06-19 Live Converter TF->XP
  479. *
  480. *---------------------------------------------------------------------------------------
  481. ****************************************************************************************/
  482. include "com_commonxp::comm_main.xjs";
  483. include "mis_miscommonxp::MIS.xjs";
  484. include "mis_humtrafactmngtxp::RPB001.xjs";
  485. function SMRPD00250_oninit(obj:Form, e:InitEventInfo)
  486. {
  487. frmf_initForm(obj);
  488. }
  489. function SMRPD00250_onload(obj:Form, e:LoadEventInfo)
  490. {
  491. grdf_initGrid(grd_srvplist);
  492. grdf_setRowTypeIcon(grd_srvplist, 0);
  493. grdf_initGrid(grd_userinfo);
  494. grdf_setRowTypeIcon(grd_userinfo, 0);
  495. fInitialize();
  496. }
  497. var DUT_UNIT_CD = "";
  498. var DUT_UNIT_NM = "";
  499. function fInitialize()
  500. {
  501. misfComboInstCdListMulti("cmb_instcd",String(utlf_getCurrentDate()).substr(0, 8),"","Y");
  502. misfGetUserAuth();
  503. uid = frmf_getOpenerUID();
  504. if (!utlf_isNull(uid))
  505. {
  506. condparam = opener.frmf_getParameter("condparam");
  507. condarray = condparam.split("▦");
  508. gbn = condarray[0];
  509. instcd = condarray[1];
  510. dutyy = condarray[2];
  511. emplno = condarray[3];
  512. emplnm = condarray[4];
  513. group4.btn_save.enable = false;
  514. grd_srvplist.enable = false;
  515. group4.ipt_emplnm.enable = false;
  516. group4.btn_help.enable = false;
  517. }
  518. else
  519. {
  520. instcd = sysf_getUserInfo("dutplceinstcd");
  521. dutyy = String(utlf_getCurrentDate()).substr(0, 4);
  522. emplno = sysf_getUserInfo("userid");
  523. emplnm = sysf_getUserInfo("usernm");
  524. group4.btn_save.enable = true;
  525. grd_srvplist.enable = true;
  526. if (DUTY_PART_YN == "Y" && DUTY_DILI_YN =="Y")
  527. {
  528. group4.ipt_emplnm.enable = true;
  529. group4.btn_help.enable = true;
  530. }
  531. else
  532. {
  533. group4.ipt_emplnm.enable = false;
  534. group4.btn_help.enable = false;
  535. }
  536. }
  537. ds_send.setColumn(0, "instcd", instcd);
  538. ds_send.setColumn(0, "dutyy", dutyy);
  539. ds_send.setColumn(0, "emplno", emplno);
  540. ds_send.setColumn(0, "emplnm", emplnm);
  541. //group4.btn_sear.click();
  542. }
  543. function group4_ipt_dutym_onchanged(obj:Calendar, e:ChangeEventInfo)
  544. {
  545. var date = String(obj.value).substr(0,4)
  546. ds_send.setColumn(0, "dutyy", date);
  547. }
  548. function ds_send_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  549. {
  550. if(e.columnid == "emplno")
  551. {
  552. group4.ipt_emplno.value = e.newvalue;
  553. group4.ipt_emplno.setFocus();
  554. //rpbfValidationCheck("EMPLNO", "emplno,emplnm,dutunitcd,dutunitnm,dutplceinst");
  555. }
  556. }
  557. function group4_ipt_emplno_onkeydown(obj:Edit, e:KeyEventInfo)
  558. {
  559. if(e.keycode == 13)
  560. {
  561. obj.updateToDataset();
  562. rpbfValidationCheck("EMPLNO", "emplno,emplnm,dutunitcd,dutunitnm,dutplceinst");
  563. if(!utlf_isNull(ds_send.getColumn(0, "emplno")) && !utlf_isNull(ds_send.getColumn(0, "emplnm")) && sysf_getUserInfo("dutplceinstcd") == "001")
  564. {
  565. ds_send.setColumn(0, "instcd", ds_send.getColumn(0, "dutplceinst"))
  566. }
  567. group4.btn_sear.click();
  568. }
  569. }
  570. function group4_btn_help_onclick(obj:Button, e:ClickEventInfo)
  571. {
  572. rpbfOpenPopUpList("SPRPB00101", group4.ipt_emplno, "emplno,emplnm,dutunitcd,dutunitnm,dutplceinst", "", "N");
  573. if(!utlf_isNull(ds_send_retrparams.getColumn(0, "emplno")) && !utlf_isNull(ds_send_retrparams.getColumn(0, "emplnm")) && sysf_getUserInfo("dutplceinstcd") == "001")
  574. {
  575. ds_send_retrparams.setColumn(0, "instcd", ds_send_retrparams.getColumn(0, "dutplceinst"));
  576. }
  577. }
  578. function group4_btn_sear_onclick(obj:Button, e:ClickEventInfo)
  579. {
  580. misfGridInit(grd_userinfo);
  581. misfGridInit(grd_srvplist);
  582. var oParam = {};
  583. oParam.id = "TRRPD00251";
  584. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  585. oParam.method = "reqGetSrvpList";
  586. oParam.inds = "req=ds_send";
  587. oParam.outds = "ds_main_srvpinfo_srvplist=srvplist ds_main_srvpinfo_userinfo=userinfo";
  588. oParam.async = false;
  589. //oParam.callback = "cf_TRRPD00251";
  590. tranf_submit(oParam);
  591. var overgbn = ds_main_srvpinfo_userinfo.getColumn(0, "overgbn");
  592. var overused = ds_main_srvpinfo_userinfo.getColumn(0, "overused");
  593. if (dutyy == "2017" && overused != "0" && overgbn != "1" && overgbn != "2") {
  594. sysf_messageBox("초과 사용 연차가 있습니다.\r\n\r\n초과 사용 연차에 대한 처리 방법을 입력하세요.\r\n(연차공제/급여공제)", "I999");
  595. }
  596. }
  597. function grd_srvplist_oncellclick(obj:Grid, e:GridClickEventInfo)
  598. {
  599. if (calendar1.visible)
  600. {
  601. var dutym = ds_main_srvpinfo_srvplist.getColumn(e.row, "dutym");
  602. var curdutym = String(utlf_getCurrentDate()).substr(0, 6);
  603. calendar1.group2.output1.value = dutym.substr(0, 4);
  604. calendar1.group2.opt_month.value = dutym.substr(4, 3);
  605. make_calendar();
  606. if (dutym < curdutym)
  607. {
  608. sysf_messageBox("과거의 계획사항은 변경할 수 없습니다.", "E999");
  609. }
  610. }
  611. }
  612. function grd_srvplist_onexpanddown(obj:Grid, e:GridMouseEventInfo)
  613. {
  614. var curdutym = String(utlf_getCurrentDate()).substr(0, 6);
  615. var dutym = ds_main_srvpinfo_srvplist.getColumn(e.row, "dutym");
  616. if (dutym < curdutym)
  617. {
  618. sysf_messageBox("과거의 계획사항은 변경할 수 없습니다.", "E999");
  619. return ;
  620. }
  621. if (e.cell == grd_srvplist.getBindCellIndex("Body", "planadd"))
  622. {
  623. dutym = ds_main_srvpinfo_srvplist.getColumn(e.row, "dutym");
  624. plandaydesc = ds_main_srvpinfo_srvplist.getColumn(e.row, "plandaydesc");
  625. planarr = String(plandaydesc).split(", ");
  626. misfGridInit(grp_plan.grd_planlist);
  627. for(var i = 0; i < planarr.length; i++)
  628. {
  629. j = i;
  630. dsf_makeValue(ds_temp_planlist, "plandd", "string", dutym + planarr[i].substr(0, 2), j);
  631. if(planarr[i].substr(2, 4) == "(V1)")
  632. {
  633. dsf_makeValue(ds_temp_planlist, "dutcd", "string", "V1", j);
  634. }
  635. else
  636. {
  637. dsf_makeValue(ds_temp_planlist, "dutcd", "string", "V", j);
  638. }
  639. }
  640. grp_plan.visible = true;
  641. }
  642. else if (e.cell == grd_srvplist.getBindCellIndex("Body", "plandel"))
  643. {
  644. dutym = ds_main_srvpinfo_srvplist.getColumn(e.row, "dutym");
  645. plandaydesc = ds_main_srvpinfo_srvplist.getColumn(e.row, "plandaydesc");
  646. if (utlf_isNull(plandaydesc))
  647. {
  648. sysf_messageBox("삭제할 내역이 없습니다.", "I999");
  649. return;
  650. }
  651. else
  652. {
  653. planarr = String(plandaydesc).split(", ");
  654. misfGridInit(grd_dellist);
  655. for(var i = 0; i < planarr.length; i++)
  656. {
  657. j = i + 1;
  658. dsf_makeValue(ds_temp_dellist, "plandd", "string", dutym + planarr[i], j);
  659. dsf_makeValue(ds_temp_dellist, "chk", "string", "N", j);
  660. }
  661. grp_del.visible = true;
  662. }
  663. }
  664. }
  665. function group4_btn_save_onclick(obj:Button, e:ClickEventInfo)
  666. {
  667. var row = ds_main_srvpinfo_srvplist.rowcount;
  668. var planyul = ds_main_srvpinfo_srvplist.getColumn(row-1, "planyul");
  669. jobgradcd = ds_main_srvpinfo_userinfo.getColumn(0, "jobgradcd");
  670. jobgradnm = ds_main_srvpinfo_userinfo.getColumn(0, "jobgradnm");
  671. jobposcd = ds_main_srvpinfo_userinfo.getColumn(0, "jobposcd");
  672. // if (((!utlf_isNull(jobposcd)|| jobgradcd <= "03") && planyul != "100") || eval(planyul) < 80)
  673. // {
  674. // msg = "다음과 같이 계획 연차 등록을 권고합니다. \r\n\r\n\r\n"
  675. // + "* 간부 및 부서장, 3급이상 직원 100%\r\n"
  676. // + "( ※ 부서장 : 과장, 실장, 팀장, 기사장, 수간호사 포함 )\r\n\r\n"
  677. // + "* 일반직원 80% 이상";
  678. // sysf_messageBox(msg, "I999");
  679. // }
  680. ds_send_updatestr.clearData();
  681. ds_temp_dellist.clearData();
  682. for(var i = 0 ; i < ds_main_srvpinfo_srvplist.rowcount; i ++)
  683. {
  684. if (ds_main_srvpinfo_srvplist.getRowType(i) == 4)
  685. {
  686. dutym = ds_main_srvpinfo_srvplist.getColumn(i, "dutym");
  687. plandaydesc = ds_main_srvpinfo_srvplist.getColumn(i, "plandaydesc");
  688. planarr = String(plandaydesc).split(", ");
  689. for (var j = 0; j < planarr.length; j++)
  690. {
  691. plandd = dutym + planarr[j];
  692. oldlen = plandd.length;
  693. plandd = plandd.replace("(V1)", "");
  694. newlen = plandd.length;
  695. if (oldlen != newlen)
  696. {
  697. dutcd = "V1";
  698. }
  699. else
  700. {
  701. dutcd = "V";
  702. }
  703. if (plandd.length != 6)
  704. {
  705. var addRow = ds_send_updatestr.addRow();
  706. ds_send_updatestr.setColumn(addRow, "m", "u")
  707. ds_send_updatestr.setColumn(addRow, "instcd", ds_send.getColumn(0, "instcd"));
  708. ds_send_updatestr.setColumn(addRow, "emplno", ds_send.getColumn(0, "emplno"));
  709. ds_send_updatestr.setColumn(addRow, "plandd", plandd);
  710. ds_send_updatestr.setColumn(addRow, "dutcd", dutcd);
  711. }
  712. }
  713. ds_temp_dellist.addRow();
  714. ds_temp_dellist.setColumn(0, "emplno", ds_send.getColumn(0, "emplno"));
  715. ds_temp_dellist.setColumn(0, "instcd", ds_send.getColumn(0, "instcd"));
  716. ds_temp_dellist.setColumn(0, "dutym", dutym);
  717. }
  718. }
  719. var oParam = {};
  720. oParam.id = "TXRPD00251";
  721. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  722. oParam.method = "reqSetPlanSrvpInfo";
  723. oParam.inds = "saveinfo=ds_send_updatestr delinfo=ds_temp_dellist:u";
  724. oParam.outds = "";
  725. oParam.typeStr = "status";
  726. oParam.async = false;
  727. //oParam.callback = "cf_TXRPD00251";
  728. tranf_submit(oParam);
  729. var overgbn = ds_main_srvpinfo_userinfo.getColumn(0, "overgbn");
  730. var overused = ds_main_srvpinfo_userinfo.getColumn(0, "overused");
  731. var dutyy = ds_send.getColumn(0, "dutyy");
  732. if (dutyy == "2017") {
  733. if (overused != "0" && overgbn != "1" && overgbn != "2") {
  734. sysf_messageBox("초과 사용 연차가 있습니다.\r\n\r\n초과 사용 연차에 대한 처리 방법을 입력하세요.\r\n(연차공제/급여공제)", "I999");
  735. return;
  736. }
  737. if (overgbn == "1" || overgbn == "2") {
  738. if (overused == "0") {
  739. sysf_messageBox("초과 사용 연차가 없으므로 처리 방법을 저장하지 않습니다.", "I999");
  740. overgbn = "";
  741. } else {
  742. ds_send_userinfo.clearData();
  743. ds_send_userinfo.addRow();
  744. ds_send_userinfo.setColumn(0, "emplno", ds_main_srvpinfo_userinfo.getColumn(0, "emplno"));
  745. ds_send_userinfo.setColumn(0, "anualcalcyy", "2016");
  746. ds_send_userinfo.setColumn(0, "overgbn", ds_main_srvpinfo_userinfo.getColumn(0, "overgbn"));
  747. var oParam = {};
  748. oParam.id = "TXRPD00252";
  749. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  750. oParam.method = "reqSetOverGbnUserInfo";
  751. oParam.inds = "userinfo=ds_send_userinfo";
  752. oParam.outds = "";
  753. oParam.async = false;
  754. //oParam.callback = "cf_TXRPD00252";
  755. tranf_submit(oParam);
  756. }
  757. }
  758. }
  759. group4.btn_sear.click();
  760. if (dutyy == "2017" && overgbn == "1") {
  761. var ret = sysf_messageBox("연차휴가 당겨쓰기 신청서를 출력하시겠습니까?", "Q999");
  762. if(ret == 6) {
  763. group4.btn_print.click();
  764. }
  765. }
  766. }
  767. function ds_temp_dellist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  768. {
  769. if( e.columnid == "chk" )
  770. {
  771. obj.setColumn(e.row, "chk", (e.newvalue == "Y" || e.newvalue == 1) ? "Y" : "N");
  772. }
  773. }
  774. function grp_plan_button7_onclick(obj:Button, e:ClickEventInfo)
  775. {
  776. ds_temp_planlist.addRow();
  777. }
  778. function grp_plan_button8_onclick(obj:Button, e:ClickEventInfo)
  779. {
  780. ds_temp_planlist.deleteRow(ds_temp_planlist.rowposition)
  781. }
  782. function grp_plan_button5_onclick(obj:Button, e:ClickEventInfo)
  783. {
  784. var daydesc = ""
  785. var row = ds_main_srvpinfo_srvplist.rowposition;
  786. var olddesc = ds_main_srvpinfo_srvplist.getColumn(row, "plandaydesc");
  787. for (var x = 0; x < ds_temp_planlist.rowcount; x++)
  788. {
  789. day = String(ds_temp_planlist.getColumn(x, "plandd")).substr(6, 2);
  790. dutcd = ds_temp_planlist.getColumn(x, "dutcd");
  791. if (utlf_isNull(day)|| utlf_isNull(dutcd))
  792. {
  793. return;
  794. }
  795. day = day + '|' + dutcd;
  796. daydesc = daydesc + day + ", ";
  797. }
  798. daydesc = String(daydesc).substr(0, daydesc.length - 2);
  799. str = daydesc.split(", ");
  800. str = str.sort();
  801. plandaydesc = "";
  802. for (var i = 0; i < str.length; i++)
  803. {
  804. plandd = str[i].substr(0, 2);
  805. dutarr = str[i].split("|");
  806. dutcd = dutarr[1];
  807. if (dutcd == "V1")
  808. {
  809. plandaydesc = plandaydesc + plandd + "(V1)" + ", ";
  810. }
  811. else
  812. {
  813. plandaydesc = plandaydesc + plandd + ", ";
  814. }
  815. }
  816. plandaydesc = plandaydesc.substr(0, plandaydesc.length - 2);
  817. if (olddesc != plandaydesc)
  818. {
  819. ds_main_srvpinfo_srvplist.setColumn(row, "plandaydesc", plandaydesc);
  820. ds_main_srvpinfo_srvplist.updatecontrol = false
  821. ds_main_srvpinfo_srvplist.setRowType(row, "u");
  822. ds_main_srvpinfo_srvplist.updatecontrol = true;
  823. }
  824. grp_plan.visible = false;
  825. }
  826. function grp_plan_button6_onclick(obj:Button, e:ClickEventInfo)
  827. {
  828. grp_plan.visible = false;
  829. }
  830. function grp_del_button3_onclick(obj:Button, e:ClickEventInfo)
  831. {
  832. var plandd = "";
  833. var delcnt = 0;
  834. for (var i = 0; i < ds_temp_dellist.rowcount; i++)
  835. {
  836. if (ds_temp_dellist.getColumn(i, "chk") == "Y")
  837. {
  838. delcnt ++;
  839. }
  840. else
  841. {
  842. plandd = plandd + String(ds_temp_dellist.getColumn(i, "plandd")).substr(6, 2) + ", ";
  843. }
  844. }
  845. if (delcnt > 0)
  846. {
  847. plandd = String(plandd).substr(0, plandd.length - 2);
  848. dutym = group4.ipt_dutym+"-"+String(ds_temp_dellist.getColumn(0, "plandd")).substr(4, 2);
  849. x = ds_main_srvpinfo_srvplist.findRow("dutym", dutym)
  850. if(x > -1)
  851. {
  852. ds_main_srvpinfo_srvplist.setColumn(x, "plandaydesc", plandd);
  853. genryearno = ds_main_srvpinfo_srvplist.getColumn(x, "genryearno");
  854. plandayno = ds_main_srvpinfo_srvplist.getColumn(x, "plandayno");
  855. ds_main_srvpinfo_srvplist.setColumn(x, "plandayno", eval(plandayno) - delcnt);
  856. for (var i = x; i < ds_main_srvpinfo_srvplist.rowcount; i ++)
  857. {
  858. planncnt = ds_main_srvpinfo_srvplist.getColumn(i, "planncnt");
  859. planncnt = eval(planncnt) - delcnt;
  860. planyul = eval(planncnt) / eval(genryearno) * 100 ;
  861. ds_main_srvpinfo_srvplist.setColumn(i, "planncnt", planncnt);
  862. ds_main_srvpinfo_srvplist.setColumn(i, "planyul", planyul);
  863. }
  864. }
  865. }
  866. grp_del.visible = false;
  867. }
  868. function grp_del_button4_onclick(obj:Button, e:ClickEventInfo)
  869. {
  870. grp_del.visible = false;
  871. }
  872. function grp_plan_grd_planlist_onexpanddown(obj:Grid, e:GridMouseEventInfo)
  873. {
  874. dutym = String(ds_main_srvpinfo_srvplist.getColumn(ds_main_srvpinfo_srvplist.rowposition, "dutym"));
  875. calendar1.group2.output1.value = dutym.substr(0, 4);
  876. calendar1.group2.opt_month.value = dutym.substr(4, 3);
  877. calendar1.visible = true;
  878. cap_calendar.visible = true;
  879. make_calendar();
  880. }
  881. function make_calendar()
  882. {
  883. ds_hidden_calendar_weeklist_list.clearData();
  884. var month = calendar1.group2.opt_month.value;
  885. var year = calendar1.group2.output1.value;
  886. var curDate = (year+month+"01").toDate();
  887. curDate.setDate(1);
  888. var startDay = curDate.getDay();
  889. var days = curDate.getMonthDay();
  890. var rows = Math.ceil( ( startDay + days ) / 7 );
  891. for ( var i = 0; i < rows; i++ )
  892. {
  893. ds_hidden_calendar_weeklist_list.addRow();
  894. }
  895. var rowIndex = 0;
  896. var colIndex = startDay;
  897. for ( var i = 1; i <= days; i++ )
  898. {
  899. ds_hidden_calendar_weeklist_list.setColumn(rowIndex, colIndex, i);
  900. colIndex++;
  901. if ( colIndex == 7 )
  902. {
  903. colIndex = 0;
  904. rowIndex++;
  905. }
  906. }
  907. }
  908. function cap_calendar_onclick(obj:Static, e:ClickEventInfo)
  909. {
  910. calendar1.visible = false;
  911. cap_calendar.visible = false;
  912. }
  913. function grd_calendar_oncellclick(obj:Grid, e:GridClickEventInfo)
  914. {
  915. var curdutym = String(utlf_getCurrentDate()).substr(0, 6);
  916. var caldutym = calendar1.group2.output1.value;
  917. if (calendar1.group2.opt_month < 10)
  918. {
  919. caldutym = caldutym + "0" + calendar1.group2.opt_month.value;
  920. }
  921. else
  922. {
  923. caldutym = caldutym + calendar1.group2.opt_month.value;
  924. }
  925. if (caldutym < curdutym)
  926. {
  927. sysf_messageBox("과거의 계획사항은 변경할 수 없습니다.", "E999");
  928. return ;
  929. }
  930. calendar1.visible = false;
  931. cap_calendar.visible = false;
  932. var day = ds_hidden_calendar_weeklist_list.getColumn(e.row, e.col);
  933. if (day < 10)
  934. {
  935. day = "0" + day ;
  936. }
  937. trace(caldutym + day)
  938. ds_temp_planlist.setColumn(ds_temp_planlist.rowposition, "plandd", caldutym + day);
  939. ds_temp_planlist.setColumn(ds_temp_planlist.rowposition, "dutcd", "V");
  940. grp_plan.visible = true;
  941. }
  942. function group4_btn_print_onclick(obj:Button, e:ClickEventInfo)
  943. {
  944. if (ds_main_srvpinfo_userinfo.getRowType(0) != 1) {
  945. sysf_messageBox("저장되지 않은 정보가 존재합니다.", "I999");
  946. return;
  947. }
  948. var overgbn = ds_main_srvpinfo_userinfo.getColumn(0, "overgbn");
  949. var overused = ds_main_srvpinfo_userinfo.getColumn(0, "overused");
  950. if (dutyy == "2017" && overused != "0" && utlf_isNull(overgbn)) {
  951. sysf_messageBox("초과 사용 연차에 대한 처리 방법을 입력하세요.\r\n(연차공제/급여공제)", "I999");
  952. return;
  953. }
  954. if (dutyy == "2017" && overgbn != "1") {
  955. sysf_messageBox("초과 사용 연차에 대한 처리 방법이 [급여공제] 입니다.", "I999");
  956. return;
  957. }
  958. var objDOM = rptf_createDOM();
  959. rptf_setNodeListToDOM(objDOM, "/root/main/srvpinfo/userinfo", ds_main_srvpinfo_userinfo);
  960. var objParam = new Object();
  961. objParam.xml_data_XML1 = objDOM.documentElement.source;
  962. var option = "";
  963. rptf_exeReportPreview30(["RPRPD00250"],[objParam], option, "");
  964. }
  965. function group4_button9_onclick(obj:Button, e:ClickEventInfo)
  966. {
  967. if( grd_srvplist.rowcount > 0 ){
  968. grdf_exportExcel(grd_srvplist, "save", "savetype", false, "", "user", false);
  969. } else {
  970. sysf_messageBox("조회된 데이터가 ", "I004");
  971. return;
  972. }
  973. }
  974. ]]></Script>
  975. </Form>
  976. </FDL>