SMRSD10120.js 129 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748
  1. /* ---------------------------------------------------------------------
  2. SMRSD10120_조영제청구관리(경북대).xrw (SMRSD10120.xrw - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. ---------------------------------------------------------------------- */
  6. var xAuth = !(checkAuth("X"));
  7. var pAuth = !(checkAuth("P"));
  8. var vPurcAuth = "1";
  9. var gExeptionFlag = true;
  10. var gPurcDeptcd = "" ;
  11. var gcount = 0 ; //청구번호 읽기
  12. var gReqNoReadFlag = true; //청구번호 읽기
  13. var cmbworkflagold = "X" ; //작업구분콤보의 예전값을 가지고 있는 변수
  14. /**
  15. * @ver : 2010-10-17
  16. * @desc : 폼 초기화
  17. * @param :
  18. * @return :
  19. * @---------------------------------------------------
  20. */
  21. function fInitialize() {
  22. model.resetInstanceNode("/root/send");
  23. btn_save.disabled = true;
  24. btn_accept.disabled = true;
  25. ckb_accept.attribute("visibility") ="hidden";
  26. misfGridInit(grd_goodreq);
  27. //misfMsterDetailSet(grd_goodreq,null, "TRRSD00411" ,"Y");
  28. model.setValue(opt_instcd.attribute("ref"), getUserInfo("dutplceinstcd"));
  29. model.setValue(opt_instcdnm.attribute("ref"), getUserInfo("dutplceinstnm"));
  30. model.setValue(opt_requser.attribute("ref" ) , getUserInfo("userid"));
  31. model.setValue(opt_requsernm.attribute("ref") , getUserInfo("usernm"));
  32. model.setValue(ipt_reqdd.attribute("ref") , getCurrentDate());
  33. model.setValue(ipt_startdate.attribute("ref") , getCurrentDate());
  34. model.setValue(ipt_enddate.attribute("ref") , getCurrentDate());
  35. if (cmb_workflag.length> 0) cmb_workflag.select(0); // 작업구분
  36. grd_goodlist.fixedcellcheckbox(0,grd_goodlist.colRef("chk"),false) = true;
  37. model.setValue("/root/send/reqpsn/instcd", model.getValue(opt_instcd.attribute("ref")) );
  38. model.setValue("/root/send/reqpsn/emplno", model.getValue(opt_requser.attribute("ref")));
  39. submit("TRRSD00407"); //청구권한 주기 조회
  40. misfComboComCdList("R0025" ,cmb_goodflag, "N"); //물품구분
  41. misfComboComCdList("030M0003" ,cmb_mngtcls,"Y"); //관리분류(약품만)
  42. copyNodesetType("/root/tmp/common/goodflaglist","/root/init/cmb_goodflag/comcodelist","replace");
  43. addComboItem( "sel_goodflag", "전체", "", "above" );
  44. model.setValue("/root/send/goodreq/goodflag",model.getValue("/root/tmp/common/goodflaglist/cdid[1]"));
  45. model.setValue("/root/send/goodreq/goodflag","PH");
  46. model.setValue("/root/init/goodflag" ,"PH");
  47. // rszfLMSComboList(model.getValue(cmb_goodflag.attribute("ref")), "", "", "ipt_lrgcd", "", "L","Y");
  48. model.setValue("/root/send/goodlist/purcdeptflag" , "X"); //구매부서구분 : P
  49. fReqdeptCopy();
  50. gReqNoReadFlag = false; //청구번호 읽기
  51. fDeptReqNoQuery();
  52. model.refresh();
  53. }
  54. function fInitialize_new() {
  55. // model.resetInstanceNode("/root/send");
  56. // btn_save.disabled = true;
  57. // btn_accept.disabled = true;
  58. // ckb_accept.attribute("visibility") ="hidden";
  59. misfGridInit(grd_goodreq);
  60. //misfMsterDetailSet(grd_goodreq,null, "TRRSD00411" ,"Y");
  61. model.setValue(opt_instcd.attribute("ref"), getUserInfo("dutplceinstcd"));
  62. model.setValue(opt_instcdnm.attribute("ref"), getUserInfo("dutplceinstnm"));
  63. model.setValue(opt_requser.attribute("ref" ) , getUserInfo("userid"));
  64. model.setValue(opt_requsernm.attribute("ref") , getUserInfo("usernm"));
  65. model.setValue(ipt_reqdd.attribute("ref") , getCurrentDate());
  66. model.setValue(ipt_startdate.attribute("ref") , getCurrentDate());
  67. model.setValue(ipt_enddate.attribute("ref") , getCurrentDate());
  68. if (cmb_workflag.length> 0) cmb_workflag.select(0); // 작업구분
  69. // grd_goodlist.fixedcellcheckbox(0,grd_goodlist.colRef("chk"),false) = true;
  70. model.setValue("/root/send/reqpsn/instcd", model.getValue(opt_instcd.attribute("ref")) );
  71. model.setValue("/root/send/reqpsn/emplno", model.getValue(opt_requser.attribute("ref")));
  72. submit("TRRSD00407"); //청구권한 주기 조회
  73. misfComboComCdList("R0025" ,cmb_goodflag, "N"); //물품구분
  74. misfComboComCdList("030M0003" ,cmb_mngtcls,"Y"); //관리분류(약품만)
  75. copyNodesetType("/root/tmp/common/goodflaglist","/root/init/cmb_goodflag/comcodelist","replace");
  76. addComboItem( "sel_goodflag", "전체", "", "above" );
  77. model.setValue("/root/send/goodreq/goodflag",model.getValue("/root/tmp/common/goodflaglist/cdid[5]"));
  78. model.setValue("/root/send/goodreq/goodflag","PH");
  79. model.setValue("/root/init/goodflag" ,"PH");
  80. // rszfLMSComboList(model.getValue(cmb_goodflag.attribute("ref")), "", "", "ipt_lrgcd", "", "L","Y");
  81. model.setValue("/root/send/goodlist/purcdeptflag" , "X"); //구매부서구분 : P
  82. fReqdeptCopy_new();
  83. gReqNoReadFlag = false; //청구번호 읽기
  84. fDeptReqNoQuery();
  85. model.refresh();
  86. }
  87. /**
  88. * @ver : 2010-10-17
  89. * @desc : 권한체크(청구주기가 일청구이면 권한체크하지 않는다. )
  90. * @param :
  91. * @return :
  92. * @---------------------------------------------------
  93. */
  94. function fSetReqAuth() {
  95. // btn 기본처리
  96. btn_excel.disabled = true;
  97. // btn_reqset.disabled = true;
  98. btn_insert.disabled = true;
  99. btn_delete.disabled = true;
  100. btn_choice.disabled = true;
  101. btn_accept.disabled = true;
  102. btn_save.disabled = true;
  103. model.setValue(ckb_accept.attribute("ref"), "N");
  104. ckb_accept.attribute("visibility") ="hidden" ;
  105. if(model.getValue(opt_instcd.attribute("ref") ).length==0) return;
  106. //if(model.getValue(cmb_reqflag.attribute("ref") ).length==0) return;
  107. if(model.getValue(cmb_reqdeptcd.attribute("ref") ).length==0) return;
  108. if(model.getValue(cmb_reqpridflag.attribute("ref")).length==0) return;
  109. // -----------------------------------------------
  110. // 청구주기가 일청구이면 권한체크하지 않는다.
  111. // -----------------------------------------------
  112. // if ((model.getValue(cmb_reqpridflag.attribute("ref")) == "1" ) &&
  113. // (model.getValue(opt_instcd.attribute("ref") ) == "012") ) {
  114. // -----------------------------------------------
  115. if ((model.getValue(cmb_reqpridflag.attribute("ref")) == "1") && gExeptionFlag ) {
  116. // -----------------------------------------------
  117. // rszfGetPurcReqFnlDeptcd(model.getValue(opt_instcd.attribute("ref")), model.getValue(cmb_reqflag.attribute("ref")) , model.getValue(cmb_reqdeptcd.attribute("ref")));
  118. // -----------------------------------------------
  119. btn_save.disabled = false;
  120. btn_accept.disabled = false;
  121. model.setValue(ckb_accept.attribute("ref"), "Y");
  122. ckb_accept.attribute("visibility") = "visible" ;
  123. btn_excel.disabled = false;
  124. // btn_reqset.disabled = false;
  125. btn_insert.disabled = false;
  126. btn_delete.disabled = false;
  127. btn_choice.disabled = false;
  128. } else {
  129. fPurcAuthInfo(); // 청구승인자 Check
  130. if (cmb_reqpridflag.value == "4") { // 월청구
  131. if (fLastDayCheck_2() ) {
  132. btn_save.disabled = true;
  133. } else {
  134. btn_save.disabled = false;
  135. }
  136. } else {
  137. btn_save.disabled = false;
  138. }
  139. btn_excel.disabled = false;
  140. // btn_reqset.disabled = false;
  141. btn_insert.disabled = false;
  142. btn_delete.disabled = false;
  143. btn_choice.disabled = false;
  144. // if (vPurcAuth == "2") { //1:청구자, 2:승인자
  145. // btn_accept.disabled = false;
  146. // model.setValue(ckb_accept.attribute("ref"), "Y");
  147. // ckb_accept.attribute("visibility") = "visible" ;
  148. // }
  149. }
  150. if (model.getValue("/root/send/goodlist/purcdeptflag") == "P") { //구매부서구분 : P
  151. btn_accept.disabled = false;
  152. model.setValue(ckb_accept.attribute("ref"), "Y");
  153. ckb_accept.attribute("visibility") = "visible" ;
  154. }
  155. // 로그인자의 부서와 취합부서정보가 같으면 청구부서를 open한다.
  156. // if (model.getValue(cmb_reqdeptcd.attribute("ref")) == model.getValue(opt_reqfinaldept.attribute("ref"))) {
  157. // cmb_reqdeptcd.disabled=false;
  158. // }
  159. // fDeptReqNoQuery(); // 청구부서별 청구번호를 조회한다
  160. model.refresh();
  161. }
  162. /**
  163. * @ver : 2017-08-25
  164. * @desc : 청구부서 Set
  165. * @param :
  166. * @return :
  167. * @---------------------------------------------------
  168. */
  169. function fReqdeptCopy_new(){
  170. var cPath = "/root/init/CopyData"
  171. var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  172. var tPath = "/root/init/ReqDeptLists/reqdeptlist";
  173. var iDataCnt = getNodesetCount(sPath);
  174. if (iDataCnt < 1) {
  175. return;
  176. }
  177. model.removeNodeset(tPath);
  178. var iDataCnt = getNodesetCount(sPath);
  179. var Idx = 1;
  180. // -----------------------------------------------------------------------------------------------
  181. // 청구부서를 세션의 부서와 비교해서 cmb_reqdeptcd.select()를
  182. // 해당부서와 동일하게 해서 보여지도록 한다. 부서가 없을 경우 0번째 부서가 콤보에 보여짐
  183. // 사용자의 세션부서가 청구부서의 젤 상단에 위치하도록 노드셋 데이터 수정 하는 부분
  184. // -----------------------------------------------------------------------------------------------
  185. var vReqDept = model.getValue("/root/send/jotridept/sectcd" );
  186. var vReqDeptNm = model.getValue("/root/send/jotridept/sectcdnm" );
  187. model.setValue(cPath+"/value",vReqDept);
  188. model.setValue(cPath+"/label",vReqDeptNm);
  189. // alert(" copy; "+vReqDept) ;
  190. model.makeNode(tPath+"["+ Idx +"]" );
  191. model.copyNode(tPath+"["+ Idx +"]", cPath);
  192. // 청구부서 Set
  193. /*for (var k = 1; k <= iDataCnt; k++){
  194. // vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd");
  195. // vReqDeptNm = model.getValue(sPath+"["+k+"]/reqdeptnm");
  196. if ((vReqDeptNm != "" ) &&
  197. (model.getValue(tPath+"[value='"+ vReqDept + "']" +"/value") == "") ) {
  198. model.setValue(cPath+"/value",vReqDept );
  199. model.setValue(cPath+"/label",vReqDeptNm);
  200. model.makeNode(tPath+"["+ Idx +"]" );
  201. model.copyNode(tPath+"["+ Idx +"]", cPath);
  202. Idx++;
  203. } //end if
  204. } //end for*/
  205. cmb_reqdeptcd.refresh();
  206. cmb_reqdeptcd.select(0);
  207. fReqpridCopy(); // 청구 주기Set
  208. fDeptReqNoQuery(); // 청구부서별 청구번호를 조회한다 fReqpridCopy 안에서 실행 제외 시킴 [20090129 YYJ]
  209. }
  210. /**
  211. * @ver : 2010-10-17
  212. * @desc : 불출부서 청구마지막 일자를 불러온다.청구마감일자 조회
  213. * @param :
  214. * @return :
  215. * @---------------------------------------------------
  216. */
  217. function fLastDaySearch() {
  218. model.setValue("/root/send/lastdatesearch/instcd" , model.getValue(opt_instcd.attribute("ref")) );
  219. model.setValue("/root/send/lastdatesearch/deldeptcd", model.getValue(cmb_reqdeptcd.attribute("ref")) );
  220. // model.setValue("/root/send/lastdatesearch/deldeptcd", opt_reqfinaldept.value );
  221. model.setValue("/root/send/lastdatesearch/reqym" , model.getValue(ipt_reqdd.attribute("ref")).substr(0,6));
  222. submit("TRRSC01701"); // 청구마감일자 조회 purcbaseweb
  223. ipt_todd.refresh();
  224. }
  225. // --------------------------------------------------------------
  226. // 청구일자가 불출부서의 청구마지막 일자안에 있는지 확인,
  227. // --------------------------------------------------------------
  228. function fLastDayCheck() {
  229. var fbool = false;
  230. if (model.getValue(ipt_todd.attribute("ref")) != '') {
  231. if (model.getValue(ipt_reqdd.attribute("ref")) > model.getValue(ipt_todd.attribute("ref")) ) {
  232. fbool = true;
  233. }
  234. }
  235. return fbool;
  236. }
  237. // --------------------------------------------------------------
  238. // 불출부서 청구마지막 일자를 불러온다.청구마감일자 조회
  239. // --------------------------------------------------------------
  240. function fLastDaySearch_2(pDate) {
  241. model.setValue("/root/send/lastdatesearch/instcd" , model.getValue(opt_instcd.attribute("ref")) );
  242. model.setValue("/root/send/lastdatesearch/deldeptcd", gPurcDeptcd );
  243. model.setValue("/root/send/lastdatesearch/reqym" , pDate.substr(0,6));
  244. submit("TRRSC01701"); // 청구마감일자 조회 purcbaseweb
  245. ipt_todd.refresh();
  246. }
  247. // --------------------------------------------------------------
  248. // 청구일자가 불출부서의 청구마지막 일자안에 있는지 확인,
  249. // --------------------------------------------------------------
  250. function fLastDayCheck_2() {
  251. var fbool = false;
  252. if (model.getValue(ipt_todd.attribute("ref")) == '') {
  253. return false;
  254. }
  255. //
  256. if (sel_goodflag.value == "PH") { // 약품
  257. return false;
  258. }
  259. //
  260. // alert(model.getValue(ipt_todd.attribute("ref")) +"=="+ getCurrentDate());
  261. //
  262. if (cmb_reqpridflag.value == "4") { // 월청구
  263. if (model.getValue(ipt_todd.attribute("ref")) < getCurrentDate()) {
  264. alert("청구 마감일이 지났습니다. 구매팀에 문의 하십시요!!");
  265. // messageBox("청구 마감일이 지났습니다. \n 구매팀에 문의 하십시요!!", "");
  266. return true;
  267. }
  268. }
  269. //
  270. // if (cmb_reqpridflag.value == "4") { // 월청구
  271. // if (model.getValue(ipt_todd.attribute("ref")) != '') {
  272. // if (chk_reqnonew.value == "Y" ) {
  273. // if (model.getValue(ipt_reqddnew.attribute("ref")) > model.getValue(ipt_todd.attribute("ref")) ) {
  274. // return true;
  275. //
  276. // }
  277. // } else if (model.getValue(ipt_reqdd.attribute("ref")) > model.getValue(ipt_todd.attribute("ref")) ) {
  278. // fbool = true;
  279. //
  280. // }
  281. // }
  282. // }
  283. //
  284. return fbool;
  285. }
  286. /**
  287. * @ver : 2010-10-17
  288. * @desc : 적용버튼 클릭시 Data DefaultSetting
  289. * @param :
  290. * @return :
  291. * @---------------------------------------------------
  292. */
  293. function fDefaultSetting(prow) {
  294. // --------------------------------------------------------
  295. // 일반청구 와 정량보충에 따라서 col을 control한다.
  296. // --------------------------------------------------------
  297. grd_goodreq.colDisabled(grd_goodreq.colRef("stocqty")) = false;
  298. grd_goodreq.colDisabled(grd_goodreq.colRef("reqqty")) = false;
  299. var workflag = model.getValue(cmb_workflag.attribute("ref")) ;
  300. // --------------------------------------------------------
  301. //작업구분이 [수액청구] == [처방청구]일때 행 추가시 작업 구분은 [일반청구]로 지정
  302. // --------------------------------------------------------
  303. /* if (model.getValue(ckb_sapreq.attribute("ref" )) == "Y" ||
  304. model.getValue(cmb_workflag.attribute("ref")) == "6" ) workflag = "1"; */
  305. if (model.getValue(cmb_workflag.attribute("ref")) == "6" ) workflag = "1";
  306. //
  307. // model.setValue(grd_goodreq.nodeset +"[" + prow+ "]/workflag" , workflag );
  308. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/instcd" , model.getValue(opt_instcd.attribute("ref" )));
  309. // --------------------------------------------------------
  310. // 불출구분 없앰... 기본값('1') settting한다
  311. // --------------------------------------------------------
  312. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/deliveflag" , '1' );
  313. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqdd" , model.getValue(ipt_reqdd.attribute("ref" )));
  314. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqpridflag" , model.getValue(cmb_reqpridflag.attribute("ref" )));
  315. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqdeptcd" , model.getValue(cmb_reqdeptcd.attribute("ref" )));
  316. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqpsnid" , model.getValue(opt_requser.attribute("ref" )));
  317. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqseqno" , fGetMaxReqNo() );
  318. model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqno" , model.getValue(cmb_reqno.attribute("ref" )));
  319. //-----------------------------------------------------------------------------------------------------------
  320. // 비승인자가 승인처리시 에러와 함꼐 OLD값을 넣어준다.
  321. // 행추가시 OLD값을 'N'으로 셋팅함으로 에러처리시 제대로 된다. HBH
  322. //-----------------------------------------------------------------------------------------------------------
  323. //model.setValue(grd_goodreq.nodeset +"[" + prow + "]/predeptaprvyn","N");
  324. }
  325. /**
  326. * @ver : 2010-10-17
  327. * @desc : 최종 청구번호 가져오기
  328. * @param :
  329. * @return :
  330. * @---------------------------------------------------
  331. */
  332. function fGetMaxReqNo() {
  333. var vMax = 0;
  334. var maxreqseqno = "0";
  335. for (var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows; currow++) {
  336. if (maxreqseqno < grd_goodreq.valueMatrix(currow, grd_goodreq.colRef("reqseqno"))) {
  337. maxreqseqno = grd_goodreq.valueMatrix(currow, grd_goodreq.colRef("reqseqno"));
  338. }
  339. }
  340. vMax = parseInt(maxreqseqno, 10);
  341. // alert(vMax+"::"+maxreqseqno);
  342. vMax += 1;
  343. maxreqseqno = "" + vMax;
  344. return maxreqseqno.getLeftPad(3,"0");
  345. }
  346. // --------------------------------------------------------------
  347. //
  348. // --------------------------------------------------------------
  349. function fSettingGoodList(pnode, nodename, userqtynm) {
  350. var vTarget = "";
  351. var vSource = "";
  352. var codynode = instance1.selectNodes(pnode + "/*");
  353. var addRow = grd_goodreq.rows - grd_goodreq.fixedRows;
  354. if(model.getValue(grd_goodreq.nodeset + "[" + addRow + "]/goodcd").length > 0) addRow = addRow + 1;
  355. //
  356. for (var j = 1; j <= codynode.length ; j++) {
  357. if((grd_goodreq.rows - grd_goodreq.fixedRows == 0) || (addRow > grd_goodreq.rows - grd_goodreq.fixedRows)) {
  358. misfGridIUD(grd_goodreq,"A" );
  359. addRow = grd_goodreq.rows - grd_goodreq.fixedRows;
  360. fDefaultSetting(addRow);
  361. }
  362. vTarget = grd_goodreq.nodeset + "[" + addRow + "]/";
  363. vSource = pnode +"/" + nodename + "[" + j + "]/";
  364. fSettingGoodData(vTarget, vSource, userqtynm, "deliveunit");
  365. if (model.getValue(vSource + "allsizeyn") == "Y") {
  366. grd_goodreq.cellstyle("background-color" , addRow, 9) = "#FFFF00";
  367. model.setValue(vTarget + "allsizespecid" , model.getValue(vSource + "allsizespecid" ));
  368. model.setValue(vTarget + "allsizespecidnm" , model.getValue(vSource + "allsizespecidnm"));
  369. if (model.getValue(vSource + "allsizespecid").length > 0 ) {
  370. model.setValue(vTarget + "goodspec" , model.getValue(vSource + "allsizespecidnm"));
  371. } else {
  372. model.setValue(vTarget + "allsizespecid" , "-");
  373. }
  374. }
  375. addRow = addRow + 1;
  376. }
  377. //model.removenode(pnode);
  378. model.refresh();
  379. }
  380. /**
  381. * @ver : 2010-10-17
  382. * @desc : 조회시 체크로직
  383. * @param :
  384. * @return :
  385. * @---------------------------------------------------
  386. */
  387. function fCheckRetrieveData(pmsg)
  388. {
  389. if(model.getValue(cmb_workflag.attribute("ref")).length== 0 )
  390. {
  391. if(pmsg == true)
  392. {
  393. messageBox("작업구분을 " ,"C002");
  394. model.setFocus("cmb_workflag");
  395. }
  396. return false;
  397. }
  398. if(model.getValue(opt_instcd.attribute("ref")).length== 0 )
  399. {
  400. if(pmsg == true)
  401. {
  402. messageBox("기관코드를 " ,"C002");
  403. model.setFocus("opt_instcd");
  404. }
  405. return false;
  406. }
  407. // if(model.getValue(cmb_reqflag.attribute("ref")).length== 0 )
  408. // {
  409. // if(pmsg == true)
  410. // {
  411. // messageBox("청구구분을 " ,"C002");
  412. // model.setFocus("cmb_reqflag");
  413. // }
  414. // return false;
  415. // }
  416. if(model.getValue(ipt_reqdd.attribute("ref")).length== 0 )
  417. {
  418. if(pmsg == true)
  419. {
  420. messageBox("청구일자를 " ,"C001");
  421. model.setFocus("ipt_reqdd");
  422. }
  423. return false;
  424. }
  425. if(model.getValue(cmb_reqpridflag.attribute("ref")).length== 0 )
  426. {
  427. if(pmsg == true)
  428. {
  429. messageBox("청구주기를 " ,"C002");
  430. model.setFocus("cmb_reqpridflag");
  431. }
  432. return false;
  433. }
  434. if(model.getValue(cmb_reqdeptcd.attribute("ref")).length== 0 )
  435. {
  436. if(pmsg == true)
  437. {
  438. messageBox("청구부서를 " ,"C002");
  439. model.setFocus("cmb_reqdeptcd");
  440. }
  441. return false;
  442. }
  443. if(model.getValue(opt_requser.attribute("ref")).length== 0 )
  444. {
  445. if(pmsg == true)
  446. {
  447. messageBox("청구자를 " ,"C002");
  448. model.setFocus("opt_requser");
  449. }
  450. return false;
  451. }
  452. return true;
  453. }
  454. //
  455. function fCheckLimitTime(pDate)
  456. {
  457. return true;
  458. }
  459. // 저장전 Data를 Check한다.
  460. function fCheckSaveData()
  461. {
  462. if (model.getValue(cmb_workflag.attribute("ref")).length== 0 ) {
  463. messageBox("작업구분을 " ,"C002");
  464. model.setFocus("cmb_workflag");
  465. return false;
  466. }
  467. //
  468. if (model.getValue(opt_instcd.attribute("ref")).length== 0 ) {
  469. messageBox("기관코드를 " ,"C002");
  470. model.setFocus("opt_instcd");
  471. return false;
  472. }
  473. // if(model.getValue(cmb_reqflag.attribute("ref")).length== 0 )
  474. // {
  475. // messageBox("청구구분을 " ,"C002");
  476. // model.setFocus("cmb_reqflag");
  477. // return false;
  478. // }
  479. if (model.getValue(ipt_reqdd.attribute("ref")).length== 0 ) {
  480. messageBox("청구일자를 " ,"C001");
  481. model.setFocus("ipt_reqdd");
  482. return false;
  483. }
  484. //
  485. if (model.getValue(cmb_reqpridflag.attribute("ref")).length== 0 ) {
  486. messageBox("청구주기를 " ,"C002");
  487. model.setFocus("cmb_reqpridflag");
  488. return false;
  489. }
  490. //
  491. var basevol = 0;
  492. var stocqty = 0;
  493. var reqqty = 0;
  494. var minexch = 0;
  495. grd_goodreq.rebuildStyle();
  496. for(var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows ; currow++)
  497. {
  498. if (grd_goodreq.rowStatus( currow ) != "4" ) { // 저장 후 삭제일 경우 ( 4 ) check 하지 말자.
  499. for(srcrow = currow + 1 ; srcrow < grd_goodreq.rows ; srcrow++) {
  500. if (grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")) == grd_goodreq.valueMatrix(srcrow , grd_goodreq.colRef("goodcd")) &&
  501. grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("allsizeyn")) == "N" &&
  502. grd_goodreq.rowStatus( srcrow ) != "4" )
  503. {
  504. messageBox("동일 물품코드가1 [" + currow + "," +srcrow + "->" + grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")) + "] 존재하여 저장 " ,"E001");
  505. grd_goodreq.rowStyle(currow, "data", "background-color") = "#ffff99";
  506. grd_goodreq.rowStyle(srcrow, "data", "background-color") = "#ffff99";
  507. grd_goodreq.row = currow ;
  508. btn_scroll.dispatch("DOMActivate");
  509. return false;
  510. }
  511. else if(grd_goodreq.valueMatrix(currow ,grd_goodreq.colRef("goodcd" )) == grd_goodreq.valueMatrix(srcrow , grd_goodreq.colRef("goodcd" )) &&
  512. grd_goodreq.valueMatrix(currow ,grd_goodreq.colRef("allsizespecid")) == grd_goodreq.valueMatrix(srcrow , grd_goodreq.colRef("allsizespecid")) &&
  513. grd_goodreq.rowStatus( srcrow ) != "4" )
  514. {
  515. messageBox("동일 물품코드가 (ALL SIZE) [" + currow + "," +srcrow + "->" + grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")) + "] 존재하여 저장 " ,"E001");
  516. grd_goodreq.rowStyle(currow, "data", "background-color") = "#ffff99";
  517. grd_goodreq.rowStyle(srcrow, "data", "background-color") = "#ffff99";
  518. grd_goodreq.row = currow ;
  519. btn_scroll.dispatch("DOMActivate");
  520. return false;
  521. }
  522. }
  523. grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("allsizespecid")) = "-";
  524. model.makeValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvyn" ,"N");
  525. model.makeValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvdd","" );
  526. /*if (model.getValue(grd_goodreq.nodeset + "[" + currow + "]/aprvyn") != "Y") {
  527. if (model.getValue(ckb_accept.attribute("ref")) == "Y") {
  528. if (model.getValue(grd_goodreq.nodeset + "[" + currow + "deptaprvyn") != "Y") {
  529. if (gPurcDeptcd == getUserInfo("dutplcecd") ){
  530. model.setValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvyn" ,"Y");
  531. model.setValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvdd" ,getCurrentDate());
  532. } else {
  533. if (model.getValue(grd_goodreq.nodeset + "[" + currow + "]/reqauth") == "2") {
  534. model.setValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvyn" ,"Y");
  535. model.setValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvdd" ,getCurrentDate());
  536. } else {
  537. model.makeValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvyn" ,"N");
  538. model.makeValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvdd","" );
  539. }
  540. }
  541. }
  542. }
  543. }*/
  544. }
  545. } // end for
  546. /* 청구 번호가 없는 경우 즉 신규인 상황에서 신규체크를 하지 않았을 경우
  547. * 임의로 신규 체크 여부를 지정한다. [20081126] YYJ
  548. */
  549. if (model.getValue(cmb_reqno.attribute("ref")).length== 0 )
  550. {
  551. model.setValue(chk_reqnonew.attribute("ref"),'Y');
  552. chk_reqnonew.refresh();
  553. }
  554. return true;
  555. }
  556. //
  557. function fSetControlDisabled(pDisabled) {
  558. cmb_reqno.disabled = pDisabled;
  559. }
  560. //
  561. function fAfterRetr() {
  562. if (model.getValue("/root/main/list/goodreq/goodmaxreqno/reqfix") == "Y") {
  563. fSetControlDisabled("true");
  564. }
  565. else {
  566. fSetControlDisabled("false");
  567. }
  568. // model.setValue(cmb_reqno.attribute("ref"),model.getValue("/root/main/list/goodreq/goodmaxreqno/reqno"));
  569. model.refresh();
  570. }
  571. // --------------------------------------------------
  572. //
  573. // --------------------------------------------------
  574. function fRetrByReqNo() {
  575. if(fCheckRetrieveData(false) == false)return;
  576. model.removenode("/root/main/tmplist");
  577. model.makeNode("/root/main/tmplist/goodreq/goodreqlist");
  578. model.makeNode("/root/main/tmplist/goodreq/goodmaxreqno");
  579. model.copyNode("/root/main/tmplist", "/root/main/list");
  580. model.setValue("/root/send/goodreq/retrmaxreqnoyn","N");
  581. misfMsterDetailRetrieve();
  582. var rtncount = grd_goodreq.rows - grd_goodreq.fixedRows;
  583. if(rtncount == 0)
  584. {
  585. model.copyNode("/root/main/list","/root/main/tmplist");
  586. }
  587. return rtncount;
  588. }
  589. // --------------------------------------------------
  590. //
  591. // --------------------------------------------------
  592. function fSetReqNo(pReqControl,pAdd)
  593. {
  594. if(pAdd == "Y")
  595. {
  596. var reqno = model.getValue(cmb_reqno.attribute("ref"));
  597. reqno = parseInt(reqno) + 1;
  598. reqno = "" + reqno;
  599. reqno = reqno.getLeftPad(4,"0");
  600. }
  601. else
  602. {
  603. var reqno = model.getValue(cmb_reqno.attribute("ref"));
  604. reqno = parseInt(reqno) - 1;
  605. if(reqno == 0)reqno = 1;
  606. reqno = "" + reqno;
  607. reqno = reqno.getLeftPad(4,"0");
  608. }
  609. model.setValue(pReqControl.attribute("ref"), reqno);
  610. model.refresh();
  611. }
  612. // --------------------------------------------------
  613. // 승인전체/접수전체취소
  614. // --------------------------------------------------
  615. function fSettingReqAprv() {
  616. for (var liRow = grd_goodreq.fixedRows ; liRow < grd_goodreq.rows ; liRow++)
  617. {
  618. //----------------------------------------------------------------------------
  619. // 발주승인건 제외
  620. //----------------------------------------------------------------------------
  621. if (model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/aprvyn") != "Y") {
  622. if ((gPurcDeptcd == getUserInfo("dutplcecd") ) ||
  623. (model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/reqauth") == "2")) {
  624. if (model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvyn") == "Y") {
  625. model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvyn","N");
  626. model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvdd","" );
  627. if (grd_goodreq.rowStatus(liRow) == "0") grd_goodreq.rowStatus(liRow) = "2";
  628. } else {
  629. model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvyn" ,"Y");
  630. model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvdd" ,getCurrentDate());
  631. if (grd_goodreq.rowStatus(liRow) == "0") grd_goodreq.rowStatus(liRow) = "2";
  632. }
  633. }
  634. }
  635. }
  636. //
  637. model.refresh();
  638. }
  639. // --------------------------------------------------
  640. // 승인/미승인 처리
  641. // --------------------------------------------------
  642. function fSaveReqAprv()
  643. {
  644. model.removenode("/root/send/reqaprvlist");
  645. model.makeNode("/root/send/reqaprvlist" );
  646. model.setValue("/root/send/reqaprvlist" ,grd_goodreq.getUpdateData());
  647. submit("TXRSD07002");
  648. if (model.getValue(gvErrorMsgPath + "/type") != "error") misfMsterDetailRetrieve();
  649. }
  650. // --------------------------------------------------
  651. // 권한여부에 따른 승인체크 설정.
  652. // --------------------------------------------------
  653. function fGrantsCheck()
  654. {
  655. if (vPurcAuth == "2" || model.getValue(cmb_reqpridflag.attribute("ref")) =="1") {
  656. misfSetReadOnlyCol(grd_goodreq, "deptaprvyn", false);
  657. }else{
  658. misfSetReadOnlyCol(grd_goodreq, "deptaprvyn", true);
  659. }
  660. }
  661. // --------------------------------------------------
  662. // 물품청구 버튼 Click 처리하는 함수
  663. // --------------------------------------------------
  664. function fGoodreqButtonClick() {
  665. // grp_allsize.attribute("visibility") ="hidden" ;
  666. if (grd_goodreq.col == grd_goodreq.colRef("goodcd") &&
  667. grd_goodreq.rowStatus(grd_goodreq.row) == "1" ) { //구성물품코드를 눌렀을 경우
  668. fViewToggle(2); // 1 :늘리기, 2 : 줄이기
  669. //cmb_reqflag.select(0);
  670. bbt_good.selected = "true";
  671. //model.toggle("gd_find");
  672. // fReqFagChange(model.getValue(cmb_reqflag.attribute("ref")));
  673. fGoodListReady(grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.col),""); // 물품찾기 처리하는 함수
  674. }else if (grd_goodreq.col == grd_goodreq.colRef("goodspec") && grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("allsizeyn")) == "Y" ){
  675. fAllSizeRead(grd_goodreq.row ,grd_goodreq.col, event.clientY);
  676. }
  677. }
  678. // --------------------------------------------------
  679. // 물품청구 내용이 바뀌었을때 처리하는 함수
  680. // --------------------------------------------------
  681. function fGoodreqOnChange() {
  682. // -------------------------------------------------------------------------------------
  683. // basevol = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("basevol"));
  684. // stocqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("stocqty"));
  685. //
  686. // reqqty = basevol - stocqty;
  687. // grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty")) = reqqty;
  688. // vMax = parseInt(maxreqseqno, 10);
  689. // reqqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty"));
  690. // -------------------------------------------------------------------------------------
  691. if (grd_goodreq.col == grd_goodreq.colRef("reqqty") ) {
  692. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/acptflag") == "Y")
  693. {
  694. messageBox("구매접수된 내역은 수정","E001");
  695. return;
  696. }
  697. if (model.getValue(cmb_reqpridflag.attribute("ref")) !="1")
  698. {
  699. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" ) == "1" &&
  700. model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/predeptaprvyn") == "Y" )
  701. {
  702. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  703. messageBox("청구승인되었으므로 청구량을 수정" ,"E001");
  704. return;
  705. }
  706. }
  707. /* // 2010.08.23 청구량만 넣고 안전재고,현재고 hidden
  708. basevol = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("basevol"));
  709. stocqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("stocqty"));
  710. reqqty = basevol - stocqty;
  711. grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty")) =reqqty;
  712. */
  713. // -------------------------------------------------------------------------------------
  714. // vMax = parseInt(maxreqseqno, 10);
  715. // reqqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty"));
  716. // -------------------------------------------------------------------------------------
  717. minexch = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("minexch"));
  718. // -------------------------------------------------------------------------------------
  719. // [20090409 YYJ] 최소 청구량 => 최소 처방량으로 변경 20090409 16:50 이혜숙 차장님 요청사항
  720. // 기존 청구시점에서 청구시 수량에 대한 규제를 위해 설정 되었던 항목을
  721. // 구매팀에서 물품에 대한 참고 치로 사용을 한다 함. ( EDI와의 환산 수량의 의미 ).. 최소 처방량에 대한 단위는 관리 하지 않는다 함
  722. // -------------------------------------------------------------------------------------
  723. // if(minexch > 0 && (reqqty%minexch != 0))
  724. // {
  725. // messageBox((grd_goodreq.row )+ "번째 물품은 최소청구량["+ minexch + "] 에 맞춰서" , "C001");
  726. // grd_goodreq.row = grd_goodreq.row;
  727. // grd_goodreq.col= grd_goodreq.colRef("reqqty");
  728. // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty","");
  729. // grd_goodreq.editCell();
  730. // return;
  731. // }
  732. // -------------------------------------------------------------------------------------
  733. }
  734. // -----------------------------------------------------------------------------------
  735. // 청구수량을 정량보충으로 변경함. ( 재고/ 기준량을 입력한다) .2007.08.
  736. // -----------------------------------------------------------------------------------
  737. else if (grd_goodreq.col == grd_goodreq.colRef("stocqty") || grd_goodreq.col == grd_goodreq.colRef("basevol") )
  738. {//재고량조절할경우
  739. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/acptflag") == "Y")
  740. {
  741. messageBox("구매접수된 내역은 수정","E001");
  742. return;
  743. }
  744. if(model.getValue(cmb_reqpridflag.attribute("ref")) !="1")
  745. {
  746. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" ) == "1" &&
  747. model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/predeptaprvyn") == "Y" )
  748. {
  749. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  750. messageBox("청구승인되었으므로 재고량을 수정" ,"E001");
  751. return;
  752. }
  753. }
  754. basevol = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("basevol"));
  755. stocqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("stocqty"));
  756. reqqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty" ));
  757. minexch = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("minexch"));
  758. calc_reqqty = basevol - stocqty;
  759. // -----------------------------------------------------------------------------------
  760. // if ( calc_reqqty < minexch ) calc_reqqty = minexch;
  761. // if ( calc_reqqty < minexch ) calc_reqqty = 0;
  762. // -----------------------------------------------------------------------------------
  763. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqqty",calc_reqqty);
  764. }
  765. /*
  766. else if(grd_goodreq.col == grd_goodreq.colRef("goodcd") && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodcd")).length> 0)
  767. {
  768. model.removenode("/root/copynode");
  769. model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  770. model.makeNode("/root/copynode");
  771. // -----------------------------------------------------------------------------------
  772. // 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+ "]/goodflag") + "," + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/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");
  773. // model.refresh();
  774. // -----------------------------------------------------------------------------------
  775. // 2010.02.18 CHR
  776. rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,instcd,goodflag,goodcd,goodnm,indexgb,indexnm,reqflag,reqdeptcd,reqprid"
  777. ,"goodcd," + model.getValue(opt_instcd.attribute("ref")) + ","
  778. + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodflag") + ","
  779. + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" ) + ",,,,"
  780. + model.getValue(cmb_reqflag.attribute("ref" )) + ","
  781. + model.getValue(cmb_reqdeptcd.attribute("ref" )) + ","
  782. + model.getValue(cmb_reqpridflag.attribute("ref")) ,""
  783. , "goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,minexch,goodflag,ddavguseqty,reqflag,allsizeyn,delivedeptcd,setunit,constunit"
  784. , grd_goodreq,"SPRSD00190"
  785. , "instcd,goodflag,reqflag,reqdeptcd,reqprid","opt_instcd,opt_goodflag,cmb_reqflag,cmb_reqdeptcd,cmb_reqpridflag","Y");
  786. model.refresh();
  787. if (grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length > 0)
  788. {
  789. // -----------------------------------------------------------------------------------
  790. // [20090409 YYJ] 최소 청구량 => 최소 처방량으로 변경 20090409 16:50 이혜숙 차장님 요청사항
  791. // 기존 청구시점에서 청구시 수량에 대한 규제를 위해 설정 되었던 항목을
  792. // 구매팀에서 물품에 대한 참고 치로 사용을 한다 함. ( EDI와의 환산 수량의 의미 ).. 최소 처방량에 대한 단위는 관리 하지 않는다 함
  793. // -----------------------------------------------------------------------------------
  794. // if(model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/minexch") > 0)
  795. // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty",model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/minexch") );
  796. // else model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty","1");
  797. // -----------------------------------------------------------------------------------
  798. // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/basevol",model.getValue("/root/init/main/goodlist/minexch"));
  799. // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqmthdflag",model.getValue("/root/init/main/goodlist/reqmthd"));
  800. // -----------------------------------------------------------------------------------
  801. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqqty","1");
  802. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/basevol","1");
  803. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/requnit",model.getValue("/root/init/main/goodlist/deliveunit"));
  804. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/exchqty",model.getValue("/root/init/main/goodlist/exchqty"));
  805. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqmthdflag","3");
  806. }
  807. model.refresh();
  808. var cur_row = grd_goodreq.row;
  809. var status = grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("m"));
  810. var CSV = model.getValue(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  811. if(CSV.length == 0 && grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length == 0)
  812. {
  813. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" , "");
  814. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" , "");
  815. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodnm" , "");
  816. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodspec" , "");
  817. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodflag" , "");
  818. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodmodel" , "");
  819. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/prodcmpynm" , "");
  820. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/purcunit" , "");
  821. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/basevol" , "");
  822. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/stocqty" , "");
  823. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqqty" , "");
  824. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/requnit" , "");
  825. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/minexch" , "");
  826. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/ddavguseqty" , "");
  827. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/allsizeyn" , "");
  828. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/allsizespecid" , "");
  829. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/exchqty" , "");
  830. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/rgstqty" , "");
  831. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" , "1");
  832. grd_goodreq.col = grd_goodreq.colRef("goodcd");
  833. grd_goodreq.editCell();
  834. }
  835. else if (CSV.length > 0)
  836. {
  837. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/goodcd","");
  838. setCSVToNode("/root/copynode", CSV, "goodreqlist");
  839. fSettingGoodList("/root/copynode", "goodreqlist" , "userqty");
  840. }
  841. }*/
  842. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  843. // 영양팀은 품목명칭에서 값을 입력할수 있다..
  844. // 입력값과 일치건이 1일경우 코드 REPLACE
  845. // 없을경우 FIND
  846. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  847. /*
  848. else if (grd_goodreq.col == grd_goodreq.colRef("goodnm")
  849. && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodnm")).length > 0
  850. && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodcd")).length == 0 )
  851. {
  852. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  853. // validation을 하기 위해 임시 column 을 둔다. HBH
  854. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  855. model.setValue(tmp_goodcd.attribute("ref") ,"%" );
  856. model.setValue(tmp_goodnm.attribute("ref") ,grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodnm")) );
  857. model.removenode("/root/copynode");
  858. model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  859. model.makeNode("/root/copynode");
  860. // 2010.02.18 CHR
  861. rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,instcd,goodflag,goodcd,goodnm,indexgb,indexnm,reqflag,reqdeptcd,reqprid"
  862. ,"goodcd," + model.getValue(opt_instcd.attribute("ref")) + ","
  863. + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodflag") + ","
  864. + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" ) + ",,,,"
  865. + model.getValue(cmb_reqflag.attribute("ref" )) + ","
  866. + model.getValue(cmb_reqdeptcd.attribute("ref" )) + ","
  867. + model.getValue(cmb_reqpridflag.attribute("ref")) ,""
  868. , "goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,minexch,goodflag,ddavguseqty,reqflag,allsizeyn,delivedeptcd,setunit,constunit"
  869. , grd_goodreq,"SPRSD00190"
  870. , "instcd,goodflag,reqflag,reqdeptcd,reqprid","opt_instcd,opt_goodflag,cmb_reqflag,cmb_reqdeptcd,cmb_reqpridflag","Y");
  871. model.refresh();
  872. if(grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodcd")).length > 0)
  873. {
  874. model.removenode("/root/copynode");
  875. model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  876. model.makeNode("/root/copynode");
  877. // 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+ "]/goodflag") + "," + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/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");
  878. model.refresh();
  879. if (grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length> 0)
  880. {
  881. // -----------------------------------------------------------------------------------
  882. //
  883. // [20090409 YYJ] 최소 청구량 => 최소 처방량으로 변경 20090409 16:50 이혜숙 차장님 요청사항
  884. // 기존 청구시점에서 청구시 수량에 대한 규제를 위해 설정 되었던 항목을
  885. // 구매팀에서 물품에 대한 참고 치로 사용을 한다 함. ( EDI와의 환산 수량의 의미 ).. 최소 처방량에 대한 단위는 관리 하지 않는다 함
  886. // -----------------------------------------------------------------------------------
  887. // if(model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/minexch") > 0) model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty",model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/minexch") );
  888. // else model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty","1");
  889. // -----------------------------------------------------------------------------------
  890. // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/basevol",model.getValue("/root/init/main/goodlist/minexch"));
  891. // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqmthdflag",model.getValue("/root/init/main/goodlist/reqmthd"));
  892. // -----------------------------------------------------------------------------------
  893. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty" ,"1")
  894. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/basevol","1");
  895. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/requnit",model.getValue("/root/init/main/goodlist/deliveunit"));
  896. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqmthdflag","3");
  897. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/allsizespecid","YYY");
  898. }
  899. model.refresh();
  900. var cur_row = grd_goodreq.row;
  901. var status = grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("m"));
  902. var CSV = model.getValue(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  903. if(CSV.length == 0 && grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length == 0)
  904. {
  905. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" , "");
  906. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" , "");
  907. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodnm" , "");
  908. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodspec" , "");
  909. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodflag" , "");
  910. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodmodel" , "");
  911. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/prodcmpynm" , "");
  912. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/purcunit" , "");
  913. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/basevol" , "");
  914. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/stocqty" , "");
  915. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqqty" , "");
  916. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/requnit" , "");
  917. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/minexch" , "");
  918. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/ddavguseqty" , "");
  919. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/allsizeyn" , "");
  920. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/allsizespecid" , "");
  921. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/rgstqty" , "");
  922. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" , "1");
  923. grd_goodreq.col = grd_goodreq.colRef("goodcd");
  924. grd_goodreq.editCell();
  925. }
  926. else if (CSV.length > 0)
  927. {
  928. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/goodcd","");
  929. setCSVToNode("/root/copynode", CSV, "goodreqlist");
  930. fSettingGoodList("/root/copynode", "goodreqlist" , "userqty");
  931. }
  932. }
  933. }*/
  934. else if ((grd_goodreq.col == grd_goodreq.colRef("deptaprvyn"))) {
  935. if ((model.getValue(cmb_reqpridflag.attribute("ref")) != "1") &&
  936. (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth")!="2" ) ) {
  937. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/deptaprvyn",model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/predeptaprvyn"));
  938. // insert 가 아니면..
  939. if (grd_goodreq.rowStatus(grd_goodreq.row) != '3') {
  940. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  941. }
  942. messageBox("청구승인권한이 없으므로 수정" ,"E001");
  943. } else if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/aprvyn") == "Y") {
  944. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  945. messageBox("발주승인이 되었으므로 수정" ,"E001");
  946. } else {
  947. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/deptaprvdd" ,getCurrentDate());
  948. }
  949. }
  950. }
  951. // --------------------------------------------------
  952. // 물품청구 내용이 바뀌었을때 처리하는 함수
  953. // --------------------------------------------------
  954. // 2010.12.06 청구포장수량 추가
  955. function fGoodreqOnKeyDown() {
  956. if(event.keyCode == 13)
  957. {
  958. if(grd_goodreq.col == grd_goodreq.colRef("reqqty"))
  959. {
  960. if(grd_goodreq.row < grd_goodreq.rows - grd_goodreq.fixedRows)
  961. {
  962. grd_goodreq.row = grd_goodreq.row + 1;
  963. grd_goodreq.select(grd_goodreq.row, grd_goodreq.colRef("reqqty")) = true;
  964. }
  965. }
  966. /* if(grd_goodreq.col == grd_goodreq.colRef("reqpackqty")) //청구포장수량 추가
  967. {
  968. if(grd_goodreq.row < grd_goodreq.rows - grd_goodreq.fixedRows)
  969. {
  970. grd_goodreq.row = grd_goodreq.row + 1;
  971. grd_goodreq.select(grd_goodreq.row, grd_goodreq.colRef("reqpackqty")) = true;
  972. }
  973. }*/
  974. }
  975. if(event.keyCode == 9)
  976. {
  977. if(event.shiftKey)
  978. {
  979. if(grd_goodreq.colAttribute(grd_goodreq.col + 1, "type").indexOf ("input") > -1)
  980. {
  981. for(curcol = grd_goodreq.col -1 ; curcol > -1 ; curcol--)
  982. {
  983. if(grd_goodreq.colAttribute(curcol, "type").indexOf ("input") > -1)
  984. {
  985. grd_goodreq.col = curcol;
  986. grd_goodreq.editCell();
  987. return;
  988. }
  989. }
  990. }
  991. }
  992. else
  993. {
  994. if(grd_goodreq.colAttribute(grd_goodreq.col, "type").indexOf ("input") == -1)
  995. {
  996. if(grd_goodreq.col - 1 == grd_goodreq.colRef("goodcd") && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.col - 1).length == 0)
  997. {
  998. grd_goodreq.col = grd_goodreq.colRef("goodcd");
  999. grd_goodreq.editCell();
  1000. return;
  1001. }
  1002. for(curcol = grd_goodreq.col ; curcol <grd_goodreq.cols ; curcol++)
  1003. {
  1004. if(grd_goodreq.colAttribute(curcol, "type").indexOf ("input") > -1)
  1005. {
  1006. grd_goodreq.col = curcol;
  1007. grd_goodreq.editCell();
  1008. return;
  1009. }
  1010. }
  1011. }
  1012. }
  1013. }
  1014. }
  1015. // --------------------------------------------------
  1016. // 물품청구 Cell 내용이 바뀌었을때 처리하는 함수
  1017. // --------------------------------------------------
  1018. function fGoodreqOnEnterCell() {
  1019. if((grd_goodreq.col == grd_goodreq.colRef("deptaprvyn")))
  1020. {
  1021. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" ) != "2" &&
  1022. model.getValue(cmb_reqpridflag.attribute("ref")) !="1" )
  1023. {
  1024. model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/deptaprvyn",model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/predeptaprvyn") );
  1025. // insert 가 아니면..
  1026. if ( grd_goodreq.rowStatus(grd_goodreq.row) != '3')
  1027. {
  1028. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  1029. }
  1030. messageBox("청구승인권한이 없으므로 수정" ,"E001");
  1031. }
  1032. else
  1033. {
  1034. if(model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/aprvyn") == "Y")
  1035. {
  1036. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  1037. messageBox("발주승인이 되었으므로 수정" ,"E001");
  1038. }
  1039. }
  1040. }
  1041. else if(grd_goodreq.col == grd_goodreq.colRef("stocqty"))
  1042. // else if(grd_goodreq.col == grd_goodreq.colRef("reqqty"))
  1043. {
  1044. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/acptflag") == "Y")
  1045. {
  1046. messageBox("구매접수된 내역은 수정","E001");
  1047. return;
  1048. }
  1049. if (model.getValue(cmb_reqpridflag.attribute("ref")) !="1")
  1050. {
  1051. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" ) == "1" &&
  1052. model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/predeptaprvyn") == "Y")
  1053. {
  1054. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  1055. messageBox("청구승인되었으므로 재고량을 수정" ,"E001");
  1056. return;
  1057. }
  1058. }
  1059. }
  1060. else if(grd_goodreq.col == grd_goodreq.colRef("reqqty"))
  1061. {
  1062. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/acptflag") == "Y")
  1063. {
  1064. messageBox("구매접수된 내역은 수정","E001");
  1065. return;
  1066. }
  1067. if (model.getValue(cmb_reqpridflag.attribute("ref")) !="1")
  1068. {
  1069. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" ) == "1" &&
  1070. model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/predeptaprvyn") == "Y")
  1071. {
  1072. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  1073. messageBox("청구승인되었으므로 청구량을 수정" ,"E001");
  1074. return;
  1075. }
  1076. }
  1077. }
  1078. }
  1079. // --------------------------------------------------
  1080. // Switch 속성변경 처리하는 함수
  1081. // --------------------------------------------------
  1082. function fViewToggle(pCls) {
  1083. if (pCls == 1) { // 늘리기
  1084. // 메인 Grup
  1085. grp_main.attribute("left" ) = "1" ;
  1086. grp_main.attribute("width" ) = "1188";
  1087. // grp_main.attribute("top" ) = "90" ;
  1088. // grp_main.attribute("height" ) = "663" ;
  1089. // Data Grid
  1090. // grd_goodreq.attribute("left" ) = "1" ;
  1091. grd_goodreq.attribute("width" ) = "1183";
  1092. // grd_goodreq.attribute("top" ) = "29" ;
  1093. // grd_goodreq.attribute("height") = "628" ;
  1094. lin_main.attribute("x2" ) = "1182" ;
  1095. bbt_large.attribute("visibility") = "hidden" ;
  1096. bbt_right.attribute("visibility") = "hidden" ;
  1097. grp_button.attribute("left" ) = "589" ;
  1098. grp_allsize.attribute("left" ) = "544" ;
  1099. } else { // 줄이기
  1100. // 메인 Grup
  1101. grp_main.attribute("left" ) = "593" ;
  1102. grp_main.attribute("width" ) = "602" ;
  1103. // grp_main.attribute("top" ) = "90" ;
  1104. // grp_main.attribute("height" ) = "663" ;
  1105. // Data Grid
  1106. // grd_goodreq.attribute("left" ) = "3" ;
  1107. grd_goodreq.attribute("width" ) = "597" ;
  1108. // grd_goodreq.attribute("top" ) = "29" ;
  1109. // grd_goodreq.attribute("height") = "628" ;
  1110. // lin_main.attribute("x1" ) = "2";
  1111. lin_main.attribute("x2" ) = "595";
  1112. bbt_large.attribute("visibility") = "visible" ;
  1113. bbt_right.attribute("visibility") = "visible" ;
  1114. grp_button.attribute("left" ) = "3" ;
  1115. grp_allsize.attribute("left" ) = "174" ;
  1116. }
  1117. // swt_search.refresh();
  1118. grp_main.refresh();
  1119. }
  1120. // --------------------------------------------------
  1121. // 물품 찾기 속성변경 처리하는 함수
  1122. // --------------------------------------------------
  1123. function fGoodSearchToggle() {
  1124. if (cpt_cls.attribute("text") =="0") { // 상세접근 조회
  1125. // 메인 Grup
  1126. grd_goodlist.attribute("left" ) = "2" ;
  1127. grd_goodlist.attribute("top" ) = "83" ;
  1128. grd_goodlist.attribute("width" ) = "576";
  1129. grd_goodlist.attribute("height" ) = "574" ;
  1130. btn_dtail.attribute("top" ) = "56" ;
  1131. bbt_apply2.attribute("top" ) = "56" ;
  1132. lin_goodlist.attribute("y1" ) = "78";
  1133. lin_goodlist.attribute("y2" ) = "78";
  1134. grp_dtail.attribute("visibility") ="hidden" ;
  1135. cpt_cls.attribute("text") = "1";
  1136. } else { // 줄이기
  1137. // 메인 Grup
  1138. grd_goodlist.attribute("left" ) = "2" ;
  1139. grd_goodlist.attribute("top" ) = "285" ;
  1140. grd_goodlist.attribute("width" ) = "576";
  1141. grd_goodlist.attribute("height" ) = "372" ;
  1142. btn_dtail.attribute("top" ) = "258" ;
  1143. bbt_apply2.attribute("top" ) = "258" ;
  1144. lin_goodlist.attribute("y1" ) = "280";
  1145. lin_goodlist.attribute("y2" ) = "280";
  1146. grp_dtail.attribute("visibility") ="visible" ;
  1147. cpt_cls.attribute("text") = "0";
  1148. }
  1149. grd_goodlist.refresh();
  1150. }
  1151. // --------------------------------------------------
  1152. // 물품 찾기 속성변경 처리하는 함수
  1153. // --------------------------------------------------
  1154. var vInstcd = "";
  1155. var vReqdeptcd = "";
  1156. function fReqSetList() {
  1157. var vReqSetFlag = "N";
  1158. if (model.getValue(opt_instcd.attribute("ref")) == "") {
  1159. messageBox("기관을 " ,"C002");
  1160. return;
  1161. }
  1162. //
  1163. if (model.getValue(cmb_reqdeptcd.attribute("ref" )) == ""){
  1164. messageBox("청구 부서를 " ,"C002");
  1165. return;
  1166. }
  1167. //
  1168. if (vInstcd != model.getValue(opt_instcd.attribute("ref" ))) vReqSetFlag = "Y";
  1169. if (vReqdeptcd != model.getValue(cmb_reqdeptcd.attribute("ref" ))) vReqSetFlag = "Y";
  1170. if (vReqSetFlag == "N") return;
  1171. vInstcd = model.getValue(opt_instcd.attribute("ref" ));
  1172. vReqdeptcd = model.getValue(cmb_reqdeptcd.attribute("ref" ));
  1173. model.setValue("/root/send/reqmst/instcd" , model.getValue(opt_instcd.attribute("ref" )));
  1174. model.setValue("/root/send/reqmst/reqdeptcd" , model.getValue(cmb_reqdeptcd.attribute("ref" )));
  1175. grd_reqset.fixedcellcheckbox(0, grd_reqset.colRef("select"),false) = true;
  1176. misfGridInit(grd_reqset);
  1177. misfGridInit(grd_setlist);
  1178. submit("TRRSD00211");
  1179. if (grd_setlist.rows < 2) return;
  1180. if (model.getValue(grd_setlist.nodeset + "["+ 1 + "]/reqdeptcd" ) =="") return;
  1181. grd_setlist.row = 1;
  1182. fReqSetRead(grd_setlist.row);
  1183. misfMsterDetailRetrieve();
  1184. }
  1185. // 부서 청구SET 물품
  1186. function fReqSetRead(pRow) {
  1187. model.setValue("/root/send/reqset/instcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/instcd" ));
  1188. model.setValue("/root/send/reqset/reqdeptcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/reqdeptcd" ));
  1189. model.setValue("/root/send/reqset/reqprid" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/reqprid" ));
  1190. model.setValue("/root/send/reqset/goodsetcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/goodsetcd" ));
  1191. model.setValue("/root/send/reqset/goodsetnm" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/goodsetnm" ));
  1192. misfGridInit(grd_reqset);
  1193. submit("TRRSD00210"); // 청구마감일자 조회 purcbaseweb
  1194. }
  1195. /**
  1196. * @ver : 2010-10-17
  1197. * @desc : 선택물품을 적용
  1198. * @param :
  1199. * @return :
  1200. * @---------------------------------------------------
  1201. */
  1202. function fSelectDataApply() {
  1203. var node = instance1.selectNodes("/root/main/list/goodreq/goodreqlist");
  1204. if(node.length == 0){
  1205. model.removeNodeset("/root/main/list/goodreq/goodreqlist");
  1206. model.makeNode("/root/main/list/goodreq/goodreqlist")
  1207. copyNodesetType(grd_goodreq.nodeset,grd_goodlist.nodeset+ "[chk ='true']","replace");
  1208. grd_goodreq.refresh();
  1209. var nodelist = instance1.selectNodes("/root/main/list/goodreq/goodreqlist");
  1210. for (var row = 1 ; row <= nodelist.length; row++) {
  1211. grd_goodreq.rowStatus(row)="1";
  1212. grd_goodreq.cellstyle("background-color",row,grd_goodreq.colRef("reqpackqty"),row,grd_goodreq.colRef("reqpackqty")) = "#ffff99";
  1213. //grd_goodreq.valueMatrix(row,grd_goodreq.colRef("reqseqno")) = fGetMaxReqNo();
  1214. }
  1215. }else{
  1216. var addRow = grd_goodreq.rows - grd_goodreq.fixedRows;
  1217. if(model.getValue(grd_goodreq.nodeset + "[" + addRow + "]/goodcd").length > 0){
  1218. copyNodesetType(grd_goodreq.nodeset,grd_goodlist.nodeset+ "[chk ='true']","after");
  1219. }else{
  1220. copyNodesetType(grd_goodreq.nodeset,grd_goodlist.nodeset+ "[chk ='true']","replace");
  1221. }
  1222. grd_goodreq.refresh();
  1223. var nodelist = instance1.selectNodes("/root/main/list/goodreq/goodreqlist");
  1224. for (var row = 1; row <=nodelist.length; row++) {
  1225. var chk = grd_goodreq.valueMatrix(row,grd_goodreq.colRef("chk"));
  1226. if(chk=="true"){
  1227. grd_goodreq.rowStatus(row)="1";
  1228. //grd_goodreq.valueMatrix(row,grd_goodreq.colRef("reqseqno")) = fGetMaxReqNo();
  1229. grd_goodreq.cellstyle("background-color",row,grd_goodreq.colRef("reqpackqty"),row,grd_goodreq.colRef("reqpackqty")) = "#ffff99";
  1230. }
  1231. }
  1232. }
  1233. /// alert("fSelectDataApply");
  1234. var goodnode = instance1.selectNodes("/root/main/GoodLists/goodlist");
  1235. for (var gRow = 1; gRow <= goodnode.length; gRow++) {
  1236. grd_goodlist.valueMatrix(gRow,grd_goodlist.colRef("chk"))="false";
  1237. }
  1238. model.refresh();
  1239. }
  1240. /**
  1241. * @ver : 2010-10-17
  1242. * @desc : 선택물품을 적용시 같은물품 체크
  1243. * @param :
  1244. * @return :
  1245. * @---------------------------------------------------
  1246. */
  1247. function fSelectDataAppchk(){
  1248. var compNodeList = instance1.selectNodes(grd_goodlist.nodeset+ "[chk ='true']");
  1249. for(var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows ; currow++){
  1250. var CompGoodcd = grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd"));
  1251. var compNodeSet = instance1.selectNodes(grd_goodlist.nodeset+ "[chk ='true']");
  1252. var subNode = "";
  1253. for(var j =0; j < compNodeSet.length;j++){
  1254. subNode = compNodeSet.item(j);
  1255. if(subNode.selectSingleNode("goodcd").text == CompGoodcd){
  1256. messageBox(CompGoodcd+" 이 약품은 이미 적용하신 약품","I009");
  1257. return;
  1258. }
  1259. }
  1260. }
  1261. }
  1262. // --------------------------------------------------
  1263. // All Size 읽어오는 함수
  1264. // --------------------------------------------------
  1265. var vAllSizeCol = 0;
  1266. var vAllSizeRow = 0;
  1267. var vAllSizePath = "/root/main/codelist";
  1268. var vGoodReqPath = "/root/main/list/goodreq/goodreqlist";
  1269. function fAllSizeRead(pRow, pCol, pPos) {
  1270. var iClickY = pPos - 100;
  1271. vAllSizeCol = pCol;
  1272. vAllSizeRow = pRow;
  1273. if (iClickY > 375) iClickY = iClickY - 319;
  1274. grp_allsize.attribute("top") = iClickY+ "px";
  1275. grp_allsize.attribute("visibility") = "visible" ;
  1276. model.setValue("/root/send/allsize/instcd", model.getValue(opt_instcd.attribute("ref" )));
  1277. model.setValue("/root/send/allsize/goodcd", model.getValue(grd_goodreq.nodeset + "[" + pRow + "]/goodcd"));
  1278. submit("TRRSD00281");
  1279. grp_allsize.refresh();
  1280. }
  1281. // All Size 선택
  1282. function fAllSizeSelect() {
  1283. grp_allsize.attribute("visibility") = "hidden" ;
  1284. var vQty = "0";
  1285. var vSize = "";
  1286. var vSpec = "";
  1287. var vModel = "";
  1288. var vCheck = "";
  1289. var vPath = "";
  1290. var vTarget = "";
  1291. var vSource = "";
  1292. var vGoodcd = model.getValue(vGoodReqPath+"["+(vAllSizeRow)+"]/goodcd");
  1293. for (var i = 1; i < grd_codelist.rows; i++) {
  1294. if (model.getValue(vAllSizePath+"["+i+"]/chk") == "true") {
  1295. vSize = model.getValue(vAllSizePath+"["+ i +"]/allsizespecid");
  1296. vSpec = model.getValue(vAllSizePath+"["+ i +"]/goodspec" );
  1297. vModel = model.getValue(vAllSizePath+"["+ i +"]/goodmodel" );
  1298. vQty = model.getValue(vAllSizePath+"["+ i +"]/qty" );
  1299. if (model.getValue(vGoodReqPath +"[goodcd='"+ vGoodcd+"' and allsizespecid='"+vSize+"']" +"/goodcd") == "") {
  1300. if (vCheck == "") {
  1301. vCheck = "Y";
  1302. vTarget = vGoodReqPath+"["+(vAllSizeRow)+"]" ;
  1303. if (grd_goodreq.rowStatus(vAllSizeRow) == 0)
  1304. grd_goodreq.rowStatus(vAllSizeRow) = 2 ;
  1305. } else {
  1306. misfGridIUD(grd_goodreq,"A");
  1307. addRow = grd_goodreq.rows - grd_goodreq.fixedRows;
  1308. fDefaultSetting(addRow);
  1309. vTarget = grd_goodreq.nodeset + "[" + addRow + "]/";
  1310. vSource = vGoodReqPath + "[" + vAllSizeRow + "]/";
  1311. fSettingGoodData(vTarget, vSource, "basevol", "requnit", "S");
  1312. grd_goodreq.cellstyle("background-color" , addRow, 9) = "#FFFF00";
  1313. }
  1314. } else {
  1315. vPath = vGoodReqPath+"[goodcd='"+ vGoodcd+"' and allsizespecid='"+vSize+"']";
  1316. }
  1317. //
  1318. model.setValue(vTarget + "/allsizeyn" , "Y" );
  1319. model.setValue(vTarget + "/allsizespecid" , vSize );
  1320. model.setValue(vTarget + "/goodspec" , vSpec );
  1321. model.setValue(vTarget + "/goodmodel" , vModel);
  1322. if (vQty != "" && vQty != "0") {
  1323. model.setValue(vTarget + "/stocqty" , vQty );
  1324. }
  1325. }
  1326. }
  1327. grd_goodreq.refresh();
  1328. }
  1329. /**
  1330. * @ver : 2010-10-17
  1331. * @desc : 신규 체크박스 클릭시
  1332. * @param :
  1333. * @return :
  1334. * @---------------------------------------------------
  1335. */
  1336. function fNewReqNo() {
  1337. if ( model.getValue(chk_reqnonew.attribute("ref")) == "Y" ){
  1338. if (grd_goodreq.rows < 2) return;
  1339. RetCls = messageBox("현재일자로 신규 생성합니다","Q003");
  1340. if ( RetCls == 6){
  1341. model.setValue(chk_reqnonew.attribute("ref"), "Y"); // reqnonew 인스턴스값이 <> N Y </> 으로 나와서 해당부분에서 처리함(문제발생시 if문 삭제)
  1342. var ReqNo = model.getValue("/root/main/DeptReqnoLists/reqnolist/reqno");
  1343. var reqnodelist = instance1.selectNodes("/root/main/DeptReqnoLists/reqnolist").length;
  1344. var MaxReqno="";
  1345. var comboItemNodeSet ="";
  1346. for(var k =reqnodelist;k > 0;k-- ){
  1347. if(k == reqnodelist){
  1348. MaxReqno = model.getValue("/root/main/DeptReqnoLists/reqnolist["+k+"]/reqno");
  1349. comboItemNodeSet = "/root/main/DeptReqnoLists/reqnolist["+k+"]";
  1350. }
  1351. break;
  1352. }
  1353. var comboValueRef = "reqno";
  1354. var itemNode = instance1.createNode("element", instance1.selectSingleNode(comboItemNodeSet).nodeName, "");
  1355. var valueNode = instance1.createNode("element", comboValueRef, "");
  1356. valueNode.value = "000"+(parseInt(MaxReqno)+1);
  1357. itemNode.appendChild(valueNode);
  1358. var destNode = instance1.selectSingleNode(comboItemNodeSet);
  1359. var pDestNode = destNode.parentNode;
  1360. pDestNode.insertAfter(itemNode, destNode);
  1361. model.setValue("/root/send/goodreq/reqno","000"+(parseInt(MaxReqno)+1));
  1362. cmb_reqno.dispatch("xforms-value-changed");
  1363. }else if ( RetCls == 7){
  1364. model.setValue(chk_reqnonew.attribute("ref"), "");
  1365. chk_reqnonew.refresh();
  1366. return;
  1367. }
  1368. }else{
  1369. fDeptReqNoQuery();
  1370. }
  1371. }
  1372. // 신규 Check 시 작업구분
  1373. function fNewReqNoVisibility() {
  1374. if ( model.getValue(chk_reqnonew.attribute("ref")) == "Y") {
  1375. // cmb_reqno.disabled = true;
  1376. ipt_reqdd.attribute("visibility") = "hidden";
  1377. ipt_reqddnew.attribute("visibility") = "visible" ;
  1378. // cmb_reqno.attribute("visibility") = "hidden" ;
  1379. // cmb_hidden.attribute("visibility") = "visible" ;
  1380. model.setValue(ipt_reqddnew.attribute("ref"), getCurrentDate() ); //신규로 체크되면 무조건 오늘날짜로 셋팅된다
  1381. } else {
  1382. // cmb_reqno.disabled = false;
  1383. ipt_reqddnew.attribute("visibility") = "hidden";
  1384. ipt_reqdd.attribute("visibility") = "visible" ;
  1385. // cmb_reqno.attribute("visibility") = "visible" ;
  1386. // cmb_hidden.attribute("visibility") = "hidden" ;
  1387. }
  1388. model.refresh();
  1389. }
  1390. //
  1391. function fSettingGoodData(pTarget, pSource, pUserqtynm, pRequnit, pCls) {
  1392. var vReqDept = model.getValue(cmb_reqdeptcd.attribute("ref" )); // 청구부서
  1393. var vReqprid = model.getValue(cmb_reqpridflag.attribute("ref")); // 청구주기
  1394. vReqAuth = fPurcAuthInfoRow(vReqDept,vReqprid, model.getValue(pSource + "reqflag")); // 권한 Check
  1395. model.setValue(pTarget + "goodcd" , model.getValue(pSource + "goodcd" ));
  1396. model.setValue(pTarget + "goodnm" , model.getValue(pSource + "goodnm" ));
  1397. model.setValue(pTarget + "goodspec" , model.getValue(pSource + "goodspec" ));
  1398. model.setValue(pTarget + "reqflag" , model.getValue(pSource + "reqflag" ));
  1399. model.setValue(pTarget + "goodflag" , model.getValue(pSource + "goodflag" ));
  1400. model.setValue(pTarget + "goodmodel" , model.getValue(pSource + "goodmodel" ));
  1401. model.setValue(pTarget + "prodcmpynm" , model.getValue(pSource + "prodcmpynm" ));
  1402. model.setValue(pTarget + "purcunit" , model.getValue(pSource + "purcunit" ));
  1403. model.setValue(pTarget + "purcunit" , model.getValue(pSource + "purcunit" ));
  1404. model.setValue(pTarget + "basevol" , model.getValue(pSource + pUserqtynm ));
  1405. model.setValue(pTarget + "stocqty" , 0 );
  1406. model.setValue(pTarget + "reqqty" , model.getValue(pSource + pUserqtynm ));
  1407. model.setValue(pTarget + "reqauth" , vReqAuth );
  1408. // ---------------------------------------------------------------------------------
  1409. // 청구량 계산
  1410. // ---------------------------------------------------------------------------------
  1411. // model.setValue(pTarget + "basevol" , model.getValue(pSource + "minexch" ));
  1412. // basevol = model.getValue(pTarget + "basevol");
  1413. // stocqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("stocqty"));
  1414. // reqqty = basevol - stocqty;
  1415. // grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty")) =reqqty;
  1416. // ---------------------------------------------------------------------------------
  1417. model.setValue(pTarget + "requnit" , model.getValue(pSource + pRequnit ));
  1418. model.setValue(pTarget + "minexch" , model.getValue(pSource + "minexch" ));
  1419. model.setValue(pTarget + "ddavguseqty" , model.getValue(pSource + "ddavguseqty" ));
  1420. model.setValue(pTarget + "exchqty" , model.getValue(pSource + "exchqty" ));
  1421. //model.setValue(pTarget + "reqmthdflag" , model.getValue(pSource + "reqmthd" ));
  1422. model.setValue(pTarget + "reqmthdflag" , "3" );
  1423. model.setValue(pTarget + "allsizeyn" , model.getValue(pSource + "allsizeyn" ));
  1424. model.setValue(pTarget + "reqcollcdeptcd", model.getValue(pSource + "reqcollcdeptcd"));
  1425. model.setValue(pTarget + "setunit" , model.getValue(pSource + "setunit" ));
  1426. model.setValue(pTarget + "reqpackqty" , 0 );
  1427. if(model.getValue(pSource + "goodflag")=="PH"){
  1428. model.setValue(pTarget + "reqpackunit" , model.getValue(pSource + "purcunit" ));
  1429. model.setValue(pTarget + "reqpackperunitqty" , model.getValue(pSource + "exchqty" ));
  1430. }else{
  1431. model.setValue(pTarget + "reqpackperunitqty" , 0);
  1432. }
  1433. if (pCls == "S") {
  1434. model.setValue(pTarget + "delivedeptcd", model.getValue(pSource + "delivedeptcd"));
  1435. }
  1436. else {
  1437. model.setValue(pTarget + "delivedeptcd", model.getValue(pSource + "reqfnldeptcd"));
  1438. }
  1439. //
  1440. if (model.getValue(pTarget + "delivedeptcd") =="") {
  1441. model.setValue(pTarget + "delivedeptcd", gPurcDeptcd);
  1442. }
  1443. //
  1444. model.setValue(pTarget + "rgstqty" , "0" );
  1445. if (vReqAuth == "2") {
  1446. misfSetReadOnlyCol(grd_goodreq, "deptaprvyn", false);
  1447. }else{
  1448. misfSetReadOnlyCol(grd_goodreq, "deptaprvyn", true);
  1449. }
  1450. }
  1451. /**
  1452. * @ver : 2010-10-17
  1453. * @desc : 물품검색 TAB 클릭시
  1454. * @param :
  1455. * @return :
  1456. * @---------------------------------------------------
  1457. */
  1458. function fGoodListReady(pGoodCd, pGoodName) {
  1459. misfGridInit(grd_goodlist);
  1460. //misfComboComCdList('R0025', cmb_goodflag,"Y"); //물품구분
  1461. fGoodListKeySet(); // 물품검색 기본 KEY SET
  1462. // -------------------------------------------------------------------------------------------
  1463. // sql문에 청구부서별 안전재고를 가져와야한다.
  1464. // 프로그램 call시 변경해야한다. 인자값이 없을경우 해당 user값으로 setting한다.
  1465. // -------------------------------------------------------------------------------------------
  1466. if (model.getValue(PURTARGET_NODE + "/reqdeptcd").length == 0 )
  1467. model.setValue("/root/send/goodlist/reqdeptcd", getUserInfo("dutplcecd"));
  1468. else model.setValue("/root/send/goodlist/reqdeptcd", model.getValue(cmb_reqdeptcd.attribute("ref")));
  1469. // --------------------------------------------------------------------------
  1470. // 영양팀 명칭검색으로 이 window 가 open시 기본값 셋팅한다.
  1471. // --------------------------------------------------------------------------
  1472. if (pGoodCd.length > 0) {
  1473. model.setValue("/root/send/goodlist/goodcd", pGoodCd);
  1474. model.refresh();
  1475. }
  1476. else if (pGoodName.length > 0)
  1477. {
  1478. model.setValue("/root/send/goodlist/goodnm", pGoodName);
  1479. model.refresh();
  1480. }
  1481. }
  1482. /**
  1483. * @ver : 2010-10-17
  1484. * @desc : 물품검색 기본 KEY SET
  1485. * @param :
  1486. * @return :
  1487. * @---------------------------------------------------
  1488. */
  1489. function fGoodListKeySet() {
  1490. model.setValue("/root/send/goodlist/lrgcd" , "");
  1491. model.setValue("/root/send/goodlist/mdlcd" , "");
  1492. model.setValue("/root/send/goodlist/instcd" , model.getValue(opt_instcd.attribute("ref" )));
  1493. model.setValue("/root/send/goodlist/reqprid" , model.getValue(cmb_reqpridflag.attribute("ref")));
  1494. model.setValue("/root/send/goodlist/goodflag", model.getValue(cmb_goodflag.attribute("ref" )));
  1495. model.setValue("/root/send/goodlist/instcdnm" , model.getValue(opt_instcdnm.attribute("ref")) );
  1496. model.setValue("/root/send/goodlist/reqpridnm" , cmb_reqpridflag.label);
  1497. }
  1498. /**
  1499. * @ver : 2010-10-17
  1500. * @desc : 물품검색 조회
  1501. * @param :
  1502. * @return :
  1503. * @---------------------------------------------------
  1504. */
  1505. function fGoodListSearch() {
  1506. misfGridInit(grd_goodlist);
  1507. model.setValue( tmpreqdeptcd.attribute("ref") , model.getValue(cmb_reqdeptcd.attribute("ref")) ); //청구부서 물품조회시 추가하는 부분
  1508. if(model.getValue(opt_instcd.attribute("ref")).length == 0 )return;
  1509. if (model.getValue("/root/send/goodnm") != "") {
  1510. model.setValue("/root/send/indexnm","");
  1511. }
  1512. model.setValue("/root/send/goodlist/reqprid" , "");
  1513. model.setValue("/root/send/goodlist/instcd" , model.getValue(opt_instcd.attribute("ref")));
  1514. model.setValue("/root/send/goodlist/goodflag", model.getValue(cmb_goodflag.attribute("ref")));
  1515. //작업구분에 따라서 일반청구인지 처방집계인지 구분
  1516. //청구와 반납일경우는 일반청구 즉 reqcheck Y
  1517. //상비품청구 와 상비품반납일 경우는 처방집계 즉 reqcheck null
  1518. model.setValue("/root/send/goodlist/workflag" , "N");
  1519. if (model.getValue(cmb_workflag.attribute("ref")) ==1 || model.getValue(cmb_workflag.attribute("ref")) ==2 || model.getValue(cmb_workflag.attribute("ref")) ==6 ) {
  1520. model.setValue("/root/send/goodlist/reqcheck" , "Y"); //청구화면임을 서버에 알리는 Key 값 ( -- 1:일반청구 / 2:일반청구반납 / 6:처방청구(작업구분이 처방 청구라도 행 추가 시 작업 구분을 "1" 일반청구로 지정 )
  1521. } else if (model.getValue(cmb_workflag.attribute("ref")) ==3 || model.getValue(cmb_workflag.attribute("ref")) ==4 || model.getValue(cmb_workflag.attribute("ref")) ==5) {
  1522. model.setValue("/root/send/goodlist/reqcheck" , ""); //청구화면임을 서버에 알리는 Key 값
  1523. model.setValue("/root/send/goodlist/workflag" , "A");
  1524. } else {
  1525. model.setValue("/root/send/goodlist/reqcheck" , "Y"); //청구화면임을 서버에 알리는 Key 값
  1526. }
  1527. if(submit("TRRSD10101")){
  1528. model.SetValue("/root/main/GoodLists/goodlist/chk","true");
  1529. model.setValue("/root/main/GoodLists/goodlist/reqpackqty" , model.getValue("/root/main/joyongjeqty"));
  1530. var exchqty = parseFloat(model.getValue("/root/main/GoodLists/goodlist/reqpackqty"))
  1531. var reqpackqty = parseFloat(model.getValue("/root/main/GoodLists/goodlist/reqpackperunitqty"))
  1532. model.setValue("/root/main/GoodLists/goodlist/reqqty" , reqpackqty*exchqty);
  1533. }
  1534. }
  1535. // --------------------------------------------------
  1536. // 물품찾기 처리하는 함수
  1537. // --------------------------------------------------
  1538. function fReqFlagCheck() {
  1539. //청구권/승인권 부서 조회.
  1540. rszfReqDeptGetComboList("cmb_reqdeptcd", model.getValue(opt_instcd.attribute("ref")), getUserInfo("userid"), cmb_reqflag.value);
  1541. //rszfReqDeptGetComboList("cmb_reqdeptcd", model.getValue(opt_instcd.attribute("ref")), '80030647', 'S');
  1542. //청구부서의 순서가 0번째인것을 선택하는데 여기서 부서와 비교해서 cmb_reqdeptcd.select()를
  1543. //해당부서와 동일하게 해서 보여지도록 한다
  1544. model.setValue(cmb_reqpridflag.attribute("ref"), "");
  1545. rszfComboReqPridList(cmb_reqpridflag,model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref")));
  1546. cmb_reqpridflag.refresh();
  1547. cmb_reqpridflag.select(0);
  1548. // ----------------------------------------------------------------------------------------------------
  1549. // 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다.
  1550. // ----------------------------------------------------------------------------------------------------
  1551. model.setValue(opt_goodflag.attribute("ref"), rszfGetGoodFlagByReqFlag(model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref"))));
  1552. fGoodListKeySet(); // 물품검색 기본 KEY SET
  1553. if (model.getValue(cmb_reqpridflag.attribute("ref")).length == 0 ) {
  1554. fSetReqAuth();
  1555. btn_search.dispatch("DOMActivate");
  1556. }
  1557. //청구 마지막 일자 조회.
  1558. fLastDaySearch();
  1559. //청구일자 기한체크.
  1560. if (fLastDayCheck()) {
  1561. messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", "");
  1562. model.setValue(ipt_reqdd.attribute("ref"), model.getValue(ipt_todd.attribute("ref")) );
  1563. return;
  1564. }
  1565. }
  1566. /**
  1567. * @ver : 2010-10-17
  1568. * @desc : 청구부서 Set
  1569. * @param :
  1570. * @return :
  1571. * @---------------------------------------------------
  1572. */
  1573. function fReqdeptCopy(){
  1574. var cPath = "/root/init/CopyData"
  1575. var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1576. var tPath = "/root/init/ReqDeptLists/reqdeptlist";
  1577. var iDataCnt = getNodesetCount(sPath);
  1578. if (iDataCnt < 1) {
  1579. return;
  1580. }
  1581. model.removeNodeset(tPath);
  1582. var iDataCnt = getNodesetCount(sPath);
  1583. var Idx = 1;
  1584. // -----------------------------------------------------------------------------------------------
  1585. // 청구부서를 세션의 부서와 비교해서 cmb_reqdeptcd.select()를
  1586. // 해당부서와 동일하게 해서 보여지도록 한다. 부서가 없을 경우 0번째 부서가 콤보에 보여짐
  1587. // 사용자의 세션부서가 청구부서의 젤 상단에 위치하도록 노드셋 데이터 수정 하는 부분
  1588. // -----------------------------------------------------------------------------------------------
  1589. if (model.getValue(sPath+"[reqdeptcd='"+ getUserInfo("dutplcecd") + "']" +"/reqdeptnm") !="") {
  1590. model.setValue(cPath+"/value",model.getValue(sPath+"[reqdeptcd='"+ getUserInfo("dutplcecd") + "']" +"/reqdeptcd"));
  1591. model.setValue(cPath+"/label",model.getValue(sPath+"[reqdeptcd='"+ getUserInfo("dutplcecd") + "']" +"/reqdeptnm"));
  1592. model.makeNode(tPath+"["+ Idx +"]" );
  1593. model.copyNode(tPath+"["+ Idx +"]", cPath);
  1594. Idx++;
  1595. }
  1596. // 청구부서 Set
  1597. for (var k = 1; k <= iDataCnt; k++){
  1598. vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd");
  1599. vReqDeptNm = model.getValue(sPath+"["+k+"]/reqdeptnm");
  1600. if ((vReqDeptNm != "" ) &&
  1601. (model.getValue(tPath+"[value='"+ vReqDept + "']" +"/value") == "") ) {
  1602. model.setValue(cPath+"/value",vReqDept );
  1603. model.setValue(cPath+"/label",vReqDeptNm);
  1604. model.makeNode(tPath+"["+ Idx +"]" );
  1605. model.copyNode(tPath+"["+ Idx +"]", cPath);
  1606. Idx++;
  1607. } //end if
  1608. } //end for
  1609. cmb_reqdeptcd.refresh();
  1610. cmb_reqdeptcd.select(0);
  1611. fReqpridCopy(); // 청구 주기Set
  1612. // fDeptReqNoQuery(); // 청구부서별 청구번호를 조회한다 fReqpridCopy 안에서 실행 제외 시킴 [20090129 YYJ]
  1613. }
  1614. /**
  1615. * @ver : 2010-10-17
  1616. * @desc : 청구 주기Set
  1617. * @param :
  1618. * @return :
  1619. * @---------------------------------------------------
  1620. */
  1621. function fReqpridCopy(){
  1622. var cPath = "/root/init/CopyData"
  1623. var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1624. var tPath = "/root/init/ReqpridLists/reqpridlist";
  1625. if (model.getValue(cmb_reqdeptcd.attribute("ref")).length== 0 ) {
  1626. messageBox("청구부서를 " ,"C002");
  1627. model.setFocus("cmb_reqdeptcd");
  1628. return;
  1629. }
  1630. var iDataCnt = getNodesetCount(sPath);
  1631. if (iDataCnt < 1) {
  1632. return;
  1633. }
  1634. model.removeNodeset(tPath);
  1635. var Idx = 1;
  1636. var iDataCnt = getNodesetCount(sPath);
  1637. var tReqDept = model.getValue(cmb_reqdeptcd.attribute("ref"));
  1638. for (var k = 1; k <= iDataCnt; k++){
  1639. vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd");
  1640. if (vReqDept == tReqDept) {
  1641. vReqPrid = model.getValue(sPath+"["+k+"]/reqprid");
  1642. vReqPridNm = model.getValue(sPath+"["+k+"]/reqpridnm");
  1643. if ((vReqPridNm != "" ) &&
  1644. (model.getValue(tPath+"[value='"+ vReqPrid + "']" +"/value") == "") ) {
  1645. model.setValue(cPath+"/value",vReqPrid );
  1646. model.setValue(cPath+"/label",vReqPridNm);
  1647. model.makeNode(tPath+"["+ Idx +"]" );
  1648. model.copyNode(tPath+"["+ Idx +"]", cPath);
  1649. Idx++;
  1650. }
  1651. }
  1652. }
  1653. //
  1654. if (model.getValue("/root/send/goodlist/purcdeptflag") == "P") { //구매부서구분 : P
  1655. var codynode = instance1.selectNodes(tPath + "/*");
  1656. if (codynode.length < 1) {
  1657. model.setValue(cPath+"/value","1" );
  1658. model.setValue(cPath+"/label","일");
  1659. model.makeNode(tPath+"[1]" );
  1660. model.copyNode(tPath+"[1]" , cPath);
  1661. model.setValue(cPath+"/value","4" );
  1662. model.setValue(cPath+"/label","월");
  1663. model.makeNode(tPath+"[2]" );
  1664. model.copyNode(tPath+"[2]" , cPath);
  1665. model.setValue(cPath+"/value","2" );
  1666. model.setValue(cPath+"/label","주");
  1667. model.makeNode(tPath+"[3]" );
  1668. model.copyNode(tPath+"[3]" , cPath);
  1669. }
  1670. }
  1671. //
  1672. cmb_reqpridflag.select(0);
  1673. cmb_reqpridflag.refresh();
  1674. }
  1675. // 청구승인자 Check
  1676. function fPurcAuthInfo() {
  1677. vPurcAuth = "1";
  1678. model.setValue(ckb_accept.attribute("ref"), "");
  1679. var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1680. var iDataCnt = getNodesetCount(sPath);
  1681. if (iDataCnt < 1) {
  1682. return;
  1683. }
  1684. model.removeNodeset(tPath);
  1685. var iDataCnt = getNodesetCount(sPath);
  1686. var tReqDept = model.getValue(cmb_reqdeptcd.attribute("ref" )); // 청구부서
  1687. var tReqprid = model.getValue(cmb_reqpridflag.attribute("ref")); // 청구주기
  1688. for (var k = 1; k <= iDataCnt; k++){
  1689. vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd"); // 청구부서
  1690. vReqprid = model.getValue(sPath+"["+k+"]/reqprid" ); // 청구주기
  1691. if ((vReqDept == tReqDept) &&
  1692. (vReqprid == tReqprid) ) {
  1693. if (model.getValue(sPath+"["+k+"]/reqaprvflag") == "2") {
  1694. vPurcAuth = "2";
  1695. model.setValue(ckb_accept.attribute("ref"), "Y");
  1696. break;
  1697. }
  1698. }
  1699. }
  1700. }
  1701. // 청구승인자 Check Row별 Check
  1702. function fPurcAuthInfoRow(pReqDept,pReqprid,pReqFlag) {
  1703. var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1704. var vReqAuth = model.getValue(sPath+ "[reqdeptcd='"+ pReqDept
  1705. + "' and reqprid='" + pReqprid
  1706. + "' and reqflag='" + pReqFlag + "']/reqaprvflag"); // 청구권한
  1707. vReqAuth = (vReqAuth == "") ? "1" : vReqAuth;
  1708. return vReqAuth;
  1709. }
  1710. /**
  1711. * @ver : 2010-10-17
  1712. * @desc : 청구부서별 청구번호를 조회한다
  1713. * @param :
  1714. * @return :
  1715. * @---------------------------------------------------
  1716. */
  1717. function fDeptReqNoQuery() {
  1718. //if (gReqNoReadFlag) return; //청구번호 읽기
  1719. // alert(++gcount);
  1720. if (model.getValue(cmb_reqdeptcd.attribute("ref")) != "" && // 청구부서
  1721. model.getValue(cmb_reqpridflag.attribute("ref")) != "" && // 청구주기
  1722. model.getValue(ipt_reqdd.attribute("ref")) != "" && // 청구일자
  1723. model.getValue(cmb_workflag.attribute("ref")) != "" ) // 작업구분 의 값이 모두 있을 때 청구 번호를 가져온다. [20080129 YYJ]
  1724. {
  1725. submit("TRRSD00408");
  1726. /*
  1727. if (getNodesetCount("/root/main/DeptReqnoLists/reqnolist") < 1 ){
  1728. model.setValue(chk_reqnonew.attribute("ref"), "Y");
  1729. fNewReqNoVisibility();
  1730. } else {
  1731. model.setValue(chk_reqnonew.attribute("ref"), "");
  1732. fNewReqNoVisibility();
  1733. cmb_reqno.refresh();
  1734. cmb_reqno.select(0);
  1735. }*/
  1736. var nodelist = instance1.selectNodes("/root/main/DeptReqnoLists/reqnolist").length;
  1737. if(nodelist < 1){
  1738. model.makeValue("/root/main/DeptReqnoLists/reqnolist/reqno","0001");
  1739. }
  1740. cmb_reqno.refresh();
  1741. cmb_reqno.select(0);
  1742. }
  1743. }
  1744. // 청구 구분 Check
  1745. function fReqFlagCheck(){
  1746. if(model.getValue(cmb_reqflag.attribute("ref")) == 'H'){
  1747. grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = false;
  1748. }else{
  1749. grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = true;
  1750. }
  1751. /* 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다.
  1752. */
  1753. // opt_goodflag.value = rszfGetGoodFlagByReqFlag(opt_instcd.value,cmb_reqflag.value);
  1754. fGoodListKeySet(); // 물품검색 기본 KEY SET
  1755. if (model.getValue(cmb_reqpridflag.attribute("ref")).length == 0 ) {
  1756. fSetReqAuth();
  1757. btn_search.dispatch("DOMActivate");
  1758. }
  1759. //청구 마지막 일자 조회.
  1760. fLastDaySearch();
  1761. //청구일자 기한체크.
  1762. if(fLastDayCheck())
  1763. {
  1764. messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", "");
  1765. model.setValue(ipt_reqdd.attribute("ref"), model.getValue(ipt_todd.attribute("ref")) );
  1766. return;
  1767. }
  1768. }
  1769. // 청구 구분 Check
  1770. function fReqFlagCheck_bak(){
  1771. if(model.getValue(cmb_reqflag.attribute("ref")) == 'H'){
  1772. grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = false;
  1773. }else{
  1774. grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = true;
  1775. }
  1776. //청구부서 청구권/승인권 부서 조회.
  1777. rszfReqDeptGetComboList("cmb_reqdeptcd", model.getValue(opt_instcd.attribute("ref")), getUserInfo("userid"), model.getValue(cmb_reqflag.attribute("ref")));
  1778. model.setValue(cmb_reqpridflag.attribute("ref"), "");
  1779. rszfComboReqPridList(cmb_reqpridflag,model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref")));
  1780. cmb_reqpridflag.refresh();
  1781. cmb_reqpridflag.select(0);
  1782. /* 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다.
  1783. */
  1784. model.setValue(opt_goodflag.attribute("ref") , rszfGetGoodFlagByReqFlag(model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref"))) );
  1785. fGoodListKeySet(); // 물품검색 기본 KEY SET
  1786. if (model.getValue(cmb_reqpridflag.attribute("ref")).length == 0 )
  1787. {
  1788. fSetReqAuth();
  1789. //btn_search.dispatch("DOMActivate");
  1790. }
  1791. //청구 마지막 일자 조회.
  1792. fLastDaySearch();
  1793. //청구일자 기한체크.
  1794. if(fLastDayCheck())
  1795. {
  1796. messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", "");
  1797. model.setValue(ipt_reqdd.attribute("ref"), model.getValue(ipt_todd.attribute("ref")) );
  1798. return;
  1799. }
  1800. }
  1801. // 청구구분
  1802. var tReqFlagData = "A." // 01 Y 의료소모품
  1803. + "B." // 02 Z 일반소모품
  1804. + "C." // 03 K 의료비품
  1805. + "D." // 04 G 일반비품
  1806. + "E." // 05 P 약품및재료
  1807. + "F." // 06 P 제제약품
  1808. + "G." // 07 E 장비
  1809. + "H." // 08 P 수액
  1810. + "I." // 09 P 조영제
  1811. + "S." // 10 B 수리관리
  1812. + "X." // 11 T 교환물품
  1813. + "Y." // 12 T 청구물품
  1814. + "Z" ; // 13 T 멸균의뢰
  1815. var tReqFlag = tReqFlagData.split(".");
  1816. // 물품구분
  1817. // [2010.08.26]AS-IS 코드 TO_BE 코드 전환을 위한 물품구분 변경 (goodflag= P) => (goodflag= PH)
  1818. var tGoodFlagData = "Y." // 01 의료소모품
  1819. + "Z." // 02 일반소모품
  1820. + "U." // 03 의료비품
  1821. + "GE." // 04 일반비품
  1822. + "PH." // 05 약품
  1823. + "PH." // 06 약품
  1824. + "PH." // 07 약품및재료
  1825. + "PH." // 08 약품
  1826. + "PH." // 09 약품
  1827. + "BC." // 10 수리부품
  1828. + "TM." // 11 공급실물품
  1829. + "TM." // 12 공급실물품
  1830. + "TM" ; // 13 공급실물품
  1831. var tGoodFlag = tGoodFlagData.split(".");
  1832. var tPath = "/root/init/cmb_goodflag";
  1833. var sPath = "/root/init/cmb_goodflagcopy";
  1834. //
  1835. function fReqFagChange(pReqFlag) {
  1836. for (i = 0; i < tReqFlag.length; i++) {
  1837. if (tReqFlag[i] == pReqFlag) {
  1838. model.setValue(cmb_goodflag.attribute("ref"), tGoodFlag[i] );
  1839. // alert(tGoodFlag[i]);
  1840. cmb_goodflag.refresh();
  1841. break;
  1842. }
  1843. }
  1844. // cmb_goodflag.select(0); //청구구분
  1845. }
  1846. /**
  1847. * @ver : 2010-10-17
  1848. * @desc : 부서찾기 기능 설정(구매팀일경우에만),2010-10-18 물품구분 약국담당자일 때 약품으로 셋팅
  1849. * @param :
  1850. * @return :
  1851. * @---------------------------------------------------
  1852. */
  1853. function fSetTempDept(goodflag) {
  1854. /*
  1855. if ( gPurcDeptcd == getUserInfo("dutplcecd") ){
  1856. if (cmb_goodflag.length> 0) cmb_goodflag.select(0);
  1857. cpt_dept.attribute("visibility") = "visible";
  1858. ipt_tempdeptcd.attribute("visibility") = "visible";
  1859. ipt_tempdeptnm.attribute("visibility") = "visible";
  1860. btn_tempdeptcd.attribute("visibility") = "visible";
  1861. model.setValue("/root/send/goodlist/purcdeptflag" , "P"); //구매부서구분 : P
  1862. }else {
  1863. if((getUserInfo("dutplcecd")=="3242400000")||(getUserInfo("dutplcecd")=="3240300000")||(getUserInfo("dutplcecd")=="3240400000")
  1864. ||(getUserInfo("dutplcecd")=="3240807000")){
  1865. grd_goodreq.colHidden(grd_goodreq.colRef("exchqty")) = false;
  1866. grd_goodreq.colHidden(grd_goodreq.colRef("reqpackqty")) = false;
  1867. grd_goodreq.colHidden(grd_goodreq.colRef("reqpackunit")) = false;
  1868. grd_goodreq.colHidden(grd_goodreq.colRef("reqqty")) = true;
  1869. grd_goodreq.colHidden(grd_goodreq.colRef("requnit")) = true;
  1870. model.setValue("/root/send/goodreq/goodflag","PH");
  1871. model.setValue("/root/init/goodflag" ,"PH");
  1872. cmb_goodflag.dispatch("xforms-value-changed");
  1873. cap_edicd.attribute("visibility") = "hidden";
  1874. ipt_edicd.attribute("visibility") = "hidden";
  1875. cap_mngtcls.attribute("visibility") = "visible";
  1876. cmb_mngtcls.attribute("visibility") = "visible";
  1877. }else{
  1878. if (cmb_goodflag.length> 0) cmb_goodflag.select(0);
  1879. grd_goodreq.colHidden(grd_goodreq.colRef("exchqty")) = true;
  1880. grd_goodreq.colHidden(grd_goodreq.colRef("reqpackqty")) = true;
  1881. grd_goodreq.colHidden(grd_goodreq.colRef("reqpackunit")) = true;
  1882. grd_goodreq.colHidden(grd_goodreq.colRef("reqqty")) = false;
  1883. grd_goodreq.colHidden(grd_goodreq.colRef("requnit")) = false;
  1884. }
  1885. cpt_dept.attribute("visibility") = "hidden";
  1886. ipt_tempdeptcd.attribute("visibility") = "hidden";
  1887. ipt_tempdeptnm.attribute("visibility") = "hidden";
  1888. btn_tempdeptcd.attribute("visibility") = "hidden";
  1889. model.setValue("/root/send/goodlist/purcdeptflag" , "X"); //구매부서구분 : P
  1890. }*/
  1891. if((getUserInfo("dutplcecd")=="3242400000")||(getUserInfo("dutplcecd")=="3240300000")||(getUserInfo("dutplcecd")=="3240400000")
  1892. ||(getUserInfo("dutplcecd")=="3240807000")||(goodflag=="PH")){
  1893. model.setValue("/root/send/goodreq/goodflag","PH");
  1894. model.setValue("/root/init/goodflag" ,"PH");
  1895. rszfLMSComboList(model.getValue(cmb_goodflag.attribute("ref")), "", "", "ipt_lrgcd", "", "L","Y");
  1896. model.setValue("/root/send/goodlist/purcdeptflag" , "X"); //구매부서구분 : P
  1897. }else{
  1898. //if (cmb_goodflag.length> 0) cmb_goodflag.select(0);
  1899. grd_goodreq.colHidden(grd_goodreq.colRef("exchqty")) = true;
  1900. grd_goodreq.colHidden(grd_goodreq.colRef("reqpackqty")) = true;
  1901. grd_goodreq.colHidden(grd_goodreq.colRef("reqpackunit")) = true;
  1902. grd_goodreq.colHidden(grd_goodreq.colRef("reqqty")) = false;
  1903. grd_goodreq.colHidden(grd_goodreq.colRef("requnit")) = false;
  1904. if (goodflag=="init"){
  1905. model.setValue("/root/init/goodflag" ,model.getValue("/root/init/cmb_goodflag/comcodelist/cdid[1]"));
  1906. cmb_goodflag.refresh();
  1907. model.setValue("/root/send/goodreq/goodflag" ,cmb_goodflag.value);
  1908. rszfLMSComboList(model.getValue(cmb_goodflag.attribute("ref")), "", "", "ipt_lrgcd", "", "L","Y");
  1909. }else{
  1910. model.setValue("/root/send/goodreq/goodflag" ,cmb_goodflag.value);
  1911. model.setValue("/root/init/goodflag" ,cmb_goodflag.value);
  1912. }
  1913. cap_edicd.attribute("visibility") = "visible";
  1914. ipt_edicd.attribute("visibility") = "visible";
  1915. cap_mngtcls.attribute("visibility") = "hidden";
  1916. cmb_mngtcls.attribute("visibility") = "hidden";
  1917. }
  1918. // cpt_dept.attribute("visibility") = "hidden";
  1919. //ipt_tempdeptcd.attribute("visibility") = "hidden";
  1920. // ipt_tempdeptnm.attribute("visibility") = "hidden";
  1921. // btn_tempdeptcd.attribute("visibility") = "hidden";
  1922. model.setValue("/root/send/goodlist/purcdeptflag" , "X"); //구매부서구분 : P
  1923. }
  1924. //조회해온 부서를 청구부서 콤보에 붙이는 함수
  1925. function fAddReqDeptcdCombo() {
  1926. //tempdeptcd에 값을 reqdetpcd(청구부서) 콤보에 값을 부어준다 (makevaluie)
  1927. var cPath = "/root/init/CopyData" //임시카피노드
  1928. var sPath = "/root/tempdept"; //서버에서가져온부서정보노드
  1929. var tPath = "/root/init/ReqDeptLists/reqdeptlist"; //청구부서 콤보노드
  1930. var iDataCnt = getNodesetCount(sPath); //서버에서 가져온 부서정보노드(무조건 1 아님 0)
  1931. if ( iDataCnt < 1)
  1932. {
  1933. return;
  1934. }
  1935. //model.removeNodeset(tPath);
  1936. var ComboDataCnt = parseInt( getNodesetCount(tPath) ) +1 ; //콤보에 노드길이(숫자형으로형변환)
  1937. var vTempDeptCd = model.getValue(sPath+"[1]/tempdeptcd");
  1938. var vTempDeptNm = model.getValue(sPath+"[1]/tempdeptnm");
  1939. if ( vTempDeptCd != "" )
  1940. {
  1941. model.setValue(cPath+"/value" , vTempDeptCd );
  1942. model.setValue(cPath+"/label" , vTempDeptNm );
  1943. model.makeNode(tPath+"["+ComboDataCnt +"]" );
  1944. model.copyNode(tPath + "[" +ComboDataCnt +"]", cPath); //노드에 데이터 부어줌
  1945. cmb_reqdeptcd.refresh();
  1946. cmb_reqdeptcd.select(ComboDataCnt-1);
  1947. }
  1948. cmb_reqdeptcd.refresh();
  1949. }
  1950. function fSapReqSetting (fValue) {
  1951. var vPath = "/root/init/workflag/workflaglist";
  1952. var iDataCnt = parseInt( getNodesetCount(vPath) ); // 작업 구분 하위를 가져옴
  1953. var updtdata = getGridUpdateData(grd_goodreq);
  1954. if ( updtdata != "") {
  1955. var ret = messageBox("그리드에 작업 중인 내용이 있습니다. 수액청구를 변경","Q003");
  1956. if (ret != 6) {
  1957. if( fValue == "Y" )
  1958. ckb_sapreq.value = "N";
  1959. else
  1960. ckb_sapreq.value = "Y";
  1961. ckb_sapreq.refresh();
  1962. return;
  1963. } else {
  1964. misfGridInit(grd_goodreq);
  1965. fSapReqSetting (fValue);
  1966. if (cmb_reqno.value != "")
  1967. btn_search.dispatch("DOMActivate");
  1968. } // if not OK
  1969. }else{
  1970. if( fValue == "Y" || model.getXPathValue(vPath+"[value='6']/value") =="" ) {
  1971. cmb_workflag.disabled="true" ;
  1972. model.makeValue(vPath+"[" +(iDataCnt+1)+ "]/value", "6" ); // 작업구분 처방 청구 추가
  1973. model.makeValue(vPath+"[" +(iDataCnt+1)+ "]/label", "처방청구"); // 작업구분 처방 청구 추가
  1974. model.setValue("/root/send/goodreq/reqflag" , "H" ); // 청구방법 수액
  1975. cmb_workflag.refresh();
  1976. cmb_workflag.select(iDataCnt);
  1977. } else if (fValue != "Y" || model.getXPathValue(vPath+"[value='6']/value") !="") {
  1978. cmb_workflag.disabled="false" ;
  1979. model.removeNodeset(vPath+"["+ model.getXPathValue(vPath+"[value='6']/value") +"]");
  1980. model.setValue("/root/send/goodreq/reqflag","");
  1981. cmb_workflag.select(0);
  1982. }
  1983. } // if updtdata
  1984. }
  1985. /**
  1986. * @ver : 2010-10-17
  1987. * @desc : 조회버튼 Click 처리
  1988. * @param :
  1989. * @return :
  1990. * @---------------------------------------------------
  1991. */
  1992. function fSearchButtonClick(fValue) {
  1993. if(fCheckRetrieveData(false) == false)return;
  1994. //misfGridInit(grd_goodreq);
  1995. if(model.getValue(cmb_reqno.attribute("ref")).length == 0)
  1996. model.setValue(ipt_reqdd.attribute("ref") , getCurrentDate());
  1997. // model.setValue("/root/send/goodreq/retrmaxreqnoyn","Y");
  1998. //if (model.getValue(cmb_reqno.attribute("ref")) == "") return;
  1999. // misfMsterDetailRetrieve();
  2000. if(submit("TRRSD10102")){
  2001. for (var fRow = grd_goodreq.fixedRows; fRow < grd_goodreq.rows ; fRow++ ) {
  2002. grd_goodreq.cellstyle("background-color",fRow,grd_goodreq.colRef("reqpackqty"),fRow,grd_goodreq.colRef("reqpackqty")) = "#ffff99";
  2003. grd_goodreq.cellstyle("background-color",fRow,grd_goodreq.colRef("orgdeliveqty"),fRow,grd_goodreq.colRef("orgdeliveqty")) = "#ccff99"; // 20120918_컬럼추가
  2004. grd_goodreq.cellstyle("background-color",fRow,grd_goodreq.colRef("stocqty"),fRow,grd_goodreq.colRef("stocqty")) = "#ccff99"; // 20120918_컬럼추가
  2005. }
  2006. }
  2007. // 권한여부에 따른 승인체크 설정.
  2008. ///fGrantsCheck();
  2009. /*
  2010. fAfterRetr();
  2011. var vAcctCnt = 0;
  2012. var vReqAuth = "";
  2013. var vReqDept = model.getValue(cmb_reqdeptcd.attribute("ref" )); // 청구부서
  2014. var vReqprid = model.getValue(cmb_reqpridflag.attribute("ref")); // 청구주기
  2015. for (var fRow = grd_goodreq.fixedRows; fRow < grd_goodreq.rows ; fRow++ ) {
  2016. vReqFlag = model.getValue(grd_goodreq.nodeset + "[" + fRow + "]/reqflag") ;
  2017. vReqAuth = fPurcAuthInfoRow(vReqDept,vReqprid,vReqFlag); // 권한 Check
  2018. model.setValue(grd_goodreq.nodeset + "[" + fRow + "]/reqauth", vReqAuth) ;
  2019. if (model.getValue(grd_goodreq.nodeset + "[" + fRow + "]/allsizeyn") =="Y") {
  2020. grd_goodreq.cellstyle("background-color" , fRow, 9) = "#FFFF00";
  2021. }
  2022. if (grd_goodreq.valueMatrix(fRow, grd_goodreq.colRef("acptflag")) == "Y" ||
  2023. grd_goodreq.valueMatrix(fRow, grd_goodreq.colRef("acptflag")) == "R" ) {
  2024. grd_goodreq.isReadOnly(fRow, grd_goodreq.fixedCols-1, fRow, grd_goodreq.cols-1) = true;
  2025. } else {
  2026. if (vReqAuth =="2") {
  2027. grd_goodreq.isReadOnly( fRow , grd_goodreq.colRef("deptaprvyn"), fRow , grd_goodreq.colRef("deptaprvyn")) = false; // ReadOnly false
  2028. } else {
  2029. vAcctCnt++;
  2030. if (gPurcDeptcd != getUserInfo("dutplcecd") ){
  2031. grd_goodreq.isReadOnly( fRow , grd_goodreq.colRef("deptaprvyn"), fRow , grd_goodreq.colRef("deptaprvyn")) = true; // ReadOnly
  2032. }
  2033. }
  2034. }
  2035. }
  2036. if (vAcctCnt > 0) {
  2037. if (gPurcDeptcd != getUserInfo("dutplcecd") ){
  2038. ckb_accept.attribute("visibility") = "hidden";
  2039. }
  2040. model.setValue(ckb_accept.attribute("ref"), "N");
  2041. } else {
  2042. ckb_accept.attribute("visibility") = "visible";
  2043. }
  2044. model.refresh();*/
  2045. }
  2046. /**
  2047. * @ver : 2010-10-17
  2048. * @desc : Data 저장 하기 위한 Check
  2049. * @param :
  2050. * @return :
  2051. * @---------------------------------------------------
  2052. */
  2053. function fSaveData() {
  2054. //if (model.getValue(sel_goodflag.attribute("ref")) != "PH") {
  2055. // fConfirmSaveData(); // Data를 저장한다. //// 저장하는 부분
  2056. // return;
  2057. //}
  2058. //
  2059. /// 마감 시간과 마감때 뿌려줄 Data를 가져다 놓음
  2060. /*
  2061. model.resetInstanceNode("/root/main/messagelists/messagelist");
  2062. model.setValue("/root/send/message/instcd" , model.getValue(opt_instcd.attribute("ref")));
  2063. model.setValue("/root/send/message/goodflag", "PH");
  2064. submit("TRRSD00433");
  2065. var hDesc = "";
  2066. var HMagamTime = "";
  2067. /// 수액시간을 가져다 놓음
  2068. for (var fRow = grd_message.fixedRows; fRow < grd_message.rows; fRow++){
  2069. if (model.getValue(grd_message.nodeset +"["+ fRow +"]/reqflag") == "H" ) { //수액이 존재하면 수액마감시간을 가져다 놓는다
  2070. hDesc = model.getValue(grd_message.nodeset +"["+ fRow +"]/closdesc") +"\n" ;
  2071. HMagamTime = model.getValue(grd_message.nodeset +"["+ fRow +"]/clostm" );
  2072. break;
  2073. }
  2074. }
  2075. var vReqFlag = "";
  2076. var ReqflagE = 0 ; // 05 P 약품및재료
  2077. var ReqflagF = 0 ; // 06 P 제제약품
  2078. var ReqflagI = 0 ; // 09 P 조영제
  2079. var ReqflagH = 0 ; // 10 P 수액
  2080. if (model.getValue(chk_reqnonew.attribute("ref")) == "Y") { //
  2081. vReqdd = model.getValue(ipt_reqddnew.attribute("ref"));
  2082. } else {
  2083. vReqdd = model.getValue(ipt_reqdd.attribute("ref"));
  2084. }
  2085. //
  2086. for (var fRow = grd_goodreq.fixedRows; fRow < grd_goodreq.rows; fRow++){
  2087. vReqFlag = model.getValue(grd_goodreq.nodeset + "[" + fRow + "]/reqflag");
  2088. if (vReqFlag == "H"){ //수액인경우
  2089. // 만약에 수액 같은 경우에 blocking을 원하면
  2090. // 1) 현재시간을 체크 2) DB의 마감시간 체크 3) 1과2번을 비교하여 시간을 넘어가면 무조건 저장안되게 막음
  2091. if (getCurrentTime() > HMagamTime && vReqdd == getCurrentDate() && grd_goodreq.rowStatus(fRow) != "0" ){ //현재시간이 마감시간보다 크다면 무조건 Blocking
  2092. messageBox(hDesc, "I");
  2093. return;
  2094. }
  2095. ReqflagH = 1 ; // 09 P 수액
  2096. } else {
  2097. ReqflagE = (vReqFlag == "E") ? 1 : ReqflagE; // 05 P 약품및재료
  2098. ReqflagF = (vReqFlag == "F") ? 2 : ReqflagF; // 06 P 제제약품
  2099. ReqflagI = (vReqFlag == "I") ? 4 : ReqflagI; // 09 P 조영제
  2100. //if ((ReqflagE+ReqflagF+ReqflagI) == 7) break;
  2101. }
  2102. }
  2103. lastDesc = (ReqflagH == 1) ? model.getValue(grd_message.nodeset +"[reqflag='H']/closdesc") : "";
  2104. lastDesc += (ReqflagE == 1) ? model.getValue(grd_message.nodeset +"[reqflag='E']/closdesc") : "";
  2105. lastDesc += (ReqflagF == 2) ? model.getValue(grd_message.nodeset +"[reqflag='F']/closdesc") : "";
  2106. lastDesc += (ReqflagI == 4) ? model.getValue(grd_message.nodeset +"[reqflag='I']/closdesc") : "";
  2107. if (lastDesc!=""){
  2108. messageBox(lastDesc,"I");
  2109. }*/
  2110. //
  2111. fConfirmSaveData(); // Data를 저장한다. //// 저장하는 부분
  2112. }
  2113. /**
  2114. * @ver : 2010-10-17
  2115. * @desc : 청구 Data 저장
  2116. * @param :
  2117. * @return :
  2118. * @---------------------------------------------------
  2119. */
  2120. function fConfirmSaveData() {
  2121. // 저장전 Data를 Check한다.
  2122. if (fCheckSaveData() == false) return;
  2123. model.setValue("/root/send/save/autoaprv/instcd" ,model.getValue(opt_instcd.attribute("ref") )); // 기관코드
  2124. model.setValue("/root/send/save/autoaprv/reqdeptcd",model.getValue(cmb_reqdeptcd.attribute("ref"))); // 청구부서
  2125. var vReqdd = ""; // 청구일자
  2126. /*
  2127. if (model.getValue(chk_reqnonew.attribute("ref")) == "Y") { //
  2128. vReqdd = model.getValue(ipt_reqddnew.attribute("ref"));
  2129. } else {
  2130. vReqdd = model.getValue(ipt_reqdd.attribute("ref"));
  2131. }
  2132. */
  2133. vReqdd = model.getValue(ipt_reqdd.attribute("ref"));
  2134. model.setValue("/root/send/save/autoaprv/reqdd", vReqdd); // 청구일자
  2135. // 청구 가능 시간을 CHECK한다.
  2136. // if (fCheckLimitTime(vReqdd) == false) return;
  2137. // 동시 승인여부
  2138. // 일청구는 자동 승인한다.
  2139. if (model.getValue(cmb_reqpridflag.attribute("ref"))=="1") {
  2140. model.setValue("/root/send/save/autoaprv/autoaprvyn","Y");
  2141. }
  2142. for (var fRow = grd_goodreq.fixedRows; fRow < grd_goodreq.rows; fRow++){
  2143. grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqpsnid")) = model.getValue("/root/init/requserno");
  2144. grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqdeptcd")) = model.getValue("/root/send/goodreq/reqdeptcd");
  2145. grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqdd")) = model.getValue("/root/send/goodreq/reqdd");
  2146. grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqno")) = model.getValue("/root/send/goodreq/reqno");
  2147. grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("workflag")) = model.getValue("/root/send/goodreq/workflag");
  2148. grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqpridflag")) = model.getValue("/root/send/goodreq/reqpridflag");
  2149. grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("deliveflag")) = "1";
  2150. grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqmthdflag")) = "3";
  2151. }
  2152. model.setValue("/root/send/save/goodreqlist", grd_goodreq.getUpdateData());
  2153. /*if(submit("TXRSD00411")){
  2154. var ReqnoNew =model.getValue("/root/send/save/autoaprv/reqnonew");
  2155. if(ReqnoNew=="Y"){
  2156. model.setValue("/root/send/save/autoaprv/reqnonew","");
  2157. }
  2158. if (model.getValue(gvErrorMsgPath + "/type") == "error") return;
  2159. btn_search.dispatch("DOMActivate");
  2160. }*/
  2161. if(submit("TXRSD10101")){
  2162. var ReqnoNew =model.getValue("/root/send/save/autoaprv/reqnonew");
  2163. if(ReqnoNew=="Y"){
  2164. model.setValue("/root/send/save/autoaprv/reqnonew","");
  2165. }
  2166. if (model.getValue(gvErrorMsgPath + "/type") == "error") return;
  2167. fSearchButtonClick();
  2168. }
  2169. }
  2170. /**
  2171. * @ver : 2010-12-06
  2172. * @desc : 약품일떄만 포장수량 입력시 낱개수량 자동 계산
  2173. * @param :
  2174. * @return :
  2175. * @----------------------------------------
  2176. */
  2177. function fCalcReqQty(){
  2178. if(grd_goodreq.col == grd_goodreq.colRef("reqpackqty")){
  2179. var exchqty = parseFloat(grd_goodreq.valueMatrix(grd_goodreq.row,grd_goodreq.colRef("reqpackperunitqty")));
  2180. var reqpackqty = parseFloat(grd_goodreq.valueMatrix(grd_goodreq.row,grd_goodreq.colRef("reqpackqty")));
  2181. var compReqpackqty = grd_goodreq.valueMatrix(grd_goodreq.row,grd_goodreq.colRef("reqpackqty"));
  2182. grd_goodreq.valueMatrix(grd_goodreq.row,grd_goodreq.colRef("reqqty")) = reqpackqty*exchqty;
  2183. if(isSearchString(grd_goodreq.valueMatrix(grd_goodreq.row,grd_goodreq.colRef("reqqty")), "#QNAN")){
  2184. messageBox("청구수량에 잘못된 값이 들어갔습니다.","I007");
  2185. grd_goodreq.col = grd_goodreq.colRef("reqpackqty");
  2186. grd_goodreq.editCell();
  2187. return;
  2188. }else{
  2189. if(grd_goodreq.row < grd_goodreq.rows - grd_goodreq.fixedRows)
  2190. {
  2191. grd_goodreq.row = grd_goodreq.row + 1;
  2192. grd_goodreq.select(grd_goodreq.row, grd_goodreq.colRef("reqpackqty")) = true;
  2193. }
  2194. }
  2195. }
  2196. grd_goodreq.refresh();
  2197. }
  2198. /**
  2199. * @ver : 2010-12-06
  2200. * @desc : 0인 수량 삭제
  2201. * @param :
  2202. * @return :
  2203. * @----------------------------------------
  2204. */
  2205. function fZeroReqQtyDel(){
  2206. for(var fRow = grd_goodreq.fixedRows; fRow < grd_goodreq.rows ; fRow++ ) {
  2207. var reqpackqty = grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqpackqty"));
  2208. if(reqpackqty == 0){
  2209. grd_goodreq.rowStatus(fRow)="4";
  2210. }
  2211. }
  2212. }
  2213. /* ------------------------------------------------- */
  2214. /* ------End Of List ------------------------------- */
  2215. /* -------------------------------------------------- */