SMRSD02200.js 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020
  1. /* ---------------------------------------------------------------------
  2. SMRSD02200_처방성물품사용현황조회.xrw (SMRSD02200.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. var vProgramCls = "SMRSD02201"; // SMRSD02200:청구부서 집계내역
  9. // SMRSD02201:처방성물품사용현황조회
  10. // SMRSD02203:처방성물품선불출등록
  11. //
  12. var vGoodReqPath = "/root/main/list/goodreq/goodreqlist";
  13. var xAuth = !(checkAuth("X"));
  14. var pAuth = !(checkAuth("P"));
  15. var DataPath = "/root/main/RscmggbnEmpData";
  16. var MainPath = "/root/main/RscmggbnLists/rscmggbnlist";
  17. var ListsPath = "/root/main/RscmggbnEmpLists";
  18. var ListPath = "/root/main/RscmggbnEmpLists/rscmggbnemplist";
  19. var HidePath = "/root/WorkData/HideData";
  20. var TreePath = "/root/main/RscmgubnLists/TreeList";
  21. var WorkPath = "/root/init/WorkInit";
  22. var CompPath = "/root/init/CompareInit";
  23. var TreeSendPath = "/root/send/SearchTree";
  24. var trv_setcode_index = -1;
  25. // --------------------------------------------------
  26. // Tree정보 가져오기
  27. // --------------------------------------------------
  28. function fInit() {
  29. // 화면 Control을 초기화한다
  30. fInitialize();
  31. return;
  32. }
  33. // --------------------------------------------------------------
  34. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  35. // --------------------------------------------------------------
  36. function fInitialize() {
  37. // 처방내역 그리드 초기화
  38. misfGridInit(grd_searchgood);
  39. model.setValue(opt_instcd.attribute("ref") , getUserInfo("dutplceinstcd")); // 기관코드
  40. model.setValue(opt_instcdnm.attribute("ref") , getUserInfo("dutplceinstnm")); // 기관코드명
  41. //model.setValue(ipt_prcpdeptcd.attribute("ref"), getUserInfo("dutplcecd")); // 시행부서
  42. //model.setValue(ipt_prcpdeptnm.attribute("ref"), getUserInfo("dutplcenm")); // 시행부서명
  43. var curdate = getCurrentDate();
  44. var cvtdate = curdate.toDate("YYYYMMDD");
  45. // 응급불출 화면의 경우 3일전부터 조회한다. 2014.04.09 칠곡 중앙공급실 요청으로 주석처리 -김금련
  46. //if(getScreenID() == "SMRSD02300") {
  47. // model.setValue(ipt_prcpdd.attribute("ref") , cvtdate.getAddDate(-3,"D").getDateFormat("YYYYMMDD"));
  48. //} else {
  49. // model.setValue(ipt_prcpdd.attribute("ref") , curdate);
  50. //}
  51. model.setValue(ipt_prcpdd.attribute("ref") , curdate);
  52. model.setValue(ipt_prcpdd2.attribute("ref"), curdate);
  53. misfComboComCdList("R0111",cmb_purcflag,"Y"); // 구매구분
  54. if(document.all("rdo_erprcpflag") != null) {
  55. misfComboComCdList("030R0034",rdo_erprcpflag); // 처방구분
  56. if(getScreenID() == "SMRSD02200" || getScreenID() == "SMRSD02201") {
  57. // 처방전달 물품 사용현황조회 : 처방구분 전체 조건 추가
  58. addComboItem("rdo_erprcpflag", "전체", "A", "above");
  59. misfComboCopyItemSet(rdo_erprcpflag,"",grd_searchgood,"erprcpflag");
  60. }
  61. if(getScreenID() == "SMRSD02203"){ //선불출화면
  62. addComboItem("rdo_erprcpflag", "전체", "A", "above");
  63. }
  64. }
  65. if (vProgramCls == "SMRSD02200") { // SMRSD02200:청구부서 집계내역, SMRSD02201:처방성물품사용현황조회
  66. //misfComboComCdList("Z0007",cmb_instcd);
  67. // 수탁물품 조회 그리드 초기화
  68. misfGridInit(grd_prcpdatalist);
  69. misfGridInit(grd_tranlist);
  70. model.setValue(ipt_fmreqdd_search.attribute("ref") , cvtdate.getAddDate(-15,"D").getDateFormat("YYYYMMDD"));
  71. model.setValue(ipt_toreqdd_search.attribute("ref") , curdate);
  72. model.setValue(ipt_frtrandd_search.attribute("ref") , curdate);
  73. model.setValue(ipt_totrandd_search.attribute("ref") , curdate);
  74. model.setValue(ipt_sumfromdd.attribute("ref") , curdate);
  75. model.setValue(ipt_sumtodd.attribute("ref") , curdate);
  76. model.setValue(ipt_pffromdd.attribute("ref") , curdate);
  77. model.setValue(ipt_pftodd.attribute("ref") , curdate);
  78. model.setValue(ipt_pfacptdd.attribute("ref") , curdate);
  79. misfComboComCdList("R0093",cmb_reqprid ,"Y"); // 청구주기
  80. misfComboComCdList("R0111",cmb_purcflag,"Y"); // 구매구분
  81. misfComboComCdList(getUserInfo("dutplceinstcd") + "R0029",rbo_ioflag,"Y"); // 구매구분
  82. misfComboCopyItemSet(rbo_ioflag,"",cmb_deptflag_search,"");
  83. misfComboCopyItemSet(rbo_ioflag,"",com_deptflag,"");
  84. misfComboComCdList("R0450",chk_wareflag); // 사용부서구분
  85. misfComboCopyItemSet(chk_wareflag,"",chk_wareflag2,"");
  86. model.removeNodeset("/root/common/tmp/purcflag");
  87. model.makeNode("/root/common/tmp/purcflag");
  88. copyNodesetType("/root/common/tmp/purcflag","/root/init/cmb_purcflag/comcodelist","replace", model, model);
  89. //rszfReqFlagComboComCdList(getUserInfo("userid"),cmb_reqflag,"N",getUserInfo("dutplceinstcd"),"Y");
  90. // [2008.07.24] 청구구분의 권한을 사용자 권한으로 변경 -> 각 처방 발생 부서에서 조회 할 수 있는 프로그램을 분리하여
  91. // 이 프로그램은 구매쪽에서만 사용하기에 사용자 권한으로 변경 처리
  92. // rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),getUserInfo("userid"),"1","S" ); // preqpgmgubun : '1' :구매재고
  93. // 사용자별 청구구분 설정
  94. // [2010.08.26]AS-IS 코드 TO_BE 코드 전환을 위한 물품구분 변경 (goodflag= B) => (goodflag= BC)
  95. // [2010.10.13] (goodflag= BC) => (청구구분 하드코딩= B)
  96. rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),getUserInfo("userid"),"%","B");
  97. cmb_reqflag.refresh();
  98. model.setValue(TreeSendPath+"/instcd" , getUserInfo("dutplceinstcd")); // 기관코드
  99. model.setValue(TreeSendPath+"/instcdnm", getUserInfo("dutplceinstnm")); // 기관코드명
  100. curdate = getCurrentDate();
  101. cvtdate = curdate.toDate("YYYYMMDD");
  102. //model.setValue(ipt_reqfrdd.attribute("ref") , cvtdate.getAddDate(-1,"D").getDateFormat("YYYYMMDD")); // 청구일자 FROM
  103. model.setValue(ipt_reqfrdd.attribute("ref") , cvtdate.getDateFormat("YYYYMMDD"));
  104. model.setValue(ipt_reqtodd.attribute("ref") , cvtdate.getDateFormat("YYYYMMDD")); // 청구일자 TO
  105. cmb_reqflag.select(0); //청구구분
  106. cmb_reqflag_tree.select(0); //청구구분
  107. cmb_reqflag_search.select(0); //청구구분
  108. model.setValue("/root/send/searchgood/reqflag", cmb_reqflag.value);
  109. rbo_deliveprcsflag.select(0); //불출상태
  110. /***********************************************
  111. * 물품 처방집계에서 사용하는 초기화 구문
  112. ***********************************************/
  113. misfComboComCdList("R0093",cmb_reqpridflag); // 물품 처방집계의 청구주기
  114. // 물품 처방 집계시 사용할 청구구분 -> 상위 조회조건인 cmb_reqflag 의 노드를 copy 해서 사용하므로
  115. // 상위의 데이터 변경시 지정하지 않은 데이터 발생할 수 있다.
  116. // 상위 조회 조건이 다를 경우 -사용자별 청구구분 설정- rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),getUserInfo("userid"),"%","B");
  117. // misfComboCopyItemSet(cmb_reqflag, "", cmb_prcpsumreqflag, "" );
  118. // misfComboCopyItemSet(cmb_reqflag, "", cmb_reqflag_tree, "" );
  119. // 물품 처방집계시 집계부서 설정
  120. //model.setValue(ipt_deptcd.attribute("ref") , getUserInfo("dutplcecd"));
  121. //model.setValue(ipt_deptnm.attribute("ref") , getUserInfo("dutplcenm"));
  122. model.setValue(ipt_deptcd.attribute("ref") , "4020334000"); // 집계부서
  123. model.setValue(ipt_deptnm.attribute("ref") , "물류파트" ); // 집계부서명
  124. // 집계구분
  125. rbo_ioflag.selected = 0;
  126. // 처방 기간( from ~ to dd) , 집계일자 설정
  127. model.setValue(ipt_fromrgstdd.attribute("ref") , cvtdate.getAddDate(-1,"D").getDateFormat("YYYYMMDD"));
  128. model.setValue(ipt_torgstdd.attribute("ref") , cvtdate.getAddDate(0,"D").getDateFormat("YYYYMMDD"));
  129. model.setValue(ipt_acptdd.attribute("ref") , curdate);
  130. cmb_prcpsumreqflag.select(0);
  131. misfMsterDetailSet(grd_goodreq ,null , "TRRSD02201" ,"N");
  132. }
  133. model.refresh();
  134. }
  135. function fDataSearchTree() {
  136. // if (fCheckRetrieveData(false) == false) return;
  137. misfGridInit(grd_searchgood);
  138. // 청구구분이 미설정인 경우 null 값 설정
  139. //if( model.getValue("/root/send/SearchTree/reqflag") == "" ) model.setValue("/root/send/SearchTree/reqflag","null");
  140. // 전체 조회인경우 최상위 트리 1단계는 오픈상태로 출력
  141. if( model.getValue("/root/send/SearchTree/querycls") == "0" ) trv_setcode.attribute("expanddepth") = "1";
  142. else trv_setcode.attribute("expanddepth") = "0";
  143. if(submit("TRRSD02205",false)) {
  144. trv_setcode.rebuild();
  145. if(rdo_viewcls.value == "0" && instance1.selectNodes("/root/main/PrcpGoodTrees/TreeList[depth='2']").length == 1) {
  146. trv_setcode.value = instance1.selectSingleNode("/root/main/PrcpGoodTrees/TreeList[depth='2']/pcode").value;
  147. // 트러스트폼 트리뷰 focusIndex 값 오류로 전역변수에 인덱스 저장
  148. trv_setcode_index = 1;
  149. trv_setcode.dispatch("xforms-value-changed");
  150. }else if(rdo_viewcls.value != "0" && instance1.selectNodes("/root/main/PrcpGoodTrees/TreeList[depth='1']").length == 1) {
  151. trv_setcode.value = instance1.selectSingleNode("/root/main/PrcpGoodTrees/TreeList[depth='1']/pcode").value;
  152. // 트러스트폼 트리뷰 focusIndex 값 오류로 전역변수에 인덱스 저장
  153. trv_setcode_index = 0;
  154. trv_setcode.dispatch("xforms-value-changed");
  155. }
  156. trv_setcode.refresh();
  157. }
  158. }
  159. // 처방전달물품내역조회
  160. function fDataSearchDetail(pIdx, jobflag)
  161. {
  162. var rPath = "/root/send/SearchTree";
  163. var dPath = "/root/send/searchgood";
  164. var tPath = "/root/main/PrcpGoodTrees/TreeList";
  165. var vCaption = " 처방전달물품";
  166. // if (fCheckRetrieveData(false) == false)return; // 입력항목 Check
  167. // 트러스트폼 트리뷰 focusIndex 값 오류
  168. // -1 로 호출될 경우 전역변수로 저장된 인덱스 값으로 대체처리.
  169. //alert("trv_setcode_index := " + trv_setcode_index + "\npIdx := " + pIdx);
  170. if(pIdx == -1) pIdx = trv_setcode_index;
  171. else trv_setcode_index = pIdx;
  172. var Idx = pIdx + 1;
  173. var sDepth = model.getValue(tPath +"["+Idx+"]/depth" );
  174. var vCodeCd = model.getValue(tPath +"["+Idx+"]/codecd" );
  175. var vCodeNm = model.getValue(tPath +"["+Idx+"]/codenm" );
  176. var vBaseCd = model.getValue(tPath +"["+Idx+"]/basecode");
  177. var Tree2 = trv_setcode.item(pIdx);
  178. cpt_disp.value = "";
  179. cpt_disp.refresh();
  180. misfGridInit(grd_searchgood);
  181. if (vCodeCd == "") return;
  182. model.setValue(dPath + "/instcd" , model.getValue(rPath + "/instcd" )); // 01 기관코드
  183. model.setValue(dPath + "/prcpdd" , model.getValue(rPath + "/prcpdd" )); // 02 처방일자
  184. model.setValue(dPath + "/prcpdd2" , model.getValue(rPath + "/prcpdd2" )); // 03 처방일자
  185. model.setValue(dPath + "/sumflag" , model.getValue(rPath + "/sumflag" )); // 04 집계여부
  186. model.setValue(dPath + "/reqflag" , model.getValue(rPath + "/reqflag" )); // 05 청구구분
  187. model.setValue(dPath + "/reqdeptcd" , "" ); // 06 처방부서
  188. model.setValue(dPath + "/reqprid" , model.getValue(rPath + "/reqprid" )); // 07 청구주기
  189. model.setValue(dPath + "/prcpdeptcd" , "" ); // 08 시행부서
  190. model.setValue(dPath + "/goodcd" , model.getValue(rPath + "/goodcd" )); // 09 물품코드
  191. model.setValue(dPath + "/ioflag" , model.getValue(rPath + "/ioflag" )); // 10 입외구분
  192. model.setValue(dPath + "/deptgr" , "" ); // 11 부서그룹
  193. model.setValue(dPath + "/pid" , model.getValue(rPath + "/pid" )); // 12 환자번호
  194. model.setValue(dPath + "/patnm" , model.getValue(rPath + "/patnm" )); // 13 환자명
  195. model.setValue(dPath + "/purcflag" , model.getValue(rPath + "/purcflag" )); // 14 구매구분
  196. model.setValue(dPath + "/prodcmpynm" , model.getValue(rPath + "/prodcmpynm" )); // 15 제조회사명
  197. model.setValue(dPath + "/suplplcecdnm", model.getValue(rPath + "/suplplcecdnm" )); // 16 주거래처명
  198. model.setValue(dPath + "/suppcustnm" , model.getValue(rPath + "/suppcustnm" )); // 17 보조거래처명
  199. model.setValue(dPath + "/prntyn" , model.getValue(rPath + "/prntyn" )); // 18 출력여부
  200. if (jobflag == "D") {
  201. model.setValue(dPath + "/deliveyn" , model.getValue(rPath + "/deliveyn" )); // 19 출력여부
  202. }
  203. // 선불출 조회조건 추가 이창록
  204. model.makeValue(dPath + "/querycls" , model.getValue("/root/send/SearchTree/querycls")); // 20 라디오박스 선불출코드
  205. // 응급,CCD제외조건 추가
  206. model.makeValue(dPath + "/erprcpflag" , model.getValue(rPath + "/erprcpflag" )); // 21 응급여부
  207. model.makeValue(dPath + "/prcpinptflag", model.getValue(rPath + "/prcpinptflag" )); // 22 CCD제외
  208. if(getScreenID() == "SMRSD02200" || getScreenID() == "SMRSD02201"){ // 처방섬물품 사용현황및집계 일 경우
  209. model.setValue(dPath + "/wareflagarr" , model.getValue(rPath + "/wareflagarr" )); // 창고구분배열 조건
  210. }
  211. if(document.all("rdo_goodcd_like") != null) {
  212. model.setValue(dPath + "/goodcd_like" , model.getValue(rdo_goodcd_like.attribute("ref"))); // 물품코드 유사여부
  213. }
  214. model.removenode(dPath + "/prcpcd");
  215. if(model.getValue(rPath + "/prcpcd") != ""){
  216. model.makeValue(dPath + "/prcpcd" , model.getValue(rPath + "/prcpcd" )); // 처방코드 조건
  217. }
  218. model.removenode(dPath + "/prcpnm");
  219. if(model.getValue(rPath + "/prcpnm") != ""){
  220. model.makeValue(dPath + "/prcpnm" , model.getValue(rPath + "/prcpnm" )); // 처방명 조건
  221. }
  222. var vCls = parseInt(rdo_viewcls.value+sDepth);
  223. switch(vCls) {
  224. case 01 : vCaption = " :: 전체" ;
  225. break;
  226. case 02 :
  227. model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  228. vCaption = "시행부서 : "+vCodeCd + " - " + vCodeNm;
  229. break;
  230. case 11 : model.setValue(dPath + "/reqdeptcd" , vCodeCd);
  231. vCaption = "처방부서 : "+ vCodeCd + " - " + vCodeNm;
  232. break;
  233. case 12 : model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  234. vCode = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codecd" );
  235. vName = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codenm" );
  236. model.setValue(dPath + "/reqdeptcd" , vCode );
  237. vCaption = "처방부서 : "+vCode + " - " + vName + " >> 시행부서 : "+vCodeCd+ " - "+vCodeNm;
  238. break;
  239. case 21 : model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  240. vCaption = "시행부서 : "+vCodeCd + " - " + vCodeNm;
  241. break;
  242. case 22 : model.setValue(dPath + "/reqdeptcd" , vCodeCd);
  243. vCode = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codecd" );
  244. vName = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codenm" );
  245. model.setValue(dPath + "/prcpdeptcd" , vCode );
  246. vCaption = "시행부서 : "+vCode + " - " + vName + " >> 처방부서 : "+vCodeCd+ " - "+vCodeNm ;
  247. break;
  248. case 31 : model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  249. vCaption = "시행부서 : "+vCodeCd + " - " + vCodeNm;
  250. break;
  251. case 32 : model.setValue(dPath + "/goodcd" , vCodeCd);
  252. vCode = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codecd" );
  253. vName = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codenm" );
  254. model.setValue(dPath + "/prcpdeptcd" , vCode );
  255. vCaption = "시행부서 : "+vCode + " - " + vName + " >> 물품코드 : "+vCodeCd+ " - "+vCodeNm ;
  256. }
  257. cpt_disp.value = vCaption; // + " 처방전달물품";
  258. submit("TRRSD02203");
  259. fGrdiDataValid();
  260. cpt_disp.refresh();
  261. }
  262. // 처방전달물품내역조회(반납용)
  263. function fDataSearchDetailReturn(pIdx, jobflag)
  264. {
  265. var rPath = "/root/send/SearchTree";
  266. var dPath = "/root/send/searchgood";
  267. var tPath = "/root/main/PrcpGoodTrees/TreeList";
  268. var vCaption = " 처방전달물품";
  269. // if (fCheckRetrieveData(false) == false)return; // 입력항목 Check
  270. // 트러스트폼 트리뷰 focusIndex 값 오류
  271. // -1 로 호출될 경우 전역변수로 저장된 인덱스 값으로 대체처리.
  272. //alert("trv_setcode_index := " + trv_setcode_index + "\npIdx := " + pIdx);
  273. if(pIdx == -1) pIdx = trv_setcode_index;
  274. else trv_setcode_index = pIdx;
  275. var Idx = pIdx + 1;
  276. var sDepth = model.getValue(tPath +"["+Idx+"]/depth" );
  277. var vCodeCd = model.getValue(tPath +"["+Idx+"]/codecd" );
  278. var vCodeNm = model.getValue(tPath +"["+Idx+"]/codenm" );
  279. var vBaseCd = model.getValue(tPath +"["+Idx+"]/basecode");
  280. var Tree2 = trv_setcode.item(pIdx);
  281. cpt_disp.value = "";
  282. cpt_disp.refresh();
  283. misfGridInit(grd_searchgood);
  284. if (vCodeCd == "") return;
  285. model.setValue(dPath + "/instcd" , model.getValue(rPath + "/instcd" )); // 01 기관코드
  286. model.setValue(dPath + "/prcpdd" , model.getValue(rPath + "/prcpdd" )); // 02 처방일자
  287. model.setValue(dPath + "/prcpdd2" , model.getValue(rPath + "/prcpdd2" )); // 03 처방일자
  288. model.setValue(dPath + "/sumflag" , model.getValue(rPath + "/sumflag" )); // 04 집계여부
  289. model.setValue(dPath + "/reqflag" , model.getValue(rPath + "/reqflag" )); // 05 청구구분
  290. model.setValue(dPath + "/reqdeptcd" , "" ); // 06 처방부서
  291. model.setValue(dPath + "/reqprid" , model.getValue(rPath + "/reqprid" )); // 07 청구주기
  292. model.setValue(dPath + "/prcpdeptcd" , "" ); // 08 시행부서
  293. model.setValue(dPath + "/goodcd" , model.getValue(rPath + "/goodcd" )); // 09 물품코드
  294. model.setValue(dPath + "/ioflag" , model.getValue(rPath + "/ioflag" )); // 10 입외구분
  295. model.setValue(dPath + "/deptgr" , "" ); // 11 부서그룹
  296. model.setValue(dPath + "/pid" , model.getValue(rPath + "/pid" )); // 12 환자번호
  297. model.setValue(dPath + "/patnm" , model.getValue(rPath + "/patnm" )); // 13 환자명
  298. model.setValue(dPath + "/purcflag" , model.getValue(rPath + "/purcflag" )); // 14 구매구분
  299. model.setValue(dPath + "/prodcmpynm" , model.getValue(rPath + "/prodcmpynm" )); // 15 제조회사명
  300. model.setValue(dPath + "/suplplcecdnm", model.getValue(rPath + "/suplplcecdnm" )); // 16 주거래처명
  301. model.setValue(dPath + "/suppcustnm" , model.getValue(rPath + "/suppcustnm" )); // 17 보조거래처명
  302. model.setValue(dPath + "/prntyn" , model.getValue(rPath + "/prntyn" )); // 18 출력여부
  303. if (jobflag == "D"){
  304. model.setValue(dPath + "/deliveyn" , model.getValue(rPath + "/deliveyn" )); // 19 출력여부
  305. }
  306. // 선불출 조회조건 추가 이창록
  307. model.makeValue(dPath + "/querycls" , model.getValue("/root/send/SearchTree/querycls")); // 20 라디오박스 선불출코드
  308. // 응급,CCD제외조건 추가
  309. model.makeValue(dPath + "/erprcpflag" , model.getValue(rPath + "/erprcpflag" )); // 21 응급여부
  310. model.makeValue(dPath + "/prcpinptflag", model.getValue(rPath + "/prcpinptflag" )); // 22 CCD제외
  311. if(getScreenID() == "SMRSD02200" || getScreenID() == "SMRSD02201"){ // 처방섬물품 사용현황및집계 일 경우
  312. model.setValue(dPath + "/wareflagarr" , model.getValue(rPath + "/wareflagarr" )); // 창고구분배열 조건
  313. }
  314. model.removenode(dPath + "/prcpcd");
  315. if(model.getValue(rPath + "/prcpcd") != ""){
  316. model.makeValue(dPath + "/prcpcd" , model.getValue(rPath + "/prcpcd" )); // 처방코드 조건
  317. }
  318. model.removenode(dPath + "/prcpnm");
  319. if(model.getValue(rPath + "/prcpnm") != ""){
  320. model.makeValue(dPath + "/prcpnm" , model.getValue(rPath + "/prcpnm" )); // 처방명 조건
  321. }
  322. var vCls = parseInt(rdo_viewcls.value+sDepth);
  323. switch(vCls) {
  324. case 01 : vCaption = " :: 전체" ;
  325. break;
  326. case 02 :
  327. model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  328. vCaption = "시행부서 : "+vCodeCd + " - " + vCodeNm;
  329. // grd_goodreq.colwidth(3) = "74";
  330. break;
  331. case 11 : model.setValue(dPath + "/reqdeptcd" , vCodeCd);
  332. vCaption = "처방부서 : "+ vCodeCd + " - " + vCodeNm;
  333. // grd_goodreq.colwidth(3) = "74";
  334. break;
  335. case 12 : model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  336. vCode = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codecd" );
  337. vName = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codenm" );
  338. model.setValue(dPath + "/reqdeptcd" , vCode );
  339. vCaption = "처방부서 : "+vCode + " - " + vName + " >> 시행부서 : "+vCodeCd+ " - "+vCodeNm;
  340. // grd_goodreq.colwidth(3) = "0";
  341. break;
  342. case 21 : model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  343. vCaption = "시행부서 : "+vCodeCd + " - " + vCodeNm;
  344. // grd_goodreq.colwidth(3) = "74";
  345. break;
  346. case 22 : model.setValue(dPath + "/reqdeptcd" , vCodeCd);
  347. vCode = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codecd" );
  348. vName = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codenm" );
  349. model.setValue(dPath + "/prcpdeptcd" , vCode );
  350. vCaption = "시행부서 : "+vCode + " - " + vName + " >> 처방부서 : "+vCodeCd+ " - "+vCodeNm ;
  351. break;
  352. case 31 : model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  353. vCaption = "시행부서 : "+vCodeCd + " - " + vCodeNm;
  354. // grd_goodreq.colwidth(3) = "74";
  355. break;
  356. case 32 : model.setValue(dPath + "/goodcd" , vCodeCd);
  357. vCode = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codecd" );
  358. vName = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codenm" );
  359. model.setValue(dPath + "/prcpdeptcd" , vCode );
  360. vCaption = "시행부서 : "+vCode + " - " + vName + " >> 물품코드 : "+vCodeCd+ " - "+vCodeNm ;
  361. }
  362. //
  363. cpt_disp.value = vCaption; // + " 처방전달물품";
  364. submit("TRRSD02501");
  365. fGrdiDataValid();
  366. cpt_disp.refresh();
  367. }
  368. // <group id="grp_main" style="left:350px; top:8px; width:835px; height:747px; ">
  369. // <line id="lin_main" class="line_1" style="x1:0px; y1:20px; x2:835px; y2:20px; "/>
  370. // <button id="btn_excel" class="btn5_letter3" style="left:778px; top:0px; width:53px; height:19px; ">
  371. // <group id="grp_main" style="left:0px; top:8px; width:1192px; height:747px; ">
  372. // <line id="lin_main" class="line_1" style="x1:0px; y1:20px; x2:1192px; y2:20px; "/>
  373. // <button id="btn_excel" class="btn5_letter3" style="left:1135px; top:0px; width:53px; height:19px; ">
  374. // 처방전달물품내역
  375. function fDataPartToggle(pCls) {
  376. if (pCls =="0") { // Key 조회
  377. // 메인 Grup
  378. grp_main.attribute("left" ) = "350px";
  379. grp_main.attribute("width" ) = "835px";
  380. lin_main.attribute("x2" ) = "835px";
  381. grd_searchgood.attribute("width") = "835px";
  382. if (vProgramCls == "SMRSD02203") {
  383. btn_save.attribute("left" ) = "615px";
  384. btn_wardprint.attribute("left") = "735px";
  385. btn_excel2.attribute("left" ) = "678px";
  386. } else {
  387. btn_excel2.attribute("left" ) = "778px";
  388. }
  389. } else { //
  390. // 메인 Grup
  391. grp_main.attribute("left" ) = "0px" ;
  392. grp_main.attribute("width" ) = "1192px";
  393. lin_main.attribute("x2" ) = "1192px";
  394. grd_searchgood.attribute("width") = "1192px";
  395. if (vProgramCls == "SMRSD02203") {
  396. btn_save.attribute("left" ) = "972px";
  397. btn_wardprint.attribute("left") = "1092px";
  398. btn_excel2.attribute("left" ) = "1035px";
  399. } else {
  400. btn_excel2.attribute("left" ) = "1135px";
  401. }
  402. }
  403. if(document.all("grd_goodsumlist") != null) {
  404. grd_goodsumlist.attribute("left" ) = grd_searchgood.attribute("left" );
  405. grd_goodsumlist.attribute("top" ) = grd_searchgood.attribute("top" );
  406. grd_goodsumlist.attribute("width" ) = grd_searchgood.attribute("width" );
  407. grd_goodsumlist.attribute("height") = grd_searchgood.attribute("height");
  408. }
  409. grp_main.refresh();
  410. }
  411. function fCheckRetrieveData()
  412. {
  413. if(model.getValue(opt_instcd.attribute("ref")).length== 0 ) {
  414. model.setFocus("opt_instcd");
  415. return false;
  416. }
  417. //
  418. if(model.getValue(ipt_reqfrdd.attribute("ref")).length== 0 )
  419. {
  420. model.setFocus("ipt_reqfrdd");
  421. return false;
  422. }
  423. //
  424. if(model.getValue(ipt_reqtodd.attribute("ref")).length== 0 )
  425. {
  426. model.setFocus("ipt_reqtodd");
  427. return false;
  428. }
  429. return true;
  430. }
  431. // 조회 결과 Count Setting
  432. function fAfterRetrieve() {
  433. // case 1 count
  434. model.setValue(opt_goodreqcnt.attribute("ref"),(grd_goodreq.rows-grd_goodreq.fixedRows));
  435. // case 2 count
  436. // model.setValue(opt_searchgoodcnt.attribute("ref"),(grd_searchgood.rows-grd_searchgood.fixedRows));
  437. model.refresh();
  438. }
  439. /***********************************************************
  440. * 물품 처방 집계에서 사용한 Script
  441. ************************************************************/
  442. function fCheckValue() {
  443. if(!isRequiredControls("cmb_prcpsumreqflag")) {
  444. ipt_goodcd.value = '';
  445. ipt_goodnm.value = '';
  446. return true;
  447. }
  448. if(!isRequiredControls("ipt_orddeptcd")) {
  449. ipt_goodcd.value = '';
  450. ipt_goodnm.value = '';
  451. return true;
  452. }
  453. if(!isRequiredControls("ipt_orddeptnm")) {
  454. ipt_goodcd.value = '';
  455. ipt_goodnm.value = '';
  456. return true;
  457. }
  458. return false;
  459. }
  460. function fCheckSaveData() {
  461. if(!isRequiredControls("ipt_deptcd" )) return false;
  462. if(!isRequiredControls("ipt_fromrgstdd" )) return false;
  463. if(!isRequiredControls("ipt_torgstdd" )) return false;
  464. if(!isRequiredControls("ipt_acptdd" )) return false;
  465. if(!isRequiredControls("cmb_prcpsumreqflag")) return false;
  466. if(!isRequiredControls("cmb_reqpridflag" )) return false;
  467. }
  468. function fClearControl() {
  469. if((ipt_orddeptcd.value =='') || (ipt_orddeptnm.value == '')) {
  470. ipt_goodcd.value = '';
  471. ipt_goodnm.value = '';
  472. }
  473. }
  474. // Grid의 데이터를 확인하여 오류 데이터시 색상 변경
  475. // 물품Master의 All size && 집계 여부시 색상변경
  476. function fGrdiDataValid() {
  477. if (grd_searchgood.rows - grd_searchgood.fixedRows <= 0 ) return;
  478. grd_searchgood.colStyle(grd_searchgood.colRef("sumflagnm"), "data", "background-color") = "pink";
  479. grd_searchgood.colStyle(grd_searchgood.colRef("prntynnm"), "data", "background-color") = "pink";
  480. var sumStr = -1, sumEnd = -1;
  481. var prnStr = -1, prnEnd = -1;
  482. for(cnt = grd_searchgood.fixedRows; cnt< grd_searchgood.rows; cnt++) {
  483. // All SIze 물품이면서 Size 지정이 되지 않고 내려온 처방
  484. if (grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("allsizeyn" )) == "Y" &&
  485. grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("allsizespecid")) == "-") {
  486. grd_searchgood.cellstyle("background-color", cnt, grd_searchgood.colRef("rgstdd"), cnt, grd_searchgood.colRef("totqty")) = "yellow";
  487. grd_searchgood.cellstyle("color" , cnt, grd_searchgood.colRef("rgstdd"), cnt, grd_searchgood.colRef("totqty")) = "red";
  488. // grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("goodspec") ) = "All Size 미지정";
  489. }
  490. // 처방 집계 여부
  491. if (grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("sumflag"))=="Y" ) {
  492. if(getScreenID() == "SMRSD02203")
  493. grd_searchgood.isReadOnly(cnt , grd_searchgood.colRef("beforqty")) = true;
  494. if(sumStr < 0)sumStr = cnt;
  495. sumEnd = cnt;
  496. } else {
  497. if(sumStr > 0) {
  498. grd_searchgood.cellstyle("background-color", sumStr, grd_searchgood.colRef("sumflagnm"), sumEnd, grd_searchgood.colRef("sumflagnm") ) = "green";
  499. sumStr = -1;
  500. }
  501. }
  502. // 진료재료파트(중앙공급실) 선불출 제한
  503. var prcpDeptcd = grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("prcpdeptcd"));
  504. if(prcpDeptcd == "3080000000") {
  505. grd_searchgood.isReadOnly(cnt , grd_searchgood.colRef("beforqty")) = true;
  506. }
  507. // 선불출서 출력 여부
  508. if (grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("prntyn"))=="Y" ) {
  509. if(prnStr < 0)prnStr = cnt;
  510. prnEnd = cnt;
  511. } else {
  512. if(prnStr > 0) {
  513. grd_searchgood.cellstyle("background-color", prnStr, grd_searchgood.colRef("prntynnm"), prnEnd, grd_searchgood.colRef("prntynnm") ) = "green";
  514. prnStr = -1;
  515. }
  516. }
  517. if (model.getValue(grd_searchgood.nodeset + "[" + cnt + "]/allsizeyn") == "Y" ) {
  518. grd_searchgood.cellstyle("background-color", cnt, 4) = "#FFFF00";
  519. //if (model.getValue(grd_searchgood.nodeset + "[" + cnt + "]/allsizespecid") == "-" ) {
  520. // grd_searchgood.colAttribute ( 1, "disabled" ) = true;
  521. // grd_searchgood.coldisabled(grd_searchgood.colRef("beforqty")) = true;
  522. //} else {
  523. // grd_reqsetlist.cellstyle("background-color", j, 5) = "transparent";
  524. //}
  525. }
  526. }
  527. if(sumStr > 0) grd_searchgood.cellstyle("background-color", sumStr, grd_searchgood.colRef("sumflagnm"), sumEnd, grd_searchgood.colRef("sumflagnm") ) = "green";
  528. if(prnStr > 0) grd_searchgood.cellstyle("background-color", prnStr, grd_searchgood.colRef("prntynnm"), prnEnd, grd_searchgood.colRef("prntynnm") ) = "green";
  529. grd_searchgood.refresh();
  530. }
  531. // 부서코드 읽어오기...
  532. function fDeptValidationCheck(pData1, pData2, pCodeName) {
  533. if (pData1.value.length == 0) {
  534. pData2.value = "";
  535. } else {
  536. rszfValidationCheck("TRRPZ00201", "deptcodelist", "refcond,deptnm","deptnm," + pData1.value,"", pCodeName, pData1, "SPRPZ00200", "","");
  537. }
  538. model.refresh();
  539. }
  540. // 선불출수량 Check
  541. function fBeforQtyOnChange(pRow, pCls, jobflag) {
  542. var tQty = 0;
  543. var sQty = 0;
  544. var oQty = 0;
  545. var vGridPath = grd_searchgood.nodeset;
  546. var vSrt = (pCls == 1) ? pRow : grd_searchgood.fixedRows;
  547. var vEnd = (pCls == 1) ? pRow : grd_searchgood.Rows - 1 ;
  548. for (var i = vSrt; i <= vEnd; i++) {
  549. tQty = parseFloat(model.getValue(vGridPath+"["+ i +"]/totqty" )); // 총수량
  550. sQty = parseFloat(model.getValue(vGridPath+"["+ i +"]/beforqty" )); // 선불출
  551. oQty = parseFloat(model.getValue(vGridPath+"["+ i +"]/beforqtyold")); // Old 선불출
  552. if(!Number(sQty)) model.setValue(vGridPath+"["+ i +"]/beforqty", 0);
  553. if (sQty != oQty) {
  554. if ((model.getValue(vGridPath+"["+ i +"]/allsizeyn" ) == "Y") &&
  555. (model.getValue(vGridPath+"["+ i +"]/allsizespecid") == "-") ) {
  556. messageBox(i + " 번째 물품은 All Size 미지정 불출" ,"E001");
  557. model.setValue(vGridPath+"["+ i +"]/beforqty" ,model.getValue(vGridPath+"["+ i +"]/beforqtyold")); // Old 선불출
  558. return false;
  559. }
  560. //
  561. if ((tQty >= 0 && (tQty < sQty || sQty < 0)) || (tQty < 0 && (tQty > sQty || sQty > 0))) {
  562. if (jobflag != "D") {
  563. messageBox(i + " 번째 물품 처방 총수량 보다 선불출 수량이 클 수 " ,"I004");
  564. grd_searchgood.row = i;
  565. grd_searchgood.col = grd_searchgood.colRef("beforqty");
  566. grd_searchgood.editCell();
  567. return false;
  568. }
  569. }
  570. if (vProgramCls == "SMRSD02300"){
  571. //응급 처방의 경우 집계 체크를 안함.
  572. }else if (model.getValue(vGridPath+"["+ i +"]/sumflag") == "Y" && jobflag != "D") {
  573. messageBox(i + " 번째 집계 완료된 물품 선불출 " ,"E001");
  574. grd_searchgood.row = i;
  575. model.setValue(vGridPath+"["+ i +"]/beforqty" ,model.getValue(vGridPath+"["+ i +"]/beforqtyold")); // Old 선불출
  576. return false;
  577. }
  578. }
  579. }
  580. return true;
  581. }
  582. // --------------------------------------------------
  583. // 진료재료 처방 All Size 정산내역을 저장한다.
  584. // --------------------------------------------------
  585. function fBeforQtyDataSave(jobflag)
  586. {
  587. // 저장전 Data를 Check한다.
  588. if (fBeforQtyOnChange("", 2, jobflag) == false) return;
  589. var HeaderData = "instcd" + "▦" // 00 기관코드
  590. + "genrdd" + "▦" // 02 생성일자
  591. + "genrno" + "▦" // 02 생성번호
  592. + "genrseq" + "▦" // 03 생성순번
  593. + "beforqty" + "▩"; // 04 선불출수량
  594. var vData = "";
  595. var sPath = grd_searchgood.nodeset;
  596. var vGridRows = grd_searchgood.rows - 1;
  597. for (var i=1; i<= vGridRows; i++) {
  598. sQty = parseFloat(model.getValue(sPath+"["+ i +"]/beforqty" )); // 선불출
  599. oQty = parseFloat(model.getValue(sPath+"["+ i +"]/beforqtyold")); // Old 선불출
  600. if (sQty != oQty) {
  601. vData += model.getValue(sPath + "[" + i + "]/instcd" ) + "▦" // 00 기관코드
  602. + model.getValue(sPath + "[" + i + "]/genrdd" ) + "▦" // 01 생성일자
  603. + model.getValue(sPath + "[" + i + "]/genrno" ) + "▦" // 02 생성번호
  604. + model.getValue(sPath + "[" + i + "]/genrseq" ) + "▦" // 03 생성순번
  605. + model.getValue(sPath + "[" + i + "]/beforqty" ) + "▩"; // 04 선불출수량
  606. }
  607. }
  608. if (vData == "") {
  609. alert("수정된 자료가 없습니다!!");
  610. return false;
  611. }
  612. model.removenode("/root/send/save" ); //
  613. model.makeValue("/root/send/save/rsihopmabefore", HeaderData + vData); // 물품규격내역
  614. if(submit("TXRSD02202")) {
  615. if(getScreenID() == "SMRSD02200" || getScreenID() == "SMRSD02201"){ // 처방섬물품 사용현황및집계 일 경우
  616. fDataSearchDetail(trv_setcode.focusIndex);
  617. }
  618. else fDataSearchDetail(trv_setcode.focusIndex, "D");
  619. } else {
  620. alert("저장오류");
  621. return false;
  622. }
  623. return true;
  624. }
  625. // --------------------------------------------------
  626. // 보기 Option 선택
  627. // --------------------------------------------------
  628. function fViewPrcpDataClick(pFlag) {
  629. if (pFlag ) {
  630. } else {
  631. // misfGridInit(grd_prcpdatalist);
  632. // grp_view.refresh();
  633. grp_view.visible = pFlag;
  634. return;
  635. }
  636. //----------------------------
  637. // Title은 그냥 넘어간다.
  638. //----------------------------
  639. if (grd_goodreq.row < 1) {
  640. return;
  641. }
  642. //------------------------------------------
  643. // 조회된건이 Title은 그냥 넘어간다.
  644. //------------------------------------------
  645. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd") =="") {
  646. return;
  647. }
  648. model.setValue("/root/send/reqprcp//instcd" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/instcd" )); // 기관코드
  649. model.setValue("/root/send/reqprcp//reqdd" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqdd" )); // 청구일자
  650. model.setValue("/root/send/reqprcp//goodcd" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" )); // 물품코드
  651. model.setValue("/root/send/reqprcp//reqdeptcd" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqdeptcd" )); // 청구부서
  652. model.setValue("/root/send/reqprcp//allsizespecid" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/allsizespecid")); // ALL SIZE ID
  653. // 물품구분이 가납일경우 처방일자로 조회 이창록 20091103
  654. model.makeValue("/root/send/reqprcp/purcflag" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/purcflag")); // 물품구분
  655. submit("TRRSD02210");
  656. grp_view.visible = pFlag;
  657. grp_view.refresh();
  658. }
  659. function fViewPrcpDataClick2(pFlag) {
  660. if (pFlag ) {
  661. } else {
  662. grp_view2.visible = pFlag;
  663. return;
  664. }
  665. var mainGrid = datagrid1;
  666. var subGrid = datagrid2;
  667. //----------------------------
  668. // Title은 그냥 넘어간다.
  669. //----------------------------
  670. if (mainGrid.row < 1) {
  671. return;
  672. }
  673. //------------------------------------------
  674. // 조회된건이 Title은 그냥 넘어간다.
  675. //------------------------------------------
  676. if (model.getValue(mainGrid.nodeset + "[" + mainGrid.row + "]/goodcd") =="") {
  677. return;
  678. }
  679. var prcpdeptcd = model.getValue(mainGrid.nodeset + "[" + mainGrid.row + "]/prcpdeptcd"); // 처방부서
  680. var goodcd = model.getValue(mainGrid.nodeset + "[" + mainGrid.row + "]/goodcd"); // 물품코드
  681. if(prcpdeptcd == "") {
  682. subGrid.nodeset = "/root/main/list/exgoodreq/goodreqprcplist[goodcd='" + goodcd + "']";
  683. } else {
  684. subGrid.nodeset = "/root/main/list/exgoodreq/goodreqprcplist[prcpdeptcd='" + prcpdeptcd + "' and goodcd='" + goodcd + "']";
  685. }
  686. grp_view2.visible = pFlag;
  687. grp_view2.refresh();
  688. }
  689. function fViewPrcpDataClick3(pFlag) {
  690. if (pFlag ) {
  691. } else {
  692. grp_view3.visible = pFlag;
  693. return;
  694. }
  695. var mainGrid = grd_syringelist;
  696. var subGrid = datagrid3;
  697. //----------------------------
  698. // Title은 그냥 넘어간다.
  699. //----------------------------
  700. if (mainGrid.row < 1) {
  701. return;
  702. }
  703. //------------------------------------------
  704. // 조회된건이 Title은 그냥 넘어간다.
  705. //------------------------------------------
  706. if (model.getValue(mainGrid.nodeset + "[" + mainGrid.row + "]/goodcd") =="") {
  707. return;
  708. }
  709. var prcpdeptcd = model.getValue(mainGrid.nodeset + "[" + mainGrid.row + "]/prcpdeptcd"); // 처방부서
  710. var goodcd = model.getValue(mainGrid.nodeset + "[" + mainGrid.row + "]/goodcd"); // 물품코드
  711. if(prcpdeptcd == "") {
  712. subGrid.nodeset = "/root/main/list/syringe/syringeprcplist[goodcd='" + goodcd + "']";
  713. } else {
  714. subGrid.nodeset = "/root/main/list/syringe/syringeprcplist[prcpdeptcd='" + prcpdeptcd + "' and goodcd='" + goodcd + "']";
  715. }
  716. grp_view3.visible = pFlag;
  717. grp_view3.refresh();
  718. }
  719. // --------------------------------------------------
  720. // 선불출서 출력 여부를 수정한다.
  721. // --------------------------------------------------
  722. function fPrntDataSave()
  723. {
  724. // 저장전 Data를 Check한다.
  725. var HeaderData = "instcd" + "▦" // 01 기관코드
  726. + "genrdd" + "▦" // 02 생성일자
  727. + "genrno" + "▦" // 03 생성번호
  728. + "genrseq" + "▩"; // 04 생성순번
  729. var vData = "";
  730. var nodeList = instance1.selectNodes(grd_searchgood.nodeset + "[beforqty!=0 and prntyn!='Y']");
  731. if(nodeList == null || nodeList.length < 1) return;
  732. for (var i=0; i<nodeList.length; i++) {
  733. var selNode = nodeList.item(i);
  734. vData += selNode.selectSingleNode("instcd" ).value + "▦" // 01 기관코드
  735. + selNode.selectSingleNode("genrdd" ).value + "▦" // 02 생성일자
  736. + selNode.selectSingleNode("genrno" ).value + "▦" // 03 생성번호
  737. + selNode.selectSingleNode("genrseq").value + "▩"; // 04 생성순번
  738. }
  739. if(vData != "") {
  740. model.removenode("/root/send/save" ); //
  741. model.makeValue("/root/send/save/prntinfo", HeaderData + vData); // 선불출 출력 여부
  742. submit("TXRSD02203");
  743. }
  744. }
  745. function fAddBeforDeliveList(idx) {
  746. var targetGrid = grd_befordelivelist;
  747. var readNode = "/root/main/list/searchgood/searchgoodlist";
  748. var writeNode = "/root/main/list/befordelive/befordelivelist";
  749. if(grd_searchgood.valueMatrix(idx, grd_searchgood.colRef("sumflag")) == "Y") {
  750. messageBox("이미 집계 된 처방","E008");
  751. return;
  752. } else if(grd_searchgood.valueMatrix(idx, grd_searchgood.colRef("beforqty")) != "0") {
  753. messageBox("이미 선불출 된 처방","E008");
  754. return;
  755. }
  756. var instcd = model.getValue(opt_instcd.attribute("ref"));
  757. var genrdd = grd_searchgood.valueMatrix(idx, grd_searchgood.colRef("genrdd"));
  758. var genrno = grd_searchgood.valueMatrix(idx, grd_searchgood.colRef("genrno"));
  759. var genrseq = grd_searchgood.valueMatrix(idx, grd_searchgood.colRef("genrseq"));
  760. var temp = writeNode + "[genrdd='" + genrdd + "' and genrno='" + genrno + "' and genrseq='" + genrseq + "']";
  761. if(instance1.selectNodes(temp).length == 0) {
  762. targetGrid.addRow(false);
  763. model.copyNode(writeNode + "[" + (targetGrid.rows-1) + "]", readNode + "[" + grd_searchgood.row + "]");
  764. var totqty = model.getValue(writeNode + "[" + (targetGrid.rows-1) + "]/totqty");
  765. model.setValue(writeNode + "[" + (targetGrid.rows-1) + "]/beforqty", totqty);
  766. model.setValue(writeNode + "[" + (targetGrid.rows-1) + "]/instcd", instcd);
  767. targetGrid.refresh();
  768. } else {
  769. messageBox("이미 등록 된 처방","E008");
  770. }
  771. }
  772. function fBeforQtyDataSave2(jobflag)
  773. {
  774. var targetGrid = grd_befordelivelist;
  775. // 저장전 Data를 Check한다.
  776. var updateData = getGridUpdateData(grd_befordelivelist);
  777. if (ipt_newflag.value == "Y") {
  778. alert("1231");
  779. for (var i=1; i<= targetGrid.rows; i++) {
  780. targetGrid.valueMatrix(i, targetGrid.colRef("newflag")) = ipt_newflag.value;
  781. }
  782. }
  783. updateData = getGridUpdateData(grd_befordelivelist);
  784. alert(updateData);
  785. if (updateData == "") {
  786. alert("수정된 자료가 없습니다!!");
  787. return;
  788. }
  789. model.removenode("/root/send/save" ); //
  790. model.makeValue("/root/send/save/befordelive", updateData); // 물품규격내역
  791. submit("TXRSD02204");
  792. /* if (model.getValue(gvErrorMsgPath + "/type") != "error")
  793. {
  794. fDataSearchDetail(trv_setcode.focusIndex);
  795. }*/
  796. }
  797. /* ------------------------------------------------- */
  798. /* ------End Of List ------------------------------- */
  799. /* -------------------------------------------------- */