SMRSC05402.js 58 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. MIS - 기관별약품코드등록 ( SMRSC05402_기관별약품코드등록.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. **/
  8. /**
  9. * @desc : 화면 초기화
  10. * @param : Ref
  11. : RsltRef
  12. * @return : void
  13. * @authur : 주희경,수정->이창록
  14. * @---------------------------------------------------
  15. */
  16. var vGoodNew = "U"; //U:UPDATE, N:NEW
  17. function fInitialize() {
  18. fNodeInit();
  19. model.resetInstanceNode("/root/send");
  20. model.setValue("/root/send/goodlist/instflag", "Y");
  21. model.setValue("/root/send/save/setautoins/setyn","N");
  22. misfGridIUD(grd_gooddetlist, "A");
  23. misfComboComCdListMulti("R0092,R0043,R0069,R0106,R0093,R0107","cmb_reqmthd,cmb_asetflag,cmb_stocmngtflag,cmb_plceordqtycretflag,cmb_reqprid,cmb_plceordbase");
  24. //rszfReqFlagComboComCdList(getUserInfo("userid"),cmb_reqflag,"Y");
  25. rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),getUserInfo("userid"),"2","P" );
  26. //rszfComboAppendChild("cmb_reqflag","청구불가","");
  27. addComboItem( "cmb_reqflag", "집계안함", "", "above" );
  28. rszfComboGridStockArthDeptcdList(grd_goodbaseqtylist, "reqdeptcd", getUserInfo("dutplceinstcd"),"P" );
  29. //기관코드 읽어오는 부분 넣기
  30. var instcd = getUserInfo("dutplceinstcd");
  31. var instnm = getUserInfo("dutplceinstnm");
  32. //var instcd = getUserInfo("dutplceinstcd");
  33. //var instnm = getUserInfo("dutplceinstnm");
  34. if(instcd.length > 0)model.setValue(opt_instcd.attribute("ref"), instcd);
  35. if(instnm.length > 0)model.setValue(opt_instnm.attribute("ref"), instnm);
  36. //물품구분일 경우 첫번째 index 자동 설정
  37. if(cmb_asetflag.length> 0) cmb_asetflag.selectedindex= 0;
  38. model.setValue(grd_gooddetlist.nodeset + "/goodflag", model.getValue(ipt_goodflag_search.attribute("ref")));
  39. model.copyNode("/root/main/gooddet/gooddetlist","/root/main/list/gooddet/gooddetlist");
  40. //misfMsterDetailSet(grd_goodlist,null, "TRRSC05301" ,"Y");
  41. misfMsterDetailSet(grd_goodlist,null, "TRRSC05313" ,"Y");
  42. misfMsterDetailSet(grd_gooddetlist,grd_goodlist, "TRRSC05302" ,"Y");
  43. misfMsterDetailSet(grd_costhistinfo,grd_goodlist, "TRRSC05302" ,"N");
  44. misfMsterDetailSet(grd_instinfo,grd_goodlist, "TRRSC05302" ,"N");
  45. misfMsterDetailSet(grd_goodbaseqtylist,null, "TRRSC05305" ,"Y");
  46. misfMsterDetailSet(grd_rscdpbnslist,null, "TRRSC05403" ,"Y");
  47. // misfMsterDetailSet(grd_gooddetgoodexcellist, null, "TRRSC05402" , "N");
  48. //[2010.08.26]AS-IS 코드 TO_BE 코드 전환을 위한 물품구분 변경 (goodflag= P) => (goodflag= PH)
  49. model.setValue(ipt_goodflag.attribute("ref"),"PH");
  50. model.setValue(ipt_goodflag_search.attribute("ref"),"PH");
  51. /* 처방단위는 unit 기준정보를 다른걸로 사용한다. */
  52. rszfComboUnitList (cmb_prcpunit,model.getValue(opt_instcd.attribute("ref")),"D");
  53. /* 구매단위는 기준정보 셋팅한다. 및 copy한다. */
  54. rszfComboUnitList (cmb_purcunit,model.getValue(opt_instcd.attribute("ref")),model.getValue(ipt_goodflag_search.attribute("ref")));
  55. misfComboCopyItemSet(cmb_purcunit, "", cmb_specunit, ""); //규격단위
  56. misfComboCopyItemSet(cmb_purcunit, "", cmb_cntsunit, ""); //함량단위
  57. misfComboCopyItemSet(cmb_purcunit, "", cmb_deliveunit, ""); //수불단위
  58. misfComboCopyItemSet(cmb_purcunit, "", grd_rscdpbnslist, "deliveunit"); //수불단위
  59. misfComboCopyItemSet(cmb_purcunit, "", grd_rscdpbnslist, "purcunit"); //발주단위
  60. // 물품구분별 권한
  61. fSetGoodFlagAuth();
  62. rbo_instflag.select(0);
  63. // model.setValue(rbo_instflag.attribute("ref"), "Y");
  64. rbo_exactsearch1.select(1)
  65. // model.setValue(rbo_exactsearch1.attribute("ref"), "Y");
  66. grd_goodlist.explorerbar = "sortshow";
  67. model.setFocus("ipt_goodcd");
  68. model.refresh();
  69. }
  70. function fNodeInit() {
  71. misfGridInit(grd_goodlist);
  72. misfGridInit(grd_gooddetlist);
  73. misfGridInit(grd_costhistinfo);
  74. misfGridInit(grd_instinfo);
  75. misfGridInit(grd_goodbaseqtylist);
  76. misfGridInit(grd_gooddetgoodexcellist);
  77. misfGridInit(grd_rscdpbnslist);
  78. }
  79. function fGetCodeList()
  80. {
  81. //계산방법, 그룹여부, 실사장소, 변경사유
  82. zbcfGetCodeList( new Array("P0133","P0142", "R0355", "R0356"), new Array("/root/init/P0133list","/root/init/P0142list", "/root/init/R0355list","/root/init/R0356list"), true);
  83. addComboItem( "cmb_nonusetretresn", "-", "", "above" );
  84. //P0133list의 코드 데이터 중 코드번호(-,1,4)만 사용하기 위해
  85. //P0133list의 코드 데이터 중 코드번호(-,1,4)만 제외 하고 모두 삭제
  86. fsetP0133listData();
  87. //P0142list의 코드 데이터 중 코드번호(G,S)만 사용하기 위해
  88. //P0142list의 코드 데이터 중 코드번호(G,S)만 제외 하고 모두 삭제
  89. fsetP0142listData();
  90. }
  91. //보나에스 저장
  92. function fSaveRscdpbnsList()
  93. {
  94. if(getGridUpdateData(grd_rscdpbnslist) != "" )
  95. {
  96. // if(!checkKeyColumn("grd_rscdpbnslist"))return false;
  97. if( fBnsValidCheck()!= true ) return false;
  98. //misfSave("TXRSC05403");
  99. model.setValue("/root/send/save/rscdpbnslist", grd_rscdpbnslist.getUpdateData());
  100. submit("TXRSC05403");
  101. return true;
  102. }
  103. return false;
  104. }
  105. function fSaveGoodbaseQtyList()
  106. {
  107. if(getGridUpdateData(grd_goodbaseqtylist) != "" )
  108. {
  109. if( fBaseQtyValidCheck()!= true ) return false;
  110. model.setValue("/root/send/save/goodbaseqtylist", grd_goodbaseqtylist.getUpdateData());
  111. submit("TXRSD00101");
  112. return true;
  113. }
  114. return true;
  115. }
  116. //세부항목 조회시 기관코드 설정.
  117. function fInstcdSet()
  118. {
  119. if(rbo_instflag.value == 'Y')
  120. {
  121. model.setValue("/root/send/gooddetlist/instcd", opt_instcd.value);
  122. }else{
  123. //사용기관 선택이 안되어있을시..
  124. if(grd_instinfo.row < grd_instinfo.fixedRows)
  125. {
  126. grd_instinfo.row = grd_instinfo.fixedRows;
  127. }
  128. model.setValue("/root/send/gooddetlist/instcd", grd_instinfo.valueMatrix(grd_instinfo.row, grd_instinfo.colRef("instcd")));
  129. }
  130. }
  131. function fRetrGoodList(nodecopy, detailYN) {
  132. model.resetInstanceNode("/root/main/gooddet/gooddetlist");
  133. fInstcdSet();
  134. fSetinstData();
  135. if ( detailYN == null )
  136. misfMsterDetailRetrieve2();
  137. //마스터 테이블에 데이터가 조회 되었을 경우에만 디테일 테이블 조회
  138. if ( grd_goodlist.rows > 1 )
  139. {
  140. var row = grd_goodlist.row;
  141. if ( row < 1 )
  142. row = 1;
  143. fSearchDetailData();
  144. if ( btn_sub.selected )
  145. model.setValue("/root/send/goodbaseqty/instcd", model.getValue(opt_instcd.attribute("ref")));
  146. else
  147. model.setValue("/root/send/goodbaseqty/instcd", "001");
  148. model.setValue("/root/send/goodbaseqty/goodflag", model.getValue(ipt_goodflag_search.attribute("ref")));
  149. model.setValue("/root/send/goodbaseqty/goodcd", grd_goodlist.valueMatrix(row, grd_goodlist.colRef("goodcd")) );
  150. submit("TRRSC05305");
  151. //보나에스 코드 조회.
  152. //보나에스 코드 조회하기 위해 조회값 goodcd 설정. 물품 코드는 통합 Master RSCMGOOD의 코드 ( grd_goodlist )의 값
  153. model.setValue("/root/send/rscdpbns/goodcd", grd_goodlist.valueMatrix(row, grd_goodlist.colRef("goodcd")) );
  154. // if( grd_gooddetlist.rows- grd_gooddetlist.fixedRows > 0 )
  155. // grd_gooddetlist.row = grd_gooddetlist.fixedRows + 1;
  156. //보나에스 코드 조회하기 위해 조회값 goodcd 설정. 기관내에 물품 코드가 존재한다면 Detail의 값으로 조회
  157. /*
  158. model.setValue("/root/send/rscdpbns/fromdd", grd_gooddetlist.valueMatrix(grd_gooddetlist.row, grd_gooddetlist.colRef("fromdd")) );
  159. model.setValue("/root/send/rscdpbns/instcd", grd_gooddetlist.valueMatrix(grd_gooddetlist.row, grd_gooddetlist.colRef("instcd")) );
  160. model.setValue("/root/send/rscdpbns/goodflag", grd_gooddetlist.valueMatrix(grd_gooddetlist.row, grd_gooddetlist.colRef("goodflag")) );
  161. */
  162. model.setValue("/root/send/rscdpbns/fromdd", model.getValue("/root/main/list/gooddet/gooddetlist/fromdd") );
  163. if ( btn_sub.selected )
  164. model.setValue("/root/send/rscdpbns/instcd", model.getValue("/root/main/list/gooddet/gooddetlist/instcd") );
  165. else
  166. model.setValue("/root/send/rscdpbns/instcd", "001");
  167. model.setValue("/root/send/rscdpbns/goodflag", grd_goodlist.valueMatrix(row, grd_goodlist.colRef("goodflag")) );
  168. submit("TRRSC05403");
  169. model.recalculate(); //jhj 잠시 주석
  170. if(nodecopy == true)fAfterRetrGoodList();
  171. // 보나에스 데이터 존재시
  172. if (grd_rscdpbnslist.rows- grd_rscdpbnslist.fixedRows > 0) {
  173. /* 2008 08 24 YYJ
  174. * 상세 화면에서 보나에스 정보를 수정 할 수 있도록 변경처리
  175. */
  176. // fBnsSetData(true);
  177. // 보나에스 코드가 2개 이상일 경우 보나에스(포장단위)Tab 활성화
  178. if (grd_rscdpbnslist.rows- grd_rscdpbnslist.fixedRows > 1) {
  179. bbt_bonaes.dispatch("DOMActivate");
  180. bbt_bonaes.selected="true";
  181. }
  182. }
  183. //else if( nodecopy == false)btn_insert.dispatch("DOMActivate");
  184. }
  185. else
  186. fNodeInit();
  187. }
  188. function fSetinstData()
  189. {
  190. //기관코드 읽어오는 부분 넣기
  191. var instcd = getUserInfo("dutplceinstcd");
  192. var instnm = getUserInfo("dutplceinstnm");
  193. //var instcd = getUserInfo("dutplceinstcd");
  194. //var instnm = getUserInfo("dutplceinstnm");
  195. if(instcd.length > 0 && btn_sub.selected)
  196. {
  197. model.setValue("/root/send/gooddetlist/instcd", instcd);
  198. model.setValue(opt_instcd.attribute("ref"), instcd);
  199. }
  200. else
  201. {
  202. model.setValue("/root/send/gooddetlist/instcd", "001");
  203. model.setValue(opt_instcd.attribute("ref"), "001");
  204. }
  205. if(instnm.length > 0)model.setValue(opt_instnm.attribute("ref"), instnm);
  206. }
  207. //조회를 하고 난후 초기화
  208. function fSetlinit()
  209. {
  210. ipt_goodcd_search.value="";
  211. ipt_oldcd_search.value="";
  212. ipt_edicd_search.value="";
  213. ipt_goodnm_search.value="";
  214. ipt_bnscd_search.value="";
  215. //판매회사 초기화
  216. ipt_suppcustcd_search.value="";
  217. opt_suppcustnm_search.value="";
  218. //대분류 초기화
  219. ipt_lrgcd_search.value="";
  220. ipt_lrgnm_search.value="";
  221. //중분류 초기화
  222. ipt_mdlcd_search.value="";
  223. ipt_mdlnm_search.value="";
  224. //소분류 초기화
  225. ipt_smlcd_search.value="";
  226. ipt_smlnm_search.value="";
  227. }
  228. // 물품구분별 권한체크.
  229. function fSetGoodFlagAuth()
  230. {
  231. btn_save.disabled=true;
  232. rszfGetPurcGoodFlagAuthInfo(opt_instcd.value , ipt_goodflag_search.value, getUserInfo("userid"), "%");
  233. if(rszfGetGoodFlagAuthInfoByCond("goodflagauth") =="Y")btn_save.disabled=false;
  234. }
  235. function fCheckSaveData()
  236. {
  237. if(model.getValue(ipt_goodcd.attribute("ref")).length== 0 )
  238. {
  239. messageBox("물품코드는" ,"I003");
  240. model.setFocus("ipt_goodcd");
  241. return false;
  242. }
  243. /*
  244. if(model.getValue(ipt_goodnm.attribute("ref")).length== 0 )
  245. {
  246. messageBox("물품코드명은" ,"I003");
  247. model.setFocus("ipt_goodnm");
  248. return false;
  249. }
  250. */
  251. if(model.getValue(ipt_lrgcd.attribute("ref")).length== 0 )
  252. {
  253. messageBox("대분류코드는" ,"I003");
  254. model.setFocus("ipt_lrgcd");
  255. return false;
  256. }
  257. if(model.getValue(ipt_amtacnt.attribute("ref")).length== 0 )
  258. {
  259. messageBox("비용계정은" ,"I003");
  260. model.setFocus("ipt_amtacnt");
  261. return false;
  262. }
  263. if(model.getValue(ipt_mngtdeptcd.attribute("ref")).length== 0 )
  264. {
  265. messageBox("주관리부서는" ,"I003");
  266. model.setFocus("ipt_mngtdeptcd");
  267. return false;
  268. }
  269. //hbh
  270. if(model.getValue(cmb_reqmthd.attribute("ref")).length== 0 )
  271. {
  272. messageBox("청구방법은" ,"I003");
  273. model.setFocus("cmb_reqmthd");
  274. return false;
  275. }
  276. if(model.getValue(cmb_purcunit.attribute("ref")).length== 0 )
  277. {
  278. messageBox("구매단위은" ,"I003");
  279. model.setFocus("cmb_purcunit");
  280. return false;
  281. }
  282. if(model.getValue(ipt_exchqty.attribute("ref")).length== 0 )
  283. {
  284. messageBox("환산수량은" ,"I003");
  285. model.setFocus("ipt_exchqty");
  286. return false;
  287. }
  288. /*
  289. if(model.getValue(cmb_deliveunit.attribute("ref")).length== 0 )
  290. {
  291. messageBox("불출단위는" ,"I003");
  292. model.setFocus("cmb_deliveunit");
  293. return false;
  294. }
  295. */
  296. if(model.getValue(cmb_stocmngtflag.attribute("ref")).length== 0 )
  297. {
  298. messageBox("재고관리기준은" ,"I003");
  299. model.setFocus("cmb_stocmngtflag");
  300. return false;
  301. }
  302. if(model.getValue(cmb_asetflag.attribute("ref")).length== 0 )
  303. {
  304. messageBox("자산구분은" ,"I003");
  305. model.setFocus("cmb_asetflag");
  306. return false;
  307. }
  308. if(model.getValue(ipt_nonusetretdd.attribute("ref")).length > 0 && model.getValue(ipt_nonusetretdd.attribute("ref")) <= getCurrentDate() && model.getValue(cmb_nonusetretresn.attribute("ref")) == 0)
  309. {
  310. messageBox("코드 불용일자를 선택하신 경우에는 불용사유가 " ,"I003");
  311. model.setFocus("cmb_nonusetretresn");
  312. return false;
  313. }
  314. // if(model.getValue(ipt_toconterm.attribute("ref")).length > 0 && (model.getValue(ipt_toconterm.attribute("ref")) < model.getValue(ipt_fromconterm.attribute("ref"))) )
  315. // {
  316. // messageBox("계약시작일자는 계약 종료일자보다 크게 설정","E001");
  317. // model.setFocus("ipt_fromconterm");
  318. // return false;
  319. //
  320. // }
  321. //
  322. // if(model.getValue(ipt_fromconterm.attribute("ref")).length > 0 && (model.getValue(ipt_toconterm.attribute("ref")) < model.getValue(ipt_fromconterm.attribute("ref"))) )
  323. // {
  324. // messageBox("계약시작일자는 계약 종료일자보다 크게 설정","E001");
  325. // model.setFocus("ipt_toconterm");
  326. // return false;
  327. // }
  328. //
  329. if ( btn_sub.selected == true )
  330. {
  331. for(var i = grd_costhistinfo.fixedRows; i < grd_costhistinfo.rows; i++)
  332. {
  333. if(grd_costhistinfo.valueMatrix(i, grd_costhistinfo.colRef("fromdd")) == ipt_fromdd.value)
  334. {
  335. var tempmag = (messageBox("이력정보에 등록 되어있는 날짜입니다. 새로운 적용일자로 입력하시겠습니까? ", "S999"));
  336. if(tempmag=="6" || tempmag=="2")
  337. {
  338. model.setFocus("ipt_fromdd");
  339. return false;
  340. }
  341. }
  342. }
  343. }
  344. return true;
  345. }
  346. function fAfterRetrGoodList()
  347. {
  348. if (grd_gooddetlist.rows == 0 )btn_insert.dispatch("DOMActivate");
  349. model.copyNode("/root/main/gooddet/gooddetlist","/root/main/list/gooddet/gooddetlist");
  350. if(model.getValue(ipt_nonusetretdd.attribute("ref")).length > 0 && model.getValue(ipt_nonusetretdd.attribute("ref")) < getCurrentDate())ipt_nonusetretdd.attribute("background-color") = "#c0c0c0";
  351. else ipt_nonusetretdd.attribute("background-color") = "#ffffff";
  352. grp_detail.refresh();
  353. grp_etcgood.refresh();
  354. grd_gooddetlist.row = 1;
  355. model.setFocus("ipt_goodcd");
  356. }
  357. function fCheckAuth() {
  358. //btn_search.disabled = !checkAuth("R") ;
  359. //btn_save.disabled = !checkAuth("X") ;
  360. //btn_prt.disabled = !checkAuth("P") ;
  361. }
  362. function fSetDataCopy(){
  363. if(grd_gooddetlist.rows < grd_goodlist.fixedRows)grd_gooddetlist.row = 1;
  364. fGoodOldNewCompare(); // 변경Column Check
  365. misfGridRowStatusChange(grd_gooddetlist,"/root/main/list/gooddet" , "/root/main/gooddet");
  366. grp_detail.refresh();
  367. }
  368. function fDefaultSetting()
  369. {
  370. model.setValue(grd_gooddetlist.nodeset + "/goodflag" , model.getValue(ipt_goodflag_search.attribute("ref")));
  371. model.setValue(grd_gooddetlist.nodeset + "/goodcd" , "");
  372. model.setValue(grd_gooddetlist.nodeset + "/fromdd" , getCurrentDate());
  373. model.setValue(grd_gooddetlist.nodeset + "/lrgcd" , model.getValue(ipt_lrgcd_search.attribute("ref")));
  374. model.setValue(grd_gooddetlist.nodeset + "/lrgnm" , model.getValue(ipt_lrgnm_search.attribute("ref")));
  375. model.setValue(grd_gooddetlist.nodeset + "/mdlcd" , model.getValue(ipt_mdlcd_search.attribute("ref")));
  376. model.setValue(grd_gooddetlist.nodeset + "/mdlnm" , model.getValue(ipt_mdlnm_search.attribute("ref")));
  377. model.setValue(grd_gooddetlist.nodeset + "/smlcd" , model.getValue(ipt_smlcd_search.attribute("ref")));
  378. model.setValue(grd_gooddetlist.nodeset + "/smlnm" , model.getValue(ipt_smlnm_search.attribute("ref")));
  379. // hbh
  380. model.setValue(grd_gooddetlist.nodeset + "/instcd" ,getUserInfo("dutplceinstcd"));
  381. model.setValue(grd_gooddetlist.nodeset + "/useyn" ,'Y');
  382. model.setValue(grd_gooddetlist.nodeset + "/reqmthd" ,'1');
  383. model.setValue(grd_gooddetlist.nodeset + "/purcflag" ,'1');
  384. model.setValue(grd_gooddetlist.nodeset + "/reqflag" ,''); // 청구불가 셋팅. 'E'에서 변경
  385. model.setValue(grd_gooddetlist.nodeset + "/reqprid" ,'1');
  386. model.setValue(grd_gooddetlist.nodeset + "/asetflag" ,'1');
  387. model.setValue(grd_gooddetlist.nodeset + "/gnrlspcl" ,'N');
  388. model.setValue(grd_gooddetlist.nodeset + "/specldrug" ,'N');
  389. model.setValue(grd_gooddetlist.nodeset + "/todd" ,'99991231');
  390. model.setValue(grd_gooddetlist.nodeset + "/grupsnglflag", "S");
  391. model.setValue(grd_gooddetlist.nodeset + "/orginspplce", "01");
  392. model.setValue(grd_gooddetlist.nodeset + "/calcmthdcd", "-");
  393. }
  394. function fChkSaveData(pgrid_name, ptarget_node, psource_node) {
  395. var node1 = instance1.selectNodes(ptarget_node + "/*");
  396. var node2 = instance1.selectNodes(psource_node + "/*");
  397. for (var i = 0; i < node1.length ; i++) {
  398. for (var j = 0; j < node2.length; j++) {
  399. if (node1.item(i).nodeName == node2.item(j).nodeName) {
  400. var nextnode1 = instance1.selectNodes(ptarget_node + "/" + node1.item(i).nodeName + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]" + "/*");
  401. var nextnode2 = instance1.selectNodes(psource_node + "/" + node2.item(j).nodeName + "/*");
  402. var copytarget = ptarget_node + "/" + node1.item(i).nodeName + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]";
  403. var copysource = psource_node + "/" + node2.item(j).nodeName;
  404. for (var k = 0; k < nextnode1.length; k++) {
  405. for (var p = 0; p < nextnode2.length; p++) {
  406. if (nextnode1.item(k).nodeName == nextnode2.item(p).nodeName) {
  407. if (model.getValue(ptarget_node + "/" + node1.item(i).nodeName + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]" + "/" + nextnode1.item(k).nodeName) !=
  408. model.getValue(psource_node + "/" + node2.item(j).nodeName + "/" + nextnode2.item(p).nodeName))return true;
  409. }
  410. }
  411. }
  412. }
  413. }
  414. }
  415. return false;
  416. }
  417. function fCheckRetrieveData()
  418. {
  419. if(model.getValue(ipt_goodflag_search.attribute("ref")).length== 0 )
  420. {
  421. messageBox("물품구분을 " ,"C002");
  422. model.setFocus("ipt_goodflag_search");
  423. return false;
  424. }
  425. /*
  426. if(model.getValue(ipt_lrgcd_search.attribute("ref")).length== 0 && model.getValue(ipt_oldcd_search.attribute("ref")).length== 0 )
  427. {
  428. messageBox("대분류코드를 " ,"C002");
  429. model.setFocus("ipt_lrgcd_search");
  430. return false;
  431. }
  432. if(model.getValue(ipt_goodcd_search.attribute("ref")).length == 0 && model.getValue(ipt_goodnm_search.attribute("ref")).length < 4)
  433. {
  434. messageBox("물품코드 또는 물품명에 최소 2자리를" ,"C001");
  435. model.setFocus("ipt_goodcd_search");
  436. return false;
  437. }
  438. */
  439. return true;
  440. }
  441. function fInstGoodCdCopy()
  442. {
  443. if(grd_goodlist.row - grd_goodlist.fixedRows == 0)return;
  444. btn_insert.dispatch("DOMActivate");
  445. model.SetValue(ipt_goodcd.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/goodcd"));
  446. model.SetValue(ipt_goodnm.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/goodnm"));
  447. model.SetValue(ipt_goodhngnm.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/goodhngnm"));
  448. model.SetValue(ipt_goodengnm.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/goodengnm"));
  449. model.SetValue(ipt_lrgcd.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/lrgcd"));
  450. model.SetValue(ipt_lrgnm.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/lrgnm"));
  451. model.SetValue(ipt_mdlcd.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/mdlcd"));
  452. model.SetValue(ipt_mdlnm.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/mdlnm"));
  453. model.SetValue(ipt_smlcd.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/smlcd"));
  454. model.SetValue(ipt_smlnm.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/smlnm"));
  455. model.refresh();
  456. model.setFocus("ipt_winacnt");
  457. }
  458. function fGoodCdCopy()
  459. {
  460. if(model.getValue(ipt_goodflag_search.attribute("ref")).length== 0 )
  461. {
  462. messageBox("물품구분을 " ,"C002");
  463. model.setFocus("ipt_goodflag_search");
  464. return false;
  465. }
  466. if(model.getValue(ipt_lrgcd.attribute("ref")).length== 0 )
  467. {
  468. messageBox("대분류코드를 " ,"C002");
  469. model.setFocus("ipt_lrgcd");
  470. return false;
  471. }
  472. if(model.getValue(ipt_mdlcd.attribute("ref")).length== 0 )
  473. {
  474. messageBox("중분류코드를 " ,"C002");
  475. model.setFocus("ipt_mdlcd");
  476. return false;
  477. }
  478. model.setValue("/root/send/goodcopy/goodflag", model.getValue(ipt_goodflag_search.attribute("ref")));
  479. model.setValue("/root/send/goodcopy/lrgcd", model.getValue(ipt_lrgcd.attribute("ref")));
  480. model.setValue("/root/send/goodcopy/mdlcd", model.getValue(ipt_mdlcd.attribute("ref")));
  481. submit("TRRSC05303");
  482. var goodcd = model.getValue("/root/main/goodcopy/goodlist/goodcd");
  483. if(goodcd.length == 0)goodcd = model.getValue(ipt_goodflag_search.attribute("ref")) + model.getValue(ipt_lrgcd.attribute("ref")) + model.getValue(ipt_mdlcd.attribute("ref")) + "0001";
  484. model.setValue(ipt_goodcd.attribute("ref"), goodcd);
  485. grp_detail.refresh();
  486. }
  487. function fInsertGoodDataListCopy()
  488. {
  489. if(btn_instcd.selected == true)
  490. {
  491. if( grd_instinfo.row > (grd_instinfo.fixedRows - 1) )
  492. {
  493. grd_instinfo.dispatch("ondblclick");
  494. grd_gooddetlist.valueMatrix(grd_gooddetlist.row, grd_gooddetlist.colRef("instcd")) = getUserInfo("dutplceinstcd");
  495. model.setValue("/root/main/gooddet/gooddetlist/instcd", getUserInfo("dutplceinstcd"));
  496. grd_gooddetlist.addStatus(grd_gooddetlist.row, "insert");
  497. // model.refresh();
  498. //grp_detail.disabled = false;
  499. }else{
  500. messageBox("사용기관정보의 기관을 선택하신후 다시 작업해주세요.", "I999");
  501. }
  502. }else{
  503. messageBox("사용기관정보를 선택하신 후 다시 작업해주세요.", "I999");
  504. }
  505. }
  506. /*----------------------------------------------------------------
  507. * DRUGTYPE : 대분류 + 조영제 값을 체크하여 약국분류를 만듦
  508. reqflag = 'I' 이면 'I' else lrgcd
  509. ----------------------------------------------------------------*/
  510. function fSetDrugtype(pReqflag)
  511. {
  512. if (pReqflag == "I")
  513. opt_drugkind.value = pReqflag ;
  514. else
  515. opt_drugkind.value = ipt_lrgcd.value ;
  516. }
  517. function fupdatacheck()
  518. {
  519. var tempdd=grd_gooddetlist.valueMatrix(grd_gooddetlist.fixedRows, grd_gooddetlist.colRef("fromdd"));
  520. misfGridRowStatusChange(grd_gooddetlist, "/root/main/list/gooddet", "/root/main/gooddet");
  521. grd_gooddetlist.refresh();
  522. if(( getGridUpdateData(grd_gooddetlist)== "" ) && (getGridUpdateData(grd_rscdpbnslist)=="" )&& (getGridUpdateData(grd_goodbaseqtylist)=="" ))
  523. {
  524. messageBox("변경내역이 없습니다. ", "I999");
  525. return;
  526. }
  527. if(grd_gooddetlist.rowStatus(grd_gooddetlist.fixedRows) == 2 && btn_main.selected == true )
  528. {
  529. if(tempdd==grd_gooddetlist.valueMatrix(grd_gooddetlist.fixedRows, grd_gooddetlist.colRef("fromdd")))
  530. {
  531. var tempmag = (messageBox("적용일자가 변경되지않았습니다 새로운 적용일자로 입력하시겠습니까? ", "S999"));
  532. if(tempmag=="6" || tempmag=="2")
  533. {
  534. model.setFocus("ipt_fromdd");
  535. return 6;
  536. }
  537. }
  538. }
  539. model.refresh();
  540. }
  541. function fBnsValidCheck () {
  542. if( grd_rscdpbnslist.rows- grd_rscdpbnslist.fixedRows > 0) {
  543. for( cnt = grd_rscdpbnslist.fixedRows; cnt < grd_rscdpbnslist.rows; cnt++ ) {
  544. if( grd_rscdpbnslist.rowStatus(cnt) != 0 ) {
  545. if(grd_rscdpbnslist.valueMatrix(cnt, grd_rscdpbnslist.colRef("bnscd")).length== 0 ) {
  546. messageBox("도매상코드를 " ,"C002");
  547. grd_rscdpbnslist.row = cnt;
  548. grd_rscdpbnslist.col = grd_rscdpbnslist.colRef("bnscd");
  549. return false;
  550. } else if(grd_rscdpbnslist.valueMatrix(cnt, grd_rscdpbnslist.colRef("exchqty")).length== 0 ) {
  551. messageBox("낱개수량을 " ,"C002");
  552. grd_rscdpbnslist.row = cnt;
  553. grd_rscdpbnslist.col = grd_rscdpbnslist.colRef("exchqty");
  554. return false;
  555. } else if(grd_rscdpbnslist.valueMatrix(cnt, grd_rscdpbnslist.colRef("deliveunit")).length== 0 ) {
  556. messageBox("낱개단위를 " ,"C002");
  557. grd_rscdpbnslist.row = cnt;
  558. grd_rscdpbnslist.col = grd_rscdpbnslist.colRef("deliveunit");
  559. return false;
  560. } else if(grd_rscdpbnslist.valueMatrix(cnt, grd_rscdpbnslist.colRef("purcunit")).length== 0 ) {
  561. messageBox("포장단위를 " ,"C002");
  562. grd_rscdpbnslist.row = cnt;
  563. grd_rscdpbnslist.col = grd_rscdpbnslist.colRef("purcunit");
  564. return false;
  565. } else if(grd_rscdpbnslist.valueMatrix(cnt, grd_rscdpbnslist.colRef("goodunitcost")).length== 0 ) {
  566. messageBox("구입단가를 " ,"C002");
  567. grd_rscdpbnslist.row = cnt;
  568. grd_rscdpbnslist.col = grd_rscdpbnslist.colRef("goodunitcost");
  569. return false;
  570. } else if(grd_rscdpbnslist.valueMatrix(cnt, grd_rscdpbnslist.colRef("goodpurccost")).length== 0 ) {
  571. messageBox("구입가를 " ,"C002");
  572. grd_rscdpbnslist.row = cnt;
  573. grd_rscdpbnslist.col = grd_rscdpbnslist.colRef("goodpurccost");
  574. return false;
  575. } else if(grd_rscdpbnslist.valueMatrix(cnt, grd_rscdpbnslist.colRef("goodcd")).length== 0 ) {
  576. if ( model.getValue( ipt_goodcd.attribute("ref") ).length !=0 ) {
  577. grd_rscdpbnslist.valueMatrix(cnt, grd_rscdpbnslist.colRef("goodcd")) = model.getValue( ipt_goodcd.attribute("ref") );
  578. } else {
  579. messageBox("약품품코드는" ,"I003");
  580. model.setFocus("ipt_goodcd");
  581. return false;
  582. }
  583. }
  584. }
  585. }
  586. }
  587. return true;
  588. }
  589. function fBaseQtyValidCheck () {
  590. if( grd_goodbaseqtylist.rows- grd_goodbaseqtylist.fixedRows > 0) {
  591. for( cnt = grd_goodbaseqtylist.fixedRows; cnt < grd_goodbaseqtylist.rows; cnt++ ) {
  592. if( grd_goodbaseqtylist.rowStatus(cnt) != 0 ) {
  593. if(grd_goodbaseqtylist.valueMatrix(cnt, grd_goodbaseqtylist.colRef("reqdeptcd")).length== 0 ) {
  594. messageBox("재고관리부서 " ,"C002");
  595. grd_goodbaseqtylist.row = cnt;
  596. grd_goodbaseqtylist.col = grd_rscdpbnslist.colRef("reqdeptcd");
  597. return false;
  598. } /*else if(grd_rscdpbnslist.valueMatrix(cnt, grd_rscdpbnslist.colRef("basevol")).length== 0 ) {
  599. messageBox("안전재고량을 " ,"C002");
  600. grd_rscdpbnslist.row = cnt;
  601. grd_rscdpbnslist.col = grd_rscdpbnslist.colRef("basevol");
  602. return false;
  603. } */
  604. else if(model.getValue(grd_goodbaseqtylist.attribute("nodeset")+"["+cnt+"]/basevol") == '') {
  605. messageBox("안전재고량을 " ,"C002");
  606. grd_rscdpbnslist.row = cnt;
  607. grd_rscdpbnslist.col = grd_rscdpbnslist.colRef("basevol");
  608. return false;
  609. }
  610. }
  611. }
  612. }
  613. return true;
  614. }
  615. /** 2008.08.04 YYJ
  616. 상태에 따른 활성화 / 비활성화 설정 ( 보나에스 정보로 Setting 여부 )
  617. 보나에스 데이터 존재시 사용자 임의로 데이터를 수정 하지 못하고,
  618. 보나에스 Tab에서 데이터 지정하여 반영하기로 함.
  619. * 신규 입력시 직접 입력 가능하도록 풀어준다.
  620. ipt_exchqty // 낱개수량
  621. cmb_deliveunit // 낱개단위
  622. cmb_purcunit // 포장단위
  623. ipt_goodunitcost // 구입단가
  624. ipt_goodpurccost // 구입가
  625. 2008.08.24 YYJ
  626. 상세 화면에서 데이터 수정하더라도.. 보나에스 코드에 반영되도록 수정처리 함
  627. */
  628. function fBnsSetData( vStatus ) {
  629. ipt_exchqty.disabled = vStatus;
  630. cmb_deliveunit.disabled = vStatus;
  631. cmb_purcunit.disabled = vStatus;
  632. ipt_goodunitcost.disabled = vStatus;
  633. ipt_goodpurccost.disabled = vStatus;
  634. model.refresh();
  635. }
  636. function fsetP0133listData()
  637. {
  638. var ins = document.models( 0 ).instances( 0 );
  639. var P0133_nodelist = ins.selectNodes( "/root/init/P0133list/P0133" );
  640. var length = P0133_nodelist.length;
  641. for ( i=length-1; i>0; i-- )
  642. {
  643. var P0133_node = P0133_nodelist.item(i).childnodes;
  644. //P0133list의 코드 데이터 중 코드번호(-,1,4)만 사용하기 위해
  645. //P0133list의 코드 데이터 중 코드번호(-,1,4)만 제외 하고 모두 삭제
  646. if( P0133_node.item(0).value != "-" && P0133_node.item(0).value != "1" && P0133_node.item(0).value != "4")
  647. {
  648. var pNode = P0133_nodelist.item(i).parentNode;
  649. pNode.removeChild(P0133_nodelist.item(i));
  650. }
  651. }
  652. }
  653. function fsetP0142listData()
  654. {
  655. var ins = document.models( 0 ).instances( 0 );
  656. var P0142_nodelist = ins.selectNodes( "/root/init/P0142list/P0142" );
  657. var length = P0142_nodelist.length;
  658. for ( i=length-1; i>0; i-- )
  659. {
  660. var P0142_node = P0142_nodelist.item(i).childnodes;
  661. //P0142list의 코드 데이터 중 코드번호(G,S)만 사용하기 위해
  662. //P0142list의 코드 데이터 중 코드번호(G,S)만 제외 하고 모두 삭제
  663. if( P0142_node.item(0).value != "G" && P0142_node.item(0).value != "S" )
  664. {
  665. var pNode = P0142_nodelist.item(i).parentNode;
  666. pNode.removeChild(P0142_nodelist.item(i));
  667. }
  668. }
  669. }
  670. function misfMsterDetailRetrieve2()
  671. {
  672. var node = instance1.selectNodes("/root/gridset/mastdetailset/*");
  673. for (var i = 0; i <node.length ; i++)
  674. {
  675. var node_detail = node.item(i).childNodes;
  676. //master에 값이 없는 submit 만 실행
  677. if ( node_detail.item(1).value == "" )
  678. {
  679. var resetgridID = document.controls(node_detail.item(0).value);
  680. model.removeNodeset(resetgridID.nodeset);
  681. submit(node_detail.item(2).value);
  682. }
  683. }
  684. }
  685. function fSearchDetailData()
  686. {
  687. var row = grd_goodlist.row;
  688. if ( row < 1 )
  689. row = 1;
  690. grd_goodlist.rebuild();
  691. //model.refreshpart("/root/main/list/good/goodlist");
  692. var goodcd = model.getValue("/root/main/list/good/goodlist["+row+"]/goodcd");
  693. var fromdd = model.getValue("/root/main/list/good/goodlist["+row+"]/fromdd");
  694. var useyn = model.getValue("/root/main/list/good/goodlist["+row+"]/useyn");
  695. if ( btn_sub.selected )
  696. var instcd = model.getValue("/root/main/list/good/goodlist["+row+"]/instcd");
  697. else
  698. var instcd = "001";
  699. model.setValue("/root/send/gooddetlist/goodcd", goodcd);
  700. model.setValue("/root/send/gooddetlist/fromdd", fromdd);
  701. model.setValue("/root/send/gooddetlist/useyn", useyn);
  702. model.setValue("/root/send/gooddetlist/instcd", instcd);
  703. var master_name = model.getValue("/root/gridset/mastdetailset/grd_gooddetlist/master");
  704. var current_name = model.getValue("/root/gridset/mastdetailset/grd_gooddetlist/current");
  705. var submit_id = model.getValue("/root/gridset/mastdetailset/grd_gooddetlist/submit");
  706. // if (getGridUpdateData(document.controls(current_name)) != "")
  707. // {
  708. // var save_val = messageBox("변경된 자료가 존재 합니다. ", "Q002");
  709. //
  710. // if (save_val == "6")
  711. // btn_save.dispatch("DOMActivate");
  712. // }
  713. submit (submit_id);
  714. }
  715. function fSetGrp_detailDisabled( disableFlag )
  716. {
  717. //기관이 수정 가능한 컨트롤만 editing 가능, 다른 컨트롤들은 모두 disable 시킴
  718. if ( disableFlag == false )
  719. {
  720. //grp_detail.disable을 풀어야만 하위 컨트롤들의 disabled제어가 먹음.
  721. grp_detail.disabled = false;
  722. //가능컨트롤 : 적용일자,제조회사코드,제조회사버튼,판매회사코드,판매회사버튼,주거래처코드,주거래처버튼,구코드,처방단가,구입단가,구입가,비고,재고관리기준그룹, 제제약, 바코드, 불용일자, 변경사유,제제약여부
  723. var arrCtrlID = new Array("ipt_fromdd","ipt_prodcmpycd","btn_prodcmpycd","ipt_suppcustcd","btn_suppcustcd","ipt_maincustlastsuplplce","btn_maincustlastsuplplce","ipt_oldcd","ipt_estmamt","ipt_goodunitcost","ipt_goodpurccost", "tar_cmt", "group_stocmngt", "chk_proddrugsetflag", "ipt_barcode", "ipt_nonusetretdd", "cmb_nonusetretresn", "chk_proddrugsetflag");
  724. for ( i=0; i< grp_detail.children.length; i++ )
  725. {
  726. for ( j=0; j<arrCtrlID.length; j++ )
  727. {
  728. if ( grp_detail.children(i).attribute("id") == arrCtrlID[j] )
  729. {
  730. if ( grp_detail.children(i).attribute("inputtype") != "date" && (grp_detail.children(i).elementName == "xforms:input" || grp_detail.children(i).elementName == "xforms:textarea") )
  731. grp_detail.children(i).attribute("editable") = "true"; //input, textarea의 경우 editing은 안되지만 복사는 되게.
  732. break;
  733. }
  734. }
  735. if ( j == arrCtrlID.length )
  736. {
  737. if ( grp_detail.children(i).attribute("inputtype") != "date" && (grp_detail.children(i).elementName == "xforms:input" || grp_detail.children(i).elementName == "xforms:textarea") )
  738. grp_detail.children(i).attribute("editable") = "false"; //input, textarea의 경우 editing은 안되지만 복사는 되게.
  739. else
  740. grp_detail.children(i).disabled = true;
  741. }
  742. }
  743. }
  744. else
  745. {
  746. for ( i=0; i< grp_detail.children.length; i++ )
  747. {
  748. if ( grp_detail.children(i).attribute("inputtype") != "date" && (grp_detail.children(i).elementName == "xforms:input" || grp_detail.children(i).elementName == "xforms:textarea") )
  749. grp_detail.children(i).attribute("editable") = "false"; //input, textarea의 경우 editing은 안되지만 복사는 되게.
  750. else
  751. grp_detail.children(i).disabled = true;
  752. }
  753. }
  754. }
  755. //----------------------------------------------------------
  756. // Column별 변경이력정보를 비교하는 구분
  757. //----------------------------------------------------------
  758. var GoodColumnData = "goodcd" +"*goodcd" +"*GOODCD" +"*물품코드" +"*V#" // 01 물품코드 VARCHAR2(12)
  759. + "fromdd" +"*fromdd" +"*FROMDD" +"*사용시작일" +"*V#" // 02 사용시작일 VARCHAR2(8)
  760. + "instcd" +"*instcd" +"*INSTCD" +"*기관코드" +"*V#" // 03 기관코드 VARCHAR2(3)
  761. + "useyn" +"*useyn" +"*USEYN" +"*사용여부" +"*V#" // 04 사용여부 VARCHAR2(1)
  762. + "todd" +"*todd" +"*TODD" +"*사용끝일자" +"*V#" // 05 사용끝일자 VARCHAR2(8)
  763. + "goodflag" +"*goodflagnm" +"*GOODFLAG" +"*물품구분" +"*V#" // 06 물품구분 VARCHAR2(1)
  764. + "goodnm" +"*goodnm" +"*GOODNM" +"*물품명" +"*V#" // 07 물품명 VARCHAR2(200)
  765. + "goodhngnm" +"*goodhngnm" +"*GOODHNGNM" +"*영문명" +"*V#" // 08 영문명 VARCHAR2(200)
  766. + "goodengnm" +"*goodengnm" +"*GOODENGNM" +"*물품명" +"*V#" // 09 물품명 VARCHAR2(200)
  767. + "goodspec" +"*goodspec" +"*GOODSPEC" +"*물품규격" +"*V#" // 10 물품규격 VARCHAR2(100)
  768. + "goodmodel" +"*goodmodel" +"*GOODMODEL" +"*모델" +"*V#" // 11 모델 VARCHAR2(100)
  769. + "asetflag" +"*asetflagnm" +"*ASETFLAG" +"*자산구분" +"*V#" // 12 자산구분(R0043) VARCHAR2(1)
  770. + "lrgcd" +"*lrgnm" +"*LRGCD" +"*대분류코드" +"*V#" // 13 대분류코드 VARCHAR2(2)
  771. + "mdlcd" +"*mdlnm" +"*MDLCD" +"*중분류코드" +"*V#" // 14 중분류코드 VARCHAR2(3)
  772. + "smlcd" +"*smlnm" +"*SMLCD" +"*소분류코드" +"*V#" // 15 소분류코드 VARCHAR2(2)
  773. + "oldcd" +"*oldcd" +"*OLDCD" +"*구코드" +"*V#" // 16 구코드 VARCHAR2(12)
  774. + "proddrugsetflag" +"*proddrugsetflagnm" +"*PRODDRUGSETFLAG" +"*GROUP구분" +"*V#" // 17 1:제제약,2:CSRSET,3:진료재료SET VARCHAR2(1)
  775. + "winacnt" +"*winacntnm" +"*WINACNT" +"*계정코드" +"*V#" // 18 계정코드 VARCHAR2(8)
  776. + "amtacnt" +"*amtacntnm" +"*AMTACNT" +"*비용계정" +"*V#" // 19 비용계정 VARCHAR2(8)
  777. + "mainmngtdeptcd" +"*mainmngtdeptnm" +"*MAINMNGTDEPTCD" +"*주관리부서코드" +"*V#" // 20 주관리부서코드 VARCHAR2(10)
  778. + "mainusedeptcd" +"*mainusedeptnm" +"*MAINUSEDEPTCD" +"*주사용부서코드" +"*V#" // 21 주사용부서코드 VARCHAR2(10)
  779. + "stocmngtflag" +"*stocmngtflagnm" +"*STOCMNGTFLAG" +"*재고관리기준" +"*V#" // 23 재고관리기준 VARCHAR2(1)
  780. + "purcunit" +"*purcunit" +"*PURCUNIT" +"*입고단위" +"*V#" // 24 입고단위(R0039) VARCHAR2(12)
  781. + "putrunitcost" +"*putrunitcost" +"*PUTRUNITCOST" +"*납품가" +"*N#" // 24 납품가 NUMBER(9)
  782. + "deliveunit" +"*deliveunit" +"*DELIVEUNIT" +"*수불단위" +"*V#" // 25 수불단위(R0039) VARCHAR2(12)
  783. + "exchqty" +"*exchqty" +"*EXCHQTY" +"*환산배수" +"*N#" // 26 환산배수 NUMBER(9)
  784. + "minexch" +"*minexch" +"*MINEXCH" +"*최소환산수량" +"*N#" // 27 최소환산수량 NUMBER(9)
  785. + "reuseyn" +"*reuseynnm" +"*REUSEYN" +"*재사용구분" +"*V#" // 28 -:None,1:재사용,2:분할사용 VARCHAR2(1)
  786. + "divusenvalqty" +"*divusenvalqty" +"*DIVUSENVALQTY" +"*분할사용수치" +"*V#" // 29 분할사용수치 VARCHAR2(30)
  787. + "calcscorinfoacptstat" +"*calcscorinfoacptstat" +"*CALCSCORINFOACPTSTAT" +"*수가정보등록상태" +"*V#" // 30 수가정보등록상태 VARCHAR2(1)
  788. + "calcscorinfoacptdd" +"*calcscorinfoacptdd" +"*CALCSCORINFOACPTDD" +"*수가정보등록일자" +"*V#" // 31 수가정보등록일자 VARCHAR2(8)
  789. + "insuyn" +"*insuyn" +"*INSUYN" +"*보험여부" +"*V#" // 32 보험여부 VARCHAR2(1)
  790. + "edicd" +"*edicd" +"*EDICD" +"*EDI코드" +"*V#" // 33 EDI코드 VARCHAR2(16)
  791. + "newrgstdd" +"*newrgstdd" +"*NEWRGSTDD" +"*신규등록일자" +"*V#" // 34 신규등록일자 VARCHAR2(8)
  792. + "reqdeptcd" +"*reqdeptnm" +"*REQDEPTCD" +"*신청부서코드" +"*V#" // 35 신청부서코드 VARCHAR2(10)
  793. + "reqpsn" +"*reqpsnnm" +"*REQPSN" +"*신청자ID" +"*V#" // 36 신청자ID VARCHAR2(10)
  794. + "reqflag" +"*reqflagnm" +"*REQFLAG" +"*청구기준" +"*V#" // 37 청구기준 VARCHAR2(1)
  795. + "tmpreqflag" +"*tmpreqflag" +"*TMPREQFLAG" +"*임의청구구분" +"*V#" // 38 임의청구구분 VARCHAR2(1)
  796. + "reqmthd" +"*reqmthdnm" +"*REQMTHD" +"*청구구분" +"*V#" // 39 처방집계,정량보충,일반청구 VARCHAR2(1)
  797. + "reqprid" +"*reqpridnm" +"*REQPRID" +"*청구주기" +"*V#" // 40 청구주기 VARCHAR2(2)
  798. + "iopsnflag" +"*iopsnflag" +"*IOPSNFLAG" +"*내외자구분" +"*V#" // 41 내외자구분 VARCHAR2(1)
  799. + "prodplce" +"*prodplcenm" +"*PRODPLCE" +"*제조국" +"*V#" // 42 제조국 VARCHAR2(3)
  800. + "prodcmpycd" +"*prodcmpynm" +"*PRODCMPYCD" +"*제조회사코드" +"*V#" // 43 제조회사코드 VARCHAR2(5)
  801. + "maincustlastsuplplce" +"*maincustlastsuplplcenm" +"*MAINCUSTLASTSUPLPLCE" +"*최종공급처" +"*V#" // 44 최종공급처 VARCHAR2(10)
  802. + "suppcustcd" +"*suppcustnm" +"*SUPPCUSTCD" +"*최종공급처" +"*V#" // 45 보조거래처코드 VARCHAR2(10)
  803. + "conflag" +"*conflagnm" +"*CONFLAG" +"*계약구분" +"*V#" // 46 계약구분 VARCHAR2(1)
  804. + "fromconterm" +"*fromconterm" +"*FROMCONTERM" +"*계약기간From" +"*V#" // 47 계약기간From VARCHAR2(8)
  805. + "toconterm" +"*toconterm" +"*TOCONTERM" +"*계약기간To" +"*V#" // 48 계약기간To VARCHAR2(8)
  806. + "estmamt" +"*estmamt" +"*ESTMAMT" +"*견적가" +"*N#" // 49 견적가 NUMBER(14,2)
  807. + "forgncurncyunitcost" +"*forgncurncyunitcost" +"*FORGNCURNCYUNITCOST" +"*외화단가" +"*N#" // 50 외화단가 NUMBER(14,2)
  808. + "curncyunit" +"*curncyunitnm" +"*CURNCYUNIT" +"*화폐단위" +"*V#" // 51 화폐단위 VARCHAR2(3)
  809. + "goodunitcost" +"*goodunitcost" +"*GOODUNITCOST" +"*제품단가" +"*N#" // 52 제품단가 NUMBER(14,2)
  810. + "purcflag" +"*purcflagnm" +"*PURCFLAG" +"*구매구분" +"*V#" // 53 구매구분(구매,수탁,위탁) VARCHAR2(1)
  811. + "allsizeyn" +"*allsizeyn" +"*ALLSIZEYN" +"*ALLSIZE유무" +"*V#" // 54 ALLSIZE유무 VARCHAR2(1)
  812. + "setplceordflag" +"*setplceordflagnm" +"*SETPLCEORDFLAG" +"*SET발주구분" +"*V#" // 55 SET발주구분 VARCHAR2(1)
  813. + "plceordbase" +"*plceordbase" +"*PLCEORDBASE" +"*발주기준" +"*V#" // 56 XX 발주기준 VARCHAR2(1)
  814. + "plceordqtycretflag" +"*plceordqtycretflag" +"*PLCEORDQTYCRETFLAG" +"*발주량생성구분" +"*V#" // 57 XX 발주량생성구분 VARCHAR2(1)
  815. + "plceordnonusedd" +"*plceordnonusedd" +"*PLCEORDNONUSEDD" +"*발주불용일자" +"*V#" // 58 발주불용일자 VARCHAR2(8)
  816. + "addtaxrate" +"*addtaxrate" +"*ADDTAXRATE" +"*부가세율" +"*V#" // 59 부가세율 VARCHAR2(3)
  817. + "lastpurcdd" +"*lastpurcdd" +"*LASTPURCDD" +"*최종구매일자" +"*V#" // 60 최종구매일자 VARCHAR2(8)
  818. + "nonusetretresn" +"*nonusetretresn" +"*NONUSETRETRESN" +"*불용처리사유" +"*V#" // 61 불용처리사유(reason) VARCHAR2(60)
  819. + "mngtflag" +"*mngtflag" +"*MNGTFLAG" +"*관리구분" +"*V#" // 62 관리구분(고가약품,..) VARCHAR2(1)
  820. + "bnscd" +"*bnscd" +"*BNSCD" +"*보나에스코드" +"*V#" // 63 보나에스코드 VARCHAR2(12)
  821. + "cntrdrugyn" +"*cntrdrugyn" +"*CNTRDRUGYN" +"*규제약품여부" +"*V#" // 64 규제약품여부 VARCHAR2(1)
  822. + "narcflag" +"*narcflag" +"*NARCFLAG" +"*마약향정구분" +"*V#" // 65 마약/향정구분 VARCHAR2(1)
  823. + "expnyn" +"*expnyn" +"*EXPNYN" +"*고가여부" +"*V#" // 66 고가여부 VARCHAR2(1)
  824. + "cntsunit" +"*cntsunit" +"*CNTSUNIT" +"*함량단위" +"*V#" // 67 함량단위 VARCHAR2(12)
  825. + "cntsqty" +"*cntsqty" +"*CNTSQTY" +"*함량용량" +"*V#" // 68 함량용량 VARCHAR2(20)
  826. + "specvol" +"*specvol" +"*SPECVOL" +"*규격용량" +"*V#" // 69 규격용량 VARCHAR2(20)
  827. + "drugkind" +"*drugkind" +"*DRUGKIND" +"*약품종류" +"*V#" // 70 약품종류 VARCHAR2(3)
  828. + "cooppurcyn" +"*cooppurcyn" +"*COOPPURCYN" +"*공동구매여부" +"*V#" // 71 공동구매여부 VARCHAR2(1)
  829. + "autrampharm" +"*autrampharm" +"*AUTRAMPHARM" +"*자동이송약국" +"*V#" // 72 자동이송-약국 VARCHAR2(1)
  830. + "keepmthd" +"*keepmthd" +"*KEEPMTHD" +"*보관방법" +"*V#" // 73 보관방법 VARCHAR2(1)
  831. + "specldrug" +"*specldrug" +"*SPECLDRUG" +"*특별약품" +"*V#" // 74 특별약품 VARCHAR2(1)
  832. + "gnrlspcl" +"*gnrlspcl" +"*GNRLSPCL" +"*일반-전문" +"*V#" // 75 일반-전문 VARCHAR2(1)
  833. + "welfprt" +"*welfprtnm" +"*WELFPRT" +"*복지부분류" +"*V#" // 76 복지부분류 VARCHAR2(3)
  834. + "goodtype" +"*goodtype" +"*GOODTYPE" +"*제형" +"*V#" // 77 제형 VARCHAR2(3)
  835. + "com" +"*com" +"*COM" +"*성분" +"*V#" // 78 성분 VARCHAR2(10)
  836. + "limdrugyn" +"*limdrugyn" +"*LIMDRUGYN" +"*제한약품여부" +"*V#" // 79 제한약품여부 VARCHAR2(1)
  837. + "cmt" +"*cmt" +"*CMT" +"*비고" +"*V#" // 80 비고 VARCHAR2(200)
  838. + "safestocappdd" +"*safestocappdd" +"*SAFESTOCAPPDD" +"*안전재고적용일자" +"*V#" // 81 안전재고적용일자 VARCHAR2(8)
  839. + "safestocqty" +"*safestocqty" +"*SAFESTOCQTY" +"*안전재고량" +"*N#" // 82 안전재고량 NUMBER(14,2)
  840. + "ddavguseqty" +"*ddavguseqty" +"*DDAVGUSEQTY" +"*일평균사용량" +"*N#" // 83 일평균사용량 NUMBER(14,2)
  841. + "mmavgusescheqty" +"*mmavgusescheqty" +"*MMAVGUSESCHEQTY" +"*월평균사용예정량" +"*N#" // 84 월평균사용예정량 NUMBER(14,2)
  842. + "mmavguseqty" +"*mmavguseqty" +"*MMAVGUSEQTY" +"*월평균사용량" +"*N#" // 85 월평균사용량 NUMBER(14,2)
  843. + "prprtystocpossndayno" +"*prprtystocpossndayno" +"*PRPRTYSTOCPOSSNDAYNO" +"*적정재고보유일수" +"*N#" // 86 적정재고보유일수 NUMBER(9)
  844. + "prcpunit" +"*prcpunit" +"*PRCPUNIT" +"*수가단위" +"*V#" // 87 수가단위 VARCHAR2(12)
  845. + "prcpexchqty" +"*prcpexchqty" +"*PRCPEXCHQTY" +"*수불환산수량" +"*N#" // 88 수불환산수량 NUMBER(11,2)
  846. + "insucost" +"*insucost" +"*INSUCOST" +"*보험단가" +"*N#" // 89 보험단가 NUMBER(14,2)
  847. + "specunit" +"*specunit" +"*SPECUNIT" +"*규격단위" +"*V#" // 90 규격단위 VARCHAR2(12)
  848. + "pemtkeepmthd" +"*pemtkeepmthd" +"*PEMTKEEPMTHD" +"*허가보관방법" +"*V#" // 91 허가보관방법 VARCHAR2(100)
  849. + "orgloc" +"*orgloc" +"*ORGLOC" +"*원산지(영양)" +"*V#" // 92 원산지(영양) VARCHAR2(30)
  850. + "comnm" +"*comnm" +"*COMNM" +"*성분명칭" +"*V#" // 93 성분명칭 VARCHAR2(200)
  851. + "purcqty" +"*purcqty" +"*PURCQTY" +"*포장수량" +"*N#" // 94 포장수량 NUMBER(9)
  852. + "prcpqty" +"*prcpqty" +"*PRCPQTY" +"*처방수량" +"*N#" // 95 처방수량 NUMBER(9)
  853. + "goodpurccost" +"*goodpurccost" +"*GOODPURCCOST" +"*구입가" +"*N#" // 96 구입가 NUMBER(14,2)
  854. + "purcacntcd" +"*purcacntcd" +"*PURCACNTCD" +"*구매계정코드" +"*V" ; // 97 구매계정코드 VARCHAR2(3)
  855. var GoodColumn = GoodColumnData.split("#");
  856. //
  857. function fGoodOldNewCompare() {
  858. var DefCnt = 0;
  859. var vOldPath = "/root/init/oldgoodlist/";
  860. var vNewPath = "/root/main/gooddet/gooddetlist/";
  861. var vSndPath = "/root/send/save/goodchange";
  862. var vHeadData = "instcd" +"▦" // 01 기관코드
  863. + "tabname" +"▦" // 02 테이블명
  864. + "changefl" +"▦" // 03 변경분류 물품분류
  865. + "changecd" +"▦" // 04 변경코드 물품코드
  866. + "colname" +"▦" // 05 컬럼명
  867. + "colcomt" +"▦" // 06 컬럼코멘드
  868. + "oldvalue" +"▦" // 07 변경전변경값
  869. + "oldvalnm" +"▦" // 08 변경전변경명
  870. + "newvalue" +"▦" // 09 변경후변경값
  871. + "newvalnm" +"▦" // 10 변경후변경명
  872. + "colflag" +"▦" // 11 컬럼구분 V:VARCHAR,D:DATE,N:NUMBER,T:TIMESTAMP
  873. + "userid" +"▩"; // 14 변경작업자
  874. if (vGoodNew == "N") {;
  875. model.removenode(vSndPath);
  876. model.makeNode(vSndPath);
  877. model.setValue(vSndPath, vHeadData);
  878. return;
  879. }
  880. var vBodyData = "";
  881. var vInstcd = getUserInfo("dutplceinstcd");
  882. var vUserId = getUserInfo("userid") ;
  883. var vTabName = "RSCDGOOD" ;
  884. var vGoodcd = model.getValue(vNewPath + "goodcd" );
  885. var vGoodFalg = model.getValue(vNewPath + "goodflag");
  886. for (var i=0; i < GoodColumn.length; i++){
  887. var vColumn = GoodColumn[i].split("*");
  888. if (model.getValue(vOldPath+vColumn[0]) !=
  889. model.getValue(vNewPath+vColumn[0]) ) {
  890. DefCnt++;
  891. vBodyData += vInstcd + "▦" // 01 기관코드
  892. + vTabName + "▦" // 02 테이블명
  893. + vGoodFalg + "▦" // 03 변경분류 물품분류
  894. + vGoodcd + "▦" // 04 변경코드 물품코드
  895. + vColumn[2] + "▦" // 05 컬럼명
  896. + vColumn[3] + "▦" // 06 컬럼코멘드
  897. + model.getValue(vOldPath+vColumn[0]) + "▦" // 07 변경전변경값
  898. + model.getValue(vOldPath+vColumn[1]) + "▦" // 08 변경전변경명
  899. + model.getValue(vNewPath+vColumn[0]) + "▦" // 09 변경후변경값
  900. + model.getValue(vNewPath+vColumn[1]) + "▦" // 10 변경후변경명
  901. + vColumn[4] + "▦" // 11 컬럼구분 V:VARCHAR,D:DATE,N:NUMBER,T:TIMESTAMP
  902. + vUserId + "▩"; // 14 변경작업자
  903. }
  904. }
  905. model.removenode(vSndPath);
  906. model.makeNode(vSndPath);
  907. alert(vHeadData+vBodyData)
  908. model.setValue(vSndPath, vHeadData+vBodyData);
  909. alert(instance1.selectNodesXml("/root/send/save"));
  910. }