SMRSI02705.js 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023
  1. /* -----------------------------------------------------------------------------------
  2. SMRSI02705_월정산내역Check및전표처리(성의교정).xrw ( SMRSI02705.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ----------------------------------------------------------------------------------- */
  8. var xAuth = !(checkAuth("X"));
  9. var pAuth = !(checkAuth("P"));
  10. var vPurcAuth = "1";
  11. var vWinQty = 0;
  12. var vWinAmt = 0;
  13. var vWinQtySel = 0;
  14. var vWinAmtSel = 0;
  15. var gTabIdx = "0"; //TAB INDEX
  16. // --------------------------------------------------
  17. // 화면 Control을 초기화한다
  18. // --------------------------------------------------
  19. function fInit() {
  20. fInitialize();
  21. return;
  22. }
  23. // --------------------------------------------------------------
  24. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  25. // --------------------------------------------------------------
  26. function fInitialize() {
  27. model.resetInstanceNode("/root/send/goodreq");
  28. misfGridInit(grd_rsihinptlist);
  29. rszfUserReqInstList(cmb_instcd , getUserInfo("userid"),"1","B"); // 기관코드
  30. rszfComboBgcdBugtList("cmb_groupbugt", getUserInfo("dutplceinstcd"), '1'); // 예산계정
  31. addComboItem( "cmb_groupbugt" , "전체", "", "above");
  32. rszfComboBgcdBugtList("cmb_groupbugt2", getUserInfo("dutplceinstcd"), '1'); // 예산계정
  33. addComboItem( "cmb_groupbugt2" , "전체", "", "above");
  34. model.setValue("/root/init/select_chk", 2);
  35. model.setValue(cmb_instcd.attribute("ref") , getUserInfo("dutplceinstcd")); // 기관코드
  36. model.setValue("/root/send/slipdata/instcd" , getUserInfo("dutplceinstcd")); // 기관코드
  37. model.setValue("/root/send/slipdata/instcdnm" , getUserInfo("dutplceinstnm"));
  38. model.setValue("/root/send/slipdata/slipdeptcd" , getUserInfo("dutplcecd" ));
  39. model.setValue("/root/send/slipdata/slipdeptcdnm", getUserInfo("dutplcenm" ));
  40. model.setValue(ipt_fromdd.attribute("ref") , getCurrentDate()); // 입고일자 FROM
  41. model.setValue(ipt_todd.attribute("ref") , getCurrentDate()); // 입고일자 TO
  42. model.setValue(ipt_jobmonth.attribute("ref"), getCurrentDate().substr(0,6)); // 정산년월
  43. // model.setValue(ipt_insertdd.attribute("ref"), getCurrentDate()); // 확정일자
  44. misfComboComCdListMulti("R0109","cmb_calcdocukind");
  45. grd_rsihinptlist.explorerbar = "sortshow";
  46. model.refresh();
  47. }
  48. // --------------------------------------------------
  49. // Data 조회
  50. // --------------------------------------------------
  51. function fDataSearchClick() {
  52. switch(gTabIdx) {
  53. case "0" :
  54. fConfirmDataView();
  55. break;
  56. case "1" :
  57. fSlipDataView("I",grd_inconfirmlist);
  58. }
  59. }
  60. // --------------------------------------------------------------
  61. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  62. // --------------------------------------------------------------
  63. function fConfirmDataView() {
  64. if(!isRequiredControls("ipt_fromdd"))return;
  65. if(!isRequiredControls("ipt_todd"))return;
  66. fViewToggle(1);
  67. submit("TRRSI02707");
  68. model.setFocus("grd_rsihinptlist");
  69. grd_rsihinptlist.select(1,1) = true;
  70. grd_rsihinptlist.dispatch("onrowchanged");
  71. //
  72. for (var fRow = grd_rsihinptlist.fixedRows ; fRow < grd_rsihinptlist.rows ; fRow++) {
  73. if (grd_rsihinptlist.valueMatrix(fRow, grd_rsihinptlist.colRef("slipdd")) != "") {
  74. grd_rsihinptlist.isReadOnly(fRow, grd_rsihinptlist.fixedCols-1, fRow, grd_rsihinptlist.cols-1) = true;
  75. }
  76. //
  77. iQty = parseFloat(model.getValue(grd_rsihinptlist.nodeset+"["+ fRow +"]/winqty" )); // 입고수량
  78. oQty = parseFloat(model.getValue(grd_rsihinptlist.nodeset+"["+ fRow +"]/delivedeptqty" )); // 출고수량
  79. if (iQty != oQty ) {
  80. grd_rsihinptlist.cellstyle("background-color", fRow, grd_rsihinptlist.colRef("winqty"), fRow, grd_rsihinptlist.colRef("delivedeptqty")) = "yellow";
  81. grd_rsihinptlist.cellstyle("color" , fRow, grd_rsihinptlist.colRef("winqty"), fRow, grd_rsihinptlist.colRef("delivedeptqty")) = "red";
  82. }
  83. }
  84. model.refresh();
  85. }
  86. // --------------------------------------------------
  87. // 전표대상자료 보여주기 함수
  88. // --------------------------------------------------
  89. function fSlipDataView(pFlag, pGrid) {
  90. //var iPath = "/root/send/inlist/";
  91. //var oPath = "/root/send/outlist/";
  92. //if (model.getValue("/root/send/jobmonth") == "") {
  93. // alert("작업일자를 입력 하십시요!!" );
  94. // return;
  95. //}
  96. misfGridInit(pGrid);
  97. if (pFlag == "I") {
  98. submit("TRRSI02710");
  99. pGrid.subtotal("sum", pGrid.colRef(""), pGrid.colRef("dramt" ) , "#,###", "font-weight:bold; background-color:#ccffcc;",pGrid.colRef("acntnm"),"- 합계 - ");
  100. pGrid.subtotal("sum", pGrid.colRef(""), pGrid.colRef("cramt" ) , "#,###", "font-weight:bold; background-color:#ccffcc;",pGrid.colRef(""),"");
  101. pGrid.subtotal("sum", pGrid.colRef(""), pGrid.colRef("suplamt" ), "#,###", "font-weight:bold; background-color:#ccffcc;",pGrid.colRef(""),"");
  102. pGrid.subtotal("sum", pGrid.colRef(""), pGrid.colRef("valaddtax"), "#,###", "font-weight:bold; background-color:#ccffcc;",pGrid.colRef(""),"");
  103. }
  104. }
  105. // --------------------------------------------------
  106. // Switch 속성변경 처리하는 함수
  107. // --------------------------------------------------
  108. function fViewToggle(pCls) {
  109. if (pCls == 1) // 늘리기
  110. { // 메인 Grup
  111. grp_main.attribute("visibility" ) = "hidden" ;
  112. // Data Grid
  113. grd_rsihinptlist.attribute("left" ) = "0" ;
  114. grd_rsihinptlist.attribute("width" ) = "1190" ;
  115. rdo_plceordwinflag.attribute("visibility") = "hidden" ;
  116. line2.attribute("x2" ) = "1190" ;
  117. } else { // 줄이기
  118. // 메인 Grup
  119. grp_main.attribute("visibility" ) = "visible" ;
  120. grd_rsihinptlist.attribute("left" ) = "0" ;
  121. grd_rsihinptlist.attribute("width" ) = "592";
  122. rdo_plceordwinflag.attribute("visibility") = "visible" ;
  123. line2.attribute("x2" ) = "592" ;
  124. }
  125. grp_main.refresh();
  126. }
  127. // --------------------------------------------------
  128. // 보기 Option 선택
  129. // --------------------------------------------------
  130. function fViewOptionClick() {
  131. grp_view.visible = true;
  132. grp_main.disabled = true; // addGroup 컨트롤이 나타나면 listGroup 컨트롤을 disabled 시킴
  133. grp_view.refresh();
  134. }
  135. // --------------------------------------------------
  136. // View Option 처리하는 함수
  137. // --------------------------------------------------
  138. function fViewOptionToggle() {
  139. var vColName = "";
  140. var sNode = null;
  141. var oPath = "/root/init/Options/option_0/";
  142. var vOpTail = "_op_0";
  143. var pGrid = grd_rsihinptlist;
  144. for (var fCol = 1; fCol < pGrid.cols ; fCol++) {
  145. vColName = pGrid.colAttribute(fCol,"ref");
  146. var sNode = instance1.selectSingleNode(oPath + vColName);
  147. if (sNode != null) {
  148. pGrid.colHidden(pGrid.colRef(vColName)) = (eval("chk_"+vColName + vOpTail).value =="Y") ? false : true;
  149. }
  150. }
  151. pGrid.refresh();
  152. grp_view.visible = false;
  153. grp_main.disabled = false; // addGroup 컨트롤이 나타나면 listGroup 컨트롤을 disabled 시킴
  154. }
  155. // --------------------------------------------------------------
  156. // 조회후 값 SUM처리한다
  157. // pGrid : 선택그리드, pFlag : Y:선택, N :취소
  158. // --------------------------------------------------------------
  159. function fDataChkAllSelect(pFlag) {
  160. vWinQtySel = 0;
  161. vWinAmtSel = 0;
  162. var pGrid = grd_rsihinptlist;
  163. // 결재 내역 List
  164. for (var fRow = pGrid.fixedRows ; fRow < pGrid.rows ; fRow++) {
  165. fDataCheckSelect(pGrid, fRow, pFlag);
  166. }
  167. pGrid.refresh();
  168. }
  169. function fDataCheckSelect(pGrid, pRow, pFlag) {
  170. vCheck = 0;
  171. if ((model.getValue(pGrid.nodeset+"["+pRow+"]/calccnfmyn") == "Y") &&
  172. (model.getValue(pGrid.nodeset+"["+pRow+"]/winprcsflag") == "9") ){
  173. vCheck = 1;
  174. }
  175. ChkFlag = model.getValue(pGrid.nodeset+"["+pRow+"]/oldcalccnfmyn");
  176. if (ChkFlag == "") ChkFlag = "N";
  177. if (ChkFlag == pFlag){
  178. vCheck = 1;
  179. }
  180. if (vCheck == 0) {
  181. pGrid.rowStatus(pRow) = "2";
  182. model.setValue(pGrid.nodeset + "[" + pRow + "]/calccnfmyn", pFlag);
  183. } else {
  184. pGrid.removeStatus(pRow, "update");
  185. model.setValue(pGrid.nodeset + "[" + pRow + "]/calccnfmyn", ChkFlag);
  186. }
  187. // pGrid.refresh();
  188. }
  189. // --------------------------------------------------
  190. // 정산확정일자 저장처리
  191. // --------------------------------------------------
  192. function fCheckPersonSave(pCls) {
  193. for (var i=grd_rsihinptlist.fixedRows;i<=grd_rsihinptlist.rows;i++){
  194. grd_rsihinptlist.valueMatrix(i, grd_rsihinptlist.colRef("chk")) = model.getValue("/root/init/select_chk");
  195. if (grd_rsihinptlist.rowStatus(i) == "2") {
  196. if (grd_rsihinptlist.valueMatrix(i, grd_rsihinptlist.colRef("calccnfmyn")) == "Y") {
  197. model.setValue(grd_rsihinptlist.nodeset+"["+ i +"]/calccnfmpsn", getUserInfo("userid"));
  198. model.setValue(grd_rsihinptlist.nodeset+"["+ i +"]/calccnfmdd" , model.getValue("/root/send/goodreq/insertdd"));
  199. } else {
  200. model.setValue(grd_rsihinptlist.nodeset+"["+ i +"]/calccnfmpsn", "" );
  201. model.setValue(grd_rsihinptlist.nodeset+"["+ i +"]/calccnfmdd" , "" );
  202. }
  203. }
  204. }
  205. grd_rsihinptlist.refresh();
  206. if(messageBox("", "Q002") == "6")
  207. {
  208. model.removenode("/root/send/rsihinpt/rsihinptlist");
  209. model.makeNode("/root/send/rsihinpt/rsihinptlist");
  210. model.setValue("/root/send/rsihinpt/rsihinptlist", grd_rsihinptlist.getUpdateData("update"));
  211. var updtdata = getGridUpdateData(grd_rsihinptlist);
  212. if (updtdata == "") {
  213. messageBox("변경된 데이터가","I004");
  214. return;
  215. }
  216. submit("TXRSI02708");
  217. }
  218. if (model.getValue(gvErrorMsgPath + "/type") != "error") btn_search.dispatch("DOMActivate");
  219. }
  220. //
  221. function fGridRowChangedEvent()
  222. {
  223. var fRow = grd_rsihinptlist.row;
  224. var xPath = "/root/main/component";
  225. model.copyNode(xPath ,"/root/main/rsihinptlist["+ fRow +"]");
  226. model.removeNodeset("/root/temp/rsihinptlist");
  227. model.makeNode("/root/temp/rsihinptlist");
  228. model.copyNode("/root/temp/rsihinptlist", "/root/main/component");
  229. if (model.getValue("/root/main/rsihinptlist["+ fRow +"]/slipdd") != "" ) {
  230. btn_update_win.disabled = true;
  231. btn_update_delive.disabled = true;
  232. } else {
  233. btn_update_win.disabled = false;
  234. btn_update_delive.disabled = false;
  235. }
  236. model.refresh();
  237. model.dispatch("onmouseup");
  238. model.setValue("/root/send/gooddelive/goodcd", model.getValue("/root/main/rsihinptlist["+ grd_rsihinptlist.row +"]/goodcd"));
  239. model.setValue("/root/send/gooddelive/goodflag", model.getValue("/root/main/rsihinptlist["+ grd_rsihinptlist.row +"]/goodflag"));
  240. model.setValue("/root/send/gooddelive/winseqno", model.getValue("/root/main/rsihinptlist["+ grd_rsihinptlist.row +"]/winseqno"));
  241. model.setValue("/root/send/gooddelive/winno", model.getValue("/root/main/rsihinptlist["+ grd_rsihinptlist.row +"]/winno"));
  242. model.setValue("/root/send/gooddelive/windd", model.getValue("/root/main/rsihinptlist["+ grd_rsihinptlist.row +"]/windd"));
  243. model.setValue("/root/send/gooddelive/windeptcd", model.getValue("/root/main/rsihinptlist["+ grd_rsihinptlist.row +"]/windeptcd"));
  244. model.setValue("/root/send/gooddelive/instcd", model.getValue("/root/main/rsihinptlist["+ grd_rsihinptlist.row +"]/instcd"));
  245. model.refresh();
  246. submit("TRRSI02714");
  247. var gridObj = document.all("grd_gooddelivelist");
  248. var deliveno = grd_gooddelivelist.valueMatrix(grd_gooddelivelist.fixedRows, grd_gooddelivelist.colRef("deliveno"));
  249. if( deliveno.length == 0){
  250. gridObj.cellStyle("background-image", grd_gooddelivelist.fixedRows, grd_gooddelivelist.colRef("delivedeptnm")) = "";
  251. gridObj.cellStyle("background-color", grd_gooddelivelist.fixedRows, grd_gooddelivelist.colRef("delivedeptnm")) = "red";
  252. }else{
  253. gridObj.cellStyle("background-image", grd_gooddelivelist.fixedRows, grd_gooddelivelist.colRef("delivedeptnm")) = "";
  254. gridObj.cellStyle("background-color", grd_gooddelivelist.fixedRows, grd_gooddelivelist.colRef("delivedeptnm")) = "white";
  255. }
  256. }
  257. // --------------------------------------------------------------
  258. // 조회후 값 SUM처리한다
  259. // --------------------------------------------------------------
  260. function fRdoChangedInit()
  261. {
  262. //초기화
  263. misfGridInit(grd_rsihinptlist);
  264. model.resetInstanceNode("/root/main/component/rsihinptlist");
  265. model.refresh();
  266. }
  267. // --------------------------------------------------------------
  268. // 조회후 값 SUM처리한다
  269. // --------------------------------------------------------------
  270. function fAfterRetrieve(pFlag)
  271. {
  272. vWinQty = 0;
  273. vWinAmt = 0;
  274. vWinQtySel = 0;
  275. vWinAmtSel = 0;
  276. if (pFlag == "1") {
  277. // 결재 내역 List
  278. for (var fRow = grd_rsihdpaplist.fixedRows ; fRow < grd_rsihdpaplist.rows ; fRow++) {
  279. vWinQty += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winqty")));
  280. vWinAmt += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winamt")));
  281. if (grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("slipdd")) != "") {
  282. grd_rsihdpaplist.isReadOnly(fRow, grd_rsihdpaplist.fixedCols-1, fRow, grd_rsihdpaplist.cols-1) = true;
  283. } else {
  284. if (grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("chkyn")) == "Y") {
  285. vWinQtySel += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winqty")));
  286. vWinAmtSel += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winamt")));
  287. }
  288. grd_rsihdpaplist.isReadOnly(fRow, grd_rsihdpaplist.fixedCols-1, fRow, grd_rsihdpaplist.cols-1) = false;
  289. }
  290. }
  291. //
  292. // grd_rsihdpaplist.colHidden(4) = (chk_suppcustcd.value== "Y") ? true : false; // 보조거래처제외
  293. // grd_rsihdpaplist.colHidden(5) = (chk_suppcustcd.value== "Y") ? true : false; // 보조거래처제외
  294. // grd_rsihdpaplist.colHidden(6) = (chk_windd.value == "Y") ? true : false; // 입고일자제외
  295. // grd_rsihdpaplist.colHidden(8) = (chk_calcdocudd.value== "Y") ? true : false; // 계산서일자
  296. //
  297. model.setValue(opt_winqtysel.attribute("ref") ,vWinQtySel);
  298. model.setValue(opt_winamtsel.attribute("ref") ,vWinAmtSel);
  299. model.setValue(opt_winqtytotal.attribute("ref"),vWinQty );
  300. model.setValue(opt_winamttotal.attribute("ref"),vWinAmt );
  301. } else {
  302. // 결재 내역 상세 List
  303. fDataSum(grd_rsihdpapwinlist);
  304. //
  305. model.setValue(opt_winqtysum.attribute("ref"),vWinQty);
  306. model.setValue(opt_winamtsum.attribute("ref"),vWinAmt);
  307. }
  308. model.refresh();
  309. }
  310. // --------------------------------------------------------------
  311. // 조회후 값 SUM처리한다
  312. // --------------------------------------------------------------
  313. function fDataSum(pGrid)
  314. {
  315. vWinQty = 0;
  316. vWinAmt = 0;
  317. // 결재 내역 List
  318. for (var fRow = pGrid.fixedRows ; fRow < pGrid.rows ; fRow++) {
  319. vWinQty += parseFloat(pGrid.valueMatrix(fRow, pGrid.colRef("winqty")));
  320. vWinAmt += parseFloat(pGrid.valueMatrix(fRow, pGrid.colRef("winamt")));
  321. }
  322. }
  323. // --------------------------------------------------
  324. // 화면 Control을 초기화한다
  325. // --------------------------------------------------
  326. function fClearData() {
  327. // misfGridInit(grd_rsihdpaplist);
  328. misfGridInit(grd_rsihinptlist);
  329. // model.setValue(opt_winqtysum.attribute("ref" ),"");
  330. // model.setValue(opt_winamtsum.attribute("ref" ),"");
  331. // model.setValue(opt_winqtytotal.attribute("ref"),"");
  332. // model.setValue(opt_winamttotal.attribute("ref"),"");
  333. model.refresh();
  334. return;
  335. }
  336. // --------------------------------------------------------------
  337. // 조회후 값 SUM처리한다
  338. // --------------------------------------------------------------
  339. function fDataAllSelect(pFlag) {
  340. vWinQtySel = 0;
  341. vWinAmtSel = 0;
  342. // 결재 내역 List
  343. for (var fRow = grd_rsihdpaplist.fixedRows ; fRow < grd_rsihdpaplist.rows ; fRow++) {
  344. if (grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("slipdd")) == "") {
  345. if (pFlag == "Y") {
  346. vWinQtySel += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winqty")));
  347. vWinAmtSel += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winamt")));
  348. if (model.getValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkyn") !="Y") {
  349. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkyn" ,pFlag);
  350. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkpsn" ,getUserInfo("userid"));
  351. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkpsnnm",getUserInfo("usernm"));
  352. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkdd" ,getCurrentDate() );
  353. }
  354. } else {
  355. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkpsn" , '');
  356. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkpsnnm", '');
  357. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkdd" , '');
  358. }
  359. }
  360. }
  361. //
  362. model.setValue(opt_winqtysel.attribute("ref") ,vWinQtySel);
  363. model.setValue(opt_winamtsel.attribute("ref") ,vWinAmtSel);
  364. model.refresh();
  365. }
  366. // --------------------------------------------------------------
  367. // 조회후 값 SUM처리한다
  368. // --------------------------------------------------------------
  369. function fDataSelectSum(pGrid)
  370. {
  371. vWinQtySel = 0;
  372. vWinAmtSel = 0;
  373. // 결재 내역 List
  374. for (var fRow = pGrid.fixedRows ; fRow < pGrid.rows ; fRow++) {
  375. if (pGrid.valueMatrix(fRow, pGrid.colRef("slipdd")) == "" ) {
  376. if (pGrid.valueMatrix(fRow, pGrid.colRef("chkyn" )) == "Y") {
  377. vWinQtySel += parseFloat(pGrid.valueMatrix(fRow, pGrid.colRef("winqty")));
  378. vWinAmtSel += parseFloat(pGrid.valueMatrix(fRow, pGrid.colRef("winamt")));
  379. }
  380. }
  381. }
  382. model.setValue(opt_winqtysel.attribute("ref") ,vWinQtySel);
  383. model.setValue(opt_winamtsel.attribute("ref") ,vWinAmtSel);
  384. model.refresh();
  385. }
  386. // --------------------------------------------------------------
  387. // 조회후 값 SUM처리한다
  388. // --------------------------------------------------------------
  389. function fOnRowChanged(pGrid)
  390. {
  391. sPath ="/root/send/";
  392. tPath ="/root/send/windtl/";
  393. model.setValue(tPath + "instcd" , model.getValue(sPath + "instcd" )); // 기관코드
  394. model.setValue(tPath + "fromdd" , model.getValue(sPath + "fromdd" )); // 입고일자 FROM
  395. model.setValue(tPath + "todd" , model.getValue(sPath + "todd" )); // 입고일자 TO
  396. model.setValue(tPath + "chkyn" , model.getValue(sPath + "chkyn" )); // 검수유무
  397. model.setValue(tPath + "winpsn" , model.getValue(sPath + "winpsn" )); // 입고자
  398. model.setValue(tPath + "suppcustcd", model.getValue(sPath + "suppcustcd")); // 보조거래처
  399. model.setValue(tPath + "purcflag" , model.getValue(sPath + "purcflag" )); // 구매구분
  400. model.setValue(tPath + "paycond" , model.getValue(sPath + "paycond" )); // 1:정상, 2:지불필
  401. model.setValue(tPath + "windd" , "" ); // 입고일자
  402. model.setValue(tPath + "calcdocudd", "" ); // 계산서일자
  403. model.setValue(tPath +"goodflag" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("goodflag" ))); // 물품구분
  404. model.setValue(tPath +"suplplcecd" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("suplplcecd" ))); // 주거래처
  405. model.setValue(tPath +"purcflag" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("purcflag" ))); // 구매구분
  406. model.setValue(tPath +"calcdocukind", pGrid.valueMatrix(pGrid.row, pGrid.colRef("calcdocukind"))); // 계산서구분
  407. model.setValue(tPath +"slipdd" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("slipdd"))); // 전표일자
  408. model.setValue(tPath +"slipno" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("slipno"))); // 전표번호
  409. model.setValue(tPath +"winpsn" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("winpsn"))); // 입고자
  410. //if (chk_suppcustcd.value != "Y") model.setValue(tPath +"windd" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("windd" ))); // 입고일자
  411. //if (chk_windd.value != "Y") model.setValue(tPath +"suppcustcd" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("suppcustcd"))); // 보조거래처
  412. //if (chk_calcdocudd.value != "Y") model.setValue(tPath +"calcdocudd" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("calcdocudd"))); // 계산서일자
  413. submit("TRRSI02706");
  414. fAfterRetrieve("2");
  415. model.refresh();
  416. }
  417. // --------------------------------------------------
  418. // Data Part Toggle 속성Toggle 처리하는 함수
  419. // --------------------------------------------------
  420. function fDataPartToggle(pCls) {
  421. switch(pCls) {
  422. case 0 :
  423. // 메인 Grup
  424. grd_rsihdpapwinlist.attribute("left" ) = "427";
  425. grd_rsihdpapwinlist.attribute("width" ) = "760";
  426. grd_rsihdpapwinlist.refresh();
  427. break;
  428. case 1 :
  429. grd_rsihdpapwinlist.attribute("left" ) = "0";
  430. grd_rsihdpapwinlist.attribute("width" ) = "1185";
  431. grd_rsihdpapwinlist.refresh();
  432. }
  433. grd_rsihdpapwinlist.refresh();
  434. }
  435. // --------------------------------------------------
  436. // 예산계정 Click
  437. // --------------------------------------------------
  438. function fGooddeliveButtonClick() {
  439. grp_bugtflag.attribute("visibility") = "hidden" ;
  440. var iClickY = event.clientY - 100;
  441. if (iClickY > 375) iClickY = iClickY - 319;
  442. grp_bugtflag.attribute("top") = iClickY+ "px";
  443. model.setValue("/root/main/bugtinfo/groupbugt", model.getValue("/root/main/component/groupbugt"));
  444. cmb_groupbugt2.dispatch("xforms-value-changed");
  445. grp_bugtflag.attribute("visibility") = "visible" ;
  446. }
  447. //
  448. function fDeliveBugtDataSet() {
  449. if (cmb_acntcd.value == "") return;
  450. var vPath = "/root/main/BugLists/bugtlist["+(cmb_acntcd.focusIndex+1)+"]";
  451. model.setValue(out_projectid.attribute("ref") , model.getvalue(vPath+"/projectid" ));
  452. model.setValue(out_projectnm.attribute("ref") , model.getvalue(vPath+"/projectnm" ));
  453. model.setValue(out_totamt.attribute("ref") , model.getvalue(vPath+"/totamt" ));
  454. model.setValue(out_bugtexpcamt.attribute("ref") , model.getvalue(vPath+"/bugtexpcamt"));
  455. model.setValue(out_remainder.attribute("ref") , model.getvalue(vPath+"/remainder" ));
  456. }
  457. // 예산계정 Clear
  458. function fDeliveAcctDataClear() {
  459. model.setValue(cmb_acntcd.attribute("ref") , "");
  460. model.setValue(out_projectid.attribute("ref") , "");
  461. model.setValue(out_projectnm.attribute("ref") , "");
  462. model.setValue(out_totamt.attribute("ref") , "");
  463. model.setValue(out_bugtexpcamt.attribute("ref") , "");
  464. model.setValue(out_bugtexecamt.attribute("ref") , "");
  465. model.setValue(out_remainder.attribute("ref") , "");
  466. }
  467. // --------------------------------------------------
  468. // 출고내역 Grid Changed
  469. // --------------------------------------------------
  470. function fGoodDeliveListChanged()
  471. {
  472. var restqty;
  473. var deliveamt;
  474. var reqqty = parseFloat(model.getValue(grd_gooddelivelist.nodeset+"[" + grd_gooddelivelist.row + "]/reqqty" ));
  475. var delivedeptqty = parseFloat(model.getValue(grd_gooddelivelist.nodeset+"[" + grd_gooddelivelist.row + "]/delivedeptqty"));
  476. if (delivedeptqty > reqqty){
  477. var retMes = messageBox("출고수량이 청구수량 보다 큽니다. 작업하시겠습니까?", "Q999");
  478. if (retMes != 6) {
  479. model.setValue(grd_gooddelivelist.nodeset+"[" + grd_gooddelivelist.row + "]/delivedeptqty", "0");
  480. // return;
  481. }
  482. // messageBox("출고 수량이 청구 수량을 ","E003");
  483. // model.setValue(grd_gooddelivelist.nodeset+"[" + grd_gooddelivelist.row + "]/delivedeptqty", "0");
  484. }
  485. restqty = parseFloat(model.getValue(grd_gooddelivelist.nodeset+"[" + grd_gooddelivelist.row + "]/reqqty" ))
  486. - parseFloat(model.getValue(grd_gooddelivelist.nodeset+"[" + grd_gooddelivelist.row + "]/delivedeptqty"));
  487. model.setValue(grd_gooddelivelist.nodeset+"[" + grd_gooddelivelist.row + "]/restqty", restqty);
  488. deliveamt = parseFloat(model.getValue(grd_gooddelivelist.nodeset+"[" + grd_gooddelivelist.row + "]/delivedeptqty"))
  489. * parseFloat(model.getValue(grd_gooddelivelist.nodeset+"[" + grd_gooddelivelist.row + "]/goodunitcost" ));
  490. model.setValue(grd_gooddelivelist.nodeset+"[" + grd_gooddelivelist.row + "]/deliveamt", deliveamt);
  491. grd_gooddelivelist.refresh();
  492. }
  493. // --------------------------------------------------
  494. // 출고내역 INSERT ROW
  495. // --------------------------------------------------
  496. function fDeliveInsertRow()
  497. {
  498. var retMes = messageBox("추가 하시겠습니까?", "Q999");
  499. if (retMes != 6) {
  500. return;
  501. }
  502. //
  503. misfGridIUD(grd_gooddelivelist, "A");
  504. grd_gooddelivelist.row = grd_gooddelivelist.rows -grd_gooddelivelist.fixedRows ;
  505. //
  506. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/chk" , "TRUE" );
  507. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/windeptcd" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/windeptcd" ));
  508. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/oldwindeptcd" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/windeptcd" ));
  509. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/windeptnm" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/windeptnm" ));
  510. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/deliveallno" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/windd" ));
  511. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/delivedd" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/windd" ));
  512. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/deliveno" , "" );
  513. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/deliveseqno" , "" );
  514. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/reqqty" , "0" );
  515. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/delivedeptqty" , "0" );
  516. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/restqty" , "0" );
  517. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/goodunitcost" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/winunitcost" ));
  518. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/deliveamt" , "0" );
  519. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/deliveunit" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/winunit" ));
  520. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/iokindcd" , "2C" );
  521. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/iokindnm" , "정상입고동시출고" );
  522. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/goodcd" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/goodcd" ));
  523. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/allsizespecid" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/allsizespecid"));
  524. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/goodnm" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/goodnm" ));
  525. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/goodspec" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/goodspec" ));
  526. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/goodmodel" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/goodmodel" ));
  527. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/winallno" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/winputno" ));
  528. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/windd" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/windd" ));
  529. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/winno" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/winno" ));
  530. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/winseqno" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/winseqno" ));
  531. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/olddelivedeptcd", model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/windeptcd" ));
  532. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/delivedeptcd" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/windeptcd" ));
  533. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/delivedeptnm" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/windeptnm" ));
  534. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/reqflag" , "" );
  535. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/reqallno" , "" );
  536. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/reqdd" , "" );
  537. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/reqno" , "" );
  538. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/reqseqno" , "" );
  539. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/purcdmnddd" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/purcdmnddd" ));
  540. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/purcdmndno" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/purcdmndno" ));
  541. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/purcdmndseq" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/purcdmndseq" ));
  542. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/delivepsn" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/winpsn" ));
  543. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/delivepsnnm" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/winpsnnm" ));
  544. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/goodflag" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/goodflag" ));
  545. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/tranflag" , "" );
  546. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/instcd" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/instcd" ));
  547. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/reqdeptcd" , model.getValue(grd_rsihinptlist.nodeset+"["+grd_rsihinptlist.row +"]/windeptcd" ));
  548. model.setValue(grd_gooddelivelist.nodeset+"["+grd_gooddelivelist.row+"]/endmonth" , "999999" );
  549. //
  550. grd_gooddelivelist.refresh();
  551. }
  552. // --------------------------------------------------
  553. // 출고내역 UPDATE
  554. // --------------------------------------------------
  555. function fGoodDeliveUpdate()
  556. {
  557. // var retMes = messageBox("저장 하시겠습니까?", "Q999");
  558. // if (retMes != 6) {
  559. // return;
  560. // }
  561. for(var i = grd_gooddelivelist.fixedRows ; i < grd_gooddelivelist.rows ; i++ ){
  562. var chk = grd_gooddelivelist.valueMatrix(i, grd_gooddelivelist.colRef("chk"));
  563. if (grd_gooddelivelist.rowStatus(i) == 0) {
  564. if (chk == "true"){
  565. grd_gooddelivelist.rowStatus(i) = 2;
  566. }else{
  567. grd_gooddelivelist.rowStatus(i) = 0;
  568. }
  569. }
  570. }
  571. var updtdata = getGridUpdateData(grd_gooddelivelist);
  572. if (updtdata == "")
  573. {
  574. messageBox("선택된 데이터가","I004");
  575. return;
  576. }
  577. model.setValue("/root/send/gooddelivesave/gooddelivesavelist", updtdata)
  578. misfSave("TXRSI02709");
  579. fGridRowChangedEvent();
  580. //
  581. model.refresh();
  582. }
  583. // --------------------------------------------------
  584. // 입고내역 Grid Click 저장
  585. // --------------------------------------------------
  586. function fRsihinptGridRowChanged(pGrid)
  587. {
  588. misfGridInit(grd_gooddelivelist);
  589. if (pGrid.row == 0) return;
  590. var pRow = pGrid.row;
  591. var xPath = "/root/send/gooddelive";
  592. model.setValue(xPath + "/goodcd" , model.getValue(pGrid.nodeset+"["+pRow +"]/goodcd" ));
  593. model.setValue(xPath + "/goodflag" , model.getValue(pGrid.nodeset+"["+pRow +"]/goodflag" ));
  594. model.setValue(xPath + "/winseqno" , model.getValue(pGrid.nodeset+"["+pRow +"]/winseqno" ));
  595. model.setValue(xPath + "/winno" , model.getValue(pGrid.nodeset+"["+pRow +"]/winno" ));
  596. model.setValue(xPath + "/windd" , model.getValue(pGrid.nodeset+"["+pRow +"]/windd" ));
  597. model.setValue(xPath + "/windeptcd", model.getValue(pGrid.nodeset+"["+pRow +"]/windeptcd"));
  598. model.setValue(xPath + "/instcd" , model.getValue(pGrid.nodeset+"["+pRow +"]/instcd" ));
  599. submit("TRRSI02714");
  600. for ( var i = grd_gooddelivelist.fixedRows ; i< grd_gooddelivelist.rows ; i++ )
  601. {
  602. if (grd_gooddelivelist.valueMatrix(grd_gooddelivelist.fixedRows, grd_gooddelivelist.colRef("deliveno")) == "")
  603. {
  604. grd_gooddelivelist.cellStyle("background-image", grd_gooddelivelist.fixedRows , grd_gooddelivelist.colRef("delivedeptnm")) = "";
  605. grd_gooddelivelist.cellStyle("background-color", grd_gooddelivelist.fixedRows , grd_gooddelivelist.colRef("delivedeptnm")) = "red";
  606. }else{
  607. grd_gooddelivelist.cellStyle("background-image", grd_gooddelivelist.fixedRows , grd_gooddelivelist.colRef("delivedeptnm")) = "";
  608. grd_gooddelivelist.cellStyle("background-color", grd_gooddelivelist.fixedRows , grd_gooddelivelist.colRef("delivedeptnm")) = "white";
  609. }
  610. }
  611. grd_gooddelivelist.refresh();
  612. }
  613. // --------------------------------------------------
  614. // 전표처리 함수
  615. // --------------------------------------------------
  616. function fUpdateDataView(pFlag) {
  617. var sPath = "/root/send/goodreq/";
  618. var tPath = "/root/send/slipdata/";
  619. var cPath = "/root/main/SlipLists/sliplist/";
  620. if (model.getValue(sPath+"frcalccnfmdd") == "") {
  621. alert("정산일자 기간을 입력 하십시요!!" );
  622. return;
  623. }
  624. //
  625. if (model.getValue(ipt_jobmonth.attribute("ref")) == "") {
  626. alert("작업년월을 입력 하십시요!!" );
  627. return;
  628. }
  629. //
  630. var vYear = model.getValue(ipt_jobmonth.attribute("ref")).substr(0,4); // 정산년월
  631. var vMonth = model.getValue(ipt_jobmonth.attribute("ref")).substr(4,2); // 정산년월
  632. vToDay = new Date(vYear,vMonth,0);
  633. var vDay = vToDay.getDate()+"";
  634. grp_biz.disabled = true;
  635. //
  636. model.setValue(tPath+"instcd" , getUserInfo("dutplceinstcd") ); // 01 기관코드
  637. model.setValue(tPath+"instcdnm" , getUserInfo("dutplceinstnm") ); // 02 기관명칭
  638. model.setValue(tPath+"jobmonth" , model.getValue(ipt_jobmonth.attribute("ref") )); // 03 작업년월
  639. if (getCurrentDate().substr(0,6) >= model.getValue(ipt_jobmonth.attribute("ref"))) {
  640. model.setValue(tPath+"genrdd", model.getValue(ipt_jobmonth.attribute("ref"))+vDay); // 04 생성일자
  641. } else {
  642. model.setValue(tPath+"genrdd" , getCurrentDate()); // 04 생성일자
  643. }
  644. // model.setValue(tPath+"slipflag" , model.getValue(sPath+"slipflag" )); // 05 전표구분
  645. // model.setValue(tPath+"bizpk" , model.getValue(sPath+"bizpk" )); // 06 업무별 Primary Key
  646. model.setValue(tPath+"slipdeptcd" , getUserInfo("dutplcecd" )); // 07 기표부서
  647. model.setValue(tPath+"slipdeptcdnm", getUserInfo("dutplcenm" )); // 08 기표부서명
  648. model.setValue(tPath+"fromdd" , model.getValue(sPath+"fromdd" )); // 09 입고일자 FR
  649. model.setValue(tPath+"todd" , model.getValue(sPath+"todd" )); // 10 입고일자 TO
  650. model.setValue(tPath+"frcalccnfmdd", model.getValue(sPath+"frcalccnfmdd" )); // 11 정산확정일자 FR
  651. model.setValue(tPath+"tocalccnfmdd", model.getValue(sPath+"tocalccnfmdd" )); // 12 정산확정일자 TO
  652. model.setValue(tPath+"frcalcdocudd", model.getValue(sPath+"frcalcdocudd" )); // 13 계산서일자 FR
  653. model.setValue(tPath+"tocalcdocudd", model.getValue(sPath+"tocalcdocudd" )); // 14 계산서일자 TO
  654. model.setValue(tPath+"unslwrit" , getUserInfo("userid") ); // 15 검수자 ID
  655. model.setValue(tPath+"unslwritnm" , getUserInfo("usernm") ); // 16 검수자 ID명
  656. model.setValue(tPath+"defrayreqdd" , getCurrentDate() ); // 17 출금요청일
  657. // model.setValue(tPath+"slipcmt" , vSlipCmt + " 월 물품대(재고자산)" ); // 18 전표적요 입고
  658. model.setValue(tPath+"endmonth" , model.getValue(ipt_jobmonth.attribute("ref") )); // 19 정산년월 출고
  659. // model.setValue(tPath+"slipdd" , model.getValue(cPath+"slipdd" )); // 20 전표일자
  660. // model.setValue(tPath+"slipno" , model.getValue(cPath+"slipno" )); // 21 전표번호
  661. // model.setValue(tPath+"sanctyn" , model.getValue(cPath+"sanctyn" )); // 24 전표출력여부
  662. // model.setValue(tPath+"slipcheck1" , model.getValue(sPath+"slipcheck1" )); // 25 전표처리 전 확인 FLAG 1
  663. // model.setValue(tPath+"slipcheck2" , model.getValue(sPath+"slipcheck2" )); // 26 전표처리 전 확인 FLAG 2
  664. // model.setValue(tPath+"slipcheck3" , model.getValue(sPath+"slipcheck3" )); // 27 전표처리 전 확인 FLAG 3
  665. model.setValue(tPath+"jobcls" , pFlag ); // 28 작업구분 S:전표처리, C:전표취소
  666. //
  667. if (fRsihinptSlipCheck()) {
  668. grp_biz.disabled = false;
  669. return;
  670. }
  671. //
  672. if (pFlag == "S") {
  673. cpt_slip.visible = true;
  674. cpt_cancel.visible = false;
  675. bbt_slip_proc.visible = true;
  676. bbt_slip_proc.disabled = false;
  677. bbt_cancel_proc.visible = false;
  678. }
  679. else {
  680. cpt_slip.visible = false;
  681. cpt_cancel.visible = true;
  682. bbt_slip_proc.visible = false;
  683. bbt_cancel_proc.visible = true;
  684. bbt_cancel_proc.disabled = false;
  685. model.setValue(tPath+"instcd" , model.getValue(cPath+"instcd" ));
  686. // model.setValue(tPath+"calccnfmdd" , model.getValue(cPath+"calccnfmdd"));
  687. model.setValue(tPath+"slipdd" , model.getValue(cPath+"slipdd" ));
  688. model.setValue(tPath+"slipno" , model.getValue(cPath+"slipno" ));
  689. model.setValue(tPath+"slipddno" , model.getValue(cPath+"slipddno" ));
  690. model.setValue(tPath+"sanctyn" , model.getValue(cPath+"sanctyn" ));
  691. model.setValue(tPath+"genrdd" , model.getValue(cPath+"genrdd" ));
  692. model.setValue(tPath+"bizpk" , model.getValue(cPath+"bizpk" ));
  693. }
  694. grp_slip.visible = true;
  695. if (pFlag == "S") {
  696. if (model.getValue(cPath + "calccnfmdd") == "") {
  697. alert(vYear+" 년 "+ vMonth+" 월의 확정 자료가 없습니다. 확인 하십시요!!");
  698. bbt_slip_proc.disabled = true;
  699. } else {
  700. //
  701. if (model.getValue(cPath + "slipdd") != "") {
  702. if (model.getValue(cPath + "sanctyn") == "Y") {
  703. alert(vYear+" 년 "+ vMonth+" 월의 확정 자료가 이미 전표출력이 되었습니다. 재무출력취소 후 재처리 하십시요!!");
  704. } else {
  705. alert(vYear+" 년 "+ vMonth+" 월의 확정 자료가 이미 전표 처리 되었습니다. 결재취소 후 재처리 하십시요!!");
  706. }
  707. bbt_slip_proc.disabled = true;
  708. }
  709. }
  710. } else {
  711. if (model.getValue(cPath + "calccnfmdd") == "") {
  712. alert(vYear+" 년 "+ vMonth+" 월의 확정 자료가 없습니다. 확인 하십시요!!");
  713. bbt_cancel_proc.disabled = true;
  714. } else {
  715. if (model.getValue(cPath + "slipdd") == "") {
  716. alert(vYear+" 년 "+ vMonth+" 월의 확정 자료가 미전표처리이 되었습니다. 전표 처리 하십시요!!");
  717. bbt_cancel_proc.disabled = true;
  718. } else {
  719. if (model.getValue(cPath + "sanctyn") == "Y") {
  720. alert(vYear+" 년 "+ vMonth+" 월의 확정 자료가 이미 전표출력이 되었습니다. 재무출력취소 후 재처리 하십시요!!");
  721. bbt_cancel_proc.disabled = true;
  722. }
  723. }
  724. }
  725. }
  726. model.refresh();
  727. }
  728. // --------------------------------------------------
  729. // 전표처리전 Data Cehck 함수
  730. // --------------------------------------------------
  731. function fRsihinptSlipCheck() {
  732. var sPath = "/root/send/goodreq/";
  733. var tPath = "/root/send/slipdata/";
  734. var cPath = "/root/main/SlipLists/sliplist/";
  735. var vYear = model.getValue(ipt_jobmonth.attribute("ref")).substr(0,4); // 정산년월
  736. var vMonth = model.getValue(ipt_jobmonth.attribute("ref")).substr(4,2); // 정산년월
  737. vToDay = new Date(vYear,vMonth,0);
  738. var vDay = vToDay.getDate()+"";
  739. // model.setValue(tPath+"genrdd", model.getValue(ipt_jobmonth.attribute("ref"))+vDay);
  740. model.setValue(tPath+"frcalccnfmdd", model.getValue(sPath+"frcalccnfmdd"));
  741. model.setValue(tPath+"tocalccnfmdd", model.getValue(sPath+"tocalccnfmdd"));
  742. model.setValue(tPath+"unslwrit" , getUserInfo("userid") );
  743. model.setValue(tPath+"unslwritnm" , getUserInfo("usernm") );
  744. model.setValue(tPath+"endmonth" , model.getValue(ipt_jobmonth.attribute("ref")) ); // 작업년월
  745. submit("TRRSI02719");
  746. if (model.getValue(gvErrorMsgPath + "/type") == "error") {
  747. alert("작업처리 중 오류 운영팀에 문의 要 !!!");
  748. return true;
  749. }
  750. model.setValue(tPath+"slipdd" , model.getValue(cPath+"slipdd" )); // 전표일자
  751. model.setValue(tPath+"slipno" , model.getValue(cPath+"slipno" )); // 전표번호
  752. model.setValue(tPath+"slipddno" , model.getValue(cPath+"slipddno" )); // 전표번호조합
  753. model.setValue(tPath+"sanctyn" , model.getValue(cPath+"sanctyn" )); // 전표 출력여부
  754. model.setValue(tPath+"bizpk" , model.getValue(cPath+"bizpk" )); // 생성 KEY
  755. ipt_slipdd.disabled = false;
  756. if (model.getValue(cPath+"slipdd") != "") { // 전표일자
  757. model.setValue(ipt_slipdd.attribute("ref"), model.getValue(tPath+"slipdd")); // 전표일자
  758. ipt_slipdd.disabled = true;
  759. }
  760. model.refresh();
  761. return false;
  762. }
  763. // --------------------------------------------------
  764. // 전표처리 함수
  765. // --------------------------------------------------
  766. function fSlipProcess(pFlag) {
  767. var vdate = new Date();
  768. var vTime = lpad(vdate.getHours() +"",2,"0")
  769. + lpad(vdate.getMinutes()+"",2,"0")
  770. + lpad(vdate.getSeconds()+"",2,"0");
  771. var tPath = "/root/send/slipdata/";
  772. if (pFlag == "S") { // 전표처리
  773. var vCheck = "Y";
  774. vCheck = (model.getValue(tPath+"slipcheck1") == "Y") ? vCheck : "N";
  775. vCheck = (model.getValue(tPath+"slipcheck2") == "Y") ? vCheck : "N";
  776. vCheck = (model.getValue(tPath+"slipcheck3") == "Y") ? vCheck : "N";
  777. if (vCheck == "N") {
  778. alert("작업 Check를 확인하십시요!!");
  779. return;
  780. }
  781. var vSlipCmt = model.getValue(tPath+"genrdd").substr(0,4) + "."
  782. + model.getValue(tPath+"genrdd").substr(4,2) ;
  783. var vBizpk = getUserInfo("dutplceinstcd") +"_" // 기관
  784. + model.getValue(ipt_jobmonth.attribute("ref")) +"_" // 작업년월
  785. + getCurrentDate()+ vTime ; // 작업일시
  786. model.setValue(tPath+"slipflag" , "6" ); // 05 전표구분
  787. model.setValue(tPath+"bizpk" , vBizpk + "_O_PURC" ); // 06 업무별 Primary Key
  788. model.setValue(tPath+"slipcmt" , vSlipCmt + " 월 물품대(재고자산)"); // 18 전표적요 입고
  789. } else { // 전표취소
  790. var retMes = messageBox("재무전표 취소처리 작업을 하시겠습니까?", "Q999");
  791. if (retMes != 6) {
  792. return;
  793. }
  794. }
  795. submit("TXRSI02718"); //성의교정 월정산확정자료 재무기표처리 및 취소를 관리한다.
  796. if (model.getValue(gvErrorMsgPath + "/type") == "error") {
  797. alert("작업처리 중 오류 운영팀에 문의 要 !!!");
  798. return true;
  799. } else {
  800. alert("자료처리 완료!!! 수고 하셨습니다.");
  801. }
  802. grp_slip.visible = false;
  803. grp_biz.disabled = false;
  804. }
  805. /* ------------------------------------------------- */
  806. /* ------End Of List ------------------------------- */
  807. /* -------------------------------------------------- */