SMRSD20000.xjs 85 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/* ---------------------------------------------------------------------
  3. SMRSD20000_소모품청구관리(경북대).xrw (SMRSD10000.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. ---------------------------------------------------------------------- */
  7. var xAuth = !(frmf_checkAuth("X"));
  8. var pAuth = !(frmf_checkAuth("P"));
  9. var vPurcAuth = "1";
  10. var gExeptionFlag = true;
  11. var gPurcDeptcd = "" ;
  12. var gcount = 0 ; //청구번호 읽기
  13. var gReqNoReadFlag = true; //청구번호 읽기
  14. var cmbworkflagold = "X" ; //작업구분콤보의 예전값을 가지고 있는 변수
  15. /****************************************************************************************
  16. * Argument : N/A
  17. * Description : Reapeat청구
  18. ****************************************************************************************/
  19. function fRepeatReqSearch()
  20. {
  21. var spath = "ds_send_repeatreq";
  22. eval(spath).setColumn(0,"instcd" , grp_sea.opt_instcd.value);
  23. eval(spath).setColumn(0,"reqdeptcd" , group1.ipt_reqdeptcd.value);
  24. eval(spath).setColumn(0,"wareflag" , group1.cmb_wareflag.value);
  25. var oParam = {};
  26. oParam.id = "TRRSD20001";
  27. oParam.service = "reqconsapp.ReqConsMngt";
  28. oParam.method = "reqGetRepeatReq";
  29. oParam.inds = "req="+spath;
  30. oParam.outds = "ds_main_list_repeatreq_repeatlist=repeatlist";
  31. oParam.async = false;
  32. //oParam.callback = "cf_TRRSD20001";
  33. tranf_submit(oParam);
  34. grp_repeat.visible = true;
  35. }
  36. /****************************************************************************************
  37. * Argument : N/A
  38. * Description : 필수값 체크
  39. ****************************************************************************************/
  40. function fValMain()
  41. {
  42. var smsg = "";
  43. if(utlf_isNull(group1.ipt_reqdd.value)) smsg += "청구일자, ";
  44. if(utlf_isNull(group1.ipt_reqno.value)) smsg += "청구번호, ";
  45. if(utlf_isNull(group1.ipt_reqdeptcd.value)) smsg += "청구부서, ";
  46. if(utlf_isNull(group1.cmb_wareflag.value)) smsg += "창고구분, ";
  47. if (smsg == ""){
  48. return true;
  49. }else{
  50. sysf_messageBox(smsg.substr(0, smsg.length-2) + "은(는)","I003");
  51. return false;
  52. }
  53. }
  54. // /**
  55. // * @ver : 2010-11-01
  56. // * @desc : 작업구분를 가져온다.
  57. // */
  58. // /*
  59. // function fConsWorkFlag()
  60. // {
  61. // submit("TRRSD20003");
  62. // }
  63. // */
  64. /****************************************************************************************
  65. * Argument : N/A
  66. * Description : 폼 초기화
  67. ****************************************************************************************/
  68. function fInitialize() {
  69. ds_send.clearData(); ds_send.addRow();
  70. ds_send_goodreq.clearData(); ds_send_goodreq.addRow();
  71. ds_send_reqpsn.clearData(); ds_send_reqpsn.addRow();
  72. ds_send_nosearch.clearData(); ds_send_nosearch.addRow();
  73. ds_send_goodlist.clearData(); ds_send_goodlist.addRow();
  74. ds_send_message.clearData(); ds_send_message.addRow();
  75. ds_main_list_goodreq_goodreqmainlist.clearData(); ds_main_list_goodreq_goodreqmainlist.addRow();
  76. misfGridInit(grp_main.grd_goodreq);
  77. misfMsterDetailSet("grp_main.grd_goodreq",null, "TRRSD20004" ,"Y");
  78. // grp_main.grd_goodreq.fixedcellcheckbox(0, grd_goodreq.colRef("deptaprvyn")) = true;
  79. // gd_find.grd_goodlist.fixedcellcheckbox(0, grd_goodlist.colRef("select"),false) = true;
  80. gd_find.grd_goodlist.setCellProperty("head",1,"text","");
  81. //-- 기관
  82. grp_sea.opt_instcd.value = sysf_getUserInfo("dutplceinstcd"); //기관코드
  83. grp_sea.opt_instcdnm.value = sysf_getUserInfo("dutplceinstnm"); //기관명
  84. //-- 청구일자
  85. grp_sea.ipt_searchreqdd.value = utlf_getCurrentDate(); //청구일자
  86. //-- 부서
  87. grp_sea.ipt_searchreqdeptcd.value = sysf_getUserInfo("dutplcecd");
  88. grp_sea.opt_searchreqdeptnm.value = sysf_getUserInfo("dutplcenm");
  89. //-- 창고구분
  90. var oParam = {};
  91. oParam.id = "TRRSD20002";
  92. oParam.service = "reqconsapp.ReqConsMngt";
  93. oParam.method = "reqGetConsWareFlagList";
  94. oParam.inds = "req=ds_temp";
  95. oParam.outds = "ds_init_wareflag_wareflaglist=conswareflaglist";
  96. oParam.async = false;
  97. //oParam.callback = "cf_TRRSD20002";
  98. tranf_submit(oParam);
  99. ds_send_goodreq.enableevent = false; //초기값 입력시 청구번호 변경 이벤트 발생하지 않도록
  100. grp_sea.ipt_searchreqno.value = fGetMaxReqNo(sysf_getUserInfo("dutplceinstcd"),utlf_getCurrentDate());
  101. ds_send_goodreq.enableevent = true;
  102. if(sysf_getUserInfo("dutplceinstcd") == "032"){
  103. // 물품구분
  104. var pcdgrupid_list = "R0025";
  105. var pcontrol_name_list = "gd_find.group2.cmb_goodflag";
  106. // 공통코드 조회(알림 메세지) 팝업으로 변경 2015.05.27 김금련
  107. //pcdgrupid_list += "," + sysf_getUserInfo("dutplceinstcd") + "R0034";
  108. //pcontrol_name_list += ",cmb_message";
  109. misfComboComCdListMulti(pcdgrupid_list,pcontrol_name_list);
  110. frmf_modal("SPRSD20005","SPRSD20005","","","",200,200,700,250,"","","","M"); // 팝업으로 변경 2015.05.27 김금련
  111. }else if(sysf_getUserInfo("dutplceinstcd") == "031"){
  112. var pcdgrupid_list = "R0025";
  113. var pcontrol_name_list = "gd_find.group2.cmb_goodflag";
  114. misfComboComCdListMulti(pcdgrupid_list,pcontrol_name_list);
  115. //frmf_modal("SPRSD20004","SPRSD20004","","","",200,200,700,250,"","","","M"); //인증평가임시팝업
  116. frmf_modal("SPRSD20001","SPRSD20001","","","",200,200,700,740,"","","","M"); // 주메인
  117. //frmf_modal("SPRSD20003","SPRSD20003","","","",200,200,510,230,"","","","M"); //연휴때 임시 사용
  118. }else{
  119. var pcdgrupid_list = "R0025";
  120. var pcontrol_name_list = "gd_find.group2.cmb_goodflag";
  121. misfComboComCdListMulti(pcdgrupid_list,pcontrol_name_list);
  122. }
  123. frmf_addComboItem("gd_find.group2.cmb_goodflag", "전체", "", "above");
  124. gd_find.group2.cmb_goodflag.index = 0;
  125. // 물류파트(4020334000) , 진료재료파트(3080000000) 의 경우 부서선택 허용
  126. if(sysf_getUserInfo("dutplcecd") == "4020334000" || sysf_getUserInfo("dutplcecd") == "3080000000" || sysf_getUserInfo("userid") == "MIS"){
  127. grp_sea.ipt_searchreqdeptcd.enable = true;
  128. grp_sea.btn_searchreqdeptcd.enable = true;
  129. }
  130. group1.btn_new.click();
  131. // var viewMessage = model.getValue(cmb_message.choices.itemset.attribute("nodeset") + "/cdnm");
  132. var viewMessage = group1.cmb_message.text;
  133. if(!utlf_isNull(viewMessage)) sysf_messageBox(viewMessage,"I");
  134. }
  135. // /**
  136. // * @ver : 2010-10-17
  137. // * @desc : 권한체크(청구주기가 일청구이면 권한체크하지 않는다. )
  138. // * @param :
  139. // * @return :
  140. // * @---------------------------------------------------
  141. // */
  142. // function fSetReqAuth() {
  143. // // btn 기본처리
  144. // btn_excel.disabled = true;
  145. //
  146. // // btn_reqset.disabled = true;
  147. //
  148. // btn_insert.disabled = true;
  149. // btn_delete.disabled = true;
  150. // btn_choice.disabled = true;
  151. //
  152. // btn_accept.disabled = true;
  153. // btn_save.disabled = true;
  154. //
  155. // //model.setValue(ckb_accept.attribute("ref"), "N");
  156. // //ckb_accept.attribute("visibility") ="hidden" ;
  157. //
  158. // if(model.getValue(opt_instcd.attribute("ref") ).length==0) return;
  159. // //if(model.getValue(cmb_reqflag.attribute("ref") ).length==0) return;
  160. // if(model.getValue(ipt_reqdeptcd.attribute("ref") ).length==0) return;
  161. //
  162. // /*
  163. // if (model.getValue("/root/send/goodlist/purcdeptflag") == "P") { //구매부서구분 : P
  164. // btn_accept.disabled = false;
  165. // model.setValue(ckb_accept.attribute("ref"), "Y");
  166. // ckb_accept.attribute("visibility") = "visible" ;
  167. // }
  168. // */
  169. //
  170. // // 로그인자의 부서와 취합부서정보가 같으면 청구부서를 open한다.
  171. // // if (model.getValue(ipt_reqdeptcd.attribute("ref")) == model.getValue(opt_reqfinaldept.attribute("ref"))) {
  172. // // ipt_reqdeptcd.disabled=false;
  173. // // }
  174. // // fDeptReqNoQuery(); // 청구부서별 청구번호를 조회한다
  175. //
  176. // model.refresh();
  177. // }
  178. //
  179. // /**
  180. // * @ver : 2010-10-17
  181. // * @desc : 불출부서 청구마지막 일자를 불러온다.청구마감일자 조회
  182. // * @param :
  183. // * @return :
  184. // * @---------------------------------------------------
  185. // */
  186. // function fLastDaySearch() {
  187. // model.setValue("/root/send/lastdatesearch/instcd" , model.getValue(opt_instcd.attribute("ref")) );
  188. // model.setValue("/root/send/lastdatesearch/deldeptcd", model.getValue(ipt_reqdeptcd.attribute("ref")) );
  189. //
  190. // // model.setValue("/root/send/lastdatesearch/deldeptcd", opt_reqfinaldept.value );
  191. //
  192. // model.setValue("/root/send/lastdatesearch/reqym" , model.getValue(ipt_reqdd.attribute("ref")).substr(0,6));
  193. //
  194. // submit("TRRSC01701"); // 청구마감일자 조회 purcbaseweb
  195. //
  196. // ipt_todd.refresh();
  197. //
  198. // }
  199. //
  200. // // --------------------------------------------------------------
  201. // // 청구일자가 불출부서의 청구마지막 일자안에 있는지 확인,
  202. // // --------------------------------------------------------------
  203. // function fLastDayCheck() {
  204. //
  205. // var fbool = false;
  206. //
  207. // if (model.getValue(ipt_todd.attribute("ref")) != '') {
  208. // if (model.getValue(ipt_reqdd.attribute("ref")) > model.getValue(ipt_todd.attribute("ref")) ) {
  209. // fbool = true;
  210. // }
  211. // }
  212. //
  213. // return fbool;
  214. // }
  215. //
  216. // // --------------------------------------------------------------
  217. // // 불출부서 청구마지막 일자를 불러온다.청구마감일자 조회
  218. // // --------------------------------------------------------------
  219. // function fLastDaySearch_2(pDate) {
  220. // model.setValue("/root/send/lastdatesearch/instcd" , model.getValue(opt_instcd.attribute("ref")) );
  221. // model.setValue("/root/send/lastdatesearch/deldeptcd", gPurcDeptcd );
  222. // model.setValue("/root/send/lastdatesearch/reqym" , pDate.substr(0,6));
  223. //
  224. // submit("TRRSC01701"); // 청구마감일자 조회 purcbaseweb
  225. //
  226. // ipt_todd.refresh();
  227. //
  228. // }
  229. /****************************************************************************************
  230. * Argument : prow : 행번호
  231. * Description : 적용버튼 클릭시 Data DefaultSetting
  232. ****************************************************************************************/
  233. function fDefaultSetting(prow) {
  234. ds_main_list_goodreq_goodreqlist.setColumn( prow, "instcd" , grp_sea.opt_instcd.value);
  235. ds_main_list_goodreq_goodreqlist.setColumn( prow, "reqdd" , group1.ipt_reqdd.value);
  236. ds_main_list_goodreq_goodreqlist.setColumn( prow, "reqno" , group1.ipt_reqno.value);
  237. ds_main_list_goodreq_goodreqlist.setColumn( prow, "reqdeptcd" , group1.ipt_reqdeptcd.value);
  238. ds_main_list_goodreq_goodreqlist.setColumn( prow, "wareflag" , group1.cmb_wareflag.value);
  239. ds_main_list_goodreq_goodreqlist.setColumn( prow, "cmt" , group1.txa_cmt.value);
  240. // update 상태처리
  241. if(ds_main_list_goodreq_goodreqlist.getRowType(prow) == 1){
  242. if( ds_init_goodreq_goodreqmainlist.getColumn(0, "reqdeptcd") != group1.ipt_reqdeptcd.value
  243. || ds_init_goodreq_goodreqmainlist.getColumn(0, "cmt") != group1.txa_cmt.value )
  244. grdf_setStatus(grp_main.grd_goodreq, "U", [prow]);
  245. }
  246. //-----------------------------------------------------------------------------------------------------------
  247. // 비승인자가 승인처리시 에러와 함꼐 OLD값을 넣어준다.
  248. // 행추가시 OLD값을 'N'으로 셋팅함으로 에러처리시 제대로 된다. HBH
  249. //-----------------------------------------------------------------------------------------------------------
  250. //ds_main_list_goodreq_goodreqlist.setColumn( prow, "predeptaprvyn","N");
  251. // --------------------------------------------------------
  252. // 불출구분 없앰... 기본값('1') settting한다
  253. // --------------------------------------------------------
  254. // ds_main_list_goodreq_goodreqlist.setColumn( prow, "deliveflag" , '1' );
  255. ds_main_list_goodreq_goodreqlist.setColumn( prow, "reqpsnid" , sysf_getUserInfo("userid"));
  256. ds_main_list_goodreq_goodreqlist.setColumn( prow, "reqpsnnm" , sysf_getUserInfo("usernm"));
  257. }
  258. /****************************************************************************************
  259. * Argument : prow : 행번호
  260. * Description : Repeat 청구로부터 추가
  261. ****************************************************************************************/
  262. function fAddFromRepeatReq(prow) {
  263. var goodcd = ds_main_list_repeatreq_repeatlist.getColumn(prow,"goodcd");
  264. var chkNode = ds_main_list_goodreq_goodreqlist.findRow("goodcd",goodcd);
  265. if(chkNode > -1) {
  266. sysf_messageBox("물품코드 [" + goodcd + "]는","E006");
  267. return;
  268. }
  269. if(ds_main_list_repeatreq_repeatlist.getColumn(prow,"rereqyn") == "N") {
  270. sysf_messageBox("물품코드 [" + goodcd + "]는 재청구","E001");
  271. return;
  272. }
  273. if(ds_main_list_repeatreq_repeatlist.getColumn(prow,"wareflag") != group1.cmb_wareflag.value) {
  274. sysf_messageBox("물품코드 [" + goodcd + "]는 창고구분이","E004");
  275. return;
  276. }
  277. var row = ds_main_list_repeatreq_repeatlist.addRow();
  278. fDefaultSetting(row);
  279. ds_main_list_goodreq_goodreqlist.setColumn( row, "goodcd" , goodcd);
  280. ds_main_list_goodreq_goodreqlist.setColumn( row, "goodnm" , ds_main_list_repeatreq_repeatlist.getColumn( prow, "goodnm"));
  281. ds_main_list_goodreq_goodreqlist.setColumn( row, "goodspec" , ds_main_list_repeatreq_repeatlist.getColumn( prow, "goodspec"));
  282. ds_main_list_goodreq_goodreqlist.setColumn( row, "reqqty" , ds_main_list_repeatreq_repeatlist.getColumn( prow, "reqqty"));
  283. ds_main_list_goodreq_goodreqlist.setColumn( row, "requnit" , ds_main_list_repeatreq_repeatlist.getColumn( prow, "requnit"));
  284. ds_main_list_goodreq_goodreqlist.setColumn( row, "reqpsnid" , sysf_getUserInfo("userid"));
  285. ds_main_list_goodreq_goodreqlist.setColumn( row, "reqpsnnm" , sysf_getUserInfo("usernm"));
  286. ds_main_list_goodreq_goodreqlist.setColumn( row, "winacnt" , ds_main_list_repeatreq_repeatlist.getColumn( prow, "winacnt"));
  287. ds_main_list_goodreq_goodreqlist.setColumn( row, "goodflag" , ds_main_list_repeatreq_repeatlist.getColumn( prow, "goodflag"));
  288. ds_main_list_goodreq_goodreqlist.setColumn( row, "reqmutpleqty", ds_main_list_repeatreq_repeatlist.getColumn( prow, "reqmutpleqty"));
  289. //2012.11.06 박준범 : 의료폐기물 전용용기 관련 컬럼 추가
  290. ds_main_list_goodreq_goodreqlist.setColumn( row, "wstyn" , ds_main_list_repeatreq_repeatlist.getColumn( prow, "wstyn"));
  291. group1.cmb_wareflag.enable = false;
  292. }
  293. // /**
  294. // * @ver : 2010-10-17
  295. // * @desc : 최종 청구번호 가져오기
  296. // * @param :
  297. // * @return :
  298. // * @---------------------------------------------------
  299. // */
  300. // function fMaxReqSeqNo() {
  301. // var vMax = 0;
  302. // var maxreqseqno = "0";
  303. //
  304. // for (var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows; currow++) {
  305. // if (maxreqseqno < ds_main_list_goodreq_goodreqlist.getColumn(currow, grd_goodreq.colRef("reqseqno"))) {
  306. // maxreqseqno = ds_main_list_goodreq_goodreqlist.getColumn(currow, grd_goodreq.colRef("reqseqno"));
  307. // }
  308. // }
  309. //
  310. // vMax = parseInt(maxreqseqno, 10);
  311. //
  312. // // alert(vMax+"::"+maxreqseqno);
  313. //
  314. // vMax += 1;
  315. //
  316. // maxreqseqno = "" + vMax;
  317. // return maxreqseqno.getLeftPad(3,"0");
  318. // }
  319. /****************************************************************************************
  320. * Argument : N/A
  321. * Description : 물품리스트 설정
  322. ****************************************************************************************/
  323. function fSettingGoodList(pnode, nodename, userqtynm) {
  324. // var vTarget = "";
  325. // var vSource = "";
  326. // var codynode = instance1.selectNodes(pnode + "/*");
  327. var vSource = eval(pnode+"_"+nodename);
  328. var addRow = ds_main_list_goodreq_goodreqlist.rowcount - 1;
  329. if(!utlf_isNull(ds_main_list_goodreq_goodreqlist.getColumn(addRow , "goodcd"))) addRow = addRow + 1;
  330. for (var j = 0; j < vSource.rowcount ; j++) {
  331. if((ds_main_list_goodreq_goodreqlist.rowcount == 0) || (addRow > ds_main_list_goodreq_goodreqlist.rowcount - 1)) {
  332. misfGridIUD(grp_main.grd_goodreq, "A");
  333. addRow = ds_main_list_goodreq_goodreqlist.rowcount - 1;
  334. fDefaultSetting(addRow);
  335. }
  336. // vTarget = grd_goodreq.nodeset + "[" + addRow + "]/";
  337. // vSource = pnode +"/" + nodename + "[" + j + "]/";
  338. fSettingGoodData(ds_main_list_goodreq_goodreqlist, vSource, userqtynm, "deliveunit", "", addRow, j);
  339. addRow = addRow + 1;
  340. }
  341. }
  342. /****************************************************************************************
  343. * Argument : N/A
  344. * Description : 조회시 체크로직
  345. ****************************************************************************************/
  346. function fCheckRetrieveData(pmsg)
  347. {
  348. if(utlf_isNull(grp_sea.opt_instcd.value))
  349. {
  350. if(pmsg == true)
  351. {
  352. sysf_messageBox("기관코드를 " ,"C002");
  353. grp_sea.opt_instcd.setFocus();
  354. }
  355. return false;
  356. }
  357. if(utlf_isNull(grp_sea.ipt_searchreqdd.value))
  358. {
  359. if(pmsg == true)
  360. {
  361. sysf_messageBox("청구일자를 " ,"C001");
  362. grp_sea.ipt_searchreqdd.setFocus();
  363. }
  364. return false;
  365. }
  366. if(utlf_isNull(grp_sea.ipt_searchreqno.value))
  367. {
  368. if(pmsg == true)
  369. {
  370. sysf_messageBox("청구번호를 " ,"C001");
  371. grp_sea.ipt_searchreqdd.setFocus();
  372. }
  373. return false;
  374. }
  375. return true;
  376. }
  377. function fCheckLimitTime(pDate)
  378. {
  379. return true;
  380. }
  381. /****************************************************************************************
  382. * Argument : N/A
  383. * Description : 저장전 Data를 Check한다.
  384. ****************************************************************************************/
  385. function fCheckSaveData()
  386. {
  387. if (utlf_isNull(grp_sea.opt_instcd.value)) {
  388. sysf_messageBox("기관코드를 " ,"C002");
  389. grp_sea.opt_instcd.setFocus();
  390. return false;
  391. }
  392. if (utlf_isNull(group1.ipt_reqdd.value)) {
  393. sysf_messageBox("청구일자를 " ,"C001");
  394. group1.ipt_reqdd.setFocus();
  395. return false;
  396. }
  397. if (ds_main_list_goodreq_goodreqlist.rowcount == 0){
  398. sysf_messageBox("상세내역을 ","C001");
  399. return false;
  400. }
  401. var basevol = 0;
  402. var stocqty = 0;
  403. var reqqty = 0;
  404. var minexch = 0;
  405. for(var currow = 0; currow < ds_main_list_goodreq_goodreqlist.rowcount ; currow++)
  406. {
  407. if (ds_main_list_goodreq_goodreqlist.getRowType( currow ) != 8) { // 저장 후 삭제일 경우 ( 4 ) check 하지 말자.
  408. if (utlf_isNull(ds_main_list_goodreq_goodreqlist.getColumn(currow , "goodcd"))) {
  409. sysf_messageBox(currow + " 번째 물품코드를 " ,"C001");
  410. ds_main_list_goodreq_goodreqlist.rowposition = currow;
  411. grp_main.grd_goodreq.setFocus();
  412. grp_main.grd_goodreq.setCellPos(grp_main.grd_goodreq.getBindCellIndex("body","goodcd"));
  413. grp_main.grd_goodreq.showEditor(true);
  414. return false;
  415. }
  416. else {
  417. for(var srcrow = currow + 1 ; srcrow < ds_main_list_goodreq_goodreqlist.rowcount ; srcrow++) {
  418. if (ds_main_list_goodreq_goodreqlist.getColumn(currow , "goodcd") == ds_main_list_goodreq_goodreqlist.getColumn(srcrow , "goodcd") &&
  419. ds_main_list_goodreq_goodreqlist.getColumn(currow , "allsizeyn") == "N" &&
  420. ds_main_list_goodreq_goodreqlist.getRowType( srcrow ) != 8 )
  421. {
  422. sysf_messageBox("동일 물품코드가1 [" + currow + "," + srcrow + "->" + ds_main_list_goodreq_goodreqlist.getColumn(currow , "goodcd") + "] 존재하여 저장 " ,"E001");
  423. return false;
  424. }
  425. else if(ds_main_list_goodreq_goodreqlist.getColumn(currow ,"goodcd") == ds_main_list_goodreq_goodreqlist.getColumn(srcrow , "goodcd") &&
  426. ds_main_list_goodreq_goodreqlist.getColumn(currow ,"allsizespecid") == ds_main_list_goodreq_goodreqlist.getColumn(srcrow , "allsizespecid") &&
  427. ds_main_list_goodreq_goodreqlist.getRowType( srcrow ) != 8 )
  428. {
  429. sysf_messageBox("동일 물품코드가 (ALL SIZE) [" + currow + "," +srcrow + "->" + ds_main_list_goodreq_goodreqlist.getColumn(currow , "goodcd") + "] 존재하여 저장 " ,"E001");
  430. return false;
  431. }
  432. }
  433. }
  434. reqqty = ds_main_list_goodreq_goodreqlist.getColumn(currow , "reqqty");
  435. if (reqqty == 0 ) {
  436. sysf_messageBox(currow + " 번째 청구량을 " ,"C001");
  437. ds_main_list_goodreq_goodreqlist.rowposition = currow;
  438. grp_main.grd_goodreq.setFocus();
  439. grp_main.grd_goodreq.setCellPos(grp_main.grd_goodreq.getBindCellIndex("body","reqqty"));
  440. grp_main.grd_goodreq.showEditor(true);
  441. return false;
  442. } else {
  443. reqmutpleqty = ds_main_list_goodreq_goodreqlist.getColumn(currow , "reqmutpleqty");
  444. if(reqmutpleqty > 0 && (reqqty%reqmutpleqty != 0))
  445. {
  446. sysf_messageBox(ds_main_list_goodreq_goodreqlist.rowposition + "번째 물품은 청구수량 청구배수 ["+ reqmutpleqty + "] 에 맞춰서" , "C001");
  447. ds_main_list_goodreq_goodreqlist.rowposition = currow;
  448. grp_main.grd_goodreq.setFocus();
  449. grp_main.grd_goodreq.setCellPos(grp_main.grd_goodreq.getBindCellIndex("body","reqqty"));
  450. grp_main.grd_goodreq.showEditor(true);
  451. return false;
  452. }
  453. }
  454. } // status != 4
  455. } // end for
  456. //2012.11.06 박준범 추가 : 의료폐기물 전용용기는 다른 물품과 분리하여 청구하기 위하여 각 물품을 확인함
  457. // 이전 wstyn 와 금번 wstyn 가 다른 경우 경고 message를 보여줌
  458. var prevwstyn = ""; //이전 wstyn
  459. for(var currow = 0; currow < ds_main_list_goodreq_goodreqlist.rowcount ; currow++) {
  460. if( ds_main_list_goodreq_goodreqlist.getRowType( srcrow ) != 8 ) { // 저장 후 삭제일 경우 ( 4 ) check 하지 말자.
  461. if( !utlf_isNull(prevwstyn) && ds_main_list_goodreq_goodreqlist.getColumn(currow , "wstyn") != prevwstyn ) {
  462. sysf_messageBox("의료폐기물 전용용기는 다른 물품과 분리하여 별도 청구건으로 등록하십시요. " + "\n\n" +
  463. "- " + ds_main_list_goodreq_goodreqlist.getColumn(currow , "goodcd") +
  464. " " + ds_main_list_goodreq_goodreqlist.getColumn(currow , "goodnm") +
  465. " " + ds_main_list_goodreq_goodreqlist.getColumn(currow , "goodspec") , "E999", ""); //E: 경고
  466. return false;
  467. }
  468. prevwstyn = ds_main_list_goodreq_goodreqlist.getColumn(currow , "wstyn");
  469. }
  470. }
  471. return true;
  472. }
  473. /****************************************************************************************
  474. * Argument : state : true/false
  475. * Description : 사용여부 변경
  476. ****************************************************************************************/
  477. function fDisabledControl(state) {
  478. group1.ipt_reqdd.enable != state;
  479. group1.cmb_wareflag.enable != state;
  480. group1.ipt_reqdeptcd.enable != state;
  481. group1.btn_reqdeptcd.enable != state;
  482. }
  483. function fAfterRetr() {
  484. /*
  485. if (model.getValue("/root/main/list/goodreq/goodmaxreqno/reqfix") == "Y") {
  486. fDisabledControl("true");
  487. }
  488. else {
  489. fDisabledControl("false");
  490. }
  491. // model.setValue(cmb_reqno.attribute("ref"),model.getValue("/root/main/list/goodreq/goodmaxreqno/reqno"));
  492. model.refresh();
  493. */
  494. }
  495. // // --------------------------------------------------
  496. // //
  497. // // --------------------------------------------------
  498. // function fRetrByReqNo() {
  499. //
  500. // if(fCheckRetrieveData(false) == false)return;
  501. //
  502. // model.removenode("/root/main/tmplist");
  503. // model.makeNode("/root/main/tmplist/goodreq/goodreqlist");
  504. // model.makeNode("/root/main/tmplist/goodreq/goodmaxreqno");
  505. // model.copyNode("/root/main/tmplist", "/root/main/list");
  506. //
  507. // model.setValue("/root/send/goodreq/retrmaxreqnoyn","N");
  508. //
  509. // misfMsterDetailRetrieve();
  510. //
  511. // var rtncount = grd_goodreq.rows - grd_goodreq.fixedRows;
  512. //
  513. // if(rtncount == 0)
  514. // {
  515. // model.copyNode("/root/main/list","/root/main/tmplist");
  516. // }
  517. //
  518. // return rtncount;
  519. // }
  520. //
  521. // // --------------------------------------------------
  522. // //
  523. // // --------------------------------------------------
  524. // /*
  525. // function fSetReqNo(pReqControl,pAdd)
  526. // {
  527. // if(pAdd == "Y")
  528. // {
  529. // var reqno = model.getValue(cmb_reqno.attribute("ref"));
  530. // reqno = parseInt(reqno) + 1;
  531. // reqno = "" + reqno;
  532. // reqno = reqno.getLeftPad(4,"0");
  533. // }
  534. // else
  535. // {
  536. // var reqno = model.getValue(cmb_reqno.attribute("ref"));
  537. // reqno = parseInt(reqno) - 1;
  538. // if(reqno == 0)reqno = 1;
  539. // reqno = "" + reqno;
  540. // reqno = reqno.getLeftPad(4,"0");
  541. // }
  542. // model.setValue(pReqControl.attribute("ref"), reqno);
  543. // model.refresh();
  544. // }
  545. // */
  546. //
  547. // // --------------------------------------------------
  548. // // 승인전체/접수전체취소
  549. // // --------------------------------------------------
  550. // function fSettingReqAprv() {
  551. //
  552. // for (var liRow = grd_goodreq.fixedRows ; liRow < grd_goodreq.rows ; liRow++)
  553. // {
  554. // //----------------------------------------------------------------------------
  555. // // 발주승인건 제외
  556. // //----------------------------------------------------------------------------
  557. // if (model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/aprvyn") != "Y") {
  558. //
  559. // if ((gPurcDeptcd == getUserInfo("dutplcecd") ) ||
  560. // (model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/reqauth") == "2")) {
  561. //
  562. // if (model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvyn") == "Y") {
  563. // model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvyn","N");
  564. // model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvdd","" );
  565. //
  566. // if (grd_goodreq.rowStatus(liRow) == "0") grd_goodreq.rowStatus(liRow) = "2";
  567. //
  568. // } else {
  569. // model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvyn" ,"Y");
  570. // model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvdd" ,getCurrentDate());
  571. // if (grd_goodreq.rowStatus(liRow) == "0") grd_goodreq.rowStatus(liRow) = "2";
  572. // }
  573. // }
  574. // }
  575. // }
  576. //
  577. // model.refresh();
  578. // }
  579. //
  580. //
  581. // // --------------------------------------------------
  582. // // 승인/미승인 처리
  583. // // --------------------------------------------------
  584. // function fSaveReqAprv()
  585. // {
  586. // model.removenode("/root/send/reqaprvlist");
  587. // model.makeNode("/root/send/reqaprvlist" );
  588. // model.setValue("/root/send/reqaprvlist" ,grd_goodreq.getUpdateData());
  589. //
  590. // submit("TXRSD20001");
  591. //
  592. // if (model.getValue(gvErrorMsgPath + "/type") != "error") misfMsterDetailRetrieve();
  593. // }
  594. /****************************************************************************************
  595. * Argument : N/A
  596. * Description : 권한여부에 따른 승인체크 설정.
  597. ****************************************************************************************/
  598. function fGrantsCheck()
  599. {
  600. if (vPurcAuth == "2") {
  601. misfSetReadOnlyCol(grp_main.grd_goodreq, "deptaprvyn", false);
  602. }else{
  603. misfSetReadOnlyCol(grp_main.grd_goodreq, "deptaprvyn", true);
  604. }
  605. }
  606. /****************************************************************************************
  607. * Argument : yPos : 클릭한 Y좌표
  608. * Description : 물품청구 버튼 Click 처리하는 함수
  609. ****************************************************************************************/
  610. function fGoodreqButtonClick(yPos) {
  611. grp_main.grp_allsize.visible = false;
  612. var rowidx = grp_main.grd_goodreq.currentrow;
  613. var colidx = grp_main.grd_goodreq.currentcol;
  614. if (colidx == grp_main.grd_goodreq.getBindCellIndex("body","goodcd")
  615. && ds_main_list_goodreq_goodreqlist.getRowType(rowidx) == 2) { //구성물품코드를 눌렀을 경우
  616. swt_search.tabindex = 1;
  617. // fViewToggle(2); // 1 :늘리기, 2 : 줄이기
  618. fGoodListReady(ds_main_list_goodreq_goodreqlist.getColumn(rowidx, colidx),""); // 물품찾기 처리하는 함수
  619. } else if (colidx == grp_main.grd_goodreq.getBindCellIndex("body","goodspec") && ds_main_list_goodreq_goodreqlist.getColumn(rowidx, "allsizeyn") == "Y" ){
  620. fAllSizeRead(rowidx, colidx, yPos);
  621. }
  622. }
  623. /****************************************************************************************
  624. * Argument : N/A
  625. * Description : 물품청구 내용이 바뀌었을때 처리하는 함수
  626. ****************************************************************************************/
  627. function fGoodreqOnChange() {
  628. var cRow = ds_main_list_goodreq_goodreqlist.rowposition;
  629. if (grp_main.grd_goodreq.currentcol == grp_main.grd_goodreq.getBindCellIndex("body","reqqty") ) {
  630. if (ds_main_list_goodreq_goodreqlist.getColumn(cRow,"acptflag") == "Y")
  631. {
  632. sysf_messageBox("구매접수 된 내역은 수정","E001");
  633. return;
  634. }
  635. if (ds_main_list_goodreq_goodreqlist.getColumn(cRow,"reqauth" ) == "1" &&
  636. ds_main_list_goodreq_goodreqlist.getColumn(cRow,"predeptaprvyn") == "Y" )
  637. {
  638. grdf_setStatus(grp_main.grd_goodreq, "", [cRow]);
  639. sysf_messageBox("청구승인되었으므로 청구량을 수정" ,"E001");
  640. return;
  641. }
  642. var reqqty = ds_main_list_goodreq_goodreqlist.getColumn(cRow, "reqqty"); // 청구수량
  643. var reqmutpleqty = ds_main_list_goodreq_goodreqlist.getColumn(cRow, "reqmutpleqty"); //청구배수
  644. if(reqmutpleqty > 0 && (reqqty%reqmutpleqty != 0))
  645. {
  646. sysf_messageBox(cRow + "번째 물품은 청구수량 고정배수 ["+ reqmutpleqty + "] 에 맞춰서" , "C001");
  647. ds_main_list_goodreq_goodreqlist.rowposition = cRow;
  648. grp_main.grd_goodreq.setFocus();
  649. grp_main.grd_goodreq.setCellPos(grp_main.grd_goodreq.getBindCellIndex("body","reqqty"));
  650. grp_main.grd_goodreq.showEditor(true);
  651. return false;
  652. }
  653. }
  654. else if (grp_main.grd_goodreq.currentcol == grp_main.grd_goodreq.getBindCellIndex("body","deptaprvyn") ) {
  655. if ((ds_main_list_goodreq_goodreqlist.getColumn(cRow,"reqauth") != "2" ) ) {
  656. ds_main_list_goodreq_goodreqlist.setColumn(cRow,"deptaprvyn",ds_main_list_goodreq_goodreqlist.getColumn(cRow,"predeptaprvyn"));
  657. // insert 가 아니면..
  658. if (ds_main_list_goodreq_goodreqlist.getRowType(cRow) != 2) {
  659. grdf_setStatus(grp_main.grd_goodreq, "", [cRow]);
  660. }
  661. sysf_messageBox("청구승인권한이 없으므로 수정" ,"E001");
  662. } else if (ds_main_list_goodreq_goodreqlist.getColumn(cRow,"aprvyn") == "Y") {
  663. grdf_setStatus(grp_main.grd_goodreq, "", [cRow]);
  664. sysf_messageBox("발주승인이 되었으므로 수정" ,"E001");
  665. } else {
  666. ds_main_list_goodreq_goodreqlist.setColumn(cRow,"deptaprvdd" ,utlf_getCurrentDate());
  667. }
  668. }
  669. }
  670. /****************************************************************************************
  671. * Argument : N/A
  672. * Description : 입력시 키에 따른 처리
  673. ****************************************************************************************/
  674. function fGoodreqOnKeyDown(e) {
  675. var cCol = grp_main.grd_goodreq.currentcol;
  676. var cRow = grp_main.grd_goodreq.currentrow;
  677. if(e.keycode == 13)
  678. {
  679. if(cCol == grp_main.grd_goodreq.getBindCellIndex("body","reqqty"))
  680. {
  681. if(cRow < ds_main_list_goodreq_goodreqlist.rowcount-1)
  682. {
  683. ds_main_list_goodreq_goodreqlist.rowposition = cRow + 1;
  684. grp_main.grd_goodreq.setFocus();
  685. grp_main.grd_goodreq.setCellPos(cCol);
  686. grp_main.grd_goodreq.showEditor(true);
  687. }
  688. }
  689. }
  690. if(e.keycode == 9)
  691. {
  692. if(e.shiftKey)
  693. {
  694. if ( grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") == "normal"
  695. || grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") == "text"
  696. || grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") == "masknumber")
  697. {
  698. for(var curcol = cCol -1 ; curcol > -1 ; curcol--)
  699. {
  700. if ( grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") == "normal"
  701. || grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") == "text"
  702. || grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") == "masknumber")
  703. {
  704. //ds_main_list_goodreq_goodreqlist.rowp = cRow + 1;
  705. grp_main.grd_goodreq.setFocus();
  706. grp_main.grd_goodreq.setCellPos(curcol);
  707. grp_main.grd_goodreq.showEditor(true);
  708. return;
  709. }
  710. }
  711. }
  712. }
  713. else
  714. {
  715. if ( grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") != "normal"
  716. && grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") != "text"
  717. && grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") != "masknumber")
  718. {
  719. if(cCol-1 == grp_main.grd_goodreq.getBindCellIndex("body","goodcd") && utlf_isNull(ds_main_list_goodreq_goodreqlist.getColumn(cRow, cCol-1)))
  720. {
  721. //ds_main_list_goodreq_goodreqlist.rowp = cRow + 1;
  722. grp_main.grd_goodreq.setFocus();
  723. grp_main.grd_goodreq.setCellPos(grp_main.grd_goodreq.getBindCellIndex("body","goodcd"));
  724. grp_main.grd_goodreq.showEditor(true);
  725. return;
  726. }
  727. for(var curcol = cCol ; curcol < grp_main.grd_goodreq.getCellCount("body") ; curcol++)
  728. {
  729. if ( grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") == "normal"
  730. || grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") == "text"
  731. || grp_main.grd_goodreq.getCellProperty("body",cCol+1,"edittype") == "masknumber")
  732. {
  733. //ds_main_list_goodreq_goodreqlist.rowp = cRow + 1;
  734. grp_main.grd_goodreq.setFocus();
  735. grp_main.grd_goodreq.setCellPos(curcol);
  736. grp_main.grd_goodreq.showEditor(true);
  737. return;
  738. }
  739. }
  740. }
  741. }
  742. }
  743. }
  744. /****************************************************************************************
  745. * Argument : N/A
  746. * Description : 엔터가 눌러졌을때 처리
  747. ****************************************************************************************/
  748. function fGoodreqOnEnterCell() {
  749. var cCol = grp_main.grd_goodreq.currentcol;
  750. var cRow = grp_main.grd_goodreq.currentrow;
  751. if(cCol == grp_main.grd_goodreq.getBindCellIndex("body","deptaprvyn"))
  752. {
  753. if (ds_main_list_goodreq_goodreqlist.getColumn(cRow,"reqauth" ) != "2" )
  754. {
  755. ds_main_list_goodreq_goodreqlist.setColumn(cRow,"deptaprvyn",ds_main_list_goodreq_goodreqlist.getColumn(cRow,"predeptaprvyn") );
  756. // insert 가 아니면..
  757. if ( ds_main_list_goodreq_goodreqlist.getRowType(cRow) != 2 )
  758. {
  759. grdf_setStatus(grp_main.grd_goodreq, "", [cRow]);
  760. }
  761. sysf_messageBox("청구승인권한이 없으므로 수정" ,"E001");
  762. }
  763. else
  764. {
  765. if(ds_main_list_goodreq_goodreqlist.getColumn(cRow,"aprvyn") == "Y")
  766. {
  767. grdf_setStatus(grp_main.grd_goodreq, "", [cRow]);
  768. sysf_messageBox("발주승인이 되었으므로 수정" ,"E001");
  769. }
  770. }
  771. }
  772. else if(cCol == grp_main.grd_goodreq.getBindCellIndex("body","stocqty"))
  773. {
  774. if (ds_main_list_goodreq_goodreqlist.getColumn(cRow,"acptflag") == "Y")
  775. {
  776. sysf_messageBox("구매접수된 내역은 수정","E001");
  777. return;
  778. }
  779. if (ds_main_list_goodreq_goodreqlist.getColumn(cRow,"reqauth" ) == "1" &&
  780. ds_main_list_goodreq_goodreqlist.getColumn(cRow,"predeptaprvyn") == "Y")
  781. {
  782. grdf_setStatus(grp_main.grd_goodreq, "", [cRow]);
  783. sysf_messageBox("청구승인되었으므로 재고량을 수정" ,"E001");
  784. return;
  785. }
  786. }
  787. else if(cCol == grp_main.grd_goodreq.getBindCellIndex("body","reqqty"))
  788. {
  789. if (ds_main_list_goodreq_goodreqlist.getColumn(cRow,"acptflag") == "Y")
  790. {
  791. sysf_messageBox("구매접수된 내역은 수정","E001");
  792. return;
  793. }
  794. if (ds_main_list_goodreq_goodreqlist.getColumn(cRow,"reqauth" ) == "1" &&
  795. ds_main_list_goodreq_goodreqlist.getColumn(cRow,"predeptaprvyn") == "Y")
  796. {
  797. grdf_setStatus(grp_main.grd_goodreq, "", [cRow]);
  798. sysf_messageBox("청구승인되었으므로 청구량을 수정" ,"E001");
  799. return;
  800. }
  801. }
  802. }
  803. /****************************************************************************************
  804. * Argument : N/A
  805. * Description : Switch 속성변경 처리하는 함수
  806. ****************************************************************************************/
  807. function fViewToggle(pCls) {
  808. var MOVE_LENGTH = 584;
  809. if (pCls == 1) {
  810. grp_main.position.left = 0;
  811. grp_main.position.width = 1188;
  812. bbt_large.visible = false;
  813. //bbt_right.visible = false;
  814. gd_find.visible = false;
  815. } else {
  816. grp_main.position.left = 0 + MOVE_LENGTH;
  817. grp_main.position.width = 1188 - MOVE_LENGTH;
  818. bbt_large.visible = true;
  819. //bbt_right.visible = true;
  820. gd_find.visible = true;
  821. }
  822. }
  823. // // --------------------------------------------------
  824. // // 물품 찾기 속성변경 처리하는 함수
  825. // // --------------------------------------------------
  826. // function fGoodSearchToggle() {
  827. // if (cpt_cls.attribute("text") =="0") { // 상세접근 조회
  828. // // 메인 Grup
  829. // grd_goodlist.attribute("left" ) = "2" ;
  830. // grd_goodlist.attribute("top" ) = "83" ;
  831. // grd_goodlist.attribute("width" ) = "576";
  832. // grd_goodlist.attribute("height" ) = "574" ;
  833. //
  834. // btn_dtail.attribute("top" ) = "56" ;
  835. // bbt_apply2.attribute("top" ) = "56" ;
  836. //
  837. // lin_goodlist.attribute("y1" ) = "78";
  838. // lin_goodlist.attribute("y2" ) = "78";
  839. // grp_dtail.attribute("visibility") ="hidden" ;
  840. // cpt_cls.attribute("text") = "1";
  841. //
  842. // } else { // 줄이기
  843. // // 메인 Grup
  844. // grd_goodlist.attribute("left" ) = "2" ;
  845. // grd_goodlist.attribute("top" ) = "285" ;
  846. // grd_goodlist.attribute("width" ) = "576";
  847. // grd_goodlist.attribute("height" ) = "372" ;
  848. //
  849. // btn_dtail.attribute("top" ) = "258" ;
  850. // bbt_apply2.attribute("top" ) = "258" ;
  851. //
  852. // lin_goodlist.attribute("y1" ) = "280";
  853. // lin_goodlist.attribute("y2" ) = "280";
  854. // grp_dtail.attribute("visibility") ="visible" ;
  855. //
  856. // cpt_cls.attribute("text") = "0";
  857. //
  858. // }
  859. //
  860. // grd_goodlist.refresh();
  861. // }
  862. //
  863. // // --------------------------------------------------
  864. // // 물품 찾기 속성변경 처리하는 함수
  865. // // --------------------------------------------------
  866. // var vInstcd = "";
  867. // var vReqdeptcd = "";
  868. //
  869. // function fReqSetList() {
  870. // var vReqSetFlag = "N";
  871. //
  872. // if (model.getValue(opt_instcd.attribute("ref")) == "") {
  873. // messageBox("기관을 " ,"C002");
  874. // return;
  875. // }
  876. //
  877. // //
  878. // if (model.getValue(ipt_reqdeptcd.attribute("ref" )) == ""){
  879. // messageBox("청구 부서를 " ,"C002");
  880. // return;
  881. // }
  882. //
  883. // //
  884. // if (vInstcd != model.getValue(opt_instcd.attribute("ref" ))) vReqSetFlag = "Y";
  885. // if (vReqdeptcd != model.getValue(ipt_reqdeptcd.attribute("ref" ))) vReqSetFlag = "Y";
  886. //
  887. // if (vReqSetFlag == "N") return;
  888. //
  889. // vInstcd = model.getValue(opt_instcd.attribute("ref" ));
  890. // vReqdeptcd = model.getValue(ipt_reqdeptcd.attribute("ref" ));
  891. //
  892. // model.setValue("/root/send/reqmst/instcd" , model.getValue(opt_instcd.attribute("ref" )));
  893. // model.setValue("/root/send/reqmst/reqdeptcd" , model.getValue(ipt_reqdeptcd.attribute("ref" )));
  894. //
  895. // grd_reqset.fixedcellcheckbox(0, grd_reqset.colRef("select"),false) = true;
  896. //
  897. // misfGridInit(grd_reqset);
  898. // misfGridInit(grd_setlist);
  899. //
  900. // submit("TRRSD00211");
  901. //
  902. // if (grd_setlist.rows < 2) return;
  903. //
  904. // if (model.getValue(grd_setlist.nodeset + "["+ 1 + "]/reqdeptcd" ) =="") return;
  905. //
  906. // grd_setlist.row = 1;
  907. // fReqSetRead(grd_setlist.row);
  908. // misfMsterDetailRetrieve();
  909. // }
  910. //
  911. // // 부서 청구SET 물품
  912. // function fReqSetRead(pRow) {
  913. // model.setValue("/root/send/reqset/instcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/instcd" ));
  914. // model.setValue("/root/send/reqset/reqdeptcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/reqdeptcd" ));
  915. // model.setValue("/root/send/reqset/reqprid" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/reqprid" ));
  916. // model.setValue("/root/send/reqset/goodsetcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/goodsetcd" ));
  917. // model.setValue("/root/send/reqset/goodsetnm" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/goodsetnm" ));
  918. //
  919. // misfGridInit(grd_reqset);
  920. //
  921. // submit("TRRSD00210"); // 청구마감일자 조회 purcbaseweb
  922. // }
  923. /****************************************************************************************
  924. * Argument : N/A
  925. * Description : 선택물품을 적용
  926. ****************************************************************************************/
  927. function fSelectDataApply(pGridSource, pGridTarget, pGridNm, pQtyNm) {
  928. ds_copynode.clear();
  929. var vSelect = 0;
  930. var dsSource = eval(pGridSource.binddataset);
  931. var dsTarget = eval(pGridTarget.binddataset);
  932. for ( var row = 0; row < dsSource.rowcount; row++) {
  933. if(dsSource.getColumn(row,"select") == "true")
  934. {
  935. if(dsTarget.findRow("goodcd",dsSource.getColumn(row,"goodcd")) < 0)
  936. vSelect++;
  937. else
  938. dsSource.setColumn(row,"select","false");
  939. } else {
  940. dsSource.setColumn(row,"select","false");
  941. }
  942. }
  943. if (vSelect < 1) {
  944. return;
  945. }
  946. dsSource.filter("select=='true'");
  947. var rCVS = dsf_getDsCSV(dsSource);
  948. dsSource.filter("");
  949. var cur_row = dsTarget.rowposition;
  950. //var status = dsTarget.getColumn(cur_row, "m");
  951. dsf_setCSVToDs("ds_copynode"+"_"+pGridNm, rCVS);
  952. fSettingGoodList("ds_copynode", pGridNm , pQtyNm);
  953. for (var row = 0 ; row < dsSource.rowcount; row++) {
  954. dsSource.setColumn(row , "select" , "false");
  955. }
  956. }
  957. var vAllSizeCol = 0;
  958. var vAllSizeRow = 0;
  959. var vAllSizePath = "ds_main_codelist";
  960. var vGoodReqPath = "ds_main_list_goodreq_goodreqlist";
  961. /****************************************************************************************
  962. * Argument : pRow : 행번호
  963. * : pCol : 열번호
  964. * : pPos : 마우스Y좌표
  965. * Description : All Size 읽어오는 함수
  966. ****************************************************************************************/
  967. function fAllSizeRead(pRow, pCol, pPos) {
  968. var iClickY = pPos - 100;
  969. vAllSizeCol = pCol;
  970. vAllSizeRow = pRow;
  971. if (iClickY > 375) iClickY = iClickY - 319;
  972. grp_main.grp_allsize.position.top = iClickY;
  973. grp_main.grp_allsize.visible = true;
  974. ds_send_allsize.setColumn( 0, "instcd", grp_sea.opt_instcd.value);
  975. ds_send_allsize.setColumn( 0, "goodcd", ds_main_list_goodreq_goodreqlist.getColumn(pRow,"goodcd") );
  976. var oParam = {};
  977. oParam.id = "TRRSD00281";
  978. oParam.service = "purccommonapp.PurcCommon";
  979. oParam.method = "reqGetGoodCode";
  980. oParam.inds = "req=ds_send_allsize";
  981. oParam.outds = "ds_main_codelist=codelist";
  982. oParam.async = false;
  983. //oParam.callback = "cf_TRRSD00281";
  984. tranf_submit(oParam);
  985. }
  986. /****************************************************************************************
  987. * Argument : N/A
  988. * Description : All Size 선택
  989. ****************************************************************************************/
  990. function fAllSizeSelect() {
  991. grp_main.grp_allsize.visible = false;
  992. var vQty = 0;
  993. var vSize = "";
  994. var vSpec = "";
  995. var vModel = "";
  996. var vCheck = "";
  997. var vPath = "";
  998. var vTarget = "";
  999. var tRow = 0;
  1000. var vSource = "";
  1001. var sRow = 0;
  1002. var vGoodcd = eval(vGoodReqPath).getColumn(vAllSizeRow,"goodcd");
  1003. for (var i = 0; i < eval(vAllSizePath).rowcount; i++) {
  1004. if (eval(vAllSizePath).getColumn(i, "chk") == "true") {
  1005. vSize = eval(vAllSizePath).getColumn(i, "allsizespecid");
  1006. vSpec = eval(vAllSizePath).getColumn(i, "goodspec" );
  1007. vModel = eval(vAllSizePath).getColumn(i, "goodmodel" );
  1008. vQty = eval(vAllSizePath).getColumn(i, "qty" );
  1009. if(utlf_isNull(vQty)) vQty = 0;
  1010. if (eval(vGoodReqPath).getCaseCount("goodcd=='"+vGoodcd+"' && allsizespecid=='"+vSize+"'") == 0) {
  1011. if (vCheck == "") {
  1012. vCheck = "Y";
  1013. //vTarget = vGoodReqPath+"["+(vAllSizeRow)+"]" ;
  1014. vTarget = vGoodReqPath;
  1015. tRow = vAllSizeRow;
  1016. if (eval(vGoodReqPath).getRowType(vAllSizeRow) == 1) grdf_setStatus(grp_main.grd_goodreq, "U", [vAllSizeRow]);
  1017. } else {
  1018. misfGridIUD(grp_main.grd_goodreq, "A");
  1019. addRow = eval(vGoodReqPath).rowcount - 1;
  1020. fDefaultSetting(addRow);
  1021. //vTarget = grd_goodreq.nodeset + "[" + addRow + "]/";
  1022. vTarget = vGoodReqPath;
  1023. tRow = addRow;
  1024. //vSource = vGoodReqPath + "[" + vAllSizeRow + "]/";
  1025. vSource = vGoodReqPath;
  1026. sRow = vAllSizeRow;
  1027. fSettingGoodData(vTarget, vSource, "basevol", "requnit", "S", tRow, sRow);
  1028. grd_goodreq.cellstyle("background-color" , addRow, 9) = "#FFFF00";
  1029. }
  1030. } else {
  1031. // vPath = vGoodReqPath+"[goodcd='"+ vGoodcd+"' and allsizespecid='"+vSize+"']";
  1032. }
  1033. eval(vTarget).setColumn( tRow, "allsizeyn", Y);
  1034. eval(vTarget).setColumn( tRow, "allsizespecid", vSize);
  1035. eval(vTarget).setColumn( tRow, "goodspec", vSpec);
  1036. eval(vTarget).setColumn( tRow, "goodmodel", vModel);
  1037. if (vQty != "" && vQty != 0) {
  1038. eval(vTarget).setColumn( tRow, "stocqty", vQty);
  1039. }
  1040. }
  1041. }
  1042. }
  1043. // /**
  1044. // * @ver : 2010-10-17
  1045. // * @desc : 신규 체크박스 클릭시
  1046. // * @param :
  1047. // * @return :
  1048. // * @---------------------------------------------------
  1049. // */
  1050. // /*
  1051. // function fNewReqNo() {
  1052. //
  1053. // if ( model.getValue(chk_reqnonew.attribute("ref")) == "Y" ){
  1054. // if (grd_goodreq.rows < 2) return;
  1055. //
  1056. // RetCls = messageBox("현재일자로 신규 생성합니다","Q003");
  1057. // if ( RetCls == 6){
  1058. // model.setValue(chk_reqnonew.attribute("ref"), "Y"); // reqnonew 인스턴스값이 <> N Y </> 으로 나와서 해당부분에서 처리함(문제발생시 if문 삭제)
  1059. // var ReqNo = model.getValue("/root/main/DeptReqnoLists/reqnolist/reqno");
  1060. // var reqnodelist = instance1.selectNodes("/root/main/DeptReqnoLists/reqnolist").length;
  1061. // var MaxReqno="";
  1062. // var comboItemNodeSet ="";
  1063. // for(var k =reqnodelist;k > 0;k-- ){
  1064. // if(k == reqnodelist){
  1065. // MaxReqno = model.getValue("/root/main/DeptReqnoLists/reqnolist["+k+"]/reqno");
  1066. // comboItemNodeSet = "/root/main/DeptReqnoLists/reqnolist["+k+"]";
  1067. // }
  1068. //
  1069. // break;
  1070. // }
  1071. // var comboValueRef = "reqno";
  1072. // var itemNode = instance1.createNode("element", instance1.selectSingleNode(comboItemNodeSet).nodeName, "");
  1073. // var valueNode = instance1.createNode("element", comboValueRef, "");
  1074. // valueNode.value = "000"+(parseInt(MaxReqno)+1);
  1075. // itemNode.appendChild(valueNode);
  1076. // var destNode = instance1.selectSingleNode(comboItemNodeSet);
  1077. // var pDestNode = destNode.parentNode;
  1078. // pDestNode.insertAfter(itemNode, destNode);
  1079. // model.setValue("/root/send/goodreq/reqno","000"+(parseInt(MaxReqno)+1));
  1080. // cmb_reqno.dispatch("xforms-value-changed");
  1081. // }else if ( RetCls == 7){
  1082. // model.setValue(chk_reqnonew.attribute("ref"), "");
  1083. // chk_reqnonew.refresh();
  1084. // return;
  1085. // }
  1086. // }else{
  1087. // fDeptReqNoQuery();
  1088. // }
  1089. // }
  1090. //
  1091. // */
  1092. // /*
  1093. // // 신규 Check 시 작업구분
  1094. // function fNewReqNoVisibility() {
  1095. // if ( model.getValue(chk_reqnonew.attribute("ref")) == "Y") {
  1096. // // cmb_reqno.disabled = true;
  1097. // ipt_reqdd.attribute("visibility") = "hidden";
  1098. // ipt_reqddnew.attribute("visibility") = "visible" ;
  1099. //
  1100. // // cmb_reqno.attribute("visibility") = "hidden" ;
  1101. // // cmb_hidden.attribute("visibility") = "visible" ;
  1102. //
  1103. // model.setValue(ipt_reqddnew.attribute("ref"), getCurrentDate() ); //신규로 체크되면 무조건 오늘날짜로 셋팅된다
  1104. //
  1105. // } else {
  1106. // // cmb_reqno.disabled = false;
  1107. // ipt_reqddnew.attribute("visibility") = "hidden";
  1108. // ipt_reqdd.attribute("visibility") = "visible" ;
  1109. //
  1110. // // cmb_reqno.attribute("visibility") = "visible" ;
  1111. // // cmb_hidden.attribute("visibility") = "hidden" ;
  1112. // }
  1113. // model.refresh();
  1114. // }
  1115. // */
  1116. /****************************************************************************************
  1117. * Argument : N/A
  1118. * Description :
  1119. ****************************************************************************************/
  1120. function fSettingGoodData(pTarget, pSource, pUserqtynm, pRequnit, pCls, nTarget, nSource) {
  1121. var vReqDept = group1.ipt_reqdeptcd.value; // 청구부서
  1122. pTarget.addColumn("goodunitcost","string");
  1123. pTarget.addColumn("prcpqty","string");
  1124. pTarget.addColumn("prcpunit","string");
  1125. pTarget.addColumn("goodunitcost","string");
  1126. pTarget.addColumn("prcpqty","string");
  1127. pTarget.addColumn("prcpunit","string");
  1128. pTarget.setColumn(nTarget, "goodunitcost" , pSource.getColumn(nSource, "goodunitcost" ));
  1129. pTarget.setColumn(nTarget, "goodcd" , pSource.getColumn(nSource, "goodcd" ));
  1130. pTarget.setColumn(nTarget, "goodnm" , pSource.getColumn(nSource, "goodnm" ));
  1131. pTarget.setColumn(nTarget, "goodspec" , pSource.getColumn(nSource, "goodspec" ));
  1132. pTarget.setColumn(nTarget, "reqflag" , pSource.getColumn(nSource, "reqflag" ));
  1133. pTarget.setColumn(nTarget, "goodflag" , pSource.getColumn(nSource, "goodflag" ));
  1134. pTarget.setColumn(nTarget, "reqqty" , pSource.getColumn(nSource, pUserqtynm ));
  1135. pTarget.setColumn(nTarget, "winacnt" , pSource.getColumn(nSource, "winacnt" ));
  1136. pTarget.setColumn(nTarget, "reqmutpleqty" , pSource.getColumn(nSource, "reqmutpleqty" ));
  1137. pTarget.setColumn(nTarget, "requnit" , pSource.getColumn(nSource, pRequnit ));
  1138. pTarget.setColumn(nTarget, "reqpsnid" , sysf_getUserInfo("userid"));
  1139. pTarget.setColumn(nTarget, "reqpsnnm" , sysf_getUserInfo("usernm"));
  1140. pTarget.setColumn(nTarget, "prcpqty" , pSource.getColumn(nSource, "prcpqty" ));
  1141. pTarget.setColumn(nTarget, "prcpunit" , pSource.getColumn(nSource, "prcpunit" ));
  1142. pTarget.setColumn(nTarget, "prprtystocqty" , pSource.getColumn(nSource, "prprtystocqty" ));
  1143. //2012.11.06 박준범(의료폐기물 전용용기 여부 컬럼 추가)
  1144. pTarget.setColumn(nTarget, "wstyn" , pSource.getColumn(nSource, "wstyn" ));
  1145. }
  1146. /****************************************************************************************
  1147. * Argument : N/A
  1148. * Description : 물품검색 TAB 클릭시
  1149. ****************************************************************************************/
  1150. function fGoodListReady() {
  1151. misfGridInit(gd_find.grd_goodlist);
  1152. fGoodListKeySet(); // 물품검색 기본 KEY SET
  1153. //부서코드
  1154. if (utlf_isNull(eval(PURTARGET_NODE).getColumn(0,"reqdeptcd")))
  1155. ds_send_goodlist.setColumn(0,"reqdeptcd", sysf_getUserInfo("dutplcecd"));
  1156. else ds_send_goodlist.setColumn(0,"reqdeptcd", group1.ipt_reqdeptcd.value);
  1157. }
  1158. /****************************************************************************************
  1159. * Argument : N/A
  1160. * Description : 물품검색 기본 KEY SET
  1161. ****************************************************************************************/
  1162. function fGoodListKeySet() {
  1163. ds_send_goodlist.setColumn( 0, "lrgcd" , "");
  1164. ds_send_goodlist.setColumn( 0, "mdlcd" , "");
  1165. ds_send_goodlist.setColumn( 0, "instcd" , grp_sea.opt_instcd.value);
  1166. ds_send_goodlist.setColumn( 0, "goodflag", "K");
  1167. ds_send_goodlist.setColumn( 0, "instcdnm", grp_sea.opt_instcdnm.value);
  1168. }
  1169. /****************************************************************************************
  1170. * Argument : N/A
  1171. * Description : 물품검색 조회
  1172. ****************************************************************************************/
  1173. function fGoodListSearch() {
  1174. misfGridInit(gd_find.grd_goodlist);
  1175. ds_send_goodlist.setColumn( 0, "instcd", grp_sea.opt_instcd.value);
  1176. ds_send_goodlist.setColumn( 0, "wareflag", group1.cmb_wareflag.value);
  1177. ds_send_goodlist.setColumn( 0, "reqdeptcd", group1.ipt_reqdeptcd.value);
  1178. ds_send_goodlist.setColumn( 0, "rpirdd", group1.ipt_reqdd.value);
  1179. var oParam = {};
  1180. oParam.id = "TRRSD00406";
  1181. oParam.service = "purccommonapp.PurcCommon";
  1182. oParam.method = "reqGetGoodListByCond";
  1183. oParam.inds = "req=ds_send_goodlist";
  1184. oParam.outds = "ds_main_GoodLists_goodlist=goodlist";
  1185. oParam.async = false;
  1186. oParam.callback = "cf_TRRSD00406";
  1187. tranf_submit(oParam);
  1188. }
  1189. function cf_TRRSD00406(sSvcId, nErrorCode, sErrorMsg) {
  1190. if(nErrorCode < 0) return;
  1191. ds_main_GoodLists_goodlist.updatecontrol = false;
  1192. ds_main_GoodLists_goodlist.addColumn("prcpqty","string");
  1193. ds_main_GoodLists_goodlist.addColumn("prcpunit","string");
  1194. dsf_setFixVal(ds_main_GoodLists_goodlist,"select:false");
  1195. ds_main_GoodLists_goodlist.updatecontrol = true;
  1196. }
  1197. // // --------------------------------------------------
  1198. // // 물품찾기 처리하는 함수
  1199. // // --------------------------------------------------
  1200. // /*
  1201. // function fReqFlagCheck() {
  1202. //
  1203. // //청구권/승인권 부서 조회.
  1204. // rszfReqDeptGetComboList("ipt_reqdeptcd", model.getValue(opt_instcd.attribute("ref")), getUserInfo("userid"), cmb_reqflag.value);
  1205. //
  1206. // //rszfReqDeptGetComboList("ipt_reqdeptcd", model.getValue(opt_instcd.attribute("ref")), '80030647', 'S');
  1207. // //청구부서의 순서가 0번째인것을 선택하는데 여기서 부서와 비교해서 ipt_reqdeptcd.select()를
  1208. // //해당부서와 동일하게 해서 보여지도록 한다
  1209. //
  1210. // rszfComboReqPridList("1",model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref")));
  1211. //
  1212. // cmb_reqpridflag.refresh();
  1213. // cmb_reqpridflag.select(0);
  1214. //
  1215. //
  1216. // // ----------------------------------------------------------------------------------------------------
  1217. // // 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다.
  1218. // // ----------------------------------------------------------------------------------------------------
  1219. // model.setValue(opt_goodflag.attribute("ref"), rszfGetGoodFlagByReqFlag(model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref"))));
  1220. //
  1221. // fGoodListKeySet(); // 물품검색 기본 KEY SET
  1222. //
  1223. // if (model.getValue(cmb_reqpridflag.attribute("ref")).length == 0 ) {
  1224. // fSetReqAuth();
  1225. // btn_search.dispatch("DOMActivate");
  1226. // }
  1227. //
  1228. // //청구 마지막 일자 조회.
  1229. // fLastDaySearch();
  1230. //
  1231. // //청구일자 기한체크.
  1232. // if (fLastDayCheck()) {
  1233. // messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", "");
  1234. // model.setValue(ipt_reqdd.attribute("ref"), model.getValue(ipt_todd.attribute("ref")) );
  1235. // return;
  1236. // }
  1237. // }
  1238. //
  1239. // */
  1240. //
  1241. // /**
  1242. // * @ver : 2010-10-17
  1243. // * @desc : 청구부서 Set
  1244. // * @param :
  1245. // * @return :
  1246. // * @---------------------------------------------------
  1247. // */
  1248. // function fReqdeptCopy(){
  1249. // var cPath = "/root/init/CopyData"
  1250. // var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1251. // var tPath = "/root/init/ReqDeptLists/reqdeptlist";
  1252. //
  1253. // var iDataCnt = getNodesetCount(sPath);
  1254. //
  1255. // if (iDataCnt < 1) {
  1256. // return;
  1257. // }
  1258. //
  1259. // model.removeNodeset(tPath);
  1260. //
  1261. // var iDataCnt = getNodesetCount(sPath);
  1262. // var Idx = 1;
  1263. //
  1264. // // -----------------------------------------------------------------------------------------------
  1265. // // 청구부서를 세션의 부서와 비교해서 ipt_reqdeptcd.select()를
  1266. // // 해당부서와 동일하게 해서 보여지도록 한다. 부서가 없을 경우 0번째 부서가 콤보에 보여짐
  1267. // // 사용자의 세션부서가 청구부서의 젤 상단에 위치하도록 노드셋 데이터 수정 하는 부분
  1268. // // -----------------------------------------------------------------------------------------------
  1269. // if (model.getValue(sPath+"[reqdeptcd='"+ getUserInfo("dutplcecd") + "']" +"/reqdeptnm") !="") {
  1270. // model.setValue(cPath+"/value",model.getValue(sPath+"[reqdeptcd='"+ getUserInfo("dutplcecd") + "']" +"/reqdeptcd"));
  1271. // model.setValue(cPath+"/label",model.getValue(sPath+"[reqdeptcd='"+ getUserInfo("dutplcecd") + "']" +"/reqdeptnm"));
  1272. //
  1273. // model.makeNode(tPath+"["+ Idx +"]" );
  1274. // model.copyNode(tPath+"["+ Idx +"]", cPath);
  1275. // Idx++;
  1276. // }
  1277. //
  1278. // // 청구부서 Set
  1279. // for (var k = 1; k <= iDataCnt; k++){
  1280. //
  1281. // vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd");
  1282. // vReqDeptNm = model.getValue(sPath+"["+k+"]/reqdeptnm");
  1283. //
  1284. // if ((vReqDeptNm != "" ) &&
  1285. // (model.getValue(tPath+"[value='"+ vReqDept + "']" +"/value") == "") ) {
  1286. //
  1287. // model.setValue(cPath+"/value",vReqDept );
  1288. // model.setValue(cPath+"/label",vReqDeptNm);
  1289. //
  1290. // model.makeNode(tPath+"["+ Idx +"]" );
  1291. // model.copyNode(tPath+"["+ Idx +"]", cPath);
  1292. //
  1293. // Idx++;
  1294. //
  1295. // } //end if
  1296. // } //end for
  1297. //
  1298. // ipt_reqdeptcd.refresh();
  1299. //
  1300. // //fReqpridCopy(); // 청구 주기Set
  1301. //
  1302. // // fDeptReqNoQuery(); // 청구부서별 청구번호를 조회한다 fReqpridCopy 안에서 실행 제외 시킴 [20090129 YYJ]
  1303. //
  1304. // }
  1305. //
  1306. //
  1307. // /**
  1308. // * @ver : 2010-10-17
  1309. // * @desc : 청구 주기Set
  1310. // * @param :
  1311. // * @return :
  1312. // * @---------------------------------------------------
  1313. // */
  1314. // /*
  1315. // function fReqpridCopy(){
  1316. //
  1317. // var cPath = "/root/init/CopyData"
  1318. // var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1319. // var tPath = "/root/init/ReqpridLists/reqpridlist";
  1320. //
  1321. // if (model.getValue(ipt_reqdeptcd.attribute("ref")).length== 0 ) {
  1322. // messageBox("청구부서를 " ,"C002");
  1323. // model.setFocus("ipt_reqdeptcd");
  1324. // return;
  1325. // }
  1326. //
  1327. // var iDataCnt = getNodesetCount(sPath);
  1328. //
  1329. // if (iDataCnt < 1) {
  1330. // return;
  1331. // }
  1332. //
  1333. // model.removeNodeset(tPath);
  1334. //
  1335. // var Idx = 1;
  1336. // var iDataCnt = getNodesetCount(sPath);
  1337. // var tReqDept = model.getValue(ipt_reqdeptcd.attribute("ref"));
  1338. //
  1339. // for (var k = 1; k <= iDataCnt; k++){
  1340. // vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd");
  1341. //
  1342. //
  1343. // if (vReqDept == tReqDept) {
  1344. //
  1345. // //vReqPrid = model.getValue(sPath+"["+k+"]/reqprid");
  1346. // //vReqPridNm = model.getValue(sPath+"["+k+"]/reqpridnm");
  1347. //
  1348. // if ((vReqPridNm != "" ) &&
  1349. // (model.getValue(tPath+"[value='"+ vReqPrid + "']" +"/value") == "") ) {
  1350. // model.setValue(cPath+"/value",vReqPrid );
  1351. // model.setValue(cPath+"/label",vReqPridNm);
  1352. //
  1353. // model.makeNode(tPath+"["+ Idx +"]" );
  1354. // model.copyNode(tPath+"["+ Idx +"]", cPath);
  1355. //
  1356. // Idx++;
  1357. // }
  1358. // }
  1359. // }
  1360. //
  1361. // //
  1362. // if (model.getValue("/root/send/goodlist/purcdeptflag") == "P") { //구매부서구분 : P
  1363. // var codynode = instance1.selectNodes(tPath + "/*");
  1364. //
  1365. // if (codynode.length < 1) {
  1366. // model.setValue(cPath+"/value","1" );
  1367. // model.setValue(cPath+"/label","일");
  1368. // model.makeNode(tPath+"[1]" );
  1369. // model.copyNode(tPath+"[1]" , cPath);
  1370. //
  1371. // model.setValue(cPath+"/value","4" );
  1372. // model.setValue(cPath+"/label","월");
  1373. // model.makeNode(tPath+"[2]" );
  1374. // model.copyNode(tPath+"[2]" , cPath);
  1375. //
  1376. // model.setValue(cPath+"/value","2" );
  1377. // model.setValue(cPath+"/label","주");
  1378. // model.makeNode(tPath+"[3]" );
  1379. // model.copyNode(tPath+"[3]" , cPath);
  1380. // }
  1381. // }
  1382. //
  1383. // //
  1384. //
  1385. //
  1386. // }
  1387. // */
  1388. //
  1389. // // 청구승인자 Check
  1390. // function fPurcAuthInfo() {
  1391. //
  1392. // vPurcAuth = "1";
  1393. // model.setValue(ckb_accept.attribute("ref"), "");
  1394. //
  1395. // var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1396. //
  1397. // var iDataCnt = getNodesetCount(sPath);
  1398. //
  1399. // if (iDataCnt < 1) {
  1400. // return;
  1401. // }
  1402. //
  1403. // model.removeNodeset(tPath);
  1404. //
  1405. // var iDataCnt = getNodesetCount(sPath);
  1406. // var tReqDept = model.getValue(ipt_reqdeptcd.attribute("ref" )); // 청구부서
  1407. // //var tReqprid = model.getValue(cmb_reqpridflag.attribute("ref")); // 청구주기
  1408. //
  1409. // for (var k = 1; k <= iDataCnt; k++){
  1410. // vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd"); // 청구부서
  1411. // //vReqprid = model.getValue(sPath+"["+k+"]/reqprid" ); // 청구주기
  1412. // if ((vReqDept == tReqDept) ) {
  1413. //
  1414. // if (model.getValue(sPath+"["+k+"]/reqaprvflag") == "2") {
  1415. // vPurcAuth = "2";
  1416. // model.setValue(ckb_accept.attribute("ref"), "Y");
  1417. // break;
  1418. // }
  1419. // }
  1420. // }
  1421. // }
  1422. //
  1423. // // 청구승인자 Check Row별 Check
  1424. // function fPurcAuthInfoRow(pReqDept,pReqprid,pReqFlag) {
  1425. //
  1426. // var sPath = "/root/main/ReqpsnLists/reqpsnlist";
  1427. //
  1428. // var vReqAuth = model.getValue(sPath+ "[reqdeptcd='"+ pReqDept
  1429. // + "' and reqprid='" + pReqprid
  1430. // + "' and reqflag='" + pReqFlag + "']/reqaprvflag"); // 청구권한
  1431. //
  1432. // vReqAuth = (vReqAuth == "") ? "1" : vReqAuth;
  1433. //
  1434. // return vReqAuth;
  1435. // }
  1436. //
  1437. //
  1438. // /**
  1439. // * @ver : 2010-10-17
  1440. // * @desc : 청구부서별 청구번호를 조회한다
  1441. // * @param :
  1442. // * @return :
  1443. // * @---------------------------------------------------
  1444. // */
  1445. // /*
  1446. // function fDeptReqNoQuery() {
  1447. // model.refresh();
  1448. //
  1449. // //if (gReqNoReadFlag) return; //청구번호 읽기
  1450. // // alert(++gcount);
  1451. // if (getUserInfo("dutplceinstcd") != "" && // 기관코드
  1452. // model.getValue(ipt_searchreqdeptcd.attribute("ref")) != "" && // 청구부서
  1453. // model.getValue(ipt_searchreqdd.attribute("ref")) != "" ) // 청구일자
  1454. // {
  1455. // submit("TRRSD00408");
  1456. //
  1457. // cmb_reqno.refresh();
  1458. //
  1459. // var nodelist = instance1.selectNodes("/root/main/DeptReqnoLists/reqnolist").length;
  1460. // if(nodelist >= 1) cmb_reqno.select(0);
  1461. // }
  1462. // }
  1463. // */
  1464. // function fMaxReqNo(control_nm){
  1465. // if(submit("TRRSD20005",false)){
  1466. // var reqno = model.getValue("/root/init/reqnoinfo/maxreqno/reqno");
  1467. // model.setValue(control_nm.attribute("ref"), reqno);
  1468. // control_nm.refresh();
  1469. // }
  1470. // }
  1471. /****************************************************************************************
  1472. * Argument : N/A
  1473. * Description : 신규입력
  1474. ****************************************************************************************/
  1475. function fInitGoodReqMain(){
  1476. var p = "ds_main_list_goodreq_goodreqmainlist";
  1477. eval(p).clearData(); eval(p).addRow();
  1478. var instcd = sysf_getUserInfo("dutplceinstcd");
  1479. var reqdd = utlf_getCurrentDate();
  1480. var wareflag = "1"; //물류창고
  1481. var reqno = fGetMaxReqNo(instcd,reqdd);
  1482. eval(p).setColumn(0, "instcd", instcd);
  1483. eval(p).setColumn(0, "reqdd", reqdd);
  1484. eval(p).setColumn(0, "reqno", reqno);
  1485. dsf_makeValue(eval(p),"reqdeptcd","string",sysf_getUserInfo("dutplcecd"));
  1486. dsf_makeValue(eval(p),"reqdeptnm","string",sysf_getUserInfo("dutplcenm"));
  1487. dsf_makeValue(eval(p),"wareflag","string",wareflag);
  1488. dsf_makeValue(eval(p),"newYN","string","Y");
  1489. dsf_makeValue(eval(p),"reqpsnid","string",sysf_getUserInfo("userid"));
  1490. dsf_makeValue(eval(p),"reqpsnnm","string",sysf_getUserInfo("usernm"));
  1491. dsf_makeValue(eval(p),"cmt","string","");
  1492. misfGridInit(grp_main.grd_goodreq);
  1493. misfGridInit(gd_find.grd_goodlist);
  1494. group1.ipt_reqdd.enable = true;
  1495. grp_sea.btn_save.enable = true;
  1496. if(sysf_getUserInfo("dutplcecd") != "4020334000" && sysf_getUserInfo("dutplcecd") != "3080000000"){
  1497. group1.ipt_reqdeptcd.enable = false;
  1498. group1.btn_reqdeptcd.enable = false;
  1499. }else{
  1500. group1.ipt_reqdeptcd.enable = true;
  1501. group1.btn_reqdeptcd.enable = true;
  1502. }
  1503. group1.cmb_wareflag.enable = true;
  1504. group1.txa_cmt.enable = true;
  1505. group1.txa_cmt.style.background = "#ffffff";
  1506. }
  1507. /****************************************************************************************
  1508. * Argument : p_instcd : 기관코드
  1509. * : p_reqdd : 기준일자
  1510. * Description : 순번 가져오기
  1511. ****************************************************************************************/
  1512. function fGetMaxReqNo(p_instcd,p_reqdd){
  1513. var retValue;
  1514. ds_send_nosearch.clearData();
  1515. dsf_makeValue( ds_send_nosearch, "instcd", "string", p_instcd);
  1516. dsf_makeValue( ds_send_nosearch, "reqdd", "string", p_reqdd);
  1517. var oParam = {};
  1518. oParam.id = "TRRSD20007";
  1519. oParam.service = "reqconsapp.ReqConsMngt";
  1520. oParam.method = "reqGetMaxReqNo";
  1521. oParam.inds = "req=ds_send_nosearch";
  1522. oParam.outds = "ds_init_reqnoinfo_maxreqno=maxreqno";
  1523. oParam.async = false;
  1524. oParam.callback = "cf_TRRSD20007";
  1525. tranf_submit(oParam);
  1526. if(arErrorCode.pop("TRRSD20007") > -1) {
  1527. retValue = ds_init_reqnoinfo_maxreqno.getColumn(0, "reqno");
  1528. }
  1529. ds_send_nosearch.clearData();
  1530. return retValue;
  1531. }
  1532. function cf_TRRSD20007(sSvcId, nErrorCode, sErrorMsg) {
  1533. arErrorCode.push(sSvcId, nErrorCode);
  1534. ds_init_reqnoinfo_maxreqno.updateColID("maxreqno","reqno");
  1535. }
  1536. // function fDeptReqNoQuery() {
  1537. //
  1538. // }
  1539. //
  1540. // /*
  1541. // // 청구 구분 Check
  1542. // function fReqFlagCheck(){
  1543. // if(model.getValue(cmb_reqflag.attribute("ref")) == 'H'){
  1544. // grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = false;
  1545. // }else{
  1546. // grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = true;
  1547. // }
  1548. //
  1549. //
  1550. // // 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다.
  1551. //
  1552. //
  1553. // // opt_goodflag.value = rszfGetGoodFlagByReqFlag(opt_instcd.value,cmb_reqflag.value);
  1554. //
  1555. // fGoodListKeySet(); // 물품검색 기본 KEY SET
  1556. //
  1557. // //
  1558. // //if (model.getValue(cmb_reqpridflag.attribute("ref")).length == 0 ) {
  1559. // // fSetReqAuth();
  1560. // // btn_search.dispatch("DOMActivate");
  1561. // //}
  1562. //
  1563. // //청구 마지막 일자 조회.
  1564. // fLastDaySearch();
  1565. // //청구일자 기한체크.
  1566. // if(fLastDayCheck())
  1567. // {
  1568. // messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", "");
  1569. // model.setValue(ipt_reqdd.attribute("ref"), model.getValue(ipt_todd.attribute("ref")) );
  1570. // return;
  1571. // }
  1572. // }
  1573. //
  1574. // */
  1575. // /*
  1576. // // 청구 구분 Check
  1577. // function fReqFlagCheck_bak(){
  1578. // if(model.getValue(cmb_reqflag.attribute("ref")) == 'H'){
  1579. // grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = false;
  1580. // }else{
  1581. // grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = true;
  1582. // }
  1583. //
  1584. // //청구부서 청구권/승인권 부서 조회.
  1585. // rszfReqDeptGetComboList("ipt_reqdeptcd", model.getValue(opt_instcd.attribute("ref")), getUserInfo("userid"), model.getValue(cmb_reqflag.attribute("ref")));
  1586. //
  1587. // rszfComboReqPridList("1",model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref")));
  1588. //
  1589. //
  1590. // // 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다.
  1591. //
  1592. //
  1593. // model.setValue(opt_goodflag.attribute("ref") , rszfGetGoodFlagByReqFlag(model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref"))) );
  1594. //
  1595. // fGoodListKeySet(); // 물품검색 기본 KEY SET
  1596. //
  1597. //
  1598. // //청구 마지막 일자 조회.
  1599. // fLastDaySearch();
  1600. // //청구일자 기한체크.
  1601. // if(fLastDayCheck())
  1602. // {
  1603. // messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", "");
  1604. // model.setValue(ipt_reqdd.attribute("ref"), model.getValue(ipt_todd.attribute("ref")) );
  1605. // return;
  1606. // }
  1607. // }
  1608. // */
  1609. //
  1610. // // 청구구분
  1611. // var tReqFlagData = "A." // 01 Y 의료소모품
  1612. // + "B." // 02 Z 일반소모품
  1613. // + "C." // 03 K 의료비품
  1614. // + "D." // 04 G 일반비품
  1615. // + "E." // 05 P 약품및재료
  1616. // + "F." // 06 P 제제약품
  1617. // + "G." // 07 E 장비
  1618. // + "H." // 08 P 수액
  1619. // + "I." // 09 P 조영제
  1620. // + "S." // 10 B 수리관리
  1621. // + "X." // 11 T 교환물품
  1622. // + "Y." // 12 T 청구물품
  1623. // + "Z" ; // 13 T 멸균의뢰
  1624. //
  1625. // var tReqFlag = tReqFlagData.split(".");
  1626. //
  1627. // // 물품구분
  1628. // // [2010.08.26]AS-IS 코드 TO_BE 코드 전환을 위한 물품구분 변경 (goodflag= P) => (goodflag= PH)
  1629. // var tGoodFlagData = "Y." // 01 의료소모품
  1630. // + "Z." // 02 일반소모품
  1631. // + "U." // 03 의료비품
  1632. // + "GE." // 04 일반비품
  1633. // + "PH." // 05 약품
  1634. // + "PH." // 06 약품
  1635. // + "PH." // 07 약품및재료
  1636. // + "PH." // 08 약품
  1637. // + "PH." // 09 약품
  1638. // + "BC." // 10 수리부품
  1639. // + "TM." // 11 공급실물품
  1640. // + "TM." // 12 공급실물품
  1641. // + "TM" ; // 13 공급실물품
  1642. // var tGoodFlag = tGoodFlagData.split(".");
  1643. //
  1644. // var tPath = "/root/init/cmb_goodflag";
  1645. // var sPath = "/root/init/cmb_goodflagcopy";
  1646. //
  1647. // //
  1648. // /*
  1649. // function fReqFagChange(pReqFlag) {
  1650. //
  1651. // for (i = 0; i < tReqFlag.length; i++) {
  1652. // if (tReqFlag[i] == pReqFlag) {
  1653. // model.setValue(cmb_goodflag.attribute("ref"), tGoodFlag[i] );
  1654. // // alert(tGoodFlag[i]);
  1655. // cmb_goodflag.refresh();
  1656. // break;
  1657. // }
  1658. // }
  1659. //
  1660. // // cmb_goodflag.select(0); //청구구분
  1661. // }
  1662. // */
  1663. //
  1664. // /**
  1665. // * @ver : 2010-11-06
  1666. // * @desc : 부서찾기 기능 설정(구매팀일경우에만)
  1667. // * @param :
  1668. // * @return :
  1669. // * @---------------------------------------------------
  1670. // */
  1671. // /*
  1672. // function fSetTempDept() {
  1673. // if ( gPurcDeptcd == getUserInfo("dutplcecd") ){
  1674. // cpt_dept.attribute("disabled") = "false";
  1675. // ipt_reqdeptcd.attribute("disabled") = "false";
  1676. // opt_reqdeptnm.attribute("disabled") = "false";
  1677. // btn_reqdeptcd.attribute("disabled") = "false";
  1678. //
  1679. // model.setValue("/root/send/goodlist/purcdeptflag" , "P"); //구매부서구분 : P
  1680. // }else {
  1681. // cpt_dept.attribute("disabled") = "true";
  1682. // ipt_deptcd.attribute("disabled") = "true";
  1683. // opt_deptnm.attribute("disabled") = "true";
  1684. // btn_deptcd.attribute("disabled") = "true";
  1685. //
  1686. // model.setValue("/root/send/goodlist/purcdeptflag" , "X"); //구매부서구분 : X
  1687. // }
  1688. //
  1689. // }
  1690. // */
  1691. //
  1692. // /*
  1693. // //조회해온 부서를 청구부서 콤보에 붙이는 함수
  1694. // function fAddReqDeptcdCombo() {
  1695. //
  1696. // //tempdeptcd에 값을 reqdetpcd(청구부서) 콤보에 값을 부어준다 (makevaluie)
  1697. // var cPath = "/root/init/CopyData" //임시카피노드
  1698. // var sPath = "/root/tempdept"; //서버에서가져온부서정보노드
  1699. // var tPath = "/root/init/ReqDeptLists/reqdeptlist"; //청구부서 콤보노드
  1700. //
  1701. // var iDataCnt = getNodesetCount(sPath); //서버에서 가져온 부서정보노드(무조건 1 아님 0)
  1702. //
  1703. // if ( iDataCnt < 1)
  1704. // {
  1705. // return;
  1706. // }
  1707. // //model.removeNodeset(tPath);
  1708. //
  1709. // var ComboDataCnt = parseInt( getNodesetCount(tPath) ) +1 ; //콤보에 노드길이(숫자형으로형변환)
  1710. //
  1711. // var vTempDeptCd = model.getValue(sPath+"[1]/tempdeptcd");
  1712. // var vTempDeptNm = model.getValue(sPath+"[1]/tempdeptnm");
  1713. //
  1714. // if ( vTempDeptCd != "" )
  1715. // {
  1716. // model.setValue(cPath+"/value" , vTempDeptCd );
  1717. // model.setValue(cPath+"/label" , vTempDeptNm );
  1718. //
  1719. // model.makeNode(tPath+"["+ComboDataCnt +"]" );
  1720. // model.copyNode(tPath + "[" +ComboDataCnt +"]", cPath); //노드에 데이터 부어줌
  1721. //
  1722. // ipt_reqdeptcd.refresh();
  1723. // ipt_reqdeptcd.select(ComboDataCnt-1);
  1724. // }
  1725. // ipt_reqdeptcd.refresh();
  1726. // }
  1727. // */
  1728. //
  1729. // /*
  1730. // function fSapReqSetting (fValue) {
  1731. //
  1732. // var vPath = "/root/init/workflag/workflaglist";
  1733. // var iDataCnt = parseInt( getNodesetCount(vPath) ); // 작업 구분 하위를 가져옴
  1734. // var updtdata = getGridUpdateData(grd_goodreq);
  1735. //
  1736. // if ( updtdata != "") {
  1737. // var ret = messageBox("그리드에 작업 중인 내용이 있습니다. 수액청구를 변경","Q003");
  1738. // if (ret != 6) {
  1739. // if( fValue == "Y" )
  1740. // ckb_sapreq.value = "N";
  1741. // else
  1742. // ckb_sapreq.value = "Y";
  1743. // ckb_sapreq.refresh();
  1744. // return;
  1745. // } else {
  1746. // misfGridInit(grd_goodreq);
  1747. // fSapReqSetting (fValue);
  1748. // if (cmb_reqno.value != "")
  1749. // btn_search.dispatch("DOMActivate");
  1750. // } // if not OK
  1751. //
  1752. // }else{
  1753. // if( fValue == "Y" || model.getXPathValue(vPath+"[value='6']/value") =="" ) {
  1754. // model.makeValue(vPath+"[" +(iDataCnt+1)+ "]/value", "6" ); // 작업구분 처방 청구 추가
  1755. // model.makeValue(vPath+"[" +(iDataCnt+1)+ "]/label", "처방청구"); // 작업구분 처방 청구 추가
  1756. // model.setValue("/root/send/goodreq/reqflag" , "H" ); // 청구방법 수액
  1757. //
  1758. // } else if (fValue != "Y" || model.getXPathValue(vPath+"[value='6']/value") !="") {
  1759. // cmb_workflag.disabled="false" ;
  1760. // model.removeNodeset(vPath+"["+ model.getXPathValue(vPath+"[value='6']/value") +"]");
  1761. // model.setValue("/root/send/goodreq/reqflag","");
  1762. // cmb_workflag.select(0);
  1763. // }
  1764. // } // if updtdata
  1765. // }
  1766. // */
  1767. /****************************************************************************************
  1768. * Argument : fValue
  1769. * Description : 조회버튼 Click 처리
  1770. ****************************************************************************************/
  1771. function fSearchButtonClick(fValue) {
  1772. if(fCheckRetrieveData(true) == false)return;
  1773. misfGridInit(grp_main.grd_goodreq);
  1774. misfMsterDetailRetrieve();
  1775. // 권한여부에 따른 승인체크 설정.
  1776. fGrantsCheck();
  1777. var deliveprcsflag = "";
  1778. ds_main_list_goodreq_goodreqmainlist.copyData(ds_init_goodreq_goodreqmainlist);
  1779. ds_main_list_goodreq_goodreqlist.copyData(ds_init_goodreq_goodreqlist);
  1780. // ds_main_list_goodreq_goodreqsublist.copyData();
  1781. ds_main_list_goodreq_goodmaxreqno.copyData(ds_init_goodreq_goodmaxreqno);
  1782. for (var fRow = 0; fRow < ds_main_list_goodreq_goodreqlist.rowcount; fRow++ ) {
  1783. if(ds_main_list_goodreq_goodreqlist.getColumn(fRow,"deliveprcsflag") == "7") {
  1784. deliveprcsflag = "7";
  1785. }
  1786. }
  1787. // 조회 이후 mainlist disable 시킨다.
  1788. fDisabledControl(true);
  1789. if(!utlf_isNull(ds_main_list_goodreq_goodreqmainlist.getColumn(0, "reqdd")) && deliveprcsflag != "7" &&
  1790. (ds_main_list_goodreq_goodreqmainlist.getColumn(0, "editable") == "Y"
  1791. || sysf_getUserInfo("dutplcecd") == "4020334000" || sysf_getUserInfo("dutplcecd") == "3080000000"
  1792. || sysf_getUserInfo("userid") == "MIS")) {
  1793. grp_sea.btn_save.enable = true;
  1794. grp_sea.btn_delete.enable = true;
  1795. group1.txa_cmt.enable = true;
  1796. group1.txa_cmt.style.background = "#ffffff";
  1797. misfSetReadOnlyCol(grp_main.grd_goodreq, "reqqty", false);
  1798. }else{
  1799. grp_sea.btn_save.enable = false;
  1800. grp_sea.btn_delete.enable = false;
  1801. group1.txa_cmt.enable = false;
  1802. group1.txa_cmt.style.background = "#f2f2f2";
  1803. misfSetReadOnlyCol(grp_main.grd_goodreq, "reqqty", true);
  1804. }
  1805. }
  1806. /****************************************************************************************
  1807. * Argument : printFlag : 저장 후 출력 여부(true/false)
  1808. * Description : Data 저장 하기 위한 Check
  1809. ****************************************************************************************/
  1810. function fSaveData(printFlag) {
  1811. if(!fCheckChangeData()) {
  1812. sysf_messageBox("저장할 데이타가 ","E014");
  1813. return false;
  1814. }
  1815. var rowcnt = grp_main.grd_goodreq.rowcount;
  1816. for( var i = 0; i < rowcnt; i++){
  1817. fDefaultSetting(i);
  1818. }
  1819. fConfirmSaveData(); // Data를 저장한다. //// 저장하는 부분
  1820. rowcnt = ds_main_list_goodreq_goodreqlist.rowcount;
  1821. if(printFlag && rowcnt > 0) {
  1822. if(sysf_messageBox("청구 불출서를 출력 하시겠습니까?" ,"Q") == "6") {
  1823. fPrintReqList();
  1824. }
  1825. }
  1826. }
  1827. /****************************************************************************************
  1828. * Argument : N/A
  1829. * Description : 변경데이터 체크
  1830. ****************************************************************************************/
  1831. function fCheckChangeData() {
  1832. var compareNode = grp_main.grd_goodreq.binddataset;
  1833. var cRow = 0;
  1834. if( eval(compareNode).getColumn(cRow,"instcd") != grp_sea.opt_instcd.value
  1835. || eval(compareNode).getColumn(cRow,"reqdd") != group1.ipt_reqdd.value
  1836. || eval(compareNode).getColumn(cRow,"reqno") != group1.ipt_reqno.value
  1837. || eval(compareNode).getColumn(cRow,"reqdeptcd") != group1.ipt_reqdeptcd.value
  1838. || eval(compareNode).getColumn(cRow,"wareflag") != group1.cmb_wareflag.value
  1839. || eval(compareNode).getColumn(cRow,"cmt") != group1.txa_cmt.value) {
  1840. return true;
  1841. }
  1842. trace(grdf_getGridUpdateData(grp_main.grd_goodreq).rowcount);
  1843. if(grdf_getGridUpdateData(grp_main.grd_goodreq).rowcount > 0) {
  1844. return true;
  1845. }
  1846. return false;
  1847. }
  1848. /****************************************************************************************
  1849. * Argument : N/A
  1850. * Description : 청구 Data 저장
  1851. ****************************************************************************************/
  1852. function fConfirmSaveData() {
  1853. // 저장전 Data를 Check한다.
  1854. if (fCheckSaveData() == false) return;
  1855. ds_main_list_goodreq_goodreqmainlist.setColumn( 0, "instcd" ,sysf_getUserInfo("dutplceinstcd")); // 기관코드
  1856. ds_send_save_autoaprv.setColumn( 0, "instcd" ,grp_sea.opt_instcd.value ); // 기관코드
  1857. ds_send_save_autoaprv.setColumn( 0, "reqdeptcd",group1.ipt_reqdeptcd.value ); // 청구부서
  1858. var vReqdd = group1.ipt_reqdd.value; // 청구일자
  1859. ds_send_save_autoaprv.setColumn( 0, "reqdd", vReqdd); // 청구일자
  1860. // 청구 가능 시간을 CHECK한다.
  1861. // if (fCheckLimitTime(vReqdd) == false) return;
  1862. // 저장할 데이타 수집
  1863. var dsUpdate = grdf_getGridUpdateData(grp_main.grd_goodreq, "all");
  1864. grdf_setStatusColumn(dsUpdate, "status");
  1865. ds_send_save_goodreqlist.copyData(dsUpdate,true);
  1866. ds_send_save_goodreqmainlist.copyData(ds_main_list_goodreq_goodreqmainlist);
  1867. // ===============================================
  1868. // 구매팀의 경우는 동시 승인 가능하게 처리합니다.
  1869. // ===============================================
  1870. if (gPurcDeptcd == sysf_getUserInfo("dutplcecd") ){
  1871. if (grp_main.grp_button.ckb_accept.value == "Y") {
  1872. var ret = sysf_messageBox("구매팀인 경우만 권한 상관없이 동시승인 가능합니다!! ","Q003");
  1873. if (ret == 6) {
  1874. ds_send_save_autoaprv.setColumn( 0, "autoaprvyn", "Y");
  1875. } else {
  1876. ds_send_save_autoaprv.setColumn( 0, "autoaprvyn", "N");
  1877. } // end if
  1878. } else {
  1879. ds_send_save_autoaprv.setColumn( 0, "autoaprvyn", "N");
  1880. } // end if
  1881. } else {
  1882. ds_send_save_autoaprv.setColumn( 0, "autoaprvyn","N");
  1883. } // end if
  1884. dsf_setDefaultVal(ds_send_save_goodreqlist, "rgstqty:0");
  1885. var oParam = {};
  1886. oParam.id = "TXRSD20002";
  1887. oParam.service = "reqconsapp.ReqConsMngt";
  1888. oParam.method = "reqExeSaveGoodReqNew";
  1889. oParam.inds = "req=ds_send_save_goodreqlist reqmain=ds_send_save_goodreqmainlist autoaprv=ds_send_save_autoaprv";
  1890. oParam.outds = "ds_hidden_temp_goodmaxreqno=goodmaxreqno";
  1891. oParam.async = false;
  1892. oParam.callback = "cf_TXRSD20002";
  1893. tranf_submit(oParam);
  1894. if(arErrorCode.pop("TXRSD20002") > -1){
  1895. var ReqnoNew = ds_send_save_autoaprv.getColumn(0, "reqnonew");
  1896. if(ReqnoNew == "Y"){
  1897. ds_send_save_autoaprv.setColumn( 0, "reqnonew", "");
  1898. }
  1899. // if (model.getValue(gvErrorMsgPath + "_type") == "error") return;
  1900. grp_sea.ipt_searchreqdd.value = group1.ipt_reqdd.value;
  1901. grp_sea.ipt_searchreqno.value = ds_hidden_temp_goodmaxreqno.getColumn(0, "reqno");
  1902. grp_sea.ipt_searchreqdeptcd.value = group1.ipt_reqdeptcd.value;
  1903. grp_sea.opt_searchreqdeptnm.value = group1.opt_reqdeptnm.value;
  1904. sysf_messageBox("저장되었습니다.","I");
  1905. grp_sea.btn_search.click();
  1906. }
  1907. }
  1908. function cf_TXRSD20002(sSvcId, nErrorCode, sErrorMsg) {
  1909. arErrorCode.push(sSvcId, nErrorCode);
  1910. }
  1911. /****************************************************************************************
  1912. * Argument : N/A
  1913. * Description : 출력
  1914. ****************************************************************************************/
  1915. function fPrintReqList() {
  1916. // model.removeChild("TRRSO20203");
  1917. // model.createChild("xforms:submission", "id:TRRSO20203;mediatype:application/x-www-form-urlencoded; method:post; ref:/root/main/list/goodreq/goodreqmainlist; resultref:/root/main/reqlist; ");
  1918. dsf_createDs("ds_main_reqlist");
  1919. var oParam = {};
  1920. oParam.id = "TRRSO20203";
  1921. oParam.service = "deliveapp.DeliveMngt";
  1922. oParam.method = "reqGetReqSlip";
  1923. oParam.inds = "req=ds_main_list_goodreq_goodreqmainlist";
  1924. oParam.outds = "ds_main_reqlist=reqlist";
  1925. oParam.async = false;
  1926. oParam.callback = "cf_TRRSO20203";
  1927. tranf_submit(oParam);
  1928. if(arErrorCode.pop("TRRSO20203") > -1) {
  1929. // exeReportPreview("RPRSO20201","XMLSTR");
  1930. var objDOM = rptf_createDOM();
  1931. var objParam = new Object();
  1932. rptf_setNodeListToDOM(objDOM, "/root/main/reqlist" , ds_main_reqlist);
  1933. objParam.xml_data_XML1 = objDOM.documentElement.source;
  1934. var option = "open=1;save=1;directprint=0;printdialog=1;print=1;zoom=0";
  1935. rptf_exeReportPreview30(["RPRSO20201"],[objParam], option);
  1936. }
  1937. }
  1938. function cf_TRRSO20203(sSvcId, nErrorCode, sErrorMsg) {
  1939. arErrorCode.push(sSvcId, nErrorCode);
  1940. }
  1941. /* ------------------------------------------------- */
  1942. /* ------End Of List ------------------------------- */
  1943. /* -------------------------------------------------- */
  1944. ]]></Script>