ZMS00100.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 단문메시지전송 (ZMS00100.js)
  4. - Version :
  5. 1) : Ver.1.00.00
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. */
  8. /**
  9. * @group :
  10. * @ver : 2006.12.20
  11. * @by : 이상준
  12. * @---------------------------------------------------
  13. * @type : function
  14. * @access : public
  15. * @desc : 초기화
  16. * @return :
  17. * @---------------------------------------------------
  18. */
  19. function fInitialize() {
  20. opt_sender.value = getUserName(); // 사용자이름을 가져와서 보여준다.
  21. frdocheck();
  22. // 그리드의 모든 데이터를 입력상태로 바꾼다.
  23. for (i=grd_recvrlist.fixedRows; i<grd_recvrlist.rows; i++)
  24. {
  25. grd_recvrlist.rowstatus(i) = 1;
  26. }
  27. // 비어있는 노드를 체크한다.
  28. var bizabbr = instance1.selectSingleNode("/root/main/bizabbr");
  29. var replytelno = instance1.selectSingleNode("/root/main/replytelno");
  30. var rsrvyn = instance1.selectSingleNode("/root/main/rsrvyn");
  31. var rsrvdate = instance1.selectSingleNode("/root/main/rsrvdate");
  32. var rsrvtime = instance1.selectSingleNode("/root/main/rsrvtime");
  33. var msgcnts = instance1.selectSingleNode("/root/main/msgcnts");
  34. if(bizabbr == null) { model.makenode("/root/main/bizabbr"); }
  35. if(replytelno == null) { model.makenode("/root/main/replytelno"); }
  36. if(rsrvyn == null) { model.makenode("/root/main/rsrvyn"); }
  37. if(rsrvdate == null) { model.makenode("/root/main/rsrvdate"); }
  38. if(rsrvtime == null) { model.makenode("/root/main/rsrvtime"); }
  39. if(msgcnts == null) { model.makenode("/root/main/msgcnts"); }
  40. // 업무대분류 코드 소문자로 변환
  41. var bizabbr_var = model.getValue("/root/main/bizabbr");
  42. model.setValue("/root/main/bizabbr",bizabbr_var.toLowerCase());
  43. model.refresh();
  44. fGetMsgList();
  45. }
  46. function fGetMsgList() {
  47. if (submit("TRZMS00501")) {
  48. fAddMsgListLastRow();
  49. }
  50. }
  51. function fSaveTempMsgList() {
  52. var updateList = getGridUpdateData(grd_msg);
  53. if(updateList.length > 0) {
  54. model.setValue("/root/send_msg", updateList);
  55. if (submit("TXZMS00501")) {
  56. fAddMsgListLastRow();
  57. }
  58. }
  59. }
  60. function fAddMsgListLastRow() {
  61. grd_msg.addRow(false);
  62. grd_msg.rowStatus(grd_msg.rows - 1) = 0;
  63. for(var i = grd_msg.fixedRows; i < grd_msg.rows; i++) {
  64. grd_msg.cellstyle("background-image", i, grd_msg.colRef("save")) = "../../../com/commonweb/images/icon_leveldown_over.gif";
  65. }
  66. grd_msg.refresh();
  67. }
  68. /**
  69. * @group :
  70. * @ver : 2006.12.20
  71. * @by : 이상준
  72. * @---------------------------------------------------
  73. * @type : function
  74. * @access : public
  75. * @desc : 그리드에서 선택한 수신자를 삭제하는 함수
  76. * @return :
  77. * @---------------------------------------------------
  78. */
  79. function fgriddelete(grid)
  80. {
  81. var cur_row = grid.row; // 행 번호 가져오기
  82. var iStatus = grid.rowstatus(cur_row);
  83. var d_cnt = 0;
  84. var selectedRows = new Array();
  85. for (var i=grid.fixedRows; i<grid.rows; i++)
  86. {
  87. var chk = model.getValue("/root/main/recvrlist["+i+"]/chk");
  88. if (chk == "Y")
  89. {
  90. selectedRows[d_cnt++] = i;
  91. }
  92. }
  93. if(d_cnt < 0) {
  94. alert("삭제할 행을 선택해주세요.");
  95. return;
  96. }
  97. for (var i=d_cnt-1; i>=0; i--)
  98. {
  99. grid.deleterow(selectedRows[i],false);
  100. }
  101. model.refresh();
  102. }
  103. /**
  104. * @group :
  105. * @ver : 2006.12.20
  106. * @by : 이상준
  107. * @---------------------------------------------------
  108. * @type : function
  109. * @access : public
  110. * @desc : 예약여부에 따라서 발송일시 활성화/비활성화
  111. * @return :
  112. * @---------------------------------------------------
  113. */
  114. function frdocheck()
  115. {
  116. var req_chk = model.getValue("/root/main/rsrvyn");
  117. if (req_chk==0)
  118. {
  119. ipt_trsmreqdt_date.disabled = true;
  120. ipt_trsmreqdt_time.disabled = true;
  121. }
  122. else
  123. {
  124. ipt_trsmreqdt_date.disabled = false;
  125. ipt_trsmreqdt_time.disabled = false;
  126. }
  127. }
  128. /**
  129. * @group :
  130. * @ver : 2006.12.20
  131. * @by : 이상준
  132. * @---------------------------------------------------
  133. * @type : function
  134. * @access : public
  135. * @desc : 폼값을 체크함
  136. * @return :
  137. * @---------------------------------------------------
  138. */
  139. function fSMSSubmit(ref)
  140. {
  141. // 각 필드값을 체크한다.
  142. if(model.getValue(ref+"/replytelno").getTrim()=="")
  143. {
  144. messageBox("발신자 번호는 ", "I003");
  145. model.setFocus("ipt_callback");
  146. return;
  147. }
  148. var temp = model.getValue(ref+"/replytelno").length;
  149. if(temp <9)
  150. {
  151. messageBox("발신자 번호는 9자리이상을 ", "C001");
  152. model.setFocus("ipt_callback");
  153. return;
  154. }
  155. if(model.getValue(ref+"/rsrvyn").getTrim()=="")
  156. {
  157. messageBox("예약여부는 ", "I003");
  158. model.setFocus("rdo_rsrvyn");
  159. model.setValue(ref+"/rsrvyn", "0");
  160. frdocheck();
  161. rdo_rsrvyn.refresh();
  162. return;
  163. }
  164. if(model.getValue(ref+"/rsrvyn")==1 && // 예약설정이 1 인경우에만 체크한다.
  165. model.getValue(ref+"/rsrvdate").getTrim()=="")
  166. {
  167. messageBox("예약일자는 ", "I003");
  168. model.setFocus("ipt_trsmreqdt_date");
  169. model.setFocus("rsrvdate");
  170. return;
  171. }
  172. if(model.getValue(ref+"/rsrvyn")==1 && // 예약설정이 1 인경우에만 체크한다.
  173. model.getValue(ref+"/rsrvtime").getTrim()=="")
  174. {
  175. messageBox("예약시간은 ", "I003");
  176. model.setFocus("ipt_trsmreqdt_time");
  177. return;
  178. }
  179. // 메세지ID로 송신가능토록 수정 by 조중래 20120626
  180. if(model.getValue(ref+"/msgfrmtid").getTrim()==""
  181. && model.getValue(ref+"/msgcnts").getTrim()=="")
  182. {
  183. messageBox("메시지내용은 ", "I003");
  184. return;
  185. }
  186. if(model.getValue(ref+"/msgcnts").getByteLength() > 80)
  187. {
  188. messageBox("메시지내용이 80byte를 ", "E003");
  189. return;
  190. }
  191. if(grd_recvrlist.rows <= grd_recvrlist.fixedRows) messageBox("수신자정보는 ", "I003");
  192. // 수신자 리스트가 담긴의 그리드를 체크한다.
  193. var nodeset = grd_recvrlist.nodeset;
  194. var recvrnm;
  195. var recvrtelno;
  196. var cnt = 0;
  197. for (i=grd_recvrlist.fixedRows; i<grd_recvrlist.rows; i++)
  198. {
  199. cnt++;
  200. recvrnm = model.getValue(nodeset+"["+cnt+"]/recvrnm");
  201. recvrtelno = model.getValue(nodeset+"["+cnt+"]/recvrtelno");
  202. if(recvrnm.getTrim()=="")
  203. {
  204. messageBox(cnt+" 번째 수신자 이름을 ", "C001");
  205. grd_recvrlist.row = i;
  206. return;
  207. }
  208. if(recvrtelno.length <10)
  209. {
  210. messageBox(cnt+" 번째 수신자 전화번호는 10자리이상을 ", "C001");
  211. grd_recvrlist.row = i;
  212. return;
  213. }
  214. }
  215. model.copyNode("/root/send",ref+"");
  216. //model.removeNode("/root/send/recvrlist");
  217. model.resetInstanceNode("/root/send/recvrlist");
  218. model.removeNode("/root/send/recvrlist/chk");
  219. model.removeNode("/root/send/recvrlist/recvrnm");
  220. model.removeNode("/root/send/recvrlist/recvrtelno");
  221. //model.makeNode("/root/send/recvrlist");
  222. // 메세지ID로 송신가능토록 수정 by 조중래 20120626
  223. if(model.getValue(ref+"/msgfrmtid").getTrim()=="")
  224. {
  225. model.setValue("/root/send/recvrlist",grd_recvrlist.getUpdateData());
  226. } else {
  227. model.makeValue("/root/send/recvrlist",
  228. "recvrnm▦recvrtelno▩"
  229. + model.getValue("/root/main/recvrlist/recvrnm") + "▦"
  230. + model.getValue("/root/main/recvrlist/recvrtelno") + "▩");
  231. }
  232. if (submit("TXZMS00101"))
  233. {
  234. alert(model.getValue("/root/hidden/msg/contents"));
  235. }
  236. }
  237. /**
  238. * @group :
  239. * @ver : 2006.12.20
  240. * @by : 이상준
  241. * @---------------------------------------------------
  242. * @type : function
  243. * @access : public
  244. * @desc : 바이트 단위로 문자열 자르는 함수
  245. * @return :
  246. * @---------------------------------------------------
  247. */
  248. function trim_byte(check_string, max_byte_size) {
  249. var strLength = check_string.length;
  250. var char_ASCII;
  251. var i = 0;
  252. var total_byte = 0;
  253. var result;
  254. while(i<check_string.length){
  255. char_ASCII = check_string.charCodeAt(i);
  256. //숫자
  257. if (char_ASCII >= 48 && char_ASCII <= 57 ) {
  258. total_byte++;
  259. //영어
  260. } else if ((char_ASCII>=65 && char_ASCII<=90) || (char_ASCII>=97 && char_ASCII<=122)) {
  261. total_byte++;
  262. //특수기호 스페이스 포함(32)
  263. } else if ((char_ASCII>=32 && char_ASCII<=47) || (char_ASCII>=58 && char_ASCII<=64)
  264. || (char_ASCII>=91 && char_ASCII<=96) || (char_ASCII>=123 && char_ASCII<=126)) {
  265. total_byte++;
  266. //한글
  267. } else if ((char_ASCII >= 12592) || (char_ASCII <= 12687)) {
  268. total_byte = total_byte + 2;
  269. }
  270. i++;
  271. }
  272. var tmp = total_byte - max_byte_size;
  273. if (tmp > 0){
  274. result = check_string.substr(0, strLength - tmp);
  275. } else {
  276. result = check_string;
  277. }
  278. return result;
  279. }
  280. String.prototype.cut = function(len) {
  281. var str = this;
  282. var l = 0;
  283. for (var i=0; i<str.length; i++) {
  284. l += (str.charCodeAt(i) > 128) ? 2 : 1;
  285. if (l > len) return str.substring(0,i);
  286. }
  287. return str;
  288. }
  289. /**
  290. * @group :
  291. * @ver : 2006.12.20
  292. * @by : 이상준
  293. * @---------------------------------------------------
  294. * @type : function
  295. * @access : public
  296. * @desc : 그리드의 전체 행을 선택함
  297. * @return :
  298. * @---------------------------------------------------
  299. */
  300. function fSelectAll(grid)
  301. {
  302. for (i=grid.fixedRows; i<grid.rows; i++)
  303. {
  304. model.setValue("/root/main/recvrlist["+i+"]/chk", "true") ;
  305. }
  306. model.refresh();
  307. }