SMCPC00100_캠페인관리.xrw 81 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * Name : SMCPC00100_캠페인관리
  4. * Summary : 캠페인 관리
  5. * Programmer : 엄윤호
  6. * Date Written : 2007.04.27
  7. * History : 2007.04.27
  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>캠페인 관리</xhtml:title>
  14. <model id="model1">
  15. <instance id="instance1">
  16. <root xmlns="">
  17. <main>
  18. <cmpn>
  19. <cmpnlist/>
  20. <cmpnattr>
  21. <savemode/>
  22. <cmpnnm/>
  23. <cmpncd/>
  24. <cmpnlrgcd/>
  25. <cmpnmdlcd/>
  26. <cmpnsmlcd/>
  27. <cmpnexecattr/>
  28. <rgstdeptnm/>
  29. <rgstdeptcd/>
  30. <trsmtrgtflag/>
  31. <execbaseddflag/>
  32. <execbasedayno/>
  33. <execbasemm/>
  34. <execbasedd/>
  35. <execbasespcldd/>
  36. <nextcmpnlnkpnttm/>
  37. <cmpnlnklist/>
  38. <delivelist/>
  39. <trsmtrgtlist/>
  40. <healexamtrsmtrgtlist/>
  41. </cmpnattr>
  42. <cmpnlnklist/>
  43. <delivelist/>
  44. <trsmtrgtlist/>
  45. <innrclntgruplist/>
  46. <healexamtrsmtrgtlist/>
  47. </cmpn>
  48. </main>
  49. <send>
  50. <cmpnsrch>
  51. <rgstfromdd/>
  52. <rgsttodd/>
  53. <cmpnnm/>
  54. <rgstr/>
  55. <cmpnflag/>
  56. <refauth/>
  57. </cmpnsrch>
  58. <cmpnattr>
  59. <cmpncd/>
  60. <trsmtrgtflag/>
  61. <delivelist>
  62. </delivelist>
  63. </cmpnattr>
  64. <cmpngrup>
  65. <cmpnlrgcd/>
  66. <cmpnmdlcd/>
  67. <refauth/>
  68. </cmpngrup>
  69. <cmpnlist/>
  70. </send>
  71. <init>
  72. <cmpnnm/>
  73. <menuid>SMCPC00100</menuid>
  74. <comncdlist>
  75. <C0013list/>
  76. <C0014list/>
  77. <C0015list/>
  78. <C0016list/>
  79. <C0017list/>
  80. <C0018list/>
  81. <C0031list/>
  82. <C0032list/>
  83. </comncdlist>
  84. </init>
  85. <hidden>
  86. <trsmtrgtmenu>
  87. <menu>
  88. <name>행삭제</name>
  89. <func>trsmtrgtlist_del</func>
  90. </menu>
  91. </trsmtrgtmenu>
  92. <healexamtrsmtrgtmenu>
  93. <menu>
  94. <name>행삭제</name>
  95. <func>healexamtrsmtrgtlist_del</func>
  96. </menu>
  97. </healexamtrsmtrgtmenu>
  98. </hidden>
  99. <temp>
  100. <cmpnattr>
  101. <cmpnlnk>
  102. <nextcmpnnm/>
  103. <nextcmpncd/>
  104. </cmpnlnk>
  105. <delivesche>
  106. <deliveschedayno1/>
  107. <deliveschedayno/>
  108. <bfaftflag>B</bfaftflag>
  109. <deliveschetm/>
  110. <smsuseyn/>
  111. <smsmsglrgcd/>
  112. <smsmsgmdlcd/>
  113. <smsmsgsmlcd/>
  114. <emailuseyn/>
  115. <emailmsglrgcd/>
  116. <emailmsgmdlcd/>
  117. <emailmsgsmlcd/>
  118. <smsmsg/>
  119. <emailtitl/>
  120. <msgcnts/>
  121. </delivesche>
  122. <cmpncd/>
  123. </cmpnattr>
  124. <chkcmpncd>
  125. <cmpncd/>
  126. </chkcmpncd>
  127. <result/>
  128. <nextcmpnlist/>
  129. </temp>
  130. <fwd>
  131. <cmpninfo/>
  132. <datelist/>
  133. <cmpnlist/>
  134. </fwd>
  135. <mastauth>
  136. <mastauth/>
  137. <aprvuserid/>
  138. <posdeptcd/>
  139. </mastauth>
  140. </root>
  141. </instance>
  142. <script type="javascript" ev:event="xforms-ready">
  143. <![CDATA[
  144. //model.toggle("cmpn_case1");
  145. model.toggle("trgt_case1");
  146. // C0013: 캠페인속성, C0014: 캠페인예정구분, C0015: 캠페인기준구분, C0016: 캠페인사용여부, C0017: 캠페인응답여부, C0018: 캠페인연결시점, C0031: 고객중복처리여부, C0032: 적용기준일
  147. zbcfGetCodeList(new Array("C0013", "C0014", "C0015", "C0016", "C0017", "C0018", "C0031", "C0032"),
  148. new Array("/root/init/comncdlist/C0013list", "/root/init/comncdlist/C0014list", "/root/init/comncdlist/C0015list",
  149. "/root/init/comncdlist/C0016list", "/root/init/comncdlist/C0017list", "/root/init/comncdlist/C0018list", "/root/init/comncdlist/C0031list", "/root/init/comncdlist/C0032list"));
  150. // 캠페인 및 대상자 목록 리스트 초기화
  151. model.removeNodeset("/root/main/cmpn/cmpnlist");
  152. // 권한설정, 캠페인 및 대상자 등록화면 초기화
  153. fCheckAuth();
  154. fInitCmpn();
  155. fSetButtons();
  156. model.toggle("trgt_case2");
  157. //마스터 권한 조회
  158. submit("TRCRB00106"); //권한 조회
  159. var mastauth = model.getValue("root/mastauth/mastauth")
  160. if (mastauth != "Y" ) {
  161. btn_aprvsave.disabled = true;
  162. }
  163. ]]>
  164. </script>
  165. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  166. <!--submission id="TRZBC00102" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/-->
  167. <submission id="TRCPC00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/cmpnsrch" resultref="/root/main/cmpn/cmpnlist"/>
  168. <submission id="TRCPC00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/trgtsrch" add="bottom" resultref="/root/main/trgt/trgtlist"/>
  169. <submission id="TRCPC00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/cmpnattr" resultref="/root/main/cmpn/cmpnattr"/>
  170. <submission id="TRCPC00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/trgtattr" resultref="/root/main/trgt/trgtattr"/>
  171. <submission id="TRCPC00105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/cmpnattr" resultref="/root/main/trgt/trgtattr"/>
  172. <submission id="TRCPC00106" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/temp/chkcmpncd" resultref="/root/temp/chkcmpncd"/>
  173. <submission id="TRCPC00107" mediatype="application/x-www-form-urlencoded" method="post" resultref="root/temp/trgtattr/rgstseq"/>
  174. <submission id="TRCPC00108" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/trgtgrup" resultref="/root/init/trgtgrup"/>
  175. <submission id="TRCPC00109" mediatype="application/x-www-form-urlencoded" method="post" resultref="/root/temp/cmpnattr/cmpncd"/>
  176. <submission id="TRCRB00106" mediatype="application/x-www-form-urlencoded" method="post" replace="instance" resultref="/root/mastauth"/>
  177. <submission id="TXCPC00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/cmpn/cmpnattr" resultref="/root/temp/result"/>
  178. <submission id="TXCPC00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/trgt/trgtattr" resultref="/root/temp/result"/>
  179. <submission id="TXCPC00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/cmpnlist" resultref="/root/temp/result"/>
  180. <submission id="TXCPC00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/trgtlist" resultref="/root/temp/result"/>
  181. </model>
  182. <script type="javascript" src="../../../crm/crmweb/js/CCZ001.js"/>
  183. <script type="javascript" src="../../../crm/campainweb/js/CPZ001.js"/>
  184. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  185. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  186. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  187. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  188. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  189. <script type="javascript">
  190. <![CDATA[
  191. function fCheckAuth() {
  192. // 권한체크
  193. if (!checkAuth("r")) {
  194. btn_search.disabled = true;
  195. }
  196. if (!checkAuth("x")) {
  197. btn_cmpnsave.disabled = true;
  198. btn_cmpnreset.disabled = true;
  199. }
  200. if (!checkAuth("p")) {
  201. btn_saveexcel.disabled = true;
  202. btn_saveexcel2.disabled = true;
  203. }
  204. }
  205. function fInitCmpn() {
  206. // 캠페인 등록화면 초기화
  207. model.resetInstanceNode("/root/main/cmpn/cmpnattr");
  208. model.removeNodeset("/root/main/cmpn/cmpnlnklist");
  209. model.removeNodeset("/root/main/cmpn/delivelist");
  210. model.removeNodeset("/root/main/cmpn/trsmtrgtlist");
  211. model.removeNodeset("/root/main/cmpn/healexamtrsmtrgtlist");
  212. model.removeNodeset("/root/main/cmpn/innrclntgruplist");
  213. model.setValue("/root/main/cmpn/cmpnattr/cmpnexecattr", "1");
  214. model.setValue("/root/main/cmpn/cmpnattr/execbaseddflag", "1");
  215. model.setValue("/root/main/cmpn/cmpnattr/nextcmpnlnkpnttm", "C");
  216. model.resetInstanceNode("/root/temp/cmpnattr/delivesche");
  217. model.setValue("/root/temp/cmpnattr/delivesche/bfaftflag", "B");
  218. fSetBaseDD(1);
  219. // 캠페인 추가(입력)모드
  220. model.setValue("/root/main/cmpn/cmpnattr/savemode","I");
  221. var dutplcenm = getUserInfo("dutplcenm");
  222. var dutplcecd = getUserInfo("dutplcecd");
  223. model.makeValue("/root/main/cmpn/cmpnattr/rgstdeptnm",dutplcenm);
  224. model.makeValue("/root/main/cmpn/cmpnattr/rgstdeptcd",dutplcecd);
  225. }
  226. function fInitGetAttr() {
  227. // 캠페인 조회한 속성 초기화
  228. model.setValue("/root/send/cmpnattr/cmpncd", "");
  229. model.setValue("/root/init/cmpnnm", ""); //선택된 캠페인이 없으면 대상자 조회의 이름 표시 해제
  230. fInitCmpn();
  231. }
  232. function fSetBaseDD(s) {
  233. // // 캠페인(1) 및 대상자(2) 실행기준일 선택에 따른 입력 컨트롤 제한
  234. var base_flag = "";
  235. if (s==1) {
  236. base_flag = model.getValue("/root/main/cmpn/cmpnattr/execbaseddflag");
  237. switch (base_flag) {
  238. case "1":
  239. ipt_exebase11.disabled = false;
  240. ipt_exebase21.disabled = true;
  241. ipt_exebase22.disabled = true;
  242. ipt_exebase31.disabled = true;
  243. break;
  244. case "2":
  245. ipt_exebase11.disabled = true;
  246. ipt_exebase21.disabled = false;
  247. ipt_exebase22.disabled = false;
  248. ipt_exebase31.disabled = true;
  249. break;
  250. case "3":
  251. ipt_exebase11.disabled = true;
  252. ipt_exebase21.disabled = true;
  253. ipt_exebase22.disabled = true;
  254. ipt_exebase31.disabled = false;
  255. break;
  256. default:
  257. ipt_exebase11.disabled = false;
  258. ipt_exebase21.disabled = true;
  259. ipt_exebase22.disabled = true;
  260. ipt_exebase31.disabled = true;
  261. break;
  262. }
  263. }
  264. }
  265. function fCheckCmpnLnk(grid, cmpn_cd) {
  266. // 연결캠페인 중복 등록 체크 - fAddCmpnLnk, fAddTrgtCmpnLnk에서 호출
  267. if (grid.rows > 0) {
  268. for (i=1; i <= grid.rows; i++) {
  269. if (grid.valueMatrix(i, 2) == cmpn_cd) {
  270. return true;
  271. }
  272. }
  273. }
  274. }
  275. function fCheckCmpnCd(cmpn_cd) {
  276. // 캠페인 코드 중복(존재) 체크 - 버튼에서 직접 호출 및 fSaveCmpn에서 호출, 연결 캠페인에서 확인
  277. model.setValue("/root/temp/chkcmpncd/cmpncd", cmpn_cd);
  278. if (submit("TRCPC00106")) {
  279. if (model.getValue("/root/temp/chkcmpncd/cmpncd") != "") {
  280. return true; // 코드가 존재함
  281. } else {
  282. model.makeNode("/root/temp/chkcmpncd/cmpncd"); // 결과 값이 없을 경우 노드(인스턴스)가 사라짐..
  283. return false;
  284. }
  285. }
  286. }
  287. function fAddCmpnLnk() {
  288. // 필수입력 및 입력값 체크
  289. var next_cmpn_nm = model.getValue("/root/temp/cmpnattr/cmpnlnk/nextcmpnnm");
  290. var next_cmpn_cd = model.getValue("/root/temp/cmpnattr/cmpnlnk/nextcmpncd");
  291. if (next_cmpn_nm=="" || next_cmpn_cd=="") {
  292. messageBox("연결 캠페인을","C002");
  293. model.setFocus("btn_cmpnsrch2");
  294. // 캠페인 코드 존재여부 확인
  295. } else if (!fCheckCmpnCd(next_cmpn_cd)) {
  296. messageBox("캠페인코드가","E004");
  297. model.setFocus("ipt_cmpnlnkcd");
  298. // 연결캠페인 중복 등록 체크
  299. } else if (fCheckCmpnLnk(grd_cmpnlnklist, next_cmpn_cd)) {
  300. messageBox("연결 캠페인이 ","E006");
  301. model.setFocus("btn_cmpnsrch2");
  302. } else {
  303. grd_cmpnlnklist.addRow();
  304. model.copyNode("/root/main/cmpn/cmpnlnklist[" + grd_cmpnlnklist.row + " ]", "/root/temp/cmpnattr/cmpnlnk");
  305. model.resetInstanceNode("/root/temp/cmpnattr/cmpnlnk");
  306. model.refresh();
  307. }
  308. }
  309. function fCheckExecDD(grid, exec_dd, bf_aft_flag, exec_tm) {
  310. // 실행예정일 중복 등록 체크 - fAddExecDD, fAddTrgtExecDD에서 호출
  311. if (grid.rows > 0) {
  312. for (i=1; i <= grid.rows; i++) {
  313. if (grid.valueMatrix(i, 2) == exec_dd && grid.valueMatrix(i, 3) == bf_aft_flag && grid.valueMatrix(i, 4) == exec_tm) {
  314. return true;
  315. }
  316. }
  317. }
  318. }
  319. function fAddExecDD() {
  320. var delive_dd = model.getValue("/root/temp/cmpnattr/delivesche/deliveschedayno");
  321. var bf_aft_flag = model.getValue("/root/temp/cmpnattr/delivesche/bfaftflag");
  322. var delive_tm = model.getValue("/root/temp/cmpnattr/delivesche/deliveschetm")
  323. var sms_use_yn = model.getValue("/root/temp/cmpnattr/delivesche/smsuseyn");
  324. var email_use_yn = model.getValue("/root/temp/cmpnattr/delivesche/emailuseyn");
  325. var exec_base_dd_flag = model.getValue("/root/main/cmpn/cmpnattr/execbaseddflag");
  326. var execbasespcldd = model.getValue("/root/main/cmpn/cmpnattr/execbasespcldd");
  327. var execbasedayno = model.getValue("/root/main/cmpn/cmpnattr/execbasedayno");
  328. var execbasemm = model.getValue("/root/main/cmpn/cmpnattr/execbasemm");
  329. var execbasedd = model.getValue("/root/main/cmpn/cmpnattr/execbasedd");
  330. // 필수입력 및 입력값 체크
  331. if (exec_base_dd_flag=="") {
  332. messageBox("전송 D-day를","C001");
  333. } else if (exec_base_dd_flag=="3" && execbasespcldd=="") {
  334. messageBox("전송 D-day를","C001");
  335. model.setFocus("ipt_exebase11");
  336. } else if (exec_base_dd_flag=="1" && execbasedayno=="") {
  337. messageBox("전송 D-day를","C001");
  338. model.setFocus("ipt_exebase21");
  339. } else if (exec_base_dd_flag=="2" && execbasemm=="") {
  340. messageBox("전송 D-day를","C001");
  341. model.setFocus("ipt_exebase31");
  342. } else if (delive_dd=="") {
  343. messageBox("전송 D-day","C001");
  344. model.setFocus("ipt_exedate");
  345. } else if (delive_tm=="") {
  346. messageBox("실행 예정시간을","C001");
  347. model.setFocus("ipt_exetime");
  348. // SMS, Email 둘 중 하나 체크 및 체크된 채널 메시지 선택 체크
  349. } else if (sms_use_yn=="" && email_use_yn=="") {
  350. messageBox("SMS와 Email 둘중 하나는","C002");
  351. model.setFocus("chk_sms");
  352. } else if (sms_use_yn=="Y" && model.getValue("/root/temp/cmpnattr/delivesche/smsmsgsmlcd")=="") {
  353. messageBox("SMS 메시지를","C002");
  354. model.setFocus("ipt_smscd");
  355. } else if (email_use_yn=="Y" && model.getValue("/root/temp/cmpnattr/delivesche/emailmsgsmlcd")=="") {
  356. messageBox("Email 메시지를","C002");
  357. model.setFocus("ipt_emailcd");
  358. // 실행예정일 중복 체크
  359. } else if (fCheckExecDD(grd_exedatelist, delive_dd, bf_aft_flag, delive_tm)) {
  360. messageBox("실행예정일이 ","E006");
  361. model.setFocus("ipt_exedate");
  362. } else {
  363. // 캠페인 전송내용 그리드에 전송 D-day표시
  364. var deliveschedayno1 = ""
  365. if (exec_base_dd_flag=="3") {
  366. deliveschedayno1 = execbasespcldd;
  367. } else if (exec_base_dd_flag=="1") {
  368. deliveschedayno1 = execbasedayno+"일후";
  369. } else if (exec_base_dd_flag=="2") {
  370. deliveschedayno1 = execbasemm+"개월"+execbasedd+"일후";
  371. }
  372. grd_exedatelist.addRow();
  373. model.copyNode("/root/main/cmpn/delivelist[" + grd_exedatelist.row + " ]", "/root/temp/cmpnattr/delivesche");
  374. for (i = 1; i < grd_exedatelist.rows; i++) {
  375. model.setValue("/root/main/cmpn/delivelist["+i+"]/deliveschedayno1",deliveschedayno1);
  376. }
  377. model.resetInstanceNode("/root/temp/cmpnattr/delivesche");
  378. model.setValue("/root/temp/cmpnattr/delivesche/bfaftflag", "B");
  379. model.refresh();
  380. }
  381. }
  382. function fCheckCmpn() {
  383. var exec_base_dd_flag = model.getValue("/root/main/cmpn/cmpnattr/execbaseddflag");
  384. if (model.getValue("/root/main/cmpn/cmpnattr/cmpnnm")==""){
  385. messageBox("캠페인명을","C001");
  386. model.setFocus("ipt_cmpnnm");
  387. //} else if (model.getValue("/root/main/cmpn/cmpnattr/cmpncd")=="") {
  388. // messageBox("캠페인코드를","C001");
  389. // model.setFocus("ipt_cmpncd");
  390. } else if (model.getValue("/root/main/cmpn/cmpnattr/cmpnlrgcd")=="") {
  391. messageBox("캠페인 대분류를","C002");
  392. model.setFocus("cmb_cmpnlrg");
  393. } else if (model.getValue("/root/main/cmpn/cmpnattr/cmpnmdlcd")=="") {
  394. messageBox("캠페인 중분류를","C002");
  395. model.setFocus("cmb_cmpnmdl");
  396. } else if (model.getValue("/root/main/cmpn/cmpnattr/cmpnsmlcd")=="") {
  397. messageBox("캠페인 소분류를","C002");
  398. model.setFocus("cmb_cmpnsml");
  399. } else if (model.getValue("/root/main/cmpn/cmpnattr/rgstdeptcd")=="") {
  400. messageBox("캠페인 등록부서를","C002");
  401. model.setFocus("ipt_deptnm");
  402. } else if (model.getValue("/root/main/cmpn/cmpnattr/trsmtrgtflag")=="") {
  403. messageBox("캠페인 전송대상을","C002");
  404. model.setFocus("cmb_trsmtrgtflag");
  405. // 실행기준일 입력 체크
  406. } else if (exec_base_dd_flag=="3" && model.getValue("/root/main/cmpn/cmpnattr/execbasespcldd")=="") {
  407. messageBox("실행 기준일을","C001");
  408. model.setFocus("ipt_exebase11");
  409. } else if (exec_base_dd_flag=="1" && model.getValue("/root/main/cmpn/cmpnattr/execbasedayno")=="") {
  410. messageBox("실행 기준일을","C001");
  411. model.setFocus("ipt_exebase21");
  412. } else if (exec_base_dd_flag=="2" && model.getValue("/root/main/cmpn/cmpnattr/execbasemm")=="") {
  413. messageBox("실행 기준일을","C001");
  414. model.setFocus("ipt_exebase31");
  415. // 실행예정일 입력 체크
  416. } else if (grd_exedatelist.rows == 1) {
  417. messageBox("실행 예정일을 추가하지","E007");
  418. model.setFocus("ipt_exedate");
  419. // 속성이 연결성일 경우 연결 캠페인 추가
  420. } else if (model.getValue("/root/main/cmpn/cmpnattr/cmpnexecattr")=="3" && grd_cmpnlnklist.rows == 1) {
  421. messageBox("연결 캠페인을 추가하지","E007");
  422. model.setFocus("ipt_cmpnlnkcd");
  423. } else {
  424. return true;
  425. }
  426. }
  427. function fCheckBaseDD() {
  428. // 실행기준일과 실행일시 체크 - fSaveCmpn에서 호출
  429. // (실행기준일을 먼저 입력 > 실행예정일 입력 시 날짜 체크 > 실행기준일 변경 시 다시 체크해야 하며, 시점이 불명확하여 저장 시 체크)
  430. var return_value = true;
  431. var grid = grd_exedatelist;
  432. var prest_dd = getCurrentDate();
  433. var base_dd = new Date();
  434. var exec_base_dd_flag = model.getValue("/root/main/cmpn/cmpnattr/execbaseddflag");
  435. var exec_base_dayno = model.getValue("/root/main/cmpn/cmpnattr/execbasedayno");
  436. var exec_base_mm = model.getValue("/root/main/cmpn/cmpnattr/execbasemm");
  437. var exec_base_dd = model.getValue("/root/main/cmpn/cmpnattr/execbasedd");
  438. var exec_base_spcl_dd = model.getValue("/root/main/cmpn/cmpnattr/execbasespcldd");
  439. if (exec_base_dd_flag == "1") {
  440. base_dd = base_dd.getAddDate(parseInt(exec_base_dayno), "D");
  441. } else if (exec_base_dd_flag == "2") {
  442. base_dd = base_dd.getAddDate(parseInt(exec_base_mm), "M");
  443. base_dd = base_dd.getAddDate(parseInt(exec_base_dd), "D");
  444. } else if (exec_base_dd_flag == "3") {
  445. base_dd = exec_base_spcl_dd.toDate();
  446. }
  447. // 실행예정일(그리드 값)과 실행기준일 비교
  448. if (grid.rows > 0) {
  449. for (i=1; i <= grid.rows; i++) {
  450. var exec_dd = base_dd.getAddDate(-parseInt(grid.valueMatrix(i, 1))).getDateFormat("YYYYMMDD");
  451. if (grid.valueMatrix(i, 2) == "B" && prest_dd > exec_dd) {
  452. return_value = false;
  453. messageBox(i+" 번째 실행예정일이 과거날짜","E008");
  454. //break;
  455. }
  456. }
  457. }
  458. return return_value;
  459. }
  460. function fSaveCmpn() {
  461. var save_mode = model.getValue("/root/main/cmpn/cmpnattr/savemode");
  462. // 필수입력 체크
  463. if (!fCheckCmpn()) return;
  464. // 캠페인 코드 중복 체크 및 시퀀스 할당
  465. if (save_mode == "I") {
  466. if (model.getValue("root/main/cmpn/cmpnattr/cmpncd") == "") {
  467. submit("TRCPC00109"); // cmpncd sequence에서 값 가져와서 할당
  468. var cmpn_seq = model.getValue("/root/temp/cmpnattr/cmpnattr/cmpncd");
  469. var cmpn_cd = "@" + cmpn_seq;
  470. //alert(cmpn_seq+"/"+cmpn_cd);
  471. model.setValue("root/main/cmpn/cmpnattr/cmpncd", cmpn_cd);
  472. } else {
  473. if (fCheckCmpnCd(model.getValue("root/main/cmpn/cmpnattr/cmpncd"))) {
  474. messageBox("캠페인코드가","E006");
  475. model.setFocus("ipt_cmpncd");
  476. return false;
  477. }
  478. }
  479. }
  480. // 실행기준일과 실행일시 체크
  481. if (!fCheckBaseDD()) return;
  482. // 연결캠페인, 실행예정일 변경된 리스트 확인
  483. var updt_cmpn_lnk = getGridUpdateData(grd_cmpnlnklist);
  484. if (updt_cmpn_lnk != "") {
  485. model.setValue("/root/main/cmpn/cmpnattr/cmpnlnklist", grd_cmpnlnklist.getUpdateData());
  486. }
  487. var updt_exec_sche = getGridUpdateData(grd_exedatelist);
  488. if (updt_exec_sche != "") {
  489. model.setValue("/root/main/cmpn/cmpnattr/delivelist", grd_exedatelist.getUpdateData());
  490. }
  491. // 전송대상 그리드 내용을 VO형태로 구성
  492. var trsmtrgtflag = model.getValue("/root/main/cmpn/cmpnattr/trsmtrgtflag");
  493. if (trsmtrgtflag == "1") {
  494. if (grd_trsmtrgtlist.rows > 0 ) {
  495. var send_status = new Array(grd_trsmtrgtlist.rows);
  496. var send_appbasedd = new Array(grd_trsmtrgtlist.rows);
  497. var send_spcldd = new Array(grd_trsmtrgtlist.rows);
  498. var send_clintdupltretmthd = new Array(grd_trsmtrgtlist.rows);
  499. var send_daydd = new Array(grd_trsmtrgtlist.rows);
  500. var send_exechour = new Array(grd_trsmtrgtlist.rows);
  501. var send_execmnt = new Array(grd_trsmtrgtlist.rows);
  502. var send_dtmnkey = new Array(grd_trsmtrgtlist.rows);
  503. var sColSep = "▦";
  504. var sRowSep = "▩";
  505. var send_data = "m" + sColSep + "appbasedd" + sColSep + "spcldd" + sColSep + "clintdupltretmthd" + sColSep + "exechour" + sColSep + "execmnt" + sColSep + "dtmnkey" + sRowSep; //타이틀 map file 등에서 사용
  506. for (var i=1; i<grd_trsmtrgtlist.rows; i++) {
  507. send_status[i] = grd_trsmtrgtlist.valueMatrix(i, grd_trsmtrgtlist.colRef("status")); // 상태값(I,U,D)
  508. send_appbasedd[i] = grd_trsmtrgtlist.valueMatrix(i, grd_trsmtrgtlist.colRef("appbasedd")); // 산정기준일
  509. send_spcldd[i] = grd_trsmtrgtlist.valueMatrix(i, grd_trsmtrgtlist.colRef("spcldd")); // 특정일
  510. send_clintdupltretmthd[i] = grd_trsmtrgtlist.valueMatrix(i, grd_trsmtrgtlist.colRef("clintdupltretmthd")); // 업데이트구분
  511. send_daydd[i] = grd_trsmtrgtlist.valueMatrix(i, grd_trsmtrgtlist.colRef("daydd")); // 업데이트실행시간
  512. send_exechour[i] = send_daydd[i].substring(0,2); // 업데이트실행시간(시)
  513. send_execmnt[i] = send_daydd[i].substring(2,4); // 업데이트실행시간(분)
  514. send_dtmnkey[i] = grd_trsmtrgtlist.valueMatrix(i, grd_trsmtrgtlist.colRef("dtmnkey")); // 데이터마이닝키
  515. if (send_status[i] != "") {
  516. send_data += send_status[i] + sColSep + send_appbasedd[i] + sColSep + send_spcldd[i] + sColSep + send_clintdupltretmthd[i] + sColSep + send_exechour[i] + sColSep + send_execmnt[i] + sColSep + send_dtmnkey[i] + sRowSep; // VO형태로 구성
  517. }
  518. }
  519. model.makeValue("/root/main/cmpn/cmpnattr/trsmtrgtlist", send_data);
  520. }
  521. } else if (trsmtrgtflag == "3") {
  522. if (grd_healexamtrsmtrgtlist.rows > 0 ) {
  523. var send_status = new Array(grd_healexamtrsmtrgtlist.rows);
  524. var send_appbasedd = new Array(grd_healexamtrsmtrgtlist.rows);
  525. var send_spcldd = new Array(grd_healexamtrsmtrgtlist.rows);
  526. var send_clintdupltretmthd = new Array(grd_healexamtrsmtrgtlist.rows);
  527. var send_execdt = new Array(grd_healexamtrsmtrgtlist.rows);
  528. var send_healexamdtmnkey = new Array(grd_healexamtrsmtrgtlist.rows);
  529. var sColSep = "▦";
  530. var sRowSep = "▩";
  531. var send_data = "m" + sColSep + "appbasedd" + sColSep + "spcldd" + sColSep + "clintdupltretmthd" + sColSep + "execdt" + sColSep + "healexamdtmnkey" + sRowSep; //타이틀 map file 등에서 사용
  532. for (var i=1; i<grd_healexamtrsmtrgtlist.rows; i++) {
  533. send_status[i] = grd_healexamtrsmtrgtlist.valueMatrix(i, grd_healexamtrsmtrgtlist.colRef("status")); // 상태값(I,U,D)
  534. send_appbasedd[i] = grd_healexamtrsmtrgtlist.valueMatrix(i, grd_healexamtrsmtrgtlist.colRef("appbasedd")); // 산정기준일
  535. send_spcldd[i] = grd_healexamtrsmtrgtlist.valueMatrix(i, grd_healexamtrsmtrgtlist.colRef("spcldd")); // 특정일
  536. send_clintdupltretmthd[i] = grd_healexamtrsmtrgtlist.valueMatrix(i, grd_healexamtrsmtrgtlist.colRef("clintdupltretmthd")); // 업데이트구분
  537. send_execdt[i] = grd_healexamtrsmtrgtlist.valueMatrix(i, grd_healexamtrsmtrgtlist.colRef("daydd")); // 업데이트실행시간
  538. send_healexamdtmnkey[i] = grd_healexamtrsmtrgtlist.valueMatrix(i, grd_healexamtrsmtrgtlist.colRef("healexamdtmnkey")); // 건진데이터마이닝키
  539. if (send_status[i] != "") {
  540. send_data += send_status[i] + sColSep + send_appbasedd[i] + sColSep + send_spcldd[i] + sColSep + send_clintdupltretmthd[i] + sColSep + send_execdt[i] + sColSep + send_healexamdtmnkey[i] + sRowSep; // VO형태로 구성
  541. }
  542. }
  543. model.makeValue("/root/main/cmpn/cmpnattr/healexamtrsmtrgtlist", send_data);
  544. }
  545. }
  546. // alertOn();
  547. if (submit("TXCPC00101")) {
  548. // 그리드의 상태 제거 및 인스턴스 초기화
  549. grd_cmpnlnklist.clearStatus();
  550. grd_exedatelist.clearStatus();
  551. grd_trsmtrgtlist.clearStatus();
  552. grd_healexamtrsmtrgtlist.clearStatus();
  553. //model.setValue("/root/main/cmpn/cmpnattr/cmpnlnklist", "");
  554. //model.setValue("/root/main/cmpn/cmpnattr/delivelist", "");
  555. //model.setValue("/root/main/cmpn/cmpnattr/trsmtrgtlist", "");
  556. //model.setValue("/root/main/cmpn/cmpnattr/healexamtrsmtrgtlist", "");
  557. model.removenodeset("/root/main/cmpn/cmpnattr/cmpnlnklist");
  558. model.removenodeset("/root/main/cmpn/cmpnattr/delivelist");
  559. model.removenodeset("/root/main/cmpn/cmpnattr/trsmtrgtlist");
  560. model.removenodeset("/root/main/cmpn/cmpnattr/healexamtrsmtrgtlist");
  561. // 신규 등록이면 수정모드로 변경(키값 전달)
  562. if (save_mode == "I") {
  563. model.setValue("/root/main/cmpn/cmpnattr/savemode", "U");
  564. model.setValue("/root/send/cmpnattr/cmpncd", model.getValue("/root/main/cmpn/cmpnattr/cmpncd"));
  565. fSetControls(2);
  566. }
  567. messageBox("캠페인 저장이","I002");
  568. }
  569. }
  570. function fConfirmDelCmpn() {
  571. // 캠페인에 대상자가 존재하는지 여부 확인 후 삭제 확인
  572. if (messageBox("캠페인에 등록된 대상자도 삭제됩니다.\n캠페인을","Q001")==6) {
  573. deleteSelectedRows(grd_cmpnlist, true); // 캠페인 선택행 삭제(마크표시)
  574. fSaveCmpnList(); //캠페인 리스트 저장
  575. fInitGetAttr(); //조회한 속성 초기화
  576. }
  577. }
  578. function fSaveCmpnList() {
  579. var updt_cmpn_list = getGridUpdateData(grd_cmpnlist);
  580. if (updt_cmpn_list != "") {
  581. model.setValue("/root/send/cmpnlist", grd_cmpnlist.getUpdateData());
  582. }
  583. if (submit("TXCPC00103")) {
  584. grd_cmpnlist.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  585. model.setValue("/root/send/cmpnlist","");
  586. messageBox("캠페인 저장이","I002");
  587. submit("TRCPC00101");
  588. //같은 부서 마스터만 승인설정 가능
  589. fGetAprvynSet();
  590. }
  591. }
  592. function fSetControls(s) {
  593. // 캠페인(1:등록, 2:수정) 및 대상자(3:등록, 4:수정) 수정일 경우 입력 및 선택 제한(수정 불가)
  594. switch (s) {
  595. case 1:
  596. ipt_cmpncd.disabled = false;
  597. ipt_cmpncd.attribute("format") = "AAAAAAAA";
  598. btn_cmpnsrch.disabled = false;
  599. cmb_trsmtrgtflag.disabled = false;
  600. break;
  601. case 2:
  602. ipt_cmpncd.disabled = true;
  603. ipt_cmpncd.attribute("format") = "";
  604. btn_cmpnsrch.disabled = true;
  605. cmb_trsmtrgtflag.disabled = true;
  606. break;
  607. default:
  608. break;
  609. }
  610. }
  611. function fGetCmpnAttr() {
  612. fInitCmpn(); //초기화 후 조회(이전 목록이 남아있는 경우가 있음)
  613. fSetControls(2); //캠페인 입력컨트롤 제한
  614. submit("TRCPC00103");
  615. // 캠페인 전송내용 그리드에 전송 D-day표시
  616. var exec_base_dd_flag = model.getValue("/root/main/cmpn/cmpnattr/execbaseddflag");
  617. var execbasespcldd = model.getValue("/root/main/cmpn/cmpnattr/execbasespcldd");
  618. var execbasedayno = model.getValue("/root/main/cmpn/cmpnattr/execbasedayno");
  619. var execbasemm = model.getValue("/root/main/cmpn/cmpnattr/execbasemm");
  620. var execbasedd = model.getValue("/root/main/cmpn/cmpnattr/execbasedd");
  621. var deliveschedayno1 = ""
  622. if (exec_base_dd_flag=="3") {
  623. deliveschedayno1 = execbasespcldd;
  624. } else if (exec_base_dd_flag=="1") {
  625. deliveschedayno1 = execbasedayno+"일후";
  626. } else if (exec_base_dd_flag=="2") {
  627. deliveschedayno1 = execbasemm+"개월"+execbasedd+"일후";
  628. }
  629. for (i = 1; i < grd_exedatelist.rows; i++) {
  630. model.makeValue("/root/main/cmpn/delivelist["+i+"]/deliveschedayno1",deliveschedayno1);
  631. }
  632. model.setValue("/root/main/cmpn/cmpnattr/savemode","U");
  633. model.refresh();
  634. fSetBaseDD(1); //실행기준일 입력 제한
  635. fTrsmTrgtFlag();
  636. }
  637. function fGridSetStatus(grid, stat) {
  638. // 멀티업데이트 그리드의 상태값을 설정
  639. if (grid.rows > 0) {
  640. for (i = 0; i < grid.rows; i++) {
  641. grid.addStatus(i, stat);
  642. }
  643. }
  644. }
  645. function fCalcScheDt(sche_base_dd, delive_sche_dayno, bf_aft_flag, delive_sche_tm) {
  646. // 실제실행일시 계산
  647. var cmpn_exec_dt;
  648. if (bf_aft_flag == "B") delive_sche_dayno = (0 - delive_sche_dayno);
  649. cmpn_exec_dt = sche_base_dd.toDate().getAddDate(parseInt(delive_sche_dayno), "D");
  650. cmpn_exec_dt = getDateTime(cmpn_exec_dt, "D") + delive_sche_tm + "00";
  651. return cmpn_exec_dt;
  652. }
  653. function fCalcExecDt() {
  654. // 실행기준일과 실행예정목록으로 실제 실행일시 계산(등록일 기준)
  655. var grid = grd_exedatelist_t;
  656. if (grid.rows > 1) {
  657. // 신규등록일 때 등록일시 설정, 수정일 때 기존 등록일시 설정
  658. if (model.getValue("/root/send/trgtattr/cmpnrgstdt")=="") {
  659. var rgst_dd = getCurrentDate();
  660. var rgst_tm = getCurrentTime();
  661. var rgst_dt = rgst_dd + rgst_tm;
  662. model.setValue("/root/main/trgt/trgtattr/cmpnrgstdt", rgst_dt); // 대상자에 등록일 키값 할당
  663. } else {
  664. var rgst_dd = model.getValue("/root/send/trgtattr/cmpnrgstdt");
  665. }
  666. var sche_base_dd = fCalcBaseDt(rgst_dd); // 실행기준일 계산
  667. var cmpn_exec_dt = new Array(grid.rows);
  668. for (i = 1; i < grid.rows; i++) {
  669. var delive_sche_dayno = model.getValue("/root/main/trgt/delivelist["+i+"]/deliveschedayno");
  670. var bf_aft_flag = model.getValue("/root/main/trgt/delivelist["+i+"]/bfaftflag");
  671. var delive_sche_tm = model.getValue("/root/main/trgt/delivelist["+i+"]/deliveschetm");
  672. cmpn_exec_dt[i] = fCalcScheDt(sche_base_dd, delive_sche_dayno, bf_aft_flag, delive_sche_tm); // 실행예정일시 계산
  673. // DB에 입력을 위해 delivelist에 저장 및 화면 출력을 위해 execlist에 저장
  674. model.setValue("/root/main/trgt/delivelist["+i+"]/cmpnexecdt", cmpn_exec_dt[i]);
  675. grd_execlist.addRow();
  676. model.setValue("/root/main/trgt/execlist["+i+"]/cmpnrgstdt", rgst_dd); //등록일
  677. model.setValue("/root/main/trgt/execlist["+i+"]/cmpnexecdt", cmpn_exec_dt[i]); //실행일
  678. }
  679. }
  680. }
  681. function fCalcExecList(stat) {
  682. var grid = grd_exedatelist_t;
  683. if (stat == "i") {
  684. // 대상자별 실행예정목록을 추가 시 실행예정목록으로 실제 실행일시 계산(등록일 기준)
  685. var rgst_dd = model.getValue("/root/main/trgt/trgtattr/cmpnrgstdt"); // 캠페인 등록일이 키값이므로.. 기존 등록일을 기준으로 사용
  686. var sche_base_dd = fCalcBaseDt(rgst_dd); // 실행기준일 계산
  687. var i = grid.row;
  688. var delive_sche_dayno = model.getValue("/root/main/trgt/delivelist["+i+"]/deliveschedayno");
  689. var bf_aft_flag = model.getValue("/root/main/trgt/delivelist["+i+"]/bfaftflag");
  690. var delive_sche_tm = model.getValue("/root/main/trgt/delivelist["+i+"]/deliveschetm");
  691. var cmpn_exec_dt = fCalcScheDt(sche_base_dd, delive_sche_dayno, bf_aft_flag, delive_sche_tm); // 실행예정일시 계산
  692. // DB에 입력을 위해 delivelist에 저장 및 화면 출력을 위해 execlist에 저장
  693. model.setValue("/root/main/trgt/delivelist["+i+"]/cmpnexecdt", cmpn_exec_dt);
  694. grd_execlist.addRow();
  695. model.setValue("/root/main/trgt/execlist["+i+"]/cmpnrgstdt", rgst_dd); //등록일
  696. model.setValue("/root/main/trgt/execlist["+i+"]/cmpnexecdt", cmpn_exec_dt); //실행일
  697. } else if (stat == "d") {
  698. // 대상자별 실행예정목록 삭제 시 실행 일시 삭제(deleteSelectedRows(grd_exedatelist_t, false)일 경우만..)
  699. if (grid.selectedRows > 0) {
  700. var selectedRows = Array(grid.selectedRows);
  701. for(i=0;i<grid.selectedRows;i++) {
  702. selectedRows[i] = grid.selectedRow(i);
  703. }
  704. for(i=selectedRows.length-1;i>=0;i--) {
  705. var row = selectedRows[i];
  706. grd_execlist.deleteRow(row,false);
  707. }
  708. }
  709. }
  710. }
  711. function fSelectCmpn() {
  712. // 선택된 캠페인 코드를 인스턴스에 복사 - 캠페인 속성 조회, 캠페인 대상자 목록 조회에 이용
  713. var grid = grd_cmpnlist;
  714. if (grid.row > 0 ) {
  715. var cmpn_cd = grid.valueMatrix(grid.row, grid.colRef("cmpncd"));
  716. var cmpn_nm = grid.valueMatrix(grid.row, grid.colRef("cmpnnm"));
  717. model.setValue("/root/send/cmpnattr/cmpncd", cmpn_cd);
  718. model.setValue("/root/init/cmpnnm", cmpn_nm);
  719. model.refresh();
  720. }
  721. }
  722. function fSelectTrgt() {
  723. // 선택된 캠페인 코드 및 등록번호를 인스턴스에 복사 - 대상자 속성 조회에 이용
  724. var grid = grd_trgtlist;
  725. if (grid.row > 0 ) {
  726. var cmpn_cd = grid.valueMatrix(grid.row, grid.colRef("cmpncd"));
  727. var cmpn_pid = grid.valueMatrix(grid.row, grid.colRef("pid"));
  728. var cmpn_rgst = grid.valueMatrix(grid.row, grid.colRef("cmpnrgstdt"));
  729. var cmpn_seq = grid.valueMatrix(grid.row, grid.colRef("rgstseq"));
  730. model.setValue("/root/send/trgtattr/cmpncd", cmpn_cd);
  731. model.setValue("/root/send/trgtattr/pid", cmpn_pid);
  732. model.setValue("/root/send/trgtattr/cmpnrgstdt", cmpn_rgst);
  733. model.setValue("/root/send/trgtattr/rgstseq", cmpn_seq);
  734. }
  735. }
  736. function fSubmitOnScroll() {
  737. if (grd_trgtlist.vscroll.attribute("max") == grd_trgtlist.vscroll.attribute("pos")) {
  738. // end of scroll
  739. model.setValue("/root/send/trgtsrch/offset", grd_trgtlist.rows-1); // grid의 header row는 제외
  740. submit("TRCPC00102");
  741. }
  742. }
  743. function fPrvwscrn(){
  744. var msgcnts = model.getValue("/root/temp/cmpnattr/delivesche/smsmsg")
  745. var posinstnm = getUserInfo("posinstnm")
  746. var usernm = getUserInfo("usernm");
  747. var getdate = getCurrentDate();
  748. var pmonth = getdate.substr(4,2);
  749. var pdate = getdate.substr(6,2);
  750. var gettime = getCurrentTime();
  751. var phour = gettime.substr(0,2);
  752. var pmin = gettime.substr(2,2);
  753. msgcnts = msgcnts.replace('<@고객>','홍길동');
  754. msgcnts = msgcnts.replace('<@진료과>','내과');
  755. msgcnts = msgcnts.replace('<@진료의>','홍길순');
  756. msgcnts = msgcnts.replace('<@병원명>',posinstnm);
  757. msgcnts = msgcnts.replace('<@월>',pmonth);
  758. msgcnts = msgcnts.replace('<@일>',pdate);
  759. msgcnts = msgcnts.replace('<@시>',phour);
  760. msgcnts = msgcnts.replace('<@분>',pmin);
  761. msgcnts = msgcnts.replace('<@처방코드>','A001');
  762. model.setValue("/root/temp/cmpnattr/delivesche/msgcnts", msgcnts)
  763. model.refresh();
  764. }
  765. // 데이터마이닝 팝업창 호출
  766. function fGetTrsmTrgt(g){
  767. var trsmtrgtflag = model.getValue("/root/main/cmpn/cmpnattr/trsmtrgtflag");
  768. if (trsmtrgtflag == "1") {
  769. modal("SPCPC00700");
  770. } else if (trsmtrgtflag == "3") {
  771. modal("SPCPC01200");
  772. //} else {
  773. // messageBox("전송대상을 고객정보마이닝으로 선택하셔야 등록이","I006");
  774. }
  775. }
  776. // 전송대상(고객정보마이닝) 삭제
  777. function trsmtrgtlist_del() {
  778. var diagNode = "/root/main/cmpn/trsmtrgtlist";
  779. if ( grd_trsmtrgtlist.valueMatrix ( grd_trsmtrgtlist.row,0 ) == "I") {
  780. grd_trsmtrgtlist.deleteRow(grd_trsmtrgtlist.row, true);
  781. } else {
  782. model.makeValue ( diagNode + "[" + grd_trsmtrgtlist.row + "]/status", "D" );
  783. grd_trsmtrgtlist.refresh();
  784. }
  785. }
  786. // 전송대상(건진정보마이닝) 삭제
  787. function healexamtrsmtrgtlist_del() {
  788. var diagNode = "/root/main/cmpn/healexamtrsmtrgtlist";
  789. if ( grd_healexamtrsmtrgtlist.valueMatrix ( grd_healexamtrsmtrgtlist.row,0 ) == "I") {
  790. grd_healexamtrsmtrgtlist.deleteRow(grd_healexamtrsmtrgtlist.row, true);
  791. } else {
  792. model.makeValue ( diagNode + "[" + grd_healexamtrsmtrgtlist.row + "]/status", "D" );
  793. grd_healexamtrsmtrgtlist.refresh();
  794. }
  795. }
  796. // 캠페인 대상 리스트 팝업창 호출
  797. function fGetTrgtLIst(){
  798. var cmpn_cd = model.getValue("/root/send/cmpnattr/cmpncd")
  799. if (cmpn_cd == "") {
  800. messageBox("캠페인을","C002");
  801. } else {
  802. model.setValue("/root/send/cmpnattr/trsmtrgtflag", model.getValue("/root/main/cmpn/cmpnattr/trsmtrgtflag"));
  803. //model.copynode("/root/send/cmpnattr/delivelist", "/root/main/cmpn/delivelist");
  804. var grid = grd_exedatelist;
  805. //var deliveschedayno = new Array(grid.rows);
  806. for (i = 1; i < grid.rows; i++) {
  807. var deliveschedayno1 = model.getValue("/root/main/cmpn/delivelist["+i+"]/deliveschedayno1");
  808. var deliveschedayno = model.getValue("/root/main/cmpn/delivelist["+i+"]/deliveschedayno");
  809. var bfaftflag = model.getValue("/root/main/cmpn/delivelist["+i+"]/bfaftflag");
  810. var deliveschetm = model.getValue("/root/main/cmpn/delivelist["+i+"]/deliveschetm");
  811. var smsuseyn = model.getValue("/root/main/cmpn/delivelist["+i+"]/smsuseyn");
  812. var smsmsgsmlcd = model.getValue("/root/main/cmpn/delivelist["+i+"]/smsmsgsmlcd");
  813. var emailuseyn = model.getValue("/root/main/cmpn/delivelist["+i+"]/emailuseyn");
  814. var emailmsgsmlcd = model.getValue("/root/main/cmpn/delivelist["+i+"]/emailmsgsmlcd");
  815. var cmpncd = model.getValue("/root/main/cmpn/delivelist["+i+"]/cmpncd");
  816. var smsmsglrgcd = model.getValue("/root/main/cmpn/delivelist["+i+"]/smsmsglrgcd");
  817. var smsmsgmdlcd = model.getValue("/root/main/cmpn/delivelist["+i+"]/smsmsgmdlcd");
  818. var emailmsglrgcd = model.getValue("/root/main/cmpn/delivelist["+i+"]/emailmsglrgcd");
  819. var emailmsgmdlcd = model.getValue("/root/main/cmpn/delivelist["+i+"]/emailmsgmdlcd");
  820. // 캠페인대상리스트 창으로 넘겨주기 위하여 캠페인 전송내용 복사
  821. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/deliveschedayno1", deliveschedayno1);
  822. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/deliveschedayno", deliveschedayno);
  823. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/bfaftflag", bfaftflag);
  824. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/deliveschetm", deliveschetm);
  825. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/smsuseyn", smsuseyn);
  826. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/smsmsgsmlcd", smsmsgsmlcd);
  827. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/emailuseyn", emailuseyn);
  828. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/emailmsgsmlcd", emailmsgsmlcd);
  829. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/cmpncd", cmpncd);
  830. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/smsmsglrgcd", smsmsglrgcd);
  831. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/smsmsgmdlcd", smsmsgmdlcd);
  832. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/emailmsglrgcd", emailmsglrgcd);
  833. model.makeValue("/root/send/cmpnattr/delivelist["+i+"]/emailmsgmdlcd", emailmsgmdlcd);
  834. }
  835. modal("SPCPC00900", "", "", "", "SPCPC00900", "/root/send/cmpnattr", "/root/send/cmpnattr");
  836. }
  837. }
  838. function fSetButtons() {
  839. var savemode = model.getValue("/root/main/cmpn/cmpnattr/savemode");
  840. var trsmtrgtflag = model.getValue("/root/main/cmpn/cmpnattr/trsmtrgtflag");
  841. if (savemode == "I") {
  842. btn_select.disabled = true;
  843. btn_release.disabled = true;;
  844. btn_cmpnadd.disabled = true;;
  845. btn_cmpnreset.disabled = false;
  846. btn_cmpnsaveas.disabled = true;;
  847. btn_cmpnupdt.disabled = true;;
  848. btn_cmpnsave.disabled = false;
  849. } else if (savemode == "U") {
  850. btn_select.disabled = false;
  851. btn_release.disabled = false;
  852. btn_cmpnadd.disabled = false;
  853. btn_cmpnreset.disabled = false;
  854. btn_cmpnsaveas.disabled = false;
  855. btn_cmpnupdt.disabled = false;
  856. btn_cmpnsave.disabled = true;
  857. }
  858. if (savemode == "U" && trsmtrgtflag == "2") {
  859. btn_addrsave.disabled = false;
  860. }
  861. }
  862. function fAddrSave() {
  863. var cmpn_cd = model.getValue("/root/send/cmpnattr/cmpncd");
  864. var trsmtrgtflag = model.getValue("/root/main/cmpn/cmpnattr/trsmtrgtflag");
  865. if (cmpn_cd == "") {
  866. messageBox("캠페인을","C002");
  867. } else if (trsmtrgtflag != "2") {
  868. messageBox("전송대상이 주소록으로 선택되지 ","E007");
  869. } else {
  870. model.setValue("/root/send/cmpnattr/trsmtrgtflag", model.getValue("/root/main/cmpn/cmpnattr/trsmtrgtflag"));
  871. modal("SPCPC00800", "", "", "", "SPCPC00800", "/root/send/cmpnattr", "/root/send/cmpnattr");
  872. }
  873. }
  874. function fTrsmTrgtFlag() {
  875. var trsmtrgtflag = model.getValue("/root/main/cmpn/cmpnattr/trsmtrgtflag");
  876. if (trsmtrgtflag == "1") {
  877. model.toggle("trgt_case1");
  878. } else if (trsmtrgtflag == "2") {
  879. model.toggle("trgt_case2");
  880. } else if (trsmtrgtflag == "3") {
  881. model.toggle("trgt_case3");
  882. }
  883. }
  884. function fNextCmpnList(grid) {
  885. var rows = grid.rows-1;
  886. if (rows > 0) {
  887. for(i = 1; i < grid.rows; i++){
  888. var nextcmpncd = grid.valuematrix(i, 2)
  889. if (i == 1) {
  890. nextcmpnlist = "";
  891. } else {
  892. nextcmpnlist += ",'";
  893. }
  894. nextcmpnlist += nextcmpncd;
  895. if (i != rows) {
  896. nextcmpnlist += "'";
  897. }
  898. }
  899. alert(nextcmpnlist);
  900. model.setValue("/root/temp/nextcmpnlist",nextcmpnlist);
  901. modal("SPCPC01000", "", "", "", "SPCPC01000", "/root/temp/nextcmpnlist", "/root/send/nextcmpn");
  902. } else {
  903. messageBox("연결캠페인이","I004");
  904. }
  905. }
  906. //============================================//
  907. //같은 부서의 마스터만 승인 설정 //
  908. //============================================//
  909. function fGetAprvynSet(){
  910. if(grd_cmpnlist.rows > 1){
  911. for(i=1;grd_cmpnlist.rows>i;i++){
  912. if(model.getValue("/root/mastauth/posdeptcd")==grd_cmpnlist.valueMatrix(i,grd_cmpnlist.colRef("rgstdeptcd"))
  913. && model.getValue("/root/mastauth/mastauth") == "Y"){
  914. grd_cmpnlist.isReadOnly(i,grd_cmpnlist.colRef("aprvyn"))= false;
  915. }else{
  916. grd_cmpnlist.isReadOnly(i,grd_cmpnlist.colRef("aprvyn"))= true;
  917. }
  918. }
  919. }
  920. model.refresh();
  921. }
  922. ]]>
  923. </script>
  924. </xhtml:head>
  925. <xhtml:body guideline="1,1194;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  926. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  927. <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:190px; height:13px; ">캠페인 관리 : 자동알리미</caption>
  928. </group>
  929. <group id="group2" style="left:0px; top:23px; width:215px; height:757px; ">
  930. <!--<caption id="caption2" class="tit_2" style="left:0px; top:0px; width:215px; height:13px; ">캠페인 분류</caption>-->
  931. <import id="import1" src="SSCPC00300_캠페인그룹트리.xrw" style="left:0px; top:13px; width:215px; height:744px; "/>
  932. </group>
  933. <group id="group3" style="left:225px; top:23px; width:970px; height:35px; vertical-align:top; ">
  934. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:970px; height:35px; "/>
  935. <caption id="caption3" class="search_name" style="left:15px; top:9px; width:110px; height:17px; ">등 록 일 :</caption>
  936. <input id="ipt_rgstfromdd" ref="/root/send/cmpnsrch/rgstfromdd" class="input_search" inputtype="date" style="left:123px; top:8px; width:120px; height:19px; "/>
  937. <caption id="caption4" class="search_no_b" style="left:248px; top:9px; width:12px; height:17px; ">~</caption>
  938. <input id="ipt_rgsttodd" ref="/root/send/cmpnsrch/rgsttodd" class="input_search" inputtype="date" style="left:263px; top:8px; width:120px; height:19px; "/>
  939. <caption id="caption5" class="search_name" style="left:647px; top:9px; width:95px; height:17px; ">캠페인명 :</caption>
  940. <input id="ipt_s_cmpnnm" ref="/root/send/cmpnsrch/cmpnnm" class="input_search" maxlength="30" style="left:738px; top:8px; width:130px; height:19px; "/>
  941. <caption id="caption7" class="search_name" style="left:395px; top:10px; width:107px; height:17px; ">캠페인 속성 :</caption>
  942. <select1 id="cmb_cmpnflag" ref="/root/send/cmpnsrch/cmpnflag" class="combo_default" navindex="13" appearance="minimal" style="left:505px; top:8px; width:130px; height:19px; ">
  943. <choices>
  944. <item>
  945. <label>전체</label>
  946. <value/>
  947. </item>
  948. <item>
  949. <label>일회성</label>
  950. <value>1</value>
  951. </item>
  952. <item>
  953. <label>반복성</label>
  954. <value>2</value>
  955. </item>
  956. <item>
  957. <label>연결성</label>
  958. <value>3</value>
  959. </item>
  960. <item>
  961. <label>사용안함</label>
  962. <value>0</value>
  963. </item>
  964. </choices>
  965. </select1>
  966. <line id="line1" class="line_4" style="x1:883px; y1:7px; x2:883px; y2:29px; "/>
  967. <button id="btn_search" class="btn1_letter2" style="left:898px; top:7px; width:56px; height:22px; ">
  968. <caption>조회</caption>
  969. <script type="javascript" ev:event="DOMActivate">
  970. <![CDATA[
  971. fInitGetAttr(); //조회한 속성 초기화
  972. submit("TRCPC00101");
  973. //같은 부서 마스터만 승인설정 가능
  974. fGetAprvynSet();
  975. ]]>
  976. </script>
  977. </button>
  978. </group>
  979. <group id="group4" style="left:225px; top:58px; width:970px; height:328px; vertical-align:top; ">
  980. <caption id="caption9" class="tit_2" style="left:5px; top:10px; width:111px; height:13px; ">캠페인 리스트</caption>
  981. <line id="line21" class="line_1" style="x1:5px; y1:25px; x2:965px; y2:25px; "/>
  982. <datagrid id="grd_cmpnlist" nodeset="/root/main/cmpn/cmpnlist" class="text_center" scroll="auto" caption="캠페인명^캠페인속성^대상위치^표적일^최종실행건수^등록일^최종수정일^등록부서^등록자^승인여부^^" colwidth="180, 75, 100, 100, 80, 120, 120, 100, 100, 60, 0, 0" dataheight="23" explorerbar="sortshowmove" extendlastcol="scroll" rowheader="update" rowheight="23" style="left:5px; top:30px; width:960px; height:295px; ">
  983. <col ref="cmpnnm" style="text-align:left; "/>
  984. <col disabled="true" ref="cmpnexecattr" type="combo">
  985. <choices>
  986. <itemset nodeset="/root/init/comncdlist/C0013list/C0013">
  987. <label ref="cdnm"/>
  988. <value ref="cdid"/>
  989. </itemset>
  990. </choices>
  991. </col>
  992. <col disabled="true" ref="trsmtrgtflag" type="combo">
  993. <choices>
  994. <item>
  995. <label>고객정보마이닝</label>
  996. <value>1</value>
  997. </item>
  998. <item>
  999. <label>주소록</label>
  1000. <value>2</value>
  1001. </item>
  1002. <item>
  1003. <label>건진정보마이닝</label>
  1004. <value>3</value>
  1005. </item>
  1006. </choices>
  1007. </col>
  1008. <col ref="nextcmpncd"/>
  1009. <col ref="execcnt" format="#,###" style="text-align:right; "/>
  1010. <col ref="fstrgstdt" format="yyyy-mm-dd hh:nn"/>
  1011. <col ref="lastupdtdt" format="yyyy-mm-dd hh:nn"/>
  1012. <col ref="rgstdeptnm"/>
  1013. <col ref="usernm"/>
  1014. <col ref="aprvyn" type="combo">
  1015. <choices>
  1016. <itemset nodeset="/root/init/comncdlist/C0016list/C0016">
  1017. <label ref="cdnm"/>
  1018. <value ref="cdid"/>
  1019. </itemset>
  1020. </choices>
  1021. <script type="javascript" ev:event="xforms-value-changed">
  1022. <![CDATA[
  1023. grd_prcplist.addStatus(grd_cmpnlist.row, "u");
  1024. ]]>
  1025. </script>
  1026. </col>
  1027. <col ref="cmpncd" visibility="hidden" style="text-align:left; "/>
  1028. <col ref="rgstdeptcd" visibility="hidden" style="text-align:left; "/>
  1029. <script type="javascript" ev:event="ondblclick">
  1030. <![CDATA[
  1031. var grid = grd_cmpnlist;
  1032. if (grid.row > 0 && grid.col > 0 && grid.isCell(event.target)) {
  1033. fSelectCmpn(); // 캠페인 선택
  1034. fGetCmpnAttr(); // 등록된 캠페인의 속성을 조회
  1035. fSetButtons(); // 버튼컨트롤
  1036. var cmpnnm = grid.valueMatrix(grid.row,grid.colRef("cmpnnm"));
  1037. var cmpnexecattrTemp = grid.valueMatrix(grid.row,grid.colRef("cmpnexecattr"));
  1038. var cmpnexecattr = "";
  1039. if(cmpnexecattrTemp == "1"){
  1040. cmpnexecattr = "일회성";
  1041. }else if(cmpnexecattrTemp == "2"){
  1042. cmpnexecattr = "반복성";
  1043. }else if(cmpnexecattrTemp == "3"){
  1044. cmpnexecattr = "연결성";
  1045. }else {
  1046. cmpnexecattr = "사용안함";
  1047. }
  1048. var trsmtrgtflagTemp = grid.valueMatrix(grid.row,grid.colRef("trsmtrgtflag"));
  1049. var trsmtrgtflag = "";
  1050. if(trsmtrgtflagTemp == "1"){
  1051. trsmtrgtflag = "고객정보마이닝";
  1052. }else if(trsmtrgtflagTemp == "2"){
  1053. trsmtrgtflag = "주소록";
  1054. }else if(trsmtrgtflagTemp == "3"){
  1055. trsmtrgtflag = "건진정보마이닝";
  1056. }
  1057. var nextcmpncd = grid.valueMatrix(grid.row,grid.colRef("nextcmpncd"));
  1058. var execcnt = grid.valueMatrix(grid.row,grid.colRef("execcnt"));
  1059. var fstrgstdtTemp = grid.valueMatrix(grid.row,grid.colRef("fstrgstdt"));
  1060. var fstrgstdt = fstrgstdtTemp.substring(0,8);
  1061. var lastupdtdtTemp = grid.valueMatrix(grid.row,grid.colRef("lastupdtdt"));
  1062. var lastupdtdt = lastupdtdtTemp.substring(0,8);
  1063. var rgstdeptnm = grid.valueMatrix(grid.row,grid.colRef("rgstdeptnm"));
  1064. var usernm = grid.valueMatrix(grid.row,grid.colRef("usernm"));
  1065. var aprvynTemp = grid.valueMatrix(grid.row,grid.colRef("aprvyn"));
  1066. var aprvyn = "";
  1067. if(aprvynTemp == "Y"){
  1068. aprvyn = "사용";
  1069. }else{
  1070. aprvyn = "중지";
  1071. }
  1072. var result = "캠페인명:"+ cmpnnm +" 캠페인속성:"+ cmpnexecattr +" 대상위치:"+ trsmtrgtflag +"\n\n";
  1073. result += "표적일:"+ nextcmpncd +" 최종실행건수:"+ execcnt +"\n\n";
  1074. result += "등록부서:"+ rgstdeptnm +" 등록자:"+ usernm +" 승인여부:"+ aprvyn +"\n\n";
  1075. result += "등록일:"+ fstrgstdt +" 최종수정일:"+ lastupdtdt;
  1076. model.setValue("/root/fwd/cmpninfo", result);
  1077. }
  1078. ]]>
  1079. </script>
  1080. <script type="javascript" ev:event="onclick">
  1081. <![CDATA[
  1082. // var grid = grd_cmpnlist;
  1083. // if (grid.row > 0 && grid.col > 0) {
  1084. // fSelectCmpn(); // 캠페인 선택
  1085. // //fInitGetAttr(2); // 조회한 (대상자)속성 초기화
  1086. // //fGetTrgtList(); // 캠페인 선택 시 대상자 목록 조회
  1087. // }
  1088. ]]>
  1089. </script>
  1090. </datagrid>
  1091. <button id="btn_aprvsave" class="btn2_letter4" style="left:760px; top:4px; width:64px; height:19px; ">
  1092. <caption>승인저장</caption>
  1093. <script type="javascript" ev:event="DOMActivate">
  1094. <![CDATA[
  1095. fSaveCmpnList(); //캠페인 리스트 저장
  1096. ]]>
  1097. </script>
  1098. </button>
  1099. <button id="btn_saveexcel" class="btn2_letter4" style="left:825px; top:4px; width:64px; height:19px; ">
  1100. <caption>엑셀저장</caption>
  1101. <script type="javascript" ev:event="DOMActivate">
  1102. <![CDATA[
  1103. var file_nm = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  1104. if (file_nm != "") {
  1105. grd_cmpnlist.saveExcel(file_nm, "SheetName", true, true, "", "", false);
  1106. }
  1107. ]]>
  1108. </script>
  1109. </button>
  1110. <button id="btn_cmpndel" class="btn2_letter5" style="left:890px; top:4px; width:75px; height:19px; ">
  1111. <caption>캠페인삭제</caption>
  1112. <script type="javascript" ev:event="DOMActivate">
  1113. <![CDATA[
  1114. // 선택된 캠페인이 있을 경우 캠페인 삭제, 없을 경우 선택 메시지
  1115. if (!isXPathTextNull("/root/send/cmpnattr/cmpncd")) {
  1116. fConfirmDelCmpn(); // 캠페인에 대상자가 존재하는지 여부 확인 후 삭제 확인
  1117. } else {
  1118. messageBox("삭제할 캠페인을","C002");
  1119. }
  1120. ]]>
  1121. </script>
  1122. </button>
  1123. </group>
  1124. <group id="group7" style="left:225px; top:386px; width:970px; height:365px; vertical-align:top; ">
  1125. <caption id="caption6" class="tit_2" style="left:5px; top:10px; width:130px; height:13px; ">캠페인 전송 설정</caption>
  1126. <line id="line2" class="line_1" style="x1:5px; y1:25px; x2:510px; y2:25px; "/>
  1127. <line id="line3" class="line_2" style="x1:5px; y1:52px; x2:510px; y2:52px; "/>
  1128. <caption id="caption8" class="cell_1" style="left:5px; top:30px; width:105px; height:23px; text-align:center; ">캠페인명</caption>
  1129. <input id="ipt_cmpnnm" ref="/root/main/cmpn/cmpnattr/cmpnnm" class="input_essential" maxlength="30" style="left:113px; top:31px; width:260px; height:19px; "/>
  1130. <input id="ipt_cmpncd" ref="/root/main/cmpn/cmpnattr/cmpncd" class="input_essential" imemode="disabled" maxlength="8" format="AAAAAAAA" style="left:376px; top:31px; width:110px; height:19px; ">
  1131. <script type="javascript" ev:event="onkeyup">
  1132. <![CDATA[
  1133. inputEnterKey("btn_cmpnsrch", "DOMActivate");
  1134. ]]>
  1135. </script>
  1136. </input>
  1137. <button id="btn_cmpnsrch" class="icon_search" style="left:489px; top:31px; width:16px; height:16px; ">
  1138. <caption/>
  1139. <script type="javascript" ev:event="DOMActivate">
  1140. <![CDATA[
  1141. // 캠페인 코드중복 체크
  1142. var cmpn_cd = model.getValue("/root/main/cmpn/cmpnattr/cmpncd");
  1143. if (cmpn_cd == "") {
  1144. messageBox("캠페인코드를","C001");
  1145. model.setFocus("ipt_cmpncd");
  1146. } else {
  1147. if (fCheckCmpnCd(cmpn_cd)) {
  1148. messageBox("캠페인코드가","E006");
  1149. model.setFocus("ipt_cmpncd");
  1150. } else {
  1151. messageBox("중복된 캠페인코드가","I004");
  1152. }
  1153. }
  1154. ]]>
  1155. </script>
  1156. </button>
  1157. <caption id="caption10" class="tit_2" style="left:525px; top:10px; width:130px; height:13px; ">캠페인 전송 내용</caption>
  1158. <line id="line4" class="line_1" style="x1:525px; y1:25px; x2:970px; y2:25px; "/>
  1159. <line id="line5" class="line_2" style="x1:5px; y1:76px; x2:510px; y2:76px; "/>
  1160. <caption id="caption11" class="cell_1" style="left:5px; top:54px; width:105px; height:23px; text-align:center; ">캠페인 속성</caption>
  1161. <select1 id="rdo_cmpnflag" ref="/root/main/cmpn/cmpnattr/cmpnexecattr" appearance="full" cellspacing="15" cols="4" overflow="visible" style="left:113px; top:57px; width:282px; height:19px; background-color:transparent; border-style:none; ">
  1162. <choices>
  1163. <itemset nodeset="/root/init/comncdlist/C0013list/C0013">
  1164. <label ref="cdnm"/>
  1165. <value ref="cdid"/>
  1166. </itemset>
  1167. </choices>
  1168. </select1>
  1169. <line id="line7" class="line_2" style="x1:5px; y1:101px; x2:510px; y2:101px; "/>
  1170. <caption id="caption12" class="cell_1" style="left:5px; top:78px; width:105px; height:23px; text-align:center; ">등록부서</caption>
  1171. <button id="btn_deptsrch" class="icon_search" style="left:376px; top:79px; width:16px; height:16px; ">
  1172. <caption/>
  1173. <script type="javascript" ev:event="DOMActivate">
  1174. <![CDATA[
  1175. var search_condition = "deptnm";
  1176. var search_term = model.getValue("/root/main/cmpn/cmpnattr/rgstdeptnm");
  1177. var receive_deptcd_path = "/root/main/cmpn/cmpnattr/rgstdeptcd";
  1178. var receive_deptnm_path = "/root/main/cmpn/cmpnattr/rgstdeptnm";
  1179. cczfOpenSelectDept(search_condition, search_term, receive_deptcd_path, receive_deptnm_path);
  1180. //zbcfOpenInstDeptCodeList(search_condition, search_term, receive_deptcd_path, receive_deptnm_path);
  1181. ]]>
  1182. </script>
  1183. </button>
  1184. <input id="ipt_deptnm" ref="/root/main/cmpn/cmpnattr/rgstdeptnm" class="input_essential" imemode="disabled" style="left:113px; top:79px; width:260px; height:19px; ">
  1185. <script type="javascript" ev:event="onkeyup">
  1186. <![CDATA[
  1187. inputEnterKey("btn_deptsrch", "DOMActivate");
  1188. ]]>
  1189. </script>
  1190. </input>
  1191. <line id="line10" class="line_3" style="x1:5px; y1:126px; x2:510px; y2:126px; "/>
  1192. <caption id="caption13" class="tit_2" style="left:5px; top:136px; width:200px; height:13px; ">캠페인 전송대상 및 D-day</caption>
  1193. <line id="line6" class="line_1" style="x1:5px; y1:151px; x2:515px; y2:151px; "/>
  1194. <switch id="swt_trgt" style="left:5px; top:156px; width:510px; height:140px; ">
  1195. <case id="trgt_case1">
  1196. <caption id="caption14" class="cell_1" style="left:1px; top:1px; width:105px; height:23px; text-align:center; ">전송대상</caption>
  1197. <button id="btn_trsmtrgtdtmn" class="btn2_letter9" style="left:109px; top:3px; width:108px; height:19px; ">
  1198. <caption>고객정보마이닝그룹</caption>
  1199. <script type="javascript" ev:event="DOMActivate">
  1200. <![CDATA[
  1201. //var receive_trsmtrgtlist_path = "/root/main/cmpn/trsmtrgtlist";
  1202. fGetTrsmTrgt(1);
  1203. ]]>
  1204. </script>
  1205. </button>
  1206. <datagrid id="grd_trsmtrgtlist" nodeset="/root/main/cmpn/trsmtrgtlist" caption="구분^그룹명^산정기준일^특정일^업데이트구분^업데이트^" colwidth="30, 175, 70, 85, 80, 60, 0" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" style="left:1px; top:25px; width:505px; height:110px; ">
  1207. <col disabled="true" ref="status" type="combo" style="text-align:center; focus-rect:visible; ">
  1208. <choices>
  1209. <item>
  1210. <label>신규</label>
  1211. <value>I</value>
  1212. </item>
  1213. <item>
  1214. <label>삭제</label>
  1215. <value>D</value>
  1216. </item>
  1217. <item>
  1218. <label>수정</label>
  1219. <value>U</value>
  1220. </item>
  1221. </choices>
  1222. </col>
  1223. <col ref="dtmntitl"/>
  1224. <col ref="appbasedd" type="combo" _key="true">
  1225. <choices>
  1226. <itemset nodeset="/root/init/comncdlist/C0032list/C0032">
  1227. <label ref="cdnm"/>
  1228. <value ref="cdid"/>
  1229. </itemset>
  1230. </choices>
  1231. </col>
  1232. <col ref="spcldd" type="inputdate" format="yyyy-mm-dd"/>
  1233. <col ref="clintdupltretmthd" type="combo" _key="true">
  1234. <choices>
  1235. <itemset nodeset="/root/init/comncdlist/C0031list/C0031">
  1236. <label ref="cdnm"/>
  1237. <value ref="cdid"/>
  1238. </itemset>
  1239. </choices>
  1240. </col>
  1241. <col class="text_center" ref="daydd" type="input" format="hh:nn"/>
  1242. <col ref="dtmnkey" visibility="hidden"/>
  1243. <script type="javascript" ev:event="onmousedown">
  1244. <![CDATA[
  1245. if(event.button == 3){
  1246. if(grd_trsmtrgtlist.isCell(event.target) && grd_trsmtrgtlist.mouseRow >= grd_trsmtrgtlist.fixedrows){
  1247. window.setPopupMenu(true, "/root/hidden/trsmtrgtmenu/menu", "name", "func", false);
  1248. }else{
  1249. window.setPopupMenu(false);
  1250. }
  1251. }
  1252. ]]>
  1253. </script>
  1254. <script type="javascript" ev:event="onkeyup">
  1255. <![CDATA[
  1256. var diagNode = "/root/main/cmpn/trsmtrgtlist";
  1257. if ( grd_trsmtrgtlist.valueMatrix ( grd_trsmtrgtlist.row,0 ) != "I") {
  1258. model.makeValue ( diagNode + "[" + grd_trsmtrgtlist.row + "]/status", "U" );
  1259. }
  1260. model.refresh();
  1261. ]]>
  1262. </script>
  1263. <script type="javascript" ev:event="xforms-select">
  1264. <![CDATA[
  1265. var diagNode = "/root/main/cmpn/trsmtrgtlist";
  1266. if ( grd_trsmtrgtlist.valueMatrix ( grd_trsmtrgtlist.row,0 ) != "I") {
  1267. model.makeValue ( diagNode + "[" + grd_trsmtrgtlist.row + "]/status", "U" );
  1268. }
  1269. model.refresh();
  1270. //해당 행을 활성화한다
  1271. grd_trsmtrgtlist.isReadOnly(grd_trsmtrgtlist.row, grd_trsmtrgtlist.colRef("appbasedd") + 1, grd_trsmtrgtlist.row, grd_trsmtrgtlist.colRef("spcldd")) = false;
  1272. ]]>
  1273. </script>
  1274. </datagrid>
  1275. </case>
  1276. <case id="trgt_case2">
  1277. <datagrid id="grd_innrclntgruplist" nodeset="/root/main/cmpn/innrclntgruplist" caption="주소록그룹^전송대상자수^" colwidth="350, 130" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" style="left:1px; top:0; width:505px; height:135; ">
  1278. <col ref="innrclntgrup"/>
  1279. <col ref="innrclntcnt" style="text-align:center; "/>
  1280. </datagrid>
  1281. </case>
  1282. <case id="trgt_case3" selected="true">
  1283. <caption id="caption15" class="cell_1" style="left:1px; top:1px; width:105px; height:23px; text-align:center; ">전송대상</caption>
  1284. <button id="btn_trsmtrgthealexamdtmn" class="btn2_letter9" style="left:109px; top:3px; width:108px; height:19px; ">
  1285. <caption>건진정보마이닝그룹</caption>
  1286. <script type="javascript" ev:event="DOMActivate">
  1287. <![CDATA[
  1288. //var receive_trsmtrgtlist_path = "/root/main/cmpn/trsmtrgtlist";
  1289. fGetTrsmTrgt(2);
  1290. ]]>
  1291. </script>
  1292. </button>
  1293. <datagrid id="grd_healexamtrsmtrgtlist" nodeset="/root/main/cmpn/healexamtrsmtrgtlist" caption="구분^그룹명^산정기준일^특정일^업데이트구분^업데이트^" colwidth="30, 175, 70, 85, 80, 60, 0" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" style="left:0px; top:25px; width:505px; height:110px; ">
  1294. <col disabled="true" ref="status" type="combo" style="text-align:center; focus-rect:visible; ">
  1295. <choices>
  1296. <item>
  1297. <label>신규</label>
  1298. <value>I</value>
  1299. </item>
  1300. <item>
  1301. <label>삭제</label>
  1302. <value>D</value>
  1303. </item>
  1304. <item>
  1305. <label>수정</label>
  1306. <value>U</value>
  1307. </item>
  1308. </choices>
  1309. </col>
  1310. <col ref="healexamdtmntitl"/>
  1311. <col ref="appbasedd" type="combo" _key="true">
  1312. <choices>
  1313. <item>
  1314. <label>오늘</label>
  1315. <value>0</value>
  1316. </item>
  1317. <item>
  1318. <label>건진일</label>
  1319. <value>1</value>
  1320. </item>
  1321. <item>
  1322. <label>특정일</label>
  1323. <value>4</value>
  1324. </item>
  1325. </choices>
  1326. </col>
  1327. <col ref="spcldd" type="inputdate" format="yyyy-mm-dd"/>
  1328. <col ref="clintdupltretmthd" type="combo" _key="true">
  1329. <choices>
  1330. <itemset nodeset="/root/init/comncdlist/C0031list/C0031">
  1331. <label ref="cdnm"/>
  1332. <value ref="cdid"/>
  1333. </itemset>
  1334. </choices>
  1335. </col>
  1336. <col class="text_center" ref="daydd" type="input" format="hh:nn"/>
  1337. <col ref="healexamdtmnkey" visibility="hidden"/>
  1338. <script type="javascript" ev:event="onmousedown">
  1339. <![CDATA[
  1340. if(event.button == 3){
  1341. if(grd_healexamtrsmtrgtlist.isCell(event.target) && grd_healexamtrsmtrgtlist.mouseRow >= grd_healexamtrsmtrgtlist.fixedrows){
  1342. window.setPopupMenu(true, "/root/hidden/healexamtrsmtrgtmenu/menu", "name", "func", false);
  1343. }else{
  1344. window.setPopupMenu(false);
  1345. }
  1346. }
  1347. ]]>
  1348. </script>
  1349. <script type="javascript" ev:event="onkeyup">
  1350. <![CDATA[
  1351. var diagNode = "/root/main/cmpn/healexamtrsmtrgtlist";
  1352. if ( grd_healexamtrsmtrgtlist.valueMatrix ( grd_healexamtrsmtrgtlist.row,0 ) != "I") {
  1353. model.makeValue ( diagNode + "[" + grd_healexamtrsmtrgtlist.row + "]/status", "U" );
  1354. }
  1355. model.refresh();
  1356. ]]>
  1357. </script>
  1358. <script type="javascript" ev:event="xforms-select">
  1359. <![CDATA[
  1360. var diagNode = "/root/main/cmpn/healexamtrsmtrgtlist";
  1361. if ( grd_healexamtrsmtrgtlist.valueMatrix ( grd_healexamtrsmtrgtlist.row,0 ) != "I") {
  1362. model.makeValue ( diagNode + "[" + grd_healexamtrsmtrgtlist.row + "]/status", "U" );
  1363. }
  1364. model.refresh();
  1365. //해당 행을 활성화한다
  1366. grd_healexamtrsmtrgtlist.isReadOnly(grd_healexamtrsmtrgtlist.row, grd_healexamtrsmtrgtlist.colRef("appbasedd") + 1, grd_healexamtrsmtrgtlist.row, grd_healexamtrsmtrgtlist.colRef("spcldd")) = false;
  1367. ]]>
  1368. </script>
  1369. </datagrid>
  1370. </case>
  1371. </switch>
  1372. <input id="ipt_deptcd" ref="/root/main/cmpn/cmpnattr/rgstdeptcd" disabled="true" style="left:395px; top:80px; width:110px; height:19px; "/>
  1373. <caption id="caption16" class="cell_1" style="left:5px; top:297px; width:105px; height:67px; text-align:center; ">전송 D-day</caption>
  1374. <select1 id="rdo_exebaseflag_t" ref="/root/main/cmpn/cmpnattr/execbaseddflag" appearance="full" rows="3" vcellspacing="6" overflow="visible" style="left:113px; top:296px; width:27px; height:68px; background-color:transparent; border-style:none; ">
  1375. <choices>
  1376. <item>
  1377. <label/>
  1378. <value>3</value>
  1379. </item>
  1380. <item>
  1381. <label/>
  1382. <value>1</value>
  1383. </item>
  1384. <item>
  1385. <label/>
  1386. <value>2</value>
  1387. </item>
  1388. </choices>
  1389. <script type="javascript" ev:event="xforms-select">
  1390. <![CDATA[
  1391. fSetBaseDD(1); // 실행기준일 선택에 따른 활성화(1: 캠페인)
  1392. ]]>
  1393. </script>
  1394. </select1>
  1395. <caption id="caption17" style="left:145px; top:320px; width:150px; height:19px; ">전송대상 생성기준일로부터</caption>
  1396. <input id="ipt_exebase11" ref="/root/main/cmpn/cmpnattr/execbasedayno" imemode="disabled" maxlength="4" format="9999" style="left:305px; top:320px; width:30px; height:19px; "/>
  1397. <caption id="caption18" style="left:340px; top:320px; width:30px; height:19px; ">일 후</caption>
  1398. <caption id="caption19" style="left:145px; top:342px; width:150px; height:19px; ">전송대상 생성기준일로부터</caption>
  1399. <input id="ipt_exebase21" ref="/root/main/cmpn/cmpnattr/execbasemm" imemode="disabled" maxlength="2" format="99" style="left:305px; top:342px; width:30px; height:19px; "/>
  1400. <caption id="caption20" style="left:340px; top:342px; width:30px; height:19px; ">개월</caption>
  1401. <input id="ipt_exebase22" ref="/root/main/cmpn/cmpnattr/execbasedd" imemode="disabled" maxlength="2" format="99" style="left:375px; top:342px; width:30px; height:19px; "/>
  1402. <caption id="caption21" style="left:410px; top:342px; width:30px; height:19px; ">일 후</caption>
  1403. <input id="ipt_exebase31" ref="/root/main/cmpn/cmpnattr/execbasespcldd" imemode="disabled" inputtype="date" style="left:205px; top:298px; width:120px; height:19px; ">
  1404. <script type="javascript" ev:event="DOMFocusOut">
  1405. <![CDATA[
  1406. var check_dd = model.getValue("/root/main/cmpn/cmpnattr/execbasespcldd");
  1407. if (check_dd != "" && !isValidDateTime(check_dd,"YYYYMMDD")) {
  1408. messageBox("날짜가 바르게 입력되지","E007");
  1409. model.setFocus("ipt_exebase31");
  1410. }
  1411. ]]>
  1412. </script>
  1413. </input>
  1414. <caption id="caption22" style="left:145px; top:298px; width:60px; height:19px; ">특정일</caption>
  1415. <caption id="caption23" class="tit_2" style="left:525px; top:223px; width:130px; height:13px; ">연결 캠페인</caption>
  1416. <line id="line8" class="line_1" style="x1:525px; y1:238px; x2:970px; y2:238px; "/>
  1417. <line id="line9" class="line_2" style="x1:525px; y1:339px; x2:970px; y2:339px; "/>
  1418. <caption id="caption24" class="cell_1" style="left:525px; top:243px; width:105px; height:97px; text-align:center; ">연결 캠페인</caption>
  1419. <input id="input9" ref="/root/temp/cmpnattr/cmpnlnk/nextcmpnnm" maxlength="30" style="left:633px; top:244px; width:177px; height:19px; ">
  1420. <script type="javascript" ev:event="onkeyup">
  1421. <![CDATA[
  1422. inputEnterKey("btn_cmpnsrch2", "DOMActivate");
  1423. ]]>
  1424. </script>
  1425. </input>
  1426. <input id="input10" ref="/root/temp/cmpnattr/cmpnlnk/nextcmpncd" imemode="disabled" maxlength="8" style="left:813px; top:244px; width:90px; height:19px; ">
  1427. <script type="javascript" ev:event="onkeyup">
  1428. <![CDATA[
  1429. inputEnterKey("btn_cmpnsrch2", "DOMActivate");
  1430. ]]>
  1431. </script>
  1432. </input>
  1433. <button id="button4" class="icon_search" style="left:906px; top:244px; width:16px; height:16px; ">
  1434. <caption/>
  1435. <script type="javascript" ev:event="DOMActivate">
  1436. <![CDATA[
  1437. var send_cmpn_cd = model.getValue("/root/temp/cmpnattr/cmpnlnk/nextcmpncd");
  1438. var send_cmpn_nm = model.getValue("/root/temp/cmpnattr/cmpnlnk/nextcmpnnm");
  1439. var recv_cmpn_cd_path = "/root/temp/cmpnattr/cmpnlnk/nextcmpncd";
  1440. var recv_cmpn_nm_path = "/root/temp/cmpnattr/cmpnlnk/nextcmpnnm";
  1441. cpzfOpenSelectCmpn(send_cmpn_cd, send_cmpn_nm, recv_cmpn_cd_path, recv_cmpn_nm_path); // 캠페인 선택 팝업(modal)
  1442. ]]>
  1443. </script>
  1444. </button>
  1445. <datagrid id="grd_cmpnlnklist" nodeset="/root/main/cmpn/cmpnlnklist" caption="캠페인명^캠페인코드" colwidth="160, 90, 1" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" style="left:633px; top:266px; width:288px; height:72px; ">
  1446. <col ref="nextcmpnnm"/>
  1447. <col ref="nextcmpncd"/>
  1448. <col ref="cmpncd" visibility="hidden"/>
  1449. </datagrid>
  1450. <button id="button115" class="btn2_letter5" style="left:891px; top:217px; width:75px; height:19px; ">
  1451. <caption>연결캠페인</caption>
  1452. <script type="javascript" ev:event="DOMActivate">
  1453. <![CDATA[
  1454. fNextCmpnList(grd_cmpnlnklist); // 연결캠페인 항목보기 그리드 확인 후 팝업호출
  1455. ]]>
  1456. </script>
  1457. </button>
  1458. <button id="button5" class="btn2_letter2" style="left:924px; top:296px; width:42px; height:19px; ">
  1459. <caption>추가</caption>
  1460. <script type="javascript" ev:event="DOMActivate">
  1461. <![CDATA[
  1462. fAddCmpnLnk(); // 입력값 체크 후 연결캠페인 행추가
  1463. ]]>
  1464. </script>
  1465. </button>
  1466. <button id="button7" class="btn2_letter2" style="left:924px; top:318px; width:42px; height:19px; ">
  1467. <caption>삭제</caption>
  1468. <script type="javascript" ev:event="DOMActivate">
  1469. <![CDATA[
  1470. deleteSelectedRows(grd_cmpnlnklist, false); // 연결캠페인 선택행 삭제
  1471. ]]>
  1472. </script>
  1473. </button>
  1474. <caption id="caption25" class="cell_1" style="left:525px; top:341px; width:105px; height:23px; text-align:center; ">연결 시점</caption>
  1475. <select1 id="radio3" ref="/root/main/cmpn/cmpnattr/nextcmpnlnkpnttm" appearance="full" cellspacing="15" cols="2" overflow="visible" style="left:633px; top:343px; width:282px; height:19px; background-color:transparent; border-style:none; ">
  1476. <choices>
  1477. <itemset nodeset="/root/init/comncdlist/C0018list/C0018">
  1478. <label ref="cdnm"/>
  1479. <value ref="cdid"/>
  1480. </itemset>
  1481. </choices>
  1482. </select1>
  1483. <datagrid id="grd_exedatelist" nodeset="/root/main/cmpn/delivelist" caption="전송 D-day^전송실행일^전후^전송시간^SMS^SMS코드^Email^Email코드" colwidth="110, 90, 50, 80, 40, 0, 40, 0, 0, 0, 0, 0, 0" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" style="left:525px; top:31px; width:445px; height:78px; text-align:center; ">
  1484. <col ref="deliveschedayno1"/>
  1485. <col ref="deliveschedayno"/>
  1486. <col disabled="true" ref="bfaftflag" type="combo">
  1487. <choices>
  1488. <itemset nodeset="/root/init/comncdlist/C0014list/C0014">
  1489. <label ref="cdnm"/>
  1490. <value ref="cdid"/>
  1491. </itemset>
  1492. </choices>
  1493. </col>
  1494. <col ref="deliveschetm" format="hh:nn"/>
  1495. <col ref="smsuseyn"/>
  1496. <col ref="smsmsgsmlcd" visibility="hidden"/>
  1497. <col ref="emailuseyn"/>
  1498. <col ref="emailmsgsmlcd" visibility="hidden"/>
  1499. <col ref="cmpncd" visibility="hidden"/>
  1500. <col ref="smsmsglrgcd" visibility="hidden"/>
  1501. <col ref="smsmsgmdlcd" visibility="hidden"/>
  1502. <col ref="emailmsglrgcd" visibility="hidden"/>
  1503. <col ref="emailmsgmdlcd" visibility="hidden"/>
  1504. </datagrid>
  1505. <shape id="rectangle5" appearance="rectangle" style="left:525px; top:113px; width:445px; height:100px; border-color:#c0c0c0; "/>
  1506. <caption id="caption26" class="cell_1" style="left:533px; top:117px; width:100px; height:23px; text-align:center; ">전송실행일</caption>
  1507. <caption id="caption27" style="left:636px; top:120px; width:67px; height:19px; ">전송 D-day</caption>
  1508. <input id="ipt_exedate" ref="/root/temp/cmpnattr/delivesche/deliveschedayno" imemode="disabled" maxlength="2" format="99" style="left:708px; top:120px; width:50px; height:19px; "/>
  1509. <caption id="caption30" style="left:764px; top:120px; width:20px; height:19px; ">일</caption>
  1510. <select1 id="cmb_exeflag" ref="/root/temp/cmpnattr/delivesche/bfaftflag" appearance="minimal" style="left:786px; top:120px; width:40px; height:19px; ">
  1511. <choices>
  1512. <itemset nodeset="/root/init/comncdlist/C0014list/C0014">
  1513. <label ref="cdnm"/>
  1514. <value ref="cdid"/>
  1515. </itemset>
  1516. </choices>
  1517. </select1>
  1518. <input id="ipt_exetime" ref="/root/temp/cmpnattr/delivesche/deliveschetm" imemode="disabled" format="hh:nn" style="left:829px; top:120px; width:60px; height:19px; "/>
  1519. <script type="javascript" ev:event="DOMFocusOut">
  1520. <![CDATA[
  1521. var check_tm = model.getValue("/root/temp/cmpnattr/delivesche/deliveschetm");
  1522. if (check_tm != "" && !isValidDateTime(check_tm,"hhmm")) {
  1523. messageBox("시간이 바르게 입력되지","E007");
  1524. model.setFocus("ipt_exetime");
  1525. }
  1526. ]]>
  1527. </script>
  1528. <button id="btn_exedate_ins" class="btn2_letter2" style="left:924px; top:167px; width:42px; height:19px; ">
  1529. <caption>추가</caption>
  1530. <script type="javascript" ev:event="DOMActivate">
  1531. <![CDATA[
  1532. fAddExecDD(); // 입력값 체크 후 실행예정일 행추가
  1533. ]]>
  1534. </script>
  1535. </button>
  1536. <button id="btn_exedate_del" class="btn2_letter2" style="left:924px; top:187px; width:42px; height:19px; ">
  1537. <caption>삭제</caption>
  1538. <script type="javascript" ev:event="DOMActivate">
  1539. <![CDATA[
  1540. deleteSelectedRows(grd_exedatelist, false); // 실행예정일 선택행 삭제
  1541. model.refresh(); // 삭제 후 그리드 스크롤 제거
  1542. ]]>
  1543. </script>
  1544. </button>
  1545. <caption id="caption32" class="cell_1" style="left:533px; top:141px; width:100px; height:23px; text-align:center; ">전송 채널</caption>
  1546. <select id="chk_sms" ref="/root/temp/cmpnattr/delivesche/smsuseyn" overflow="visible" appearance="full" style="left:637px; top:144px; width:47px; height:19px; ">
  1547. <choices>
  1548. <item>
  1549. <label>SMS</label>
  1550. <value>Y</value>
  1551. </item>
  1552. </choices>
  1553. </select>
  1554. <select id="chk_email" ref="/root/temp/cmpnattr/delivesche/emailuseyn" overflow="visible" appearance="full" style="left:788px; top:144px; width:54px; height:19px; ">
  1555. <choices>
  1556. <item>
  1557. <label>e-mail</label>
  1558. <value>Y</value>
  1559. </item>
  1560. </choices>
  1561. </select>
  1562. <caption id="caption33" class="cell_1" style="left:533px; top:165px; width:100px; height:23px; text-align:center; ">전송내용</caption>
  1563. <caption id="caption28" class="cell_1" style="left:533px; top:188px; width:100px; height:23px; text-align:center; "/>
  1564. <button id="btn_msgprvw" class="btn2_letter7" style="left:535px; top:189px; width:97px; height:19px; ">
  1565. <caption>입력/미리보기</caption>
  1566. <script type="javascript" ev:event="DOMActivate">
  1567. <![CDATA[
  1568. fPrvwscrn();
  1569. ]]>
  1570. </script>
  1571. </button>
  1572. <input id="ipt_smsmsg" ref="/root/temp/cmpnattr/delivesche/smsmsg" disabled="true" visibility="hidden" style="left:636px; top:166px; width:200px; height:19px; "/>
  1573. <textarea id="tar_msgcnts" ref="/root/temp/cmpnattr/delivesche/msgcnts" disabled="true" style="left:636px; top:166px; width:284px; height:42px; "/>
  1574. <input id="ipt_smssmlcd" ref="/root/temp/cmpnattr/delivesche/smsmsgsmlcd" maxlength="10" style="left:684px; top:143px; width:79px; height:19px; ">
  1575. <script type="javascript" ev:event="onkeyup">
  1576. <![CDATA[
  1577. inputEnterKey("btn_smssrch", "DOMActivate");
  1578. ]]>
  1579. </script>
  1580. </input>
  1581. <input id="ipt_smsmdlcd" ref="/root/temp/cmpnattr/delivesche/smsmsgmdlcd" visibility="hidden" style="left:703px; top:143px; width:40px; height:19px; "/>
  1582. <input id="ipt_smslrgcd" ref="/root/temp/cmpnattr/delivesche/smsmsglrgcd" visibility="hidden" style="left:723px; top:143px; width:40px; height:19px; "/>
  1583. <button id="btn_smssrch" class="icon_search" style="left:768px; top:143px; width:16px; height:16px; ">
  1584. <caption/>
  1585. <script type="javascript" ev:event="DOMActivate">
  1586. <![CDATA[
  1587. var search_condition = "S";
  1588. var search_term = model.getValue("/root/temp/cmpnattr/delivesche/smsmsgsmlcd");
  1589. var receive_msgsmlcd_path = "/root/temp/cmpnattr/delivesche/smsmsgsmlcd";
  1590. var receive_msgmdlcd_path = "/root/temp/cmpnattr/delivesche/smsmsgmdlcd";
  1591. var receive_msglrgcd_path = "/root/temp/cmpnattr/delivesche/smsmsglrgcd";
  1592. var receive_msgcnts_path = "/root/temp/cmpnattr/delivesche/smsmsg";
  1593. cczfOpenSelectMsg(search_condition, search_term, receive_msgsmlcd_path, receive_msgmdlcd_path, receive_msglrgcd_path, receive_msgcnts_path, "");
  1594. ]]>
  1595. </script>
  1596. </button>
  1597. <input id="input17" ref="/root/temp/cmpnattr/delivesche/emailtitl" disabled="true" visibility="hidden" style="left:636px; top:188px; width:200px; height:19px; "/>
  1598. <input id="input18" ref="/root/temp/cmpnattr/delivesche/emailmsgsmlcd" maxlength="10" style="left:844px; top:143px; width:79px; height:19px; ">
  1599. <script type="javascript" ev:event="onkeyup">
  1600. <![CDATA[
  1601. inputEnterKey("btn_emailsrch", "DOMActivate");
  1602. ]]>
  1603. </script>
  1604. </input>
  1605. <input id="input19" ref="/root/temp/cmpnattr/delivesche/emailmsgmdlcd" visibility="hidden" style="left:863px; top:143px; width:40px; height:19px; "/>
  1606. <input id="input20" ref="/root/temp/cmpnattr/delivesche/emailmsglrgcd" visibility="hidden" style="left:883px; top:143px; width:40px; height:19px; "/>
  1607. <button id="btn_emailsrch" class="icon_search" style="left:936px; top:142px; width:16px; height:16px; ">
  1608. <caption/>
  1609. <script type="javascript" ev:event="DOMActivate">
  1610. <![CDATA[
  1611. var search_condition = "E";
  1612. var search_term = model.getValue("/root/temp/cmpnattr/delivesche/emailmsgsmlcd");
  1613. var receive_msgsmlcd_path = "/root/temp/cmpnattr/delivesche/emailmsgsmlcd";
  1614. var receive_msgmdlcd_path = "/root/temp/cmpnattr/delivesche/emailmsgmdlcd";
  1615. var receive_msglrgcd_path = "/root/temp/cmpnattr/delivesche/emailmsglrgcd";
  1616. var receive_emailtitl_path = "/root/temp/cmpnattr/delivesche/emailtitl";
  1617. cczfOpenSelectMsg(search_condition, search_term, receive_msgsmlcd_path, receive_msgmdlcd_path, receive_msglrgcd_path, "", receive_emailtitl_path);
  1618. ]]>
  1619. </script>
  1620. </button>
  1621. <line id="line12" class="line_3" style="x1:5px; y1:364px; x2:510px; y2:364px; "/>
  1622. <line id="line11" class="line_3" style="x1:525px; y1:364px; x2:970px; y2:364px; "/>
  1623. <caption id="caption29" class="cell_1" style="left:5px; top:103px; width:105px; height:23px; text-align:center; ">전송대상</caption>
  1624. <select1 id="cmb_trsmtrgtflag" ref="/root/main/cmpn/cmpnattr/trsmtrgtflag" class="combo_default" navindex="13" appearance="minimal" style="left:113px; top:104px; width:130px; height:19px; ">
  1625. <choices>
  1626. <item>
  1627. <label>고객정보마이닝</label>
  1628. <value>1</value>
  1629. </item>
  1630. <item>
  1631. <label>주소록</label>
  1632. <value>2</value>
  1633. </item>
  1634. <item>
  1635. <label>건진정보마이닝</label>
  1636. <value>3</value>
  1637. </item>
  1638. </choices>
  1639. <script type="javascript" ev:event="xforms-select">
  1640. <![CDATA[
  1641. var trsmtrgtflag = model.getValue("/root/main/cmpn/cmpnattr/trsmtrgtflag");
  1642. if(trsmtrgtflag == "1") {
  1643. model.toggle("trgt_case1");
  1644. } else if(trsmtrgtflag == "2") {
  1645. model.toggle("trgt_case2");
  1646. } else if(trsmtrgtflag == "3") {
  1647. model.toggle("trgt_case3");
  1648. }
  1649. ]]>
  1650. </script>
  1651. </select1>
  1652. </group>
  1653. <group id="group8" style="left:225px; top:751px; width:970px; height:29px; vertical-align:top; ">
  1654. <button id="btn_select" class="btn2_letter5" style="left:5px; top:3px; width:75px; height:19px; ">
  1655. <caption>캠페인요약</caption>
  1656. <script type="javascript" ev:event="DOMActivate">
  1657. <![CDATA[
  1658. var grid = grd_exedatelist;
  1659. var grid2 = grd_cmpnlnklist;
  1660. if(grid.rows > 1){
  1661. var deliveschedayno = "";
  1662. var bfaftflag = "";
  1663. var deliveschetm = "";
  1664. var deliveschetmTemp = "";
  1665. var smsuseyn = "";
  1666. var emailuseyn = "";
  1667. var result = "";
  1668. for(i=1; grid.rows>i; i++){
  1669. deliveschedayno = grid.valueMatrix(i,grid.colRef("deliveschedayno"));
  1670. deliveschetmTemp = grid.valueMatrix(i,grid.colRef("bfaftflag"));
  1671. if( deliveschetmTemp == "B"){
  1672. bfaftflag = "전";
  1673. }else{
  1674. bfaftflag = "후";
  1675. }
  1676. deliveschetm = grid.valueMatrix(i,grid.colRef("deliveschetm"));
  1677. smsuseyn = grid.valueMatrix(i,grid.colRef("smsuseyn"));
  1678. emailuseyn = grid.valueMatrix(i,grid.colRef("emailuseyn"));
  1679. result += "전송실행일:"+deliveschedayno+" 전후:"+bfaftflag+" 전송시간:"+deliveschetm+" SMS:"+smsuseyn+" E-mail:"+emailuseyn+"\n\n";
  1680. }
  1681. model.setValue("/root/fwd/datelist", result);
  1682. }
  1683. if(grid2.rows > 1){
  1684. var nextcmpnnm = "";
  1685. var nextcmpncd = "";
  1686. var result2 = "";
  1687. for(i=1; grid2.rows>i; i++){
  1688. nextcmpnnm = grid2.valueMatrix(i,grid2.colRef("nextcmpnnm"));
  1689. nextcmpncd = grid2.valueMatrix(i,grid2.colRef("nextcmpncd"));
  1690. result2 += "연결캠페인명:"+nextcmpnnm+" 캠페인코드:"+nextcmpncd+"\n\n";
  1691. }
  1692. model.setValue("/root/fwd/cmpnlist", result2);
  1693. }
  1694. window.load("SPCPC01100_캠페인요약.xrw", "modal", "camp_pop", "align:center;", "/root/fwd", "/root/fwd");
  1695. ]]>
  1696. </script>
  1697. </button>
  1698. <button id="btn_release" class="btn2_letter8" style="left:83px; top:3px; width:108px; height:19px; ">
  1699. <caption>캠페인대상리스트</caption>
  1700. <script type="javascript" ev:event="DOMActivate">
  1701. <![CDATA[
  1702. fGetTrgtLIst();
  1703. ]]>
  1704. </script>
  1705. </button>
  1706. <!--button id="btn_reverse" class="btn2_letter4" style="left:134px; top:3px; width:64px; height:19px; ">
  1707. <caption>선택반전</caption>
  1708. <script ev:event="DOMActivate" type="javascript">
  1709. <![CDATA[
  1710. ]]>
  1711. </script>
  1712. </button-->
  1713. <button id="btn_addrsave" class="btn5_letter5" disabled="true" style="left:194px; top:3px; width:75px; height:19px; ">
  1714. <caption>주소록등록</caption>
  1715. <script type="javascript" ev:event="DOMActivate">
  1716. <![CDATA[
  1717. fAddrSave();
  1718. ]]>
  1719. </script>
  1720. </button>
  1721. <button id="btn_cmpnadd" class="btn2_letter5" style="left:671px; top:3px; width:75px; height:19px; ">
  1722. <caption>캠페인추가</caption>
  1723. <script type="javascript" ev:event="DOMActivate">
  1724. <![CDATA[
  1725. fInitGetAttr(1); //조회한 속성 초기화
  1726. fSetButtons(2); //캠페인 속성 탭
  1727. fSetControls(1); //캠페인 입력컨트롤 초기
  1728. fSetBaseDD(1); //실행예정일 입력컨트롤
  1729. model.setValue("/root/main/cmpn/cmpnattr/savemode","I");
  1730. model.setValue("/root/main/cmpn/cmpnattr/rgstdeptnm",getUserInfo("dutplcenm"));
  1731. model.setValue("/root/main/cmpn/cmpnattr/rgstdeptcd",getUserInfo("dutplcecd"));
  1732. model.refresh();
  1733. ]]>
  1734. </script>
  1735. </button>
  1736. <button id="btn_cmpnreset" class="btn5_letter3" style="left:749px; top:3px; width:53px; height:19px; ">
  1737. <caption>초기화</caption>
  1738. <script type="javascript" ev:event="DOMActivate">
  1739. <![CDATA[
  1740. if (!isXPathTextNull("/root/send/cmpnattr/cmpncd")) {
  1741. fInitCmpn(); //캠페인 속성 초기화
  1742. } else {
  1743. fInitGetAttr(1); //조회한 속성 초기화
  1744. model.setValue("/root/main/cmpn/cmpnattr/savemode","I");
  1745. model.refresh();
  1746. }
  1747. ]]>
  1748. </script>
  1749. </button>
  1750. <button id="btn_cmpnsaveas" class="btn5_letter5" style="left:805px; top:3px; width:75px; height:19px; ">
  1751. <caption>새이름으로</caption>
  1752. <script type="javascript" ev:event="DOMActivate">
  1753. <![CDATA[
  1754. model.setValue("/root/main/cmpn/cmpnattr/savemode","I");
  1755. fSaveCmpn();
  1756. ]]>
  1757. </script>
  1758. </button>
  1759. <button id="btn_cmpnupdt" class="btn5_letter2" style="left:883px; top:3px; width:42px; height:19px; ">
  1760. <caption>수정</caption>
  1761. <script type="javascript" ev:event="DOMActivate">
  1762. <![CDATA[
  1763. fSaveCmpn();
  1764. ]]>
  1765. </script>
  1766. </button>
  1767. <button id="btn_cmpnsave" class="btn5_letter2" style="left:928px; top:3px; width:42px; height:19px; ">
  1768. <caption>등록</caption>
  1769. <script type="javascript" ev:event="DOMActivate">
  1770. <![CDATA[
  1771. fSaveCmpn();
  1772. ]]>
  1773. </script>
  1774. </button>
  1775. </group>
  1776. </xhtml:body>
  1777. </xhtml:html>