SMCNS00300_SMS전송승인관리.xrw 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * Name : SMCNS00300_SMS전송승인관리
  4. * Summary : SMS전송승인관리
  5. * Programmer : 차재훈
  6. * Date Written : 2008.07.16
  7. * History : 2008.07.16 차재훈 수정2008.08.19
  8. * Remark :
  9. -->
  10. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  11. <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">
  12. <xhtml:head>
  13. <xhtml:title>SMS 전송 승인관리</xhtml:title>
  14. <model id="model1">
  15. <instance id="instance1">
  16. <root xmlns="">
  17. <main>
  18. <list>
  19. <aprvlist>
  20. <fstrgstdt/>
  21. <aprvflag/>
  22. <aprvreqsmmcnts/>
  23. <cnt/>
  24. <fstrgstrid/>
  25. <sanctflag/>
  26. <aprvdt/>
  27. <aprvcd/>
  28. <fstrgstrnm/>
  29. </aprvlist>
  30. <smstrslist>
  31. <trsmdd/>
  32. <recvrnm/>
  33. <recvrtelno/>
  34. <msgcnts/>
  35. </smstrslist>
  36. </list>
  37. <aprvinfo>
  38. <aprvcd/>
  39. <aprvflag/>
  40. </aprvinfo>
  41. </main>
  42. <send>
  43. <data>
  44. <rgstfromdd/>
  45. <rgsttodd/>
  46. <aprvflag/>
  47. <sanctflag/>
  48. <aprvcd/>
  49. <searchtype/>
  50. <deptnm/>
  51. <aprvdtfrom/>
  52. <aprvdtto/>
  53. </data>
  54. </send>
  55. <temp>
  56. <smscount>0</smscount>
  57. <aprvcount>0</aprvcount>
  58. </temp>
  59. <init>
  60. <aprvuserid/>
  61. </init>
  62. </root>
  63. </instance>
  64. <submission id="TRCNS00304" mediatype="application/x-www-form-urlencoded" method="post" resultref="/root/init"/>
  65. <submission id="TRCNS00302" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" resultref="/root/main/list/aprvlist"/>
  66. <submission id="TRCNS00303" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" resultref="/root/main/list/smstrslist"/>
  67. <submission id="TXCNS00301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/aprvinfo"/>
  68. </model>
  69. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  70. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  71. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  72. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  73. <script type="javascript" src="../../../crm/crmweb/js/CCZ001.js"/>
  74. <script type="javascript" src="../../../crm/campainweb/js/CPZ001.js"/>
  75. <script type="javascript" ev:event="xforms-ready">
  76. <![CDATA[
  77. // 그리드를 초기화한다.
  78. model.removenodeset("/root/main/list/aprvlist");
  79. model.removenodeset("/root/main/list/smstrslist");
  80. //기간설정
  81. cmb_searchType.select(0);
  82. // 등록일의 값이 없으면 최근한달로 셋팅한다.
  83. var rgstfromdd = model.getValue("/root/send/data/rgstfromdd");
  84. var rgsttodd = model.getValue("/root/send/data/rgsttodd");
  85. if (rgstfromdd == "") {
  86. model.setValue("/root/send/data/rgstfromdd",getCurrentDate().toDate().getAddDate(-3,"D").getDateFormat());
  87. }
  88. if (rgsttodd == "") {
  89. model.setValue("/root/send/data/rgsttodd",getCurrentDate());
  90. }
  91. //등록된 승인자인지 조회
  92. submit("TRCNS00304");
  93. var aprvuserid = model.getValue("/root/init/aprvuserid");
  94. if(aprvuserid != ""){//승인자이면 버튼 활성화
  95. btn_aprvflag.visible = true;
  96. btn_aprvflag2.visible = true;
  97. }
  98. model.refresh();
  99. ]]>
  100. </script>
  101. <script type="javascript">
  102. <![CDATA[
  103. // 목록조회
  104. function fGetSMSList() {
  105. var searchtype = model.getValue("/root/send/data/searchtype");
  106. var chck = "N";
  107. if(searchtype == "2"){//승인일
  108. model.setValue("/root/send/data/aprvdtfrom", model.getValue("/root/send/data/rgstfromdd"));
  109. model.setValue("/root/send/data/aprvdtto", model.getValue("/root/send/data/rgsttodd"));
  110. model.setValue("/root/send/data/rgstfromdd", "");
  111. model.setValue("/root/send/data/rgsttodd", "");
  112. chck = "Y"
  113. }
  114. model.removeNodeset("/root/main/list/aprvlist");
  115. submit("TRCNS00302");
  116. var aprvcount = 0;
  117. for(i=1; i<=grd_aprvlist.rows-1; i++){
  118. if(grd_aprvlist.valueMatrix(i, grd_aprvlist.colRef("aprvflag"))=="0"){
  119. aprvcount++;
  120. }
  121. }
  122. model.setValue("/root/temp/aprvcount",aprvcount);
  123. if(chck=="Y"){
  124. model.setValue("/root/send/data/rgstfromdd", model.getValue("/root/send/data/aprvdtfrom"));
  125. model.setValue("/root/send/data/rgsttodd", model.getValue("/root/send/data/aprvdtto"));
  126. model.setValue("/root/send/data/aprvdtfrom", "");
  127. model.setValue("/root/send/data/aprvdtto", "");
  128. }
  129. model.refresh();
  130. }
  131. ]]>
  132. </script>
  133. </xhtml:head>
  134. <xhtml:body guideline="1,358;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  135. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  136. <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:145px; height:14px; ">SMS 전송 승인관리</caption>
  137. </group>
  138. <group id="grp_johe" style="left:0px; top:23px; width:1195px; height:42px; vertical-align:top; ">
  139. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1195px; height:39px; background-color:#fffbf2; border-color:#ffd799; "/>
  140. <caption id="caption2" class="search_name" style="left:15px; top:9px; width:100px; height:17px; ">기 간 :</caption>
  141. <input id="ipt_rgstfromdd" ref="/root/send/data/rgstfromdd" class="input_search" navindex="2" inputtype="date" style="left:208px; top:8px; width:120px; height:19px; "/>
  142. <script type="javascript" ev:event="DOMFocusOut">
  143. <![CDATA[
  144. var rgstfromdd = model.getValue("/root/send/data/rgstfromdd");
  145. if (rgstfromdd != "" && !isValidDateTime(rgstfromdd,"YYYYMMDD")) {
  146. messageBox("날짜가 바르게 입력되지","E007");
  147. model.setFocus("ipt_rgstfromdd");
  148. }
  149. ]]>
  150. </script>
  151. <caption id="caption3" class="search_no_b" style="left:333px; top:9px; width:12px; height:17px; ">~</caption>
  152. <input id="ipt_rgsttodd" ref="/root/send/data/rgsttodd" class="input_search" navindex="3" inputtype="date" style="left:348px; top:8px; width:120px; height:19px; "/>
  153. <script type="javascript" ev:event="DOMFocusOut">
  154. <![CDATA[
  155. var rgsttodd = model.getValue("/root/send/data/rgsttodd");
  156. if (rgsttodd != "" && !isValidDateTime(rgsttodd,"YYYYMMDD")) {
  157. messageBox("날짜가 바르게 입력되지","E007");
  158. model.setFocus("ipt_rgsttodd");
  159. }
  160. ]]>
  161. </script>
  162. <caption id="caption5" class="search_name" style="left:524px; top:9px; width:90px; height:17px; ">처리상태 :</caption>
  163. <select1 id="cmb_aprvflag" ref="/root/send/data/aprvflag" class="combo_search" navindex="4" appearance="minimal" style="left:619px; top:8px; width:130px; height:19px; ">
  164. <choices>
  165. <item>
  166. <label>전 체</label>
  167. <value/>
  168. </item>
  169. <item>
  170. <label>미승인</label>
  171. <value>0</value>
  172. </item>
  173. <item>
  174. <label>승 인</label>
  175. <value>1</value>
  176. </item>
  177. <item>
  178. <label>종 결</label>
  179. <value>2</value>
  180. </item>
  181. </choices>
  182. </select1>
  183. <line id="line1" class="line_4" style="x1:1105px; y1:5px; x2:1105px; y2:31px; "/>
  184. <button id="btn_search" class="btn1_letter2" navindex="5" style="left:1115px; top:8px; width:56px; height:22px; ">
  185. <caption>조회</caption>
  186. <script type="javascript" ev:event="DOMActivate">
  187. <![CDATA[
  188. fGetSMSList();
  189. ]]>
  190. </script>
  191. </button>
  192. <select1 id="cmb_searchType" ref="/root/send/data/searchtype" class="combo_search" navindex="1" appearance="minimal" style="left:120px; top:8px; width:80px; height:19px; ">
  193. <choices>
  194. <item>
  195. <label>등록일</label>
  196. <value>1</value>
  197. </item>
  198. <item>
  199. <label>승인일</label>
  200. <value>2</value>
  201. </item>
  202. </choices>
  203. </select1>
  204. </group>
  205. <group id="group2" style="left:0px; top:70px; width:1195px; height:700px; ">
  206. <caption id="caption9" class="tit_2" style="left:5px; top:20px; width:115px; height:13px; ">전송 리스트</caption>
  207. <caption id="caption6" class="tit_2" style="left:640px; top:20px; width:160px; height:13px; ">전송별 수신인 리스트</caption>
  208. <caption id="caption35" style="left:515px; top:19px; width:70px; height:17px; font-weight:bold; ">결재대기 :</caption>
  209. <output id="output1" ref="/root/temp/aprvcount" appearance="output" style="left:579px; top:18px; width:35px; height:19px; text-align:right; "/>
  210. <caption id="caption7" style="left:615px; top:19px; width:20px; height:17px; font-weight:bold; ">건</caption>
  211. <button id="btn_aprvflag" class="btn3_letter3" visibility="hidden" style="left:115px; top:13px; width:68px; height:22px; ">
  212. <caption>승 인</caption>
  213. <script type="javascript" ev:event="DOMActivate">
  214. <![CDATA[
  215. var row = grd_aprvlist.row;
  216. var aprvcd = grd_aprvlist.valueMatrix(row, grd_aprvlist.colRef("aprvcd"));
  217. var aprvflag = grd_aprvlist.valueMatrix(row, grd_aprvlist.colRef("aprvflag"));
  218. var aprvcount = 0;
  219. if(row > 0){
  220. if( aprvflag == "0"){
  221. if(aprvcd != ""){
  222. if (messageBox("선택된 행의 승인을 ","Q004")==6){
  223. model.setValue("/root/main/aprvinfo/aprvcd", aprvcd);
  224. model.setValue("/root/main/aprvinfo/aprvflag", "1");//승인
  225. model.setValue("/root/send/data/aprvcd", aprvcd);
  226. submit("TXCNS00301");//승인저장
  227. submit("TRCNS00302");//승인리스트 조회
  228. submit("TRCNS00303");//전송별 수신인 리스트 조회
  229. for(i=1; i<grd_aprvlist.rows-1; i++){
  230. if(grd_aprvlist.valueMatrix(i, grd_aprvlist.colRef("aprvflag"))=="0"){
  231. aprvcount++;
  232. }
  233. }
  234. model.setValue("/root/temp/aprvcount",aprvcount);
  235. model.refresh();
  236. }
  237. }
  238. }else if(aprvflag != "0" && aprvflag != ""){
  239. messageBox("선택된 행은 이미","I001");
  240. return;
  241. }
  242. }else{
  243. messageBox("승인할 전송 리스트가 선택되지","E007");
  244. return;
  245. }
  246. ]]>
  247. </script>
  248. </button>
  249. <button id="btn_smsexcel" class="btn2_letter4" style="left:1128px; top:15px; width:64px; height:19px; ">
  250. <caption>엑셀저장</caption>
  251. <script type="javascript" ev:event="DOMActivate">
  252. <![CDATA[
  253. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  254. if (fileName != "")
  255. {
  256. grd_smstrslist.saveExcel(fileName, "SheetName", true, true, "", "", true);
  257. }
  258. ]]>
  259. </script>
  260. </button>
  261. <line id="line2" class="line_1" style="x1:0px; y1:36px; x2:635px; y2:36px; "/>
  262. <datagrid id="grd_aprvlist" nodeset="/root/main/list/aprvlist" autoresize="true" caption="등록일^처리상태^전송사유^인원^등록자^승인구분^승인일" colsep="^" colwidth="79, 68, 204, 42, 81, 63, 59, 0" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" tooltip="true" style="left:0px; top:41px; width:635px; height:655px; ">
  263. <col class="text_center" ref="fstrgstdt" format="yyyy-mm-dd"/>
  264. <col class="text_center" disabled="true" ref="aprvflag" type="combo">
  265. <choices>
  266. <item>
  267. <label>미승인</label>
  268. <value>0</value>
  269. </item>
  270. <item>
  271. <label>승 인</label>
  272. <value>1</value>
  273. </item>
  274. <item>
  275. <label>종 결</label>
  276. <value>2</value>
  277. </item>
  278. </choices>
  279. </col>
  280. <col class="text_center" ref="aprvreqsmmcnts"/>
  281. <col class="text_center" ref="cnt"/>
  282. <col class="text_center" ref="fstrgstrnm"/>
  283. <col class="text_center" ref="sanctflag"/>
  284. <col class="text_center" ref="aprvdt" format="yyyy-mm-dd"/>
  285. <col ref="aprvcd" visibility="hidden"/>
  286. <script type="javascript" ev:event="ondblclick">
  287. <![CDATA[
  288. if( grd_aprvlist.isCell(event.target) && grd_aprvlist.row >= grd_aprvlist.fixedRows ){
  289. var row = grd_aprvlist.row;
  290. var aprvcd = grd_aprvlist.valueMatrix(row, grd_aprvlist.colRef("aprvcd"));
  291. if(aprvcd != ""){
  292. model.setValue("/root/send/data/aprvcd", aprvcd);
  293. model.removeNodeset("/root/main/list/smstrslist");
  294. submit("TRCNS00303");
  295. model.refresh();
  296. }
  297. }
  298. ]]>
  299. </script>
  300. </datagrid>
  301. <line id="line3" class="line_1" style="x1:640px; y1:36px; x2:1195px; y2:36px; "/>
  302. <datagrid id="grd_smstrslist" nodeset="/root/main/list/smstrslist" autoresize="true" caption="전송일^성 명^전화번호^메세지 내용" colsep="^" colwidth="70, 70, 90, 288" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" tooltip="true" style="left:640px; top:41px; width:555px; height:655px; ">
  303. <col class="text_center" ref="trsmdd" format="yyyy-mm-dd"/>
  304. <col class="text_center" ref="recvrnm"/>
  305. <col class="text_center" ref="recvrtelno"/>
  306. <col class="text_center" ref="msgcnts"/>
  307. </datagrid>
  308. <button id="btn_aprvflag2" class="btn3_letter3" visibility="hidden" style="left:187px; top:13px; width:68px; height:22px; ">
  309. <caption>종 결</caption>
  310. <script type="javascript" ev:event="DOMActivate">
  311. <![CDATA[
  312. var row = grd_aprvlist.row;
  313. var aprvcd = grd_aprvlist.valueMatrix(row, grd_aprvlist.colRef("aprvcd"));
  314. var aprvflag = grd_aprvlist.valueMatrix(row, grd_aprvlist.colRef("aprvflag"));
  315. var aprvcount = 0;
  316. if(row > 0){
  317. if( aprvflag == "0"){
  318. if(aprvcd != ""){
  319. if (messageBox("선택된 행의 종결을 ","Q004")==6){
  320. model.setValue("/root/main/aprvinfo/aprvcd", aprvcd);
  321. model.setValue("/root/main/aprvinfo/aprvflag", "2");//종결
  322. model.setValue("/root/send/data/aprvcd", aprvcd);
  323. submit("TXCNS00301");//종결저장
  324. submit("TRCNS00302");//승인리스트 조회
  325. submit("TRCNS00303");//전송별 수신인 리스트 조회
  326. for(i=1; i<grd_aprvlist.rows-1; i++){
  327. if(grd_aprvlist.valueMatrix(i, grd_aprvlist.colRef("aprvflag"))=="0"){
  328. aprvcount++;
  329. }
  330. }
  331. model.setValue("/root/temp/aprvcount",aprvcount);
  332. model.refresh();
  333. }
  334. }
  335. }else if(aprvflag != "0" && aprvflag != ""){
  336. messageBox("선택된 행은 이미","I001");
  337. return;
  338. }
  339. }else{
  340. messageBox("종결할 전송 리스트가 선택되지","E007");
  341. return;
  342. }
  343. ]]>
  344. </script>
  345. </button>
  346. </group>
  347. </xhtml:body>
  348. </xhtml:html>