SMRPD04200_당직(인턴레지던트)수당등록.xfdl 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMRPD04200" position="absolute 0 0 1204 785" titletext="당직(인턴/레지던트)등록" oninit="SMRPD04200_oninit" onload="SMRPD04200_onload">
  5. <Layouts>
  6. <Layout>
  7. <Grid id="grd_dutsumlist" taborder="10" binddataset="ds_main_list_dutsumlist" useinputpanel="false" position="absolute 0 120 1195 696" autoenter="select" autofittype="col" cellsizingtype="col" anchor="all" onexpanddown="grd_dutsumlist_onexpanddown">
  8. <Formats>
  9. <Format id="default">
  10. <Columns>
  11. <Column size="26"/>
  12. <Column size="46"/>
  13. <Column size="70"/>
  14. <Column size="70"/>
  15. <Column size="70"/>
  16. <Column size="73"/>
  17. <Column size="34"/>
  18. <Column size="75"/>
  19. <Column size="76"/>
  20. <Column size="190"/>
  21. <Column size="330"/>
  22. <Column size="0"/>
  23. <Column size="0"/>
  24. <Column size="0"/>
  25. </Columns>
  26. <Rows>
  27. <Row size="24" band="head"/>
  28. <Row size="24"/>
  29. </Rows>
  30. <Band id="head">
  31. <Cell/>
  32. <Cell col="1" text="일자*"/>
  33. <Cell col="2" text="요일"/>
  34. <Cell col="3" text="구분*"/>
  35. <Cell col="4" text="사원번호*"/>
  36. <Cell col="5" text="성명"/>
  37. <Cell col="6" text="연차"/>
  38. <Cell col="7" text="직종"/>
  39. <Cell col="8" text="주민번호"/>
  40. <Cell col="9" text="부서"/>
  41. <Cell col="10" text="비고*"/>
  42. <Cell col="11" text="yymmdd"/>
  43. <Cell col="12" text="emeryn"/>
  44. <Cell col="13" text="endyn"/>
  45. </Band>
  46. <Band id="body">
  47. <Cell celltype="head"/>
  48. <Cell col="1" displaytype="text" edittype="expr:getRowType(currow) == '2' ? 'masknumber' : 'none'" style="align:center middle;" text="bind:ilja" mask="##" maskchar=" " enable="false"/>
  49. <Cell col="2" text="bind:yoil"/>
  50. <Cell col="3" displaytype="combo" edittype="expr:getRowType(currow) == '2' ? 'combo' : 'none'" style="align:center middle;font:arial,9,bold;" text="bind:dangjikgb" combodataset="ds_cmb_dangjikgb" combocodecol="value" combodatacol="label"/>
  51. <Cell col="4" displaytype="text" edittype="expr:getRowType(currow) == 2 ? 'text' : 'none'" style="align:center middle;" text="bind:emplno" expandshow="show" enable="false"/>
  52. <Cell col="5" text="bind:emplnm"/>
  53. <Cell col="6" text="bind:anual"/>
  54. <Cell col="7" text="bind:jobkindnm"/>
  55. <Cell col="8" text="bind:rregno"/>
  56. <Cell col="9" style="align:left middle;padding:2 2 2 2;" text="bind:dutplcedeptnm"/>
  57. <Cell col="10" displaytype="text" edittype="text" style="align:left top;padding:5 2 1 2;" text="bind:remark" wordwrap="word" editautoselect="true"/>
  58. <Cell col="11" text="bind:yymmdd"/>
  59. <Cell col="12" text="bind:emeryn"/>
  60. <Cell col="13" text="bind:endyn"/>
  61. </Band>
  62. </Format>
  63. </Formats>
  64. </Grid>
  65. <Static id="caption6" text="당직(인턴/레지던트/응급)등록" class="tit_1" position="absolute 0 0 344 25"/>
  66. <Shape id="line4" class="line_6" position="absolute 0 44 1195 50" anchor="left top right"/>
  67. <Button id="button36" taborder="1" text="저장" class="btn4" position="absolute 1139 23 1195 45" anchor="top right" onclick="button36_onclick"/>
  68. <Div id="grp_sea" taborder="2" position="absolute 0 48 1195 88" class="div_SA2" anchor="left top right">
  69. <Layouts>
  70. <Layout>
  71. <Static id="caption5" text="소속기관 :" class="search_name" position="absolute 11 10 97 27"/>
  72. <Combo id="cmb_instcd" taborder="1" class="combo_search" position="absolute 101 9 241 28" onitemchanged="grp_sea_cmb_instcd_onitemchanged"/>
  73. <Static id="caption1" text="년월 :" class="search_name" position="absolute 261 10 347 27"/>
  74. <Calendar id="ipt_dutym" taborder="2" class="input_search" position="absolute 326 9 411 28" mask="yyyy-mm" autoselect="true" autoskip="true" dateformat="yyyy-MM" value="null" editformat="yyyy-MM" onchanged="grp_sea_ipt_dutym_onchanged" style="align:center middle;"/>
  75. <Static id="caption2" text="근무부서 :" class="search_name" position="absolute 428 10 516 27"/>
  76. <Combo id="combo1" taborder="3" codecolumn="codecolumn" datacolumn="datacolumn" position="absolute 516 9 606 28">
  77. <Dataset id="innerdataset">
  78. <ColumnInfo>
  79. <Column id="codecolumn"/>
  80. <Column id="datacolumn"/>
  81. </ColumnInfo>
  82. <Rows>
  83. <Row>
  84. <Col id="codecolumn">1</Col>
  85. <Col id="datacolumn">근무지</Col>
  86. </Row>
  87. <Row>
  88. <Col id="codecolumn">2</Col>
  89. <Col id="datacolumn">근무부서</Col>
  90. </Row>
  91. <Row>
  92. <Col id="codecolumn">3</Col>
  93. <Col id="datacolumn">근무과(팀)</Col>
  94. </Row>
  95. <Row>
  96. <Col id="codecolumn">4</Col>
  97. <Col id="datacolumn">근무부(실)</Col>
  98. </Row>
  99. </Rows>
  100. </Dataset>
  101. </Combo>
  102. <Edit id="ipt_dutdeptcd" taborder="4" class="input_search" position="absolute 611 9 681 28" autoselect="true" autoskip="true" onkeydown="grp_sea_ipt_dutdeptcd_onkeydown"/>
  103. <Button id="btn_dutdept" taborder="5" class="icon_search" position="absolute 684 11 700 27" onclick="grp_sea_btn_dutdept_onclick"/>
  104. <Edit id="ipt_dutdeptnm" taborder="6" class="input_search" position="absolute 702 9 816 28" autoselect="true" autoskip="true" onkeydown="grp_sea_ipt_dutdeptnm_onkeydown"/>
  105. <Static id="caption3" text="사번 :" class="search_name" position="absolute 831 10 894 27"/>
  106. <Edit id="ipt_emplnos" taborder="7" class="input_default" position="absolute 892 9 959 28" autoselect="true" autoskip="true" onkeydown="grp_sea_ipt_emplnos_onkeydown"/>
  107. <Button id="btn_emplno" taborder="8" class="icon_search" position="absolute 964 9 980 25" onclick="grp_sea_btn_emplno_onclick"/>
  108. <Edit id="ipt_emplnms" taborder="9" class="input_default" position="absolute 983 9 1079 28" autoselect="true" autoskip="true" onkeydown="grp_sea_ipt_emplnms_onkeydown"/>
  109. <Shape id="line13" linetype="vertical" class="line_4" position="absolute 1092 8 1098 30" anchor="top right"/>
  110. <Button id="btn_search" taborder="10" text="조회" class="btn1" position="absolute 1106 8 1162 30" anchor="top right" onclick="grp_sea_btn_search_onclick"/>
  111. </Layout>
  112. </Layouts>
  113. </Div>
  114. <Button id="btn_grdaddpaydedulist" taborder="3" text="행추가" class="btn2" position="absolute 845 96 898 115" anchor="top right" onclick="btn_grdaddpaydedulist_onclick"/>
  115. <Button id="btn_grddelpaydedulist" taborder="4" text="행삭제" class="btn2" position="absolute 899 96 952 115" anchor="top right" onclick="btn_grddelpaydedulist_onclick"/>
  116. <Button id="btn_excelformat" taborder="5" text="엑셀양식" class="btn7" position="absolute 953 96 1033 115" anchor="top right" onclick="btn_excelformat_onclick"/>
  117. <Button id="btn_inputexcel" taborder="6" text="엑셀입력" class="btn7" position="absolute 1034 96 1114 115" anchor="top right" onclick="btn_inputexcel_onclick"/>
  118. <Button id="btn_excsave" taborder="7" text="엑셀출력" class="btn7" position="absolute 1115 96 1195 115" anchor="top right" onclick="btn_excsave_onclick"/>
  119. <Shape id="line207" class="line_10" position="absolute 0 115 1195 121" anchor="left top right"/>
  120. <Radio id="rdo_retrflag" taborder="8" codecolumn="codecolumn" datacolumn="datacolumn" position="absolute 560 98 809 113" onitemchanged="rdo_retrflag_onitemchanged" columncount="-1" rowcount="-1">
  121. <Dataset id="innerdataset">
  122. <ColumnInfo>
  123. <Column id="codecolumn"/>
  124. <Column id="datacolumn"/>
  125. </ColumnInfo>
  126. <Rows>
  127. <Row>
  128. <Col id="codecolumn">0610</Col>
  129. <Col id="datacolumn">인턴</Col>
  130. </Row>
  131. <Row>
  132. <Col id="codecolumn">0510</Col>
  133. <Col id="datacolumn">레지던트</Col>
  134. </Row>
  135. <Row>
  136. <Col id="codecolumn">Y</Col>
  137. <Col id="datacolumn">응급</Col>
  138. </Row>
  139. <Row>
  140. <Col id="codecolumn"/>
  141. <Col id="datacolumn">전체</Col>
  142. </Row>
  143. </Rows>
  144. </Dataset>
  145. </Radio>
  146. <Static id="caption7" text="마감된 월입니다." visible="false" position="absolute 375 91 540 116" style="color:#ff0000ff;font:Dotum,12,bold;"/>
  147. <Static id="caption4" text="[구분 : 1.숙직 2.일직 3.일숙직]" position="absolute 120 96 355 116" style="font:Dotum,9,bold;"/>
  148. <Static id="caption278" text="근태집계목록" class="tit_2" position="absolute 0 99 162 121"/>
  149. <Grid id="grd_excelformat" taborder="9" binddataset="ds_format" useinputpanel="false" visible="false" position="absolute 100 241 1025 406">
  150. <Formats>
  151. <Format id="default">
  152. <Columns>
  153. <Column size="63"/>
  154. <Column size="15"/>
  155. <Column size="305"/>
  156. <Column size="96"/>
  157. <Column size="15"/>
  158. <Column size="17"/>
  159. <Column size="15"/>
  160. <Column size="17"/>
  161. <Column size="17"/>
  162. <Column size="330"/>
  163. </Columns>
  164. <Rows>
  165. <Row size="24" band="head"/>
  166. <Row size="24"/>
  167. </Rows>
  168. <Band id="head">
  169. <Cell text="일자*"/>
  170. <Cell col="1"/>
  171. <Cell col="2" text="구분*"/>
  172. <Cell col="3" text="사원번호*"/>
  173. <Cell col="4"/>
  174. <Cell col="5"/>
  175. <Cell col="6"/>
  176. <Cell col="7"/>
  177. <Cell col="8"/>
  178. <Cell col="9" text="비고*"/>
  179. </Band>
  180. <Band id="body">
  181. <Cell text="bind:ilja" mask="99"/>
  182. <Cell col="1" text="bind:yoil"/>
  183. <Cell col="2" text="bind:dangjikgb"/>
  184. <Cell col="3" enable="false" text="bind:emplno"/>
  185. <Cell col="4" text="bind:emplnm"/>
  186. <Cell col="5" text="bind:anual"/>
  187. <Cell col="6" text="bind:jobkindnm"/>
  188. <Cell col="7" text="bind:rregno"/>
  189. <Cell col="8" text="bind:dutplcedeptnm"/>
  190. <Cell col="9" text="bind:remark"/>
  191. </Band>
  192. </Format>
  193. </Formats>
  194. </Grid>
  195. <Static id="caption10" text="1. 부서는 조회 년월의 마지막 일자를 기준으로 인사발령정보를 참조하여 보여줍니다." position="absolute 15 720 535 740" style="color:#ff0000ff;" anchor="left bottom"/>
  196. <Static id="caption8" text="2. 인턴의 부서명은 조회시 &quot;의과인턴, 치과인턴&quot;으로 보여집니다." position="absolute 15 738 535 758" style="color:#ff0000ff;" anchor="left bottom"/>
  197. <Static id="caption11" text="단, 인턴의 의,치과 여부는 &quot;인턴평가대상자관리&quot; 프로그램에 개인별로 등록된 치과구분을 사용하며, 여기에 등록되지 않은 사람은 교육수련실로 보여집니다." position="absolute 29 756 889 776" style="color:#ff0000ff;" anchor="left bottom"/>
  198. <Static id="caption9" text="※ 유의사항" position="absolute 0 701 85 721" style="color:#ff0000ff;font:Dotum,9,bold;" anchor="left bottom"/>
  199. </Layout>
  200. </Layouts>
  201. <Objects>
  202. <Dataset id="ds_send_retrparams" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_send_retrparams_oncolumnchanged">
  203. <ColumnInfo>
  204. <Column id="instcd" type="STRING" size="256"/>
  205. <Column id="frdutym" type="STRING" size="256"/>
  206. <Column id="dutunitcd" type="STRING" size="256"/>
  207. <Column id="dutunitnm" type="STRING" size="256"/>
  208. <Column id="retrflag" type="STRING" size="256"/>
  209. <Column id="emplno" type="STRING" size="256"/>
  210. <Column id="emplnm" type="STRING" size="256"/>
  211. <Column id="deptgb" type="STRING" size="256"/>
  212. <Column id="gb" type="STRING" size="256"/>
  213. </ColumnInfo>
  214. <Rows>
  215. <Row>
  216. <Col id="instcd"/>
  217. <Col id="frdutym"/>
  218. <Col id="dutunitcd"/>
  219. <Col id="dutunitnm"/>
  220. <Col id="retrflag">0510</Col>
  221. <Col id="emplno"/>
  222. <Col id="emplnm"/>
  223. <Col id="deptgb"/>
  224. <Col id="gb"/>
  225. </Row>
  226. </Rows>
  227. </Dataset>
  228. <Dataset id="ds_main_list_dutsumlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_list_dutsumlist_oncolumnchanged">
  229. <ColumnInfo>
  230. <Column id="dutplcedeptnm" type="STRING" size="256" sumtext="부서명"/>
  231. <Column id="emplno" type="STRING" size="256" sumtext="사원번호"/>
  232. <Column id="emplnm" type="STRING" size="256" sumtext="성명"/>
  233. <Column id="anual" type="STRING" size="256" sumtext="연차"/>
  234. <Column id="jobkindnm" type="STRING" size="256" sumtext="직종"/>
  235. <Column id="rregno" type="STRING" size="256" sumtext="주민번호"/>
  236. <Column id="yymmdd" type="STRING" size="256" sumtext="당직일자"/>
  237. <Column id="dangjikgb" type="STRING" size="256" sumtext="당직구분"/>
  238. <Column id="backduty" type="STRING" size="256" sumtext="근무"/>
  239. <Column id="remark" type="STRING" size="256" sumtext="비고"/>
  240. <Column id="yoil" type="STRING" size="256" sumtext="요일"/>
  241. <Column id="ilja" type="STRING" size="256" sumtext="일자"/>
  242. <Column id="emeryn" type="STRING" size="256" sumtext="응급여부"/>
  243. <Column id="endyn" type="STRING" size="256" sumtext="마감여부"/>
  244. </ColumnInfo>
  245. </Dataset>
  246. <Dataset id="ds_format" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  247. <Dataset id="ds_cmb_dangjikgb" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  248. <ColumnInfo>
  249. <Column id="label" type="STRING" size="256"/>
  250. <Column id="value" type="STRING" size="256"/>
  251. </ColumnInfo>
  252. <Rows>
  253. <Row>
  254. <Col id="label">숙직</Col>
  255. <Col id="value">1</Col>
  256. </Row>
  257. <Row>
  258. <Col id="label">일직</Col>
  259. <Col id="value">2</Col>
  260. </Row>
  261. <Row>
  262. <Col id="label">일숙직</Col>
  263. <Col id="value">3</Col>
  264. </Row>
  265. </Rows>
  266. </Dataset>
  267. <Dataset id="ds_send_holiinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  268. <Dataset id="ds_init_holiinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  269. <ColumnInfo>
  270. <Column id="holiyn" type="STRING" size="256"/>
  271. </ColumnInfo>
  272. </Dataset>
  273. <Dataset id="ds_send_dangjikcheck" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  274. <Dataset id="ds_main_dangjikinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  275. <ColumnInfo>
  276. <Column id="cnt" type="STRING" size="256" sumtext="당직횟수"/>
  277. <Column id="fromdd" type="STRING" size="256" sumtext="당직횟수"/>
  278. <Column id="todd" type="STRING" size="256" sumtext="당직횟수"/>
  279. </ColumnInfo>
  280. </Dataset>
  281. </Objects>
  282. <Bind>
  283. <BindItem id="item0" compid="grp_sea.cmb_instcd" propid="value" datasetid="ds_send_retrparams" columnid="instcd"/>
  284. <BindItem id="item1" compid="grp_sea.ipt_dutym" propid="value" datasetid="ds_send_retrparams" columnid="frdutym"/>
  285. <BindItem id="item2" compid="grp_sea.combo1" propid="value" datasetid="ds_send_retrparams" columnid="deptgb"/>
  286. <BindItem id="item3" compid="grp_sea.ipt_dutdeptcd" propid="value" datasetid="ds_send_retrparams" columnid="dutunitcd"/>
  287. <BindItem id="item4" compid="grp_sea.ipt_dutdeptnm" propid="value" datasetid="ds_send_retrparams" columnid="dutunitnm"/>
  288. <BindItem id="item5" compid="grp_sea.ipt_emplnos" propid="value" datasetid="ds_send_retrparams" columnid="emplno"/>
  289. <BindItem id="item6" compid="grp_sea.ipt_emplnms" propid="value" datasetid="ds_send_retrparams" columnid="emplnm"/>
  290. <BindItem id="item7" compid="rdo_retrflag" propid="value" datasetid="ds_send_retrparams" columnid="retrflag"/>
  291. </Bind>
  292. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  293. * System Name :
  294. * Job Name :
  295. * Creator :
  296. * Make Date : 2017-06-19
  297. * Description :
  298. *---------------------------------------------------------------------------------------
  299. * Modify Date Modifier Modify Description
  300. *---------------------------------------------------------------------------------------
  301. * 2017-06-19 Live Converter TF->XP
  302. *
  303. *---------------------------------------------------------------------------------------
  304. ****************************************************************************************/
  305. include "com_commonxp::comm_main.xjs";
  306. include "mis_miscommonxp::MIS.xjs";
  307. include "mis_humtrafactmngtxp::RPB001.xjs";
  308. var arErrorCode = new HashArray();
  309. function SMRPD04200_oninit(obj:Form, e:InitEventInfo)
  310. {
  311. frmf_initForm(obj);
  312. }
  313. function SMRPD04200_onload(obj:Form, e:LoadEventInfo)
  314. {
  315. grdf_initGrid(grd_dutsumlist);
  316. grdf_setRowTypeIcon(grd_dutsumlist, 0);
  317. fInitialize();
  318. }
  319. function fInitialize()
  320. {
  321. ds_main_list_dutsumlist.clearData();
  322. ds_send_retrparams.setColumn(0, "frdutym", String(utlf_getCurrentDate()).substr(0, 6));
  323. misfComboInstCdListMulti("grp_sea.cmb_instcd",ds_send_retrparams.getColumn(0, "frdutym")+String(utlf_getCurrentDate()).substr(6, 2),"","N");
  324. misfGetAndSetUserInfo();
  325. ds_send_retrparams.setColumn(0, "instcd", sysf_getUserInfo("dutplceinstcd"));
  326. grp_sea.cmb_instcd.enable = false;
  327. ds_send_retrparams.setColumn(0, "deptgb", "1");
  328. grp_sea.btn_search.click();
  329. }
  330. function grp_sea_cmb_instcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  331. {
  332. grp_sea.btn_search.click();
  333. }
  334. function grp_sea_ipt_dutym_onchanged(obj:Calendar, e:ChangeEventInfo)
  335. {
  336. ds_send_retrparams.setColumn(0, "frdutym", String(obj.value).substr(0,6));
  337. grp_sea.btn_search.click();
  338. }
  339. function grp_sea_ipt_dutdeptcd_onkeydown(obj:Edit, e:KeyEventInfo)
  340. {
  341. if(e.keycode == 13)
  342. {
  343. obj.updateToDataset();
  344. }
  345. }
  346. function grp_sea_btn_dutdept_onclick(obj:Button, e:ClickEventInfo)
  347. {
  348. misfOpenPopUpList("02", grp_sea.ipt_dutdeptcd, "", "dutunitcd,dutunitnm", grp_sea.cmb_instcd.value, "instcd");
  349. }
  350. function ds_send_retrparams_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  351. {
  352. if(e.columnid == "dutunitcd")
  353. {
  354. var setFocus = this.getFocus();
  355. grp_sea.ipt_dutdeptcd.value = e.newvalue;
  356. grp_sea.ipt_dutdeptcd.setFocus();
  357. misfValidationCheck("02", "", "dutunitcd,dutunitnm", grp_sea.cmb_instcd.value, "instcd" );
  358. setFocus.setFocus();
  359. }
  360. if(e.columnid == "dutunitnm")
  361. {
  362. var setFocus = this.getFocus();
  363. grp_sea.ipt_dutdeptnm.value = e.newvalue;
  364. grp_sea.ipt_dutdeptnm.setFocus();
  365. misfValidationCheck("02", "", "dutunitcd,dutunitnm", grp_sea.cmb_instcd.value, "instcd" );
  366. setFocus.setFocus();
  367. }
  368. if(e.columnid == "emplno")
  369. {
  370. var setFocus = this.getFocus();
  371. grp_sea.ipt_emplnos.value = e.newvalue;
  372. grp_sea.ipt_emplnos.setFocus();
  373. var recv_list = "emplno,emplnm" ;
  374. rpbfValidationCheck("EMPLNO", recv_list);
  375. if(String(e.newvalue).length > 0)
  376. {
  377. grp_sea.btn_search.click();
  378. }
  379. setFocus.setFocus();
  380. }
  381. if(e.columnid == "emplnm")
  382. {
  383. var setFocus = this.getFocus();
  384. grp_sea.ipt_emplnms.value = e.newvalue;
  385. grp_sea.ipt_emplnms.setFocus();
  386. var recv_list = "emplno,emplnm" ;
  387. rpbfValidationCheck("EMPLNM", recv_list);
  388. if(String(grp_sea.ipt_emplnos.value).length > 0)
  389. {
  390. grp_sea.btn_search.click();
  391. }
  392. setFocus.setFocus();
  393. }
  394. }
  395. function grp_sea_ipt_dutdeptnm_onkeydown(obj:Edit, e:KeyEventInfo)
  396. {
  397. if(e.keycode == 13)
  398. {
  399. obj.updateToDataset();
  400. misfValidationCheck("02", "", "dutunitcd,dutunitnm", grp_sea.cmb_instcd.value, "instcd" );
  401. }
  402. }
  403. function grp_sea_ipt_emplnos_onkeydown(obj:Edit, e:KeyEventInfo)
  404. {
  405. if(e.keycode == 13)
  406. {
  407. obj.updateToDataset();
  408. }
  409. }
  410. function grp_sea_btn_emplno_onclick(obj:Button, e:ClickEventInfo)
  411. {
  412. var recv_list = "emplno,emplnm" ;
  413. rpbfOpenPopUpList("SPRPB00101", grp_sea.ipt_emplnos, recv_list,"","N");
  414. if(String(grp_sea.ipt_emplnos.value).length > 0)
  415. {
  416. grp_sea.btn_search.click();
  417. }
  418. }
  419. function grp_sea_ipt_emplnms_onkeydown(obj:Edit, e:KeyEventInfo)
  420. {
  421. if(e.keycode == 13)
  422. {
  423. obj.updateToDataset();
  424. }
  425. }
  426. function rdo_retrflag_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  427. {
  428. grp_sea.btn_search.click();
  429. }
  430. function grp_sea_btn_search_onclick(obj:Button, e:ClickEventInfo)
  431. {
  432. caption7.visible = false;
  433. button36.enable = true;
  434. var oParam = {};
  435. oParam.id = "TRRPD04201";
  436. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  437. oParam.method = "reqGetDangjikList";
  438. oParam.inds = "req=ds_send_retrparams";
  439. oParam.outds = "ds_main_list_dutsumlist=dutsumlist";
  440. oParam.async = false;
  441. //oParam.callback = "cf_TRRPD04201";
  442. tranf_submit(oParam);
  443. if(ds_main_list_dutsumlist.rowcount > 0)
  444. {
  445. var endyn = ds_main_list_dutsumlist.getColumn(0, "endyn");
  446. if(endyn == "Y")
  447. {
  448. // ds_main_list_dutsumlist.enableevent = false;
  449. // ds_main_list_dutsumlist.updatecontrol = false;
  450. // for(var i = 0; i < ds_main_list_dutsumlist.rowcount; i++)
  451. // {
  452. // misfSetReadOnlyCol(grd_dutsumlist, "ilja,yoil,dangjikgb,emplno,emplnm,anual,jobkindnm,rregno", "N", i);
  453. // }
  454. // ds_main_list_dutsumlist.updatecontrol = true;
  455. // ds_main_list_dutsumlist.enableevent = true;
  456. caption7.visible = true;
  457. button36.enable = false;
  458. }
  459. }
  460. }
  461. function grd_dutsumlist_onexpanddown(obj:Grid, e:GridMouseEventInfo)
  462. {
  463. var recv_list = "emplno,emplnm";
  464. rpbfOpenPopUpList("SPRPB00101", grd_dutsumlist, recv_list,"","N");
  465. }
  466. function ds_main_list_dutsumlist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  467. {
  468. if (e.columnid == "ilja" )
  469. {
  470. var ilja = e.newvalue.getLeftPad(2,"0");
  471. obj.setColumn(e.row, "ilja", ilja);
  472. var ymd = ds_send_retrparams.getColumn(0, "frdutym")+ ilja;
  473. if (utlf_isValidDateTime(ymd) == false)
  474. {
  475. sysf_messageBox("일자가 잘못 입력되었습니다.", "E999", "");
  476. return;
  477. }
  478. obj.setColumn(e.row, "yymmdd", ymd);
  479. var ymd = obj.getColumn(e.row, "yymmdd");
  480. var yoil = ymd.toDate().getDayOfWeek("K");
  481. ds_send_holiinfo.clearData();
  482. dsf_makeValue(ds_send_holiinfo, "instcd", "string", sysf_getUserInfo("dutplceinstcd"), 0);
  483. dsf_makeValue(ds_send_holiinfo, "basedd", "string", ymd, 0);
  484. var holiyn = "N";
  485. var oParam = {};
  486. oParam.id = "TRRPD04202";
  487. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  488. oParam.method = "reqGetHoliYn";
  489. oParam.inds = "req=ds_send_holiinfo";
  490. oParam.outds = "ds_init_holiinfo=holiinfo";
  491. oParam.async = false;
  492. oParam.callback = "cf_TRRPD04202";
  493. tranf_submit(oParam);
  494. if(arErrorCode.pop("TRRPD04202") > -1)
  495. {
  496. holiyn = ds_init_holiinfo.getColumn(0, "holiyn");
  497. }
  498. if (yoil == "토" || yoil == "일" || holiyn == "Y")
  499. {
  500. trace("1");
  501. obj.setColumn(ds_main_list_dutsumlist.rowposition, "dangjikgb", "3");
  502. }
  503. else
  504. {
  505. obj.setColumn(ds_main_list_dutsumlist.rowposition, "dangjikgb", "1");
  506. }
  507. ds_main_list_dutsumlist.setColumn(ds_main_list_dutsumlist.rowposition, "yoil", ymd.toDate().getDayOfWeek("K") + "요일");
  508. }
  509. var emplno = obj.getColumn(e.row, "emplno");
  510. var ilja = obj.getColumn(e.row, "ilja");
  511. var ymd = ds_send_retrparams.getColumn(0, "frdutym") + ilja;
  512. ds_send_dangjikcheck.clearData();
  513. dsf_makeValue(ds_send_dangjikcheck, "instcd", "string", sysf_getUserInfo("dutplceinstcd"), 0);
  514. dsf_makeValue(ds_send_dangjikcheck, "emplno", "string", emplno, 0);
  515. dsf_makeValue(ds_send_dangjikcheck, "yymmdd", "string", ymd, 0);
  516. if (!utlf_isNull(ymd) && !utlf_isNull(emplno))
  517. {
  518. var dangjikcnt = 0;
  519. var dangjikfromdd = "";
  520. var dangjiktodd = "";
  521. var oParam = {};
  522. oParam.id = "TRRPD04203";
  523. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  524. oParam.method = "reqGetDangjikCnt";
  525. oParam.inds = "req=ds_send_dangjikcheck";
  526. oParam.outds = "ds_main_dangjikinfo=dangjikinfo";
  527. oParam.async = false;
  528. oParam.callback = "cf_TRRPD04203";
  529. tranf_submit(oParam);
  530. if(arErrorCode.pop("TRRPD04203") > -1)
  531. {
  532. dangjikcnt = ds_main_dangjikinfo.getColumn(0, "cnt");
  533. dangjikfromdd = ds_main_dangjikinfo.getColumn(0, "fromdd");
  534. dangjiktodd = ds_main_dangjikinfo.getColumn(0, "todd");
  535. }
  536. if (parseInt(dangjikcnt) >= 3)
  537. {
  538. sysf_messageBox(dangjikfromdd + " ~ " + dangjiktodd + " 기간 사이에 3회 초과 등록입니다.", "E999");
  539. return;
  540. }
  541. var tempcnt = 0;
  542. var chk_ilja = "";
  543. var chk_ymd = "";
  544. for (var i = 0; i < obj.rowcount; i++)
  545. {
  546. if(obj.getRowType(i) == 2 && emplno == obj.getColumn(i, "emplno"))
  547. {
  548. chk_ilja = obj.getColumn(i, "ilja");
  549. chk_ymd = ds_send_retrparams.getColumn(0, "frdutym")+chk_ilja;
  550. if (chk_ymd >= dangjikfromdd && chk_ymd <= dangjiktodd)
  551. {
  552. tempcnt ++;
  553. }
  554. }
  555. }
  556. var chkcnt = parseInt(dangjikcnt) + tempcnt;
  557. if ( chkcnt > 3)
  558. {
  559. sysf_messageBox(dangjikfromdd + " ~ " + dangjiktodd + " 기간 사이에 3회 초과 등록입니다.", "E999");
  560. return;
  561. }
  562. ds_send_dangjikcheck.clearData();
  563. dsf_makeValue(ds_send_dangjikcheck, "instcd", "string", sysf_getUserInfo("dutplceinstcd"), 0);
  564. dsf_makeValue(ds_send_dangjikcheck, "drid", "string", emplno, 0);
  565. dsf_makeValue(ds_send_dangjikcheck, "yymmdd", "string", ymd, 0);
  566. var oParam = {};
  567. oParam.id = "TRRPD04204";
  568. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  569. oParam.method = "reqGetDangjikOk";
  570. oParam.inds = "req=ds_send_dangjikcheck";
  571. oParam.outds = "ds_main_dangjikinfo=dangjikinfo";
  572. oParam.async = false;
  573. oParam.callback = "cf_TRRPD04204";
  574. tranf_submit(oParam);
  575. if(arErrorCode.pop("TRRPD04204") > -1)
  576. {
  577. dangjikok = ds_main_dangjikinfo.getColumn(0, "dangjikok");
  578. if ( dangjikok == "N" )
  579. {
  580. sysf_messageBox("19시 기준으로 등록된 휴진 내역이 있습니다.", "E999");
  581. return;
  582. }
  583. }
  584. }
  585. }
  586. function cf_TRRPD04202(sSvcId, nErrorCode, sErrorMsg)
  587. {
  588. arErrorCode.push(sSvcId, nErrorCode);
  589. if(nErrorCode < 0) return;
  590. }
  591. function cf_TRRPD04203(sSvcId, nErrorCode, sErrorMsg)
  592. {
  593. arErrorCode.push(sSvcId, nErrorCode);
  594. if(nErrorCode < 0) return;
  595. }
  596. function cf_TRRPD04204(sSvcId, nErrorCode, sErrorMsg)
  597. {
  598. arErrorCode.push(sSvcId, nErrorCode);
  599. if(nErrorCode < 0) return;
  600. }
  601. function btn_grdaddpaydedulist_onclick(obj:Button, e:ClickEventInfo)
  602. {
  603. var irow = ds_main_list_dutsumlist.addRow();
  604. if(rdo_retrflag.value == "Y")
  605. {
  606. ds_main_list_dutsumlist.setColumn(irow, "emeryn", "Y");
  607. }
  608. }
  609. function btn_grddelpaydedulist_onclick(obj:Button, e:ClickEventInfo)
  610. {
  611. var datagrid1 = ds_main_list_dutsumlist;
  612. var status = datagrid1.getRowType(datagrid1.rowposition) ;
  613. if(status == 1)
  614. {
  615. datagrid1.updatecontrol = false;
  616. datagrid1.setRowType(datagrid1.rowposition, "d");
  617. datagrid1.updatecontrol = true;
  618. }
  619. else if(status == 2)
  620. {
  621. datagrid1.deleteRow(datagrid1.rowposition);
  622. }
  623. else if(status == 4)
  624. {
  625. datagrid1.updatecontrol = false;
  626. datagrid1.setRowType(datagrid1.rowposition, "d");
  627. datagrid1.updatecontrol = true;
  628. }
  629. }
  630. function btn_excelformat_onclick(obj:Button, e:ClickEventInfo)
  631. {
  632. misfGridInit(grd_excelformat);
  633. misfGridIUD(grd_excelformat, "A");
  634. var sTitle = "당직등록양식";
  635. dsf_makeValue(ds_format, "ilja", "string", "1~31", 0);
  636. dsf_makeValue(ds_format, "dangjikgb", "string", "코드로 작성(1:숙직, 3:일숙직)", 0);
  637. dsf_makeValue(ds_format, "emplno", "string", "15491", 0);
  638. dsf_makeValue(ds_format, "remark", "string", "필요시 적어주세요.", 0);
  639. misfGridIUD(grd_excelformat, "A");
  640. dsf_makeValue(ds_format, "ilja", "string", "전체 양식은 유지하고, (*)표시된 컬럼만 자료를 작성해주세요.", 0);
  641. misfSaveExcel(grd_excelformat, sTitle);
  642. }
  643. function btn_inputexcel_onclick(obj:Button, e:ClickEventInfo)
  644. {
  645. grdf_ImportExcel("ds_main_list_dutsumlist", 2, grd_dutsumlist);
  646. for (var i = 0; i < ds_main_list_dutsumlist.rowcount; i++)
  647. {
  648. var ilja = ds_main_list_dutsumlist.getColumn(i, "ilja").getLeftPad(2,"0");
  649. ds_main_list_dutsumlist.setColumn(i, "ilja", ilja);
  650. var ymd = ds_send_retrparams.getColumn(0, "frdutym") + ilja;
  651. ds_main_list_dutsumlist.setColumn(i, "yymmdd", ymd);
  652. var ymd = ds_main_list_dutsumlist.getColumn(i, "yymmdd");
  653. var yoil = ymd.toDate().getDayOfWeek("K");
  654. if (yoil == "토" || yoil == "일")
  655. {
  656. ds_main_list_dutsumlist.setColumn(i, "dangjikgb", "3");
  657. }
  658. else
  659. {
  660. ds_main_list_dutsumlist.setColumn(i, "dangjikgb", "1");
  661. }
  662. ds_main_list_dutsumlist.setColumn(i, "yoil", ymd.toDate().getDayOfWeek("K") + "요일");
  663. if(rdo_retrflag.value == "Y")
  664. {
  665. ds_main_list_dutsumlist.setColumn(i, "emeryn", "Y");
  666. }
  667. ds_main_list_dutsumlist.updatecontrol = false;
  668. ds_main_list_dutsumlist.setRowType(i, "i");
  669. ds_main_list_dutsumlist.updatecontrol = true;
  670. }
  671. }
  672. function btn_excsave_onclick(obj:Button, e:ClickEventInfo)
  673. {
  674. grdf_exportExcel(grd_dutsumlist, "excel", "see", true)
  675. }
  676. function button36_onclick(obj:Button, e:ClickEventInfo)
  677. {
  678. for (var i = 0; i < ds_main_list_dutsumlist.rowcount; i ++)
  679. {
  680. var emplno1 = ds_main_list_dutsumlist.getColumn(i, "emplno");
  681. var ymd1 = ds_main_list_dutsumlist.getColumn(i, "yymmdd");
  682. if (utlf_isValidDateTime(ymd1) == false)
  683. {
  684. sysf_messageBox("일자가 잘못 입력되었습니다.", "E999", "");
  685. return;
  686. }
  687. if (utlf_isNull(ds_main_list_dutsumlist.getColumn(i, "emplno")))
  688. {
  689. sysf_messageBox(parseInt(i+1) + "번째의 사원번호는 필수 입력항목입니다.", "E999", "");
  690. return;
  691. }
  692. if(utlf_isNull(ds_main_list_dutsumlist.getColumn(i, "yymmdd")))
  693. {
  694. sysf_messageBox(parseInt(i+1) + "번째의 일자는 필수 입력항목입니다.", "E999", "");
  695. return;
  696. }
  697. }
  698. var update = grdf_getGridUpdateData(grd_dutsumlist).rowcount;
  699. if(update == 0)
  700. {
  701. sysf_messageBox("업데이트 정보가 없습니다.", "E999", "");
  702. return 0;
  703. }
  704. else
  705. {
  706. var oParam = {};
  707. oParam.id = "TXRPD04201";
  708. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  709. oParam.method = "reqExeDangjikList";
  710. oParam.inds = "req=ds_main_list_dutsumlist:u";
  711. oParam.outds = "ds_=item";
  712. oParam.typeStr = "m";
  713. oParam.async = false;
  714. oParam.callback = "cf_TXRPD04201";
  715. tranf_submit(oParam);
  716. }
  717. }
  718. function cf_TXRPD04201(sSvcId, nErrorCode, sErrorMsg)
  719. {
  720. if(nErrorCode < 0)
  721. {
  722. return;
  723. }
  724. else
  725. {
  726. sysf_messageBox("정상적으로 처리되었습니다.", "E999", "");
  727. grp_sea.btn_search.click();
  728. }
  729. }
  730. ]]></Script>
  731. </Form>
  732. </FDL>