SMRSD00403.js 103 KB

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