SMRWD04000_SMS전송관리(총무).xrw 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>SMS 전송관리(총무)</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <intvpracsche>
  11. <intvpracschelist/>
  12. </intvpracsche>
  13. <serch>
  14. <serchilst/>
  15. </serch>
  16. </main>
  17. <send>
  18. <intvpracschelist/>
  19. <defaultvaluelist>
  20. <sendmessage/>
  21. <replytelno/>
  22. <msgfrmtid/>
  23. <bizabbr/>
  24. <rsrvyn/>
  25. <rsrvdate/>
  26. <rsrvtime/>
  27. <emergencyyn/>
  28. <systemcd/>
  29. </defaultvaluelist>
  30. <serchcondition>
  31. <deptcd/>
  32. <sendfrdd/>
  33. <sendtodd/>
  34. <recvrnm/>
  35. <depthngnm/>
  36. </serchcondition>
  37. </send>
  38. <init>
  39. <smsReservationYN>
  40. <lable>즉시전송</lable>
  41. <value>0</value>
  42. <label>예약전송</label>
  43. <value>1</value>
  44. </smsReservationYN>
  45. <smsEmergencyYN>
  46. <label>일반</label>
  47. <value>0</value>
  48. <label>긴급</label>
  49. <value>1</value>
  50. </smsEmergencyYN>
  51. </init>
  52. <hidden>
  53. <bytecnt/>
  54. <trsmresultcdbase/>
  55. </hidden>
  56. <temp>
  57. </temp>
  58. </root>
  59. </instance>
  60. <submission id="TRRWD04001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/serchcondition" resultref="/root/main/serch"/>
  61. <submission id="TXRWD04001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/serch"/>
  62. </model>
  63. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  64. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  65. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  66. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  67. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  68. <script type="javascript" src="../../../com/emailsenderweb/js/ZME001.js"/>
  69. <script type="javascript" src="../../../mis/miscommonweb/js/RAC001.js"/>
  70. <script type="javascript" src="../../../mis/miscommonweb/js/RBC001.js"/>
  71. <script type="javascript" src="../../../mis/paybaseinfomngtweb/js/RWC001.js"/>
  72. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  73. <script type="javascript" src="../../../mis/paydedufactmngtweb/js/RWD001.js"/>
  74. <script type="javascript" ev:event="xforms-ready">
  75. <![CDATA[
  76. //사용자 권한
  77. fCheckAuth();
  78. var UserDeptCd = getUserInfo("posdeptcd");
  79. var UserDeptNm = getUserInfo("posdeptnm");
  80. model.setValue("/root/send/serchcondition/deptcd",UserDeptCd);
  81. model.setValue("/root/send/serchcondition/depthngnm",UserDeptNm);
  82. // 그리드 초기화
  83. misfGridInit(grd_intvpracschelist);
  84. misfGridInit(grd_serchlist);
  85. misfComboComCdListMulti("Z0010","grd_serchlist.trsmresultcd");
  86. //misfComboComCdList("Z0010","cmb_trsmresultcdbase");
  87. var curdate = getCurrentDate();
  88. var cvtdate = curdate.toDate("YYYYMMDD");
  89. model.setValue(ipt_sendfrdd.attribute("ref") , cvtdate.getAddDate(0,"M").getDateFormat("YYYYMMDD"));
  90. model.setValue(ipt_sendtodd.attribute("ref") , cvtdate.getAddDate(0,"M").getDateFormat("YYYYMMDD"));
  91. misfMsterDetailSet(grd_serchlist, null, "TRRWD04001", "Y");
  92. model.setValue("/root/init/smsEmergencyYN","0");
  93. model.setValue("/root/init/smsReservationYN","0");
  94. model.setValue("/root/send/defaultvaluelist/emergencyyn", "0");
  95. model.setValue("/root/send/defaultvaluelist/rsrvyn", "0");
  96. model.setValue("/root/send/defaultvaluelist/msgfrmtid", "sms.mis.0001");
  97. model.setValue("/root/send/defaultvaluelist/bizabbr", "mis");
  98. model.setValue("/root/send/defaultvaluelist/systemcd", "mis001");
  99. //그리드의 타이틀을 누르면 sort되는 기능
  100. grd_intvpracschelist.explorerbar = "sort";
  101. model.toggle("case1");
  102. model.refresh();
  103. ]]>
  104. </script>
  105. <script type="javascript">
  106. <![CDATA[
  107. //========================================================================================
  108. //버튼에 대한 화면 권한 체크(R : 읽기, X : 입력/수정/삭제, P : 출력)
  109. //========================================================================================
  110. function fCheckAuth() {
  111. btn_search.disabled = !checkAuth("R") ;
  112. btn_send.disabled = !checkAuth("X") ;
  113. }
  114. String.prototype.cut = function(len)
  115. {
  116. var str = this;
  117. var l = 0;
  118. for (var i=0; i<str.length; i++)
  119. {
  120. l += (str.charCodeAt(i) > 128) ? 2 : 1;
  121. if (l > len) return str.substring(0,i);
  122. }
  123. return str;
  124. }
  125. function fCsvUpload()
  126. {
  127. var filename = window.fileDialog("open", ",", false, "", "xls", "Excel Files(*.xls)|*.xls");
  128. grd_intvpracschelist.loadExcel(filename);
  129. }
  130. function fOpenPopupDeptHelp(pControl, pInstance)
  131. {
  132. misfOpenPopUpList("02", pControl, "", pInstance);
  133. model.refresh();
  134. }
  135. function fGridCheckBlank()
  136. {
  137. for(var i = grd_serchlist.fixedRows ; i < grd_serchlist.rows ; i++)
  138. {
  139. if(grd_serchlist.valueMatrix(i, grd_serchlist.colRef("trsmresultcd")) == "")
  140. {
  141. grd_serchlist.valueMatrix(i, grd_serchlist.colRef("trsmresultcd")) = "미전송";
  142. }
  143. }
  144. }
  145. ]]>
  146. </script>
  147. </xhtml:head>
  148. <xhtml:body guideline="1,-3;1,1262;" style="margin-left:8; margin-right:8; ">
  149. <group id="group1" style="left:3px; top:0px; width:677px; height:13px; ">
  150. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:107px; height:13px; ">SMS 전송관리</caption>
  151. </group>
  152. <group id="group2" style="left:0px; top:15px; width:652px; height:765px; ">
  153. <switch id="switch1" style="left:5px; top:30px; width:647px; height:715px; ">
  154. <case id="case1">
  155. <button id="btn_canceal" class="btn2_letter4" style="left:507px; top:25px; width:64px; height:19px; ">
  156. <caption>전체취소</caption>
  157. <script type="javascript" ev:event="DOMActivate">
  158. <![CDATA[
  159. for (var i = grd_intvpracschelist.fixedRows; i < grd_intvpracschelist.rows; i++ )
  160. {
  161. grd_intvpracschelist.valueMatrix(i, grd_intvpracschelist.colRef("sendyn")) = 'N';
  162. }
  163. ]]>
  164. </script>
  165. </button>
  166. <datagrid id="grd_intvpracschelist" nodeset="/root/main/intvpracsche/intvpracschelist" caption="선택^수신자 이름^수신자 전화번호" colsep="^" colwidth="50, 120, 219" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" tooltip="true" style="left:230px; top:50px; width:411px; height:660px; ">
  167. <col checkvalue="Y,N" ref="sendyn" type="checkbox"/>
  168. <col ref="korname" style="text-align:center; "/>
  169. <col ref="supppsnmpphonno" style="text-align:center; "/>
  170. </datagrid>
  171. <button id="btn_load" class="btn2_letter4" style="left:573px; top:25px; width:64px; height:19px; ">
  172. <caption>불러오기</caption>
  173. <script type="javascript" ev:event="DOMActivate">
  174. <![CDATA[
  175. fCsvUpload();
  176. for(var i = grd_intvpracschelist.fixedRows ; i < grd_intvpracschelist.rows ; i++)
  177. {
  178. grd_intvpracschelist.rowStatus(i) = 3;
  179. }
  180. grd_intvpracschelist.gridToInstance();
  181. ]]>
  182. </script>
  183. </button>
  184. <caption id="cap_title" class="tit_2" style="left:5px; top:5px; width:122px; height:13px; ">SMS 메시지 전송</caption>
  185. <button id="btn_send" class="btn2_letter4" style="left:375px; top:25px; width:64px; height:19px; ">
  186. <caption>문자발송</caption>
  187. <script type="javascript" ev:event="DOMActivate">
  188. <![CDATA[
  189. var sCheckFlag = false;
  190. for (var i = grd_intvpracschelist.fixedRows; i < grd_intvpracschelist.rows; i++ )
  191. {
  192. if( grd_intvpracschelist.valueMatrix(i, grd_intvpracschelist.colRef("sendyn")) == 'Y')
  193. {
  194. sCheckFlag = true;
  195. }
  196. }
  197. if(!sCheckFlag)
  198. {
  199. messageBox("문자 받을 사람을 ","C002");
  200. return;
  201. }
  202. if(tar_message.value=="" ){
  203. messageBox("메시지 내용은","I003");
  204. return;
  205. }
  206. if(ipt_replytelno.value=="" ){
  207. messageBox("발신자 번호는","I003");
  208. return;
  209. }
  210. // alert ( grd_intvpracschelist.getUpdateData());
  211. if (grd_intvpracschelist.getUpdateData()!=null)
  212. {
  213. model.setValue("/root/send/intvpracschelist",grd_intvpracschelist.getUpdateData());
  214. }
  215. submit("TXRWD04001");
  216. ]]>
  217. </script>
  218. </button>
  219. <line id="lin_1" class="line_1" style="x1:230px; y1:45px; x2:641px; y2:45px; "/>
  220. <caption id="cap_messageconcd" class="cell_1" style="left:5px; top:105px; width:95px; height:23px; text-align:center; vertical-align:middle; ">메시지 설정</caption>
  221. <line id="lin2" class="line_1" style="x1:0px; y1:20px; x2:640px; y2:20px; "/>
  222. <button id="btn_all" class="btn2_letter4" style="left:441px; top:25px; width:64px; height:19px; ">
  223. <caption>전체선택</caption>
  224. <script type="javascript" ev:event="DOMActivate">
  225. <![CDATA[
  226. for (var i = grd_intvpracschelist.fixedRows; i < grd_intvpracschelist.rows; i++ ) {
  227. grd_intvpracschelist.valueMatrix(i, grd_intvpracschelist.colRef("sendyn")) = 'Y';
  228. }
  229. ]]>
  230. </script>
  231. </button>
  232. <caption id="cap_bytes" style="left:135px; top:107px; width:65px; height:15px; ">/80 bytes</caption>
  233. <output id="opt_bytes" ref="/root/hidden/bytecnt" style="left:104px; top:105px; width:30px; height:19px; text-align:right; "/>
  234. <caption id="cap_sendlist" class="tit_2" style="left:235px; top:30px; width:87px; height:13px; ">발송자 명단</caption>
  235. <caption id="cap_replytelno" class="cell_1" style="left:5px; top:75px; width:95px; height:23px; text-align:center; vertical-align:middle; ">발신자 번호</caption>
  236. <input id="ipt_replytelno" ref="/root/send/defaultvaluelist/replytelno" maxlength="11" style="left:105px; top:76px; width:120px; height:19px; "/>
  237. <select1 id="rdo_reservation" ref="/root/init/smsReservationYN" class="radio_search" visibility="hidden" appearance="full" cellspacing="5" cols="3" overflow="visible" style="left:10px; top:300px; width:215px; height:16px; text-align:center; border-style:none; ">
  238. <choices>
  239. <itemset nodeset="/root/init/smssendynrdo">
  240. <label ref="label"/>
  241. <value ref="value"/>
  242. </itemset>
  243. </choices>
  244. <script type="javascript" ev:event="xforms-value-changed">
  245. <![CDATA[
  246. model.setValue("/root/init/smsReservationYN","/root/init/smsReservationYN");
  247. ]]>
  248. </script>
  249. </select1>
  250. <textarea id="tar_message" ref="/root/send/defaultvaluelist/sendmessage" scroll="autohscroll" maxlength="80" style="left:10px; top:135px; width:215px; height:160px; font-size:18pt; "/>
  251. <script type="javascript" ev:event="onkeyup">
  252. <![CDATA[
  253. var opt_bytesValue = tar_message.currentText.getByteLength();
  254. var contents = tar_message.currentText;
  255. if (parseInt(opt_bytesValue) > 80)
  256. {
  257. messageBox("단문메시지는 80bytes 를 넘을 수 없습니다.", "I999");
  258. alert(contents);
  259. model.setValue("/root/send/defaultvaluelist/sendmessage", contents.cut(80));
  260. tar_message.refresh();
  261. return;
  262. }
  263. model.setValue("/root/hidden/bytecnt", opt_bytesValue);
  264. opt_bytes.refresh();
  265. ]]>
  266. </script>
  267. <caption id="cap_senddate" class="cell_1" visibility="hidden" style="left:10px; top:320px; width:95px; height:23px; text-align:center; vertical-align:middle; ">예약일시</caption>
  268. <input id="ipt_senddate" visibility="hidden" inputtype="date" maxlength="11" style="left:110px; top:321px; width:120px; height:19px; "/>
  269. <caption id="cap_yy" class="cell_1" visibility="hidden" style="left:50px; top:351px; width:45px; height:23px; text-align:center; vertical-align:middle; ">시</caption>
  270. <caption id="cap_mm" class="cell_1" visibility="hidden" style="left:140px; top:351px; width:45px; height:23px; text-align:center; vertical-align:middle; ">분</caption>
  271. <select1 id="rdo_emergencyyn" ref="/root/init/smsEmergencyYN" class="radio_search" visibility="hidden" appearance="full" cellspacing="5" cols="3" overflow="visible" style="left:5px; top:50px; width:220px; height:16px; text-align:center; border-style:none; ">
  272. <choices>
  273. <itemset nodeset="/root/init/smssendynrdo">
  274. <label ref="label"/>
  275. <value ref="value"/>
  276. </itemset>
  277. </choices>
  278. <script type="javascript" ev:event="xforms-value-changed">
  279. <![CDATA[
  280. model.setValue("/root/send/defaultvaluelist/emergencyyn","/root/init/smsEmergencyYN");
  281. ]]>
  282. </script>
  283. </select1>
  284. <input id="ipt_hh" visibility="hidden" maxlength="2" style="left:10px; top:355px; width:35px; height:19px; "/>
  285. <input id="ipt_mm" visibility="hidden" maxlength="2" style="left:100px; top:355px; width:35px; height:19px; "/>
  286. </case>
  287. <case id="case2" selected="true">
  288. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:640px; height:63px; background-color:#fffbf2; border-color:#ffd799; "/>
  289. <datagrid id="grd_serchlist" nodeset="/root/main/serch/serchilst" caption="예약일자^발신일자^전송결과^수신자^수신자 전화번호^메시지 내용^발신자^발신자 전화번호" colsep="^" colwidth="0, 100, 80, 80, 100,290, 80, 100" ellipsis="true" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:0px; top:95px; width:642px; height:595px; ">
  290. <col ref="trsmreqdt"/>
  291. <col ref="smstrsmstartdt" style="text-align:center; "/>
  292. <col id="trsmresultcd" disabled="true" ref="trsmresultcd" type="combo">
  293. <choices>
  294. <itemset>
  295. <label/>
  296. <value/>
  297. </itemset>
  298. </choices>
  299. </col>
  300. <col ref="recvrnm" style="text-align:center; "/>
  301. <col ref="recvrtelno" style="text-align:center; "/>
  302. <col ref="msgcnts"/>
  303. <col ref="fstrgstrnm" style="text-align:center; "/>
  304. <col ref="replytelno" style="text-align:center; "/>
  305. </datagrid>
  306. <caption id="caption34" class="tit_2" style="left:5px; top:65px; width:87px; height:13px; ">발송자 명단</caption>
  307. <line id="line4" class="line_1" style="x1:0px; y1:80px; x2:641px; y2:80px; "/>
  308. <input id="ipt_sendfrdd" ref="/root/send/serchcondition/sendfrdd" class="input_s_essential" inputtype="date" format="yyyy-mm-dd" style="left:86px; top:35px; width:91px; height:19px; "/>
  309. <input id="ipt_sendtodd" ref="/root/send/serchcondition/sendtodd" class="input_s_essential" inputtype="date" format="yyyy-mm-dd" style="left:203px; top:35px; width:91px; height:19px; "/>
  310. <caption id="caption2" class="search_name" style="left:5px; top:35px; width:93px; height:17px; ">전송일자:</caption>
  311. <line id="line1" class="line_4" style="x1:560px; y1:11px; x2:560px; y2:57px; border-color:#ffe4bb; border-left-style:solid; "/>
  312. <button id="btn_search" class="btn1_letter2" navindex="10" style="left:575px; top:22px; width:56px; height:22px; text-align:left; ">
  313. <caption>조회</caption>
  314. <script type="javascript" ev:event="DOMActivate">
  315. <![CDATA[
  316. model.setValue("/root/send/serchcondition/recvrnm",ipt_recvrnm.currentText);
  317. //필수 입력 항목 체크(공통 ftHelper.js)
  318. if(ipt_sendfrdd.value=="" )
  319. {
  320. messageBox("전송일은","I003");
  321. return;
  322. }
  323. if(ipt_sendtodd.value=="" )
  324. {
  325. model.setValue("/root/send/serchcondition/sendtodd",ipt_sendfrdd.value);
  326. }
  327. if(model.getValue("/root/send/serchcondition/deptcd") == "" )
  328. {
  329. messageBox("부서는","I003");
  330. return;
  331. }
  332. if ( !isRequiredControls("ipt_deptcd"))
  333. {
  334. return false;
  335. }
  336. submit("TRRWD04001");
  337. ]]>
  338. </script>
  339. </button>
  340. <button id="btn_depthelp" class="icon_search" disabled="true" style="left:181px; top:11px; width:16px; height:16px; ">
  341. <script type="javascript" ev:event="DOMActivate">
  342. <![CDATA[
  343. fOpenPopupDeptHelp(ipt_deptcd, "deptcd,depthngnm");
  344. ]]>
  345. </script>
  346. <caption/>
  347. </button>
  348. <input id="ipt_depthngnm" ref="/root/send/serchcondition/depthngnm" class="input_default" disabled="true" style="left:202px; top:10px; width:125px; height:19px; ">
  349. <script type="javascript" ev:event="onkeypress">
  350. <![CDATA[
  351. if(event.keyCode == 13)
  352. {
  353. racfDeptValidCheck("deptcd,depthngnm");
  354. model.setFocus("btn_search");
  355. }
  356. ]]>
  357. </script>
  358. <script type="javascript" ev:event="xforms-value-changed">
  359. <![CDATA[
  360. racfDeptValidCheck("deptcd,depthngnm");
  361. if(ipt_deptcd.value != "" &&ipt_depthngnm.value != "")
  362. {
  363. btn_search.dispatch("DOMActivate");
  364. }
  365. ]]>
  366. </script>
  367. </input>
  368. <input id="ipt_deptcd" ref="/root/send/serchcondition/deptcd" class="input_default" disabled="true" style="left:85px; top:10px; width:91px; height:19px; ">
  369. <script type="javascript" ev:event="onkeypress">
  370. <![CDATA[
  371. if(event.keyCode == 13)
  372. {
  373. model.setFocus("ipt_depthngnm");
  374. }
  375. ]]>
  376. </script>
  377. <script type="javascript" ev:event="xforms-value-changed">
  378. <![CDATA[
  379. racfDeptValidCheck("deptcd,depthngnm");
  380. if(ipt_deptcd.value != "" &&ipt_depthngnm.value != "")
  381. {
  382. btn_search.dispatch("DOMActivate");
  383. }
  384. ]]>
  385. </script>
  386. </input>
  387. <caption id="caption5" class="search_name" style="left:4px; top:10px; width:80px; height:17px; ">부 서:</caption>
  388. <caption id="caption1" class="search_name" style="left:355px; top:35px; width:80px; height:17px; ">이 름:</caption>
  389. <input id="ipt_recvrnm" ref="/root/send/serchcondition/recvrnm" class="input_default" style="left:436px; top:35px; width:91px; height:19px; "/>
  390. </case>
  391. </switch>
  392. <button id="btn_sms" class="btn_sw" group="tab" selected="true" style="left:5px; top:8px; width:100px; height:22px; ">
  393. <caption>SMS 전송</caption>
  394. <script type="javascript" ev:event="DOMActivate">
  395. <![CDATA[
  396. model.toggle("case1");
  397. model.refresh();
  398. ]]>
  399. </script>
  400. </button>
  401. <button id="btn_email" class="btn_sw" group="tab" style="left:105px; top:8px; width:100px; height:22px; ">
  402. <caption>전송 내역</caption>
  403. <script type="javascript" ev:event="DOMActivate">
  404. <![CDATA[
  405. model.toggle("case2");
  406. //btn_search.dispatch("DOMActivate");
  407. model.refresh();
  408. ]]>
  409. </script>
  410. </button>
  411. </group>
  412. </xhtml:body>
  413. </xhtml:html>