SSMRC04100.js 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 의료정보 - 외부CD ( .xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.00
  6. - Author : 이환석
  7. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  8. **/
  9. /**
  10. * 로그인 한 사람의 ID와 이름으로 초기화
  11. **/
  12. function fInitialize() {
  13. ipt_empid.value = getUserInfo("userid");
  14. opt_hngnm.value = getUserInfo("usernm");
  15. model.refresh();
  16. }
  17. /**
  18. * 직원검색 PopUp
  19. **/
  20. function fPatPopUp() {
  21. setParameter("receive_empid_path", "/root/main/search/empid");
  22. setParameter("receive_empnm_path", "/root/main/search/hngnm");
  23. setParameter("search_term", model.getValue("/root/main/search/empid"));
  24. setParameter("search_condition", "empid");
  25. modal("SPCCM00400", 1,10, 10, "SPCCM00400", "/root/temp", "/root/send/data");
  26. }
  27. /**
  28. * EXCEL파일을 OPEN
  29. **/
  30. function fOpenFile() {
  31. var date = getCurrentDate().toDate("YYYYMMDD").getDateFormat("YYYY-MM-DD");
  32. var file = window.fileDialog("open", "|", false, "C:\\MAROTECH\\m-store\\CDManager\\Log\\SendList-검사별"+date, "", "Excel Files(*.xls)|*.xls");
  33. model.setValue("/root/init/filenm", file.substring(0));
  34. fPrntGrid();
  35. }
  36. /**
  37. * OPEN하여 읽어들인 EXCEL의 내용을 datagrid에 뿌려준다.
  38. **/
  39. function fPrntGrid(searchdate) {
  40. var fileName = model.getValue("root/init/filenm");
  41. var length = fileName.length;
  42. var fileDate = fileName.substring(length - 14, length -4).replace("-", "").replace("-", "");
  43. if(searchdate != null) {
  44. ipt_searchdate.value = searchdate;
  45. } else {
  46. ipt_searchdate.value = fileDate;
  47. }
  48. var fileValidate = fileName.substring(length - 26, length);
  49. if(model.getValue("root/init/filenm") == "") {
  50. return;
  51. }
  52. //파일 이름 output에 보여주기.
  53. opt_filenm.value = fileName.substring(fileName.length - 26, fileName.length);
  54. //엑셀파일 LOAD
  55. grd_hidden.loadExcel(fileName);
  56. grd_hidden.deleteItem(1);
  57. //실제 화면에 보이는 datagrid에 rootset을 설정한다.
  58. grd_sendlist.nodeset = "/root/main/sendlist";
  59. model.removeNodeset("root/result/data");
  60. model.removeNodeset("/root/result/rstlist/lastsendlist");
  61. for(var i = 1 ; i < grd_sendlist.rows ; i++) {
  62. model.makeValue("/root/main/sendlist[" + i + "]/trsmdd", ipt_searchdate.value);
  63. }
  64. //과 불러오기
  65. submit("TRMRC04101", false, "/root/main/sendlist", "/root/result/data");
  66. //model.removeNodeset("/root/itemset");
  67. for(var i = 1 ; i < grd_sendlist.rows ; i++) {
  68. var eIndex = 0;
  69. var listPid = model.getValue("/root/main/sendlist["+ i +"]/pid");
  70. if(model.getXPathValue("count(/root/result/data/orddept)") == 0) {
  71. var eleNode = instance1.createElement("lastsendlist");
  72. var selNode = instance1.selectSingleNode("/root/result/rstlist");
  73. model.setValue("/root/main/sendlist[" + i + "]/orddeptnm", "");
  74. model.copyNode(eleNode, "root/main/sendlist[" + i + "]");
  75. selNode.appendChild(eleNode);
  76. }
  77. for(var j = 1 ; j <= model.getXPathValue("count(/root/result/data/orddept)") ; j++) {
  78. var rstPid = model.getValue("/root/result/data/orddept[" + j + "]/pid");
  79. if(listPid == rstPid) {
  80. var eleNode = instance1.createElement("lastsendlist");
  81. var selNode = instance1.selectSingleNode("/root/result/rstlist");
  82. model.setValue("/root/main/sendlist[" + i + "]/orddeptcd", model.getValue("/root/result/data/orddept[" + j + "]/deptcd"));
  83. model.setValue("/root/main/sendlist[" + i + "]/orddeptnm", model.getValue("/root/result/data/orddept[" + j + "]/deptnm"));
  84. model.copyNode(eleNode, "root/main/sendlist[" + i + "]");
  85. selNode.appendChild(eleNode);
  86. eIndex++;
  87. }
  88. else {
  89. if(j == model.getXPathValue("count(/root/result/data/orddept)") && eIndex == 0) {
  90. var eleNode = instance1.createElement("lastsendlist");
  91. var selNode = instance1.selectSingleNode("/root/result/rstlist");
  92. model.setValue("/root/main/sendlist[" + i + "]/orddeptnm", "");
  93. model.copyNode(eleNode, "root/main/sendlist[" + i + "]");
  94. selNode.appendChild(eleNode);
  95. }
  96. }
  97. }
  98. }
  99. grd_sendlist.nodeset = "/root/result/rstlist/lastsendlist";
  100. submit("TRMRC04102", false, "/root/main/sendlist", "/root/temp/result");
  101. for(var i = 1 ; i < grd_sendlist.rows ; i++) {
  102. var pid = grd_sendlist.valueMatrix(i, grd_sendlist.colRef("pid"));
  103. var phodd = grd_sendlist.valueMatrix(i, grd_sendlist.colRef("phodd")).replace("-", "").replace("-", "");
  104. var photm = grd_sendlist.valueMatrix(i, grd_sendlist.colRef("photm")).replace(":", "").replace(":", "").getLeftPad(6, 0);
  105. var trsmtm = grd_sendlist.valueMatrix(i, grd_sendlist.colRef("trsmtm")).replace(":", "").replace(":", "").getLeftPad(6, 0);
  106. var orddeptnm = grd_sendlist.valueMatrix(i, grd_sendlist.colRef("orddeptnm"));
  107. var nodeList = instance1.selectNodes("/root/temp/result/result");
  108. //조회된 정보에서 리스트와 일치되는 data가 있으면 전송
  109. if(nodeList.length > 0 && orddeptnm != ""){
  110. for(var j = 1 ; j <= model.getXPathValue("count(/root/temp/result/result)") ; j++) {
  111. var rstPid = model.getValue("/root/temp/result/result[" + j + "]/pid");
  112. var rstPhodd = model.getValue("/root/temp/result/result[" + j + "]/phodd");
  113. var rstPhotm = model.getValue("/root/temp/result/result[" + j + "]/photm");
  114. var rstTrsmtm = model.getValue("/root/temp/result/result[" + j + "]/trsmtm");
  115. if(pid == rstPid && phodd == rstPhodd && photm == rstPhotm && trsmtm == rstTrsmtm) {
  116. grd_sendlist.valueMatrix(i, grd_sendlist.colRef("existyn")) = "전송";
  117. grd_sendlist.valueMatrix(i, grd_sendlist.colRef("orderflag")) = model.getValue("/root/temp/result/result[" + j + "]/orderflag");
  118. model.removeNode("/root/temp/result/result[" + j + "]");
  119. break;
  120. } else {
  121. grd_sendlist.valueMatrix(i, grd_sendlist.colRef("existyn")) = "미전송";
  122. }
  123. }
  124. }
  125. else{ //조회된 전송정보가 없으면 일괄 미전송
  126. grd_sendlist.valueMatrix(i, grd_sendlist.colRef("existyn")) = "미전송";
  127. }
  128. }
  129. //미전송 카운트
  130. opt_contnotrsm.text = instance1.selectNodes("/root/result/rstlist/lastsendlist[existyn='미전송']").length;
  131. model.refresh();
  132. }
  133. /**
  134. * Conversion 시작
  135. * Conversion시작 버튼을 눌렀을때
  136. * TIMER를 걸어 정해진 시간마다 선택한 파일을 읽는다.
  137. **/
  138. function fConversionStart() {
  139. if(model.getValue("/root/init/runflag") == 1) {
  140. messageBox("Conversion 동작 중", "E008");
  141. return;
  142. } else {
  143. model.setValue("/root/init/runflag", "1");
  144. var interval = model.getValue("root/init/timer");
  145. var fileMount = model.getValue("root/init/filenm");
  146. if(interval <= 0) {
  147. messageBox("Time이 0초인 상태로는 시작","E001");
  148. return;
  149. }
  150. if(fileMount == "") {
  151. messageBox("먼저 파일을", "C002");
  152. return;
  153. }
  154. opt_interval.value = interval;
  155. gCount = interval;
  156. model.refresh();
  157. gTimerID = window.setInterval("fConversionfstacpt();", 1000);
  158. }
  159. }
  160. /**
  161. * Conversion 정지
  162. * Conversion을 정지한다.
  163. **/
  164. function fConversionStop() {
  165. if(model.getValue("/root/init/runflag") == 0) {
  166. messageBox("이미 정지 상태", "E008");
  167. return;
  168. } else {
  169. model.setValue("/root/init/runflag", 0);
  170. window.clearinterval(gTimerID);
  171. opt_interval.value = "";
  172. model.refresh();
  173. }
  174. }
  175. /**
  176. * 정해진 시간이 지나면 파일을 읽고 다시 TIMER초기화.
  177. * 그 외에는 TIMER Count Down.
  178. **/
  179. function fConversionfstacpt() {
  180. if(gCount <= 0) {
  181. window.clearinterval(gTimerID);
  182. fSave();
  183. fPrntGrid();
  184. gCount = model.getValue("/root/init/timer");
  185. opt_interval.value = gCount;
  186. gTimerID = window.setInterval( "fConversionfstacpt();", 1000);
  187. } else {
  188. gCount--;
  189. model.setValue("/root/init/interval", gCount);
  190. opt_interval.refresh();
  191. }
  192. }
  193. function fSave() {
  194. if(model.getValue("/root/init/filenm") == "") {
  195. messageBox("파일을 먼저", "C002");
  196. return;
  197. } else {
  198. var existyn = instance1.selectNodes("/root/result/rstlist/lastsendlist[orddeptcd!='' and existyn='미전송']");
  199. model.removeNode("/root/send/sendlist");
  200. model.makeNode("/root/send/sendlist");
  201. var sendNode = instance1.selectSingleNode("/root/send/sendlist");
  202. for(var i = 0 ; i < existyn.length ; i++){
  203. var nodeItem = existyn.item(i);
  204. sendNode.appendChild(nodeItem);
  205. }
  206. if(existyn.length > 0) {
  207. submit("TXMRC04101", false, "/root/send/sendlist");
  208. }
  209. }
  210. }
  211. function fSaveBtn() {
  212. if(model.getValue("/root/init/filenm") == "") {
  213. messageBox("파일을 먼저", "C002");
  214. return;
  215. } else {
  216. var existyn = instance1.selectNodes("/root/result/rstlist/lastsendlist[orddeptcd!='' and existyn='미전송']");
  217. model.removeNode("/root/send/sendlist");
  218. model.makeNode("/root/send/sendlist");
  219. var sendNode = instance1.selectSingleNode("/root/send/sendlist");
  220. for(var i = 0 ; i < existyn.length ; i++){
  221. var nodeItem = existyn.item(i);
  222. sendNode.appendChild(nodeItem);
  223. }
  224. if(existyn.length > 0) {
  225. submit("TXMRC04101", false, "/root/send/sendlist");
  226. }
  227. }
  228. messageBox("저장이 ", "I002");
  229. }