SMRSI02711.js 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992
  1. /* ---------------------------------------------------------------------
  2. SMRSI02711_입고내역검수관리.xrw (SMRSI02711.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. var vWinQty = 0;
  9. var vWinAmt = 0;
  10. var vWinQtySel = 0;
  11. var vWinAmtSel = 0;
  12. var gIndex = ""; // 02 물품구분
  13. var gGoodflag = ""; // 02 물품구분
  14. var gSuplplcecd = ""; // 03 주거래처
  15. var gSuppcustcd = ""; // 04 보조거래처
  16. var gTabIdx1 = "0"; //TAB INDEX
  17. var gInstcd47 = "N"; // 014:성가, 017:빈센트 여부
  18. var gTreeNode = "/root/main/TreeLists";
  19. var gTreeNodeset = "/root/main/TreeLists/TreeList";
  20. var gPathName = "RsihinptLists#RsihinptLists#RfchinpfLists#RfehemhtLists"
  21. var gPathNm = gPathName.split("#");
  22. var gPathDetailName = "RsihinptList#RsihinptList#RfchinpfList#RfehemhtList"
  23. var gPathDetailNm = gPathDetailName.split("#");
  24. var gGridName = "rsihinptlist#rsihinptlist2#rfchinpflist#rfehemhtlist"
  25. var gGridNm = gGridName.split("#");
  26. // --------------------------------------------------
  27. // 화면 Control을 초기화한다
  28. // --------------------------------------------------
  29. function fInit() {
  30. fInitialize();
  31. return;
  32. }
  33. // --------------------------------------------------------------
  34. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  35. // --------------------------------------------------------------
  36. function fInitialize() {
  37. //misfGridInit(grd_rsihdpaplistst);
  38. //misfGridInit(grd_rsihdpaplist2);
  39. // misfGridInit(grd_rsihdpapfixlist);
  40. fInitializeGrid();
  41. cmb_fixtrseqmtflag.visible=false;
  42. cap_fixtrseqmtflag.visible=false;
  43. // 사용자별 청구 기관 List
  44. rszfUserReqInstList(cmb_instcd,getUserInfo("userid"),"1","B");
  45. cmb_instcd.value = getUserInfo("dutplceinstcd");
  46. // 성가, 빈센트
  47. // gInstcd47 = "N"; // 014:성가, 017:빈센트 여부
  48. if (cmb_instcd.value == "014" || cmb_instcd.value == "017") {
  49. // gInstcd47 = "Y"; // 014:성가, 017:빈센트 여부
  50. bbt_calcdd_up.visible = true;
  51. btn_purcaprvdd.visible = true;
  52. btn_aprvsave.visible = true;
  53. }
  54. // 성의교정,산협은 계정을 가져온다.
  55. if (cmb_instcd.value == "103" || cmb_instcd.value == "114") {
  56. //rszfComboBgcdBugtList("cmb_groupbugt" , cmb_instcd.value, '1');
  57. rszfComboBgcdBugtList("cmb_groupbugt" , "103" , "1" );
  58. addComboItem( "cmb_groupbugt" , "전체", "", "above");
  59. cmb_groupbugt.visible = true;
  60. cap_groupbugt.visible = true;
  61. cpt_suppcustcd.visible = false; // 보조거래처
  62. ipt_suppcustcd.visible = false; // 보조거래처
  63. ipt_suppcustcdnm.visible = false; // 보조거래처
  64. bbt_suppcustcd.visible = false; // 보조거래처
  65. } else {
  66. cpt_suppcustcd.visible = true; // 보조거래처
  67. ipt_suppcustcd.visible = true; // 보조거래처
  68. ipt_suppcustcdnm.visible = true; // 보조거래처
  69. bbt_suppcustcd.visible = true; // 보조거래처
  70. cmb_groupbugt.visible = false; // 계정
  71. cap_groupbugt.visible = false; // 계정
  72. }
  73. // 사용자별 물품 구분
  74. rszfUserGoodFlagList(cmb_goodflag,getUserInfo("userid"));
  75. misfComboComCdList("R0111",cmb_purcflag,"Y");
  76. addComboItem( "cmb_goodflag" , "전체", "", "above");
  77. addComboItem( "cmb_fixtrseqmtflag", "전체", "", "above");
  78. cmb_goodflag.select(0);
  79. cmb_fixtrseqmtflag.select(0);
  80. var reqdate = getCurrentDate().toDate("YYYYMMDD");
  81. model.setValue(ipt_fromdd.attribute("ref"), getCurrentDate());
  82. model.setValue(ipt_todd.attribute("ref") , getCurrentDate());
  83. misfMsterDetailSet(eval("grd_"+gGridNm[gTabIdx1]) , null, "TRRSI02706", "N");
  84. model.refresh();
  85. }
  86. //
  87. function fInitializeGrid() {
  88. misfGridInit(eval("grd_"+gGridNm[0]));
  89. misfGridInit(eval("grd_"+gGridNm[0]+"_tree"));
  90. misfGridInit(eval("grd_"+gGridNm[2]));
  91. misfGridInit(eval("grd_"+gGridNm[2]+"_tree"));
  92. misfGridInit(eval("grd_"+gGridNm[3]));
  93. misfGridInit(eval("grd_"+gGridNm[3]+"_tree"));
  94. }
  95. /**
  96. * @group :
  97. * @ver : 2009.04.23
  98. * @by : 최학록
  99. * @---------------------------------------------------
  100. * @type : function
  101. * @access : public
  102. * @desc : 그리드를 트리구조로 만들어준다.
  103. * @param :
  104. * @return :
  105. * @---------------------------------------------------
  106. */
  107. function fDataSearch(){
  108. if(!isRequiredControls("cmb_instcd"))return;
  109. if(!isRequiredControls("ipt_fromdd"))return;
  110. if(!isRequiredControls("ipt_todd" ))return;
  111. model.removeNodeset(gTreeNodeset);
  112. submit("TRRSI02705");
  113. fMakeTreeView(gTabIdx1, eval("grd_"+gGridNm[gTabIdx1]+"_tree"))
  114. gIndex = ""; // 02 물품구분
  115. gGoodflag = ""; // 02 물품구분
  116. gSuplplcecd = ""; // 03 주거래처
  117. gSuppcustcd = ""; // 04 보조거래처
  118. }
  119. /**
  120. * @group :
  121. * @ver : 2009.04.23
  122. * @by : 최학록
  123. * @---------------------------------------------------
  124. * @type : function
  125. * @access : public
  126. * @desc : 그리드를 트리구조로 만들어준다.
  127. * @param :
  128. * @return :
  129. * @---------------------------------------------------
  130. */
  131. function fMakeTreeView(pIdx, pGrid){
  132. model.removeNodeset(pGrid.nodeset);
  133. model.copyNode( "/root/init/"+ gPathNm[pIdx], gTreeNode);
  134. pGrid.refresh();
  135. var sRowCnt = pGrid.rows-pGrid.fixedRows;
  136. var depth;
  137. for(var i=1; i<= sRowCnt; i++){
  138. model.setValue(pGrid.nodeset+"["+i+"]/treenm", model.getValue(pGrid.nodeset+"["+i+"]/codecd") +" : " +
  139. model.getValue(pGrid.nodeset+"["+i+"]/codenm") );
  140. depth = model.getValue(pGrid.nodeset+"["+i+"]/depth");
  141. pGrid.outlinelevel(i) = depth;//depth별로 레벨을 지정한다.
  142. // eval("grd_"+gGridNm[gTabIdx1]+"_tree").rowhidden(i) = (depth > 3) ? true : false;
  143. // eval("grd_"+gGridNm[gTabIdx1]+"_tree").colDisabled(11) = true ;//시작일자 컬럼을 Non-Edit처리한다.
  144. }
  145. pGrid.OutlineCol = 1; //트리구조로 보여줄 col인덱스설정
  146. pGrid.OutlineBar = 4; //트리의 스타일 설정
  147. pGrid.TreeColor = "gray"; //트리색 설정 blue red yellow skyblue black gray
  148. model.removeNodeset(gTreeNodeset);
  149. pGrid.refresh();
  150. }
  151. // --------------------------------------------------------------
  152. // 조회후 값 SUM처리한다
  153. // --------------------------------------------------------------
  154. function fAfterRetrieve(pFlag)
  155. {
  156. vWinQty = 0;
  157. vWinAmt = 0;
  158. vWinQtySel = 0;
  159. vWinAmtSel = 0;
  160. if (pFlag == "1") {
  161. // 결재 내역 List
  162. for (var fRow = grd_rsihdpaplist.fixedRows ; fRow < grd_rsihdpaplist.rows ; fRow++) {
  163. vWinQty += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winqty")));
  164. vWinAmt += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winamt")));
  165. if (grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("slipdd")) != "") {
  166. grd_rsihdpaplist.isReadOnly(fRow, grd_rsihdpaplist.fixedCols-1, fRow, grd_rsihdpaplist.cols-1) = true;
  167. } else {
  168. if (grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("chkyn")) == "Y") {
  169. vWinQtySel += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winqty")));
  170. vWinAmtSel += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winamt")));
  171. }
  172. grd_rsihdpaplist.isReadOnly(fRow, grd_rsihdpaplist.fixedCols-1, fRow, grd_rsihdpaplist.cols-1) = false;
  173. }
  174. }
  175. //
  176. model.setValue(eval("opt_"+gGridNm[gTabIdx1]+"_qty").attribute("ref"),vWinQty );
  177. model.setValue(eval("opt_"+gGridNm[gTabIdx1]+"_amt").attribute("ref"),vWinAmt );
  178. } else {
  179. // 결재 내역 상세 List
  180. fDataSum(eval("grd_"+gGridNm[gTabIdx1]));
  181. }
  182. model.refresh();
  183. }
  184. // --------------------------------------------------------------
  185. // 조회후 값 SUM처리한다
  186. // --------------------------------------------------------------
  187. function fDataSum(pGrid)
  188. {
  189. vWinQty = 0;
  190. vWinAmt = 0;
  191. // 결재 내역 List
  192. for (var fRow = pGrid.fixedRows ; fRow < pGrid.rows ; fRow++) {
  193. vWinQty += parseFloat(pGrid.valueMatrix(fRow, pGrid.colRef("winqty")));
  194. vWinAmt += parseFloat(pGrid.valueMatrix(fRow, pGrid.colRef("winamt")));
  195. }
  196. }
  197. // --------------------------------------------------
  198. // 화면 Control을 초기화한다
  199. // --------------------------------------------------
  200. function fClearData() {
  201. misfGridInit(eval("grd_"+gGridNm[gTabIdx1]+"_tree"));
  202. misfGridInit(eval("grd_"+gGridNm[gTabIdx1]));
  203. model.setValue(eval("opt_"+gGridNm[gTabIdx1]+"_qty").attribute("ref"),"");
  204. model.setValue(eval("opt_"+gGridNm[gTabIdx1]+"_amt").attribute("ref"),"");
  205. model.refresh();
  206. return;
  207. }
  208. // --------------------------------------------------------------
  209. // 조회후 값 SUM처리한다
  210. // pGrid : 선택그리드, pFlag : Y:선택, N :취소
  211. // --------------------------------------------------------------
  212. function fDataChkAllSelect(pFlag) {
  213. vWinQtySel = 0;
  214. vWinAmtSel = 0;
  215. var pGrid = eval("grd_"+gGridNm[gTabIdx1])
  216. // 결재 내역 List
  217. for (var fRow = pGrid.fixedRows ; fRow < pGrid.rows ; fRow++) {
  218. fDataCheckSelect(pGrid, fRow, pFlag);
  219. }
  220. pGrid.refresh();
  221. }
  222. function fDataCheckSelect(pGrid, pRow, pFlag) {
  223. vCheck = 0;
  224. if ((model.getValue(pGrid.nodeset+"["+pRow+"]/calccnfmyn") == "Y") &&
  225. (model.getValue(pGrid.nodeset+"["+pRow+"]/winprcsflag") == "9") ){
  226. vCheck = 1;
  227. }
  228. ChkFlag = model.getValue(pGrid.nodeset+"["+pRow+"]/oldchkyn");
  229. if (ChkFlag == "") ChkFlag = "N";
  230. if (ChkFlag == pFlag){
  231. vCheck = 1;
  232. }
  233. if (vCheck == 0) {
  234. pGrid.rowStatus(pRow) = "2";
  235. model.setValue(pGrid.nodeset + "[" + pRow + "]/chkyn", pFlag);
  236. } else {
  237. pGrid.removeStatus(pRow, "update");
  238. model.setValue(pGrid.nodeset + "[" + pRow + "]/chkyn", ChkFlag);
  239. }
  240. // pGrid.refresh();
  241. }
  242. // --------------------------------------------------------------
  243. // 조회후 값 SUM처리한다
  244. // --------------------------------------------------------------
  245. function fDataAllSelect(pFlag) {
  246. vWinQtySel = 0;
  247. vWinAmtSel = 0;
  248. // 결재 내역 List
  249. for (var fRow = grd_rsihdpaplist.fixedRows ; fRow < grd_rsihdpaplist.rows ; fRow++) {
  250. if (grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("slipdd")) == "") {
  251. if (pFlag == "Y") {
  252. vWinQtySel += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winqty")));
  253. vWinAmtSel += parseFloat(grd_rsihdpaplist.valueMatrix(fRow, grd_rsihdpaplist.colRef("winamt")));
  254. if (model.getValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkyn") !="Y") {
  255. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkyn" ,pFlag);
  256. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkpsn" ,getUserInfo("userid"));
  257. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkpsnnm",getUserInfo("usernm"));
  258. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkdd" ,getCurrentDate() );
  259. }
  260. } else {
  261. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkpsn" , '');
  262. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkpsnnm", '');
  263. model.setValue(grd_rsihdpaplist.nodeset+ "[" + fRow + "]/chkdd" , '');
  264. }
  265. }
  266. }
  267. //
  268. model.refresh();
  269. }
  270. // --------------------------------------------------------------
  271. // 조회후 값 SUM처리한다
  272. // --------------------------------------------------------------
  273. function fDataSelectSum(pGrid)
  274. {
  275. vWinQtySel = 0;
  276. vWinAmtSel = 0;
  277. // 결재 내역 List
  278. for (var fRow = pGrid.fixedRows ; fRow < pGrid.rows ; fRow++) {
  279. if (pGrid.valueMatrix(fRow, pGrid.colRef("slipdd")) == "" ) {
  280. if (pGrid.valueMatrix(fRow, pGrid.colRef("chkyn" )) == "Y") {
  281. vWinQtySel += parseFloat(pGrid.valueMatrix(fRow, pGrid.colRef("winqty")));
  282. vWinAmtSel += parseFloat(pGrid.valueMatrix(fRow, pGrid.colRef("winamt")));
  283. }
  284. }
  285. }
  286. model.setValue(opt_winqtysel.attribute("ref") ,vWinQtySel);
  287. model.setValue(opt_winamtsel.attribute("ref") ,vWinAmtSel);
  288. model.refresh();
  289. }
  290. // --------------------------------------------------------------
  291. // 조회후 값 SUM처리한다
  292. // --------------------------------------------------------------
  293. function fOnRowChanged(pGrid)
  294. {
  295. sPath ="/root/send/";
  296. tPath ="/root/send/windtl/";
  297. model.setValue(tPath + "instcd" , model.getValue(sPath + "instcd" )); // 기관코드
  298. model.setValue(tPath + "fromdd" , model.getValue(sPath + "fromdd" )); // 입고일자 FROM
  299. model.setValue(tPath + "todd" , model.getValue(sPath + "todd" )); // 입고일자 TO
  300. model.setValue(tPath + "chkyn" , model.getValue(sPath + "chkyn" )); // 검수유무
  301. model.setValue(tPath + "winpsn" , model.getValue(sPath + "winpsn" )); // 입고자
  302. model.setValue(tPath + "suppcustcd", model.getValue(sPath + "suppcustcd")); // 보조거래처
  303. model.setValue(tPath + "purcflag" , model.getValue(sPath + "purcflag" )); // 구매구분
  304. model.setValue(tPath + "paycond" , model.getValue(sPath + "paycond" )); // 1:정상, 2:지불필
  305. model.setValue(tPath + "windd" , "" ); // 입고일자
  306. model.setValue(tPath + "calcdocudd", "" ); // 계산서일자
  307. model.setValue(tPath +"goodflag" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("goodflag" ))); // 물품구분
  308. model.setValue(tPath +"suplplcecd" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("suplplcecd" ))); // 주거래처
  309. model.setValue(tPath +"purcflag" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("purcflag" ))); // 구매구분
  310. model.setValue(tPath +"calcdocukind", pGrid.valueMatrix(pGrid.row, pGrid.colRef("calcdocukind"))); // 계산서구분
  311. model.setValue(tPath +"slipdd" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("slipdd"))); // 전표일자
  312. model.setValue(tPath +"slipno" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("slipno"))); // 전표번호
  313. model.setValue(tPath +"winpsn" , pGrid.valueMatrix(pGrid.row, pGrid.colRef("winpsn"))); // 입고자
  314. submit("TRRSI02706");
  315. fAfterRetrieve("2");
  316. model.refresh();
  317. }
  318. // --------------------------------------------------
  319. // Tree Click
  320. // --------------------------------------------------
  321. function fTreeGridClick() {
  322. var OpCode = "";
  323. var OpDepth = "";
  324. misfGridInit(eval("grd_"+gGridNm[gTabIdx1]));
  325. var pGrid = eval("grd_"+gGridNm[gTabIdx1]+"_tree")
  326. var Idx = pGrid.row;
  327. var TreePath = pGrid.nodeset;
  328. if (Idx == 0) return;
  329. if (gIndex == Idx) {
  330. return;
  331. } else {
  332. gIndex = Idx;
  333. }
  334. var vDepth = ""; // 1 LEVEL
  335. var vPcode = ""; // 2 코드+상위코드
  336. var vCodecd = ""; // 3 코드
  337. var vCodenm = ""; // 4 코드명
  338. var vBasecd = ""; // 5 결합코드
  339. var vWincnt = ""; // 6 입고건수
  340. var vWinqty = ""; // 7 입고수량
  341. var vWinamt = ""; // 8 입고금액
  342. var vWincnt2 = ""; // 6 입고건수
  343. var vWinqty2 = ""; // 7 입고수량
  344. var vWinamt2 = ""; // 8 입고금액
  345. var vDispnm = ""; // 9 DISPLAY 분류명
  346. var DispData = ""; //
  347. var vGoodflag = ""; // 02 물품구분
  348. var vSuplplcecd = ""; // 03 주거래처
  349. var vSuppcustcd = ""; // 04 보조거래처
  350. vDepth = model.getValue(TreePath +"["+Idx+"]/depth" ); // 01 LEVEL
  351. vPcode = model.getValue(TreePath +"["+Idx+"]/pcode" ); // 02 코드+상위코드
  352. vCodecd = model.getValue(TreePath +"["+Idx+"]/codecd" ); // 03 코드
  353. vEcodecd = model.getValue(TreePath +"["+Idx+"]/ecodecd"); // 04 EDIT 코드
  354. vCodenm = model.getValue(TreePath +"["+Idx+"]/codenm" ); // 05 코드명
  355. vBasecd = model.getValue(TreePath +"["+Idx+"]/basecd" ); // 06 결합코드
  356. vWincnt = model.getValue(TreePath +"["+Idx+"]/wincnt" ); // 07 입고건수
  357. vWinqty = model.getValue(TreePath +"["+Idx+"]/winqty" ); // 08 입고수량
  358. vWinamt = model.getValue(TreePath +"["+Idx+"]/winamt" ); // 09 입고금액
  359. vWincnt2 = model.getValue(TreePath +"["+Idx+"]/wincnt2"); // 07 입고건수
  360. vWinqty2 = model.getValue(TreePath +"["+Idx+"]/winqty2"); // 08 입고수량
  361. vWinamt2 = model.getValue(TreePath +"["+Idx+"]/winamt2"); // 09 입고금액
  362. vDispnm = model.getValue(TreePath +"["+Idx+"]/dispnm" ); // 10 DISPLAY 분류명
  363. DispData = vEcodecd + " : " + vCodenm; //
  364. vGoodflag = vPcode.substr( 2, 2); // 02 물품구분
  365. vSuplplcecd = vPcode.substr( 4, 11); // 03 주거래처
  366. vSuppcustcd = vPcode.substr(14, 11); // 04 보조거래처
  367. model.setValue(eval("opt_"+gGridNm[gTabIdx1]+"_qty").attribute("ref"), vWinqty);
  368. model.setValue(eval("opt_"+gGridNm[gTabIdx1]+"_amt").attribute("ref"), vWinamt);
  369. // if (parseFloat(vWincnt) > 500) {
  370. // alert("조회량이 500건을 초과하여 시간이 지연됩니다. 하위레벨에서 조회 바랍니다!!");
  371. // misfGridInit(eval("grd_"+gGridNm[gTabIdx1]));
  372. // model.refresh();
  373. // return;
  374. // }
  375. sPath ="/root/send/mst/";
  376. tPath ="/root/send/windtl/";
  377. model.setValue(tPath + "instcd" , model.getValue(sPath + "instcd" )); // 기관코드
  378. model.setValue(tPath + "fromdd" , model.getValue(sPath + "fromdd" )); // 입고일자 FROM
  379. model.setValue(tPath + "todd" , model.getValue(sPath + "todd" )); // 입고일자 TO
  380. model.setValue(tPath + "chkyn" , model.getValue(sPath + "chkyn" )); // 검수유무
  381. model.setValue(tPath + "winpsn" , model.getValue(sPath + "winpsn" )); // 입고자
  382. model.setValue(tPath + "suplplcecd" , model.getValue(sPath + "suplplcecd" )); // 주거래처
  383. model.setValue(tPath + "suppcustcd" , model.getValue(sPath + "suppcustcd" )); // 보조거래처
  384. model.setValue(tPath + "purcflag" , model.getValue(sPath + "purcflag" )); // 구매구분
  385. model.setValue(tPath + "paycond" , model.getValue(sPath + "paycond" )); // 1:정상, 2:지불필
  386. model.setValue(tPath + "searchflag" , model.getValue(sPath + "searchflag" )); // 조회구분
  387. model.setValue(tPath + "frcalcdocudd" , model.getValue(sPath + "frcalcdocudd")); // 계산서일자 FR
  388. model.setValue(tPath + "tocalcdocudd" , model.getValue(sPath + "tocalcdocudd")); // 계산서일자 TO
  389. model.setValue(tPath + "groupbugt" , model.getValue(sPath + "groupbugt" )); // 예산계정코드
  390. model.setValue(tPath + "calccnfmyn" , model.getValue(sPath + "calccnfmyn" )); // 정산확정여부
  391. model.setValue(tPath + "winprcsflag" , model.getValue(sPath + "winprcsflag" )); // 8:미처리, 9:처리
  392. model.setValue(tPath + "calccnfmdd" , model.getValue(sPath + "calccnfmdd" )); // 정산일자
  393. model.setValue(tPath + "frcalccnfmdd" , model.getValue(sPath + "frcalccnfmdd")); // 정산확정일자 FR
  394. model.setValue(tPath + "tocalccnfmdd" , model.getValue(sPath + "tocalccnfmdd")); // 정산확정일자 TO
  395. model.setValue(tPath +"goodflag" , vGoodflag ); // 물품구분
  396. model.setValue(tPath +"suplplcecd" , vSuplplcecd ); // 주거래처
  397. model.setValue(tPath +"suppcustcd" , vSuppcustcd ); // 보조거래처
  398. if (gTabIdx1 == "0") {
  399. submit("TRRSI02706");
  400. }
  401. if (gTabIdx1 == "2") {
  402. submit("TRRSI02712");
  403. }
  404. if (gTabIdx1 == "3") {
  405. submit("TRRSI02713");
  406. }
  407. var pGridDetail = eval("grd_"+gGridNm[gTabIdx1])
  408. fViewOptionToggleX(pGridDetail);
  409. fViewOptionToggle();
  410. // fCopy2DetailData(gTabIdx1, pGridDetail);
  411. pGridDetail.refresh();
  412. model.refresh();
  413. }
  414. /**
  415. * @group :
  416. * @ver : 2009.04.23
  417. * @by : 최학록
  418. * @---------------------------------------------------
  419. * @type : function
  420. * @access : public
  421. * @desc : 그리드를 트리구조로 만들어준다.
  422. * @param :
  423. * @return :
  424. * @---------------------------------------------------
  425. */
  426. function fCopy2DetailData(pIdx, pGrid){
  427. // model.removeNodeset(pGrid.nodeset);
  428. misfGridInit(pGrid);
  429. model.copyNode( "/root/init/"+gPathNm[pIdx], "/root/main/"+ gPathNm[pIdx]);
  430. model.removeNodeset("/root/main/"+ gPathNm[pIdx]);
  431. fViewOptionToggleX(pGrid);
  432. }
  433. // --------------------------------------------------
  434. // Data Part Toggle 속성Toggle 처리하는 함수
  435. // --------------------------------------------------
  436. function fDataPartToggle(pCls) {
  437. var pGrpDetail = eval("grp_"+gGridNm[gTabIdx1])
  438. var pGrdDetail = eval("grd_"+gGridNm[gTabIdx1])
  439. switch(pCls) {
  440. case 0 :
  441. // 메인 Grup
  442. pGrpDetail.attribute("left" ) = "457";
  443. pGrpDetail.attribute("width" ) = "731";
  444. pGrdDetail.attribute("width" ) = "731";
  445. break;
  446. case 1 :
  447. pGrpDetail.attribute("left" ) = "0";
  448. pGrpDetail.attribute("width" ) = "1188";
  449. pGrdDetail.attribute("width" ) = "1188";
  450. }
  451. pGrpDetail.refresh();
  452. }
  453. // --------------------------------------------------
  454. // View Option 처리하는 함수
  455. // --------------------------------------------------
  456. function fViewOptionToggleX(pGrid) {
  457. for (var fRow = 1; fRow < pGrid.rows ; fRow++) {
  458. if (model.getValue(pGrid.nodeset+"["+fRow+"]/winprcsflag")=="9") {
  459. pGrid.isReadOnly(fRow, pGrid.colRef("chkyn"), fRow, pGrid.colRef("chkyn")) = true;
  460. if (gTabIdx1 == "3") {
  461. pGrid.isReadOnly(fRow, pGrid.colRef("purcaprvdd"), fRow, pGrid.colRef("purcaprvdd")) = true;
  462. pGrid.isReadOnly(fRow, pGrid.colRef("calcdocudd"), fRow, pGrid.colRef("calcdocudd")) = true;
  463. }
  464. } else {
  465. pGrid.isReadOnly(fRow, pGrid.colRef("chkyn") , fRow, pGrid.colRef("chkyn") ) = false;
  466. if (gTabIdx1 == "3") {
  467. pGrid.isReadOnly(fRow, pGrid.colRef("purcaprvdd"), fRow, pGrid.colRef("purcaprvdd")) = false;
  468. pGrid.isReadOnly(fRow, pGrid.colRef("calcdocudd"), fRow, pGrid.colRef("calcdocudd")) = false;
  469. }
  470. }
  471. }
  472. pGrid.refresh();
  473. }
  474. // --------------------------------------------------
  475. // View Option 처리하는 함수
  476. // --------------------------------------------------
  477. function fViewOptionToggle() {
  478. var vColName = "";
  479. var sNode = null;
  480. var oPath = "/root/init/Options/option_"+ gTabIdx1 +"/";
  481. var vOpTail = "_op_"+gTabIdx1;
  482. var pGrid = eval("grd_"+gGridNm[gTabIdx1])
  483. for (var fCol = 1; fCol < pGrid.cols ; fCol++) {
  484. vColName = pGrid.colAttribute(fCol,"ref");
  485. var sNode = instance1.selectSingleNode(oPath + vColName);
  486. if (sNode != null) {
  487. pGrid.colHidden(pGrid.colRef(vColName)) = (eval("chk_"+vColName + vOpTail).value =="Y") ? false : true;
  488. }
  489. }
  490. pGrid.refresh();
  491. grp_view.visible = false;
  492. grp_main.disabled = false;
  493. }
  494. // --------------------------------------------------
  495. // Grid On Click 처리하는 함수
  496. // --------------------------------------------------
  497. function fGridConClick() {
  498. var vGrid = eval("grd_"+gGridNm[gTabIdx1])
  499. if ((vGrid.row == 0 ) ||
  500. (vGrid.col != vGrid.colRef("chkyn"))) return;
  501. ChkFlag = model.getValue(vGrid.nodeset + "[" + vGrid.row + "]/chkyn");
  502. fDataCheckSelect(vGrid, vGrid.row, ChkFlag);
  503. vGrid.refresh();
  504. }
  505. //-----------------------------------
  506. // 입고 검수 확인 저장
  507. //-----------------------------------
  508. function fCheckPersonSave(){
  509. var vCnt = 0 ;
  510. var pGrid = eval("grd_"+gGridNm[gTabIdx1])
  511. var sPath = pGrid.nodeset;
  512. var tPath = "/root/send/winchecklists";
  513. var tPath2 = "/root/send/winchecklists/winchecklist";
  514. var WincheckData = ""; // Send Data
  515. var WincheckHead = "instcd" + "▦" // 01 기관코드
  516. + "goodflag" + "▦" // 02 물품구분
  517. + "windd" + "▦" // 03 입고일자
  518. + "winno" + "▦" // 04 입고번호(0000)
  519. + "winseqno" + "▦" // 05 입고일련번호(000~999)
  520. + "windeptcd" + "▦" // 06 입고부서코드
  521. + "checkflag" + "▦" // 07 검수확인 UPDATE 여부
  522. + "chkyn" + "▦" // 08 검수확인여부
  523. + "chkpsn" + "▦" // 09 검수확인자
  524. + "chkdd" + "▦" // 10 검수확인년월
  525. + "calccnfmflag" + "▦" // 11 정산확정UPDATE 여부
  526. + "calccnfmpsn" + "▦" // 12 정산확정자
  527. + "calccnfmyn" + "▦" // 13 정산확정여부
  528. + "calccnfmdd" + "▦" // 14 정산확정년월
  529. + "winprcsflag" + "▦" // 15 정산상태 0:미결재,8:회계처리대상,9:회계처리완료
  530. + "slipflag" + "▦" // 16 전표UPDATE 여부
  531. + "slipdd" + "▦" // 17 전표일자
  532. + "slipno" + "▦" // 18 전표번호
  533. + "calcdocudd" + "▦" // 19 계산서일자
  534. + "calcfalg" + "▦" // 20 계산서일자 구분
  535. + "tableflag" + "▩"; // 21 검수테이블구분
  536. for (var fRow = pGrid.fixedRows; fRow < pGrid.rows ; fRow++ ) {
  537. if (pGrid.rowStatus(fRow) == 2) {
  538. WincheckData += model.getValue(sPath + "[" + fRow + "]/instcd" ) + "▦" // 01 기관코드
  539. if (gTabIdx1 == "3") {
  540. WincheckData += model.getValue(sPath + "[" + fRow + "]/fixtrseqmtflag" ) + "▦" // 02 물품구분
  541. WincheckData += model.getValue(sPath + "[" + fRow + "]/reqdd" ) + "▦" // 03 입고일자
  542. WincheckData += model.getValue(sPath + "[" + fRow + "]/reqno" ) + "▦" // 04 입고번호(0000)
  543. WincheckData += "" + "▦" // 05 입고일련번호(000~999)
  544. WincheckData += "" + "▦" // 06 입고부서코드
  545. } else {
  546. WincheckData += model.getValue(sPath + "[" + fRow + "]/goodflag" ) + "▦" // 02 물품구분
  547. WincheckData += model.getValue(sPath + "[" + fRow + "]/windd" ) + "▦" // 03 입고일자
  548. WincheckData += model.getValue(sPath + "[" + fRow + "]/winno" ) + "▦" // 04 입고번호(0000)
  549. WincheckData += model.getValue(sPath + "[" + fRow + "]/winseqno" ) + "▦" // 05 입고일련번호(000~999)
  550. if (gTabIdx1 == "2") {
  551. WincheckData += "" + "▦" // 06 입고부서코드
  552. } else {
  553. WincheckData += model.getValue(sPath + "[" + fRow + "]/windeptcd") + "▦" // 06 입고부서코드
  554. }
  555. }
  556. WincheckData += "Y" + "▦" // 07 검수확인 UPDATE 여부
  557. WincheckData += model.getValue(sPath + "[" + fRow + "]/chkyn" ) + "▦" // 08 검수확인여부
  558. if (model.getValue(sPath + "[" + fRow + "]/chkyn")=="Y") {
  559. WincheckData += getUserInfo("userid") + "▦" // 09 검수확인자
  560. WincheckData += getCurrentDate() + "▦" // 10 검수확인년월
  561. } else {
  562. WincheckData += "" + "▦" // 09 검수확인자
  563. WincheckData += "" + "▦" // 10 검수확인년월
  564. }
  565. WincheckData += "N" + "▦" // 11 정산확정UPDATE 여부
  566. WincheckData += "" + "▦" // 12 정산확정자
  567. WincheckData += "" + "▦" // 13 정산확정여부
  568. WincheckData += "" + "▦" // 14 정산확정년월
  569. WincheckData += "" + "▦" // 15 정산상태 0:미결재,8:회계처리대상,9:회계처리완료
  570. WincheckData += "N" + "▦" // 16 전표UPDATE 여부
  571. WincheckData += "" + "▦" // 17 전표일자
  572. WincheckData += "" + "▦" // 18 전표번호
  573. if (model.getValue(sPath + "[" + fRow + "]/calcdocudd" )==
  574. model.getValue(sPath + "[" + fRow + "]/oldcalcdocudd") ) {
  575. WincheckData += "" + "▦" // 19 계산서일자
  576. WincheckData += "N" + "▦" // 20 계산서일자 구분
  577. } else {
  578. WincheckData += model.getValue(sPath + "[" + fRow + "]/calcdocudd") + "▦" // 19 계산서일자
  579. WincheckData += "Y" + "▦" // 20 계산서일자 구분
  580. }
  581. WincheckData += gTabIdx1 + "▩"; // 21 검수테이블구분
  582. vCnt++;
  583. }
  584. }
  585. if (vCnt > 0) {
  586. model.removenode(tPath);
  587. model.makeValue(tPath2, WincheckHead+WincheckData);
  588. submit("TXRSI02710");
  589. }
  590. }
  591. //---------------------------------------------
  592. // 장비.비품 수리 결제내역 구매승인일 변경
  593. //---------------------------------------------
  594. function fCheckPersonSave_2(){
  595. var vCnt = 0 ;
  596. var pGrid = eval("grd_"+gGridNm[gTabIdx1])
  597. var sPath = pGrid.nodeset;
  598. var tPath = "/root/send/winchecklists";
  599. var tPath2 = "/root/send/winchecklists/winchecklist";
  600. var WincheckData = ""; // Send Data
  601. var WincheckHead = "instcd" + "▦" // 01 기관코드
  602. + "goodflag" + "▦" // 02 물품구분
  603. + "windd" + "▦" // 03 입고일자
  604. + "winno" + "▦" // 04 입고번호(0000)
  605. + "winseqno" + "▦" // 05 입고일련번호(000~999)
  606. + "windeptcd" + "▦" // 06 입고부서코드
  607. + "checkflag" + "▦" // 07 검수확인 UPDATE 여부
  608. + "chkyn" + "▦" // 08 검수확인여부
  609. + "chkpsn" + "▦" // 09 검수확인자
  610. + "chkdd" + "▦" // 10 검수확인년월
  611. + "calccnfmflag" + "▦" // 11 정산확정UPDATE 여부
  612. + "calccnfmpsn" + "▦" // 12 정산확정자
  613. + "calccnfmyn" + "▦" // 13 정산확정여부
  614. + "calccnfmdd" + "▦" // 14 정산확정년월
  615. + "winprcsflag" + "▦" // 15 정산상태 0:미결재,8:회계처리대상,9:회계처리완료
  616. + "slipflag" + "▦" // 16 전표UPDATE 여부
  617. + "slipdd" + "▦" // 17 전표일자
  618. + "slipno" + "▦" // 18 전표번호
  619. + "calcdocudd" + "▦" // 19 계산서일자
  620. + "calcfalg" + "▦" // 20 계산서일자 구분
  621. + "tableflag" + "▦" // 21 검수테이블구분
  622. + "purcaprvdd" + "▩"; // 22 구매승인일
  623. for (var fRow = pGrid.fixedRows; fRow < pGrid.rows ; fRow++ ) {
  624. if (pGrid.rowStatus(fRow) == 2) {
  625. if (model.getValue(sPath + "[" + fRow + "]/purcaprvdd" ) !=
  626. model.getValue(sPath + "[" + fRow + "]/oldpurcaprvdd") ) {
  627. WincheckData += model.getValue(sPath + "[" + fRow + "]/instcd" ) + "▦" // 01 기관코드
  628. WincheckData += model.getValue(sPath + "[" + fRow + "]/fixtrseqmtflag" ) + "▦" // 02 물품구분
  629. WincheckData += model.getValue(sPath + "[" + fRow + "]/reqdd" ) + "▦" // 03 입고일자
  630. WincheckData += model.getValue(sPath + "[" + fRow + "]/reqno" ) + "▦" // 04 입고번호(0000)
  631. WincheckData += "" + "▦" // 05 입고일련번호(000~999)
  632. WincheckData += "" + "▦" // 06 입고부서코드
  633. WincheckData += "" + "▦" // 07 검수확인 UPDATE 여부
  634. WincheckData += "" + "▦" // 08 검수확인여부
  635. WincheckData += "" + "▦" // 09 검수확인자
  636. WincheckData += "" + "▦" // 10 검수확인년월
  637. WincheckData += "" + "▦" // 11 정산확정UPDATE 여부
  638. WincheckData += "" + "▦" // 12 정산확정자
  639. WincheckData += "" + "▦" // 13 정산확정여부
  640. WincheckData += "" + "▦" // 14 정산확정년월
  641. WincheckData += "" + "▦" // 15 정산상태 0:미결재,8:회계처리대상,9:회계처리완료
  642. WincheckData += "" + "▦" // 16 전표UPDATE 여부
  643. WincheckData += "" + "▦" // 17 전표일자
  644. WincheckData += "" + "▦" // 18 전표번호
  645. WincheckData += "" + "▦" // 19 계산서일자
  646. WincheckData += "" + "▦" // 20 계산서일자 구분
  647. WincheckData += "6" + "▦" // 21 검수테이블구분
  648. WincheckData += model.getValue(sPath + "[" + fRow + "]/purcaprvdd") + "▩"; // 21 구매승인일
  649. vCnt++;
  650. }
  651. }
  652. }
  653. if (vCnt > 0) {
  654. model.removenode(tPath);
  655. model.makeValue(tPath2, WincheckHead+WincheckData);
  656. submit("TXRSI02710");
  657. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  658. {
  659. alert("자료처리완료!!");
  660. fTreeGridClick();
  661. }
  662. } else {
  663. alert("변경대상 자료가 없습니다.확인요!!");
  664. }
  665. }
  666. // --------------------------------------------------
  667. // 보기 Option 선택
  668. // --------------------------------------------------
  669. function fViewOptionClick() {
  670. switch(gTabIdx1) {
  671. case "0" :
  672. grp_rsihinptlist_op.visible = true;
  673. grp_rfchinpflist_op.visible = false;
  674. grp_rfehemhtlist_op.visible = false;
  675. break;
  676. case "2" :
  677. grp_rsihinptlist_op.visible = false;
  678. grp_rfchinpflist_op.visible = true;
  679. grp_rfehemhtlist_op.visible = false;
  680. break;
  681. case "3" :
  682. grp_rsihinptlist_op.visible = false;
  683. grp_rfchinpflist_op.visible = false;
  684. grp_rfehemhtlist_op.visible = true;
  685. }
  686. grp_view.visible = true;
  687. grp_main.disabled = true;
  688. grp_view.refresh();
  689. }
  690. // --------------------------------------------------
  691. // Grid Excel 저장
  692. // --------------------------------------------------
  693. function fExcelDataSave() {
  694. switch(gTabIdx1) {
  695. case "0" :
  696. misfSaveExcel(grd_rsihinptlist);
  697. break;
  698. case "2" :
  699. misfSaveExcel(grd_rfchinpflist);
  700. break;
  701. case "3" :
  702. misfSaveExcel(grd_rfehemhtlist);
  703. }
  704. }
  705. //--------------------------------------
  706. // 세금 계산서일자 변경 컨트롤을 View
  707. //--------------------------------------
  708. function fUpdateDataView(pDateFlag)
  709. {
  710. model.setValue(opt_dateflag.attribute("ref") , pDateFlag );
  711. model.setValue(ipt_changecalcfr.attribute("ref"), getCurrentDate());
  712. model.setValue(ipt_changecalcto.attribute("ref"), getCurrentDate());
  713. if (pDateFlag == "2") {
  714. cpn_dateflag.attribute("text") = "구매 승인일자 변경";
  715. } else {
  716. cpn_dateflag.attribute("text") = "세금 계산서일자 변경";
  717. }
  718. // 버튼 클릭시 addPhone group 컨트롤을 popup 형태로 설정하여 윈도우 스크린 좌표로 나타나게 함
  719. //grp_update.attribute("popup") = "true";
  720. //grp_update.attribute("left") = parseInt( grp_update.attribute("left") ) + window.screenLeft;
  721. //grp_update.attribute("top") = parseInt( grp_update.attribute("top") ) + window.screenTop;
  722. grp_update.visible = true;
  723. model.setFocus("ipt_changecalcfr");
  724. grp_main.disabled = true; // addGroup 컨트롤이 나타나면 listGroup 컨트롤을 disabled 시킴
  725. grp_update.refresh();
  726. }
  727. //--------------------------------------------
  728. // 입력한 값들을 초기화 시키고, 컨트롤을 숨김
  729. //--------------------------------------------
  730. function fUpdateDataExit()
  731. {
  732. // 입력한 값들을 초기화 시키고, 컨트롤을 숨김
  733. grp_update.visible = false;
  734. ipt_changecalcfr.value = "";
  735. ipt_changecalcto.value = "";
  736. //컨트롤을 숨기고 좌표를 초기화 시킴
  737. // grp_update.initStyle("left");
  738. // grp_update.initStyle("top");
  739. grp_main.disabled = false;
  740. }
  741. //--------------------------------------
  742. // 세금 계산서일자를 변경한다
  743. //--------------------------------------
  744. function fUpdateData()
  745. {
  746. if ((model.getValue(ipt_changecalcfr.attribute("ref")) == "")) {
  747. alert("변경전 일자를 입력하십시요!!.");
  748. return;
  749. };
  750. if ((model.getValue(ipt_changecalcto.attribute("ref")) == "")) {
  751. alert("변경후 일자를 입력하십시요!!.");
  752. return;
  753. };
  754. //
  755. var vCalDateFr = model.getValue(ipt_changecalcfr.attribute("ref"));
  756. var vCalDateTo = model.getValue(ipt_changecalcto.attribute("ref"));
  757. //
  758. var pGrid = eval("grd_"+gGridNm[gTabIdx1])
  759. if (model.getValue(opt_dateflag.attribute("ref")) == "2") {
  760. vDateAttr = "]/purcaprvdd";
  761. } else {
  762. vDateAttr = "]/calcdocudd";
  763. }
  764. // 결재 내역 List
  765. var vCheck = 0;
  766. for (var fRow = pGrid.fixedRows ; fRow < pGrid.rows ; fRow++) {
  767. //if ((model.getValue(pGrid.nodeset+"["+fRow+"]/calccnfmyn") == "Y") &&
  768. // (model.getValue(pGrid.nodeset+"["+fRow+"]/winprcsflag") == "9") ){
  769. // vCheck = 1;
  770. //} else {
  771. if (model.getValue(pGrid.nodeset+"["+fRow+vDateAttr) == vCalDateFr) {
  772. pGrid.rowStatus(fRow) = "2";
  773. model.setValue(pGrid.nodeset+"["+fRow+vDateAttr, vCalDateTo);
  774. }
  775. //}
  776. }
  777. pGrid.refresh();
  778. fUpdateDataExit();
  779. }
  780. /* ------------------------------------------------- */
  781. /* ------End Of List ------------------------------- */
  782. /* -------------------------------------------------- */