SMRSD00402.js 81 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831
  1. /* ---------------------------------------------------------------------
  2. SMRSD00400_물품청구관리.xrw (SMRSD00400.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. // --------------------------------------------------
  12. // Tree정보 가져오기
  13. // --------------------------------------------------
  14. function fInit() {
  15. // 화면 Control을 초기화한다
  16. fCheckAuth();
  17. fInitialize();
  18. return;
  19. }
  20. //------------------------------------------------
  21. // 화면 권한관리 CHECK
  22. //------------------------------------------------
  23. function fCheckAuth() {
  24. btn_search.disabled = !checkAuth("R") ;
  25. //btn_save.disabled = !checkAuth("X") ;
  26. //btn_prt.disabled = !checkAuth("P") ;
  27. }
  28. // --------------------------------------------------------------
  29. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  30. // --------------------------------------------------------------
  31. function fInitialize() {
  32. model.resetInstanceNode("/root/send");
  33. btn_save.disabled = true;
  34. btn_accept.disabled = true;
  35. ckb_accept.attribute("visibility") ="hidden";
  36. misfGridInit(grd_goodreq);
  37. misfMsterDetailSet(grd_goodreq,null, "TRRSD00411" ,"Y");
  38. //기관코드, 명 설정.
  39. opt_instcd.value = getUserInfo("dutplceinstcd");
  40. opt_instcdnm.value = getUserInfo("dutplceinstnm");
  41. model.setValue(opt_requser.attribute("ref" ) , getUserInfo("userid"));
  42. model.setValue(opt_requsernm.attribute("ref") , getUserInfo("usernm"));
  43. //====Test 삭제==============
  44. // 김하영(CSR)|10404149|2919419
  45. model.setValue(opt_requser.attribute("ref" ) , "10404149");
  46. model.setValue(opt_requsernm.attribute("ref") , "김하영");
  47. //==================
  48. rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),model.getValue(opt_requser.attribute("ref")), "1", "S" ); // preqpgmgubun : '1' :구매재고
  49. model.setValue(ipt_reqdd.attribute("ref") , getCurrentDate());
  50. model.setValue(ipt_reqddnew.attribute("ref") , getCurrentDate());
  51. // 입력방식 선택 및 col 제어
  52. // 일반청구:청구량입력 , 정량보충:재고량입력
  53. model.setValue(rdo_inputmethod.attribute("ref") , "1");
  54. grd_goodreq.colDisabled(grd_goodreq.colRef("stocqty")) = true;
  55. grd_goodreq.colDisabled(grd_goodreq.colRef("reqqty" )) = false;
  56. if (cmb_workflag.length> 0) cmb_workflag.selectedindex= 0; // 작업구분
  57. grd_goodlist.fixedcellcheckbox(0,grd_goodlist.colRef("select"),false) = true;
  58. // if(cmb_bugtflag.length> 0) cmb_bugtflag.selectedindex= 0;
  59. grd_goodreq.explorerbar = "sortshow";
  60. model.setValue("/root/send/reqpsn/instcd", opt_instcd.value );
  61. model.setValue("/root/send/reqpsn/emplno", opt_requser.value);
  62. submit("TRRSD00407");
  63. fReqdeptCopy();
  64. misfComboComCdList('R0025', cmb_goodflag, "N"); //물품구분
  65. fSetReqAuth(); // 청구권한설정
  66. //fReqFlagCheck();
  67. model.refresh();
  68. }
  69. // -----------------------------------------------
  70. // 청구주기가 일청구이면 권한체크하지 않는다.
  71. // -----------------------------------------------
  72. function fSetReqAuth() {
  73. // btn 기본처리
  74. btn_excel.disabled = true;
  75. // btn_reqset.disabled = true;
  76. btn_insert.disabled = true;
  77. btn_delete.disabled = true;
  78. btn_choice.disabled = true;
  79. ckb_accept.value = "N";
  80. btn_accept.disabled = true;
  81. btn_save.disabled = true;
  82. ckb_accept.attribute("visibility") ="hidden" ;
  83. if(model.getValue(opt_instcd.attribute("ref") ).length==0) return;
  84. // if(model.getValue(cmb_reqflag.attribute("ref") ).length==0) return;
  85. if(model.getValue(cmb_reqdeptcd.attribute("ref") ).length==0) return;
  86. if(model.getValue(cmb_reqpridflag.attribute("ref")).length==0) return;
  87. // -----------------------------------------------
  88. // 청구주기가 일청구이면 권한체크하지 않는다.
  89. // -----------------------------------------------
  90. if (model.getValue(cmb_reqpridflag.attribute("ref")) == "1") {
  91. // rszfGetPurcReqFnlDeptcd(model.getValue(opt_instcd.attribute("ref")), model.getValue(cmb_reqflag.attribute("ref")) , model.getValue(cmb_reqdeptcd.attribute("ref")));
  92. btn_save.disabled = false;
  93. btn_accept.disabled = false;
  94. ckb_accept.value = "Y";
  95. ckb_accept.attribute("visibility") = "visible" ;
  96. btn_excel.disabled = false;
  97. // btn_reqset.disabled = false;
  98. btn_insert.disabled = false;
  99. btn_delete.disabled = false;
  100. btn_choice.disabled = false;
  101. } else {
  102. fPurcAuthInfo(); // 청구승인자 Check
  103. btn_save.disabled = false;
  104. btn_excel.disabled = false;
  105. //btn_reqset.disabled = false;
  106. btn_insert.disabled = false;
  107. btn_delete.disabled = false;
  108. btn_choice.disabled = false;
  109. if (vPurcAuth == "2") { //1:청구자, 2:승인자
  110. btn_accept.disabled = false;
  111. ckb_accept.value = "Y";
  112. ckb_accept.attribute("visibility") = "visible" ;
  113. }
  114. }
  115. // 로그인자의 부서와 취합부서정보가 같으면 청구부서를 open한다. 2007.09.27 HBH
  116. // if (model.getValue(cmb_reqdeptcd.attribute("ref")) == model.getValue(opt_reqfinaldept.attribute("ref"))) {
  117. // cmb_reqdeptcd.disabled=false;
  118. // }
  119. model.refresh();
  120. }
  121. // --------------------------------------------------------------
  122. // 불출부서 청구마지막 일자를 불러온다.청구마감일자 조회
  123. // --------------------------------------------------------------
  124. function fLastDaySearch() {
  125. model.setValue("/root/send/lastdatesearch/instcd" , opt_instcd.value );
  126. model.setValue("/root/send/lastdatesearch/deldeptcd", opt_reqfinaldept.value );
  127. model.setValue("/root/send/lastdatesearch/reqym" , ipt_reqdd.value.substr(0,6));
  128. submit("TRRSC01701"); // 청구마감일자 조회 purcbaseweb
  129. }
  130. // --------------------------------------------------------------
  131. // 청구일자가 불출부서의 청구마지막 일자안에 있는지 확인,
  132. // --------------------------------------------------------------
  133. function fLastDayCheck() {
  134. var fbool = false;
  135. if (ipt_todd.value != '') {
  136. if (ipt_reqdd.value > ipt_todd.value ) {
  137. fbool = true;
  138. }
  139. }
  140. return fbool;
  141. }
  142. // --------------------------------------------------------------
  143. // 기본자료 SET
  144. // --------------------------------------------------------------
  145. function fDefaultSetting(prow) {
  146. // --------------------------------------------------------
  147. // 일반청구 와 정량보충에 따라서 col을 control한다.
  148. // --------------------------------------------------------
  149. if (model.getValue(rdo_inputmethod.attribute("ref"))=="1") {
  150. grd_goodreq.colDisabled(grd_goodreq.colRef("stocqty")) = true;
  151. grd_goodreq.colDisabled(grd_goodreq.colRef("reqqty")) = false;
  152. } else {
  153. grd_goodreq.colDisabled(grd_goodreq.colRef("stocqty")) = false;
  154. grd_goodreq.colDisabled(grd_goodreq.colRef("reqqty")) = true;
  155. }
  156. model.setValue(grd_goodreq.nodeset +"[" + prow+ "]/workflag" , model.getValue(cmb_workflag.attribute("ref" )));
  157. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/instcd" , model.getValue(opt_instcd.attribute("ref" )));
  158. // model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqflag" , model.getValue(cmb_reqflag.attribute("ref" )));
  159. // 불출구분 없앰... 기본값('1') settting한다
  160. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/deliveflag" , '1' );
  161. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqdd" , model.getValue(ipt_reqdd.attribute("ref" )));
  162. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqpridflag" , model.getValue(cmb_reqpridflag.attribute("ref" )));
  163. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqdeptcd" , model.getValue(cmb_reqdeptcd.attribute("ref" )));
  164. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqpsnid" , model.getValue(opt_requser.attribute("ref" )));
  165. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqseqno" , fGetMaxReqNo() );
  166. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqno" , model.getValue(cmb_reqno.attribute("ref" )));
  167. // model.setValue(grd_goodreq.nodeset +"[" + prow + "]/stdysubjno" , model.getValue(ipt_stdysubjno.attribute("ref" )));
  168. //-----------------------------------------------------------------------------------------------------------
  169. // 비승인자가 승인처리시 에러와 함꼐 OLD값을 넣어준다.
  170. // 행추가시 OLD값을 'N'으로 셋팅함으로 에러처리시 제대로 된다. HBH
  171. //-----------------------------------------------------------------------------------------------------------
  172. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/predeptaprvyn","N");
  173. /*------------------------------------------------------------------------------------------------------------
  174. * 화면 상단 계정을 bugtcd에 넣는다.
  175. ------------------------------------------------------------------------------------------------------------*/
  176. // model.setValue(grd_goodreq.nodeset +"[" + prow + "]/bugtcd",model.getValue(cmb_bugtflag.attribute("ref")));
  177. }
  178. // --------------------------------------------------------------
  179. // 최종 청구번호 가져오기
  180. // --------------------------------------------------------------
  181. function fGetMaxReqNo() {
  182. var vMax = 0;
  183. var maxreqseqno = "0";
  184. for (var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows; currow++) {
  185. if (maxreqseqno < grd_goodreq.valueMatrix(currow, grd_goodreq.colRef("reqseqno"))) {
  186. maxreqseqno = grd_goodreq.valueMatrix(currow, grd_goodreq.colRef("reqseqno"));
  187. }
  188. }
  189. vMax = parseInt(maxreqseqno, 10);
  190. // alert(vMax+"::"+maxreqseqno);
  191. vMax += 1;
  192. maxreqseqno = "" + vMax;
  193. return maxreqseqno.getLeftPad(3,"0");
  194. }
  195. // --------------------------------------------------------------
  196. //
  197. // --------------------------------------------------------------
  198. function fSettingGoodList(pnode, nodename, userqtynm) {
  199. var vTarget = "";
  200. var vSource = "";
  201. var codynode = instance1.selectNodes(pnode + "/*");
  202. var addRow = grd_goodreq.rows - grd_goodreq.fixedRows;
  203. if(model.getValue(grd_goodreq.nodeset + "[" + addRow + "]/goodcd").length > 0) addRow = addRow + 1;
  204. //
  205. for (var j = 1; j <= codynode.length ; j++) {
  206. if((grd_goodreq.rows - grd_goodreq.fixedRows == 0) || (addRow > grd_goodreq.rows - grd_goodreq.fixedRows)) {
  207. misfGridIUD(grd_goodreq,"A" );
  208. addRow = grd_goodreq.rows - grd_goodreq.fixedRows;
  209. fDefaultSetting(addRow);
  210. }
  211. vTarget = grd_goodreq.nodeset + "[" + addRow + "]/";
  212. vSource = pnode +"/" + nodename + "[" + j + "]/";
  213. fSettingGoodData(vTarget, vSource, userqtynm, "deliveunit");
  214. if (model.getValue(vSource + "allsizeyn") == "Y") {
  215. model.setValue(vTarget + "allsizespecid" , model.getValue(vSource + "allsizespecid" ));
  216. model.setValue(vTarget + "allsizespecidnm" , model.getValue(vSource + "allsizespecidnm"));
  217. if (model.getValue(vSource + "allsizespecid").length > 0 )
  218. model.setValue(vTarget + "goodspec" , model.getValue(vSource + "allsizespecidnm"));
  219. }
  220. addRow = addRow + 1;
  221. }
  222. //model.removenode(pnode);
  223. model.refresh();
  224. }
  225. function fCheckRetrieveData(pmsg)
  226. {
  227. if(model.getValue(cmb_workflag.attribute("ref")).length== 0 )
  228. {
  229. if(pmsg == true)
  230. {
  231. messageBox("작업구분을 " ,"C002");
  232. model.setFocus("cmb_workflag");
  233. }
  234. return false;
  235. }
  236. if(model.getValue(opt_instcd.attribute("ref")).length== 0 )
  237. {
  238. if(pmsg == true)
  239. {
  240. messageBox("기관코드를 " ,"C002");
  241. model.setFocus("opt_instcd");
  242. }
  243. return false;
  244. }
  245. // if(model.getValue(cmb_reqflag.attribute("ref")).length== 0 )
  246. // {
  247. // if(pmsg == true)
  248. // {
  249. // messageBox("청구구분을 " ,"C002");
  250. // model.setFocus("cmb_reqflag");
  251. // }
  252. // return false;
  253. // }
  254. if(model.getValue(ipt_reqdd.attribute("ref")).length== 0 )
  255. {
  256. if(pmsg == true)
  257. {
  258. messageBox("청구일자를 " ,"C001");
  259. model.setFocus("ipt_reqdd");
  260. }
  261. return false;
  262. }
  263. if(model.getValue(cmb_reqpridflag.attribute("ref")).length== 0 )
  264. {
  265. if(pmsg == true)
  266. {
  267. messageBox("청구주기를 " ,"C002");
  268. model.setFocus("cmb_reqpridflag");
  269. }
  270. return false;
  271. }
  272. if(model.getValue(cmb_reqdeptcd.attribute("ref")).length== 0 )
  273. {
  274. if(pmsg == true)
  275. {
  276. messageBox("청구부서를 " ,"C002");
  277. model.setFocus("cmb_reqdeptcd");
  278. }
  279. return false;
  280. }
  281. if(model.getValue(opt_requser.attribute("ref")).length== 0 )
  282. {
  283. if(pmsg == true)
  284. {
  285. messageBox("청구자를 " ,"C002");
  286. model.setFocus("opt_requser");
  287. }
  288. return false;
  289. }
  290. return true;
  291. }
  292. //
  293. // Data를 저장한다.
  294. function fSaveData() {
  295. // 저장전 Data를 Check한다.
  296. if (fCheckSaveData() == false) return;
  297. model.setValue("/root/send/save/autoaprv/instcd" ,model.getValue(opt_instcd.attribute("ref") )); //
  298. model.setValue("/root/send/save/autoaprv/reqdeptcd",model.getValue(cmb_reqdeptcd.attribute("ref")));
  299. if (model.getValue(chk_reqnonew.attribute("ref")) == "Y") { //
  300. model.setValue("/root/send/save/autoaprv/reqdd", model.getValue(ipt_reqddnew.attribute("ref")));
  301. } else {
  302. model.setValue("/root/send/save/autoaprv/reqdd", model.getValue(ipt_reqdd.attribute("ref")));
  303. }
  304. // 동시 승인여부
  305. model.setValue("/root/send/save/goodreqlist", grd_goodreq.getUpdateData());
  306. if (model.getValue(cmb_reqpridflag.attribute("ref"))=="1") model.setValue("/root/send/save/autoaprv/autoaprvyn","Y");
  307. if (ckb_accept.value == "Y") {
  308. model.setValue("/root/send/save/autoaprv/autoaprvyn", "Y");
  309. } else {
  310. model.setValue("/root/send/save/autoaprv/autoaprvyn", "N");
  311. } //
  312. alert(model.getValue("/root/send/save/autoaprv/autoaprvyn"));
  313. return;
  314. //else if (vPurcAuth == "2") { //1:청구자, 2:승인자
  315. //}
  316. //if (vPurcAuth == "2") model.setValue("/root/send/save/autoaprv/autoaprvyn","Y");
  317. //else model.setValue("/root/send/save/autoaprv/autoaprvyn","N");
  318. submit("TXRSD00411");
  319. if (model.getValue(gvErrorMsgPath + "/type") == "error") return;
  320. if (chk_reqnonew.value == "Y") {
  321. if (model.getValue(ipt_reqdd.attribute("ref")) == model.getValue(ipt_reqddnew.attribute("ref"))) {
  322. fDeptReqNoQuery();
  323. } else {
  324. model.setValue(ipt_reqdd.attribute("ref"), model.getValue(ipt_reqddnew.attribute("ref")));
  325. ipt_reqdd.refresh();
  326. }
  327. chk_reqnonew.value = "N";
  328. // btn_search.dispatch("DOMActivate");
  329. }
  330. btn_search.dispatch("DOMActivate");
  331. }
  332. // 저장전 Data를 Check한다.
  333. function fCheckSaveData()
  334. {
  335. if(model.getValue(cmb_workflag.attribute("ref")).length== 0 )
  336. {
  337. messageBox("작업구분을 " ,"C002");
  338. model.setFocus("cmb_workflag");
  339. return false;
  340. }
  341. if(model.getValue(opt_instcd.attribute("ref")).length== 0 )
  342. {
  343. messageBox("기관코드를 " ,"C002");
  344. model.setFocus("opt_instcd");
  345. return false;
  346. }
  347. // if(model.getValue(cmb_reqflag.attribute("ref")).length== 0 )
  348. // {
  349. // messageBox("청구구분을 " ,"C002");
  350. // model.setFocus("cmb_reqflag");
  351. // return false;
  352. // }
  353. if(model.getValue(ipt_reqdd.attribute("ref")).length== 0 )
  354. {
  355. messageBox("청구일자를 " ,"C001");
  356. model.setFocus("ipt_reqdd");
  357. return false;
  358. }
  359. if(model.getValue(cmb_reqpridflag.attribute("ref")).length== 0 )
  360. {
  361. messageBox("청구주기를 " ,"C002");
  362. model.setFocus("cmb_reqpridflag");
  363. return false;
  364. }
  365. var basevol = 0;
  366. var stocqty = 0;
  367. var reqqty =0;
  368. var minexch = 0;
  369. for(var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows ; currow++)
  370. {
  371. if(grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")).length == 0)
  372. {
  373. messageBox(currow + " 번째 물품코드를 " ,"C001");
  374. grd_goodreq.row = currow;
  375. grd_goodreq.col= grd_goodreq.colRef("goodcd");
  376. grd_goodreq.editCell();
  377. return false;
  378. }
  379. else
  380. {
  381. for(srcrow = currow + 1 ; srcrow < grd_goodreq.rows ; srcrow++)
  382. {
  383. if(grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")) == grd_goodreq.valueMatrix(srcrow , grd_goodreq.colRef("goodcd")) &&
  384. grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("allsizeyn")) == "N" )
  385. {
  386. messageBox("동일 물품코드가1 [" + currow + "," +srcrow + "->" + grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")) + "] 존재하여 저장 " ,"E001");
  387. return false;
  388. }
  389. else if(grd_goodreq.valueMatrix(currow ,grd_goodreq.colRef("goodcd" )) == grd_goodreq.valueMatrix(srcrow , grd_goodreq.colRef("goodcd" )) &&
  390. grd_goodreq.valueMatrix(currow ,grd_goodreq.colRef("allsizespecid")) == grd_goodreq.valueMatrix(srcrow , grd_goodreq.colRef("allsizespecid")) )
  391. {
  392. messageBox("동일 물품코드가 (ALL SIZE) [" + currow + "," +srcrow + "->" + grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")) + "] 존재하여 저장 " ,"E001");
  393. return false;
  394. }
  395. }
  396. }
  397. if(grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("reqqty")) == 0)
  398. {
  399. messageBox(currow + " 번째 청구량을 " ,"C001");
  400. grd_goodreq.row = currow;
  401. grd_goodreq.col= grd_goodreq.colRef("reqqty");
  402. grd_goodreq.editCell();
  403. return false;
  404. }
  405. basevol = grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("basevol"));
  406. stocqty = grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("stocqty"));
  407. reqqty = grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("reqqty"));
  408. minexch = grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("minexch"));
  409. if(minexch > 0 && (reqqty%minexch != 0))
  410. {
  411. messageBox((currow) + "번째 물품은 최소청구량에 ["+ minexch + "]맞춰서" , "C001");
  412. grd_goodreq.row = currow;
  413. grd_goodreq.col= grd_goodreq.colRef("reqqty");
  414. grd_goodreq.editCell();
  415. return false;
  416. }
  417. /* all size 미입력분 체크 2007.09.
  418. allsizeyn = 'Y' 인데.... allsizespecid선택을 안한경우
  419. */
  420. if(grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("allsizeyn")) == "Y" && grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("allsizespecid")).length == 0)
  421. {
  422. messageBox(currow + " 번째 물품의 ALLSIZE선택을 " ,"C001");
  423. grd_goodreq.row = currow;
  424. grd_goodreq.col= grd_goodreq.colRef("goodspec");
  425. grd_goodreq.editCell();
  426. return false;
  427. }
  428. }
  429. return true;
  430. }
  431. //
  432. function fSetControlDisabled(pDisabled) {
  433. cmb_reqno.disabled = pDisabled;
  434. }
  435. //
  436. function fAfterRetr() {
  437. if (model.getValue("/root/main/list/goodreq/goodmaxreqno/reqfix") == "Y") {
  438. fSetControlDisabled("true");
  439. }
  440. else {
  441. fSetControlDisabled("false");
  442. }
  443. // model.setValue(cmb_reqno.attribute("ref"),model.getValue("/root/main/list/goodreq/goodmaxreqno/reqno"));
  444. model.refresh();
  445. }
  446. function fRetrByReqNo()
  447. {
  448. if(fCheckRetrieveData(false) == false)return;
  449. model.removenode("/root/main/tmplist");
  450. model.makeNode("/root/main/tmplist/goodreq/goodreqlist");
  451. model.makeNode("/root/main/tmplist/goodreq/goodmaxreqno");
  452. model.copyNode("/root/main/tmplist", "/root/main/list");
  453. model.setValue("/root/send/goodreq/retrmaxreqnoyn","N");
  454. misfMsterDetailRetrieve();
  455. var rtncount = grd_goodreq.rows - grd_goodreq.fixedRows;
  456. if(rtncount == 0)
  457. {
  458. model.copyNode("/root/main/list","/root/main/tmplist");
  459. }
  460. return rtncount;
  461. }
  462. function fSetReqNo(pReqControl,pAdd)
  463. {
  464. if(pAdd == "Y")
  465. {
  466. var reqno = model.getValue(cmb_reqno.attribute("ref"));
  467. reqno = parseInt(reqno) + 1;
  468. reqno = "" + reqno;
  469. reqno = reqno.getLeftPad(4,"0");
  470. }
  471. else
  472. {
  473. var reqno = model.getValue(cmb_reqno.attribute("ref"));
  474. reqno = parseInt(reqno) - 1;
  475. if(reqno == 0)reqno = 1;
  476. reqno = "" + reqno;
  477. reqno = reqno.getLeftPad(4,"0");
  478. }
  479. model.setValue(pReqControl.attribute("ref"), reqno);
  480. model.refresh();
  481. }
  482. function fArrangeControl()
  483. {
  484. //fSetControlDisabled("false");
  485. misfGridInit(grd_goodreq);
  486. // model.setValue(cmb_reqflag.attribute("ref"),"");
  487. model.setValue(cmb_reqno.attribute("ref"),"");
  488. model.setValue(ipt_reqdd.attribute("ref"),"");
  489. model.setValue(cmb_reqdeptcd.attribute("ref"),"");
  490. //송광호 model.setValue(ipt_reqdeptnm.attribute("ref"),"");
  491. model.setValue(opt_requser.attribute("ref"),"");
  492. model.setValue(opt_requsernm.attribute("ref"),"");
  493. model.setValue(opt_reqfinaldept.attribute("ref"),"");
  494. model.setValue(opt_reqfinaldeptnm.attribute("ref"),"");
  495. model.refresh();
  496. }
  497. function fSettingReqAprv()
  498. {
  499. // if(vPurcAuth != "2")
  500. // {
  501. // messageBox("청구승인권한이 없으므로 수정" ,"E001");
  502. // return;
  503. // }
  504. for(var liRow = grd_goodreq.fixedRows ; liRow < grd_goodreq.rows ; liRow++)
  505. {
  506. /*---------------------------------------------------------------------------------------------------------
  507. * 발주승인건 제외
  508. ---------------------------------------------------------------------------------------------------------*/
  509. if(model.getValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1)+ "]/aprvyn") != "Y")
  510. {
  511. if(model.getValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1)+ "]/deptaprvyn") == "Y")
  512. {
  513. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1)+ "]/deptaprvyn","N");
  514. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1)+ "]/deptaprvdd","");
  515. if (grd_goodreq.rowStatus(liRow) == "0") grd_goodreq.rowStatus(liRow) = "2";
  516. }
  517. else
  518. {
  519. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1)+ "]/deptaprvyn" ,"Y");
  520. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1)+ "]/deptaprvdd" ,getCurrentDate());
  521. {
  522. if (grd_goodreq.rowStatus(liRow) == "0") grd_goodreq.rowStatus(liRow) = "2";
  523. }
  524. }
  525. }
  526. }
  527. model.refresh();
  528. }
  529. function fSaveReqAprv()
  530. {
  531. model.removenode("/root/send/reqaprvlist");
  532. model.makeNode("/root/send/reqaprvlist");
  533. model.setValue("/root/send/reqaprvlist" ,grd_goodreq.getUpdateData());
  534. submit("TXRSD07002");
  535. if (model.getValue(gvErrorMsgPath + "/type") != "error")misfMsterDetailRetrieve();
  536. }
  537. function fGrantsCheck()
  538. {
  539. if(vPurcAuth == "2" || model.getValue(cmb_reqpridflag.attribute("ref")) =="1" )
  540. {
  541. misfSetReadOnlyCol(grd_goodreq, "deptaprvyn", false);
  542. }else{
  543. misfSetReadOnlyCol(grd_goodreq, "deptaprvyn", true);
  544. }
  545. }
  546. // --------------------------------------------------
  547. // 물품청구 버튼 Click 처리하는 함수
  548. // --------------------------------------------------
  549. function fGoodreqButtonClick() {
  550. grp_allsize.attribute("visibility") ="hidden" ;
  551. if (grd_goodreq.col == grd_goodreq.colRef("goodcd") &&
  552. grd_goodreq.rowStatus(grd_goodreq.row) == "1" ) { //구성물품코드를 눌렀을 경우
  553. fViewToggle(2); // 1 :늘리기, 2 : 줄이기
  554. fGoodListReady(grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.col),""); // 물품찾기 처리하는 함수
  555. model.toggle("gd_find");
  556. bbt_good.selected = "true";
  557. }
  558. else if (grd_goodreq.col == grd_goodreq.colRef("goodspec") && grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("allsizeyn")) == "Y" )
  559. {
  560. fAllSizeRead(grd_goodreq.row ,grd_goodreq.col, event.clientY);
  561. }
  562. model.refresh();
  563. }
  564. // --------------------------------------------------
  565. // 물품청구 내용이 바뀌었을때 처리하는 함수
  566. // --------------------------------------------------
  567. function fGoodreqOnChange() {
  568. if (grd_goodreq.col == grd_goodreq.colRef("reqqty") ) {
  569. if (model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/acptflag") == "Y")
  570. {
  571. messageBox("구매접수된 내역은 수정","E001");
  572. return;
  573. }
  574. if(model.getValue(cmb_reqpridflag.attribute("ref")) !="1")
  575. {
  576. if(vPurcAuth == "1" &&
  577. model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/predeptaprvyn") == "Y")
  578. {
  579. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  580. messageBox("청구승인되었으므로 청구량을 수정" ,"E001");
  581. return;
  582. }
  583. }
  584. basevol = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("basevol"));
  585. stocqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("stocqty"));
  586. reqqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty"));
  587. minexch = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("minexch"));
  588. if(minexch > 0 && (reqqty%minexch != 0))
  589. {
  590. messageBox((grd_goodreq.row )+ "번째 물품은 최소청구량["+ minexch + "] 에 맞춰서" , "C001");
  591. grd_goodreq.row = grd_goodreq.row;
  592. grd_goodreq.col= grd_goodreq.colRef("reqqty");
  593. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqqty","");
  594. grd_goodreq.editCell();
  595. return;
  596. }
  597. }
  598. /*-------------------------------------------------------------------------------------
  599. * 청구수량을 정량보충으로 변경함. ( 재고수량을 입력한다) .2007.08.
  600. -------------------------------------------------------------------------------------*/
  601. else if (grd_goodreq.col == grd_goodreq.colRef("stocqty") ) {//청구량조절할경우
  602. if (model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/acptflag") == "Y")
  603. {
  604. messageBox("구매접수된 내역은 수정","E001");
  605. return;
  606. }
  607. if(model.getValue(cmb_reqpridflag.attribute("ref")) !="1")
  608. {
  609. if(vPurcAuth =="1" &&
  610. model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/predeptaprvyn") == "Y")
  611. {
  612. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  613. messageBox("청구승인되었으므로 재고량을 수정" ,"E001");
  614. return;
  615. }
  616. }
  617. basevol = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("basevol"));
  618. stocqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("stocqty"));
  619. reqqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty"));
  620. minexch = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("minexch"));
  621. calc_reqqty = basevol - stocqty;
  622. if ( calc_reqqty < minexch ) calc_reqqty = minexch;
  623. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqqty",calc_reqqty);
  624. }
  625. else if(grd_goodreq.col == grd_goodreq.colRef("goodcd") && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodcd")).length> 0) {
  626. model.removenode("/root/copynode");
  627. model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  628. model.makeNode("/root/copynode");
  629. // rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,instcd,goodflag,goodcd,goodnm,indexgb,indexnm,reqflag,reqdeptcd,reqprid","goodcd," + model.getValue(opt_instcd.attribute("ref")) + "," +model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/goodflag") + "," + model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/goodcd") + ",,,," + model.getValue(cmb_reqflag.attribute("ref")) + "," + model.getValue(cmb_reqdeptcd.attribute("ref")) + "," + model.getValue(cmb_reqpridflag.attribute("ref")) ,"","goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,minexch,goodflag,ddavguseqty,reqflag,allsizeyn",grd_goodreq,"SPRSD00190","instcd,goodflag,reqflag,reqdeptcd,reqprid","opt_instcd,opt_goodflag,cmb_reqflag,cmb_reqdeptcd,cmb_reqpridflag","Y");
  630. model.refresh();
  631. if( grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length> 0)
  632. {
  633. if(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/minexch") > 0) model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqqty",model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/minexch") );
  634. else model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqqty","1");
  635. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/basevol",model.getValue("/root/init/main/goodlist/minexch"));
  636. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/requnit",model.getValue("/root/init/main/goodlist/deliveunit"));
  637. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/exchqty",model.getValue("/root/init/main/goodlist/exchqty"));
  638. // model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqmthdflag",model.getValue("/root/init/main/goodlist/reqmthd"));
  639. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqmthdflag","3");
  640. }
  641. model.refresh();
  642. var cur_row = grd_goodreq.row;
  643. var status = grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("m"));
  644. var CSV = model.getValue(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  645. if(CSV.length == 0 && grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length == 0)
  646. {
  647. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/goodcd" , "");
  648. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/goodcd" , "");
  649. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/goodnm" , "");
  650. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/goodspec" , "");
  651. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/goodflag" , "");
  652. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/goodmodel" , "");
  653. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/prodcmpynm" , "");
  654. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/purcunit" , "");
  655. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/basevol" , "");
  656. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/stocqty" , "");
  657. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/reqqty" , "");
  658. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/requnit" , "");
  659. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/minexch" , "");
  660. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/ddavguseqty" , "");
  661. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/allsizeyn" , "");
  662. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/allsizespecid" , "");
  663. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/exchqty" , "");
  664. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/rgstqty" , "");
  665. grd_goodreq.col = grd_goodreq.colRef("goodcd");
  666. grd_goodreq.editCell();
  667. }
  668. else if (CSV.length > 0)
  669. {
  670. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/goodcd","");
  671. setCSVToNode("/root/copynode", CSV, "goodreqlist");
  672. fSettingGoodList("/root/copynode", "goodreqlist" , "userqty");
  673. }
  674. }
  675. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  676. // 영양팀은 품목명칭에서 값을 입력할수 있다..
  677. // 입력값과 일치건이 1일경우 코드 REPLACE
  678. // 없을경우 FIND
  679. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  680. else if(grd_goodreq.col == grd_goodreq.colRef("goodnm") && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodnm")).length> 0
  681. && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodcd")).length== 0 )
  682. {
  683. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  684. // validation을 하기 위해 임시 column 을 둔다. HBH
  685. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  686. model.setValue(tmp_goodcd.attribute("ref") ,"%" );
  687. model.setValue(tmp_goodnm.attribute("ref") ,grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodnm")) );
  688. model.removenode("/root/copynode");
  689. model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  690. model.makeNode("/root/copynode");
  691. // rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,instcd,goodflag,goodcd,goodnm,indexgb,indexnm,reqflag,reqdeptcd,reqprid","goodcd," + model.getValue(opt_instcd.attribute("ref")) + "," + model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/goodflag") + ","+model.getValue(tmp_goodcd.attribute("ref")) +","+model.getValue(tmp_goodnm.attribute("ref")) + ",,," + model.getValue(cmb_reqflag.attribute("ref")) + "," + model.getValue(cmb_reqdeptcd.attribute("ref")) + "," + model.getValue(cmb_reqpridflag.attribute("ref")) ,"","goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,minexch,goodflag,ddavguseqty,maincustlastsuplplce,suppcustcd,goodunitcost,deliveunit,exchqty",grd_goodreq,"SPRSD00210","instcd,reqflag,reqdeptcd,goodnm,reqprid","opt_instcd,cmb_reqflag,cmb_reqdeptcd,tmp_goodnm,cmb_reqpridflag","Y");
  692. model.refresh();
  693. if(grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodcd")).length> 0)
  694. {
  695. model.removenode("/root/copynode");
  696. model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  697. model.makeNode("/root/copynode");
  698. // rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,instcd,goodflag,goodcd,goodnm,indexgb,indexnm,reqflag,reqdeptcd,reqprid","goodcd," + model.getValue(opt_instcd.attribute("ref")) + "," +model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/goodflag") + "," + model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/goodcd") + ",,,," + model.getValue(cmb_reqflag.attribute("ref")) + "," + model.getValue(cmb_reqdeptcd.attribute("ref")) + "," + model.getValue(cmb_reqpridflag.attribute("ref")) ,"","goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,minexch,goodflag,ddavguseqty,reqflag,allsizeyn",grd_goodreq,"SPRSD00190","instcd,goodflag,reqflag,reqdeptcd,reqprid","opt_instcd,opt_goodflag,cmb_reqflag,cmb_reqdeptcd,cmb_reqpridflag","Y");
  699. model.refresh();
  700. if( grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length> 0)
  701. {
  702. if(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/minexch") > 0) model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqqty",model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/minexch") );
  703. else model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqqty","1");
  704. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/basevol",model.getValue("/root/init/main/goodlist/minexch"));
  705. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/requnit",model.getValue("/root/init/main/goodlist/deliveunit"));
  706. // model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqmthdflag",model.getValue("/root/init/main/goodlist/reqmthd"));
  707. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqmthdflag","3");
  708. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/allsizespecid","YYY");
  709. }
  710. model.refresh();
  711. var cur_row = grd_goodreq.row;
  712. var status = grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("m"));
  713. var CSV = model.getValue(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  714. if(CSV.length == 0 && grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length == 0)
  715. {
  716. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/goodcd" , "");
  717. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/goodcd" , "");
  718. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/goodnm" , "");
  719. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/goodspec" , "");
  720. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/goodflag" , "");
  721. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/goodmodel" , "");
  722. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/prodcmpynm" , "");
  723. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/purcunit" , "");
  724. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/basevol" , "");
  725. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/stocqty" , "");
  726. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/reqqty" , "");
  727. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/requnit" , "");
  728. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/minexch" , "");
  729. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/ddavguseqty" , "");
  730. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/allsizeyn" , "");
  731. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/allsizespecid" , "");
  732. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/rgstqty" , "");
  733. grd_goodreq.col = grd_goodreq.colRef("goodcd");
  734. grd_goodreq.editCell();
  735. }
  736. else if (CSV.length > 0)
  737. {
  738. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/goodcd","");
  739. setCSVToNode("/root/copynode", CSV, "goodreqlist");
  740. fSettingGoodList("/root/copynode", "goodreqlist" , "userqty");
  741. }
  742. }
  743. }
  744. else if((grd_goodreq.col == grd_goodreq.colRef("deptaprvyn")))
  745. {
  746. if(vPurcAuth != "2" && model.getValue(cmb_reqpridflag.attribute("ref")) != "1" )
  747. {
  748. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/deptaprvyn",model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/predeptaprvyn") );
  749. // insert 가 아니면..
  750. if ( grd_goodreq.rowStatus(grd_goodreq.row) != '3')
  751. {
  752. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  753. }
  754. messageBox("청구승인권한이 없으므로 수정" ,"E001");
  755. }
  756. else if(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/aprvyn") == "Y")
  757. {
  758. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  759. messageBox("발주승인이 되었으므로 수정" ,"E001");
  760. }
  761. else model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/deptaprvdd" ,getCurrentDate());
  762. }
  763. }
  764. // --------------------------------------------------
  765. // 물품청구 내용이 바뀌었을때 처리하는 함수
  766. // --------------------------------------------------
  767. function fGoodreqOnKeyDown() {
  768. if(event.keyCode == 13)
  769. {
  770. if(grd_goodreq.col == grd_goodreq.colRef("reqqty"))
  771. {
  772. if(grd_goodreq.row < grd_goodreq.rows - grd_goodreq.fixedRows)
  773. {
  774. grd_goodreq.row = grd_goodreq.row + 1;
  775. grd_goodreq.select(grd_goodreq.row, grd_goodreq.colRef("reqqty")) = true;
  776. }
  777. }
  778. }
  779. if(event.keyCode == 9)
  780. {
  781. if(event.shiftKey)
  782. {
  783. if(grd_goodreq.colAttribute(grd_goodreq.col + 1, "type").indexOf ("input") > -1)
  784. {
  785. for(curcol = grd_goodreq.col -1 ; curcol > -1 ; curcol--)
  786. {
  787. if(grd_goodreq.colAttribute(curcol, "type").indexOf ("input") > -1)
  788. {
  789. grd_goodreq.col = curcol;
  790. grd_goodreq.editCell();
  791. return;
  792. }
  793. }
  794. }
  795. }
  796. else
  797. {
  798. if(grd_goodreq.colAttribute(grd_goodreq.col, "type").indexOf ("input") == -1)
  799. {
  800. if(grd_goodreq.col - 1 == grd_goodreq.colRef("goodcd") && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.col - 1).length == 0)
  801. {
  802. grd_goodreq.col = grd_goodreq.colRef("goodcd");
  803. grd_goodreq.editCell();
  804. return;
  805. }
  806. for(curcol = grd_goodreq.col ; curcol <grd_goodreq.cols ; curcol++)
  807. {
  808. if(grd_goodreq.colAttribute(curcol, "type").indexOf ("input") > -1)
  809. {
  810. grd_goodreq.col = curcol;
  811. grd_goodreq.editCell();
  812. return;
  813. }
  814. }
  815. }
  816. }
  817. }
  818. }
  819. // --------------------------------------------------
  820. // 물품청구 Cell 내용이 바뀌었을때 처리하는 함수
  821. // --------------------------------------------------
  822. function fGoodreqOnEnterCell() {
  823. if((grd_goodreq.col == grd_goodreq.colRef("deptaprvyn")))
  824. {
  825. if(vPurcAuth != "2" && model.getValue(cmb_reqpridflag.attribute("ref")) !="1" )
  826. {
  827. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/deptaprvyn",model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/predeptaprvyn") );
  828. // insert 가 아니면..
  829. if ( grd_goodreq.rowStatus(grd_goodreq.row) != '3')
  830. {
  831. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  832. }
  833. messageBox("청구승인권한이 없으므로 수정" ,"E001");
  834. }
  835. else
  836. {
  837. if(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/aprvyn") == "Y")
  838. {
  839. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  840. messageBox("발주승인이 되었으므로 수정" ,"E001");
  841. }
  842. }
  843. }
  844. else if(grd_goodreq.col == grd_goodreq.colRef("stocqty"))
  845. // else if(grd_goodreq.col == grd_goodreq.colRef("reqqty"))
  846. {
  847. if (model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/acptflag") == "Y")
  848. {
  849. messageBox("구매접수된 내역은 수정","E001");
  850. return;
  851. }
  852. if(model.getValue(cmb_reqpridflag.attribute("ref")) !="1")
  853. {
  854. if(vPurcAuth =="1" &&
  855. model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/predeptaprvyn") == "Y")
  856. {
  857. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  858. messageBox("청구승인되었으므로 재고량을 수정" ,"E001");
  859. return;
  860. }
  861. }
  862. }
  863. else if(grd_goodreq.col == grd_goodreq.colRef("reqqty"))
  864. {
  865. if (model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/acptflag") == "Y")
  866. {
  867. messageBox("구매접수된 내역은 수정","E001");
  868. return;
  869. }
  870. if(model.getValue(cmb_reqpridflag.attribute("ref")) !="1")
  871. {
  872. if(vPurcAuth =="1" &&
  873. model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/predeptaprvyn") == "Y")
  874. {
  875. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  876. messageBox("청구승인되었으므로 청구량을 수정" ,"E001");
  877. return;
  878. }
  879. }
  880. }
  881. }
  882. // --------------------------------------------------
  883. // Switch 속성변경 처리하는 함수
  884. // --------------------------------------------------
  885. function fViewToggle(pCls) {
  886. if (pCls == 1) { // 늘리기
  887. // 메인 Grup
  888. grp_main.attribute("left" ) = "1" ;
  889. grp_main.attribute("top" ) = "90" ;
  890. grp_main.attribute("width" ) = "1188";
  891. grp_main.attribute("height" ) = "663" ;
  892. // Data Grid
  893. grd_goodreq.attribute("left" ) = "3" ;
  894. grd_goodreq.attribute("top" ) = "29" ;
  895. grd_goodreq.attribute("width" ) = "1180";
  896. grd_goodreq.attribute("height") = "628" ;
  897. lin_main.attribute("x2" ) = "1182" ;
  898. bbt_large.attribute("visibility") = "hidden" ;
  899. bbt_right.attribute("visibility") = "hidden" ;
  900. grp_button.attribute("left" ) = "589" ;
  901. grp_allsize.attribute("left" ) = "544" ;
  902. } else { // 줄이기
  903. // 메인 Grup
  904. grp_main.attribute("left" ) = "593" ;
  905. grp_main.attribute("top" ) = "90" ;
  906. grp_main.attribute("width" ) = "602" ;
  907. grp_main.attribute("height" ) = "663" ;
  908. // Data Grid
  909. grd_goodreq.attribute("left" ) = "3" ;
  910. grd_goodreq.attribute("top" ) = "29" ;
  911. grd_goodreq.attribute("width" ) = "592" ;
  912. grd_goodreq.attribute("height") = "628" ;
  913. lin_main.attribute("x2" ) = "593";
  914. bbt_large.attribute("visibility") = "visible" ;
  915. bbt_right.attribute("visibility") = "visible" ;
  916. grp_button.attribute("left" ) = "3" ;
  917. grp_allsize.attribute("left" ) = "174" ;
  918. }
  919. // swt_search.refresh();
  920. grp_main.refresh();
  921. }
  922. // --------------------------------------------------
  923. // 물품 찾기 속성변경 처리하는 함수
  924. // --------------------------------------------------
  925. function fGoodSearchToggle() {
  926. if (cpt_cls.attribute("text") =="0") { // 상세접근 조회
  927. // 메인 Grup
  928. grd_goodlist.attribute("left" ) = "2" ;
  929. grd_goodlist.attribute("top" ) = "83" ;
  930. grd_goodlist.attribute("width" ) = "576";
  931. grd_goodlist.attribute("height" ) = "574" ;
  932. btn_dtail.attribute("top" ) = "56" ;
  933. bbt_apply2.attribute("top" ) = "56" ;
  934. lin_goodlist.attribute("y1" ) = "78";
  935. lin_goodlist.attribute("y2" ) = "78";
  936. grp_dtail.attribute("visibility") ="hidden" ;
  937. cpt_cls.attribute("text") = "1";
  938. } else { // 줄이기
  939. // 메인 Grup
  940. grd_goodlist.attribute("left" ) = "2" ;
  941. grd_goodlist.attribute("top" ) = "285" ;
  942. grd_goodlist.attribute("width" ) = "576";
  943. grd_goodlist.attribute("height" ) = "372" ;
  944. btn_dtail.attribute("top" ) = "258" ;
  945. bbt_apply2.attribute("top" ) = "258" ;
  946. lin_goodlist.attribute("y1" ) = "280";
  947. lin_goodlist.attribute("y2" ) = "280";
  948. grp_dtail.attribute("visibility") ="visible" ;
  949. cpt_cls.attribute("text") = "0";
  950. }
  951. grd_goodlist.refresh();
  952. }
  953. // --------------------------------------------------
  954. // 물품 찾기 속성변경 처리하는 함수
  955. // --------------------------------------------------
  956. var vInstcd = "";
  957. var vReqdeptcd = "";
  958. function fReqSetList() {
  959. var vReqSetFlag = "N";
  960. if (model.getValue(opt_instcd.attribute("ref")) == "") {
  961. messageBox("기관을 " ,"C002");
  962. return;
  963. }
  964. //
  965. if (model.getValue(cmb_reqdeptcd.attribute("ref" )) == ""){
  966. messageBox("청구 부서를 " ,"C002");
  967. return;
  968. }
  969. //
  970. if (vInstcd != model.getValue(opt_instcd.attribute("ref" ))) vReqSetFlag = "Y";
  971. if (vReqdeptcd != model.getValue(cmb_reqdeptcd.attribute("ref" ))) vReqSetFlag = "Y";
  972. if (vReqSetFlag == "N") return;
  973. vInstcd = model.getValue(opt_instcd.attribute("ref" ));
  974. vReqdeptcd = model.getValue(cmb_reqdeptcd.attribute("ref" ));
  975. model.setValue("/root/send/reqmst/instcd" , model.getValue(opt_instcd.attribute("ref" )));
  976. model.setValue("/root/send/reqmst/reqdeptcd" , model.getValue(cmb_reqdeptcd.attribute("ref" )));
  977. grd_reqset.fixedcellcheckbox(0, grd_reqset.colRef("select" ),false) = true;
  978. misfGridInit(grd_reqset);
  979. misfGridInit(grd_setlist);
  980. submit("TRRSD00211");
  981. if (grd_setlist.rows < 2) return;
  982. if (model.getValue(grd_setlist.nodeset + "["+ 1 + "]/reqdeptcd" ) =="") return;
  983. grd_setlist.row = 1;
  984. fReqSetRead(grd_setlist.row);
  985. misfMsterDetailRetrieve();
  986. }
  987. // 부서 청구SET 물품
  988. function fReqSetRead(pRow) {
  989. model.setValue("/root/send/reqset/instcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/instcd" ));
  990. model.setValue("/root/send/reqset/reqdeptcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/reqdeptcd" ));
  991. model.setValue("/root/send/reqset/reqprid" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/reqprid" ));
  992. model.setValue("/root/send/reqset/goodsetcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/goodsetcd" ));
  993. model.setValue("/root/send/reqset/goodsetnm" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/goodsetnm" ));
  994. misfGridInit(grd_reqset);
  995. submit("TRRSD00210"); // 청구마감일자 조회 purcbaseweb
  996. }
  997. // --------------------------------------------------
  998. // 선택물품을 적용하는 처리하는 함수
  999. // --------------------------------------------------
  1000. function fSelectDataApply(pGridSource, pGridTarget, pGridNm, pQtyNm) {
  1001. model.removenode("/root/copynode");
  1002. var vSelect = 0;
  1003. for (var row = pGridSource.fixedRows ; row < pGridSource.rows; row++) {
  1004. if ((model.getValue(pGridSource.nodeset + "[" + row + "]/select" ) == "true" ) &&
  1005. (model.getValue(pGridSource.nodeset + "[" + row + "]/reqprid") == cmb_reqpridflag.value)) {
  1006. vSelect++;
  1007. } else {
  1008. model.setValue(pGridSource.nodeset + "[" + row + "]/select" , "false");
  1009. }
  1010. }
  1011. //
  1012. if (vSelect < 1) {
  1013. pGridSource.refresh();
  1014. return;
  1015. }
  1016. //
  1017. var nodelist = instance1.selectNodes(pGridSource.nodeset + "[select='true']");
  1018. // var nodelist = instance1.selectNodes(pGridSource.nodeset + "[select='true' and reqprid='"+cmb_reqpridflag.value+"']");
  1019. var rCVS = getNodeListCSV(nodelist);
  1020. var cur_row = pGridTarget.row;
  1021. var status = pGridTarget.valueMatrix(cur_row, pGridTarget.colRef("m"));
  1022. model.makeNode("/root/copynode");
  1023. setCSVToNode("/root/copynode", rCVS, pGridNm);
  1024. fSettingGoodList("/root/copynode", pGridNm , pQtyNm);
  1025. //----------------------------------------------------------
  1026. // 2008.07.08 YYJ 추가 물품 조회시 선택한 항목을 Clear 시켜준다.
  1027. //----------------------------------------------------------
  1028. for (var row = pGridSource.fixedRows ; row < pGridSource.rows; row++) {
  1029. model.setValue(pGridSource.nodeset + "[" + row + "]/select" , "false");
  1030. }
  1031. }
  1032. // --------------------------------------------------
  1033. // All Size 읽어오는 함수
  1034. // --------------------------------------------------
  1035. var vAllSizeCol = 0;
  1036. var vAllSizeRow = 0;
  1037. var vAllSizePath = "/root/main/codelist";
  1038. var vGoodReqPath = "/root/main/list/goodreq/goodreqlist";
  1039. function fAllSizeRead(pRow, pCol, pPos) {
  1040. var iClickY = pPos - 100;
  1041. vAllSizeCol = pCol;
  1042. vAllSizeRow = pRow;
  1043. if (iClickY > 375) iClickY = iClickY - 319;
  1044. grp_allsize.attribute("top") = iClickY+ "px";
  1045. grp_allsize.attribute("visibility") = "visible" ;
  1046. model.setValue("/root/send/allsize/instcd", model.getValue(opt_instcd.attribute("ref" )));
  1047. model.setValue("/root/send/allsize/goodcd", model.getValue(grd_goodreq.nodeset + "[" + pRow + "]/goodcd"));
  1048. submit("TRRSD00281");
  1049. grp_allsize.refresh();
  1050. }
  1051. // All Size 선택
  1052. function fAllSizeSelect() {
  1053. grp_allsize.attribute("visibility") = "hidden" ;
  1054. var vQty = "0";
  1055. var vSize = "";
  1056. var vSpec = "";
  1057. var vModel = "";
  1058. var vCheck = "";
  1059. var vPath = "";
  1060. var vTarget = "";
  1061. var vSource = "";
  1062. var vGoodcd = model.getValue(vGoodReqPath+"["+(vAllSizeRow)+"]/goodcd");
  1063. for (var i = 1; i < grd_codelist.rows; i++) {
  1064. if (model.getValue(vAllSizePath+"["+i+"]/chk") == "true") {
  1065. vSize = model.getValue(vAllSizePath+"["+ i +"]/allsizespecid");
  1066. vSpec = model.getValue(vAllSizePath+"["+ i +"]/goodspec" );
  1067. vModel = model.getValue(vAllSizePath+"["+ i +"]/goodmodel" );
  1068. vQty = model.getValue(vAllSizePath+"["+ i +"]/qty" );
  1069. if (model.getValue(vGoodReqPath+"["+"[goodcd='"+ vGoodcd+"' and allsizespecid='"+vSize+"']" +"/goodcd") == "") {
  1070. if (vCheck == "") {
  1071. vCheck = "Y";
  1072. vTarget = vGoodReqPath+"["+(vAllSizeRow)+"]" ;
  1073. if (grd_goodreq.rowStatus(vAllSizeRow) == 0)
  1074. grd_goodreq.rowStatus(vAllSizeRow) = 2 ;
  1075. } else {
  1076. misfGridIUD(grd_goodreq,"A");
  1077. addRow = grd_goodreq.rows - grd_goodreq.fixedRows;
  1078. fDefaultSetting(addRow);
  1079. vTarget = grd_goodreq.nodeset + "[" + addRow + "]/";
  1080. vSource = vGoodReqPath + "[" + vAllSizeRow + "]/";
  1081. fSettingGoodData(vTarget, vSource, "userqty", "requnit", "S");
  1082. }
  1083. } else {
  1084. vPath = vGoodReqPath+"["+"[goodcd='"+ vGoodcd+"' and allsizespecid='"+vSize+"']";
  1085. }
  1086. // alert(vPath);
  1087. //
  1088. model.setValue(vTarget + "/allsizeyn" , "Y" );
  1089. model.setValue(vTarget + "/allsizespecid" , vSize );
  1090. model.setValue(vTarget + "/goodspec" , vSpec );
  1091. model.setValue(vTarget + "/goodmodel" , vModel);
  1092. if (vQty != "" && vQty != "0") {
  1093. model.setValue(vTarget + "/reqqty" , vQty );
  1094. }
  1095. }
  1096. }
  1097. grd_goodreq.refresh();
  1098. }
  1099. // 신규생성
  1100. function fNewReqNo() {
  1101. if (chk_reqnonew.value != "Y") {
  1102. btn_search.dispatch("DOMActivate");
  1103. }
  1104. //alert(grd_goodreq.rows);
  1105. if (grd_goodreq.rows < 2) {
  1106. return;
  1107. }
  1108. RetCls = messageBox("조회된 자료를 현재일자로 신규 생성합니다","S001");
  1109. if (RetCls != 6) return;
  1110. for (var i = 1; i < grd_goodreq.rows; i++) {
  1111. grd_goodreq.rowStatus(i) = 3 ;
  1112. model.setValue(grd_goodreq.nodeset + "[" + i+ "]/deptaprvyn", "N");
  1113. model.setValue(grd_goodreq.nodeset + "[" + i+ "]/deptaprvdd", "");
  1114. }
  1115. grd_goodreq.refresh();
  1116. }
  1117. //
  1118. function fSettingGoodData(pTarget, pSource, pUserqtynm, pRequnit, pCls) {
  1119. model.setValue(pTarget + "goodcd" , model.getValue(pSource + "goodcd" ));
  1120. model.setValue(pTarget + "goodnm" , model.getValue(pSource + "goodnm" ));
  1121. model.setValue(pTarget + "goodspec" , model.getValue(pSource + "goodspec" ));
  1122. model.setValue(pTarget + "reqflag" , model.getValue(pSource + "reqflag" ));
  1123. model.setValue(pTarget + "goodflag" , model.getValue(pSource + "goodflag" ));
  1124. model.setValue(pTarget + "goodmodel" , model.getValue(pSource + "goodmodel" ));
  1125. model.setValue(pTarget + "prodcmpynm" , model.getValue(pSource + "prodcmpynm" ));
  1126. model.setValue(pTarget + "purcunit" , model.getValue(pSource + "purcunit" ));
  1127. model.setValue(pTarget + "purcunit" , model.getValue(pSource + "purcunit" ));
  1128. model.setValue(pTarget + "basevol" , model.getValue(pSource + "minexch" ));
  1129. model.setValue(pTarget + "stocqty" , model.getValue(pSource + "stocqty" ));
  1130. model.setValue(pTarget + "reqqty" , model.getValue(pSource + pUserqtynm ));
  1131. model.setValue(pTarget + "requnit" , model.getValue(pSource + pRequnit ));
  1132. model.setValue(pTarget + "minexch" , model.getValue(pSource + "minexch" ));
  1133. model.setValue(pTarget + "ddavguseqty" , model.getValue(pSource + "ddavguseqty" ));
  1134. model.setValue(pTarget + "exchqty" , model.getValue(pSource + "exchqty" ));
  1135. //model.setValue(pTarget + "reqmthdflag" , model.getValue(pSource + "reqmthd" ));
  1136. model.setValue(pTarget + "reqmthdflag" , "3" );
  1137. model.setValue(pTarget + "allsizeyn" , model.getValue(pSource + "allsizeyn" ));
  1138. model.setValue(pTarget + "reqcollcdeptcd", model.getValue(pSource + "reqcollcdeptcd"));
  1139. if (pCls == "S") {
  1140. model.setValue(pTarget + "delivedeptcd", model.getValue(pSource + "delivedeptcd"));
  1141. } else {
  1142. model.setValue(pTarget + "delivedeptcd", model.getValue(pSource + "reqfnldeptcd"));
  1143. }
  1144. model.setValue(pTarget + "rgstqty" , "0" );
  1145. }
  1146. // --------------------------------------------------
  1147. // 물품찾기 처리하는 함수
  1148. // --------------------------------------------------
  1149. function fGoodListReady(pGoodCd, pGoodName) {
  1150. misfGridInit(grd_goodlist);
  1151. //misfComboComCdList('R0025', cmb_goodflag,"Y"); //물품구분
  1152. fGoodListKeySet(); // 물품검색 기본 KEY SET
  1153. // -------------------------------------------------------------------------------------------
  1154. // sql문에 청구부서별 안전재고를 가져와야한다.
  1155. // 프로그램 call시 변경해야한다. 인자값이 없을경우 해당 user값으로 setting한다.
  1156. // -------------------------------------------------------------------------------------------
  1157. if (model.getValue(PURTARGET_NODE + "/reqdeptcd").length == 0 )
  1158. model.setValue("/root/send/goodlist/reqdeptcd", getUserInfo("dutplcecd"));
  1159. else model.setValue("/root/send/goodlist/reqdeptcd", model.getValue(cmb_reqdeptcd.attribute("ref")));
  1160. // --------------------------------------------------------------------------
  1161. // 영양팀 명칭검색으로 이 window 가 open시 기본값 셋팅한다.
  1162. // --------------------------------------------------------------------------
  1163. if (pGoodCd.length > 0) {
  1164. model.setValue("/root/send/goodlist/goodcd", pGoodCd);
  1165. model.refresh();
  1166. // btn_search.dispatch("DOMActivate");
  1167. }
  1168. else if (pGoodName.length > 0)
  1169. {
  1170. model.setValue("/root/send/goodlist/goodnm", pGoodName);
  1171. model.refresh();
  1172. // btn_search.dispatch("DOMActivate");
  1173. }
  1174. }
  1175. // 물품검색 기본 KEY SET
  1176. function fGoodListKeySet() {
  1177. model.setValue("/root/send/goodlist/lrgcd" , "");
  1178. model.setValue("/root/send/goodlist/mdlcd" , "");
  1179. model.setValue("/root/send/goodlist/instcd" , model.getValue(opt_instcd.attribute("ref" )));
  1180. model.setValue("/root/send/goodlist/goodflag", model.getValue(opt_goodflag.attribute("ref" )));
  1181. model.setValue("/root/send/goodlist/reqflag" , model.getValue(cmb_reqflag.attribute("ref" )));
  1182. model.setValue("/root/send/goodlist/reqprid" , model.getValue(cmb_reqpridflag.attribute("ref")));
  1183. rszfLMSComboList(model.getValue("/root/send/goodlist/goodflag"), "", "", "ipt_lrgcd", "", "L");
  1184. ipt_lrgcd.select(0);
  1185. model.setValue("/root/send/goodlist/instcdnm" , opt_instcdnm.value );
  1186. model.setValue("/root/send/goodlist/reqflagnm" , cmb_reqflag.label );
  1187. model.setValue("/root/send/goodlist/reqpridnm" , cmb_reqpridflag.label);
  1188. }
  1189. // --------------------------------------------------
  1190. // 물품찾기 처리하는 함수
  1191. // --------------------------------------------------
  1192. function fGoodListSearch() {
  1193. misfGridInit(grd_goodlist);
  1194. if(model.getValue(opt_instcd.attribute("ref")).length == 0 )return;
  1195. if (cmb_reqflag.value == ""){
  1196. messageBox("청구구분을 선택하십시요!!", "");
  1197. return;
  1198. }
  1199. if (ipt_lrgcd.value == "") {
  1200. messageBox("대분류를 선택하십시요!!" , "");
  1201. return;
  1202. }
  1203. if (model.getValue("/root/send/goodnm") != "") {
  1204. model.setValue("/root/send/indexnm","");
  1205. }
  1206. model.setValue("/root/send/goodlist/reqprid" , model.getValue(cmb_reqpridflag.attribute("ref")));
  1207. submit("TRRSD00406");
  1208. grd_goodlist.refresh();
  1209. }
  1210. // --------------------------------------------------
  1211. // 물품찾기 처리하는 함수
  1212. // --------------------------------------------------
  1213. function fReqFlagCheck() {
  1214. // if(cmb_reqflag.value == 'H'){
  1215. // grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = false;
  1216. // }else{
  1217. // grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = true;
  1218. // }
  1219. //청구권/승인권 부서 조회.
  1220. // rszfReqDeptGetComboList("cmb_reqdeptcd", opt_instcd.value, getUserInfo("userid"), cmb_reqflag.value);
  1221. rszfReqDeptGetComboList("cmb_reqdeptcd", opt_instcd.value, '80030647', 'S');
  1222. cmb_reqpridflag.value = '';
  1223. rszfComboReqPridList(cmb_reqpridflag,opt_instcd.value,cmb_reqflag.value);
  1224. cmb_reqpridflag.refresh();
  1225. cmb_reqpridflag.select(0);
  1226. /* 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다.
  1227. */
  1228. opt_goodflag.value = rszfGetGoodFlagByReqFlag(opt_instcd.value,cmb_reqflag.value);
  1229. fGoodListKeySet(); // 물품검색 기본 KEY SET
  1230. if (cmb_reqpridflag.value.length == 0 ) {
  1231. fSetReqAuth();
  1232. btn_search.dispatch("DOMActivate");
  1233. }
  1234. //청구 마지막 일자 조회.
  1235. fLastDaySearch();
  1236. //청구일자 기한체크.
  1237. if(fLastDayCheck())
  1238. {
  1239. messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", "");
  1240. ipt_reqdd.value = ipt_todd.value;
  1241. return;
  1242. }
  1243. }
  1244. // 청구부서 Set
  1245. function fReqdeptCopy(){
  1246. var cPath = "/root/init/CopyData"
  1247. var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1248. var tPath = "/root/init/ReqDeptLists/reqdeptlist";
  1249. var iDataCnt = getNodesetCount(sPath);
  1250. if (iDataCnt < 1) {
  1251. return;
  1252. }
  1253. model.removeNodeset(tPath);
  1254. // model.removeNodeset(pPath);
  1255. var iDataCnt = getNodesetCount(sPath);
  1256. var Idx = 1;
  1257. for (var k = 1; k <= iDataCnt; k++){
  1258. vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd");
  1259. if (model.getValue(tPath+"[value='"+ vReqDept + "']" +"/value") == "") {
  1260. model.setValue(cPath+"/value",vReqDept);
  1261. model.setValue(cPath+"/label",model.getValue(sPath+"["+k+"]/reqdeptnm"));
  1262. model.makeNode(tPath+"["+ Idx +"]" );
  1263. model.copyNode(tPath+"["+ Idx +"]", cPath);
  1264. Idx++;
  1265. }
  1266. // alert("model.getValue("+tPath+"[value='"+ vReqDept + "']" +"/label) =="+ model.getValue(tPath+"[value='"+ vReqDept + "']" +"/label"));
  1267. }
  1268. cmb_reqdeptcd.refresh();
  1269. cmb_reqdeptcd.select(0);
  1270. fReqpridCopy(); // 청구 주기Set
  1271. fDeptReqNoQuery(); // 청구부서별 청구번호를 조회한다
  1272. }
  1273. // 청구 주기Set
  1274. function fReqpridCopy(){
  1275. var cPath = "/root/init/CopyData"
  1276. var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1277. var tPath = "/root/init/ReqpridLists/reqpridlist";
  1278. if (model.getValue(cmb_reqdeptcd.attribute("ref")).length== 0 ) {
  1279. messageBox("청구부서를 " ,"C002");
  1280. model.setFocus("cmb_reqdeptcd");
  1281. return;
  1282. }
  1283. var iDataCnt = getNodesetCount(sPath);
  1284. if (iDataCnt < 1) {
  1285. return;
  1286. }
  1287. model.removeNodeset(tPath);
  1288. var Idx = 1;
  1289. var iDataCnt = getNodesetCount(sPath);
  1290. var tReqDept = model.getValue(cmb_reqdeptcd.attribute("ref"));
  1291. for (var k = 1; k <= iDataCnt; k++){
  1292. vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd");
  1293. if (vReqDept == tReqDept) {
  1294. vReqPrid = model.getValue(sPath+"["+k+"]/reqprid");
  1295. vReqPridNm = model.getValue(sPath+"["+k+"]/reqpridnm");
  1296. if ((vReqPridNm != "" ) &&
  1297. (model.getValue(tPath+"[value='"+ vReqPrid + "']" +"/value") == "") ) {
  1298. model.setValue(cPath+"/value",vReqPrid );
  1299. model.setValue(cPath+"/label",vReqPridNm);
  1300. model.makeNode(tPath+"["+ Idx +"]" );
  1301. model.copyNode(tPath+"["+ Idx +"]", cPath);
  1302. Idx++;
  1303. }
  1304. }
  1305. }
  1306. cmb_reqpridflag.refresh();
  1307. cmb_reqpridflag.select(0);
  1308. }
  1309. // 청구승인자 Check
  1310. function fPurcAuthInfo() {
  1311. vPurcAuth = "1";
  1312. ckb_accept.value = "" ;
  1313. var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1314. var iDataCnt = getNodesetCount(sPath);
  1315. if (iDataCnt < 1) {
  1316. return;
  1317. }
  1318. model.removeNodeset(tPath);
  1319. var iDataCnt = getNodesetCount(sPath);
  1320. var tReqDept = model.getValue(cmb_reqdeptcd.attribute("ref" )); // 청구부서
  1321. var tReqprid = model.getValue(cmb_reqpridflag.attribute("ref")); // 청구주기
  1322. for (var k = 1; k <= iDataCnt; k++){
  1323. vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd");
  1324. vReqprid = model.getValue(sPath+"["+k+"]/reqprid" );
  1325. if ((vReqDept == tReqDept) &&
  1326. (vReqprid == tReqprid) ) {
  1327. if (model.getValue(sPath+"["+k+"]/reqaprvflag") == "2") {
  1328. vPurcAuth = "2";
  1329. ckb_accept.value = "Y";
  1330. break;
  1331. }
  1332. }
  1333. }
  1334. }
  1335. // 청구부서별 청구번호를 조회한다
  1336. function fDeptReqNoQuery() {
  1337. submit("TRRSD00408");
  1338. if (getNodesetCount("/root/main/DeptReqnoLists/reqnolist") < 1 ){
  1339. chk_reqnonew.value = "Y";
  1340. } else {
  1341. chk_reqnonew.value = "";
  1342. cmb_reqno.refresh();
  1343. cmb_reqno.select(0);
  1344. }
  1345. }
  1346. // 청구 구분 Check
  1347. function fReqFlagCheck(){
  1348. if(cmb_reqflag.value == 'H'){
  1349. grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = false;
  1350. }else{
  1351. grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = true;
  1352. }
  1353. /* 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다.
  1354. */
  1355. // opt_goodflag.value = rszfGetGoodFlagByReqFlag(opt_instcd.value,cmb_reqflag.value);
  1356. fGoodListKeySet(); // 물품검색 기본 KEY SET
  1357. if (cmb_reqpridflag.value.length == 0 )
  1358. {
  1359. fSetReqAuth();
  1360. btn_search.dispatch("DOMActivate");
  1361. }
  1362. //청구 마지막 일자 조회.
  1363. fLastDaySearch();
  1364. //청구일자 기한체크.
  1365. if(fLastDayCheck())
  1366. {
  1367. messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", "");
  1368. ipt_reqdd.value = ipt_todd.value;
  1369. return;
  1370. }
  1371. }
  1372. // 청구 구분 Check
  1373. function fReqFlagCheck_bak(){
  1374. if(cmb_reqflag.value == 'H'){
  1375. grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = false;
  1376. }else{
  1377. grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = true;
  1378. }
  1379. //청구부서 청구권/승인권 부서 조회.
  1380. rszfReqDeptGetComboList("cmb_reqdeptcd", opt_instcd.value, getUserInfo("userid"), cmb_reqflag.value);
  1381. cmb_reqpridflag.value = '';
  1382. rszfComboReqPridList(cmb_reqpridflag,opt_instcd.value,cmb_reqflag.value);
  1383. cmb_reqpridflag.refresh();
  1384. cmb_reqpridflag.select(0);
  1385. /* 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다.
  1386. */
  1387. opt_goodflag.value = rszfGetGoodFlagByReqFlag(opt_instcd.value,cmb_reqflag.value);
  1388. fGoodListKeySet(); // 물품검색 기본 KEY SET
  1389. if (cmb_reqpridflag.value.length == 0 )
  1390. {
  1391. fSetReqAuth();
  1392. btn_search.dispatch("DOMActivate");
  1393. }
  1394. //청구 마지막 일자 조회.
  1395. fLastDaySearch();
  1396. //청구일자 기한체크.
  1397. if(fLastDayCheck())
  1398. {
  1399. messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", "");
  1400. ipt_reqdd.value = ipt_todd.value;
  1401. return;
  1402. }
  1403. }
  1404. // 청구구분
  1405. var tReqFlagData = "A." // 01 Y 의료소모품
  1406. + "B." // 02 Z 일반소모품
  1407. + "C." // 03 K 의료비품
  1408. + "D." // 04 G 일반비품
  1409. + "E." // 05 P 약품및재료
  1410. + "F." // 06 P 제제약품
  1411. + "G." // 07 E 장비
  1412. + "H." // 08 P 수액
  1413. + "I." // 09 P 조영제
  1414. + "S." // 10 B 수리관리
  1415. + "X." // 11 T 교환물품
  1416. + "Y." // 12 T 청구물품
  1417. + "Z" ; // 13 T 멸균의뢰
  1418. var tReqFlag = tReqFlagData.split(".");
  1419. // 물품구분
  1420. var tGoodFlagData = "Y." // 01 의료소모품
  1421. + "Z." // 02 일반소모품
  1422. + "K." // 03 의료비품
  1423. + "G." // 04 일반비품
  1424. + "P." // 05 약품
  1425. + "P." // 06 약품
  1426. + "P." // 07 약품및재료
  1427. + "P." // 08 약품
  1428. + "P." // 09 약품
  1429. + "B." // 10 수리부품
  1430. + "T." // 11 공급실물품
  1431. + "T." // 12 공급실물품
  1432. + "T" ; // 13 공급실물품
  1433. var tGoodFlag = tGoodFlagData.split(".");
  1434. var tPath = "/root/init/cmb_goodflag";
  1435. var sPath = "/root/init/cmb_goodflagcopy";
  1436. //
  1437. function fReqFagChange(pReqFlag) {
  1438. for (i = 0; i < tReqFlag.length; i++) {
  1439. if (tReqFlag[i] == pReqFlag) {
  1440. cmb_goodflag.value = tGoodFlag[i];
  1441. cmb_goodflag.refresh();
  1442. break;
  1443. }
  1444. }
  1445. // cmb_goodflag.select(0); //청구구분
  1446. }
  1447. /* ------------------------------------------------- */
  1448. /* ------End Of List ------------------------------- */
  1449. /* -------------------------------------------------- */