SMRSD07000.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462
  1. /* ---------------------------------------------------------------------
  2. SMRSD07000_청구분 접수승인 및 발주처리.xrw (SMRSD07000.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. var vGoodReqPath = "/root/main/list/goodreq/goodreqlist";
  9. var xAuth = !(checkAuth("X"));
  10. var pAuth = !(checkAuth("P"));
  11. var DataPath = "/root/main/RscmggbnEmpData";
  12. var MainPath = "/root/main/RscmggbnLists/rscmggbnlist";
  13. var ListsPath = "/root/main/RscmggbnEmpLists";
  14. var ListPath = "/root/main/RscmggbnEmpLists/rscmggbnemplist";
  15. var HidePath = "/root/WorkData/HideData";
  16. var TreePath = "/root/main/RscmgubnLists/TreeList";
  17. var WorkPath = "/root/init/WorkInit";
  18. var CompPath = "/root/init/CompareInit";
  19. // --------------------------------------------------
  20. // Tree정보 가져오기
  21. // --------------------------------------------------
  22. function fInit() {
  23. // 화면 Control을 초기화한다
  24. fCheckAuth();
  25. fInitialize();
  26. return;
  27. }
  28. //------------------------------------------------
  29. // 화면 권한관리 CHECK
  30. //------------------------------------------------
  31. function fCheckAuth() {
  32. btn_search.disabled = !checkAuth("R") ;
  33. //btn_save.disabled = !checkAuth("X") ;
  34. //btn_prt.disabled = !checkAuth("P") ;
  35. }
  36. // --------------------------------------------------------------
  37. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  38. // --------------------------------------------------------------
  39. function fInitialize() {
  40. model.resetInstanceNode("/root/send");
  41. misfGridInit(grd_goodreq);
  42. misfMsterDetailSet(grd_goodreq, null, "TRRSD07001", "Y");
  43. //기관코드
  44. misfComboComCdListMulti("Z0007", "cmb_instcd");
  45. //권한별 청구구분
  46. rszfReqFlagComboComCdList(getUserInfo("userid"),cmb_reqflag);
  47. var curdate = getCurrentDate();
  48. var cvtdate = curdate.toDate("YYYYMMDD");
  49. model.setValue(ipt_reqfrdd.attribute("ref") , cvtdate.getAddDate(-10,"D").getDateFormat("YYYYMMDD"));
  50. model.setValue(ipt_reqtodd.attribute("ref") , curdate);
  51. model.setValue(cmb_instcd.attribute("ref") , getUserInfo("dutplceinstcd"));
  52. model.setValue(ipt_reqdeptcd.attribute("ref") , getUserInfo("dutplcecd"));
  53. model.setValue(ipt_reqdeptnm.attribute("ref") , getUserInfo("dutplcenm"));
  54. rbo_deptaprvyn.select(0);
  55. btn_accept.disabled = true;
  56. for(licol = 0; licol < grd_goodreq.cols ; licol++) if(grd_goodreq.colRef("reqdeptnm") != licol) grd_goodreq.mergecol(licol) = false;
  57. grd_goodreq.mergecells = "bycol";
  58. model.refresh();
  59. }
  60. function fCheckRetrieveData(pmsg) {
  61. if (model.getValue(cmb_instcd.attribute("ref")).length== 0 ) {
  62. if (pmsg == true) {
  63. messageBox("기관코드를 " ,"C002");
  64. model.setFocus("cmb_instcd");
  65. }
  66. return false;
  67. }
  68. if (model.getValue(cmb_reqflag.attribute("ref")).length== 0 ) {
  69. if (pmsg == true) {
  70. messageBox("청구구분을 " ,"C002");
  71. model.setFocus("cmb_reqflag");
  72. }
  73. return false;
  74. }
  75. if (model.getValue(ipt_reqfrdd.attribute("ref")).length== 0 ) {
  76. if (pmsg == true) {
  77. messageBox("청구시작일자를 " ,"C001");
  78. model.setFocus("ipt_reqfrdd");
  79. }
  80. return false;
  81. }
  82. if(model.getValue(ipt_reqtodd.attribute("ref")).length== 0 ) {
  83. if (pmsg == true) {
  84. messageBox("청구종료일자를 " ,"C001");
  85. model.setFocus("ipt_reqtodd");
  86. }
  87. return false;
  88. }
  89. }
  90. // -----------------------------------------------
  91. // 작업 권한체크
  92. // -----------------------------------------------
  93. function fSetReqAuth() {
  94. // ---------------------------------------------------------------------------------------
  95. // 수리,장비등 청구주기가 없는 것들은 '1'로셋팅
  96. // -------------------------------------------------------------------------------------*/
  97. rszfGetPurcReqAuthInfo(model.getValue(cmb_instcd.attribute("ref")), model.getValue(cmb_reqflag.attribute("ref")) , getUserInfo("dutplcecd"), getUserInfo("userid"),"1");
  98. if(rszfGetPurcAuthInfoByCond("reqaprvflag") != "2")btn_accept.disabled = true;
  99. else btn_accept.disabled = false;
  100. model.setValue(ipt_reqdeptcd.attribute("ref"),rszfGetPurcAuthInfoByCond("reqdeptcd"));
  101. model.setValue(ipt_reqdeptnm.attribute("ref"),rszfGetPurcAuthInfoByCond("reqdeptnm"));
  102. model.refresh();
  103. }
  104. // -----------------------------------------------
  105. // 기본자료 Setting
  106. // -----------------------------------------------
  107. function fDefaultSetting(prow)
  108. {
  109. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/workflag" ,model.getValue("/root/send/goodreq/workflag" ));
  110. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/instcd" ,model.getValue("/root/send/goodreq/instcd" ));
  111. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqflag" ,model.getValue("/root/send/goodreq/reqflag" ));
  112. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/deliveflag" ,model.getValue("/root/send/goodreq/deliveflag" ));
  113. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqdd" ,model.getValue("/root/send/goodreq/reqdd" ));
  114. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqpridflag",model.getValue("/root/send/goodreq/reqpridflag"));
  115. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqdeptcd" ,model.getValue("/root/init/reqfinaldeptcd" ));
  116. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqpsnid" ,model.getValue("/root/init/requserno" ));
  117. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqseqno" ,prow);
  118. }
  119. // -----------------------------------------------
  120. // 물품 기본자료 Setting
  121. // -----------------------------------------------
  122. function fSettingGoodList(pnode, nodename, userqtynm){
  123. var codynode = instance1.selectNodes(pnode + "/*");
  124. var addRow = grd_goodreq.rows - grd_goodreq.fixedRows;
  125. if(model.getValue(grd_goodreq.nodeset + "[" + addRow + "]/goodcd").length > 0) addRow = addRow + 1;
  126. for (var j = 1; j <= codynode.length ; j++) {
  127. if (addRow > grd_goodreq.rows - grd_goodreq.fixedRows) {
  128. misfGridIUD(grd_goodreq,"A");
  129. addRow = grd_goodreq.rows - grd_goodreq.fixedRows;
  130. fDefaultSetting(addRow );
  131. }
  132. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/goodcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodcd" ));
  133. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/goodnm" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodnm" ));
  134. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/goodspec" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodspec" ));
  135. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/goodflag" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodflag" ));
  136. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/goodmodel" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodmodel" ));
  137. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/prodcmpynm" , model.getValue(pnode +"/" + nodename + "[" + j + "]/prodcmpynm" ));
  138. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/purcunit" , model.getValue(pnode +"/" + nodename + "[" + j + "]/purcunit" ));
  139. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/basevol" , model.getValue(pnode +"/" + nodename + "[" + j + "]/minexch" ));
  140. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/stocqty" , model.getValue(pnode +"/" + nodename + "[" + j + "]/stocqty" ));
  141. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/reqqty" , model.getValue(pnode +"/" + nodename + "[" + j + "]/" + userqtynm));
  142. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/requnit" , model.getValue(pnode +"/" + nodename + "[" + j + "]/purcunit" ));
  143. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/minexch" , model.getValue(pnode +"/" + nodename + "[" + j + "]/minexch" ));
  144. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/ddavguseqty" , model.getValue(pnode +"/" + nodename + "[" + j + "]/ddavguseqty"));
  145. model.setValue(grd_goodreq.nodeset + "[" + addRow + "]/reqmthdflag" , model.getValue(pnode +"/" + nodename + "[" + j + "]/reqmthd" ));
  146. addRow = addRow + 1;
  147. }
  148. model.refresh();
  149. }
  150. function fCheckSaveData() {
  151. if (model.getValue(rbo_workflag.attribute("ref")).length== 0 ) {
  152. messageBox("작업구분을 " ,"C002");
  153. model.setFocus("rbo_workflag");
  154. return false;
  155. }
  156. if (model.getValue(cmb_instcd.attribute("ref")).length== 0 ) {
  157. messageBox("기관코드를 " ,"C002");
  158. model.setFocus("cmb_instcd");
  159. return false;
  160. }
  161. if (model.getValue(cmb_reqflag.attribute("ref")).length== 0 ) {
  162. messageBox("청구구분을 " ,"C002");
  163. model.setFocus("cmb_reqflag");
  164. return false;
  165. }
  166. if (model.getValue(cmb_deliveflag.attribute("ref")).length== 0 ) {
  167. messageBox("불출구분을 " ,"C002");
  168. model.setFocus("cmb_deliveflag");
  169. return false;
  170. }
  171. if (model.getValue(ipt_reqdd.attribute("ref")).length== 0 ) {
  172. messageBox("청구일자를 " ,"C001");
  173. model.setFocus("ipt_reqdd");
  174. return false;
  175. }
  176. if (model.getValue(cmb_reqpridflag.attribute("ref")).length== 0 ) {
  177. messageBox("청구주기를 " ,"C002");
  178. model.setFocus("cmb_reqpridflag");
  179. return false;
  180. }
  181. var basevol = 0;
  182. var stocqty = 0;
  183. var reqqty = 0;
  184. var minexch = 0;
  185. for (var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows ; currow++)
  186. {
  187. if (grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")).length == 0) {
  188. messageBox(currow + " 번째 물품코드를 " ,"C001");
  189. grd_goodreq.row = currow;
  190. grd_goodreq.col = grd_goodreq.colRef("goodcd");
  191. grd_goodreq.editCell();
  192. return false;
  193. }
  194. if (grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("reqqty")) == 0) {
  195. messageBox(currow + " 번째 청구량을 " ,"C001");
  196. grd_goodreq.row = currow;
  197. grd_goodreq.col = grd_goodreq.colRef("reqqty");
  198. grd_goodreq.editCell();
  199. return false;
  200. }
  201. basevol = grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("basevol"));
  202. stocqty = grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("stocqty"));
  203. reqqty = grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("reqqty"));
  204. minexch = grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("minexch"));
  205. if (minexch > 0 && (reqqty%minexch != 0)) {
  206. messageBox((currow) + "번째 물품은 최소청구량에 ["+ minexch + "]맞춰서" , "C001");
  207. grd_goodreq.row = currow;
  208. grd_goodreq.col= grd_goodreq.colRef("reqqty");
  209. grd_goodreq.editCell();
  210. return false;
  211. }
  212. }
  213. }
  214. function fInsertReqRow() {
  215. if(fCheckRetrieveData(true) == false)return;
  216. misfGridIUD(grd_goodreq, "A");
  217. grd_goodreq.row = grd_goodreq.rows - grd_goodreq.fixedRows ;
  218. tar_cmt.value = "";
  219. fDefaultSetting(grd_goodreq.row );
  220. grd_goodreq.col = grd_goodreq.colRef("goodcd");
  221. grd_goodreq.editCell();
  222. }
  223. function fDeleteReqRow()
  224. {
  225. misfGridIUD(grd_goodreq, "D");
  226. }
  227. function fGetReqSetList()
  228. {
  229. if(fCheckRetrieveData(true) == false)return;
  230. model.removenode("/root/copynode");
  231. model.makeNode("/root/copynode");
  232. rszfOpenPopUpListByWndName(grd_goodreq,"","goodcd,goodnm","SMRSD00210","instcd,reqdeptcd,reqprid","cmb_instcd,ipt_reqdeptnm,cmb_reqpridflag");
  233. var cur_row = grd_goodreq.row;
  234. var status = grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("m"));
  235. var CSV = model.getValue("/root/hidden/parameters/SMRSD00210_/SMRSD00210_value");
  236. setCSVToNode("/root/copynode", CSV, "goodreqlist");
  237. fSettingGoodList("/root/copynode", "goodreqlist" , "goodqty");
  238. }
  239. function fSaveReqRece()
  240. {
  241. model.setValue("/root/send/reqdetaillist" ,grd_goodreq.getUpdateData());
  242. submit("TXRSO03001");
  243. misfMsterDetailRetrieve();
  244. }
  245. function fSaveReqAprv()
  246. {
  247. model.setValue("/root/send/reqaprvlist" ,grd_goodreq.getUpdateData());
  248. submit("TXRSD07002");
  249. misfMsterDetailRetrieve();
  250. }
  251. function fAfterRetrieve(pSelectIndex)
  252. {
  253. var nonaprvcnt = 0;
  254. var aprvcnt = 0;
  255. for(var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows ; currow++)
  256. {
  257. if(grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("deptaprvyn")) == "Y") aprvcnt++;
  258. else nonaprvcnt++;
  259. }
  260. model.setValue(opt_nonaprvcnt.attribute("ref" ), nonaprvcnt );
  261. model.setValue(opt_aprvcnt.attribute("ref" ), aprvcnt );
  262. model.setValue(opt_totalaprvcnt.attribute("ref"), (nonaprvcnt + aprvcnt));
  263. model.refresh();
  264. }
  265. function fDataSearchTree()
  266. {
  267. if (fCheckRetrieveData(false) == false) return;
  268. misfGridInit(grd_goodreq);
  269. // misfMsterDetailRetrieve();
  270. // fAfterRetrieve();
  271. submit("TRRSD07002");
  272. trv_setcode.rebuild();
  273. }
  274. function fDataSearchDetail(pIdx)
  275. {
  276. var rPath = "/root/send/goodreq";
  277. var dPath = "/root/send/gooddetail";
  278. var tPath = "/root/main/RsdhdemdTrees/TreeList";
  279. var Idx = pIdx + 1;
  280. var sDepth = model.getValue(tPath +"["+Idx+"]/depth" );
  281. var vCodeCd = model.getValue(tPath +"["+Idx+"]/codecd" );
  282. var vCodeNm = model.getValue(tPath +"["+Idx+"]/codenm" );
  283. var vBaseCd = model.getValue(tPath +"["+Idx+"]/basecode");
  284. cpt_disp.value = "";
  285. cpt_disp.refresh();
  286. misfGridInit(grd_goodreq);
  287. if (vCodeCd == "") return;
  288. model.setValue(dPath + "/instcd" , model.getValue(rPath + "/instcd" ));
  289. model.setValue(dPath + "/reqflag" , model.getValue(rPath + "/reqflag" ));
  290. model.setValue(dPath + "/reqfrdd" , "" );
  291. model.setValue(dPath + "/reqtodd" , "" );
  292. model.setValue(dPath + "/reqdeptcd" , "" );
  293. model.setValue(dPath + "/reqdeptnm" , "" );
  294. model.setValue(dPath + "/deptaprvyn", model.getValue(rPath + "/deptaprvyn"));
  295. if (sDepth == "1") {
  296. model.setValue(dPath + "/reqfrdd" , vCodeCd);
  297. model.setValue(dPath + "/reqtodd" , vCodeCd);
  298. cpt_disp.value = " 청구일 : "+vCodeCd;
  299. grd_goodreq.colwidth(1) = "115";
  300. } else {
  301. model.setValue(dPath + "/reqdeptcd" , vCodeCd );
  302. model.setValue(dPath + "/reqdeptnm" , vCodeNm);
  303. vCode = model.getValue(tPath +"[pcode='"+ vBaseCd+"']/codecd");
  304. model.setValue(dPath + "/reqfrdd" , vCode);
  305. model.setValue(dPath + "/reqtodd" , vCode);
  306. cpt_disp.value = " 청구일 : "+vCode + " 청구부서 : "+vCodeCd+ " - "+vCodeNm;
  307. grd_goodreq.colwidth(1) = "0";
  308. }
  309. cpt_disp.refresh();
  310. misfMsterDetailRetrieve();
  311. fAfterRetrieve();
  312. }
  313. // --------------------------------------------------
  314. // 물품 찾기 속성변경 처리하는 함수
  315. // --------------------------------------------------
  316. function fDisplayToggle(pCls) {
  317. if (pCls =="0") { // Key 조회
  318. // 메인 Grup
  319. grp_main.attribute("left" ) = "332";
  320. grp_main.attribute("top" ) = "15" ;
  321. grp_main.attribute("width" ) = "863";
  322. grp_main.attribute("height" ) = "720";
  323. lin_main.attribute("x2" ) = "861";
  324. grp_button.attribute("left" ) = "155";
  325. tar_cmt.attribute("width" ) = "752";
  326. grd_goodreq.attribute("width")= "860";
  327. } else { //
  328. // 메인 Grup
  329. grp_main.attribute("left" ) = "0" ;
  330. grp_main.attribute("top" ) = "15" ;
  331. grp_main.attribute("width" ) = "1195";
  332. grp_main.attribute("height" ) = "720" ;
  333. lin_main.attribute("x2" ) = "1192";
  334. grp_button.attribute("left" ) = "485";
  335. tar_cmt.attribute("width" ) = "1084";
  336. grd_goodreq.attribute("width")= "1195";
  337. }
  338. grp_main.refresh();
  339. }
  340. // <DispList01><colnm>청구부서</colnm><colno>01</colno><colsize>115</colsize><coldefault>0</coldefault></DispList01>
  341. // <DispList02><colnm>청구번호</colnm><colno>02</colno><colsize>111</colsize><coldefault>111</coldefault></DispList02>
  342. // <DispList06><colnm>물품코드</colnm><colno>06</colno><colsize>71</colsize><coldefault>71</coldefault></DispList06>
  343. // <DispList07><colnm>물품명 </colnm><colno>07</colno><colsize>268</colsize><coldefault>268</coldefault></DispList07>
  344. // <DispList08><colnm>규격 </colnm><colno>08</colno><colsize>110</colsize><coldefault>110</coldefault></DispList08>
  345. // <DispList09><colnm>모델 </colnm><colno>09</colno><colsize>37</colsize><coldefault>0</coldefault></DispList09>
  346. // <DispList10><colnm>제조회사</colnm><colno>10</colno><colsize>60</colsize><coldefault>0</coldefault></DispList10>
  347. // <DispList11><colnm>구매단위</colnm><colno>11</colno><colsize>54</colsize><coldefault>0</coldefault></DispList11>
  348. // <DispList12><colnm>청구 </colnm><colno>12</colno><colsize>40</colsize><coldefault>40</coldefault></DispList12>
  349. // <DispList13><colnm>청구단위</colnm><colno>13</colno><colsize>55</colsize><coldefault>0</coldefault></DispList13>
  350. // <DispList14><colnm>비고 </colnm><colno>14</colno><colsize>30</colsize><coldefault>30</coldefault></DispList14>
  351. // <DispList15><colnm>전월 </colnm><colno>15</colno><colsize>48</colsize><coldefault>48</coldefault></DispList15>
  352. // <DispList16><colnm>접수 </colnm><colno>16</colno><colsize>48</colsize><coldefault>48</coldefault></DispList16>
  353. // <DispList17><colnm>승인 </colnm><colno>17</colno><colsize>30</colsize><coldefault>30</coldefault></DispList17>
  354. // <DispList18><colnm>승인 </colnm><colno>18</colno><colsize>48</colsize><coldefault>48</coldefault></DispList18>
  355. /* ------------------------------------------------- */
  356. /* ------End Of List ------------------------------- */
  357. /* -------------------------------------------------- */