SMRSD00500.js 89 KB

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