SMRSD02202.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. /* ---------------------------------------------------------------------
  2. SMRSD02202_처방 전달 물품 All Size 청구.xrw (SMRSD02202.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. var xAuth = !(checkAuth("X"));
  9. var pAuth = !(checkAuth("P"));
  10. //
  11. var DataRows = 0;
  12. var AllSizeRows = 0;
  13. var SizePath = "/root/main/CodeLists/codelist"; // All Size Grid
  14. var DataPath = "/root/main/list/searchgood/searchgoodlist"; // 처장전달 물품내역
  15. // --------------------------------------------------
  16. // Tree정보 가져오기
  17. // --------------------------------------------------
  18. function fInit() {
  19. // 화면 Control을 초기화한다
  20. fInitialize();
  21. return;
  22. }
  23. // --------------------------------------------------------------
  24. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  25. // --------------------------------------------------------------
  26. function fInitialize() {
  27. // 처방내역 그리드 초기화
  28. misfGridInit(grd_allsize);
  29. misfGridInit(grd_searchgood);
  30. misfGridInit(grd_rsihopmasum);
  31. model.setValue(opt_instcd.attribute("ref") , getUserInfo("dutplceinstcd"));
  32. model.setValue(opt_instcdnm.attribute("ref") , getUserInfo("dutplceinstnm"));
  33. model.setValue(ipt_prcpdeptcd.attribute("ref"), getUserInfo("dutplcecd"));
  34. model.setValue(ipt_prcpdeptnm.attribute("ref") , getUserInfo("dutplcenm"));
  35. // ----------------------------------
  36. // model.setValue(ipt_prcpdeptcd.attribute("ref"), '2370101000');
  37. // model.setValue(ipt_prcpdeptnm.attribute("ref") , '건진외래' );
  38. // ----------------------------------
  39. var curdate = getCurrentDate();
  40. var cvtdate = curdate.toDate("YYYYMMDD");
  41. model.setValue(ipt_prcpdd.attribute("ref") , curdate);
  42. model.setValue(ipt_prcpdd2.attribute("ref"), curdate);
  43. // AllCheck 구분
  44. grd_searchgood.fixedcellcheckbox(0,1) = true;
  45. model.refresh();
  46. }
  47. // 처방 전달 물품 All Size 청구 물품별 건수
  48. function fRsihopmaSumList() {
  49. if ((ipt_prcpdeptcd.value == "")||
  50. (ipt_prcpdeptnm.value == "") ) {
  51. alert("부서코드를 확인하십시요!!");
  52. return;
  53. }
  54. misfGridInit(grd_allsize);
  55. misfGridInit(grd_searchgood);
  56. misfGridInit(grd_rsihopmasum);
  57. opt_totqty.value = "0";
  58. opt_allsizeselcnt.value = "0";
  59. submit("TRRSD02206");
  60. }
  61. // --------------------------------------------------
  62. // All Size 읽어오는 함수
  63. // --------------------------------------------------
  64. function fAllSizeRead(pRow) {
  65. var rPath = "/root/send/SearchTree";
  66. var dPath = "/root/send/allsize";
  67. misfGridInit(grd_allsize);
  68. model.setValue("/root/init/goodreqcnt", grd_rsihopmasum.valueMatrix(pRow, grd_rsihopmasum.colRef("goodqty"))); // All Size 수량
  69. model.setValue(dPath+"/instcd" , model.getValue(rPath + "/instcd" ));
  70. model.setValue(dPath+"/rgstdd" , grd_rsihopmasum.valueMatrix(pRow, grd_rsihopmasum.colRef("rgstdd")));
  71. model.setValue(dPath+"/goodcd" , grd_rsihopmasum.valueMatrix(pRow, grd_rsihopmasum.colRef("goodcd")));
  72. model.setValue(dPath+"/prcpdeptcd" , grd_rsihopmasum.valueMatrix(pRow, grd_rsihopmasum.colRef("prcpdeptcd")));
  73. model.setValue(dPath+"/mainmngtdeptcd", grd_rsihopmasum.valueMatrix(pRow, grd_rsihopmasum.colRef("mainmngtdeptcd")));
  74. submit("TRRSD02207");
  75. grd_allsize.refresh();
  76. // 첫번째 Row 선택
  77. grd_allsize.row = 1;
  78. AllSizeRows = (grd_allsize.rows - grd_allsize.fixedrows) + 1;
  79. fAllSizeQtySum();
  80. }
  81. // 처방전달물품내역조회
  82. function fDataSearchDetail(pIdx)
  83. {
  84. var rPath = "/root/send/SearchTree";
  85. var dPath = "/root/send/searchgood";
  86. var tPath = "/root/main/RsihopmaSumLists/rsihopmasumlist";
  87. var Idx = pIdx; // + 1;
  88. var vGoodCd = model.getValue(tPath +"["+Idx+"]/goodcd" );
  89. misfGridInit(grd_searchgood);
  90. if (vGoodCd == "") return; // 선택물품이 없슴.
  91. model.setValue(dPath + "/instcd" , model.getValue(rPath + "/instcd" )); // 01 기관코드
  92. model.setValue(dPath + "/prcpdd" , model.getValue(tPath +"["+Idx+"]/rgstdd" )); // 02 처방일자
  93. model.setValue(dPath + "/prcpdd2" , model.getValue(tPath +"["+Idx+"]/rgstdd" )); // 03 처방일자
  94. model.setValue(dPath + "/sumflag" , "" ); // 04 집계여부
  95. model.setValue(dPath + "/reqflag" , "" ); // 05 청구구분
  96. model.setValue(dPath + "/reqdeptcd" , "" ); // 06 처방부서
  97. model.setValue(dPath + "/reqprid" , "" ); // 07 청구주기
  98. model.setValue(dPath + "/prcpdeptcd", model.getValue(tPath +"["+Idx+"]/prcpdeptcd")); // 08 시행부서
  99. model.setValue(dPath + "/goodcd" , model.getValue(tPath +"["+Idx+"]/goodcd" )); // 09 물품코드
  100. model.setValue(dPath + "/ioflag" , "" ); // 10 입외구분
  101. model.setValue(dPath + "/deptgr" , "" ); // 11 부서그룹
  102. submit("TRRSD02203");
  103. DataRows = (grd_searchgood.rows - grd_searchgood.fixedrows) + 1;
  104. }
  105. //
  106. // 해당 All Size를 Check하고 수량을 Sum한다.
  107. //
  108. function fAllSizeQtySum() {
  109. // 처장전달 물품내역
  110. var vRows = "/root/main/CodeLists/codelist"; // All Size Grid
  111. //선택 All Size
  112. var vSizeCnt = 0;
  113. var vAllSizeCnt = 0;
  114. bbt_tSave.disabled = false;
  115. cpt_remk.text = "";
  116. for (var i=1; i < AllSizeRows; i++) {
  117. vSizeCnt = parseFloat(model.getValue(vRows + "[" + i +"]/aftqty"));
  118. vAllSizeCnt += vSizeCnt;
  119. if (model.getValue(vRows + "[" + i +"]/sumflag")=="Y") {
  120. bbt_tSave.disabled = true;
  121. cpt_remk.text = " :: 이미 구매팀 집계 완료 되었습니다 !!";
  122. }
  123. }
  124. cpt_remk.refresh();
  125. opt_allsizeselcnt.value = vAllSizeCnt;
  126. opt_allsizeselcnt.refresh();
  127. }
  128. //
  129. // 해당 All Size를 Check하고 수량을 Sum한다.
  130. //
  131. function fAllSizeSelCheck() {
  132. fAllSizeGridClear(); // All Size 수량을 Clear 한다.
  133. // 처장전달 물품내역
  134. var vRows = DataRows;
  135. var vPath = DataPath; // 처장전달 물품내역
  136. var vRows = "/root/main/CodeLists/codelist"; // All Size Grid
  137. //선택 All Size
  138. var vAllSize = model.getValue(SizePath + "[" + grd_allsize.row +"]/allsizespecid");
  139. var AllSizeCnt = 0;
  140. var vAllSizeCnt = 0;
  141. var vSizeCnt1 = 0;
  142. var vSizeCnt2 = 0;
  143. for (var i=1; i < DataRows; i++) {
  144. if (model.getValue(DataPath + "[" + i +"]/chk") == "true") {
  145. vSizeCnt2 = parseFloat(model.getValue(DataPath + "[" + i +"]/totqty"));
  146. if (model.getValue(DataPath + "[" + i +"]/allsizespecid") == "-") {
  147. vAllSize = model.getValue(SizePath + "[" + grd_allsize.row +"]/allsizespecid" );
  148. vSizeCnt1 = parseFloat(model.getValue(SizePath + "[" + grd_allsize.row +"]/totqty"));
  149. vAllSizeCnt = vSizeCnt1 + vSizeCnt2;
  150. model.setValue(SizePath + "[" + grd_allsize.row +"]/totqty" , vAllSizeCnt);
  151. model.setValue(DataPath + "[" + i +"]/allsizespecid", vAllSize );
  152. } else {
  153. vAllSize = model.getValue(DataPath + "[" + i +"]/allsizespecid");
  154. vSizeCnt1 = parseFloat(model.getValue(SizePath + "[allsizespecid='" + vAllSize +"']/totqty"));
  155. vAllSizeCnt = vSizeCnt1 + vSizeCnt2;
  156. model.setValue(SizePath + "[allsizespecid='" + vAllSize +"']/totqty", vAllSizeCnt);
  157. }
  158. AllSizeCnt += vSizeCnt2;
  159. } else {
  160. if (model.getValue(DataPath + "[" + i +"]/allsizespecid") != "-") {
  161. model.setValue(DataPath + "[" + i +"]/allsizespecid" , "-" );
  162. }
  163. }
  164. }
  165. opt_allsizeselcnt.value = AllSizeCnt;
  166. opt_allsizeselcnt.refresh();
  167. grd_searchgood.refresh();
  168. grd_allsize.refresh();
  169. }
  170. // All Size 수량을 Clear 한다.
  171. function fAllSizeGridClear(){
  172. for (var i=1; i < AllSizeRows; i++) {
  173. model.setValue(SizePath + "[" + i +"]/totqty", 0);
  174. }
  175. grd_allsize.refresh();
  176. }
  177. // --------------------------------------------------
  178. // 진료재료 처방 All Size 정산내역을 저장한다.
  179. // --------------------------------------------------
  180. function fDataSave()
  181. {
  182. var cPath = "/root/init/CopyGoodList";
  183. var sPath = "/root/main/ExcelLists/ExcelList";
  184. var tPath = "/root/CopyData/CopyGoodLists/CopyGoodList";
  185. var mPath = "/root/init/CopySizeList";
  186. var aPath = "/root/CopyData/CopySizeLists/CopySizeList";
  187. var oPath = "/root/init/CopyMapList";
  188. var nPath = "/root/CopyData/CopyMapLists/CopyMapList";
  189. var vReqCnt = parseFloat(model.getValue("/root/init/goodreqcnt" )); // 대상 수량
  190. var vAllSizeCnt = parseFloat(model.getValue("/root/init/allsizeselcnt")); // 선택 수량
  191. if (vReqCnt != vAllSizeCnt) {
  192. messageBox("대상수량("+vReqCnt+")과 선택수량("+vAllSizeCnt+")이 일치하지 않아 저장 " ,"E001");
  193. return false;
  194. }
  195. var HeaderData = "prcpdd" + "▦" // 01 시행일자
  196. + "instcd" + "▦" // 02 기관코드
  197. + "prcpdeptcd" + "▦" // 03 시행부서
  198. + "goodcd" + "▦" // 04 물품코드
  199. + "allsizespecid" + "▦" // 05 All SizeID
  200. + "genrno" + "▦" // 06 생성순번
  201. + "mainmngtdeptcd" + "▦" // 07 주관리부서
  202. + "demdkey" + "▦" // 08 청구 NO
  203. + "sumflag" + "▦" // 09 집계여부
  204. + "totqty" + "▦" // 10 이전수량
  205. + "jobcls" + "▩"; // 11 작업구분
  206. var vData = "";
  207. var sPath = "/root/main/CodeLists/codelist";
  208. var vJobCls = "";
  209. for (var i=1; i<= AllSizeRows; i++) {
  210. vJobCls = "";
  211. if (model.getValue(sPath + "[" + i + "]/aftqty") == "0") {
  212. if (model.getValue(sPath + "[" + i + "]/befqty") != "0") {
  213. vJobCls = "D";
  214. }
  215. } else {
  216. if (model.getValue(sPath + "[" + i + "]/befqty") == "0") {
  217. vJobCls = "I";
  218. } else {
  219. if (model.getValue(sPath + "[" + i + "]/aftqty") !=
  220. model.getValue(sPath + "[" + i + "]/befqty") ) {
  221. vJobCls = "U";
  222. }
  223. }
  224. }
  225. //
  226. if (vJobCls != "") {
  227. vData += model.getValue(sPath + "[" + i + "]/prcpdd" ) + "▦" // 01 시행일자
  228. + model.getValue(sPath + "[" + i + "]/instcd" ) + "▦" // 02 기관코드
  229. + model.getValue(sPath + "[" + i + "]/prcpdeptcd" ) + "▦" // 03 시행부서
  230. + model.getValue(sPath + "[" + i + "]/goodcd" ) + "▦" // 04 물품코드
  231. + model.getValue(sPath + "[" + i + "]/allsizespecid" ) + "▦" // 05 All SizeID
  232. + model.getValue(sPath + "[" + i + "]/genrno" ) + "▦" // 06 생성순번
  233. + model.getValue(sPath + "[" + i + "]/mainmngtdeptcd" ) + "▦" // 07 주관리부서
  234. + "" + "▦" // 08 청구 NO
  235. + model.getValue(sPath + "[" + i + "]/sumflag" ) + "▦" // 09 집계여부
  236. + model.getValue(sPath + "[" + i + "]/aftqty" ) + "▦" // 10 조정수량
  237. + vJobCls + "▩"; // 11 작업구분
  238. }
  239. }
  240. if (vData == "") {
  241. alert("수정된 자료가 없습니다!!");
  242. return;
  243. }
  244. //
  245. model.removenode("/root/send/save" ); //
  246. model.makeValue("/root/send/save/rsihallsizelist", HeaderData + vData); // 물품규격내역
  247. submit("TXRSD02201");
  248. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  249. {
  250. fAllSizeRead(grd_rsihopmasum.row);
  251. grd_rsihopmasum.valueMatrix(grd_rsihopmasum.row, grd_rsihopmasum.colRef("sizeqty") ) = vAllSizeCnt; // All Size 수량
  252. grd_rsihopmasum.refresh();
  253. }
  254. }
  255. /* ------------------------------------------------- */
  256. /* ------End Of List ------------------------------- */
  257. /* -------------------------------------------------- */