SMRSD02400.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659
  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. // --------------------------------------------------
  25. // Tree정보 가져오기
  26. // --------------------------------------------------
  27. function fInit() {
  28. // 화면 Control을 초기화한다
  29. fInitialize();
  30. return;
  31. }
  32. // --------------------------------------------------------------
  33. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  34. // --------------------------------------------------------------
  35. function fInitialize() {
  36. // 처방내역 그리드 초기화
  37. misfGridInit(grd_searchgood);
  38. model.setValue(opt_instcd.attribute("ref") , getUserInfo("dutplceinstcd")); // 기관코드
  39. model.setValue(opt_instcdnm.attribute("ref") , getUserInfo("dutplceinstnm")); // 기관코드명
  40. // model.setValue(ipt_prcpdeptcd.attribute("ref"), getUserInfo("dutplcecd")); // 시행부서
  41. // model.setValue(ipt_prcpdeptnm.attribute("ref"), getUserInfo("dutplcenm")); // 시행부서명
  42. var curdate = getCurrentDate();
  43. var cvtdate = curdate.toDate("YYYYMMDD");
  44. model.setValue(ipt_prcpdd.attribute("ref") , curdate);
  45. model.setValue(ipt_prcpdd2.attribute("ref"), curdate);
  46. misfComboComCdList("R0111",cmb_purcflag,"Y"); // 구매구분
  47. if (vProgramCls == "SMRSD02200") { // SMRSD02200:청구부서 집계내역, SMRSD02201:처방성물품사용현황조회
  48. //misfComboComCdList("Z0007",cmb_instcd);
  49. // 수탁물품 조회 그리드 초기화
  50. misfGridInit(grd_prcpdatalist);
  51. misfGridInit(grd_tranlist);
  52. model.setValue(ipt_fmreqdd_search.attribute("ref") , cvtdate.getAddDate(-15,"D").getDateFormat("YYYYMMDD"));
  53. model.setValue(ipt_toreqdd_search.attribute("ref") , curdate);
  54. model.setValue(ipt_frtrandd_search.attribute("ref") , curdate);
  55. model.setValue(ipt_totrandd_search.attribute("ref") , curdate)
  56. misfComboComCdList("R0093",cmb_reqprid ,"Y"); // 청구주기
  57. misfComboComCdList("R0111",cmb_purcflag,"Y"); // 구매구분
  58. model.removeNodeset("/root/common/tmp/purcflag");
  59. model.makeNode("/root/common/tmp/purcflag");
  60. copyNodesetType("/root/common/tmp/purcflag","/root/init/cmb_purcflag/comcodelist","replace", model, model);
  61. //rszfReqFlagComboComCdList(getUserInfo("userid"),cmb_reqflag,"N",getUserInfo("dutplceinstcd"),"Y");
  62. // [2008.07.24] 청구구분의 권한을 사용자 권한으로 변경 -> 각 처방 발생 부서에서 조회 할 수 있는 프로그램을 분리하여
  63. // 이 프로그램은 구매쪽에서만 사용하기에 사용자 권한으로 변경 처리
  64. // rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),getUserInfo("userid"),"1","S" ); // preqpgmgubun : '1' :구매재고
  65. // 사용자별 청구구분 설정
  66. // [2010.08.26]AS-IS 코드 TO_BE 코드 전환을 위한 물품구분 변경 (goodflag= B) => (goodflag= BC)
  67. // [2010.10.13] (goodflag= BC) => (청구구분 하드코딩= B)
  68. rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),getUserInfo("userid"),"%","B");
  69. cmb_reqflag.refresh();
  70. // model.setValue(ipt_reqdeptcd.attribute("ref"), getUserInfo("dutplcecd"));
  71. // model.setValue(ipt_reqdeptnm.attribute("ref"), getUserInfo("dutplcenm"));
  72. model.setValue(TreeSendPath+"/instcd" , getUserInfo("dutplceinstcd")); // 기관코드
  73. model.setValue(TreeSendPath+"/instcdnm", getUserInfo("dutplceinstnm")); // 기관코드명
  74. curdate = getCurrentDate();
  75. cvtdate = curdate.toDate("YYYYMMDD");
  76. //model.setValue(ipt_reqfrdd.attribute("ref") , cvtdate.getAddDate(-1,"D").getDateFormat("YYYYMMDD")); // 청구일자 FROM
  77. model.setValue(ipt_reqfrdd.attribute("ref") , cvtdate.getDateFormat("YYYYMMDD"));
  78. model.setValue(ipt_reqtodd.attribute("ref") , cvtdate.getDateFormat("YYYYMMDD")); // 청구일자 TO
  79. cmb_reqflag.select(0); //청구구분
  80. cmb_reqflag_tree.select(0); //청구구분
  81. cmb_reqflag_search.select(0); //청구구분
  82. model.setValue("/root/send/searchgood/reqflag", cmb_reqflag.value);
  83. rbo_deliveprcsflag.select(0); //불출상태
  84. /***********************************************
  85. * 물품 처방집계에서 사용하는 초기화 구문
  86. ***********************************************/
  87. misfComboComCdList("R0093",cmb_reqpridflag); // 물품 처방집계의 청구주기
  88. // 물품 처방 집계시 사용할 청구구분 -> 상위 조회조건인 cmb_reqflag 의 노드를 copy 해서 사용하므로
  89. // 상위의 데이터 변경시 지정하지 않은 데이터 발생할 수 있다.
  90. // 상위 조회 조건이 다를 경우 -사용자별 청구구분 설정- rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),getUserInfo("userid"),"%","B");
  91. // misfComboCopyItemSet(cmb_reqflag, "", cmb_prcpsumreqflag, "" );
  92. // misfComboCopyItemSet(cmb_reqflag, "", cmb_reqflag_tree, "" );
  93. // 물품 처방집계시 집계부서 설정
  94. //model.setValue(ipt_deptcd.attribute("ref") , getUserInfo("dutplcecd"));
  95. //model.setValue(ipt_deptnm.attribute("ref") , getUserInfo("dutplcenm"));
  96. model.setValue(ipt_deptcd.attribute("ref") , "4020334000"); // 집계부서
  97. model.setValue(ipt_deptnm.attribute("ref") , "물류파트" ); // 집계부서명
  98. // 집계구분
  99. rbo_ioflag.selected = 0;
  100. // 처방 기간( from ~ to dd) , 집계일자 설정
  101. model.setValue(ipt_fromrgstdd.attribute("ref") , cvtdate.getAddDate(-1,"D").getDateFormat("YYYYMMDD"));
  102. model.setValue(ipt_torgstdd.attribute("ref") , cvtdate.getAddDate(0,"D").getDateFormat("YYYYMMDD"));
  103. model.setValue(ipt_acptdd.attribute("ref") , curdate);
  104. cmb_prcpsumreqflag.select(0);
  105. misfMsterDetailSet(grd_goodreq ,null , "TRRSD02201" ,"N");
  106. // misfMsterDetailSet(grd_orderlist ,grd_goodreq, "TRRSD02202" ,"N");
  107. }
  108. // fDataSearchTree();
  109. // misfMsterDetailSet(grd_searchgood,null, "TRRSD02203" ,"N");
  110. model.refresh();
  111. }
  112. function fDataSearchTree() {
  113. // if (fCheckRetrieveData(false) == false) return;
  114. misfGridInit(grd_searchgood);
  115. submit("TRRSD02205");
  116. trv_setcode.rebuild();
  117. }
  118. // 처방전달물품내역조회
  119. function fDataSearchDetail(pIdx, jobflag)
  120. {
  121. var rPath = "/root/send/SearchTree";
  122. var dPath = "/root/send/searchgood";
  123. var tPath = "/root/main/PrcpGoodTrees/TreeList";
  124. var vCaption = " 처방전달물품";
  125. // if (fCheckRetrieveData(false) == false)return; // 입력항목 Check
  126. var Idx = pIdx + 1;
  127. var sDepth = model.getValue(tPath +"["+Idx+"]/depth" );
  128. var vCodeCd = model.getValue(tPath +"["+Idx+"]/codecd" );
  129. var vCodeNm = model.getValue(tPath +"["+Idx+"]/codenm" );
  130. var vBaseCd = model.getValue(tPath +"["+Idx+"]/basecode");
  131. var Tree2 = trv_setcode.item(pIdx);
  132. cpt_disp.value = "";
  133. cpt_disp.refresh();
  134. misfGridInit(grd_searchgood);
  135. if (vCodeCd == "") return;
  136. model.setValue(dPath + "/instcd" , model.getValue(rPath + "/instcd" )); // 01 기관코드
  137. model.setValue(dPath + "/prcpdd" , model.getValue(rPath + "/prcpdd" )); // 02 처방일자
  138. model.setValue(dPath + "/prcpdd2" , model.getValue(rPath + "/prcpdd2" )); // 03 처방일자
  139. model.setValue(dPath + "/sumflag" , model.getValue(rPath + "/sumflag" )); // 04 집계여부
  140. model.setValue(dPath + "/reqflag" , model.getValue(rPath + "/reqflag" )); // 05 청구구분
  141. model.setValue(dPath + "/reqdeptcd" , "" ); // 06 처방부서
  142. model.setValue(dPath + "/reqprid" , model.getValue(rPath + "/reqprid" )); // 07 청구주기
  143. model.setValue(dPath + "/prcpdeptcd" , "" ); // 08 시행부서
  144. model.setValue(dPath + "/goodcd" , model.getValue(rPath + "/goodcd" )); // 09 물품코드
  145. model.setValue(dPath + "/ioflag" , model.getValue(rPath + "/ioflag" )); // 10 입외구분
  146. model.setValue(dPath + "/deptgr" , "" ); // 11 부서그룹
  147. model.setValue(dPath + "/pid" , model.getValue(rPath + "/pid" )); // 12 환자번호
  148. model.setValue(dPath + "/patnm" , model.getValue(rPath + "/patnm" )); // 13 환자명
  149. model.setValue(dPath + "/purcflag" , model.getValue(rPath + "/purcflag" )); // 14 구매구분
  150. model.setValue(dPath + "/prodcmpynm" , model.getValue(rPath + "/prodcmpynm" )); // 15 제조회사명
  151. model.setValue(dPath + "/suplplcecdnm", model.getValue(rPath + "/suplplcecdnm" )); // 16 주거래처명
  152. model.setValue(dPath + "/suppcustnm" , model.getValue(rPath + "/suppcustnm" )); // 17 보조거래처명
  153. model.setValue(dPath + "/prntyn" , model.getValue(rPath + "/prntyn" )); // 18 출력여부
  154. if (jobflag == "D"){
  155. model.setValue(dPath + "/deliveyn" , model.getValue(rPath + "/deliveyn" )); // 19 출력여부
  156. }
  157. // 선불출 조회조건 추가 이창록
  158. model.makeValue(dPath + "/querycls" , model.getValue("/root/send/SearchTree/querycls")); // 20 라디오박스 선불출코드
  159. // 응급,CCD제외조건 추가
  160. //model.setValue(dPath + "/erprcpflag" , model.getValue(rPath + "/erprcpflag" )); // 21 응급여부
  161. //model.setValue(dPath + "/prcpinptflag", model.getValue(rPath + "/prcpinptflag" )); // 22 CCD제외
  162. var vCls = parseInt(rdo_viewcls.value+sDepth);
  163. switch(vCls) {
  164. case 01 : vCaption = " :: 전체" ;
  165. break;
  166. case 02 :
  167. model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  168. vCaption = "시행부서 : "+vCodeCd + " - " + vCodeNm;
  169. // grd_goodreq.colwidth(3) = "74";
  170. break;
  171. case 11 : model.setValue(dPath + "/reqdeptcd" , vCodeCd);
  172. vCaption = "처방부서 : "+ vCodeCd + " - " + vCodeNm;
  173. // grd_goodreq.colwidth(3) = "74";
  174. break;
  175. case 12 : model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  176. vCode = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codecd" );
  177. vName = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codenm" );
  178. model.setValue(dPath + "/reqdeptcd" , vCode );
  179. vCaption = "처방부서 : "+vCode + " - " + vName + " >> 시행부서 : "+vCodeCd+ " - "+vCodeNm;
  180. // grd_goodreq.colwidth(3) = "0";
  181. break;
  182. case 21 : model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  183. vCaption = "시행부서 : "+vCodeCd + " - " + vCodeNm;
  184. // grd_goodreq.colwidth(3) = "74";
  185. break;
  186. case 22 : model.setValue(dPath + "/reqdeptcd" , vCodeCd);
  187. vCode = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codecd" );
  188. vName = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codenm" );
  189. model.setValue(dPath + "/prcpdeptcd" , vCode );
  190. vCaption = "시행부서 : "+vCode + " - " + vName + " >> 처방부서 : "+vCodeCd+ " - "+vCodeNm ;
  191. break;
  192. case 31 : model.setValue(dPath + "/prcpdeptcd" , vCodeCd );
  193. vCaption = "시행부서 : "+vCodeCd + " - " + vCodeNm;
  194. // grd_goodreq.colwidth(3) = "74";
  195. break;
  196. case 32 : model.setValue(dPath + "/goodcd" , vCodeCd);
  197. vCode = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codecd" );
  198. vName = model.getValue(tPath +"["+(Tree2.parentindex + 1)+"]/codenm" );
  199. model.setValue(dPath + "/prcpdeptcd" , vCode );
  200. vCaption = "시행부서 : "+vCode + " - " + vName + " >> 물품코드 : "+vCodeCd+ " - "+vCodeNm ;
  201. }
  202. //
  203. cpt_disp.value = vCaption; // + " 처방전달물품";
  204. submit("TRRSD02203");
  205. fGrdiDataValid();
  206. cpt_disp.refresh();
  207. }
  208. // <group id="grp_main" style="left:350px; top:8px; width:835px; height:747px; ">
  209. // <line id="lin_main" class="line_1" style="x1:0px; y1:20px; x2:835px; y2:20px; "/>
  210. // <button id="btn_excel" class="btn5_letter3" style="left:778px; top:0px; width:53px; height:19px; ">
  211. // <group id="grp_main" style="left:0px; top:8px; width:1192px; height:747px; ">
  212. // <line id="lin_main" class="line_1" style="x1:0px; y1:20px; x2:1192px; y2:20px; "/>
  213. // <button id="btn_excel" class="btn5_letter3" style="left:1135px; top:0px; width:53px; height:19px; ">
  214. // 처방전달물품내역
  215. function fDataPartToggle(pCls) {
  216. if (pCls =="0") { // Key 조회
  217. // 메인 Grup
  218. grp_main.attribute("left" ) = "350px";
  219. // grp_main.attribute("top" ) = "8px" ;
  220. grp_main.attribute("width" ) = "835px";
  221. // grp_main.attribute("height" ) = "747px";
  222. btn_excel2.attribute("left" ) = "778px";
  223. lin_main.attribute("x2" ) = "835px";
  224. grd_searchgood.attribute("width") = "835px";
  225. if (vProgramCls == "SMRSD02203") {
  226. btn_save.attribute("left" ) = "715px";
  227. }
  228. } else { //
  229. // 메인 Grup
  230. grp_main.attribute("left" ) = "0px" ;
  231. //grp_main.attribute("top" ) = "8px" ;
  232. grp_main.attribute("width" ) = "1192px";
  233. //grp_main.attribute("height" ) = "747px" ;
  234. btn_excel2.attribute("left" ) = "1135px";
  235. lin_main.attribute("x2" ) = "1192px";
  236. grd_searchgood.attribute("width") = "1192px";
  237. if (vProgramCls == "SMRSD02203") {
  238. btn_save.attribute("left" ) = "1072px";
  239. }
  240. }
  241. grp_main.refresh();
  242. }
  243. function fCheckRetrieveData()
  244. {
  245. if(model.getValue(opt_instcd.attribute("ref")).length== 0 ) {
  246. model.setFocus("opt_instcd");
  247. return false;
  248. }
  249. //
  250. if(model.getValue(ipt_reqfrdd.attribute("ref")).length== 0 )
  251. {
  252. model.setFocus("ipt_reqfrdd");
  253. return false;
  254. }
  255. //
  256. if(model.getValue(ipt_reqtodd.attribute("ref")).length== 0 )
  257. {
  258. model.setFocus("ipt_reqtodd");
  259. return false;
  260. }
  261. return true;
  262. }
  263. // 조회 결과 Count Setting
  264. function fAfterRetrieve() {
  265. // case 1 count
  266. model.setValue(opt_goodreqcnt.attribute("ref"),(grd_goodreq.rows-grd_goodreq.fixedRows));
  267. // case 2 count
  268. // model.setValue(opt_searchgoodcnt.attribute("ref"),(grd_searchgood.rows-grd_searchgood.fixedRows));
  269. model.refresh();
  270. }
  271. /***********************************************************
  272. * 물품 처방 집계에서 사용한 Script
  273. ************************************************************/
  274. function fCheckValue() {
  275. if(!isRequiredControls("cmb_prcpsumreqflag")) {
  276. ipt_goodcd.value = '';
  277. ipt_goodnm.value = '';
  278. return true;
  279. }
  280. if(!isRequiredControls("ipt_orddeptcd")) {
  281. ipt_goodcd.value = '';
  282. ipt_goodnm.value = '';
  283. return true;
  284. }
  285. if(!isRequiredControls("ipt_orddeptnm")) {
  286. ipt_goodcd.value = '';
  287. ipt_goodnm.value = '';
  288. return true;
  289. }
  290. return false;
  291. }
  292. function fCheckSaveData() {
  293. if(!isRequiredControls("ipt_deptcd" )) return false;
  294. if(!isRequiredControls("ipt_fromrgstdd" )) return false;
  295. if(!isRequiredControls("ipt_torgstdd" )) return false;
  296. if(!isRequiredControls("ipt_acptdd" )) return false;
  297. if(!isRequiredControls("cmb_prcpsumreqflag")) return false;
  298. if(!isRequiredControls("cmb_reqpridflag" )) return false;
  299. }
  300. function fClearControl() {
  301. if((ipt_orddeptcd.value =='') || (ipt_orddeptnm.value == '')) {
  302. ipt_goodcd.value = '';
  303. ipt_goodnm.value = '';
  304. }
  305. }
  306. // Grid의 데이터를 확인하여 오류 데이터시 색상 변경
  307. // 물품Master의 All size && 집계 여부시 색상변경
  308. function fGrdiDataValid() {
  309. if (grd_searchgood.rows - grd_searchgood.fixedRows <= 0 ) return;
  310. //
  311. for(cnt = grd_searchgood.fixedRows; cnt< grd_searchgood.rows; cnt++) {
  312. // All SIze 물품이면서 Size 지정이 되지 않고 내려온 처방
  313. if (grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("allsizeyn" )) == "Y" &&
  314. grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("allsizespecid")) == "-" ) {
  315. grd_searchgood.cellstyle("background-color", cnt, grd_searchgood.colRef("rgstdd"), cnt, grd_searchgood.colRef("totqty")) = "yellow";
  316. grd_searchgood.cellstyle("color" , cnt, grd_searchgood.colRef("rgstdd"), cnt, grd_searchgood.colRef("totqty")) = "red";
  317. // grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("goodspec") ) = "All Size 미지정";
  318. }
  319. // 처방 집계 여부
  320. if (grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("sumflag"))=="Y" ) {
  321. grd_searchgood.cellstyle("background-color", cnt, grd_searchgood.colRef("sumflagnm"), cnt, grd_searchgood.colRef("sumflagnm") ) = "green";
  322. } else{
  323. grd_searchgood.cellstyle("background-color", cnt, grd_searchgood.colRef("sumflagnm"), cnt, grd_searchgood.colRef("sumflagnm") ) = "pink";
  324. }
  325. // 선불출서 출력 여부
  326. if (grd_searchgood.valueMatrix( cnt, grd_searchgood.colRef("prntyn"))=="Y" ) {
  327. grd_searchgood.cellstyle("background-color", cnt, grd_searchgood.colRef("prntynnm"), cnt, grd_searchgood.colRef("prntynnm") ) = "green";
  328. } else{
  329. grd_searchgood.cellstyle("background-color", cnt, grd_searchgood.colRef("prntynnm"), cnt, grd_searchgood.colRef("prntynnm") ) = "pink";
  330. }
  331. if (model.getValue(grd_searchgood.nodeset + "[" + cnt + "]/allsizeyn") == "Y" ) {
  332. grd_searchgood.cellstyle("background-color", cnt, 4) = "#FFFF00";
  333. //if (model.getValue(grd_searchgood.nodeset + "[" + cnt + "]/allsizespecid") == "-" ) {
  334. // grd_searchgood.colAttribute ( 1, "disabled" ) = true;
  335. // grd_searchgood.coldisabled(grd_searchgood.colRef("beforqty")) = true;
  336. //}
  337. //} else {
  338. // grd_reqsetlist.cellstyle("background-color", j, 5) = "transparent";
  339. }
  340. }
  341. grd_searchgood.refresh();
  342. }
  343. // 부서코드 읽어오기...
  344. function fDeptValidationCheck(pData1, pData2, pCodeName) {
  345. if (pData1.value.length == 0) {
  346. pData2.value = "";
  347. } else {
  348. rszfValidationCheck("TRRPZ00201", "deptcodelist", "refcond,deptnm","deptnm," + pData1.value,"", pCodeName, pData1, "SPRPZ00200", "","");
  349. }
  350. model.refresh();
  351. }
  352. // 선불출수량 Check
  353. function fBeforQtyOnChange(pRow, pCls, jobflag) {
  354. var tQty = 0
  355. var sQty = 0
  356. var oQty = 0
  357. var vGridPath = grd_searchgood.nodeset;
  358. var vSrt = (pCls == 1) ? pRow : grd_searchgood.fixedRows;
  359. var vEnd = (pCls == 1) ? pRow : grd_searchgood.Rows - 1 ;
  360. //
  361. for (var i = vSrt; i <= vEnd; i++) {
  362. tQty = parseFloat(model.getValue(vGridPath+"["+ i +"]/totqty" )); // 총수량
  363. sQty = parseFloat(model.getValue(vGridPath+"["+ i +"]/beforqty" )); // 선불출
  364. oQty = parseFloat(model.getValue(vGridPath+"["+ i +"]/beforqtyold")); // Old 선불출
  365. if (sQty != oQty) {
  366. if ((model.getValue(vGridPath+"["+ i +"]/allsizeyn" ) == "Y") &&
  367. (model.getValue(vGridPath+"["+ i +"]/allsizespecid") == "-") ) {
  368. messageBox(i + " 번째 물품은 All Size 미지정 불출" ,"E001");
  369. model.setValue(vGridPath+"["+ i +"]/beforqty" ,model.getValue(vGridPath+"["+ i +"]/beforqtyold")); // Old 선불출
  370. return false;
  371. }
  372. //
  373. if (tQty < sQty) {
  374. if (jobflag != "D") {
  375. messageBox(i + " 번째 물품 처방 총수량 보다 선불출 수량이 클 수 " ,"I004");
  376. grd_searchgood.row = i;
  377. grd_searchgood.col = grd_searchgood.colRef("beforqty");
  378. grd_searchgood.editCell();
  379. return false;
  380. }
  381. }
  382. if (vProgramCls == "SMRSD02300"){
  383. //응급 처방의 경우 집계 체크를 안함.
  384. }else if (model.getValue(vGridPath+"["+ i +"]/sumflag") == "Y" && jobflag != "D") {
  385. messageBox(i + " 번째 집계 완료된 물품 선불출 " ,"E001");
  386. grd_searchgood.row = i;
  387. model.setValue(vGridPath+"["+ i +"]/beforqty" ,model.getValue(vGridPath+"["+ i +"]/beforqtyold")); // Old 선불출
  388. return false;
  389. }
  390. }
  391. }
  392. return true;
  393. }
  394. // --------------------------------------------------
  395. // 진료재료 처방 All Size 정산내역을 저장한다.
  396. // --------------------------------------------------
  397. function fBeforQtyDataSave(jobflag)
  398. {
  399. // 저장전 Data를 Check한다.
  400. if (fBeforQtyOnChange("", 2, jobflag) == false) return;
  401. var HeaderData = "instcd" + "▦" // 00 기관코드
  402. + "genrdd" + "▦" // 01 생성일자
  403. + "genrno" + "▦" // 02 생성번호
  404. + "genrseq" + "▦" // 03 생성순번
  405. + "beforqty" + "▩"; // 04 선불출수량
  406. var vData = "";
  407. var sPath = grd_searchgood.nodeset;
  408. var vGridRows = grd_searchgood.rows - 1;
  409. for (var i=1; i<= vGridRows; i++) {
  410. sQty = parseFloat(model.getValue(sPath+"["+ i +"]/beforqty" )); // 선불출
  411. oQty = parseFloat(model.getValue(sPath+"["+ i +"]/beforqtyold")); // Old 선불출
  412. if (sQty != oQty) {
  413. // alert("-=====>>"+i+"<====");
  414. vData += model.getValue(sPath + "[" + i + "]/instcd" ) + "▦" // 00 기관코드
  415. + model.getValue(sPath + "[" + i + "]/genrdd" ) + "▦" // 01 생성일자
  416. + model.getValue(sPath + "[" + i + "]/genrno" ) + "▦" // 02 생성번호
  417. + model.getValue(sPath + "[" + i + "]/genrseq" ) + "▦" // 03 생성순번
  418. + model.getValue(sPath + "[" + i + "]/beforqty" ) + "▩"; // 04 선불출수량
  419. }
  420. }
  421. if (vData == "") {
  422. alert("수정된 자료가 없습니다!!");
  423. return;
  424. }
  425. //
  426. model.removenode("/root/send/save" ); //
  427. model.makeValue("/root/send/save/rsihopmabefore", HeaderData + vData); // 물품규격내역
  428. submit("TXRSD02202");
  429. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  430. {
  431. fDataSearchDetail(trv_setcode.focusIndex);
  432. }
  433. }
  434. // --------------------------------------------------
  435. // 보기 Option 선택
  436. // --------------------------------------------------
  437. function fViewPrcpDataClick(pFlag) {
  438. if (pFlag ) {
  439. } else {
  440. // misfGridInit(grd_prcpdatalist);
  441. // grp_view.refresh();
  442. grp_view.visible = pFlag;
  443. return;
  444. }
  445. //----------------------------
  446. // Title은 그냥 넘어간다.
  447. //----------------------------
  448. if (grd_goodreq.row < 1) {
  449. return;
  450. }
  451. //------------------------------------------
  452. // 조회된건이 Title은 그냥 넘어간다.
  453. //------------------------------------------
  454. if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd") =="") {
  455. return;
  456. }
  457. model.setValue("/root/send/reqprcp//instcd" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/instcd" )); // 기관코드
  458. model.setValue("/root/send/reqprcp//reqdd" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqdd" )); // 청구일자
  459. model.setValue("/root/send/reqprcp//goodcd" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" )); // 물품코드
  460. model.setValue("/root/send/reqprcp//reqdeptcd" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqdeptcd" )); // 청구부서
  461. model.setValue("/root/send/reqprcp//allsizespecid" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/allsizespecid")); // ALL SIZE ID
  462. // 물품구분이 가납일경우 처방일자로 조회 이창록 20091103
  463. model.makeValue("/root/send/reqprcp/purcflag" , model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/purcflag")); // 물품구분
  464. submit("TRRSD02210");
  465. grp_view.visible = pFlag;
  466. grp_view.refresh();
  467. }
  468. // --------------------------------------------------
  469. // 선불출서 출력 여부를 수정한다.
  470. // --------------------------------------------------
  471. function fPrntDataSave()
  472. {
  473. // 저장전 Data를 Check한다.
  474. var HeaderData = "instcd" + "▦" // 01 기관코드
  475. + "genrdd" + "▦" // 02 생성일자
  476. + "genrno" + "▦" // 03 생성번호
  477. + "genrseq" + "▩"; // 04 생성순번
  478. var vData = "";
  479. var nodeList = instance1.selectNodes(grd_searchgood.nodeset + "[beforqty!=0 and prntyn!='Y']");
  480. if(nodeList == null || nodeList.length < 1) return;
  481. for (var i=0; i<nodeList.length; i++) {
  482. var selNode = nodeList.item(i);
  483. vData += selNode.selectSingleNode("instcd" ).value + "▦" // 01 기관코드
  484. + selNode.selectSingleNode("genrdd" ).value + "▦" // 02 생성일자
  485. + selNode.selectSingleNode("genrno" ).value + "▦" // 03 생성번호
  486. + selNode.selectSingleNode("genrseq").value + "▩"; // 04 생성순번
  487. }
  488. if(vData != "") {
  489. model.removenode("/root/send/save" ); //
  490. model.makeValue("/root/send/save/prntinfo", HeaderData + vData); // 선불출 출력 여부
  491. submit("TXRSD02203");
  492. }
  493. }
  494. /* ------------------------------------------------- */
  495. /* ------End Of List ------------------------------- */
  496. /* -------------------------------------------------- */