SMRBC00100_예산과목관리.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447
  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. <condition>
  11. <acntflag/>
  12. <bugtuseyn>Y</bugtuseyn>
  13. <srhflag>1</srhflag>
  14. <srhtxt/>
  15. </condition>
  16. <list>
  17. <acntlist/>
  18. <bugtlist/>
  19. </list>
  20. </main>
  21. <send>
  22. <acntlist/>
  23. <bugtlist/>
  24. </send>
  25. <init/>
  26. <hidden/>
  27. <temp/>
  28. </root>
  29. </instance>
  30. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  31. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  32. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  33. <script type="javascript" ev:event="xforms-ready">
  34. <![CDATA[
  35. fCheckAuth();
  36. fOpenForm();
  37. misfMsterDetailSet(grd_acntcd, null, "TRRBC90101", "Y");
  38. misfMsterDetailSet(grd_bugtcd, null, "TRRBC90101", "Y");
  39. ]]>
  40. </script>
  41. <script type="javascript">
  42. <![CDATA[
  43. //========================================================================================
  44. //버튼에 대한 화면 권한 체크(R : 읽기, X : 입력/수정/삭제, P : 출력)
  45. //========================================================================================
  46. function fCheckAuth() {
  47. btn_search.disabled = !checkAuth("R");
  48. btn_save.disabled = !checkAuth("X");
  49. btn_prt.disabled = !checkAuth("P");
  50. }
  51. //========================================================================================
  52. //화면 로드시 초기화 함수
  53. //========================================================================================
  54. function fOpenForm() {
  55. model.removenode("/root/main/list");
  56. model.refresh();
  57. }
  58. //========================================================================================
  59. //계정코드 조회
  60. //========================================================================================
  61. function fGetAcntList()
  62. {
  63. //기존 데이터 삭제
  64. // model.removenode("/root/main/acntcd/acntlist");
  65. // model.resetInstanceNode("/root/send/acntlist");
  66. model.copyNode("/root/send/acntlist","/root/main/condition");
  67. misfMsterDetailRetrieve();
  68. for(var i=1; i<grd_acntcd.rows; i++)
  69. {
  70. var sFlag = grd_acntcd.valueMatrix(i, grd_acntcd.colRef("flag"));
  71. if(sFlag == "M")
  72. {
  73. misfSetReadOnlyCol(grd_acntcd, "bugtcntryn,bugtcvrtpsblyn,bugtautoaprvyn,bugtearncostflag", true, i);
  74. }
  75. else
  76. {
  77. misfSetReadOnlyCol(grd_acntcd, "bugtcntryn,bugtcvrtpsblyn,bugtautoaprvyn,bugtearncostflag", false, i);
  78. }
  79. }
  80. //grd_acntcd.colDisabled(grd_acntcd.colRef("bugtautoaprvyn")) = true;
  81. }
  82. //========================================================================================
  83. // 저장버튼 클릭시 저장 수행 함수
  84. //========================================================================================
  85. function fClickSaveBtn()
  86. {
  87. if(!fIsValidForSave())//저장전 유효성 검사
  88. return;
  89. misfSave("TXRBC00101");
  90. btn_search.dispatch("DOMActivate");
  91. }
  92. //========================================================================================
  93. //저장전 유효성 검사
  94. //========================================================================================
  95. function fIsValidForSave() {
  96. var sAcntList = getGridUpdateData(grd_acntcd);
  97. var sBugtList = getGridUpdateData(grd_bugtcd);
  98. if(sAcntList == "" && sBugtList == "") {
  99. messageBox("변경된 데이터가","I004");
  100. return false;
  101. }else if(sAcntList != "" || sBugtList != "" ) {
  102. model.copyNode("/root/send/acntlist", sAcntList);
  103. model.copyNode("/root/send/bugtlist", sBugtList);
  104. return true;
  105. }
  106. }
  107. //========================================================================================
  108. //그리드 행 추가
  109. //========================================================================================
  110. function fAddGrid(pGrid) {
  111. var acnt_row = grd_acntcd.row;
  112. if ( acnt_row > 0 ) {
  113. pGrid.addRow();
  114. var sAcntCd = grd_acntcd.valueMatrix(acnt_row, grd_acntcd.colRef("acntcd"));
  115. model.setValue("/root/main/bugtcd/bugtlist["+ pGrid.row + "]/acntcd", sAcntCd);
  116. pGrid.editCell();
  117. model.refresh();
  118. }else {
  119. messageBox("계정코드를 선택하지 ","E007");
  120. }
  121. }
  122. //========================================================================================
  123. //그리드 행 삭제
  124. //========================================================================================
  125. function fDelGrid(pGrid)
  126. {
  127. var cur_row = pGrid.row;
  128. if(cur_row > -1)
  129. {
  130. deleteSelectedRows(pGrid, false); //true : 바로삭제, false : 상태만 삭제로 변경
  131. pGrid.refresh();
  132. }
  133. else if(cur_row == -1)
  134. {
  135. messageBox("삭제하려는 행을", "C002");
  136. }
  137. }
  138. function fSetDefaultValue()
  139. {
  140. if(grd_acntcd.col == grd_acntcd.colRef("bugtuseyn") && grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("flag")) == "M")
  141. {
  142. var sSupAcntCd3 = grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("supacntcd3"));
  143. var sSupAcntCd4 = grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("supacntcd4"));
  144. var sValue = grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("bugtuseyn"));
  145. for(var i=1; i<grd_acntcd.rows; i++)
  146. {
  147. if(grd_acntcd.valueMatrix(i, grd_acntcd.colRef("flag")) != "D") continue;
  148. var sCmpSupAcntCd3 = grd_acntcd.valueMatrix(i, grd_acntcd.colRef("supacntcd3"));
  149. var sCmpSupAcntCd4 = grd_acntcd.valueMatrix(i, grd_acntcd.colRef("supacntcd4"));
  150. if(sSupAcntCd3 == sCmpSupAcntCd3 && sSupAcntCd4 == sCmpSupAcntCd4)
  151. {
  152. if(sValue == "Y")
  153. {
  154. grd_acntcd.valueMatrix(i, grd_acntcd.colRef("bugtuseyn")) = "Y";
  155. grd_acntcd.valueMatrix(i, grd_acntcd.colRef("bugtcntryn")) = "Y";
  156. grd_acntcd.valueMatrix(i, grd_acntcd.colRef("bugtcvrtpsblyn")) = "Y";
  157. grd_acntcd.valueMatrix(i, grd_acntcd.colRef("bugtautoaprvyn")) = "Y";
  158. var iExistRow = grd_bugtcd.findRow(grd_acntcd.valueMatrix(i, grd_acntcd.colRef("acntcd")), 1, grd_bugtcd.colRef("acntcd"));
  159. if(iExistRow == -1)
  160. {
  161. grd_bugtcd.addRow();
  162. grd_bugtcd.valueMatrix(grd_bugtcd.row, grd_bugtcd.colRef("acntcd")) = grd_acntcd.valueMatrix(i, grd_acntcd.colRef("acntcd"));
  163. grd_bugtcd.valueMatrix(grd_bugtcd.row, grd_bugtcd.colRef("bugtcd")) = "01";
  164. grd_bugtcd.valueMatrix(grd_bugtcd.row, grd_bugtcd.colRef("bugtnm")) = grd_acntcd.valueMatrix(i, grd_acntcd.colRef("acntnm"));
  165. }
  166. else if(iExistRow != -1 && grd_bugtcd.rowStatus(iExistRow) == 4)
  167. {
  168. grd_bugtcd.removeStatus(iExistRow, "delete");
  169. }
  170. }
  171. else
  172. {
  173. grd_acntcd.valueMatrix(i, grd_acntcd.colRef("bugtuseyn")) = "N";
  174. grd_acntcd.valueMatrix(i, grd_acntcd.colRef("bugtcntryn")) = "N";
  175. grd_acntcd.valueMatrix(i, grd_acntcd.colRef("bugtcvrtpsblyn")) = "N";
  176. grd_acntcd.valueMatrix(i, grd_acntcd.colRef("bugtautoaprvyn")) = "N";
  177. var iRowIdx = grd_bugtcd.findRow(grd_acntcd.valueMatrix(i, grd_acntcd.colRef("acntcd")), 1, grd_bugtcd.colRef("acntcd"));
  178. var sRowStatus = grd_bugtcd.rowStatus(iRowIdx);
  179. if(sRowStatus == 1 || sRowStatus == 3)
  180. {
  181. grd_bugtcd.deleteRow(iRowIdx, false);
  182. }
  183. else if(sRowStatus == 0)
  184. {
  185. grd_bugtcd.addStatus(iRowIdx, "delete");
  186. }
  187. }
  188. grd_acntcd.addStatus(i, "update");
  189. }
  190. }
  191. grd_acntcd.removeStatus(grd_acntcd.row, "update");
  192. }
  193. else if(grd_acntcd.col == grd_acntcd.colRef("bugtuseyn") && grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("flag")) == "D")
  194. {
  195. var sValue = grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("bugtuseyn"));
  196. if(sValue == "Y")
  197. {
  198. grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("bugtcntryn")) = "Y";
  199. grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("bugtcvrtpsblyn")) = "Y";
  200. grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("bugtautoaprvyn")) = "Y";
  201. var iExistRow = grd_bugtcd.findRow(grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("acntcd")), 1, grd_bugtcd.colRef("acntcd"));
  202. if(iExistRow == -1)
  203. {
  204. grd_bugtcd.addRow();
  205. grd_bugtcd.valueMatrix(grd_bugtcd.row, grd_bugtcd.colRef("acntcd")) = grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("acntcd"));
  206. grd_bugtcd.valueMatrix(grd_bugtcd.row, grd_bugtcd.colRef("bugtcd")) = "01";
  207. grd_bugtcd.valueMatrix(grd_bugtcd.row, grd_bugtcd.colRef("bugtnm")) = grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("acntnm"));
  208. }
  209. else if(iExistRow != -1 && grd_bugtcd.rowStatus(iExistRow) == 4)
  210. {
  211. grd_bugtcd.removeStatus(iExistRow, "delete");
  212. }
  213. }
  214. else
  215. {
  216. grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("bugtcntryn")) = "N";
  217. grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("bugtcvrtpsblyn")) = "N";
  218. grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("bugtautoaprvyn")) = "N";
  219. var iRowIdx = grd_bugtcd.findRow(grd_acntcd.valueMatrix(grd_acntcd.row, grd_acntcd.colRef("acntcd")), 1, grd_bugtcd.colRef("acntcd"));
  220. var sRowStatus = grd_bugtcd.rowStatus(iRowIdx);
  221. if(sRowStatus == 1 || sRowStatus == 3)
  222. {
  223. grd_bugtcd.deleteRow(iRowIdx, false);
  224. }
  225. else if(sRowStatus == 0)
  226. {
  227. grd_bugtcd.addStatus(iRowIdx, "delete");
  228. }
  229. }
  230. }
  231. }
  232. ]]>
  233. </script>
  234. <submission id="TRRBC00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/bugtlist" resultref="/root/main/bugtcd/bugtlist"/>
  235. <submission id="TXRBC00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  236. <submission id="TRRBC90101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/acntlist" resultref="/root/main/list"/>
  237. </model>
  238. </xhtml:head>
  239. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  240. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  241. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:230px; height:13px; ">예산과목 관리</caption>
  242. <caption id="caption4" class="patient_text_black" style="left:922px; top:0px; width:272px; "/>
  243. </group>
  244. <group id="group3" scroll="auto" style="left:0px; top:40; width:1195px; height:744px; ">
  245. <datagrid id="grd_bugtcd" nodeset="/root/main/list/bugtlist" visibility="hidden" caption="계정코드^예산코드^예산명^예산코드(원본)" colsep="^" colwidth="70, 50, 110, 0" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" style="left:925px; top:76px; width:270px; height:660px; ">
  246. <col ref="acntcd"/>
  247. <col ref="bugtcd" type="input" maxlength="2"/>
  248. <col ref="bugtnm" type="input"/>
  249. <col ref="orgbugtcd"/>
  250. </datagrid>
  251. <line id="line1" class="line_1" style="x1:0px; y1:73px; x2:1194px; y2:72px; "/>
  252. <caption id="caption35" class="tit_2" style="left:5px; top:55px; width:105px; height:13px; ">계정코드</caption>
  253. <group id="group6" style="left:0px; top:10; width:1194; height:35; vertical-align:top; ">
  254. <shape id="roundrect3" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194; height:35; "/>
  255. <select1 id="cmb_useyns" ref="/root/main/condition/bugtuseyn" class="combo_s_essential" navindex="2" appearance="minimal" style="left:377px; top:8px; width:100px; height:19px; ">
  256. <choices>
  257. <item>
  258. <label>전체</label>
  259. <value>%</value>
  260. </item>
  261. <item>
  262. <label>사용</label>
  263. <value>Y</value>
  264. </item>
  265. <item>
  266. <label>사용안함</label>
  267. <value>N</value>
  268. </item>
  269. </choices>
  270. <script type="javascript" ev:event="xforms-value-changed">
  271. <![CDATA[
  272. // fGetAcntList();
  273. ]]>
  274. </script>
  275. </select1>
  276. <caption id="caption3" class="search_name" style="left:285px; top:9px; width:90px; height:17px; ">예산사용 :</caption>
  277. <caption id="caption5" class="search_name" style="left:16px; top:9px; width:86px; height:17px; ">계정구분 :</caption>
  278. <caption id="caption7" class="search_name" style="left:510px; top:9px; width:89px; height:17px; ">계정코드 :</caption>
  279. <input id="ipt_srhtxt" ref="/root/main/condition/srhtxt" class="input_s_essential" navindex="4" style="left:731px; top:8px; width:240px; height:19px; "/>
  280. <select1 id="cmb_acntflag" ref="/root/main/condition/acntflag" class="combo_s_essential" navindex="1" appearance="minimal" style="left:107px; top:8px; width:145px; height:19px; ">
  281. <choices>
  282. <item>
  283. <label/>
  284. <value/>
  285. </item>
  286. <item>
  287. <label>자산</label>
  288. <value>1</value>
  289. </item>
  290. <item>
  291. <label>부채</label>
  292. <value>2</value>
  293. </item>
  294. <item>
  295. <label>자본</label>
  296. <value>3</value>
  297. </item>
  298. <item>
  299. <label>수익</label>
  300. <value>4</value>
  301. </item>
  302. <item>
  303. <label>비용</label>
  304. <value>5</value>
  305. </item>
  306. </choices>
  307. <script type="javascript" ev:event="xforms-value-changed">
  308. <![CDATA[
  309. model.setValue("/root/main/condition/srhflag","1");
  310. model.setValue("/root/main/condition/srhtxt","");
  311. fGetAcntList();
  312. ]]>
  313. </script>
  314. </select1>
  315. <select1 id="rdo_srhflag" ref="/root/main/condition/srhflag" class="radio_search" overflow="visible" appearance="full" cellspacing="15" cols="2" style="left:601px; top:8px; width:118px; height:19px; border-style:none; ">
  316. <choices>
  317. <item>
  318. <label>코드</label>
  319. <value>1</value>
  320. </item>
  321. <item>
  322. <label>코드명</label>
  323. <value>2</value>
  324. </item>
  325. </choices>
  326. </select1>
  327. <button id="btn_search" class="btn1_letter2" navindex="4" style="left:1123px; top:8px; width:56px; height:22px; text-align:left; ">
  328. <caption>조회</caption>
  329. <script type="javascript" ev:event="DOMActivate">
  330. <![CDATA[
  331. fGetAcntList();
  332. ]]>
  333. </script>
  334. </button>
  335. <line id="line5" class="line_4" style="x1:1107px; y1:8px; x2:1107px; y2:30px; border-color:#ffe4bb; border-left-style:solid; "/>
  336. </group>
  337. <datagrid id="grd_acntcd" nodeset="/root/main/list/acntlist" caption="항코드^항^목코드^목^예산사용^세목^세목^예산통제^전용가능^자동승인^조회여부^예산구분^flag" colsep="^" colwidth="0, 155, 0, 180, 85, 90, 230, 70, 70, 70, 70, 105, 100, 100" ellipsis="true" mergecellsfixedcols="never" mergecellsfixedrows="never" rowheader="update" rowheight="23" rowsep="|" tooltip="true" style="left:0px; top:76px; width:1195px; height:663px; ">
  338. <col ref="supacntcd3" visibility="hidden"/>
  339. <col ref="supacntnm3"/>
  340. <col ref="supacntcd4" visibility="hidden"/>
  341. <col ref="supacntnm4"/>
  342. <col checkvalue="Y,N" ref="bugtuseyn" type="checkbox"/>
  343. <col ref="acntcd"/>
  344. <col ref="acntnm"/>
  345. <col checkvalue="Y,N" ref="bugtcntryn" type="checkbox"/>
  346. <col checkvalue="Y,N" ref="bugtcvrtpsblyn" type="checkbox"/>
  347. <col checkvalue="Y,N" ref="bugtautoaprvyn" type="checkbox"/>
  348. <col checkvalue="Y,N" ref="bugtselectyn" type="checkbox"/>
  349. <col ref="bugtearncostflag" type="combo" style="text-align:center; ">
  350. <choices>
  351. <item>
  352. <label>수입</label>
  353. <value>1</value>
  354. </item>
  355. <item>
  356. <label>비용</label>
  357. <value>2</value>
  358. </item>
  359. <item>
  360. <label>구매</label>
  361. <value>3</value>
  362. </item>
  363. <item>
  364. <label>자본</label>
  365. <value>4</value>
  366. </item>
  367. </choices>
  368. </col>
  369. <col ref="flag" visibility="hidden"/>
  370. <choices>
  371. <item>
  372. <label>Y</label>
  373. <value>Y</value>
  374. </item>
  375. <item>
  376. <label>N</label>
  377. <value>N</value>
  378. </item>
  379. </choices>
  380. <script type="javascript" ev:event="xforms-value-changed">
  381. <![CDATA[
  382. fSetDefaultValue();
  383. ]]>
  384. </script>
  385. </datagrid>
  386. <button id="button1" class="btn2_letter4" style="left:1125px; top:49px; width:64px; height:19px; ">
  387. <caption>엑셀출력</caption>
  388. <script type="javascript" ev:event="onclick">
  389. <![CDATA[
  390. misfSaveExcel(grd_acntcd);
  391. ]]>
  392. </script>
  393. </button>
  394. </group>
  395. <group id="group4" scroll="auto" style="left:0px; top:13; width:1195px; height:27px; ">
  396. <line id="line3" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  397. <button id="btn_save" class="btn4_letter2" style="left:1138px; top:3px; width:56px; height:22px; ">
  398. <caption>저장</caption>
  399. <script type="javascript" ev:event="DOMActivate">
  400. <![CDATA[
  401. fClickSaveBtn();
  402. ]]>
  403. </script>
  404. </button>
  405. <button id="btn_prt" class="btn6_letter2" visibility="hidden" style="left:0px; top:3px; width:56px; height:22px; ">
  406. <caption>출력</caption>
  407. </button>
  408. <caption id="caption1" style="left:75px; top:3px; width:615px; height:20px; font-weight:bold; color:#ff0000; text-align:left; vertical-align:middle; ">자산 계정은 수익으로 설정 할 수 없습니다. 자산 수익 반환 시 예산의 큰 문제점이 발생할 수 있습니다.</caption>
  409. </group>
  410. </xhtml:body>
  411. </xhtml:html>