SMRPD08000_직원출장신청.xrw 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>직원출장 신청조회</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list>
  11. <chulemplist>
  12. <instcd/>
  13. <chulseq/>
  14. <upddate/>
  15. <sysdate/>
  16. <chulgubun/>
  17. <chulsabun/>
  18. <name/>
  19. <buseocode/>
  20. <dutplcedeptcd/>
  21. <inorddeptnm/>
  22. <chulpurpose/>
  23. <chulorgan/>
  24. <pumno/>
  25. <adminaff/>
  26. <adminaffdate/>
  27. <adminaffsabun/>
  28. <adminbuseo/>
  29. <adminbuseodate/>
  30. <adminbuseosabun/>
  31. </chulemplist>
  32. </list>
  33. <chulinfo>
  34. <chulseq/>
  35. <upddate/>
  36. <sysdate/>
  37. <chulgubun/>
  38. <chulsabun/>
  39. <buseocode/>
  40. <chulpurpose/>
  41. <chulorgan/>
  42. <pumno/>
  43. <adminaff/>
  44. <adminaffdate/>
  45. <adminaffsabun/>
  46. <adminbuseo/>
  47. <adminbuseodate/>
  48. <adminbuseosabun/>
  49. <instcd/>
  50. <dutplcedeptcd/>
  51. <inorddeptnm/>
  52. <name/>
  53. <newflag/>
  54. </chulinfo>
  55. <detaillst>
  56. <chulempdetaillst/>
  57. </detaillst>
  58. <lognempinfo>
  59. <empinfo/>
  60. </lognempinfo>
  61. <empInfolst>
  62. <empllist/>
  63. </empInfolst>
  64. </main>
  65. <send>
  66. <srchfrmdd/>
  67. <srchendd/>
  68. <srchchulseq/>
  69. <adminbuseoflag/>
  70. <adminaffflag/>
  71. <admingubn/>
  72. <instcd/>
  73. <srchchulgubun/>
  74. <refcond/>
  75. <emplno/>
  76. <rownm/>
  77. <newflag/>
  78. </send>
  79. <hidden>
  80. <item>
  81. <pumno/>
  82. </item>
  83. <savelist>
  84. <detail/>
  85. </savelist>
  86. </hidden>
  87. <init>
  88. <chulgubuninfo>
  89. <chulgubunlist>
  90. <nm>교육출장</nm>
  91. <cd>1</cd>
  92. </chulgubunlist>
  93. <chulgubunlist>
  94. <nm>업무출장</nm>
  95. <cd>2</cd>
  96. </chulgubunlist>
  97. <chulgubunlist>
  98. <nm>QA출장</nm>
  99. <cd>3</cd>
  100. </chulgubunlist>
  101. <chulgubunlist>
  102. <nm>기타</nm>
  103. <cd>4</cd>
  104. </chulgubunlist>
  105. </chulgubuninfo>
  106. </init>
  107. <prntlst/>
  108. <temp/>
  109. </root>
  110. </instance>
  111. <script type="javascript" ev:event="xforms-ready">
  112. <![CDATA[
  113. initialize();
  114. ]]>
  115. </script>
  116. <submission id="TRRPD08001" mediatype="application/x-www-form-urlencoded" method="get" ref="/root/send" replace="instance" resultref="/root/main/list"/>
  117. <submission id="TRRPD08002" mediatype="application/x-www-form-urlencoded" method="get" ref="/root/send" replace="instance" resultref="/root/main/detaillst"/>
  118. <submission id="TXRPD08002" mediatype="application/x-www-form-urlencoded" method="get" ref="/root/send" replace="instance" resultref="/root/hidden"/>
  119. <submission id="TXRPD08003" mediatype="application/x-www-form-urlencoded" method="get" ref="/root/hidden/savelist" replace="instance" resultref="/root/temp"/>
  120. <submission id="TXRPD08001" mediatype="application/x-www-form-urlencoded" method="get" ref="/root/send" replace="instance" resultref="/root/temp"/>
  121. <submission id="TRRPD08003" mediatype="application/x-www-form-urlencoded" method="get" ref="/root/send" replace="instance" resultref="/root/main/lognempinfo"/>
  122. <submission id="TRRPD08006" mediatype="application/x-www-form-urlencoded" method="get" ref="/root/send" resultref="/root/main/empInfolst"/>
  123. </model>
  124. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  125. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  126. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  127. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  128. <script type="javascript" src="../../../mis/paybaseinfomngtweb/js/RWC001.js"/>
  129. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  130. <script type="javascript" src="../../../mis/paybaseinfomngtweb/js/RWC001.js"/>
  131. <script type="javascript" src="../../../mis/miscommonweb/js/RAC001.js"/>
  132. <script type="javascript" src="../../../mis/acntcommonweb/js/RAD001.js"/>
  133. <script type="javascript">
  134. <![CDATA[
  135. function initialize(){
  136. model.resetInstanceNode("/root/main/chulinfo");
  137. model.removeNodeset("/root/main/list/chulemplist");
  138. model.removeNodeset("/root/main/detaillst/chulempdetaillst");
  139. model.setValue("/root/send/srchfrmdd", getCurrentDate());
  140. model.setValue("/root/send/srchendd", getCurrentDate());
  141. model.setValue("/root/send/srchchulgubun", "0");
  142. model.setValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  143. model.setValue("/root/send/refcond", "emplno");
  144. model.makeValue("/root/send/newflag", "N");
  145. if( submit("TRRPD08003")){ //2011.08.24 cyw 부서장 정보 가져오기.
  146. var cnt = getNodesetCount("/root/main/lognempinfo/empinfo");
  147. if( cnt >= 1 ){
  148. if( model.getValue("/root/main/lognempinfo/empinfo/jobposcd") != "" ){
  149. btn_buseo.disabled = false;
  150. btn_buseoCancel.disabled = false;
  151. if( model.getValue("/root/main/lognempinfo/empinfo/dutplcedeptcd") == "4020300000" ){ //총무팀
  152. btn_naff.disabled = false;
  153. btn_naffCancel.disabled = false;
  154. }else{
  155. btn_naff.disabled = true;
  156. btn_naffCancel.disabled = true;
  157. }
  158. }else{
  159. btn_buseo.disabled = true;
  160. btn_buseoCancel.disabled = true;
  161. if( model.getValue("/root/main/lognempinfo/empinfo/dutplcedeptcd") == "4020300000" ){ //총무팀
  162. btn_naff.disabled = false;
  163. btn_naffCancel.disabled = false;
  164. }else{
  165. btn_naff.disabled = true;
  166. btn_naffCancel.disabled = true;
  167. }
  168. }
  169. }else{
  170. btn_naff.disabled = true;
  171. btn_naffCancel.disabled = true;
  172. btn_buseo.disabled = true;
  173. btn_buseoCancel.disabled = true;
  174. }
  175. }
  176. model.refresh();
  177. }
  178. function initItem(){
  179. model.resetInstanceNode("/root/main/chulinfo");
  180. model.removeNodeset("/root/main/detaillst/chulempdetaillst");
  181. model.makeValue("/root/main/chulinfo/chulsabun", getUserId());
  182. ipt_sabun.dispatch("xforms-value-changed");
  183. model.makeValue("/root/main/chulinfo/sysdate" , getCurrentDate());
  184. model.makeValue("/root/main/chulinfo/instcd",getUserInfo("dutplceinstcd"));
  185. model.makeValue("/root/main/chulinfo/chulgubun", "1");
  186. model.refresh();
  187. }
  188. //========================================================================================
  189. // 직원출장 조회
  190. //========================================================================================ㄴ
  191. function fGetChulEmpList(){
  192. cap_ex.visible = false;
  193. model.removeNodeset("/root/main/list/chulemplist"); //조회시 기존 데이터 삭제
  194. model.removeNodeset("/root/main/detaillst/chulempdetaillst"); //조회시 기존 데이터 삭제
  195. model.resetInstanceNode("/root/main/chulinfo");
  196. submit("TRRPD08001");
  197. model.refresh();
  198. }
  199. //========================================================================================
  200. // 직원출장 상세내역 조회
  201. //========================================================================================
  202. function fGetChulEmpDetailList(){
  203. model.removeNodeset("/root/main/detaillst/chulempdetaillst"); //조회시 기존 데이터 삭제
  204. submit("TRRPD08002");
  205. model.refresh();
  206. }
  207. //========================================================================================
  208. // 출장신청서 출력
  209. //========================================================================================
  210. function fPrint()
  211. {
  212. model.removeNodeset("/root/prntlst/chulemplist");
  213. model.removeNodeset("/root/prntlst/chulempdetaillst");
  214. model.makeNode("/root/prntlst/chulemplist");
  215. model.makeNode("/root/prntlst/chulempdetaillst");
  216. model.copyNode("/root/prntlst/chulemplist", "/root/main/list/chulemplist[" + grd_chullist.row + "]");
  217. for( var i = 1 ; i < dtg_chuldetaillst.rows ; i++ ){
  218. model.makeNode("/root/prntlst/chulempdetaillst[" + i + "]");
  219. model.copyNode("/root/prntlst/chulempdetaillst[" + i +"]", "/root/main/detaillst/chulempdetaillst[" + i + "]");
  220. model.setValue("/root/prntlst/chulempdetaillst[" + i +"]/chulfrdate", dtg_chuldetaillst.labelMatrix( i , dtg_chuldetaillst.colRef("chulfrdate")) );
  221. model.setValue("/root/prntlst/chulempdetaillst[" + i +"]/chultodate", dtg_chuldetaillst.labelMatrix( i , dtg_chuldetaillst.colRef("chultodate")) );
  222. }
  223. exeReportPreview("RPRPD08000", "XMLSTR");
  224. model.refresh();
  225. }
  226. //========================================================================================
  227. //부서코드 Help Open
  228. //========================================================================================
  229. function fOpenPopupDeptHelp(pControl, pInstance)
  230. {
  231. misfOpenPopUpList("02", pControl, "", pInstance);
  232. model.refresh();
  233. }
  234. //========================================================================================
  235. // 총부팀 , 부서장 승인
  236. //========================================================================================
  237. function fAdminAprvFlag()
  238. {
  239. if( submit("TXRPD08001")){
  240. messageBox("처리되었습니다.", "I000");
  241. btn_search.dispatch("DOMActivate");
  242. grd_chullist.row = parseInt(model.getValue("/root/send/rownm"));
  243. model.refresh();
  244. return;
  245. }
  246. }
  247. //========================================================================================
  248. // 데이터 저장 2011.08.18
  249. //========================================================================================
  250. function fSaveChulData(){
  251. model.makeValue("/root/main/chulinfo/newflag", model.getValue("/root/send/newflag") );
  252. model.copyNode("/root/hidden/savelist", "/root/main/chulinfo" );
  253. model.makeValue("/root/hidden/savelist/detail",dtg_chuldetaillst.getUpdateData());
  254. if (submit("TXRPD08003")) {
  255. messageBox("저장되었습니다.", "I000");
  256. btn_search.dispatch("DOMActivate");
  257. if( model.getValue("/root/send/newflag") == "Y" ){
  258. grd_chullist.row = 1;
  259. }else if( model.getValue("/root/send/rownm") == "" ){
  260. grd_chullist.row = 1;
  261. }else{
  262. grd_chullist.row = parseInt(model.getValue("/root/send/rownm"));
  263. }
  264. grd_chullist.dispatch("onclick");
  265. model.setValue("/root/send/srchchulseq", model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/chulseq"));
  266. fGetChulEmpDetailList();
  267. }
  268. model.refresh();
  269. }
  270. //========================================================================================
  271. // 신청자 조회 POPUP
  272. //========================================================================================
  273. function fOpenPopupUserHelp(pCtrl, pInstance){
  274. misfOpenPopUpList("01", pCtrl, "", pInstance);
  275. model.refresh();
  276. }
  277. ]]>
  278. </script>
  279. </xhtml:head>
  280. <xhtml:body>
  281. <group id="group1" style="left:0px; top:0px; width:1195px; height:15px; ">
  282. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">직원출장 신청조회</caption>
  283. </group>
  284. <group id="group2" scroll="auto" style="left:0px; top:18px; width:1195px; height:762px; ">
  285. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:6px; width:1194px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  286. <button id="btn_search" class="btn1_letter2" style="left:1108px; top:13px; width:56px; height:22px; ">
  287. <caption>조회</caption>
  288. <script type="javascript" ev:event="DOMActivate">
  289. <![CDATA[
  290. fGetChulEmpList();
  291. ]]>
  292. </script>
  293. </button>
  294. <line id="line13" class="line_4" style="x1:1081px; y1:13px; x2:1081px; y2:35px; "/>
  295. <line id="line1" class="line_1" style="x1:0px; y1:67px; x2:1192px; y2:67px; "/>
  296. <input id="ipt_fromdd" ref="/root/send/srchfrmdd" class="input_s_essential" navindex="14" inputtype="date" style="left:111px; top:14px; width:110px; height:19px; "/>
  297. <caption id="caption2" class="search_name" style="left:12px; top:15px; width:93px; height:17px; ">조회기간 :</caption>
  298. <datagrid id="grd_chullist" nodeset="/root/main/list/chulemplist" caption="신청일자^번호^부서장^총무팀^구분^목적^품의번호" colsep="^" colwidth="75, 50, 50, 50, 65, 130, 100, 100, 100, 100, 100, 100, 100, 100, 100" dataheight="25" ellipsis="true" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="25" rowsep="|" tooltip="true" style="left:0px; top:73px; width:390px; height:682px; ">
  299. <col ref="sysdate" format="yyyy-mm-dd" style="text-align:center; "/>
  300. <col ref="chulseq" style="text-align:center; "/>
  301. <col ref="adminbuseo" style="text-align:center; "/>
  302. <col ref="adminaff" style="text-align:center; "/>
  303. <col disabled="true" ref="chulgubun" type="combo" style="text-align:center; ">
  304. <choices>
  305. <itemset nodeset="/root/init/chulgubuninfo/chulgubunlist">
  306. <label ref="nm"/>
  307. <value ref="cd"/>
  308. </itemset>
  309. </choices>
  310. </col>
  311. <col ref="chulpurpose"/>
  312. <col ref="pumno"/>
  313. <col ref="chulsabun" visibility="hidden"/>
  314. <col ref="buseocode" visibility="hidden"/>
  315. <col ref="chulorgan" visibility="hidden"/>
  316. <col ref="adminaffdate" visibility="hidden"/>
  317. <col ref="adminaffsabun" visibility="hidden"/>
  318. <col ref="adminbuseodate" visibility="hidden"/>
  319. <col ref="adminbuseosabun" visibility="hidden"/>
  320. <col ref="upddate" visibility="hidden"/>
  321. <col ref="instcd" visibility="hidden"/>
  322. <col ref="chulgubun" visibility="hidden"/>
  323. <col ref="name" visibility="hidden"/>
  324. <col ref="dutplcedeptcd" visibility="hidden"/>
  325. <col ref="inorddeptnm" visibility="hidden"/>
  326. <col ref="adminaff" visibility="hidden"/>
  327. <col ref="adminbuseo" visibility="hidden"/>
  328. <script type="javascript" ev:event="onaftersort">
  329. <![CDATA[
  330. grd_chullist.gridToInstance();
  331. ]]>
  332. </script>
  333. <script type="javascript" ev:event="onclick">
  334. <![CDATA[
  335. if( grd_chullist.rows > 1 ){
  336. group3.disabled = false;
  337. cap_ex.visible = false;
  338. btn_add.disabled = false;
  339. btn_del.disabled = false;
  340. if( model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/adminbuseo") == "Y"){
  341. btn_buseoCancel.visible = true;
  342. btn_buseo.visible = false;
  343. }else{
  344. btn_buseoCancel.visible = false;
  345. btn_buseo.visible = true;
  346. }
  347. if( model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/adminaff") == "Y"){
  348. btn_naffCancel.visible = true;
  349. btn_naff.visible = false;
  350. }else{
  351. btn_naffCancel.visible = false;
  352. btn_naff.visible = true;
  353. }
  354. model.copyNode("/root/main/chulinfo", "/root/main/list/chulemplist[" + grd_chullist.row + "]");
  355. model.setValue("/root/send/srchchulseq", model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/chulseq"));
  356. model.setValue("/root/send/rownm", grd_chullist.row );
  357. fGetChulEmpDetailList();
  358. model.makeValue("/root/send/newflag", "N");
  359. model.refresh();
  360. }
  361. ]]>
  362. </script>
  363. </datagrid>
  364. <caption id="caption1" class="tit_2" style="left:5px; top:51px; width:180px; height:13px; ">직원출장 신청내역</caption>
  365. <button id="btn_savegrntpsn1excel" class="btn2_letter4" visibility="hidden" style="left:1127px; top:46px; width:64px; height:19px; ">
  366. <caption>엑셀저장</caption>
  367. <script type="javascript" ev:event="DOMActivate">
  368. <![CDATA[
  369. var fileName = window.fileDialog ("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  370. if (fileName != "")
  371. {
  372. grd_chullist.saveExcel(fileName);
  373. }
  374. ]]>
  375. </script>
  376. </button>
  377. <input id="ipt_enddd" ref="/root/send/srchendd" class="input_s_essential" navindex="14" inputtype="date" style="left:247px; top:14px; width:110px; height:19px; "/>
  378. <caption id="caption3" style="left:224px; top:13px; width:20px; height:25px; font-size:10pt; font-weight:bold; text-align:center; ">~</caption>
  379. <datagrid id="dtg_chuldetaillst" nodeset="/root/main/detaillst/chulempdetaillst" caption="사번^성명^부서^시작일자^종료일자^출장지역^장소^금액" colsep="^" colwidth="70, 60, 100, 85, 85, 110, 170, 80, 100, 100, 100, 100" dataheight="25" ellipsis="true" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" tooltip="true" style="left:394px; top:286px; width:795px; height:469px; ">
  380. <col ref="sabun" type="inputbutton" style="text-align:center; "/>
  381. <col ref="name" type="output" style="text-align:center; "/>
  382. <col ref="inorddeptnm" type="inputbutton" style="text-align:center; "/>
  383. <col ref="chulfrdate" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  384. <col ref="chultodate" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  385. <col ref="chulcon" type="input"/>
  386. <col ref="chulorgan" type="input"/>
  387. <col ref="chulkeum" type="output" format="#,###" style="text-align:right; padding-right:5; "/>
  388. <col ref="chulseq" visibility="hidden"/>
  389. <col ref="upddate" visibility="hidden"/>
  390. <col ref="sysdate" visibility="hidden"/>
  391. <col ref="jikgeubcode" visibility="hidden"/>
  392. <col ref="dutplcedeptcd" visibility="hidden"/>
  393. <col ref="besabun" visibility="hidden"/>
  394. <script type="javascript" ev:event="onaftersort">
  395. <![CDATA[
  396. dtg_chuldetaillst.gridToInstance();
  397. ]]>
  398. </script>
  399. <script type="javascript" ev:event="onbuttonclick">
  400. <![CDATA[
  401. if(dtg_chuldetaillst.colAttribute(dtg_chuldetaillst.col, "ref") == "inorddeptnm"){
  402. fOpenPopupDeptHelp(dtg_chuldetaillst, "dutplcedeptcd,inorddeptnm");
  403. }
  404. if(dtg_chuldetaillst.colAttribute(dtg_chuldetaillst.col, "ref") == "sabun"){
  405. fOpenPopupUserHelp(dtg_chuldetaillst, "sabun,name");
  406. model.setValue("/root/send/emplno", model.getValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/sabun") );
  407. submit("TRRPD08006");
  408. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/dutplcedeptcd" , model.getValue("/root/main/empInfolst/empllist/dutplcedeptcd"));
  409. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/inorddeptnm" , model.getValue("/root/main/empInfolst/empllist/dutplcedeptnm"));
  410. model.refresh();
  411. }
  412. ]]>
  413. </script>
  414. <script type="javascript" ev:event="xforms-value-changed">
  415. <![CDATA[
  416. if(dtg_chuldetaillst.colAttribute(dtg_chuldetaillst.col, "ref") == "sabun"){
  417. rpbfValidationCheck("EMPLNO", "sabun,name");
  418. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/name", model.getValue("/root/init/validation/empllist/emplnm"));
  419. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/dutplcedeptcd" , model.getValue("/root/init/validation/empllist/dutplcedeptcd"))
  420. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/inorddeptnm" , model.getValue("/root/init/validation/empllist/dutplcedeptnm"))
  421. model.refresh();
  422. }
  423. ]]>
  424. </script>
  425. </datagrid>
  426. <line id="line2" class="line_1" style="x1:394px; y1:280px; x2:1190px; y2:280px; "/>
  427. <group id="group3" disabled="true" style="left:395px; top:75px; width:795px; height:180px; border-style:sunken; ">
  428. <caption id="caption4" class="search_name" style="left:23px; top:42px; width:93px; height:17px; ">소 속 :</caption>
  429. <caption id="caption5" class="search_name" style="left:403px; top:12px; width:88px; height:17px; ">신청일자 :</caption>
  430. <caption id="caption7" class="search_name" style="left:23px; top:71px; width:93px; height:17px; ">출장목적 :</caption>
  431. <caption id="caption8" class="search_name" style="left:23px; top:13px; width:93px; height:17px; ">신 청 자 :</caption>
  432. <caption id="caption9" class="search_name" style="left:403px; top:42px; width:88px; height:17px; ">출장구분 :</caption>
  433. <input id="ipt_buse" ref="/root/main/chulinfo/dutplcedeptcd" style="left:113px; top:42px; width:100px; height:19px; "/>
  434. <input id="ipt_sysdd" ref="/root/main/chulinfo/sysdate" inputtype="date" format="yyyy-mm-dd" style="left:495px; top:13px; width:143px; height:19px; ">
  435. <script type="javascript" ev:event="xforms-value-changed">
  436. <![CDATA[
  437. ]]>
  438. </script>
  439. </input>
  440. <input id="ipt_sabun" ref="/root/main/chulinfo/chulsabun" style="left:113px; top:13px; width:100px; height:19px; ">
  441. <script type="javascript" ev:event="xforms-value-changed">
  442. <![CDATA[
  443. rpbfValidationCheck("EMPLNO", "chulsabun,name");
  444. model.setValue("/root/main/chulinfo/name", model.getValue("/root/init/validation/empllist/emplnm"));
  445. model.setValue("/root/main/chulinfo/dutplcedeptcd" , model.getValue("/root/init/validation/empllist/dutplcedeptcd"));
  446. model.setValue("/root/main/chulinfo/inorddeptnm" , model.getValue("/root/init/validation/empllist/dutplcedeptnm"));
  447. model.refresh();
  448. ]]>
  449. </script>
  450. </input>
  451. <select1 id="radio1" ref="/root/main/chulinfo/chulgubun" appearance="full" cellspacing="10" cols="4" vcellspacing="3" overflow="visible" style="left:496px; top:42px; width:287px; height:21px; border-style:none; ">
  452. <choices>
  453. <item>
  454. <label>교육출장</label>
  455. <value>1</value>
  456. </item>
  457. <item>
  458. <label>업무출장</label>
  459. <value>2</value>
  460. </item>
  461. <item>
  462. <label>QA출장</label>
  463. <value>3</value>
  464. </item>
  465. <item>
  466. <label>기타</label>
  467. <value>4</value>
  468. </item>
  469. </choices>
  470. </select1>
  471. <textarea id="txtea_pose" ref="/root/main/chulinfo/chulpurpose" style="left:28px; top:98px; width:740px; height:64px; padding-left:4; padding-top:4; padding-right:4; padding-bottom:4; "/>
  472. <button id="btn_depthelp" class="icon_search" style="left:218px; top:43px; width:16px; height:16px; ">
  473. <caption/>
  474. <script type="javascript" ev:event="DOMActivate">
  475. <![CDATA[
  476. fOpenPopupDeptHelp(ipt_buse, "dutplcedeptcd,inorddeptnm");
  477. ]]>
  478. </script>
  479. </button>
  480. <input id="input2" ref="/root/main/chulinfo/inorddeptnm" style="left:239px; top:42px; width:139px; height:19px; ">
  481. <script type="javascript" ev:event="xforms-value-changed">
  482. <![CDATA[
  483. ]]>
  484. </script>
  485. </input>
  486. <button id="button8" class="icon_search" disabled="false" style="left:218px; top:14px; width:16px; height:16px; ">
  487. <caption/>
  488. <script type="javascript" ev:event="DOMActivate">
  489. <![CDATA[
  490. fOpenPopupUserHelp(ipt_sabun, "chulsabun,name");
  491. model.setValue("/root/send/emplno", model.getValue("/root/main/chulinfo/chulsabun"));
  492. submit("TRRPD08006");
  493. model.setValue("/root/main/chulinfo/dutplcedeptcd" , model.getValue("/root/main/empInfolst/empllist/dutplcedeptcd"));
  494. model.setValue("/root/main/chulinfo/inorddeptnm" , model.getValue("/root/main/empInfolst/empllist/dutplcedeptnm"));
  495. model.refresh();
  496. ]]>
  497. </script>
  498. </button>
  499. <input id="input4" ref="/root/main/chulinfo/name" style="left:239px; top:13px; width:139px; height:19px; ">
  500. <script type="javascript" ev:event="xforms-value-changed">
  501. <![CDATA[
  502. ]]>
  503. </script>
  504. </input>
  505. <select1 id="radio3" ref="/root/main/chulinfo/instcd" appearance="full" cellspacing="30" cols="2" vcellspacing="3" overflow="visible" style="left:496px; top:70px; width:187px; height:21px; border-style:none; ">
  506. <choices>
  507. <item>
  508. <label>본 원</label>
  509. <value>031</value>
  510. </item>
  511. <item>
  512. <label>칠 곡</label>
  513. <value>032</value>
  514. </item>
  515. </choices>
  516. </select1>
  517. <caption id="caption12" class="search_name" style="left:403px; top:71px; width:88px; height:17px; ">기관코드 :</caption>
  518. </group>
  519. <caption id="caption10" class="tit_2" style="left:395px; top:264px; width:180px; height:13px; ">직원출장 신청 세부내역</caption>
  520. <button id="btn_del" class="btn2_letter2" disabled="true" style="left:1147px; top:259px; width:42px; height:19px; ">
  521. <caption>삭제</caption>
  522. <script type="javascript" ev:event="DOMActivate">
  523. <![CDATA[
  524. // alert( dtg_chuldetaillst.rowStatus(dtg_chuldetaillst.row) );
  525. if( dtg_chuldetaillst.rowStatus(dtg_chuldetaillst.row) == 1 || dtg_chuldetaillst.rowStatus(dtg_chuldetaillst.row) == 3 ){
  526. dtg_chuldetaillst.removeStatus(dtg_chuldetaillst.row, "insert");
  527. dtg_chuldetaillst.deleteRow(dtg_chuldetaillst.row);
  528. }else{
  529. cap_ex.visible = true;
  530. misfGridIUD(dtg_chuldetaillst, "D");
  531. dtg_chuldetaillst.rowStatus(dtg_chuldetaillst.row) = 4;
  532. model.refresh();
  533. }
  534. ]]>
  535. </script>
  536. </button>
  537. <button id="btn_add" class="btn2_letter2" disabled="true" style="left:1102px; top:259px; width:42px; height:19px; ">
  538. <caption>추가</caption>
  539. <script type="javascript" ev:event="DOMActivate">
  540. <![CDATA[
  541. cap_ex.visible = true;
  542. misfGridIUD(dtg_chuldetaillst, "A");
  543. dtg_chuldetaillst.rowStatus(dtg_chuldetaillst.row) = 1;
  544. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/chulkeum", "0" );
  545. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/sabun", model.getValue("/root/main/chulinfo/chulsabun") );
  546. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/name", model.getValue("/root/main/chulinfo/name") );
  547. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/inorddeptnm", model.getValue("/root/main/chulinfo/inorddeptnm") );
  548. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/sysdate", model.getValue("/root/main/chulinfo/sysdate") );
  549. // 신청일자 ==> 시작일자, 종료일자
  550. if( model.getValue("/root/main/chulinfo/sysdate") != "" ){
  551. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/chulfrdate" , model.getValue("/root/main/chulinfo/sysdate"));
  552. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/chultodate", model.getValue("/root/main/chulinfo/sysdate"));
  553. }else{
  554. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/chulfrdate" , getCurrentDate());
  555. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/chultodate", getCurrentDate());
  556. }
  557. if( dtg_chuldetaillst.rows > 1){
  558. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/chulcon", model.getValue("/root/main/detaillst/chulempdetaillst[1]/chulcon") );
  559. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/chulorgan", model.getValue("/root/main/detaillst/chulempdetaillst[1]/chulorgan") );
  560. model.setValue("/root/main/detaillst/chulempdetaillst[" + dtg_chuldetaillst.row + "]/chulkeum", model.getValue("/root/main/detaillst/chulempdetaillst[1]/chulkeum") );
  561. }
  562. model.refresh();
  563. ]]>
  564. </script>
  565. </button>
  566. <button id="button3" class="btn6_letter2" style="left:1136px; top:44px; width:56px; height:22px; ">
  567. <caption>출력</caption>
  568. <script type="javascript" ev:event="DOMActivate">
  569. <![CDATA[
  570. fPrint();
  571. ]]>
  572. </script>
  573. </button>
  574. <button id="button36" class="btn4_letter2" style="left:1079px; top:44px; width:56px; height:22px; ">
  575. <caption>저장</caption>
  576. <script type="javascript" ev:event="DOMActivate">
  577. <![CDATA[
  578. var Cnt = getNodesetCount("/root/main/detaillst/chulempdetaillst");
  579. if( Cnt < 1 ){
  580. messageBox("직원출장 신청 세부내역을 입력해주십시오.", "E999", "");
  581. return;
  582. }
  583. if(model.getValue("/root/main/chulinfo/dutplcedeptcd") == "" ){
  584. messageBox("소속은 필수 입력항목입니다.", "E999", "");
  585. model.setFocus('ipt_buse', true);
  586. return;
  587. }
  588. if( model.getValue("/root/main/chulinfo/sysdate") == "" ){
  589. messageBox("신청자는 필수 입력항목입니다.", "E999", "");
  590. model.setFocus('ipt_sabun', true);
  591. return;
  592. }
  593. if( model.getValue("/root/main/chulinfo/chulsabun" ) == ""){
  594. messageBox("신청일자는 필수 입력항목입니다.", "E999", "");
  595. model.setFocus('ipt_sysdd', true);
  596. return;
  597. }
  598. if( model.getValue("/root/main/chulinfo/chulpurpose") == "" ){
  599. messageBox("출장목적은 필수 입력항목입니다.", "E999", "");
  600. model.setFocus('txtea_pose', true);
  601. return;
  602. }
  603. var num = 0;
  604. var row = 0;
  605. for( var i = 1; i <= dtg_chuldetaillst.rows-dtg_chuldetaillst.fixedRows; i++ ){
  606. for( j = 1; j <= dtg_chuldetaillst.rows-dtg_chuldetaillst.fixedRows; j++ ){
  607. if( model.getValue("/root/main/detaillst/chulempdetaillst[" + i + "]/sabun") == model.getValue("/root/main/detaillst/chulempdetaillst[" + j + "]/sabun") ){
  608. num++;
  609. row = i;
  610. }
  611. }
  612. if( model.getValue("/root/main/detaillst/chulempdetaillst[" + i + "]/chulcon") == "" ){
  613. messageBox("출장 [ 지역 ] 정보를 입력해주십시오.", "E999", "");
  614. return;
  615. }
  616. if( model.getValue("/root/main/detaillst/chulempdetaillst[" + i + "]/chulorgan") == "" ){
  617. messageBox("출장 [ 장소 ] 정보를 입력해주십시오.", "E999", "");
  618. return;
  619. }
  620. if( num >1 ){
  621. messageBox("저장데이터에 중복된 직원정보가 있습니다. \n확인 후 진행해주십시오. " + model.getValue("/root/main/detaillst/chulempdetaillst[" + row + "]/sabun") + " [ " + model.getValue("/root/main/detaillst/chulempdetaillst[" + row + "]/name") + " ] ", "E999", "");
  622. return;
  623. }
  624. num = 0;
  625. }
  626. fSaveChulData();
  627. ]]>
  628. </script>
  629. </button>
  630. <button id="button4" class="btn4_letter4" style="left:998px; top:44px; width:56px; height:22px; ">
  631. <caption>내역삭제</caption>
  632. <script type="javascript" ev:event="DOMActivate">
  633. <![CDATA[
  634. var lstCnt = getNodesetCount("/root/main/list/chulemplist" );
  635. if( lstCnt < 1 ){
  636. messageBox("삭제할 데이터가 존재하지 않습니다. 확인후 진행하십시오.", "E000");
  637. return;
  638. } else {
  639. if(grd_chullist.row == null || grd_chullist.row == ""){
  640. messageBox("삭제할 데이터가 존재하지 않습니다. 확인후 진행하십시오.", "E000");
  641. return;
  642. }
  643. }
  644. if( model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/pumno") != "" ){
  645. messageBox("해당 출장내역에 대한 품의건이 있습니다. 확인 후 진행하십시오.", "E000", "");
  646. return ;
  647. }
  648. if( model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/adminaff") == "Y" ){
  649. messageBox("총무팀 승인상태에서는 삭제할 수 없습니다. 총무팀 승인취소 후 진행하십시오.", "E000");
  650. return;
  651. }
  652. if( model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/adminbuseo") == "Y" ){
  653. messageBox("부서장 승인상태에서는 삭제할 수 없습니다. 부서장 승인취소 후 진행하십시오.", "E000");
  654. return;
  655. }
  656. var deptcd = getUserInfo("dutplcecd");
  657. var deptnm = getUserInfo("dutplcenm");
  658. if( model.getValue("/root/main/chulinfo/dutplcedeptcd") != deptcd ){
  659. messageBox("삭제 권한은 신청자의 소속부서에만 권한이 있습니다. 확인 후 진행하십시오.", "E000");
  660. return;
  661. }
  662. if( messageBox("삭제하시겠습니까", "Q999") == 6 ){
  663. if(submit("TXRPD08002")){
  664. messageBox("삭제되었습니다.", "I000");
  665. model.resetInstanceNode("/root/main/chulinfo");
  666. model.removeNodeset("/root/main/detaillst/chulempdetaillst");
  667. btn_search.dispatch("DOMActivate");
  668. return;
  669. }
  670. }else{
  671. return;
  672. }
  673. ]]>
  674. </script>
  675. </button>
  676. <button id="button5" class="btn4_letter2" style="left:940px; top:44px; width:56px; height:22px; ">
  677. <caption>신규</caption>
  678. <script type="javascript" ev:event="DOMActivate">
  679. <![CDATA[
  680. group3.disabled = false;
  681. btn_add.disabled = false;
  682. btn_del.disabled = false;
  683. initItem();
  684. model.makeValue("/root/send/newflag", "Y");
  685. model.refresh();
  686. ]]>
  687. </script>
  688. </button>
  689. <button id="btn_buseo" class="btn3_letter5" style="left:844px; top:44px; width:92px; height:22px; ">
  690. <caption>부서장승인</caption>
  691. <script type="javascript" ev:event="DOMActivate">
  692. <![CDATA[
  693. var lstCnt = getNodesetCount("/root/main/list/chulemplist" );
  694. if( lstCnt < 1 ){
  695. messageBox("신청내역을 조회 후 진행하십시오.", "E000");
  696. return;
  697. }
  698. if( model.getValue("/root/send/srchchulseq") == "" ){
  699. messageBox("선택된 출장내역이 없습니다. 확인 후 승인하십시오.", "E000", "");
  700. return ;
  701. }
  702. model.setValue("/root/send/adminbuseoflag", "Y");
  703. model.setValue("/root/send/admingubn", "1");
  704. fAdminAprvFlag();
  705. ]]>
  706. </script>
  707. </button>
  708. <button id="btn_naff" class="btn3_letter5" style="left:725px; top:44px; width:92px; height:22px; ">
  709. <caption>총무팀승인</caption>
  710. <script type="javascript" ev:event="DOMActivate">
  711. <![CDATA[
  712. var lstCnt = getNodesetCount("/root/main/list/chulemplist" );
  713. if( lstCnt < 1 ){
  714. messageBox("신청내역을 조회 후 진행하십시오.", "E000");
  715. return;
  716. }
  717. if( model.getValue("/root/send/srchchulseq") == "" ){
  718. messageBox("선택된 출장내역이 없습니다. 확인 후 승인하십시오.", "E000", "");
  719. return ;
  720. }
  721. if( model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/adminbuseo") != "Y" ){
  722. messageBox("부서장 승인 후 진행하십시오.", "E000", "");
  723. return ;
  724. }
  725. model.setValue("/root/send/adminaffflag", "Y");
  726. model.setValue("/root/send/admingubn", "2");
  727. fAdminAprvFlag();
  728. ]]>
  729. </script>
  730. </button>
  731. <caption id="cap_ex" visibility="hidden" style="left:785px; top:260px; width:310px; height:20px; font-weight:bold; color:#990000; ">※ 세부내역 삭제 시에는 저장버튼을 클릭하십시오.</caption>
  732. <caption id="caption11" class="search_name" style="left:388px; top:15px; width:93px; height:17px; ">출장구분 :</caption>
  733. <select1 id="radio2" ref="/root/send/srchchulgubun" appearance="full" cellspacing="10" cols="5" vcellspacing="3" overflow="visible" style="left:478px; top:15px; width:360px; height:20px; border-style:none; ">
  734. <choices>
  735. <item>
  736. <label>전 체</label>
  737. <value>0</value>
  738. </item>
  739. <item>
  740. <label>교육출장</label>
  741. <value>1</value>
  742. </item>
  743. <item>
  744. <label>업무출장</label>
  745. <value>2</value>
  746. </item>
  747. <item>
  748. <label>QA출장</label>
  749. <value>3</value>
  750. </item>
  751. <item>
  752. <label>기타</label>
  753. <value>4</value>
  754. </item>
  755. </choices>
  756. </select1>
  757. <button id="btn_naffCancel" class="btn3_letter7" style="left:702px; top:44px; width:116px; height:22px; ">
  758. <caption>총무팀승인취소</caption>
  759. <script type="javascript" ev:event="DOMActivate">
  760. <![CDATA[
  761. var lstCnt = getNodesetCount("/root/main/list/chulemplist" );
  762. if( lstCnt < 1 ){
  763. messageBox("신청내역을 조회 후 진행하십시오.", "E000");
  764. return;
  765. }
  766. if( model.getValue("/root/send/srchchulseq") == "" ){
  767. messageBox("선택된 출장내역이 없습니다. 확인 후 진행하십시오.", "E000", "");
  768. return ;
  769. }
  770. if( model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/pumno") != "" ){
  771. messageBox("해당 출장내역에 대한 품의건이 있습니다. 확인 후 진행하십시오.", "E000", "");
  772. return ;
  773. }
  774. model.setValue("/root/send/adminaffflag", "N");
  775. model.setValue("/root/send/admingubn", "2");
  776. fAdminAprvFlag();
  777. ]]>
  778. </script>
  779. </button>
  780. <button id="btn_buseoCancel" class="btn3_letter7" style="left:821px; top:44px; width:116px; height:22px; ">
  781. <caption>부서장승인취소</caption>
  782. <script type="javascript" ev:event="DOMActivate">
  783. <![CDATA[
  784. var lstCnt = getNodesetCount("/root/main/list/chulemplist" );
  785. if( lstCnt < 1 ){
  786. messageBox("신청내역을 조회 후 진행하십시오.", "E000");
  787. return;
  788. }
  789. if( model.getValue("/root/send/srchchulseq") == "" ){
  790. messageBox("선택된 출장내역이 없습니다. 확인 후 진행하십시오.", "E000", "");
  791. return ;
  792. }
  793. if( model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/pumno") != "" ){
  794. messageBox("해당 출장내역에 대한 품의건이 있습니다. 확인 후 진행하십시오.", "E000", "");
  795. return ;
  796. }
  797. if( model.getValue("/root/main/list/chulemplist[" + grd_chullist.row + "]/adminaff") == "Y" ){
  798. messageBox("해당 출장내역에 대한 총무팀승인이 풀리지 않았습니다. 확인 후 진행하십시오.", "E000", "");
  799. return ;
  800. }
  801. model.setValue("/root/send/adminbuseoflag", "N");
  802. model.setValue("/root/send/admingubn", "1");
  803. fAdminAprvFlag();
  804. ]]>
  805. </script>
  806. </button>
  807. <caption id="caption13" class="search_name" style="left:842px; top:16px; width:88px; height:17px; ">기관코드 :</caption>
  808. <select1 id="rdo_srinstcd" ref="/root/send/instcd" appearance="full" cellspacing="10" cols="2" vcellspacing="3" overflow="visible" style="left:935px; top:15px; width:120px; height:21px; border-style:none; ">
  809. <choices>
  810. <item>
  811. <label>본 원</label>
  812. <value>031</value>
  813. </item>
  814. <item>
  815. <label>칠 곡</label>
  816. <value>032</value>
  817. </item>
  818. </choices>
  819. </select1>
  820. <output id="output1" ref="/root/send/newflag" visibility="hidden" style="left:635px; top:45px; width:55px; height:20px; "/>
  821. </group>
  822. </xhtml:body>
  823. </xhtml:html>