SMMNP05500.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. /* ---------------------------------------------------------------------
  2. 가납물품업체전송(SMMNP05500.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By kim bo sung
  6. : 2007.09.19
  7. ---------------------------------------------------------------------- */
  8. var xPathData = "/root/main/mnphccolinfo/mnphccollist" ; //
  9. var xSendReqData = "/root/send/reqdata"; //보내는값
  10. var xSendSaveData = "/root/send/savedata"; //받은 리스트 갯수값
  11. var xSendSumData = "/root/send/sumdata"; //보내는값
  12. var xSendData = "/root/send/senddata"; //확정처방내역에 전송여부 업데이트를 위한 값
  13. var xCondData = "/root/main/cond"; //조건항목들
  14. var xErrMsg = "/root/properties/error/msg";
  15. var xTempData = "/root/temp";
  16. var xInitData = "/root/init";
  17. // --------------------------------------------------
  18. // 화면 초기화
  19. // --------------------------------------------------
  20. function fInit() {
  21. model.removenode("/root/main/mnphccolinfo/mnphccollist");
  22. var pGrd = grd_mnphccollist;
  23. var Nowdt = getCurrentDate(); //화면 open 시 일자 자동지정
  24. model.setValue(xCondData+"/opcnfmfrdd","20100701");
  25. model.setValue(xCondData+"/opcnfmtodd","20100701");
  26. pGrd.fixedcellcheckbox(0,19) = true; //그리드 헤더에 체크버튼 추가
  27. model.removenode(xPathData);
  28. submit("TRMNP03004", false) // 수술실(Rosette) 가져오기
  29. model.makeValue("/root/send/opcnfmdd", Nowdt);
  30. model.makeValue("/root/send/rosette", model.getValue("/root/main/cond/oprosette"));
  31. submit("TRMNP03002", false); // 수술실코드 가져오기
  32. model.removenode("/root/send");
  33. model.makeNode("/root/send/reqdata");
  34. model.copyNode("/root/send/reqdata", "/root/main/cond");
  35. submit("TRMNP04404", false);
  36. submit("TRMNP05502", false); //거래처 조회
  37. model.removenode("/root/send");
  38. model.makeValue("/root/send/flag" , "X" );
  39. model.makeValue("/root/send/searchitem", "XX" );
  40. model.makeValue("/root/send/deptflag" , "011" );
  41. submit("TRMNP00107");
  42. addComboItem("cmb_rosette", "전 체", "", "above" );
  43. addComboItem("cmb_oproomcd", "전 체", "", "above" );
  44. addComboItem("cmb_perfdeptlist", "전 체", "", "above" );
  45. addComboItem("cmb_drlist", "전 체", "", "above" );
  46. addComboItem("cmb_lrg", "전 체", "", "above" );
  47. }
  48. /* --------------------------------------------------*/
  49. /* type : function */
  50. /* access : public */
  51. /* desc : 콤보아이템 제거 */
  52. /* param : */
  53. /* return : */
  54. /* --------------------------------------------------*/
  55. //function removeComboItem( comboID ) {
  56. // var comboObj = document.all.item(comboID);
  57. // var comboItemNodeSet = comboObj.choices.itemset.attribute("nodeset");
  58. // model.removenode(comboItemNodeSet + "[1]");//CCR
  59. // model.removenode(comboItemNodeSet + "[1]");//C-C(Clean-Zone)
  60. // model.removenode(comboItemNodeSet + "[1]");//C-O(OR창고)
  61. // model.refresh();
  62. //}
  63. // --------------------------------------------------
  64. // 그리드에서 컬럼명으로 컬럼idx 찾기
  65. // --------------------------------------------------
  66. function fGridfindColIdx(pGrd,colNm) {
  67. var iCols = pGrd.Cols;
  68. var colFindIdx=1;
  69. for( var col = 0; col < iCols; col++ ) {
  70. if (pGrd.colAttribute(col,"ref") == colNm) {
  71. colFindIdx = col;
  72. break;
  73. }
  74. }
  75. return colFindIdx;
  76. }
  77. // --------------------------------------------------
  78. // 그리드 조회
  79. // --------------------------------------------------
  80. function fList_Read() {
  81. model.removenode("/root/send");
  82. model.makeNode("/root/send/reqdata");
  83. model.copyNode("/root/send/reqdata", "/root/main/cond");
  84. submit("TRMNP05501");
  85. }
  86. //01. rid : 레포트명 02. dataType : 연계방법 03. paramsXPath : 매개변수필드 XPath 04. submitId : SubmitID 05. print : 출력여부 06. printDialog : 인쇄 창 보임 여부 07. fileType : 저장타입 08. fileName : 파일명
  87. //09. fileDialog : 파일 저장 창 보임여부 10. closeYn : 미리보기창닫기여부 11. monNo : 모니터 번호 12. parentObjId : 부모객체명 13. printPaperBin : 트레이번호 14. userService : 데이터 소스
  88. //15. showButton : 툴바버튼보임여부 16. printCount : 프린트장수 17. zoomRate : 미리보기뷰어 비율 18. printOption : 출력시 선택 옵션 19. dataXPath : 데이터 XPath 20. mainDataXPath : 메인리포트 반복XPath 21. subDataXPath : 서브리포트1 반복Xpath
  89. var SUM_FILE_DIR = "C:\\report";
  90. // 쓰기 할 디렉토리
  91. var WRITE_DIR = "C:\\Temp";
  92. // --------------------------------------------------
  93. // 전송
  94. // --------------------------------------------------
  95. function fSave() {
  96. var chkflag, pid, oldpid="", pathnm, oprsrvno, cartgubn, goodcd, allsizespecid, ordseq, msgkey, custnm, prcpdd, patnm, perfabbr, perfidnm, sendtel, usersendtm;
  97. var cmt, sendmail, recvmail, title;
  98. var sendqty, fileName="", tmpFileName="";
  99. var fso = new ActiveXObject("Scripting.FileSystemObject");
  100. var cnt = 0, idx = 0;
  101. var sendlist = "m▦oprsrvno▦ordseq▦goodcd▦allsizespecid▦cartgubn▦sendqty▦sumflag▦cmt";
  102. var maillist = "custnm▦filename▦sendmail▦recvmail▦filetype▦title";
  103. var tmplist = "custnm▦filename▦sendmail▦recvmail▦filetype▦title";
  104. for(var i = 1; i <= grd_mnphccollist.rows; i++) {
  105. if( model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/chkflag") == "true" ) {
  106. cnt++;
  107. }
  108. }
  109. for(var i = 1; i <= grd_mnphccollist.rows; i++) {
  110. chkflag = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/chkflag");
  111. pid = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/pid");
  112. oprsrvno = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/oprsrvno");
  113. cartgubn = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/cartgubn");
  114. goodcd = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/goodcd");
  115. allsizespecid = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/allsizespecid");
  116. ordseq = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/ordseq");
  117. cmt = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/memo");
  118. sendqty = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/prcpqty");
  119. sumflag = model.getValue("/root/main/cond/searchflag");
  120. custnm = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/custnm");
  121. prcpdd = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/prcptm").substr(0, 10);
  122. patnm = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/patnm");
  123. perfabbr = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/perfdeptabbr");
  124. perfidnm = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/perfidnm");
  125. sendtel = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/sendtel");
  126. sendmail = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/sendmail");
  127. recvmail = model.getValue("/root/main/mnphccolinfo/mnphccollist[" + i + "]/recvmail");
  128. memo = model.getValue("/root/main/cond/memo");
  129. usersendtm = getCurrentDateTime().substr(0, 4) + "-" +
  130. getCurrentDateTime().substr(4, 2) + "-" +
  131. getCurrentDateTime().substr(6, 2) + " " +
  132. getCurrentDateTime().substr(9, 2) + ":" +
  133. getCurrentDateTime().substr(11, 2);
  134. if( chkflag == "true" ) {
  135. if( sendmail == ""|| sendmail == "undefined" ) {
  136. messageBox("거래처 메일이 없으면 전송하실 수 없습니다.!", "E000");
  137. return;
  138. }
  139. //if( pid != oldpid ) {
  140. // if( (i > 1)&&(cnt > 1) ) {//환자가 변경되면 저장 후 인스턴스 초기화
  141. // fileName = getUserInfo("dutplceinstnm") + " 가납사용내역" + "(" + getCurrentDateTime().substr(0, 8) + ").xls";
  142. // idx = 0;
  143. // tmpFileName = "C:\\report\\" + fileName;
  144. // alert(fso.FileExists(tmpFileName));
  145. // alert(tmpFileName);
  146. // while(fso.FileExists(tmpFileName)) {
  147. // fileName = getUserInfo("dutplceinstnm") + " 가납사용내역" + "(" + getCurrentDateTime().substr(0, 8) + ")_" + (idx+1) + ".xls";
  148. // tmpFileName = "C:\\report\\" + fileName;
  149. // idx++;
  150. // }
  151. //
  152. // title = getUserInfo("dutplceinstnm") + " 가납사용내역";
  153. // exeReportPreview("RPMNP05500", "XMLSTR", "", "", "", "", "xls", fileName, "", "true", "", "", "", "", "emr");
  154. // model.removenode("/root/temp");
  155. // model.makeNode("/root/temp/report");
  156. // maillist = maillist + "▩" + custnm + "▦" + fileName + "▦" + sendmail + "▦" + recvmail + "▦" + "xls" + "▦" + title;
  157. // }
  158. //}else {//같은환자이면 인스턴스 추가
  159. //
  160. // pathnm = "/root/main/mnphccolinfo/mnphccollist[" + i + "]";
  161. // model.duplicate("/root/temp/report", pathnm);
  162. //
  163. // model.makeValue("/root/tmep/prodcmpyinfo/custnm", custnm);
  164. // model.makeValue("/root/tmep/prodcmpyinfo/prcpdd", prcpdd);
  165. // model.makeValue("/root/tmep/prodcmpyinfo/patinfo", patnm+"("+pid+")");
  166. // model.makeValue("/root/tmep/prodcmpyinfo/perfabbr", perfabbr);
  167. // model.makeValue("/root/tmep/prodcmpyinfo/perfidnm", perfidnm);
  168. // model.makeValue("/root/tmep/prodcmpyinfo/sendtel", sendtel);
  169. // model.makeValue("/root/tmep/prodcmpyinfo/usernm", getUserInfo("usernm"));
  170. // model.makeValue("/root/tmep/prodcmpyinfo/usersendtm", usersendtm);
  171. // model.makeValue("/root/tmep/prodcmpyinfo/memo", memo);
  172. //
  173. //}
  174. sendlist = sendlist + "▩" + "I" + "▦" + oprsrvno + "▦" + ordseq + "▦" + goodcd + "▦" + allsizespecid + "▦" + cartgubn + "▦" + sendqty + "▦" + sumflag + "▦" + cmt;
  175. if( cnt == 1 ) {
  176. alert("lll");
  177. pathnm = "/root/main/mnphccolinfo/mnphccollist[" + i + "]";
  178. model.duplicate("/root/temp/report", pathnm);
  179. model.makeValue("/root/tmep/prodcmpyinfo/custnm", custnm);
  180. model.makeValue("/root/tmep/prodcmpyinfo/prcpdd", prcpdd);
  181. model.makeValue("/root/tmep/prodcmpyinfo/patinfo", patnm+"("+pid+")");
  182. model.makeValue("/root/tmep/prodcmpyinfo/perfabbr", perfabbr);
  183. model.makeValue("/root/tmep/prodcmpyinfo/perfidnm", perfidnm);
  184. model.makeValue("/root/tmep/prodcmpyinfo/sendtel", sendtel);
  185. model.makeValue("/root/tmep/prodcmpyinfo/usernm", getUserInfo("usernm"));
  186. model.makeValue("/root/tmep/prodcmpyinfo/usersendtm", usersendtm);
  187. model.makeValue("/root/tmep/prodcmpyinfo/memo", memo);
  188. model.duplicate("/root/temp/report", "/root/tmep/prodcmpyinfo");
  189. fileName = getUserInfo("dutplceinstnm") + " 가납사용내역" + "(" + getCurrentDateTime().substr(0, 8) + ").xls";
  190. idx = 0;
  191. tmpFileName = "C:\\temp\\" + fileName;
  192. alert(fso.FileExists(tmpFileName));
  193. alert(tmpFileName);
  194. if (fso.FolderExists(WRITE_DIR) == false) {
  195. fso.CreateFolder(WRITE_DIR);
  196. }
  197. //fso.CopyFile(tmpFileName, WRITE_DIR, "false");
  198. while(fso.FileExists(tmpFileName)) {
  199. fileName = getUserInfo("dutplceinstnm") + " 가납사용내역" + "(" + getCurrentDateTime().substr(0, 8) + ")_" + (idx+1) + ".xls";
  200. tmpFileName = "C:\\report\\" + fileName;
  201. idx++;
  202. }
  203. title = getUserInfo("dutplceinstnm") + " 가납사용내역";
  204. //exeReportPreview("RPMNP05500", "XMLSTR");
  205. exeReportPreview("RPMNP05500", "XMLSTR", "", "", "", "", "xls", fileName, "", "true", "", "", "", "", "emr");
  206. maillist = maillist + "▩" + custnm + "▦" + fileName + "▦" + sendmail + "▦" + recvmail + "▦" + "xls" + "▦" + title;
  207. }
  208. }
  209. oldpid = pid;
  210. }
  211. if( cnt > 0 ) {
  212. model.removenode("/root/send");
  213. model.makeNode("/root/send/reqdata")
  214. model.copyNode("/root/send/reqdata", "/root/main/cond");
  215. model.makeValue("/root/send/savedata", sendlist);
  216. model.makeValue("/root/send/senddata", tmpFileName);
  217. submit("TXMNP05502");
  218. }
  219. }
  220. // --------------------------------------------------
  221. // SMS전송
  222. // --------------------------------------------------
  223. function fSendSMS() {
  224. var smslist = "custcd▦msg▦custtel▦recvtel▦instnm";
  225. var cnt = 0;
  226. var selIndex, chargetel, tmpTel;
  227. if( grd_custlist.row < 1 ) {
  228. return;
  229. }else {
  230. if( messageBox("SMS 전송을 하시겠습니까? ", "Q000") != 6 ) {
  231. alert("lll");
  232. group2.visible = "false";
  233. return;
  234. }
  235. for( var i = 0; i< grd_custlist.selectedRows; i++ ) {
  236. selIndex = grd_custlist.selectedRow(i);
  237. alert(selIndex);
  238. if( selIndex > 0 ) {
  239. chargetel = model.getValue("/root/init/custlist[" + selIndex + "]/chargetel").replace('-', '');
  240. if( chargetel.length < 10 ) { messageBox("전화번호를 확인해 주세요!", "E000"); return; }
  241. chargetel = chargetel.substring(0, 3);
  242. alert(chargetel);
  243. if( chargetel == "010"||chargetel == "011"||chargetel == "016"||chargetel == "017"||chargetel == "018"||chargetel == "019" ) {
  244. smslist = smslist + "▩" + model.getValue("/root/init/custlist[" + selIndex + "]/custcd")
  245. + "▦" + getUserInfo("dutplceinstnm") + "병원에서 " + model.getValue("/root/init/custlist[" + selIndex + "]/custnm") + "으로 가납 사용내역을 전송하였습니다."
  246. + "▦" + model.getValue("/root/init/custlist[" + selIndex + "]/chargetel").replace('-', '')
  247. + "▦" + model.getValue("/root/init/custlist[" + selIndex + "]/recvtel").replace('-', '')
  248. + "▦" + getUserInfo("dutplceinstnm");
  249. cnt++;
  250. }else {
  251. messageBox("휴대전화번호만 전송이 가능합니다.!", "E000");
  252. return;
  253. }
  254. }
  255. }
  256. }
  257. if( cnt > 0 ) {
  258. model.removenode("/root/send");
  259. model.makeValue("/root/send/savedata", smslist);
  260. if( submit("TXMNP05501") ) {
  261. messageBox("SMS를 전송하였습니다.!", "I0000");
  262. }else {
  263. messageBox("SMS 전송을 실패하였습니다.!", "I0000");
  264. }
  265. }
  266. group2.visible = "false";
  267. }
  268. /* ------------------------------------------------- */
  269. /* ------End Of List ------------------------------- */
  270. /* -------------------------------------------------- */