SMRSD20000.js 120 KB

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