SMRSD00400.js 122 KB

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