SMRSC05303.js 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980
  1. /* ---------------------------------------------------------------------
  2. SMRSC05303_기관물품코드등록.xrw (SMRSC05303.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By HR Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. var vGoodNew = "U"; //U:UPDATE, N:NEW
  9. // --------------------------------------------------
  10. //화면 Control을 초기화한다
  11. // --------------------------------------------------
  12. function fInitForm() {
  13. fCheckAuth();
  14. fInitialize();
  15. fOpenForm();
  16. }
  17. // --------------------------------------------------
  18. // 사용자권한 Check
  19. // --------------------------------------------------
  20. function fCheckAuth() {
  21. btn_search.disabled = !checkAuth("R") ;
  22. btn_save.disabled = !checkAuth("X") ;
  23. }
  24. // --------------------------------------------------
  25. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  26. // --------------------------------------------------
  27. function fInitialize(pFlag) {
  28. //이창록 추가 2009-08-25( btn_instgood.selected ="true"설정)
  29. btn_instgood.selected ="true";
  30. btn_instgood.dispatch("DOMActivate");
  31. model.resetInstanceNode("/root/send");
  32. model.setValue("/root/send/save/setautoins/setyn","N");
  33. model.setValue(cmb_instcd.attribute("ref") , getUserInfo("dutplceinstcd")); // Login 사용자 기관코드
  34. model.setValue(ipt_userinstcd.attribute("ref"), getUserInfo("dutplceinstcd")); // Login 사용자 기관코드
  35. rszfGoodFlagListByPgmGubn(cmb_goodflag,"1","N");
  36. misfComboCopyItemSet(cmb_goodflag ,"" , cmb_goodflag_search, ""); //물품구분
  37. rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),getUserInfo("userid"),"1","P" );
  38. // 2010.06.09 CHR GROUP 구분 이용희선생님요구
  39. misfComboComCdList("R0068",cmb_proddrugsetflag, "Y");
  40. misfComboComCdListMulti("R0092,R0069,R0047,R0035,R0106,R0093,R0095,R0110,R0111,R0107,C0048,C0048,030M0001,R0450"
  41. ,"cmb_reqmthd,cmb_stocmngtflag,cmb_curncyunit,cmb_prodplce,cmb_plceordqtycretflag,cmb_reqprid,cmb_conflag,cmb_setplceordflag,cmb_purcflag,cmb_plceordbase,cmb_instcd,cmb_instcopy,cmb_wareflag,cmb_mainusedeptcd");
  42. //기관코드 읽어오는 부분 넣기
  43. var instcd = getUserInfo("dutplceinstcd");
  44. var instnm = getUserInfo("dutplceinstnm");
  45. if(instcd.length > 0)model.setValue(opt_instcd.attribute("ref"), instcd);
  46. if(instnm.length > 0)model.setValue(opt_instnm.attribute("ref"), instnm);
  47. model.removeNodeset(grd_goodlist.nodeset );
  48. model.removeNodeset(grd_gooddetlist.nodeset );
  49. model.removeNodeset(grd_costhistinfo.nodeset);
  50. model.removeNodeset(grd_instinfo.nodeset );
  51. model.removeNodeset(grd_oldcdinfo.nodeset );
  52. model.removeNodeset(grd_rscdgchglist.nodeset);
  53. var Node = instance1.selectNodes("/root/main/list/gooddet/gooddetlist");
  54. if(pFlag =="init") {
  55. if(Node.length > 0) {
  56. misfGridIUD(grd_gooddetlist, "A");
  57. }
  58. } else {
  59. misfGridIUD(grd_gooddetlist, "A");
  60. }
  61. // 단위셋팅 초기화
  62. model.removeNodeset("/root/temp/currentunit");
  63. model.makeValue("/root/temp/currentunit/instcd","");
  64. model.makeValue("/root/temp/currentunit/goodflag","");
  65. // 대분류 코드 콤보 설정.
  66. addComboItem( "cmb_goodflag_search", "- 전 체 -", "", "above");
  67. //물품구분일 경우 첫번째 index 자동 설정
  68. if(cmb_goodflag_search.length> 0) cmb_goodflag_search.selectedindex= 0;
  69. //rszfLMSComboList(model.getValue(cmb_goodflag_search.attribute("ref")), "", "", "cmb_lrgcd_search", "", "L", "Y", "Y");
  70. if(pFlag =="init"){
  71. if(Node.length > 0){
  72. model.setValue(grd_gooddetlist.nodeset + "/goodflag", model.getValue(cmb_goodflag_search.attribute("ref")));
  73. model.copyNode("/root/main/gooddet/gooddetlist","/root/main/list/gooddet/gooddetlist");
  74. }
  75. }else{
  76. model.setValue(grd_gooddetlist.nodeset + "/goodflag", model.getValue(cmb_goodflag_search.attribute("ref")));
  77. model.copyNode("/root/main/gooddet/gooddetlist","/root/main/list/gooddet/gooddetlist");
  78. }
  79. misfMsterDetailSet(grd_goodlist ,null , "TRRSC05309" ,"Y", "byrow");
  80. misfMsterDetailSet(grd_gooddetlist ,grd_goodlist, "TRRSC05302" ,"Y", "byrow");
  81. misfMsterDetailSet(grd_costhistinfo,grd_goodlist, "TRRSC05302" ,"N", "byrow");
  82. misfMsterDetailSet(grd_instinfo ,grd_goodlist, "TRRSC05302" ,"N", "byrow");
  83. misfMsterDetailSet(grd_oldcdinfo ,grd_goodlist, "TRRSC05302" ,"N", "byrow");
  84. misfMsterDetailSet(grd_rscdgchglist,grd_goodlist, "TRRSC03702" ,"N");
  85. // 물품구분별 권한
  86. fSetGoodFlagAuth();
  87. //rbo_instflag.select(1);
  88. model.setValue(cmb_instcopy.attribute("ref"), instcd); // Login 사용자 기관코드
  89. model.setValue(rbo_instflag.attribute("ref"),"Y");
  90. grd_goodlist.explorerbar = "sortshow";
  91. model.setFocus("ipt_goodcd_search");
  92. model.refresh();
  93. }
  94. // --------------------------------------------------
  95. // 화면이 다른 폼에 의해 불려졌을때 실행!!
  96. // --------------------------------------------------
  97. function fOpenForm()
  98. {
  99. if (checkOpener()) {
  100. if (opener.window.javascript.getScreenID() == "SMPIC00100") {
  101. //입력및 저장관련 컨트롤 설정.
  102. fOpenFormControlSetting(true);
  103. model.makeNode("/root/temp/good");
  104. model.copyNode("/root/temp/good", opener.root.main.item1.mchrginfo);
  105. model.setValue("/root/send/goodlist/goodcd", model.getValue("/root/temp/good/calcscorcd"));
  106. //팝업으로 띄워졌을경우 물품구분 콤보에 "전체" Item을 추가
  107. //품목세부사항의 단위 콤보를 설정하기 위해 넘어온 goodcd의 물품구분을 가져와서 설정함.
  108. if (model.getValue("/root/send/goodlist/goodcd") != "")
  109. {
  110. addComboItem("cmb_goodflag_search", "", "", "above");
  111. var goodcdflag = model.getValue("/root/send/goodlist/goodcd");
  112. var flag = goodcdflag.substring(0,1);
  113. cmb_goodflag_search.value = flag;
  114. cmb_goodflag_search.refresh();
  115. //cmb_goodflag_search.select(0);
  116. fRetrGoodList(false);
  117. }
  118. }else if (opener.window.javascript.getScreenID() == "SMRSI02600"){ // 평화드림 월정산에서 로드했을시....
  119. if (model.getValue("/root/temp/goodcd") != "")
  120. {
  121. cmb_goodflag_search.value = model.getValue("/root/temp/goodflag");
  122. ipt_goodcd_search.value = model.getValue("/root/temp/goodcd");
  123. btn_search.dispatch("DOMActivate");
  124. }
  125. }
  126. }
  127. }
  128. // --------------------------------------------------
  129. // 화면이 Button Control
  130. // --------------------------------------------------
  131. function fOpenFormControlSetting(fBool) {
  132. btn_save.disabled = fBool;
  133. btn_sgsave.disabled = fBool;
  134. button2.disabled = fBool;
  135. btn_choidel.disabled = fBool;
  136. btn_insert.disabled = fBool;
  137. btn_photinfo.disabled = fBool;
  138. //btn_goodcdcopy.disabled = fBool;
  139. btn_useinstinfo.disabled = fBool;
  140. btn_allsizergst.disabled = fBool;
  141. btn_goodsetrgst.disabled = fBool;
  142. }
  143. // --------------------------------------------------
  144. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  145. // 화면 전체 조회
  146. // --------------------------------------------------
  147. function fRetrGoodList(nodecopy) {
  148. model.resetInstanceNode("/root/main/gooddet/gooddetlist");
  149. misfMsterDetailRetrieve();
  150. if (nodecopy == true) fAfterRetrGoodList();
  151. else if(nodecopy == false && grd_gooddetlist.rows - grd_gooddetlist.fixedRows== 0) btn_insert.dispatch("DOMActivate");
  152. }
  153. // --------------------------------------------------
  154. // 물품구분별 권한체크.
  155. // --------------------------------------------------
  156. function fSetGoodFlagAuth() {
  157. // btn_save.disabled=true;
  158. // btn_sgsave.disabled=true;
  159. // rszfGetPurcGoodFlagAuthInfo(opt_instcd.value , cmb_goodflag_search.value, getUserInfo("userid"), "%");
  160. //
  161. // if (rszfGetGoodFlagAuthInfoByCond("goodflagauth") =="Y")
  162. // {
  163. // btn_save.disabled=false;
  164. // //btn_sgsave.disabled=false;
  165. // }
  166. }
  167. // --------------------------------------------------
  168. // Save Data Check
  169. // --------------------------------------------------
  170. function fCheckSaveData()
  171. {
  172. if ((vGoodNew == "U") &&
  173. (model.getValue(ipt_userinstcd.attribute("ref")) != model.getValue("/root/main/gooddet/gooddetlist/instcd"))) {
  174. messageBox("선생님 기관물품이 아닌 물품을 저장","E001");
  175. model.setFocus("ipt_fromconterm");
  176. return false;
  177. }
  178. if ((vGoodNew == "N") && //U:UPDATE, N:NEW
  179. (model.getValue(ipt_userinstcd.attribute("ref")) != model.getValue(cmb_instcd.attribute("ref")))) {
  180. messageBox("선생님 기관물품이 아닌 물품을 저장","E001");
  181. model.setFocus("ipt_fromconterm");
  182. return false;
  183. }
  184. if(model.getValue(ipt_goodcd.attribute("ref")).length== 0 ) {
  185. messageBox("물품코드는" ,"I003");
  186. model.setFocus("ipt_goodcd");
  187. return false;
  188. }
  189. if(model.getValue(ipt_goodnm.attribute("ref")).length== 0 ) {
  190. messageBox("물품코드명은" ,"I003");
  191. model.setFocus("ipt_goodnm");
  192. return false;
  193. }
  194. if(model.getValue(cmb_lrgcd.attribute("ref")).length== 0 ) {
  195. messageBox("대분류코드는" ,"I003");
  196. model.setFocus("cmb_lrgcd");
  197. return false;
  198. }
  199. if(model.getValue(ipt_winacnt.attribute("ref")).length== 0 ) {
  200. messageBox("비용계정은" ,"I003");
  201. model.setFocus("ipt_winacnt");
  202. return false;
  203. }
  204. if(model.getValue(ipt_mngtdeptcd.attribute("ref")).length== 0 ) {
  205. messageBox("주관리부서는" ,"I003");
  206. model.setFocus("ipt_mngtdeptcd");
  207. return false;
  208. }
  209. if(model.getValue(cmb_reqmthd.attribute("ref")).length== 0 ) {
  210. messageBox("청구방법은" ,"I003");
  211. model.setFocus("cmb_reqmthd");
  212. return false;
  213. }
  214. if(model.getValue(cmb_purcunit.attribute("ref")).length== 0 ) {
  215. messageBox("구매단위은" ,"I003");
  216. model.setFocus("cmb_purcunit");
  217. return false;
  218. }
  219. if(model.getValue(ipt_exchqty.attribute("ref")).length== 0 ) {
  220. messageBox("환산수량은" ,"I003");
  221. model.setFocus("ipt_exchqty");
  222. return false;
  223. }
  224. if(model.getValue(cmb_deliveunit.attribute("ref")).length== 0 ) {
  225. messageBox("불출단위는" ,"I003");
  226. model.setFocus("cmb_deliveunit");
  227. return false;
  228. }
  229. if(model.getValue(cmb_stocmngtflag.attribute("ref")).length== 0 ) {
  230. messageBox("재고관리기준은" ,"I003");
  231. model.setFocus("cmb_stocmngtflag");
  232. return false;
  233. }
  234. if(model.getValue(cmb_reqmthd.attribute("ref")).length== 0 ) {
  235. messageBox("청구방법은" ,"I003");
  236. model.setFocus("cmb_reqmthd");
  237. return false;
  238. }
  239. if(model.getValue(cmb_purcflag.attribute("ref")).length== 0 ) {
  240. messageBox("구매구분은" ,"I003");
  241. model.setFocus("cmb_purcflag");
  242. return false;
  243. }
  244. if(model.getValue(rdo_insuyn.attribute("ref")).length== 0 ) {
  245. messageBox("수가여부는" ,"I003");
  246. model.setFocus("rdo_insuyn");
  247. return false;
  248. }
  249. if(model.getValue(ipt_maincustlastsuplplce.attribute("ref")).length== 0 ) {
  250. messageBox("주거래처는" ,"I003");
  251. model.setFocus("ipt_maincustlastsuplplce");
  252. return false;
  253. }
  254. if(model.getValue(ipt_suppcustcd.attribute("ref")).length== 0 ) {
  255. messageBox("보조거래처는" ,"I003");
  256. model.setFocus("ipt_suppcustcd");
  257. return false;
  258. }
  259. if(model.getValue(ipt_minexch.attribute("ref")).length== 0 ) {
  260. messageBox("최소청구량은" ,"I003");
  261. model.setFocus("ipt_minexch");
  262. return false;
  263. }
  264. if(model.getValue(cmb_reqprid.attribute("ref")).length== 0 ) {
  265. messageBox("청구주기는" ,"I003");
  266. model.setFocus("cmb_reqprid");
  267. return false;
  268. }
  269. if(model.getValue(rdo_reqflag.attribute("ref")).length== 0 ) {
  270. messageBox("임의청구구분은" ,"I003");
  271. model.setFocus("rdo_reqflag");
  272. return false;
  273. }
  274. if(model.getValue(rdo_allsizeyny.attribute("ref")).length== 0 ) {
  275. messageBox("ALLSIZE 유무는" ,"I003");
  276. model.setFocus("rdo_allsizeyny");
  277. return false;
  278. }
  279. if(model.getValue(cmb_reqflag.attribute("ref")).length== 0 ) {
  280. messageBox("청구구분은" ,"I003");
  281. model.setFocus("cmb_reqflag");
  282. return false;
  283. }
  284. //김병국 추가 2009-08-26
  285. if(model.getValue(ipt_goodunitcost.attribute("ref")).length== 0 ) {
  286. messageBox("제품단가는" ,"I003");
  287. model.setFocus("ipt_goodunitcost");
  288. return false;
  289. }
  290. //박진억 추가 2012-11-28
  291. if((model.getValue(cmb_mainusedeptcd.attribute("ref")).length == 0 || model.getValue(cmb_mainusedeptcd.attribute("ref")).length > 2)
  292. && ( model.getValue(cmb_wareflag.attribute("ref")) == "1"
  293. || model.getValue(cmb_wareflag.attribute("ref")) == "2"))
  294. {
  295. messageBox("물류관리창고, 진료재료창고 물품은 사용부서가" ,"I003");
  296. model.setFocus("cmb_mainusedeptcd");
  297. return false;
  298. }
  299. /* if(model.getValue(cmb_asetflag.attribute("ref")).length== 0 ) {
  300. messageBox("자산구분은" ,"I003");
  301. model.setFocus("cmb_asetflag");
  302. return false;
  303. } */
  304. if(model.getValue(chk_reuseyn.attribute("ref")) == "Y" && model.getValue(ipt_divusenvalqty.attribute("ref")) == 0)
  305. {
  306. messageBox("분할사용여부를 선택하신 경우에는 분할사용수치가 " ,"I003");
  307. model.setFocus("ipt_divusenvalqty");
  308. return false;
  309. }
  310. if(model.getValue(ipt_nonusetretdd.attribute("ref")).length > 0 && model.getValue(ipt_nonusetretdd.attribute("ref")) <= getCurrentDate() && model.getValue(ipt_nonusetretresn.attribute("ref")) == 0)
  311. {
  312. messageBox("코드 불용일자를 선택하신 경우에는 불용사유가 " ,"I003");
  313. model.setFocus("ipt_nonusetretresn");
  314. return false;
  315. }
  316. if(model.getValue(cmb_conflag.attribute("ref")).length > 0 )
  317. {
  318. /*
  319. if(model.getValue(ipt_fromconterm.attribute("ref")).length == 0 )
  320. {
  321. messageBox("계약구분을 선택하신 경우에는 계약시작일자가 " ,"I003");
  322. model.setFocus("ipt_fromconterm");
  323. return false;
  324. }
  325. if(model.getValue(ipt_toconterm.attribute("ref")).length == 0 )
  326. {
  327. messageBox("계약구분을 선택하신 경우에는 계약종료일자가 " ,"I003");
  328. model.setFocus("ipt_toconterm");
  329. return false;
  330. }
  331. model.setFocus("ipt_nonusetretresn");
  332. */
  333. }
  334. else
  335. {
  336. if(model.getValue(ipt_fromconterm.attribute("ref")).length > 0 || model.getValue(ipt_toconterm.attribute("ref")).length > 0)
  337. {
  338. messageBox("계약기간을 입력하신 경우에는 계약구분이 " ,"I003");
  339. model.setFocus("cmb_conflag");
  340. return false;
  341. }
  342. }
  343. if(model.getValue(ipt_toconterm.attribute("ref")).length > 0 && (model.getValue(ipt_toconterm.attribute("ref")) < model.getValue(ipt_fromconterm.attribute("ref"))) )
  344. {
  345. messageBox("계약시작일자는 계약 종료일자보다 크게 설정","E001");
  346. model.setFocus("ipt_fromconterm");
  347. return false;
  348. }
  349. if(model.getValue(ipt_fromconterm.attribute("ref")).length > 0 && (model.getValue(ipt_toconterm.attribute("ref")) < model.getValue(ipt_fromconterm.attribute("ref"))) )
  350. {
  351. messageBox("계약시작일자는 계약 종료일자보다 크게 설정","E001");
  352. model.setFocus("ipt_toconterm");
  353. return false;
  354. }
  355. if(model.getValue(cmb_purcflag.attribute("ref")).length > 0 && model.getValue(ipt_lastpurcdd.attribute("ref")) == 0)
  356. {
  357. /*
  358. messageBox("구매구분이 설정되었을 경우에는 최종 구매일자가 " ,"I003");
  359. model.setFocus("cmb_purcflag");
  360. return false;
  361. */
  362. }
  363. return true;
  364. }
  365. //
  366. function fAfterRetrGoodList() {
  367. // if (grd_gooddetlist.rows == 0 )btn_insert.dispatch("DOMActivate");
  368. model.copyNode("/root/main/gooddet/gooddetlist","/root/main/list/gooddet/gooddetlist");
  369. if (model.getValue(ipt_nonusetretdd.attribute("ref")).length > 0 &&
  370. model.getValue(ipt_nonusetretdd.attribute("ref")) < getCurrentDate())ipt_nonusetretdd.attribute("background-color") = "#c0c0c0";
  371. else ipt_nonusetretdd.attribute("background-color") = "#ffffff";
  372. grp_detail.refresh();
  373. grp_etcgood.refresh();
  374. grd_gooddetlist.row = 1;
  375. model.setFocus("ipt_goodcd");
  376. fSetOldGoodList();
  377. }
  378. //
  379. function fSetOldGoodList() {
  380. var sPath = "/root/main/gooddet/gooddetlist";
  381. var tPath = "/root/init/oldgoodlist";
  382. model.copyNode(tPath, sPath);
  383. // model.removenode(tPath);
  384. // model.makeNode(tPath);
  385. // model.setValue(tPath, vData);
  386. }
  387. //
  388. function fSetDataCopy(){
  389. if(grd_gooddetlist.rows < grd_goodlist.fixedRows)grd_gooddetlist.row = 1;
  390. fGoodOldNewCompare(); // 변경Column Check
  391. misfGridRowStatusChange(grd_gooddetlist,"/root/main/list/gooddet" , "/root/main/gooddet");
  392. if (grd_gooddetlist.rowStatus(grd_gooddetlist.row) != "1"){
  393. // 수가전송 리스트에 올리기 위한 flag
  394. // 기관에서 수가여부,allsize여부,단가,최소처방수량,코드불용일/사유를 수정했을시에는 수가전송 필요
  395. var TranFlag = model.getValue("/root/tmp/calcscorinfo/calcscorinfotranyn");
  396. if(TranFlag =="N"){
  397. model.makeValue("/root/main/list/gooddet/gooddetlist["+grd_gooddetlist.row+"]/calcscorinfotranyn","N");
  398. }else{
  399. model.makeValue("/root/main/list/gooddet/gooddetlist["+grd_gooddetlist.row+"]/calcscorinfotranyn","-");
  400. }
  401. }
  402. grp_detail.refresh();
  403. }
  404. function fDefaultSetting()
  405. {
  406. model.setValue(grd_gooddetlist.nodeset + "["+ grd_gooddetlist.row + "]/goodflag" , model.getValue(cmb_goodflag_search.attribute("ref")));
  407. model.setValue(grd_gooddetlist.nodeset + "["+ grd_gooddetlist.row + "]/goodcd" , "");
  408. model.setValue(grd_gooddetlist.nodeset + "["+ grd_gooddetlist.row + "]/fromdd" , getCurrentDate());
  409. model.setValue(grd_gooddetlist.nodeset + "["+ grd_gooddetlist.row + "]/lrgcd" , model.getValue(cmb_lrgcd_search.attribute("ref")));
  410. model.setValue(grd_gooddetlist.nodeset + "["+ grd_gooddetlist.row + "]/mdlcd" , model.getValue(cmb_mdlcd_search.attribute("ref")));
  411. model.setValue(grd_gooddetlist.nodeset + "["+ grd_gooddetlist.row + "]/smlcd" , model.getValue(cmb_smlcd_search.attribute("ref")));
  412. model.setValue(grd_gooddetlist.nodeset + "["+ grd_gooddetlist.row + "]/prodcmpycd" , model.getValue(ipt_prodcmpy_search.attribute("ref")));
  413. model.setValue(grd_gooddetlist.nodeset + "["+ grd_gooddetlist.row + "]/prodcmpynm" , model.getValue(ipt_prodcmpynm_search.attribute("ref")));
  414. model.setValue(grd_gooddetlist.nodeset + "["+ grd_gooddetlist.row + "]/asetflag", "1");
  415. // model.setValue("/root/main/gooddet/gooddetlist/asetflag" , '1'); // 자산구부 : '1' 재고자산
  416. }
  417. function fChkSaveData(pgrid_name, ptarget_node, psource_node) {
  418. var node1 = instance1.selectNodes(ptarget_node + "/*");
  419. var node2 = instance1.selectNodes(psource_node + "/*");
  420. for (var i = 0; i < node1.length ; i++) {
  421. for (var j = 0; j < node2.length; j++) {
  422. if (node1.item(i).nodeName == node2.item(j).nodeName) {
  423. var nextnode1 = instance1.selectNodes(ptarget_node + "/" + node1.item(i).nodeName + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]" + "/*");
  424. var nextnode2 = instance1.selectNodes(psource_node + "/" + node2.item(j).nodeName + "/*");
  425. var copytarget = ptarget_node + "/" + node1.item(i).nodeName + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]";
  426. var copysource = psource_node + "/" + node2.item(j).nodeName;
  427. for (var k = 0; k < nextnode1.length; k++) {
  428. for (var p = 0; p < nextnode2.length; p++) {
  429. if (nextnode1.item(k).nodeName == nextnode2.item(p).nodeName) {
  430. if (model.getValue(ptarget_node + "/" + node1.item(i).nodeName + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]" + "/" + nextnode1.item(k).nodeName) !=
  431. model.getValue(psource_node + "/" + node2.item(j).nodeName + "/" + nextnode2.item(p).nodeName))return true;
  432. }
  433. }
  434. }
  435. }
  436. }
  437. }
  438. return false;
  439. }
  440. function fCheckRetrieveData()
  441. {
  442. if(model.getValue("/root/send/goodlist/goodflag")=="") {
  443. if (cmb_goodflag_search.label != "- 전 체 -") {
  444. messageBox("물품구분을 " ,"C002");
  445. model.setFocus("cmb_goodflag_search");
  446. return false;
  447. }
  448. }
  449. return true;
  450. }
  451. function fInstGoodCdCopy()
  452. {
  453. if(grd_goodlist.rows - grd_goodlist.fixedRows == 0)return;
  454. btn_insert.dispatch("DOMActivate");
  455. model.SetValue(ipt_goodcd.attribute("ref") ,model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/goodcd" ));
  456. model.SetValue(ipt_goodnm.attribute("ref") ,model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/goodnm" ));
  457. model.SetValue(ipt_goodhngnm.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/goodhngnm"));
  458. model.SetValue(ipt_goodengnm.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/goodengnm"));
  459. model.SetValue(ipt_goodspec.attribute("ref") ,model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/goodspec" ));
  460. model.SetValue(ipt_goodmodel.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/goodmodel"));
  461. model.SetValue(cmb_lrgcd.attribute("ref") ,model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/lrgcd" ));
  462. cmb_lrgcd.dispatch("xforms-value-changed"); // 선택한 대분류에 대한 중분류 값을 얻기 위한 action
  463. model.SetValue(cmb_mdlcd.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/mdlcd"));
  464. model.SetValue(cmb_smlcd.attribute("ref"),model.getValue(grd_goodlist.nodeset+"["+grd_goodlist.row+"]/smlcd"));
  465. model.refresh();
  466. model.setFocus("ipt_winacnt");
  467. }
  468. function fGoodCdCopy()
  469. {
  470. if(model.getValue(cmb_goodflag_search.attribute("ref")).length== 0 )
  471. {
  472. messageBox("물품구분을 " ,"C002");
  473. model.setFocus("cmb_goodflag");
  474. return false;
  475. }
  476. if(model.getValue(cmb_lrgcd.attribute("ref")).length== 0 )
  477. {
  478. messageBox("대분류코드를 " ,"C002");
  479. model.setFocus("cmb_lrgcd");
  480. return false;
  481. }
  482. if(model.getValue(cmb_mdlcd.attribute("ref")).length== 0 )
  483. {
  484. messageBox("중분류코드를 " ,"C002");
  485. model.setFocus("cmb_mdlcd");
  486. return false;
  487. }
  488. model.setValue("/root/send/goodcopy/goodflag", model.getValue(cmb_goodflag_search.attribute("ref")));
  489. model.setValue("/root/send/goodcopy/lrgcd" , model.getValue(cmb_lrgcd.attribute("ref" )));
  490. model.setValue("/root/send/goodcopy/mdlcd" , model.getValue(cmb_mdlcd.attribute("ref" )));
  491. submit("TRRSC05303");
  492. var goodcd = model.getValue("/root/main/goodcopy/goodlist/goodcd");
  493. if(goodcd.length == 0)goodcd = model.getValue(cmb_goodflag_search.attribute("ref")) + model.getValue(cmb_lrgcd.attribute("ref")) + model.getValue(cmb_mdlcd.attribute("ref")) + "0001";
  494. model.setValue(ipt_goodcd.attribute("ref"), goodcd);
  495. grp_detail.refresh();
  496. }
  497. function fGoodMastSet() {
  498. var vPath = "/root/main/gooddet/gooddetlist";
  499. model.resetInstanceNode(vPath);
  500. model.removeNodeset(grd_gooddetlist.nodeset);
  501. btn_insert.dispatch("DOMActivate");
  502. //alert(grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("goodcd")));
  503. model.setValue(vPath + "/goodcd" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("goodcd" )));
  504. model.setValue(vPath + "/goodflag" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("goodflag" )));
  505. model.setValue(vPath + "/goodnm" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("goodnm" )));
  506. model.setValue(vPath + "/goodhngnm" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("goodhngnm" )));
  507. model.setValue(vPath + "/goodengnm" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("goodengnm" )));
  508. model.setValue(vPath + "/goodspec" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("goodspec" )));
  509. model.setValue(vPath + "/goodmodel" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("goodmodel" )));
  510. model.setValue(vPath + "/asetflag" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("asetflag" )));
  511. model.setValue(vPath + "/prodcmpycd", grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("prodcmpycd")));
  512. model.setValue(vPath + "/prodcmpynm", grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("prodcmpynm")));
  513. model.setValue(vPath + "/edicd" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("edicd" )));
  514. model.setValue(vPath + "/lrgcd" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("lrgcd" )));
  515. model.setValue(vPath + "/lrgnm" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("lrgnm" )));
  516. model.setValue(vPath + "/mdlcd" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("mdlcd" )));
  517. model.setValue(vPath + "/mdlnm" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("mdlnm" )));
  518. model.setValue(vPath + "/smlcd" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("smlcd" )));
  519. model.setValue(vPath + "/smlnm" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("smlnm" )));
  520. model.setValue(vPath + "/instcd" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("instcd" )));
  521. model.setValue(vPath + "/allsizecnt", grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("allsizecnt")));
  522. model.setValue(vPath + "/mngtflag" , grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("mngtflag" )));
  523. // model.setValue(vPath + "/mngtflagnm", grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("mngtflagnm")));
  524. var vGoodflag = grd_goodlist.valueMatrix(grd_goodlist.row, grd_goodlist.colRef("goodflag" ));
  525. model.setValue(vPath + "/insuyn" ,"N" );
  526. model.setValue(vPath + "/winacnt" ,"1000" );
  527. model.setValue(vPath + "/winacntnm" ,"자산" );
  528. model.setValue(vPath + "/goodunitcost" ,"0" );
  529. model.setValue(vPath + "/purcflag" ,"1" );
  530. model.setValue(vPath + "/addtaxrate" ,"10" );
  531. model.setValue(vPath + "/allsizeyn" ,"N" );
  532. model.setValue(vPath + "/mainmngtdeptcd" ,getUserInfo("dutplcecd"));
  533. model.setValue(vPath + "/prcpunit" ,"EA" );
  534. model.setValue(vPath + "/deliveunit" ,"EA" );
  535. model.setValue(vPath + "/purcunit" ,"EA" );
  536. model.setValue(vPath + "/prcpexchqty" ,"1" );
  537. model.setValue(vPath + "/exchqty" ,"1" );
  538. model.setValue(vPath + "/reqflag",((vGoodflag == "A" ||vGoodflag == "B"||vGoodflag == "C"||vGoodflag == "D"||vGoodflag == "E"||vGoodflag == "F"||vGoodflag == "G"||vGoodflag == "H"||vGoodflag == "N"||vGoodflag == "P"||vGoodflag == "S" ) ? "A" : ((vGoodflag == "J"||vGoodflag == "K"||vGoodflag == "L"||vGoodflag == "M"||vGoodflag == "R"||vGoodflag == "U"||vGoodflag == "X"||vGoodflag == "Z") ? "B" : "C")));
  539. model.setValue(vPath + "/reqmthd" ,"3" );
  540. model.setValue(vPath + "/reqprid" ,"1" );
  541. model.setValue(vPath + "/tmpreqflag" ,"N" );
  542. model.setValue(vPath + "/mmavgusescheqty" ,"1" );
  543. model.setValue(vPath + "/stocmngtflag" ,"3" );
  544. model.setValue(vPath + "/minexch" ,"1" );
  545. model.setValue(vPath + "/calcscorinfotranyn" ,"N" );
  546. model.setValue(vPath + "/maincustlastsuplplce" ,"9999" );
  547. model.setValue(vPath + "/maincustlastsuplplcenm" ,"-" );
  548. model.setValue(vPath + "/suppcustcd" ,"9999" );
  549. model.setValue(vPath + "/suppcustnm" ,"-" );
  550. model.refresh();
  551. }
  552. function fSaveGoodInstCopy()
  553. {
  554. var tPath = "/root/send/save/goodinstcopy";
  555. if (model.getValue("/root/main/gooddet/gooddetlist/goodcd") == "") return;
  556. var vData = "goodcd" + "▦" // 물품코드
  557. + "fromdd" + "▦" // 사용시작일
  558. + "frinstcd" + "▦" // 기관코드에서복사
  559. + "toinstcd" + "▩" // 기관코드에복사
  560. + model.getValue("/root/main/gooddet/gooddetlist/goodcd") + "▦" // 물품코드
  561. + model.getValue("/root/main/gooddet/gooddetlist/fromdd") + "▦" // 사용시작일
  562. + model.getValue("/root/main/gooddet/gooddetlist/instcd") + "▦" // 기관코드에서복사
  563. + cmb_instcopy.value + "▩"; // 기관코드에복사
  564. //
  565. model.removenode(tPath);
  566. model.makeNode(tPath);
  567. model.setValue(tPath, vData);
  568. submit("TXRSC05306");
  569. if (model.getValue(gvErrorMsgPath + "/type") != "error") {
  570. grp_instcopy.visible = false;
  571. } else {
  572. alert("저장 실패!!! 확인요.");
  573. return;
  574. }
  575. misfGridIUD(grd_instinfo,"A" );
  576. addRow = grd_instinfo.rows - grd_instinfo.fixedRows;
  577. model.setValue(grd_instinfo.nodeset + "[" + addRow + "]/instcd",cmb_instcopy.value);
  578. model.setValue(grd_instinfo.nodeset + "[" + addRow + "]/instnm",cmb_instcopy.label);
  579. grd_instinfo.refresh();
  580. }
  581. //----------------------------------------------------------
  582. // Column별 변경이력정보를 비교하는 구분
  583. // 2010.08.31 wareflag,costconyn,costcondd,usge 추가
  584. //----------------------------------------------------------
  585. var GoodColumnData = "goodcd" +"*goodcd" +"*GOODCD" +"*물품코드" +"*V#" // 01 물품코드 VARCHAR2(12)
  586. + "fromdd" +"*fromdd" +"*FROMDD" +"*사용시작일" +"*V#" // 02 사용시작일 VARCHAR2(8)
  587. + "instcd" +"*instcd" +"*INSTCD" +"*기관코드" +"*V#" // 03 기관코드 VARCHAR2(3)
  588. + "useyn" +"*useyn" +"*USEYN" +"*사용여부" +"*V#" // 04 사용여부 VARCHAR2(1)
  589. + "todd" +"*todd" +"*TODD" +"*사용끝일자" +"*V#" // 05 사용끝일자 VARCHAR2(8)
  590. + "goodflag" +"*goodflagnm" +"*GOODFLAG" +"*물품구분" +"*V#" // 06 물품구분 VARCHAR2(1)
  591. + "goodnm" +"*goodnm" +"*GOODNM" +"*물품명" +"*V#" // 07 물품명 VARCHAR2(200)
  592. + "goodhngnm" +"*goodhngnm" +"*GOODHNGNM" +"*물품한글명" +"*V#" // 08 영문명 VARCHAR2(200)
  593. + "goodengnm" +"*goodengnm" +"*GOODENGNM" +"*물품영문명" +"*V#" // 09 물품명 VARCHAR2(200)
  594. + "goodspec" +"*goodspec" +"*GOODSPEC" +"*물품규격" +"*V#" // 10 물품규격 VARCHAR2(100)
  595. + "goodmodel" +"*goodmodel" +"*GOODMODEL" +"*모델" +"*V#" // 11 모델 VARCHAR2(100)
  596. + "asetflag" +"*asetflagnm" +"*ASETFLAG" +"*자산구분" +"*V#" // 12 자산구분(R0043) VARCHAR2(1)
  597. + "lrgcd" +"*lrgnm" +"*LRGCD" +"*대분류코드" +"*V#" // 13 대분류코드 VARCHAR2(2)
  598. + "mdlcd" +"*mdlnm" +"*MDLCD" +"*중분류코드" +"*V#" // 14 중분류코드 VARCHAR2(3)
  599. + "smlcd" +"*smlnm" +"*SMLCD" +"*소분류코드" +"*V#" // 15 소분류코드 VARCHAR2(2)
  600. + "oldcd" +"*oldcd" +"*OLDCD" +"*구코드" +"*V#" // 16 구코드 VARCHAR2(12)
  601. + "proddrugsetflag" +"*proddrugsetflagnm" +"*PRODDRUGSETFLAG" +"*GROUP구분" +"*V#" // 17 1:제제약,2:CSRSET,3:진료재료SET VARCHAR2(1)
  602. + "winacnt" +"*winacntnm" +"*WINACNT" +"*계정코드" +"*V#" // 18 계정코드 VARCHAR2(8)
  603. + "amtacnt" +"*amtacntnm" +"*AMTACNT" +"*비용계정" +"*V#" // 19 비용계정 VARCHAR2(8)
  604. + "mainmngtdeptcd" +"*mainmngtdeptnm" +"*MAINMNGTDEPTCD" +"*주관리부서코드" +"*V#" // 20 주관리부서코드 VARCHAR2(10)
  605. + "mainusedeptcd" +"*mainusedeptnm" +"*MAINUSEDEPTCD" +"*주사용부서코드" +"*V#" // 21 주사용부서코드 VARCHAR2(10)
  606. + "stocmngtflag" +"*stocmngtflagnm" +"*STOCMNGTFLAG" +"*재고관리기준" +"*V#" // 23 재고관리기준 VARCHAR2(1)
  607. + "purcunit" +"*purcunit" +"*PURCUNIT" +"*입고단위" +"*V#" // 24 입고단위(R0039) VARCHAR2(12)
  608. + "putrunitcost" +"*putrunitcost" +"*PUTRUNITCOST" +"*납품가" +"*N#" // 24 납품가 NUMBER(9)
  609. + "deliveunit" +"*deliveunit" +"*DELIVEUNIT" +"*수불단위" +"*V#" // 25 수불단위(R0039) VARCHAR2(12)
  610. + "exchqty" +"*exchqty" +"*EXCHQTY" +"*환산배수" +"*N#" // 26 환산배수 NUMBER(9)
  611. + "minexch" +"*minexch" +"*MINEXCH" +"*최소환산수량" +"*N#" // 27 최소환산수량 NUMBER(9)
  612. + "reuseyn" +"*reuseynnm" +"*REUSEYN" +"*재사용구분" +"*V#" // 28 -:None,1:재사용,2:분할사용 VARCHAR2(1)
  613. + "divusenvalqty" +"*divusenvalqty" +"*DIVUSENVALQTY" +"*분할사용수치" +"*V#" // 29 분할사용수치 VARCHAR2(30)
  614. + "calcscorinfoacptstat" +"*calcscorinfoacptstat" +"*CALCSCORINFOACPTSTAT" +"*수가정보등록상태" +"*V#" // 30 수가정보등록상태 VARCHAR2(1)
  615. + "calcscorinfoacptdd" +"*calcscorinfoacptdd" +"*CALCSCORINFOACPTDD" +"*수가정보등록일자" +"*V#" // 31 수가정보등록일자 VARCHAR2(8)
  616. + "insuyn" +"*insuyn" +"*INSUYN" +"*보험여부" +"*V#" // 32 보험여부 VARCHAR2(1)
  617. + "edicd" +"*edicd" +"*EDICD" +"*EDI코드" +"*V#" // 33 EDI코드 VARCHAR2(16)
  618. + "newrgstdd" +"*newrgstdd" +"*NEWRGSTDD" +"*신규등록일자" +"*V#" // 34 신규등록일자 VARCHAR2(8)
  619. + "reqdeptcd" +"*reqdeptnm" +"*REQDEPTCD" +"*신청부서코드" +"*V#" // 35 신청부서코드 VARCHAR2(10)
  620. + "reqpsn" +"*reqpsnnm" +"*REQPSN" +"*신청자ID" +"*V#" // 36 신청자ID VARCHAR2(10)
  621. + "reqflag" +"*reqflagnm" +"*REQFLAG" +"*청구기준" +"*V#" // 37 청구기준 VARCHAR2(1)
  622. + "tmpreqflag" +"*tmpreqflag" +"*TMPREQFLAG" +"*임의청구구분" +"*V#" // 38 임의청구구분 VARCHAR2(1)
  623. + "reqmthd" +"*reqmthdnm" +"*REQMTHD" +"*청구구분" +"*V#" // 39 처방집계,정량보충,일반청구 VARCHAR2(1)
  624. + "reqprid" +"*reqpridnm" +"*REQPRID" +"*청구주기" +"*V#" // 40 청구주기 VARCHAR2(2)
  625. + "iopsnflag" +"*iopsnflag" +"*IOPSNFLAG" +"*내외자구분" +"*V#" // 41 내외자구분 VARCHAR2(1)
  626. + "prodplce" +"*prodplcenm" +"*PRODPLCE" +"*제조국" +"*V#" // 42 제조국 VARCHAR2(3)
  627. + "prodcmpycd" +"*prodcmpynm" +"*PRODCMPYCD" +"*제조회사코드" +"*V#" // 43 제조회사코드 VARCHAR2(5)
  628. + "maincustlastsuplplce" +"*maincustlastsuplplcenm" +"*MAINCUSTLASTSUPLPLCE" +"*최종공급처" +"*V#" // 44 최종공급처 VARCHAR2(10)
  629. + "suppcustcd" +"*suppcustnm" +"*SUPPCUSTCD" +"*최종공급처" +"*V#" // 45 보조거래처코드 VARCHAR2(10)
  630. + "conflag" +"*conflagnm" +"*CONFLAG" +"*계약구분" +"*V#" // 46 계약구분 VARCHAR2(1)
  631. + "fromconterm" +"*fromconterm" +"*FROMCONTERM" +"*계약기간From" +"*V#" // 47 계약기간From VARCHAR2(8)
  632. + "toconterm" +"*toconterm" +"*TOCONTERM" +"*계약기간To" +"*V#" // 48 계약기간To VARCHAR2(8)
  633. + "estmamt" +"*estmamt" +"*ESTMAMT" +"*견적가" +"*N#" // 49 견적가 NUMBER(14,2)
  634. + "forgncurncyunitcost" +"*forgncurncyunitcost" +"*FORGNCURNCYUNITCOST" +"*외화단가" +"*N#" // 50 외화단가 NUMBER(14,2)
  635. + "curncyunit" +"*curncyunitnm" +"*CURNCYUNIT" +"*화폐단위" +"*V#" // 51 화폐단위 VARCHAR2(3)
  636. + "goodunitcost" +"*goodunitcost" +"*GOODUNITCOST" +"*제품단가" +"*N#" // 52 제품단가 NUMBER(14,2)
  637. + "purcflag" +"*purcflagnm" +"*PURCFLAG" +"*구매구분" +"*V#" // 53 구매구분(구매,수탁,위탁) VARCHAR2(1)
  638. + "allsizeyn" +"*allsizeyn" +"*ALLSIZEYN" +"*ALLSIZE유무" +"*V#" // 54 ALLSIZE유무 VARCHAR2(1)
  639. + "setplceordflag" +"*setplceordflagnm" +"*SETPLCEORDFLAG" +"*SET발주구분" +"*V#" // 55 SET발주구분 VARCHAR2(1)
  640. + "plceordbase" +"*plceordbase" +"*PLCEORDBASE" +"*발주기준" +"*V#" // 56 XX 발주기준 VARCHAR2(1)
  641. + "plceordqtycretflag" +"*plceordqtycretflag" +"*PLCEORDQTYCRETFLAG" +"*발주량생성구분" +"*V#" // 57 XX 발주량생성구분 VARCHAR2(1)
  642. + "plceordnonusedd" +"*plceordnonusedd" +"*PLCEORDNONUSEDD" +"*발주불용일자" +"*V#" // 58 발주불용일자 VARCHAR2(8)
  643. + "addtaxrate" +"*addtaxrate" +"*ADDTAXRATE" +"*부가세율" +"*V#" // 59 부가세율 VARCHAR2(3)
  644. + "lastpurcdd" +"*lastpurcdd" +"*LASTPURCDD" +"*최종구매일자" +"*V#" // 60 최종구매일자 VARCHAR2(8)
  645. + "nonusetretresn" +"*nonusetretresn" +"*NONUSETRETRESN" +"*불용처리사유" +"*V#" // 61 불용처리사유(reason) VARCHAR2(60)
  646. + "mngtflag" +"*mngtflag" +"*MNGTFLAG" +"*관리구분" +"*V#" // 62 관리구분(고가약품,..) VARCHAR2(1)
  647. + "bnscd" +"*bnscd" +"*BNSCD" +"*보나에스코드" +"*V#" // 63 보나에스코드 VARCHAR2(12)
  648. + "cntrdrugyn" +"*cntrdrugyn" +"*CNTRDRUGYN" +"*규제약품여부" +"*V#" // 64 규제약품여부 VARCHAR2(1)
  649. + "narcflag" +"*narcflag" +"*NARCFLAG" +"*마약향정구분" +"*V#" // 65 마약/향정구분 VARCHAR2(1)
  650. + "expnyn" +"*expnyn" +"*EXPNYN" +"*고가여부" +"*V#" // 66 고가여부 VARCHAR2(1)
  651. + "cntsunit" +"*cntsunit" +"*CNTSUNIT" +"*함량단위" +"*V#" // 67 함량단위 VARCHAR2(12)
  652. + "cntsqty" +"*cntsqty" +"*CNTSQTY" +"*함량용량" +"*V#" // 68 함량용량 VARCHAR2(20)
  653. + "specvol" +"*specvol" +"*SPECVOL" +"*규격용량" +"*V#" // 69 규격용량 VARCHAR2(20)
  654. + "drugkind" +"*drugkind" +"*DRUGKIND" +"*약품종류" +"*V#" // 70 약품종류 VARCHAR2(3)
  655. + "cooppurcyn" +"*cooppurcyn" +"*COOPPURCYN" +"*공동구매여부" +"*V#" // 71 공동구매여부 VARCHAR2(1)
  656. + "autrampharm" +"*autrampharm" +"*AUTRAMPHARM" +"*자동이송약국" +"*V#" // 72 자동이송-약국 VARCHAR2(1)
  657. + "keepmthd" +"*keepmthd" +"*KEEPMTHD" +"*보관방법" +"*V#" // 73 보관방법 VARCHAR2(1)
  658. + "specldrug" +"*specldrug" +"*SPECLDRUG" +"*특별약품" +"*V#" // 74 특별약품 VARCHAR2(1)
  659. + "gnrlspcl" +"*gnrlspcl" +"*GNRLSPCL" +"*일반-전문" +"*V#" // 75 일반-전문 VARCHAR2(1)
  660. + "welfprt" +"*welfprtnm" +"*WELFPRT" +"*복지부분류" +"*V#" // 76 복지부분류 VARCHAR2(3)
  661. + "goodtype" +"*goodtype" +"*GOODTYPE" +"*제형" +"*V#" // 77 제형 VARCHAR2(3)
  662. + "com" +"*com" +"*COM" +"*성분" +"*V#" // 78 성분 VARCHAR2(10)
  663. + "limdrugyn" +"*limdrugyn" +"*LIMDRUGYN" +"*제한약품여부" +"*V#" // 79 제한약품여부 VARCHAR2(1)
  664. + "cmt" +"*cmt" +"*CMT" +"*비고" +"*V#" // 80 비고 VARCHAR2(200)
  665. + "safestocappdd" +"*safestocappdd" +"*SAFESTOCAPPDD" +"*안전재고적용일자" +"*V#" // 81 안전재고적용일자 VARCHAR2(8)
  666. + "safestocqty" +"*safestocqty" +"*SAFESTOCQTY" +"*안전재고량" +"*N#" // 82 안전재고량 NUMBER(14,2)
  667. + "ddavguseqty" +"*ddavguseqty" +"*DDAVGUSEQTY" +"*일평균사용량" +"*N#" // 83 일평균사용량 NUMBER(14,2)
  668. + "mmavgusescheqty" +"*mmavgusescheqty" +"*MMAVGUSESCHEQTY" +"*월평균사용예정량" +"*N#" // 84 월평균사용예정량 NUMBER(14,2)
  669. + "mmavguseqty" +"*mmavguseqty" +"*MMAVGUSEQTY" +"*월평균사용량" +"*N#" // 85 월평균사용량 NUMBER(14,2)
  670. + "prprtystocpossndayno" +"*prprtystocpossndayno" +"*PRPRTYSTOCPOSSNDAYNO" +"*적정재고보유일수" +"*N#" // 86 적정재고보유일수 NUMBER(9)
  671. + "prcpunit" +"*prcpunit" +"*PRCPUNIT" +"*수가단위" +"*V#" // 87 수가단위 VARCHAR2(12)
  672. + "prcpexchqty" +"*prcpexchqty" +"*PRCPEXCHQTY" +"*수불환산수량" +"*N#" // 88 수불환산수량 NUMBER(11,2)
  673. + "insucost" +"*insucost" +"*INSUCOST" +"*보험단가" +"*N#" // 89 보험단가 NUMBER(14,2)
  674. + "specunit" +"*specunit" +"*SPECUNIT" +"*규격단위" +"*V#" // 90 규격단위 VARCHAR2(12)
  675. + "pemtkeepmthd" +"*pemtkeepmthd" +"*PEMTKEEPMTHD" +"*허가보관방법" +"*V#" // 91 허가보관방법 VARCHAR2(100)
  676. + "orgloc" +"*orgloc" +"*ORGLOC" +"*원산지(영양)" +"*V#" // 92 원산지(영양) VARCHAR2(30)
  677. + "comnm" +"*comnm" +"*COMNM" +"*성분명칭" +"*V#" // 93 성분명칭 VARCHAR2(200)
  678. + "purcqty" +"*purcqty" +"*PURCQTY" +"*포장수량" +"*N#" // 94 포장수량 NUMBER(9)
  679. + "prcpqty" +"*prcpqty" +"*PRCPQTY" +"*처방수량" +"*N#" // 95 처방수량 NUMBER(9)
  680. + "goodpurccost" +"*goodpurccost" +"*GOODPURCCOST" +"*구입가" +"*N#" // 96 구입가 NUMBER(14,2)
  681. + "wareflag" +"*wareflagnm" +"*WAREFLAG" +"*창고구분" +"*V#" // 97 창고구분
  682. + "costconyn" +"*costconyn" +"*COSTCONYN" +"*단가계약여부" +"*V#" // 98 단가계약여부
  683. + "costcondd" +"*costcondd" +"*COSTCONDD" +"*단가계약일자" +"*V#" // 99 단가계약일자
  684. + "usge" +"*usge" +"*USGE" +"*용도" +"*V#" // 100 용도
  685. + "purcacntcd" +"*purcacntcd" +"*PURCACNTCD" +"*구매계정코드" +"*V#" // 101 구매계정코드 VARCHAR2(3)
  686. + "goodposcd" +"*goodposcd" +"*GOODPOSCD" +"*물품위치코드" +"*V#" // 102 물품위치코드
  687. + "reqmutpleqty" +"*reqmutpleqty" +"*REQMUTPLEQTY" +"*청구수량고정배수" +"*V" ; // 103 청구수량고정배수
  688. var GoodColumn = GoodColumnData.split("#");
  689. //
  690. function fGoodOldNewCompare() {
  691. var DefCnt = 0;
  692. var vOldPath = "/root/init/oldgoodlist/";
  693. var vNewPath = "/root/main/gooddet/gooddetlist/";
  694. var vSndPath = "/root/send/save/goodchange";
  695. var vHeadData = "instcd" +"▦" // 01 기관코드
  696. + "tabname" +"▦" // 02 테이블명
  697. + "changefl" +"▦" // 03 변경분류 물품분류
  698. + "changecd" +"▦" // 04 변경코드 물품코드
  699. + "colname" +"▦" // 05 컬럼명
  700. + "colcomt" +"▦" // 06 컬럼코멘드
  701. + "oldvalue" +"▦" // 07 변경전변경값
  702. + "oldvalnm" +"▦" // 08 변경전변경명
  703. + "newvalue" +"▦" // 09 변경후변경값
  704. + "newvalnm" +"▦" // 10 변경후변경명
  705. + "colflag" +"▦" // 11 컬럼구분 V:VARCHAR,D:DATE,N:NUMBER,T:TIMESTAMP
  706. + "userid" +"▩"; // 14 변경작업자
  707. if (vGoodNew == "N") {
  708. model.removenode(vSndPath);
  709. model.makeNode(vSndPath);
  710. model.setValue(vSndPath, vHeadData);
  711. return;
  712. }
  713. var vBodyData = "";
  714. var vInstcd = getUserInfo("dutplceinstcd");
  715. var vUserId = getUserInfo("userid") ;
  716. var vTabName = "RSCDGOOD" ;
  717. var vGoodcd = model.getValue(vNewPath + "goodcd" );
  718. var vGoodFalg = model.getValue(vNewPath + "goodflag");
  719. model.removeNodeset("/root/send/save/histinfo/histflag");
  720. model.removeNodeset("/root/tmp/calcscorinfo/calcscorinfotranyn");
  721. for (var i=0; i < GoodColumn.length; i++){
  722. var vColumn = GoodColumn[i].split("*");
  723. if (model.getValue(vOldPath+vColumn[0]) != model.getValue(vNewPath+vColumn[0])) {
  724. DefCnt++;
  725. vBodyData += vInstcd + "▦" // 01 기관코드
  726. + vTabName + "▦" // 02 테이블명
  727. + vGoodFalg + "▦" // 03 변경분류 물품분류
  728. + vGoodcd + "▦" // 04 변경코드 물품코드
  729. + vColumn[2] + "▦" // 05 컬럼명
  730. + vColumn[3] + "▦" // 06 컬럼코멘드
  731. + model.getValue(vOldPath+vColumn[0]) + "▦" // 07 변경전변경값
  732. + model.getValue(vOldPath+vColumn[1]) + "▦" // 08 변경전변경명
  733. + model.getValue(vNewPath+vColumn[0]) + "▦" // 09 변경후변경값
  734. + model.getValue(vNewPath+vColumn[1]) + "▦" // 10 변경후변경명
  735. + vColumn[4] + "▦" // 11 컬럼구분 V:VARCHAR,D:DATE,N:NUMBER,T:TIMESTAMP
  736. + vUserId + "▩"; // 14 변경작업자
  737. // 이력을 남기기 위한 flag(화면에서 노란색으로 표시된 컬럼들 변경시 적용일자 변경시 이력 쌓이는 것처럼 변경)
  738. // 최소처방수량 추가
  739. if((vColumn[2] =="GOODUNITCOST")
  740. ||(vColumn[2] =="PURCFLAG")||(vColumn[2] =="INSUYN")
  741. ||(vColumn[2] =="MAINCUSTLASTSUPLPLCE")||(vColumn[2] =="SUPPCUSTCD")
  742. ||(vColumn[2] =="ALLSIZEYN")||(vColumn[2] =="PRCPUNIT")
  743. ||(vColumn[2] =="DELIVEUNIT")||(vColumn[2] =="PURCUNIT")
  744. ||(vColumn[2] =="PRCPEXCHQTY")||(vColumn[2] =="EXCHQTY")
  745. ||(vColumn[2] =="REQFLAG")||(vColumn[2] =="REQMTHD")
  746. ||(vColumn[2] =="REQPRID")||(vColumn[2] =="STOCMNGTFLAG")||(vColumn[2] =="MINEXCH")
  747. ||(vColumn[2] =="WAREFLAG")||(vColumn[2] =="COSTCONYN")||(vColumn[2] =="CONFLAG")
  748. ||(vColumn[2] =="COSTCONDD")
  749. ) {
  750. model.makeValue("/root/send/save/histinfo/histflag","Y");
  751. }else{
  752. if(model.getValue("/root/send/save/histinfo/histflag")!="Y"){
  753. model.makeValue("/root/send/save/histinfo/histflag","N");
  754. }
  755. }
  756. // 수가전송 리스트에 올리기 위한 flag
  757. // 기관에서 수가여부,allsize여부,단가,최소처방수량,코드불용일/사유를 수정했을시에는 수가전송 필요
  758. if((vColumn[2] =="GOODUNITCOST")
  759. ||(vColumn[2] =="ALLSIZEYN")||(vColumn[2] =="INSUYN")
  760. ||(vColumn[2] =="MINEXCH") ||(vColumn[2] =="TODD")
  761. ){
  762. model.makeValue("/root/tmp/calcscorinfo/calcscorinfotranyn","N");
  763. }else {
  764. if((model.getValue("/root/tmp/calcscorinfo/calcscorinfotranyn")!="N")
  765. ||(model.getValue("/root/tmp/calcscorinfo/calcscorinfotranyn")=="")){
  766. model.makeValue("/root/tmp/calcscorinfo/calcscorinfotranyn","-");
  767. }
  768. }
  769. }
  770. }
  771. model.removenode(vSndPath);
  772. model.makeNode(vSndPath);
  773. model.setValue(vSndPath, vHeadData+vBodyData);
  774. }
  775. //
  776. function fNewDoubleClick(pGrid)
  777. {
  778. var vGoodcd = model.getValue(pGrid.nodeset + "[" + (pGrid.row - pGrid.fixedRows + 1) + "]/goodcd");
  779. if (model.getValue(grd_goodlist.nodeset+"[goodcd='" + vGoodcd + "']/goodcd") != "") {
  780. messageBox("동일 물품코드가 이미 존재하여 추가 " ,"E001");
  781. return false;
  782. }
  783. vGoodNew = "N";
  784. model.setFocus("grd_goodlist");
  785. btn_instgood.selected = true;
  786. btn_instgood.dispatch("DOMActivate");
  787. misfGridIUD(grd_goodlist, "A");
  788. model.copyNode(grd_goodlist.nodeset+ "[" + (grd_goodlist.row - grd_goodlist.fixedRows + 1) + "]",
  789. pGrid.nodeset + "[" + (pGrid.row - pGrid.fixedRows + 1) + "]");
  790. grd_goodlist.refresh();
  791. grd_goodlist.dispatch("onrowchanged");
  792. }
  793. /**
  794. * @desc : 그리드 확대하기
  795. * @
  796. * @return :
  797. * @author : 이창록 2009-08-25 추가
  798. * @---------------------------------------------------
  799. */
  800. function fChgGridExt()
  801. {
  802. var minWidth = 535;
  803. var maxWidth = 1195;
  804. if(btn_ext.label == "확대보기") {
  805. switch1.attribute("width") = maxWidth;
  806. line6.attribute("x2") = maxWidth - 2;
  807. grd_goodlist.attribute("width") = maxWidth - 2;
  808. grd_instgoodlist.attribute("width") = maxWidth - 2;
  809. grd_appinstgoodlist.attribute("width") = maxWidth - 2;
  810. grd_rscdtchglist2.attribute("width") = maxWidth - 2;
  811. btn_ext.value = "기본보기";
  812. } else {
  813. grd_goodlist.attribute("width") = minWidth - 2;
  814. grd_instgoodlist.attribute("width") = minWidth - 2;
  815. grd_appinstgoodlist.attribute("width") = minWidth - 2;
  816. grd_rscdtchglist2.attribute("width") = minWidth - 2;
  817. switch1.attribute("width") = minWidth;
  818. line6.attribute("x2") = minWidth - 2;
  819. btn_ext.value = "확대보기";
  820. }
  821. }
  822. function fInitUnit(instcd,goodflag)
  823. {
  824. var vPath = "/root/temp/currentunit/";
  825. if(model.getValue(vPath + "instcd") != instcd || model.getValue(vPath + "goodflag") != goodflag){
  826. rszfComboUnitList (cmb_prcpunit, instcd, goodflag);
  827. misfComboCopyItemSet(cmb_prcpunit, "", cmb_purcunit , ""); //포장단위
  828. misfComboCopyItemSet(cmb_prcpunit, "", cmb_deliveunit, ""); //수불단위
  829. model.setValue(vPath + "instcd", instcd);
  830. model.setValue(vPath + "goodflag", goodflag);
  831. }
  832. }
  833. /* ------------------------------------------------- */
  834. /* ------End Of List ------------------------------- */
  835. /* -------------------------------------------------- */