SMRSD00501.js 85 KB

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