SMRPD04300_개인시간외신청.xfdl 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMRPD04300" position="absolute 0 0 1211 804" titletext="개인시간외신청" oninit="SMRPD04300_oninit" onload="SMRPD04300_onload">
  5. <Layouts>
  6. <Layout>
  7. <Grid id="grd_dutscheapplist" taborder="0" binddataset="ds_main_dutscheapp_dutscheapplist" useinputpanel="false" position="absolute 0 149 1194 794" autofittype="col" cellsizingtype="col" autoenter="select" anchor="all">
  8. <Formats>
  9. <Format id="default">
  10. <Columns>
  11. <Column size="22"/>
  12. <Column size="113"/>
  13. <Column size="120"/>
  14. <Column size="124"/>
  15. <Column size="75"/>
  16. <Column size="550"/>
  17. <Column size="82"/>
  18. <Column size="70"/>
  19. <Column size="0"/>
  20. <Column size="0"/>
  21. <Column size="0"/>
  22. </Columns>
  23. <Rows>
  24. <Row size="24" band="head"/>
  25. <Row size="24"/>
  26. </Rows>
  27. <Band id="head">
  28. <Cell/>
  29. <Cell col="1" text="근무코드"/>
  30. <Cell col="2" text="근무시작시간"/>
  31. <Cell col="3" text="근무종료시간"/>
  32. <Cell col="4" text="근무시간"/>
  33. <Cell col="5" text="신청사유"/>
  34. <Cell col="6" text="부서장승인"/>
  35. <Cell col="7" text="인사팀승인"/>
  36. <Cell col="8" text="caption1"/>
  37. <Cell col="9" text="caption2"/>
  38. <Cell col="10" text="caption3"/>
  39. </Band>
  40. <Band id="body">
  41. <Cell celltype="head"/>
  42. <Cell col="1" displaytype="combo" edittype="expr:deprtmangraprvyn == 'Y' ? 'none' : 'combo'" style="padding:2 2 2 2;background:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');background2:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');" text="bind:dutcd" combodataset="ds_cmb_dutcd" combocodecol="value" combodatacol="label" enable="false"/>
  43. <Cell col="2" edittype="expr:getRowType(currow) == '1' ? 'none' : 'normal'" style="background:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');background2:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');" text="bind:appfrom" mask="####-##-## ##:##" maskchar=" " calendardisplaynulltype="nulltext" enable="false"/>
  44. <Cell col="3" edittype="normal" style="background:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');background2:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');" text="bind:appto" mask="####-##-## ##:##" maskchar=" " calendardisplaynulltype="nulltext"/>
  45. <Cell col="4" style="background:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');background2:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');" text="bind:apptm"/>
  46. <Cell col="5" displaytype="text" edittype="expr:deprtmangraprvyn == 'Y' ? 'none' : 'text'" style="padding:2 2 2 2;background:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');background2:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');" text="bind:appresn"/>
  47. <Cell col="6" style="background:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');background2:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');" text="bind:deprtmangraprvyn"/>
  48. <Cell col="7" style="background:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');background2:EXPR(deprtmangraprvyn == 'Y' ? '#DDDDDD' : '');" text="bind:psnworkapryn"/>
  49. <Cell col="8" text="bind:emplno"/>
  50. <Cell col="9" text="bind:iudgb"/>
  51. <Cell col="10" text="bind:docstat"/>
  52. </Band>
  53. </Format>
  54. </Formats>
  55. </Grid>
  56. <Shape id="line2" class="line_10" position="absolute 0 144 1195 150" anchor="left top right"/>
  57. <Div id="group4" taborder="1" class="div_SA2" position="absolute 0 63 1195 103" anchor="left top right">
  58. <Layouts>
  59. <Layout>
  60. <Button id="btn_search" taborder="4" text="조회" class="btn1" position="absolute 1126 10 1182 32" anchor="top right" onclick="group4_btn_search_onclick"/>
  61. <Static id="caption1" text="사원번호 :" class="search_name" position="absolute 708 11 794 28"/>
  62. <Button id="btn_emplno" taborder="5" class="icon_search" position="absolute 878 12 894 28" onclick="group4_btn_emplno_onclick"/>
  63. <Edit id="ipt_emplnm" taborder="6" class="input_search" enable="false" position="absolute 898 11 1048 30"/>
  64. <Edit id="ipt_emplno" taborder="7" class="input_search" enable="false" position="absolute 794 11 874 30" autoselect="true" autoskip="true" onkeydown="group4_ipt_emplno_onkeydown"/>
  65. <Combo id="cmb_instcd" taborder="8" class="combo_search" position="absolute 108 10 339 29" onitemchanged="group4_cmb_instcd_onitemchanged"/>
  66. <Static id="caption7" text="소속기관 :" class="search_name" position="absolute 20 11 106 28"/>
  67. <Combo id="cmb_ymdflag" taborder="9" codecolumn="codecolumn" datacolumn="datacolumn" class="combo_search" enable="false" position="absolute 392 10 467 29">
  68. <Dataset id="innerdataset">
  69. <ColumnInfo>
  70. <Column id="codecolumn"/>
  71. <Column id="datacolumn"/>
  72. </ColumnInfo>
  73. <Rows>
  74. <Row>
  75. <Col id="codecolumn">1</Col>
  76. <Col id="datacolumn">적용년월</Col>
  77. </Row>
  78. <Row>
  79. <Col id="codecolumn">2</Col>
  80. <Col id="datacolumn">신청년월</Col>
  81. </Row>
  82. </Rows>
  83. </Dataset>
  84. </Combo>
  85. <Calendar id="ipt_srvarmapfromdd" taborder="10" class="input_s_essential" position="absolute 466 10 565 29" mask="yyyy-mm-dd" autoselect="true" autoskip="true" onchanged="group4_ipt_srvarmapfromdd_onchanged"/>
  86. <Calendar id="ipt_srvarmaptodd" taborder="11" class="input_s_essential" position="absolute 577 10 676 29" mask="yyyy-mm-dd" autoselect="true" autoskip="true"/>
  87. <Static id="caption9" text="~" position="absolute 567 13 578 28"/>
  88. <Static id="caption10" class="search_name" position="absolute 371 12 386 29"/>
  89. </Layout>
  90. </Layouts>
  91. </Div>
  92. <Static id="caption8" text="개인신청내역" class="tit_2" position="absolute 0 128 125 149"/>
  93. <Button id="btn_grdadddutscheapplist" taborder="2" text="행추가" class="btn2" position="absolute 1086 105 1139 124" anchor="top right" onclick="btn_grdadddutscheapplist_onclick"/>
  94. <Button id="btn_grddeldutscheapplist" taborder="3" text="행삭제" class="btn2" position="absolute 1141 105 1194 124" anchor="top right" onclick="btn_grddeldutscheapplist_onclick"/>
  95. <Static id="caption2" text="관리부서 :" class="search_name" visible="false" position="absolute 20 100 107 117"/>
  96. <Combo id="cmb_dutplce" taborder="4" class="combo_search" visible="false" position="absolute 108 99 339 118" onitemchanged="cmb_dutplce_onitemchanged"/>
  97. <Button id="btn_dutdept" taborder="5" class="icon_search" visible="false" position="absolute 460 96 476 112" onclick="btn_dutdept_onclick"/>
  98. <Edit id="ipt_dutdeptnm" taborder="6" class="input_search" visible="false" position="absolute 480 94 607 113" onkeydown="ipt_dutdeptnm_onkeydown"/>
  99. <Edit id="ipt_dutdeptcd" taborder="7" class="input_search" visible="false" position="absolute 376 94 456 113" autoselect="true" autoskip="true" onkeydown="ipt_dutdeptcd_onkeydown"/>
  100. <Combo id="cmb_auth" taborder="8" visible="false" position="absolute 615 96 715 115"/>
  101. <Button id="btn_excelsave" taborder="9" text="엑셀저장" class="btn7" position="absolute 1114 125 1194 144" anchor="top right" onclick="btn_excelsave_onclick"/>
  102. <Static id="caption5" text="주의사항 : 종료 시간 입력시 24:00으로 입력하지 마시고 다음날 00:00로 입력하여 주시기 바랍니다. 시간외 지급시 30분(0.5) 단위로 절사합니다" position="absolute 180 125 1038 145" style="color:#ff0000ff;font:Dotum,9,bold;"/>
  103. <Static id="caption6" text="개인시간외신청" class="tit_1" position="absolute 0 0 230 23"/>
  104. <Button id="btn_save" taborder="10" text="저장" class="btn4" position="absolute 1138 37 1194 59" anchor="top right" onclick="btn_save_onclick"/>
  105. <Static id="caption3" text="근무코드가 CALL인 경우 시간외 수당이 미발생 되오니 CALL과 시간외를 구분하여 신청하여 주시기 바랍니다.&#13;&#10;야간과 심야야간은 시간외 근무로 신청하여 주시기 바랍니다." position="absolute 205 28 910 63" style="color:#ff0000ff;font:Dotum,9,bold;"/>
  106. <Shape id="line75" class="line_6" position="absolute 0 58 1195 64" anchor="left top right"/>
  107. </Layout>
  108. </Layouts>
  109. <Objects>
  110. <Dataset id="ds_send_dutscheapp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  111. <ColumnInfo>
  112. <Column id="instcd" type="STRING" size="256"/>
  113. <Column id="srvarmapdd" type="STRING" size="256"/>
  114. <Column id="emplno" type="STRING" size="256"/>
  115. <Column id="emplnm" type="STRING" size="256"/>
  116. <Column id="dutunitcd" type="STRING" size="256"/>
  117. <Column id="dutunitnm" type="STRING" size="256"/>
  118. <Column id="newElement" type="STRING" size="256"/>
  119. <Column id="srvarmapfromdd" type="STRING" size="256"/>
  120. <Column id="srvarmaptodd" type="STRING" size="256"/>
  121. <Column id="ymdflag" type="STRING" size="256"/>
  122. <Column id="srvdd" type="STRING" size="256"/>
  123. </ColumnInfo>
  124. <Rows>
  125. <Row>
  126. <Col id="instcd"/>
  127. <Col id="srvarmapdd"/>
  128. <Col id="emplno"/>
  129. <Col id="emplnm"/>
  130. <Col id="dutunitcd"/>
  131. <Col id="dutunitnm"/>
  132. <Col id="newElement"/>
  133. <Col id="srvarmapfromdd"/>
  134. <Col id="srvarmaptodd"/>
  135. <Col id="ymdflag">2</Col>
  136. <Col id="srvdd"/>
  137. </Row>
  138. </Rows>
  139. </Dataset>
  140. <Dataset id="ds_main_dutscheapp_dutscheapplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_dutscheapp_dutscheapplist_oncolumnchanged"/>
  141. <Dataset id="ds_cmb_dutcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  142. <ColumnInfo>
  143. <Column id="label" type="STRING" size="256"/>
  144. <Column id="value" type="STRING" size="256"/>
  145. </ColumnInfo>
  146. <Rows>
  147. <Row>
  148. <Col id="label">시간외</Col>
  149. <Col id="value">01</Col>
  150. </Row>
  151. <Row>
  152. <Col id="label">휴일</Col>
  153. <Col id="value">03</Col>
  154. </Row>
  155. <Row>
  156. <Col id="label">CALL</Col>
  157. <Col id="value">04</Col>
  158. </Row>
  159. <Row>
  160. <Col id="label">야간(영양실포함)</Col>
  161. <Col id="value">06</Col>
  162. </Row>
  163. </Rows>
  164. </Dataset>
  165. <Dataset id="ds_tempday_dutinfo_dutlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  166. <ColumnInfo>
  167. <Column id="fromymd" type="STRING" size="256" sumtext="근태시작일"/>
  168. <Column id="toymd" type="STRING" size="256" sumtext="근태종료일"/>
  169. <Column id="yoil" type="STRING" size="256" sumtext="근태요일"/>
  170. </ColumnInfo>
  171. </Dataset>
  172. <Dataset id="ds_send_dutcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  173. <ColumnInfo>
  174. <Column id="instcd" type="STRING" size="256"/>
  175. <Column id="dutunitcd" type="STRING" size="256"/>
  176. <Column id="dutunitnm" type="STRING" size="256"/>
  177. </ColumnInfo>
  178. </Dataset>
  179. <Dataset id="ds_dutinfo1_dutlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  180. <ColumnInfo>
  181. <Column id="yoil" type="STRING" size="256"/>
  182. </ColumnInfo>
  183. </Dataset>
  184. <Dataset id="ds_main_authlist_auth" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  185. <Dataset id="ds_init_combocd_combocdlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  186. <Dataset id="ds_init_cmb_dutplce_combocodelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  187. <Dataset id="ds_temp_userinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  188. </Objects>
  189. <Bind>
  190. <BindItem id="item0" compid="group4.cmb_instcd" propid="value" datasetid="ds_send_dutscheapp" columnid="instcd"/>
  191. <BindItem id="item1" compid="group4.cmb_ymdflag" propid="value" datasetid="ds_send_dutscheapp" columnid="ymdflag"/>
  192. <BindItem id="item2" compid="group4.ipt_srvarmapfromdd" propid="value" datasetid="ds_send_dutscheapp" columnid="srvarmapfromdd"/>
  193. <BindItem id="item3" compid="group4.ipt_srvarmaptodd" propid="value" datasetid="ds_send_dutscheapp" columnid="srvarmaptodd"/>
  194. <BindItem id="item4" compid="group4.ipt_emplno" propid="value" datasetid="ds_send_dutscheapp" columnid="emplno"/>
  195. <BindItem id="item5" compid="group4.ipt_emplnm" propid="value" datasetid="ds_send_dutscheapp" columnid="emplnm"/>
  196. <BindItem id="item6" compid="cmb_dutplce" propid="value" datasetid="ds_send_dutscheapp" columnid="dutunitcd"/>
  197. <BindItem id="item7" compid="ipt_dutdeptcd" propid="value" datasetid="ds_send_dutscheapp" columnid="dutunitcd"/>
  198. <BindItem id="item8" compid="ipt_dutdeptnm" propid="value" datasetid="ds_send_dutscheapp" columnid="dutunitnm"/>
  199. </Bind>
  200. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  201. * System Name :
  202. * Job Name :
  203. * Creator :
  204. * Make Date : 2017-06-19
  205. * Description :
  206. *---------------------------------------------------------------------------------------
  207. * Modify Date Modifier Modify Description
  208. *---------------------------------------------------------------------------------------
  209. * 2017-06-19 Live Converter TF->XP
  210. *
  211. *---------------------------------------------------------------------------------------
  212. ****************************************************************************************/
  213. include "com_commonxp::comm_main.xjs";
  214. include "mis_miscommonxp::MIS.xjs";
  215. include "mis_humtrafactmngtxp::RPB001.xjs";
  216. include "mis_dligclaznsmngtxp::RPD001.xjs";
  217. var DUT_UNIT_CD = "";
  218. var DUT_UNIT_NM = "";
  219. function SMRPD04300_oninit(obj:Form, e:InitEventInfo)
  220. {
  221. frmf_initForm(obj);
  222. }
  223. function SMRPD04300_onload(obj:Form, e:LoadEventInfo)
  224. {
  225. grdf_initGrid(grd_dutscheapplist);
  226. grdf_setRowTypeIcon(grd_dutscheapplist, 0);
  227. fInit();
  228. }
  229. function fInit()
  230. {
  231. misfGridInit(grd_dutscheapplist);
  232. var dt = new Date(String(utlf_getCurrentDate()).substr(0, 4), String(utlf_getCurrentDate()).substr(4, 2), 0);
  233. var oParam = {};
  234. oParam.id = "TRRPD10102";
  235. oParam.service = "dligclaznsmngtapp.DutAppMngt";
  236. oParam.method = "reqGetDutymdInfo";
  237. oParam.inds = "req=ds_send_dutscheapp";
  238. oParam.outds = "ds_tempday_dutinfo_dutlist=dutlist";
  239. oParam.async = false;
  240. //oParam.callback = "cf_TRRPD10102";
  241. tranf_submit(oParam);
  242. group4.ipt_srvarmapfromdd.value = ds_tempday_dutinfo_dutlist.getColumn(0, "fromymd");
  243. group4.ipt_srvarmaptodd.value = ds_tempday_dutinfo_dutlist.getColumn(0, "toymd");
  244. misfComboInstCdListMulti("group4.cmb_instcd",group4.ipt_srvarmapfromdd.value,"","N");
  245. misfComboComCdListMulti("R9994","cmb_auth");
  246. misfGetAndSetUserInfo();
  247. misfGetUserAuth();
  248. rpdfSetControlAuth();
  249. rpdfSetDutUnitCombo();
  250. cmb_dutplce.visible = false;
  251. ds_send_dutscheapp.setColumn(0, "instcd", sysf_getUserInfo("dutplceinstcd"));
  252. ds_send_dutscheapp.setColumn(0, "emplno", sysf_getUserInfo("userid"));
  253. ds_send_dutscheapp.setColumn(0, "emplnm", sysf_getUserInfo("usernm"));
  254. ds_send_dutscheapp.setColumn(0, "dutunitcd", DUT_UNIT_CD);
  255. ds_send_dutscheapp.setColumn(0, "dutunitnm", DUT_UNIT_NM);
  256. ds_send_dutcd.setColumn(0, "dutunitcd", DUT_UNIT_CD);
  257. ds_send_dutcd.setColumn(0, "dutunitnm", DUT_UNIT_NM);
  258. group4_btn_search_onclick();
  259. rpdfSetControlByJobRespCd("group4.ipt_emplno,group4.btn_emplno,group4.ipt_emplnm");
  260. cmb_auth.value = sysf_getUserInfo("userid");
  261. group4.btn_search.enable = frmf_checkAuth("R");
  262. btn_save.enable = frmf_checkAuth("X");
  263. if(sysf_getUserInfo("userid") == "MIS")
  264. {
  265. group4.btn_search.enable = true;
  266. btn_save.enable = true;
  267. }
  268. if (cmb_auth.label == "1")
  269. {
  270. group4.btn_emplno.enable = true;
  271. group4.ipt_emplno.enable = true;
  272. group4.btn_emplno.enable = true;
  273. }
  274. else
  275. {
  276. group4.btn_emplno.enable = false;
  277. group4.ipt_emplno.enable = false;
  278. group4.btn_emplno.enable = false;
  279. }
  280. }
  281. function group4_btn_search_onclick(obj:Button, e:ClickEventInfo)
  282. {
  283. fRetrieve();
  284. }
  285. function fRetrieve()
  286. {
  287. if(utlf_isNull(group4.ipt_emplno.value) || utlf_isNull(group4.ipt_emplnm.value))
  288. {
  289. sysf_messageBox("사원번호를", "C001");
  290. return;
  291. }
  292. ds_send_dutcd.setColumn(0, "instcd", ds_send_dutscheapp.getColumn(0, "instcd"));
  293. var oParam = {};
  294. oParam.id = "TRRPD04301";
  295. oParam.service = "dligclaznsmngtapp.DutAppMngt";
  296. oParam.method = "reqGetDutOverAppList";
  297. oParam.inds = "req=ds_send_dutscheapp";
  298. oParam.outds = "ds_main_dutscheapp_dutscheapplist=dutscheapplist";
  299. oParam.async = false;
  300. //oParam.callback = "cf_TRRPD04301";
  301. tranf_submit(oParam);
  302. }
  303. function group4_cmb_instcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  304. {
  305. ds_send_dutcd.setColumn(0, "instcd", obj.value);
  306. }
  307. function cmb_dutplce_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  308. {
  309. ds_send_dutcd.setColumn(0, "dutunitcd", obj.value);
  310. group4_btn_search_onclick();
  311. }
  312. function group4_ipt_srvarmapfromdd_onchanged(obj:Calendar, e:ChangeEventInfo)
  313. {
  314. var instcd = group4.cmb_instcd.value;
  315. if( utlf_getStringLength(obj.value) == "8" )
  316. {
  317. ds_send_dutscheapp.setColumn(0, "instcd", "");
  318. misfComboInstCdListMulti("group4.cmb_instcd",obj.value,"","N");
  319. ds_send_dutscheapp.setColumn(0, "instcd", instcd);
  320. }
  321. }
  322. function group4_ipt_emplno_onkeydown(obj:Edit, e:KeyEventInfo)
  323. {
  324. if(e.keycode == 13)
  325. {
  326. if(obj.value == ds_send_dutscheapp.getColumn(0, "emplno"))
  327. {
  328. return;
  329. }
  330. obj.updateToDataset();
  331. rpbfValidationCheck("EMPLNO", "emplno,emplnm,dutunitcd,dutunitnm");
  332. ds_send_dutcd.setColumn(0, "dutunitcd", ds_send_dutscheapp.getColumn(0, "dutunitcd"));
  333. ds_send_dutcd.setColumn(0, "dutunitnm", ds_send_dutscheapp.getColumn(0, "dutunitnm"));
  334. group4_btn_search_onclick();
  335. }
  336. }
  337. function ipt_dutdeptcd_onkeydown(obj:Edit, e:KeyEventInfo)
  338. {
  339. if(e.keycode == 13)
  340. {
  341. if(e.value == ds_send_dutscheapp.getColumn(0, "emplno"))
  342. {
  343. return;
  344. }
  345. obj.updateToDataset();
  346. misfValidationCheck("02", "", "dutunitcd,dutunitnm", group4.cmb_instcd.value, "instcd" );
  347. ds_send_dutcd.setColumn(0, "dutunitcd", ds_send_dutscheapp.getColumn(0, "dutunitcd"));
  348. }
  349. }
  350. function btn_dutdept_onclick(obj:Button, e:ClickEventInfo)
  351. {
  352. misfOpenPopUpList("02", ds_send_dutscheapp, "","dutunitcd,dutunitnm", group4.cmb_instcd.value + "," + group4.ipt_srvarmaptodd.value, "instcd,basedd");
  353. ds_send_dutcd.setColumn(0, "dutunitcd", ds_send_dutscheapp.getColumn(0, "dutunitcd"));
  354. }
  355. function ipt_dutdeptnm_onkeydown(obj:Edit, e:KeyEventInfo)
  356. {
  357. if(e.keycode == 13)
  358. {
  359. if(e.value == ds_send_dutscheapp.getColumn(0, "dutunitnm"))
  360. {
  361. return;
  362. }
  363. obj.updateToDataset();
  364. misfValidationCheck("02", "", "dutunitcd,dutunitnm", group4.cmb_instcd.value, "instcd" );
  365. ds_send_dutcd.setColumn(0, "dutunitcd", ds_send_dutscheapp.getColumn(0, "dutunitcd"));
  366. }
  367. }
  368. function group4_btn_emplno_onclick(obj:Button, e:ClickEventInfo)
  369. {
  370. rpbfOpenPopUpList("SPRPB00101", group4.ipt_emplno, "emplno,emplnm,dutunitcd,dutunitnm", "", "N");
  371. ds_send_dutcd.setColumn(0, "dutunitcd", ds_send_dutscheapp.getColumn(0, "dutunitcd"));
  372. ds_send_dutcd.setColumn(0, "dutunitnm", ds_send_dutscheapp.getColumn(0, "dutunitnm"));
  373. }
  374. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  375. {
  376. fSave();
  377. }
  378. function fSave()
  379. {
  380. for(var i = 0; i < ds_main_dutscheapp_dutscheapplist.rowcount; i++)
  381. {
  382. if (ds_main_dutscheapp_dutscheapplist.getRowType(i) != 8)
  383. {
  384. var iudgb = ds_main_dutscheapp_dutscheapplist.getColumn(i, "iudgb");
  385. var sapptm = ds_main_dutscheapp_dutscheapplist.getColumn(i, "apptm");
  386. var sDutCd = ds_main_dutscheapp_dutscheapplist.getColumn(i, "dutcd");
  387. var sFromDD = ds_main_dutscheapp_dutscheapplist.getColumn(i, "appfrom");
  388. var sToDD = ds_main_dutscheapp_dutscheapplist.getColumn(i, "appto");
  389. var sAppResn = ds_main_dutscheapp_dutscheapplist.getColumn(i, "appresn");
  390. var sCnfmYn = ds_main_dutscheapp_dutscheapplist.getColumn(i, "deprtmangraprvyn");
  391. var sCnfm2Yn = ds_main_dutscheapp_dutscheapplist.getColumn(i, "psnworkapryn");
  392. if (iudgb != "U")
  393. {
  394. ds_send_dutscheapp.setColumn(0, "srvdd", sFromDD.substr(0, 8));
  395. var oParam = {};
  396. oParam.id = "TRRPD04303";
  397. oParam.service = "dligclaznsmngtapp.DutAppMngt";
  398. oParam.method = "reqGetDutymdInfo2";
  399. oParam.inds = "req=ds_send_dutscheapp";
  400. oParam.outds = "ds_dutinfo1_dutlist=dutlist";
  401. oParam.async = false;
  402. //oParam.callback = "cf_TRRPD04303";
  403. tranf_submit(oParam);
  404. var yoil = ds_dutinfo1_dutlist.getColumn(0, "yoil")
  405. if (sDutCd == "03")
  406. {
  407. if (DUT_PLCEDEPT_CD == "4060100000" || DUT_PLCEDEPT_CD == "3250100000")
  408. {
  409. }
  410. else
  411. {
  412. if (yoil != "0")
  413. {
  414. sysf_messageBox("휴일외에는 휴일근무를 신청할 수 없습니다..", "E999", "");
  415. return;
  416. }
  417. }
  418. }
  419. }
  420. else
  421. {
  422. if (ds_main_dutscheapp_dutscheapplist.getRowType(i) != 1)
  423. {
  424. if(sCnfmYn == "Y" || sCnfm2Yn == "Y")
  425. {
  426. sysf_messageBox("부서장이나 인사팀 승인이 난 내역은 수정 할 수 없습니다.", "I999");
  427. return;
  428. }
  429. if(utlf_isNull(sDutCd) || utlf_isNull(sFromDD) || utlf_isNull(sToDD))
  430. {
  431. sysf_messageBox("[ 근무코드 | 시작일 | 종료일 ] 은 입력하셔야 합니다.", "I999");
  432. return;
  433. }
  434. }
  435. }
  436. if (ds_main_dutscheapp_dutscheapplist.getRowType(i) != 1)
  437. {
  438. if (sFromDD.length < 12)
  439. {
  440. sysf_messageBox("근무시작일시를 정확히 입력하시기 바랍니다.", "E999", "");
  441. return;
  442. }
  443. if (sToDD.length < 12)
  444. {
  445. sysf_messageBox("근무종료일시를 정확히 입력하시기 바랍니다.", "E999", "");
  446. return;
  447. }
  448. if (sFromDD > sToDD)
  449. {
  450. sysf_messageBox("근무시작일시가 종료일시보다 큽니다.", "E999", "");
  451. return;
  452. }
  453. if ( sToDD.substr(8, 2) == 24 )
  454. {
  455. sysf_messageBox("24시는 틀린 표현입니다. 다음날 00시로 해주세요.", "E999", "");
  456. return;
  457. }
  458. }
  459. }
  460. }
  461. var oParam = {};
  462. oParam.id = "TXRPD04301";
  463. oParam.service = "dligclaznsmngtapp.DutAppMngt";
  464. oParam.method = "reqExeSaveDutOverAppList";
  465. oParam.inds = "req=ds_main_dutscheapp_dutscheapplist:u";
  466. oParam.outds = "";
  467. oParam.async = false;
  468. oParam.callback = "cf_TXRPD04301";
  469. tranf_submit(oParam);
  470. }
  471. function cf_TXRPD04301(sSvcId, nErrorCode, sErrorMsg)
  472. {
  473. if(nErrorCode < 0)
  474. {
  475. return;
  476. }
  477. else
  478. {
  479. fRetrieve();
  480. }
  481. }
  482. function btn_grdadddutscheapplist_onclick(obj:Button, e:ClickEventInfo)
  483. {
  484. fAddRow();
  485. var date = String(utlf_getCurrentDate());
  486. ds_main_dutscheapp_dutscheapplist.setColumn(ds_main_dutscheapp_dutscheapplist.rowposition, "appfrom", date);
  487. ds_main_dutscheapp_dutscheapplist.setColumn(ds_main_dutscheapp_dutscheapplist.rowposition, "appto", date);
  488. }
  489. function fAddRow()
  490. {
  491. if(utlf_isNull(group4.ipt_emplno.value) || utlf_isNull(group4.ipt_emplnm.value))
  492. {
  493. sysf_messageBox("사원번호를", "C001");
  494. return;
  495. }
  496. var row = ds_main_dutscheapp_dutscheapplist.addRow();
  497. dsf_makeValue(ds_main_dutscheapp_dutscheapplist, "deprtmangraprvyn", "string", "N", row);
  498. dsf_makeValue(ds_main_dutscheapp_dutscheapplist, "psnworkapryn", "string", "N", row);
  499. dsf_makeValue(ds_main_dutscheapp_dutscheapplist, "emplno", "string", ds_send_dutscheapp.getColumn(0, "emplno"), row);
  500. grd_dutscheapplist.setCellPos(grd_dutscheapplist.getBindCellIndex("Body", "dutcd"));
  501. grd_dutscheapplist.showEditor(true);
  502. }
  503. function btn_grddeldutscheapplist_onclick(obj:Button, e:ClickEventInfo)
  504. {
  505. fDelRow();
  506. }
  507. function fDelRow()
  508. {
  509. var iRowIdx = ds_main_dutscheapp_dutscheapplist.rowposition;
  510. var sDocstat = ds_main_dutscheapp_dutscheapplist.getColumn(iRowIdx, "docstat");
  511. if(sDocstat == "04" || sDocstat == "05" || utlf_isNull(sDocstat))
  512. {
  513. ds_main_dutscheapp_dutscheapplist.updatecontrol = false;
  514. ds_main_dutscheapp_dutscheapplist.setRowType(iRowIdx, "d");
  515. ds_main_dutscheapp_dutscheapplist.updatecontrol = true;
  516. }
  517. else
  518. {
  519. sysf_messageBox("결재가 진행중이거나 취소,완료된 현황은 삭제할 수 없습니다.", "I999");
  520. }
  521. }
  522. function btn_excelsave_onclick(obj:Button, e:ClickEventInfo)
  523. {
  524. grdf_exportExcel(grd_dutscheapplist, "개인시간외신청_"+utlf_getCurrentDate(), "see");
  525. }
  526. function ds_main_dutscheapp_dutscheapplist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  527. {
  528. if (e.columnid == "appfrom" || e.columnid == "appto")
  529. {
  530. if(utlf_isNull(obj.getColumn(e.row, "appfrom")))
  531. {
  532. sysf_messageBox("시작시간을 먼저 설정하시기 바랍니다.", "E999", "");
  533. return;
  534. }
  535. var appfrom = String(obj.getColumn(e.row, "appfrom"));
  536. var appto = String(obj.getColumn(e.row, "appto"));
  537. var frDate = utlf_transNullToEmpty(appfrom.substr(0, 8));
  538. var frTime = utlf_transNullToEmpty(appfrom.substr(8, 4));
  539. var toDate = utlf_transNullToEmpty(appto.substr(0, 8));
  540. var toTime = utlf_transNullToEmpty(appto.substr(8, 4));
  541. var dutTime = rpdfGetCalcDutyTime(frDate, frTime, toDate, toTime);
  542. var dutTime_v = parseInt(dutTime / 60);
  543. var dutMin_v = dutTime % 60;
  544. var sBef = dutMin_v / 60 + "";
  545. var iIndex = sBef.indexOf(".");
  546. if (iIndex >= 0 )
  547. {
  548. var sAft = sBef.substr(0, iIndex + 3); //소수점 2자리까지 잘라내기 위해 소수점 포함 3자리를 더함
  549. dutMin_v = parseFloat(sAft) ;
  550. }
  551. obj.setColumn(e.row, "apptm", dutTime_v + dutMin_v);
  552. }
  553. }
  554. ]]></Script>
  555. </Form>
  556. </FDL>