SMRPD00260_개인연차계획및현황(관리자용).xfdl 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMRPD00260" position="absolute 0 0 1147 772" titletext="연차계획 및 현황 (관리자용)" oninit="SMRPD00260_oninit" onload="SMRPD00260_onload">
  5. <Layouts>
  6. <Layout>
  7. <Combo id="cmb_instcd" taborder="2" class="combo_search" visible="false" position="absolute 995 87 1140 106"/>
  8. <Grid id="grd_empllist" taborder="3" binddataset="ds_main_srvpinfo_empllist" useinputpanel="false" position="absolute 0 91 1140 768" autoenter="select" cellsizingtype="col" autofittype="col" anchor="all" oncelldblclick="grd_empllist_oncelldblclick">
  9. <Formats>
  10. <Format id="default">
  11. <Columns>
  12. <Column size="19"/>
  13. <Column size="70"/>
  14. <Column size="70"/>
  15. <Column size="140"/>
  16. <Column size="100"/>
  17. <Column size="100"/>
  18. <Column size="120"/>
  19. <Column size="90"/>
  20. <Column size="0"/>
  21. <Column size="0"/>
  22. <Column size="90"/>
  23. <Column size="90"/>
  24. <Column size="70"/>
  25. <Column size="60"/>
  26. <Column size="50"/>
  27. <Column size="0"/>
  28. </Columns>
  29. <Rows>
  30. <Row size="24" band="head"/>
  31. <Row size="24" band="head"/>
  32. <Row size="24"/>
  33. </Rows>
  34. <Band id="head">
  35. <Cell rowspan="2" taborder="undefined"/>
  36. <Cell col="1" rowspan="2" text="사원번호" taborder="undefined"/>
  37. <Cell col="2" rowspan="2" text="성명" taborder="undefined"/>
  38. <Cell col="3" rowspan="2" text="근무지" taborder="undefined"/>
  39. <Cell col="4" rowspan="2" text="직종" taborder="undefined"/>
  40. <Cell col="5" rowspan="2" text="직급" taborder="undefined"/>
  41. <Cell col="6" rowspan="2" text="직위" taborder="undefined"/>
  42. <Cell col="7" rowspan="2" text="발생연차" taborder="undefined"/>
  43. <Cell col="8" colspan="2" text="계획 연차" taborder="undefined"/>
  44. <Cell col="10" colspan="2" text="사용 연차" taborder="undefined"/>
  45. <Cell col="12" colspan="2" text="초과 사용" taborder="undefined"/>
  46. <Cell col="14" rowspan="2" text="확인" taborder="undefined"/>
  47. <Cell col="15" text="dutyy"/>
  48. <Cell row="1" col="8" text="연차일수"/>
  49. <Cell row="1" col="9" text="계획율(%)"/>
  50. <Cell row="1" col="10" text="연차일수"/>
  51. <Cell row="1" col="11" text="사용율(%)"/>
  52. <Cell row="1" col="12" text="연차일수"/>
  53. <Cell row="1" col="13" text="처리구분"/>
  54. <Cell row="1" col="15" text="dutyy"/>
  55. </Band>
  56. <Band id="body">
  57. <Cell celltype="head"/>
  58. <Cell col="1" text="bind:emplno"/>
  59. <Cell col="2" text="bind:emplnm"/>
  60. <Cell col="3" text="bind:deptnm"/>
  61. <Cell col="4" text="bind:jobkindnm"/>
  62. <Cell col="5" text="bind:jobgradnm"/>
  63. <Cell col="6" text="bind:jobposnm"/>
  64. <Cell col="7" text="bind:genryearno"/>
  65. <Cell col="8" text="bind:plandayno"/>
  66. <Cell col="9" text="bind:planyul"/>
  67. <Cell col="10" text="bind:useddayno"/>
  68. <Cell col="11" text="bind:usedyul"/>
  69. <Cell col="12" text="bind:overused"/>
  70. <Cell col="13" text="bind:overgbn"/>
  71. <Cell col="14" displaytype="checkbox" edittype="checkbox" text="bind:confirmyn" expr="expr:confirmyn == 'Y' ? 1 : 0"/>
  72. <Cell col="15" text="bind:dutyy"/>
  73. </Band>
  74. </Format>
  75. </Formats>
  76. </Grid>
  77. <Static id="caption6" text="연차계획 및 현황 (관리자용)" class="tit_1" position="absolute 0 0 192 23"/>
  78. <Div id="group4" taborder="1" position="absolute 0 23 1141 63" class="div_SA" anchor="left top right">
  79. <Layouts>
  80. <Layout>
  81. <Static id="caption1" text="근무년도 :" class="search_name" position="absolute 9 10 95 27" anchor="default"/>
  82. <Calendar id="ipt_dutym" taborder="1" class="input_search" position="absolute 104 9 199 28" mask="yyyy" anchor="default" dateformat="yyyy" value="null" editformat="yyyy" autoselect="true" autoskip="true" onchanged="group4_ipt_dutym_onchanged" style="align:center middle;"/>
  83. <Static id="caption2" text="근무부서 :" class="search_name" position="absolute 265 10 353 27" anchor="default"/>
  84. <Edit id="ipt_dutdeptcd" taborder="2" class="input_search" position="absolute 353 9 428 28" anchor="default" onkeydown="group4_ipt_dutdeptcd_onkeydown"/>
  85. <Button id="btn_dutdept" taborder="3" class="icon_search" position="absolute 431 11 447 27" anchor="default" onclick="group4_btn_dutdept_onclick"/>
  86. <Edit id="ipt_dutdeptnm" taborder="4" class="input_search" enable="false" position="absolute 449 9 563 28" anchor="default" onkeydown="group4_ipt_dutdeptnm_onkeydown"/>
  87. <Static id="caption3" text="사원번호 :" class="search_name" visible="false" position="absolute 651 10 737 27" anchor="default"/>
  88. <Edit id="ipt_emplno" taborder="5" class="input_search" visible="false" position="absolute 740 9 805 28" anchor="default" onkeydown="group4_ipt_emplno_onkeydown"/>
  89. <Button id="btn_help" taborder="6" class="icon_search" visible="false" position="absolute 810 11 826 27" anchor="default" onclick="group4_btn_help_onclick"/>
  90. <Edit id="ipt_emplnm" taborder="7" class="input_search" enable="false" visible="false" position="absolute 831 9 921 28" anchor="default" onkeydown="group4_ipt_emplnm_onkeydown"/>
  91. <Shape id="line13" linetype="vertical" class="line_4" position="absolute 939 9 945 31" anchor="top right"/>
  92. <Button id="btn_sear" taborder="8" text="조회" class="btn1" position="absolute 957 9 1013 31" anchor="top right" onclick="group4_btn_sear_onclick"/>
  93. <Button id="btn_save" taborder="9" text="저장" class="btn4" position="absolute 1015 9 1071 31" anchor="top right" onclick="group4_btn_save_onclick"/>
  94. <Button id="button5" taborder="10" text="Excel" class="btn4" position="absolute 1073 9 1137 31" anchor="top right" onclick="group4_button5_onclick"/>
  95. </Layout>
  96. </Layouts>
  97. </Div>
  98. <Static id="caption7" text="복무 계획 및 신청 내역" class="tit_2" position="absolute 0 70 275 91"/>
  99. <Shape id="line1" class="line_10" position="absolute 0 86 1140 92" anchor="left top right"/>
  100. <Static id="caption4" text="※ 발생연차는 현재 생성자료 기준으로, 추후 개인 발령사항(면직, 휴/복직 등) 및 개인 복무 계획에 따라 변동될 수 있습니다. " position="absolute 365 67 1135 87" style="color:#0000ffff;font:Dotum,9,bold;" anchor="top right"/>
  101. <Div id="grp_del" taborder="9" position="absolute 253 269 445 450" style="background:#ffffccff;border:1 solid #000515f4 ;" visible="false">
  102. <Layouts>
  103. <Layout>
  104. <Grid id="grd_dellist" taborder="0" binddataset="ds_temp_dellist" useinputpanel="false" position="absolute 10 4 179 149" anchor="default" autoenter="select" autofittype="col" cellsizingtype="col">
  105. <Formats>
  106. <Format id="default">
  107. <Columns>
  108. <Column size="110"/>
  109. <Column size="40"/>
  110. </Columns>
  111. <Rows>
  112. <Row size="24" band="head"/>
  113. <Row size="24"/>
  114. </Rows>
  115. <Band id="head">
  116. <Cell text="삭제할 계획연차일"/>
  117. <Cell col="1" text="선택"/>
  118. </Band>
  119. <Band id="body">
  120. <Cell displaytype="date" edittype="date" text="bind:plandd" editautoselect="true" combodisplay="edit" calendardisplay="display" calendardisplaynulltype="nulltext"/>
  121. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:chk" expr="expr:chk == 'Y' ? 1 : 0"/>
  122. </Band>
  123. </Format>
  124. </Formats>
  125. </Grid>
  126. <Button id="button3" taborder="1" text="삭제" class="btn2" position="absolute 94 153 136 172" anchor="default" onclick="grp_del_button3_onclick"/>
  127. <Button id="button4" taborder="2" text="종료" class="btn2" position="absolute 137 153 179 172" anchor="default" onclick="grp_del_button4_onclick"/>
  128. </Layout>
  129. </Layouts>
  130. </Div>
  131. </Layout>
  132. </Layouts>
  133. <Objects>
  134. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_send_oncolumnchanged">
  135. <ColumnInfo>
  136. <Column id="instcd" type="STRING" size="256"/>
  137. <Column id="dutyy" type="STRING" size="256"/>
  138. <Column id="emplno" type="STRING" size="256"/>
  139. <Column id="emplnm" type="STRING" size="256"/>
  140. <Column id="dutplceinst" type="STRING" size="256"/>
  141. <Column id="dutunitcd" type="STRING" size="256"/>
  142. <Column id="dutunitnm" type="STRING" size="256"/>
  143. </ColumnInfo>
  144. <Rows>
  145. <Row>
  146. <Col id="instcd"/>
  147. <Col id="dutyy"/>
  148. <Col id="emplno"/>
  149. <Col id="emplnm"/>
  150. <Col id="dutplceinst"/>
  151. <Col id="dutunitcd"/>
  152. <Col id="dutunitnm"/>
  153. </Row>
  154. </Rows>
  155. </Dataset>
  156. <Dataset id="ds_main_srvpinfo_empllist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_srvpinfo_empllist_oncolumnchanged">
  157. <ColumnInfo>
  158. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  159. <Column id="emplnm" type="STRING" size="256" sumtext="이름"/>
  160. <Column id="dutplcedeptcd" type="STRING" size="256" sumtext="근무지"/>
  161. <Column id="deptnm" type="STRING" size="256" sumtext="근무지"/>
  162. <Column id="jobkindcd" type="STRING" size="256" sumtext="직종"/>
  163. <Column id="jobkindnm" type="STRING" size="256" sumtext="직종"/>
  164. <Column id="jobgradcd" type="STRING" size="256" sumtext="직급"/>
  165. <Column id="jobgradnm" type="STRING" size="256" sumtext="직급"/>
  166. <Column id="jobposcd" type="STRING" size="256" sumtext="직위"/>
  167. <Column id="jobposnm" type="STRING" size="256" sumtext="직위"/>
  168. <Column id="genryearno" type="STRING" size="256" sumtext="발생연차"/>
  169. <Column id="plandayno" type="STRING" size="256" sumtext="계획연차수"/>
  170. <Column id="planyul" type="STRING" size="256" sumtext="연차계획율"/>
  171. <Column id="useddayno" type="STRING" size="256" sumtext="사용연차수"/>
  172. <Column id="usedyul" type="STRING" size="256" sumtext="연차사용율"/>
  173. <Column id="confirmyn" type="STRING" size="256" sumtext="부서장확인"/>
  174. <Column id="dutyy" type="STRING" size="256" sumtext="근무년도"/>
  175. </ColumnInfo>
  176. </Dataset>
  177. <Dataset id="ds_temp_dellist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  178. <ColumnInfo>
  179. <Column id="plandd" type="STRING" size="256"/>
  180. <Column id="chk" type="STRING" size="256"/>
  181. </ColumnInfo>
  182. </Dataset>
  183. <Dataset id="ds_send_retrparams" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  184. <ColumnInfo>
  185. <Column id="emplno" type="STRING" size="256"/>
  186. <Column id="emplnm" type="STRING" size="256"/>
  187. <Column id="instcd" type="STRING" size="256"/>
  188. <Column id="dutplceinst" type="STRING" size="256"/>
  189. </ColumnInfo>
  190. </Dataset>
  191. <Dataset id="ds_send_saveinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  192. <ColumnInfo>
  193. <Column id="status" type="STRING" size="256" sumtext="상태"/>
  194. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  195. <Column id="dutyy" type="STRING" size="256" sumtext="근무년도"/>
  196. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  197. <Column id="confirmyn" type="STRING" size="256" sumtext="부서장확인"/>
  198. </ColumnInfo>
  199. </Dataset>
  200. </Objects>
  201. <Bind>
  202. <BindItem id="item0" compid="group4.ipt_dutym" propid="value" datasetid="ds_send" columnid="dutyy"/>
  203. <BindItem id="item1" compid="group4.ipt_dutdeptcd" propid="value" datasetid="ds_send" columnid="dutunitcd"/>
  204. <BindItem id="item2" compid="group4.ipt_dutdeptnm" propid="value" datasetid="ds_send" columnid="dutunitnm"/>
  205. <BindItem id="item3" compid="group4.ipt_emplno" propid="value" datasetid="ds_send" columnid="emplno"/>
  206. <BindItem id="item4" compid="group4.ipt_emplnm" propid="value" datasetid="ds_send" columnid="emplnm"/>
  207. </Bind>
  208. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  209. * System Name :
  210. * Job Name :
  211. * Creator :
  212. * Make Date : 2017-06-19
  213. * Description :
  214. *---------------------------------------------------------------------------------------
  215. * Modify Date Modifier Modify Description
  216. *---------------------------------------------------------------------------------------
  217. * 2017-06-19 Live Converter TF->XP
  218. *
  219. *---------------------------------------------------------------------------------------
  220. ****************************************************************************************/
  221. include "com_commonxp::comm_main.xjs";
  222. include "mis_miscommonxp::MIS.xjs";
  223. include "mis_humtrafactmngtxp::RPB001.xjs";
  224. var DUT_UNIT_CD = "";
  225. var DUT_UNIT_NM = "";
  226. var JOB_POS_CD = "";
  227. function SMRPD00260_oninit(obj:Form, e:InitEventInfo)
  228. {
  229. frmf_initForm(obj);
  230. }
  231. function SMRPD00260_onload(obj:Form, e:LoadEventInfo)
  232. {
  233. grdf_initGrid(grd_empllist);
  234. grdf_setRowTypeIcon(grd_empllist, 0);
  235. fInitialize();
  236. }
  237. function fInitialize()
  238. {
  239. misfComboInstCdListMulti("cmb_instcd",String(utlf_getCurrentDate()).substr(0, 8),"","Y");
  240. misfGetUserAuth();
  241. misfGetAndSetUserInfo();
  242. ds_send.setColumn(0, "instcd", sysf_getUserInfo("dutplceinstcd"));
  243. ds_send.setColumn(0, "dutyy", String(utlf_getCurrentDate()).substr(0, 4));
  244. ds_send.setColumn(0, "dutunitcd", DUT_UNIT_CD);
  245. ds_send.setColumn(0, "dutunitnm", DUT_UNIT_NM);
  246. if (DUTY_PART_YN == "Y" && DUTY_DILI_YN =="Y")
  247. {
  248. group4.ipt_dutdeptcd.enable = true;
  249. group4.btn_dutdept.enable = true;
  250. }
  251. else
  252. {
  253. if (utlf_isNull(JOB_POS_CD))
  254. {
  255. group4.btn_sear.enable = false;
  256. group4.btn_save.enable = false;
  257. }
  258. else
  259. {
  260. group4.btn_sear.enable = true;
  261. group4.btn_save.enable = true;
  262. }
  263. group4.ipt_dutdeptcd.enable = false;
  264. group4.btn_dutdept.enable = false;
  265. }
  266. }
  267. function group4_ipt_dutym_onchanged(obj:Calendar, e:ChangeEventInfo)
  268. {
  269. var date = String(obj.value).substr(0,4)
  270. ds_send.setColumn(0, "dutyy", date);
  271. }
  272. function group4_ipt_dutdeptcd_onkeydown(obj:Edit, e:KeyEventInfo)
  273. {
  274. if(e.keycode == 13)
  275. {
  276. if(obj.value == ds_send.getColumn(0, "dutunitcd"))
  277. {
  278. return;
  279. }
  280. else
  281. {
  282. obj.updateToDataset();
  283. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  284. }
  285. }
  286. }
  287. function ds_send_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  288. {
  289. if(e.columnid == "dutunitcd")
  290. {
  291. group4.ipt_dutdeptcd.value = e.newvalue;
  292. group4.ipt_dutdeptcd.setFocus();
  293. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  294. }
  295. if(e.columnid == "dutunitnm")
  296. {
  297. group4.ipt_dutdeptnm.value = e.newvalue;
  298. group4.ipt_dutdeptnm.setFocus();
  299. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  300. }
  301. if(e.columnid == "emplno")
  302. {
  303. group4.ipt_emplno.value = e.newvalue;
  304. group4.ipt_emplno.setFocus();
  305. rpbfValidationCheck("EMPLNO", "emplno,emplnm,dutunitcd,dutunitnm,dutplceinst");
  306. }
  307. if(e.columnid == "emplnm")
  308. {
  309. group4.ipt_emplnm.value = e.newvalue;
  310. group4.ipt_emplnm.setFocus();
  311. rpbfValidationCheck("EMPLNM", "emplno,emplnm,dutunitcd,dutunitnm,dutplceinst");
  312. }
  313. }
  314. function group4_btn_dutdept_onclick(obj:Button, e:ClickEventInfo)
  315. {
  316. misfOpenPopUpList("02", ds_send,"","dutunitcd,dutunitnm", cmb_instcd.value + "," + group4.ipt_dutym.value+"31", "instcd,basedd");
  317. }
  318. function group4_ipt_dutdeptnm_onkeydown(obj:Edit, e:KeyEventInfo)
  319. {
  320. if(e.keycode == 13)
  321. {
  322. if(obj.value == ds_send.getColumn(0, "dutunitnm"))
  323. {
  324. return;
  325. }
  326. else
  327. {
  328. obj.updateToDataset();
  329. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  330. }
  331. }
  332. }
  333. function group4_ipt_emplno_onkeydown(obj:Edit, e:KeyEventInfo)
  334. {
  335. if(e.keycode == 13)
  336. {
  337. if(obj.value == ds_send.getColumn(0, "emplno"))
  338. {
  339. return;
  340. }
  341. else
  342. {
  343. obj.updateToDataset();
  344. rpbfValidationCheck("EMPLNO", "emplno,emplnm,dutunitcd,dutunitnm,dutplceinst");
  345. if(!utlf_isNull(ds_send.getColumn(0, "emplno")) && !utlf_isNull(ds_send.getColumn(0, "emplnm") && sysf_getUserInfo("dutplceinstcd") == "001"))
  346. {
  347. ds_send.setColumn(0, "instcd", ds_send.getColumn(0, "dutplceinst"));
  348. }
  349. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  350. }
  351. }
  352. }
  353. function group4_btn_help_onclick(obj:Button, e:ClickEventInfo)
  354. {
  355. rpbfOpenPopUpList("SPRPB00101", group4.ipt_emplno, "emplno,emplnm,dutunitcd,dutunitnm,dutplceinst", "", "N");
  356. if(!utlf_isNull(ds_send_retrparams.getColumn(0, "emplno")) && !utlf_isNull(ds_send_retrparams.getColumn(0, "emplnm") && sysf_getUserInfo("dutplceinstcd") == "001"))
  357. {
  358. ds_send_retrparams.setColumn(0, "instcd", ds_send_retrparams.getColumn(0, "dutplceinst"));
  359. }
  360. }
  361. function group4_ipt_emplnm_onkeydown(obj:Edit, e:KeyEventInfo)
  362. {
  363. if(e.keycode == 13)
  364. {
  365. obj.updateToDataset();
  366. rpbfValidationCheck("EMPLNM", "emplno,emplnm,dutunitcd,dutunitnm,dutplceinst");
  367. if(!utlf_isNull(ds_send_retrparams.getColumn(0, "emplno")) && !utlf_isNull(ds_send_retrparams.getColumn(0, "emplnm") && sysf_getUserInfo("dutplceinstcd") == "001"))
  368. {
  369. ds_send_retrparams.setColumn(0, "instcd", ds_send_retrparams.getColumn(0, "dutplceinst"));
  370. }
  371. }
  372. }
  373. function group4_btn_sear_onclick(obj:Button, e:ClickEventInfo)
  374. {
  375. misfGridInit(grd_empllist);
  376. var oParam = {};
  377. oParam.id = "TRRPD00261";
  378. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  379. oParam.method = "reqGetSrvpEmplList";
  380. oParam.inds = "req=ds_send";
  381. oParam.outds = "ds_main_srvpinfo_empllist=empllist";
  382. oParam.async = false;
  383. //oParam.callback = "cf_TRRPD00261";
  384. tranf_submit(oParam);
  385. var errmsg = "";
  386. var msg = "";
  387. var errcnt = 0;
  388. for(var i = 0 ; i < ds_main_srvpinfo_empllist.rowcount; i ++) {
  389. emplno = utlf_transNullToEmpty(ds_main_srvpinfo_empllist.getColumn(i, "emplno"));
  390. emplnm = utlf_transNullToEmpty(ds_main_srvpinfo_empllist.getColumn(i, "emplnm"));
  391. overused = utlf_transNullToEmpty(ds_main_srvpinfo_empllist.getColumn(i, "overused"));
  392. overgbn = utlf_transNullToEmpty(ds_main_srvpinfo_empllist.getColumn(i, "overgbn"));
  393. if (overused != "0" && overgbn != "연차공제" && overgbn != "급여공제") {
  394. errmsg = errmsg + emplno + " " + emplnm + ", ";
  395. errcnt ++;
  396. }
  397. }
  398. if (errcnt > 0) {
  399. msg = "초과사용 연차 대상자의 연차 처리 구분이 없습니다. (" + errcnt + "명)\r\n\r\n[" + errmsg.substring(0, errmsg.length - 2) + "] \r\n\r\n";
  400. sysf_messageBox(msg, "I999");
  401. }
  402. }
  403. function grp_del_button3_onclick(obj:Button, e:ClickEventInfo)
  404. {
  405. var plandd = "";
  406. var delcnt = 0;
  407. for (var i = 0; i < ds_temp_dellist.rowcount; i++)
  408. {
  409. if(ds_temp_dellist.getColumn(i, "chk") != "Y")
  410. {
  411. plandd = plandd + String(ds_temp_dellist.getColumn(i, "plandd")).substr(6, 2) + ", ";
  412. delcnt ++;
  413. }
  414. }
  415. if (delcnt > 0)
  416. {
  417. plandd = String(plandd).substring(0, plandd.length - 2);
  418. dutym = group4.ipt_dutym+"-"+String(ds_temp_dellist.getColumn(0, "plandd")).substr(4, 2);
  419. x = ds_main_srvpinfo_srvplist.findRow("dutym", dutym);
  420. if(x > -1)
  421. {
  422. ds_main_srvpinfo_srvplist.setColumn(x, "plandaydesc", plandd);
  423. genryearno = ds_main_srvpinfo_srvplist.getColumn(x, "genryearno");
  424. plandayno = ds_main_srvpinfo_srvplist.getColumn(x, "plandayno");
  425. ds_main_srvpinfo_srvplist.setColumn(x, "plandayno", eval(plandayno) - delcnt);
  426. for (var i = x; i < ds_main_srvpinfo_srvplist.rowcount; i ++)
  427. {
  428. planncnt = ds_main_srvpinfo_srvplist.getColumn(i, "planncnt");
  429. planncnt = eval(planncnt) - delcnt;
  430. planyul = eval(planncnt) / eval(genryearno) * 100 ;
  431. ds_main_srvpinfo_srvplist.setColumn(i, "planncnt", planncnt);
  432. ds_main_srvpinfo_srvplist.setColumn(i, "planyul", planyul);
  433. }
  434. }
  435. }
  436. grp_del.visible = false;
  437. }
  438. function grp_del_button4_onclick(obj:Button, e:ClickEventInfo)
  439. {
  440. grp_del.visible = false;
  441. }
  442. function group4_btn_save_onclick(obj:Button, e:ClickEventInfo)
  443. {
  444. updatestr = "status▦instcd▦dutyy▦emplno▦confirmyn▩";
  445. // errmsg1 = "확인할 계획 사항이 없습니다.\r\n[";
  446. // errmsg2 = "보직자 혹은 3급 이상 대상자는 연차계획율 100% 등록을 권고합니다.\r\n[";
  447. // errmsg3 = "일반직원은 연차계획율 80% 이상 등록을 권고합니다.\r\n[";
  448. //
  449. // var errcnt1 = 0, errcnt2 = 0, errcnt3 = 0;
  450. for(var i = 0 ; i < ds_main_srvpinfo_empllist.rowcount; i ++)
  451. {
  452. if (ds_main_srvpinfo_empllist.getRowType(i) == 4)
  453. {
  454. instcd = ds_send.getColumn(0, "instcd");
  455. dutyy = ds_main_srvpinfo_empllist.getColumn(i, "dutyy");
  456. emplno = utlf_transEmptyToNull(ds_main_srvpinfo_empllist.getColumn(i, "emplno"));
  457. emplnm = utlf_transEmptyToNull(ds_main_srvpinfo_empllist.getColumn(i, "emplnm"));
  458. jobposnm = ds_main_srvpinfo_empllist.getColumn(i, "jobposnm");
  459. jobgradnm = ds_main_srvpinfo_empllist.getColumn(i, "jobgradnm");
  460. genryearno = ds_main_srvpinfo_empllist.getColumn(i, "genryearno");
  461. plandayno = ds_main_srvpinfo_empllist.getColumn(i, "plandayno");
  462. planyul = parseInt(ds_main_srvpinfo_empllist.getColumn(i, "planyul"));
  463. confirmyn = ds_main_srvpinfo_empllist.getColumn(i, "confirmyn");
  464. // if (genryearno != "0" && plandayno == "0")
  465. // {
  466. // errmsg1 = errmsg1 + emplno + " " + emplnm + ", ";
  467. // errcnt1++;
  468. // }
  469. //
  470. // if ((!utlf_isNull(jobposnm) || jobgradnm <= "3급") && planyul < 100 && !(genryearno != "0" && plandayno == "0"))
  471. // {
  472. // errmsg2 = errmsg2 + emplno + " " + emplnm + ", ";
  473. // errcnt2++;
  474. // }
  475. //
  476. // if ((utlf_isNull(jobposnm)|| jobgradnm > "3급") && eval(planyul) < 80 && !(genryearno != "0" && plandayno == "0"))
  477. // {
  478. // errmsg3 = errmsg3 + emplno + " " + emplnm + ", ";
  479. // errcnt3++;
  480. // }
  481. updatestr = updatestr
  482. + "u▦"
  483. + instcd + "▦"
  484. + dutyy + "▦"
  485. + emplno + "▦"
  486. + confirmyn + "▩";
  487. }
  488. }
  489. // var msg = "";
  490. //
  491. // if (errcnt1 > 0)
  492. // {
  493. // msg = msg + String(errmsg1).substr(0, errmsg1.length - 2) + "] \r\n\r\n"
  494. // }
  495. // if (errcnt2 > 0)
  496. // {
  497. // msg = msg + String(errmsg2).substr(0, errmsg2.length - 2) + "] \r\n\r\n"
  498. // }
  499. // if (errcnt3 > 0)
  500. // {
  501. // msg = msg + String(errmsg3).substr(0, errmsg3.length - 2) + "] \r\n\r\n"
  502. // }
  503. //
  504. // if (msg.length > 0)
  505. // {
  506. // sysf_messageBox(msg, "I999");
  507. // }
  508. dsf_setCSVToDs("ds_send_saveinfo", updatestr);
  509. var oParam = {};
  510. oParam.id = "TXRPD00261";
  511. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  512. oParam.method = "reqSetPlanSrvpConfirm";
  513. oParam.inds = "saveinfo=ds_send_saveinfo";
  514. oParam.outds = "";
  515. oParam.typeStr = "m";
  516. oParam.async = false;
  517. //oParam.callback = "cf_TXRPD00261";
  518. tranf_submit(oParam);
  519. // var ret = sysf_messageBox("계획된 연차 내역을 번표 및 근태정보에 반영하시겠습니까?", "Q999");
  520. // if (ret == 6)
  521. // {
  522. // alert("yes");
  523. // }
  524. // else
  525. // {
  526. // alert("no");
  527. // }
  528. group4.btn_sear.click();
  529. }
  530. function grd_empllist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  531. {
  532. var row = grd_empllist.row;
  533. var instcd = ds_send.getColumn(0, "instcd");
  534. var dutyy = ds_send.getColumn(0, "dutyy");
  535. var emplno = ds_main_srvpinfo_empllist.getColumn(row, "emplno");
  536. var emplnm = ds_main_srvpinfo_empllist.getColumn(row, "emplnm");
  537. param = "EMPLIST" + "▦"
  538. + instcd + "▦"
  539. + dutyy + "▦"
  540. + emplno + "▦"
  541. + emplnm + "▦" ;
  542. frmf_setParameter("condparam", param);
  543. frmf_modal("SMRPD00250", "SMRPD00250", "", "", "", "", "", "", "", "", "", "", "M");
  544. }
  545. function ds_main_srvpinfo_empllist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  546. {
  547. if( e.columnid == "confirmyn" )
  548. {
  549. obj.setColumn(e.row, "confirmyn", (e.newvalue == "Y" || e.newvalue == 1) ? "Y" : "N");
  550. }
  551. }
  552. function group4_button5_onclick(obj:Button, e:ClickEventInfo)
  553. {
  554. grdf_exportExcel(grd_empllist, "excel", "see");
  555. }
  556. ]]></Script>
  557. </Form>
  558. </FDL>