Files
sake/src/main/webapp/WEB-INF/views/mngr/promtn/coupon/CouponPkRegistC.jsp
jazz e731981a26 fix : ajax 오류 메시지 추출로직변경
as-is
	let message = JSON.parse(JSON.parse(request.responseText).resBody.message);
	alert(message.errorMsg);

to-be
    let message = JSON.parse(request.responseText).resBody.result;
    alert(message);
2026-02-25 10:51:56 +09:00

2127 lines
119 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<%@ page import="java.util.Date" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : CouponPkRegistC.jsp
Description : 쿠폰(팩) 발송 등록
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2024.01.04 추지훈 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<script>
$(document).ready(function() {
// 발송구분 라디오버튼
updateSndngDvRadio();
// 쿠폰발송유형 라디오버튼
updateCouponSndngTyRadio();
// 쿠폰선택 리스트 전체체크박스
checkBoxAllUpdate();
// SMS 셀렉트박스
disableSmsSelectBox();
// 카카오 셀렉트박스
disableKakaoSelectBox();
// 이메일 셀렉트박스
disableEmailSelectBox();
// 유효기간
updateValidpdKndInput();
// 예약 발송 제어
disableReservSndngDt();
// 발송대상구분
updateMbrGroupTrRadio();
// 유효기간
$('input[name="sndngDtDvCd"]').change(function() {
disableReservSndngDt();
});
function disableReservSndngDt() {
var radioVal = $('input[name="sndngDtDvCd"]:checked').val();
if (radioVal === "02") {
$('.reserSndngDiv').find('input').prop('disabled', false);
} else {
$('.reserSndngDiv').find('input').prop('disabled', true);
}
if (radioVal === "01" || radioVal === "02") {
$('.targetSettingSec').show();
$('.targetSettingSec').prop('disabled', false); // 안내 문자
$('.messageSec').show();
$('.messageSec').prop('disabled', false); // 안내 문자
} else {
$('.targetSettingSec').hide();
$('.targetSettingSec').prop('disabled', true); // 안내 문자
$('.messageSec').hide();
$('.messageSec').prop('disabled', true); // 안내 문자
}
}
// 발송대상구분
$('#sndngTrgetDvDiv').on('click', function() {
updateMbrGroupTrRadio();
});
// 발송구분
$('#sndngDvRadioDiv').change(function() {
updateSndngDvRadio();
});
// 발송구분 라디오버튼 제어 함수
function updateSndngDvRadio() {
var radioVal = $('input[name="sndngDv"]:checked').val();
if (radioVal === "02") {
$('#cupnpkChoiseTr').show();
$('#cupnpkChoiseTr #cupnpkInnb').prop('disabled', false);
$('#cupnpkChoiseTr #cupnpkInnb').niceSelect('update');
$('#couponChoiseTr').find('button, input').prop('disabled', true);
$('#couponChoiseTr').hide();
$('#couponChoiseTr input[name="packedCouponInnbs"]').prop('disabled', true);
} else if ( radioVal === "01") {
$('#couponChoiseTr').show();
$('#couponChoiseTr').find('button, input').prop('disabled', false);
$('#cupnpkChoiseTr').hide();
$('#cupnpkChoiseTr #cupnpkInnb').prop('disabled', true);
$('#cupnpkChoiseTr #cupnpkInnb').niceSelect('update');
}
};
// 발송유형
$('#couponSndngTyRadioDiv').change(function() {
updateCouponSndngTyRadio();
});
// 쿠폰선택 전체 체크박스 제어
function checkBoxAllUpdate() {
$('#couponChoiseTr input[name="choiseCouponCheckbox"]').click(function() {
var checkBoxAll = true;
$('#couponChoiseTr input[name="choiseCouponCheckbox"]').each(function() {
if (!$(this).prop('checked')) {
checkBoxAll = false;
}
});
$('#couponChoiseTr .check-all input[type="checkbox"]').prop('checked', checkBoxAll);
});
}
// SMS
$('input[name="smsSndngFormRadio"]').on('change', function() {
disableSmsSelectBox();
});
// SMS 셀렉트박스 제어
function disableSmsSelectBox() {
var smsUseAtValue = $('input[name="smsSndngFormRadio"]:checked').val();
if (smsUseAtValue === 'Y') {
$('#smsSndngFormInnb').prop('disabled', false);
$('#smsSndngFormInnb').niceSelect('update');
} else if (smsUseAtValue === 'N') {
$('#smsSndngFormInnb').prop('disabled', true);
$('#smsSndngFormInnb').niceSelect('update');
}
};
// 카카오
$('input[name="ntcntalkSndngFormRadio"]').on('change', function() {
disableKakaoSelectBox();
});
// 카카오 셀렉트박스 제어
function disableKakaoSelectBox() {
var kakaoUseAtValue = $('input[name="ntcntalkSndngFormRadio"]:checked').val();
if (kakaoUseAtValue === 'Y') {
$('#ntcntalkSndngFormInnb').prop('disabled', false);
$('#ntcntalkSndngFormInnb').niceSelect('update');
} else if (kakaoUseAtValue === 'N') {
$('#ntcntalkSndngFormInnb').prop('disabled', true);
$('#ntcntalkSndngFormInnb').niceSelect('update');
}
};
// 이메일
$('input[name="emailSndngFormRadio"]').on('change', function() {
disableEmailSelectBox();
});
// 이메일 셀렉트박스 제어
function disableEmailSelectBox() {
var emailUseAtValue = $('input[name="emailSndngFormRadio"]:checked').val();
if (emailUseAtValue === 'Y') {
$('#emailSndngFormInnb').prop('disabled', false);
$('#emailSndngFormInnb').niceSelect('update');
} else if (emailUseAtValue === 'N') {
$('#emailSndngFormInnb').prop('disabled', true);
$('#emailSndngFormInnb').niceSelect('update');
}
};
// 유효기간
$('#radioDwldPdLmttAt').change(function() {
updateValidpdKndInput();
});
// 유효기간 라디오버튼 제어 함수
function updateValidpdKndInput() {
var radioValue = $('input[name="dwldPdLmttAt"]:checked').val();
if (radioValue === "Y") {
$('#dwldBgnDt').prop("disabled", false);
$('#dwldEndDt').prop("disabled", false);
$('#dwldBgnDtTime').prop("disabled", false);
$('#dwldEndDtTime').prop("disabled", false);
} else if (radioValue === "N") {
$('#dwldBgnDt').prop("disabled", true);
$('#dwldEndDt').prop("disabled", true);
$('#dwldBgnDtTime').prop("disabled", true);
$('#dwldEndDtTime').prop("disabled", true);
}
}
let ty;
// 쿠폰 선택창에 유형값 반환
$('input[name="couponSndngTy"]').on('click', function() {
ty = getSndngTyRadio();
});
let couponSndngTy = '<c:out value="${ sndngVO.couponSndngTy }"/>';
$('.hidden').hide();
$('#marketingTr').hide();
$('#marketingTr').prop('disabled', true);
$('select').niceSelect();
/*예제*/
$("#resultBtn").on("click",function(){
const mbrInfo = $(".mbrInfo").val();
if (mbrInfo) {
// JSON 문자열을 객체로 변환
const resultArr = JSON.parse(mbrInfo);
// 객체를 문자열로 변환하여 resultCn에 출력
$("#resultCn").val(JSON.stringify(resultArr, null, 2));
} else {
$("#resultCn").val("No data found");
}
});
/*예제*/
$("#resultBtnMarketing").on("click",function(){
const mbrInfo = $(".marketingTrgetInfo").val();
if (mbrInfo) {
// JSON 문자열을 객체로 변환
const resultArr = JSON.parse(mbrInfo);
// 객체를 문자열로 변환하여 resultCn에 출력
$("#jsonMarketingTrgetList").val(JSON.stringify(resultArr, null, 2));
} else {
$("#jsonMarketingTrgetList").val("No data found");
}
});
$('.companyTr').prop('disabled', true);
$('.companyTr').hide();
$('input[name="sndngTrgetTyCd"]').on('click', function() {
let selectValue = $(this).val(); // 현재 이벤트가 발생한 요소의 값을 가져옴
if (selectValue === '01') {
$('#memberTr').prop('disabled', false);
$('#memberTr').show();
$('.companyTr').prop('disabled', true);
$('.companyTr').hide();
$('#marketingTr').prop('disabled', true);
$('#marketingTr').hide();
$('.messageSec').prop('disabled', false);
$('.messageSec').show();
$('.textUpload').hide();
$('.textUpload').prop('disabled', true);
} else if (selectValue === '03') {
$('.companyTr').prop('disabled', false);
$('.companyTr').show();
$('#memberTr').prop('disabled', true);
$('#memberTr').hide();
$('#marketingTr').prop('disabled', true);
$('#marketingTr').hide();
$('.messageSec').prop('disabled', true);
$('.messageSec').hide();
$('.textUpload').hide();
$('.textUpload').prop('disabled', true);
} else if (selectValue === '02') {
$('#memberTr').prop('disabled', true);
$('#memberTr').hide();
$('.companyTr').prop('disabled', true);
$('.companyTr').hide();
$('#marketingTr').prop('disabled', false);
$('#marketingTr').show();
$('.messageSec').prop('disabled', false);
$('.messageSec').show();
$('.textUpload').hide();
$('.textUpload').prop('disabled', true);
} else if (selectValue === '04') {
$('#memberTr').prop('disabled', true);
$('#memberTr').hide();
$('.companyTr').prop('disabled', true);
$('.companyTr').hide();
$('#marketingTr').prop('disabled', true);
$('#marketingTr').hide();
$('.messageSec').prop('disabled', false);
$('.messageSec').show();
$('.textUpload').show();
$('.textUpload').prop('disabled', false);
}
});
$('#targetDvOffle').on('change', function() {
let selectValue = $(this).val(); // 현재 이벤트가 발생한 요소의 값을 가져옴
if (selectValue === '01') {
$('#memberTr').prop('disabled', false);
$('#memberTr').show();
$('.companyTr').prop('disabled', true);
$('.companyTr').hide();
$('#marketingTr').prop('disabled', true);
$('#marketingTr').hide();
$('.messageSec').prop('disabled', false);
$('.messageSec').show();
} else if (selectValue === '03') {
$('.companyTr').prop('disabled', false);
$('.companyTr').show();
$('#memberTr').prop('disabled', true);
$('#memberTr').hide();
$('#marketingTr').prop('disabled', true);
$('#marketingTr').hide();
$('.messageSec').prop('disabled', true);
$('.messageSec').hide();
} else if (selectValue === '02') {
$('#memberTr').prop('disabled', true);
$('#memberTr').hide();
$('.companyTr').prop('disabled', true);
$('.companyTr').hide();
$('#marketingTr').prop('disabled', false);
$('#marketingTr').show();
$('.messageSec').prop('disabled', false);
$('.messageSec').show();
}
});
/**
* 템플릿 사용 여부
*/
$('#messageUseAt').on('change', function() {
let useAt = $('#messageUseAt').val();
if (useAt === 'Y') {
$('.messageUseAtTr').find('input, select, textarea, button, a').prop('disabled', false);
} else {
$('.messageUseAtTr').find('input, select, textarea, button, a').prop('disabled', true);
}
});
/**************************************************************
* 바이트 수 체크
****************************************************************/
$("#sndngSj, #sndngCn").on("keyup change", function() {
const sndngSjStr = $("#sndngSj").val();
const sndngCnStr = $("#sndngCn").val();
const str = sndngSjStr + sndngCnStr;
let str_len = sndngSjStr.length + sndngCnStr.length;
let rbyte = 0;
let rlen = 0;
let one_char = "";
//byte수 세기
for (let i = 0; i < str_len; i++) {
one_char = str.charAt(i);
if (escape(one_char).length > 4) {
//한글3Byte
rbyte += 3;
} else {
//영문 등 나머지 1Byte
rbyte++;
}
}
//바이트 표시
$('.byteCnt').text(rbyte);
if(rbyte > 90) {
$('.sndng-type').text("(LMS)")
} else {
$('.sndng-type').text("(SMS)")
}
})
//고객센터 버튼
$('#auto-callback').click(function() {
$.ajax({
type: "post",
url : "<c:url value="/mngr/ntcn/mssage/selectShopNb"/>",
success:function(data) {
const str = JSON.parse(data.resBody.result);
const smsAtmcSndngDsptchNb = str.shopNbMap.smsAtmcSndngDsptchNb;
//제목
if (fn_is_empty($("#sndngSj").val())) {
const addTitle = '(광고)' + str.shopNbMap.sopmalNm;
$("#sndngSj").val(addTitle);
}
//내용
let sndngCn = $("#sndngCn").val();
const strCall = '■ 고객센터 : ' + smsAtmcSndngDsptchNb;
const iVal = sndngCn.indexOf(strCall);
if(iVal == -1) {
sndngCn = sndngCn + '\r\n\r\n' + strCall;
}
$("#sndngCn").val(sndngCn).trigger("change");
}
})
});
//무료 수신 거부
$('#auto-freedeny').click(function() {
$.ajax({
type: "post",
url : "<c:url value="/mngr/ntcn/mssage/selectShopNb"/>",
success:function(data) {
const str = JSON.parse(data.resBody.result);
const rejectTelnb = str.shopNbMap.rejectTelnb;
let sndngCn = $("#sndngCn").val();
const strFreedeny = '무료수신거부 : ' + rejectTelnb;
const iVal = sndngCn.indexOf(strFreedeny);
if(iVal == -1) {
sndngCn = sndngCn + '\r\n\r\n\r\n\r\n' + strFreedeny;
}
$("#sndngCn").val(sndngCn).trigger("change");
}
})
});
//특수문자 버튼
$("#special_cont").click(function(){
if($("#special_view").css("display")=='none') $("#special_view").show();
else $("#special_view").hide();
});
//특수문자 css
$("#special_view").find("td").css({
"height" : "0px"
})
//특수문자 입력
$(".special_char").click(function(){
const str = $("#sndngCn").val();
$("#sndngCn").val(str+$(this).attr('conts')).trigger("change");;
});
/**
* 발송 대상 추가
*/
$('#addBtn').on('click', function () {
// 텍스트에어리어에서 데이터 가져오기
const input = $('#inputData').val();
// 줄 바꿈으로 나누기
const lines = input.split('\n').filter(line => $.trim(line) !== '');
// JSON 객체 배열 생성
const jsonArray = lines.map((line, index) => {
const parts = line.trim().split(/\s+/);
return {
to: parts [0], // 고유 ID (선택 사항)
name: parts[1] // 줄 내용을 객체에 저장
};
});
// 결과 출력
const result = JSON.stringify(jsonArray, null, 4);
const directDiv = $("#directDiv");
//중복확인
let isDuplicate = false;
directDiv.children("div").each(function (){
let currentText = $(this).text().trim();
jsonArray.forEach(function (item){
if(currentText.includes(item.to)) {
isDuplicate = true;
return false;
}
})
});
if(isDuplicate) {
alert("전화번호가 이미 입력되어 있습니다.")
return ;
}
jsonArray.forEach((item, index) => {
const divCnt = directDiv.children("div").length + 1;
const newDiv = $("<div></div>")
.text(`[\${divCnt}] \${item.to} \${item.name}`);
const delBtn = $("<button>삭제</button>")
.attr("type", "button")
.addClass("btn xsm gray btn_del")
.on("click", function () {
$(this).parent().remove();
});
newDiv.append(delBtn).append("<br>");
directDiv.append(newDiv);
if (index === jsonArray.length - 1) {
$('#inputData').empty();
}
});
});
/**
* 발송 대상자 목록 전체 삭제
*/
$('#removeOpt').on('click', function () {
let directDiv = $('#directDiv');
directDiv.find('div').remove();
});
$('input[name="sndngTrgetTyCd"]:checked').trigger('click');
}); // document.ready END
// 발송유형 라디오버튼 제어 함수
function updateCouponSndngTyRadio() {
var radioVal = $('input[name="couponSndngTy"]:checked').val();
/*발송 유형에 따른 화면 제어*/
if(radioVal === '02'){
/*
* show : 발송 대상 구분, 등급 대상, 다운로드 기간 제한
* hide : 메시지설정, 발송대상, 발송일시구분
* disable : 메시지설정, 발송대상
* enable : 발송 대상 구분, 등급 대상, 다운로드 기간 제한, 예약발송
*/
fn_ui_showHide('#sndngTrgetDvTr, #mbrGroupTr, .dwnlTr', '.messageSec, .targetSettingSec, .sndngDtDvTr');
fn_ctrl_disable(['.messageSec', '.targetSettingSec'],
['#sndngTrgetDvTr input[name="sndngTrgetDv"]', '#mbrGroupTr input', '.dwnlTr input']);
var radioValue = $('input[name="dwldPdLmttAt"]:checked').val();
if (radioValue === 'N') {
fn_ctrl_disable(['#dwldBgnDt', '#dwldEndDt', '#dwldBgnDtTime', '#dwldEndDtTime'], []);
} else {
fn_ctrl_disable([], ['#dwldBgnDt', '#dwldEndDt', '#dwldBgnDtTime', '#dwldEndDtTime']);
}
/*발송대상구분 초기화*/
$('input[name="sndngTrgetDv"]:first').click();
}else{
//01,03 공통 처리
/*
* show : 메시지설정, 발송대상, 발송일시구분
* hide : 발송 대상 구분, 등급 대상, 다운로드 기간 제한
* disable : 발송 대상 구분, 등급 대상, 다운로드 기간 제한, 예약발송
* enable : 메시지설정, 발송대상
*/
fn_ui_showHide('.messageSec, .targetSettingSec, .sndngDtDvTr',
'#sndngTrgetDvTr, #mbrGroupTr, .dwnlTr');
fn_ctrl_disable(['.reserSndngDiv', '#sndngTrgetDvTr input[name="sndngTrgetDv"]', '#mbrGroupTr input', '.dwnlTr input'],
['.messageSec', '.targetSettingSec']);
//01,03 개별 처리
if (radioVal === '01') {
//발송 대상 > 구분 중 개인,마케팅 대상만 노출
$('.custom-radio-trget-dv').each(function (index) {
if (index >= 2) {
$(this).hide().find('input').prop('disabled', true);
}
});
//발송일시 전체 노출
$(".custom-radio-dt-dv").show();
} else {
//발송 대상 > 구분 전체 노출
$(".custom-radio-trget-dv").show().find('input').prop('disabled', false);
//발송일시 수동, 예약, 생일만 노출
$(".custom-radio-dt-dv").each(function (index) {
if (index >= 3) {
$(this).hide();
}
});
}
//발송대상 > 구분 초기화
$('input[name="sndngTrgetTyCd"]:first').click();
}
/*공통 처리*/
$('#messageUseAt').val('Y').change().niceSelect('update');
$('input[name="sndngDv"]:first').click();
$('input[name="sndngDtDvCd"]:first').click();
$(".mbrInfo").val("");
$("#sndngTrgetParam").val("");
$(".srchMbrCnt").text("0명");
$(".srchMarketingTrgetCnt").text("0명");
$('#selectList').empty();
/*쿠폰 구분 click 함수 제어
* 01 => 구분 Y
* 02 , 03 => 구분 N
* */
if (radioVal === '01') {
$('input[name="sndngDv"]').removeAttr('onclick');
} else {
$('input[name="sndngDv"]').attr('onclick', 'return false;');
}
};
// 발송대상구분 라디오 버튼 제어함수
function updateMbrGroupTrRadio() {
var radioVal = $('input[name="sndngTrgetDv"]:checked').val();
if (radioVal === "01") {
$('#mbrGroupTr').find('input').prop('disabled', true);
$('#mbrGroupTr').hide(); // 전체회원
} else if (radioVal === "02") {
$('#mbrGroupTr').find('input').prop('disabled', false);
$('#mbrGroupTr').show(); // 등급 대상
}
};
// getter 쿠폰 선택할때 유형 반환
const getSndngTyRadio = function() {
var radioVal = $('input[name="couponSndngTy"]:checked').val();
return radioVal;
}
/**
* 쿠폰 선택 모달 오픈
*/
const fn_open_modal_sndngty = function(modalDivSltr, modalSlrt, url, param){
var couponSndngTy = param
$.ajax({
type: 'post',
url: url,
data: {
couponSndngTy
},
success: function (data) {
$(modalSlrt).remove();
$(modalDivSltr).html(data);
$(modalSlrt).modal();
// fn_search_coupon_choisepage_pop(1, getSndngTyRadio())
}
});
}
/**
* 쿠폰 선택 모달 : 쿠폰 검색 ajax
*/
const fn_search_coupon_choisepage_pop = function (pageIndex, param) {
// 페이지정보가 넘어오지 않았을 경우 기본값 초기화
if(!pageIndex) {
pageIndex = 1;
}
// 모달 쿠폰 검색 form 에 페이지 정보를 넣어줌.
$('#popupListForm').find('input[name=pageIndex]').eq(0).val(pageIndex);
const popupListForm = $("#popupListForm").serialize();
// 모달 쿠폰 검색
$.ajax({
type: 'post',
url: '<c:url value="/mngr/promtn/coupon/selectCouponChoisePopupSearch"/>',
data: popupListForm,
success: function(data) {
$('#couponAjaxList').empty();
$('#couponAjaxList').html(data);
}
});
};
/**
* 쿠폰 선택 삭제 함수
*/
const fn_delete_couponchoise = function () {
var $tbody = $("#selectList");
// 체크된 input 찾기
$tbody.find('input[type="checkbox"]:checked').each(function () {
$(this).closest('tr').remove(); // 체크된 tr 삭제
});
if ($tbody.children().length === 0) {
var noDataMessage = $("<tr>");
var cell = $("<td>").attr("colspan", '100%').html('<spring:message code="common.nodata"/>');
noDataMessage.append(cell);
$tbody.append(noDataMessage);
}
$('.check-all input[type="checkbox"]').prop('checked', false);
};
/**
* 쿠폰 선택 모달에서 부모창으로 값을 전달하는 함수
*/
const fn_send_cupnpkregistpage = function(modalId) {
let childCouponList = [];
// 선택된 쿠폰 리스트 반복
$('#appendList tr').each(function() {
let coupon = {
couponInnb: '',
sopmalName: '',
couponSopmalCd: '',
couponName: '',
bnefDv: '',
goodsDscntDv: '',
aditDscntAmt: '',
aditDscntRt: '',
dscntMxmmAmt: '',
dlvyAmtDscntDv: '',
dlvyAmtDscntAmt: '',
dlvyAmtMxmmDscntAmt: '',
couponRegistDe: '',
couponValidpdKnd: '',
couponValidpdBgnDe: '',
couponValidpdEndDe: '',
couponValidpdDeCnt: '',
couponValidpdCntDe: ''
};
coupon.couponInnb = $(this).find("#couponInnb").val();
coupon.sopmalName = $(this).find("#sopmalName").val();
coupon.couponSopmalCd = $(this).find("#couponSopmalCd").val();
coupon.couponName = $(this).find("#couponName").val();
coupon.bnefDv = $(this).find("#bnefDv").val();
coupon.goodsDscntDv = $(this).find("#goodsDscntDv").val();
coupon.aditDscntAmt = $(this).find("#aditDscntAmt").val();
coupon.aditDscntRt = $(this).find("#aditDscntRt").val();
coupon.dscntMxmmAmt = $(this).find("#dscntMxmmAmt").val();
coupon.dlvyAmtDscntDv = $(this).find("#dlvyAmtDscntDv").val();
coupon.dlvyAmtDscntAmt = $(this).find("#dlvyAmtDscntAmt").val();
coupon.dlvyAmtMxmmDscntAmt = $(this).find("#dlvyAmtMxmmDscntAmt").val();
coupon.couponRegistDe = $(this).find("#couponRegistDe").val();
coupon.couponValidpdKnd = $(this).find("#couponValidpdKnd").val();
coupon.couponValidpdBgnDe = $(this).find("#couponValidpdBgnDe").val();
coupon.couponValidpdEndDe = $(this).find("#couponValidpdEndDe").val();
coupon.couponValidpdDeCnt = $(this).find("#couponValidpdDeCnt").val();
coupon.couponValidpdCntDe = $(this).find("#couponValidpdCntDe").val();
childCouponList.push(coupon);
});
$("#"+modalId+" > a").each(function() {
if(this.href.indexOf('#close-modal')){
$(this).click();
}
});
$('#' + modalId).remove();
// 선택된 쿠폰 리스트를 CupnpkRegistC.jsp > 쿠폰선택 영역에 그려줄 html
let sletdTrHtml = '<tr id="#choiseListId" >';
sletdTrHtml = sletdTrHtml+'<td class="center">';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponInnb" name="packedCouponInnbs" value="#couponInnb"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="sopmalName" name="sopmalName" value="#sopmalName"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponSopmalCd" name="couponSopmalCd" value="#couponSopmalCd"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponName" name="couponName" value="#couponName"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="bnefDv" name="bnefDv" value="#bnefDv"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="goodsDscntDv" name="goodsDscntDv" value="#goodsDscntDv"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="aditDscntAmt" name="aditDscntAmt" value="#aditDscntAmt"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="aditDscntRt" name="aditDscntRt" value="#aditDscntRt"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="dscntMxmmAmt" name="dscntMxmmAmt" value="#dscntMxmmAmt"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="dlvyAmtDscntDv" name="dlvyAmtDscntDv" value="#dlvyAmtDscntDv"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="dlvyAmtDscntAmt" name="dlvyAmtDscntAmt" value="#dlvyAmtDscntAmt"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="dlvyAmtMxmmDscntAmt" name="dlvyAmtMxmmDscntAmt" value="#dlvyAmtMxmmDscntAmt"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponRegistDe" name="couponRegistDe" value="#couponRegistDe"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponValidpdKnd" name="couponValidpdKnd" value="#couponValidpdKnd"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponValidpdBgnDe" name="couponValidpdBgnDe" value="#couponValidpdBgnDe"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponValidpdEndDe" name="couponValidpdEndDe" value="#couponValidpdEndDe"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponValidpdDeCnt" name="couponValidpdDeCnt" value="#couponValidpdDeCnt"/>';
sletdTrHtml = sletdTrHtml+'<input type="hidden" id="couponValidpdCntDe" name="couponValidpdCntDe" value="#couponValidpdCntDe"/>';
sletdTrHtml = sletdTrHtml+'<label class="b-checkbox checkbox is-medium tr-color-check">';
sletdTrHtml = sletdTrHtml+'<input type="checkbox" id="checkboxCouponInnb" name="choiseCouponCheckbox" value="#couponInnb">';
sletdTrHtml = sletdTrHtml+'<span class="check"></span>';
sletdTrHtml = sletdTrHtml+'</label>';
sletdTrHtml = sletdTrHtml+'</td>';
sletdTrHtml = sletdTrHtml+'<td>';
sletdTrHtml = sletdTrHtml+'#sopmalName';
sletdTrHtml = sletdTrHtml+'</td>';
sletdTrHtml = sletdTrHtml+'<td>';
sletdTrHtml = sletdTrHtml+'#couponName';
sletdTrHtml = sletdTrHtml+'</td>';
// 배송비할인 무료 html
let dlcyAmtDscntFreeHtml = '<td>';
dlcyAmtDscntFreeHtml = dlcyAmtDscntFreeHtml+'<span class="fw-500">';
dlcyAmtDscntFreeHtml = dlcyAmtDscntFreeHtml+'기본 배송비 무료,';
dlcyAmtDscntFreeHtml = dlcyAmtDscntFreeHtml+'</span><br/>';
dlcyAmtDscntFreeHtml = dlcyAmtDscntFreeHtml+'<span class="gray-8">최대 #dlvyAmtMxmmDscntAmt 원 할인</span>';
dlcyAmtDscntFreeHtml = dlcyAmtDscntFreeHtml+'</td>';
// 배송비 금액 할인 html
let dlcyAmtDscntWonHtml = '<td>';
dlcyAmtDscntWonHtml = dlcyAmtDscntWonHtml+'<span class="fw-500">';
dlcyAmtDscntWonHtml = dlcyAmtDscntWonHtml+'배송비 할인,';
dlcyAmtDscntWonHtml = dlcyAmtDscntWonHtml+'</span><br/>';
dlcyAmtDscntWonHtml = dlcyAmtDscntWonHtml+'<span class="gray-8">#dlvyAmtDscntAmt 원 할인</span>';
dlcyAmtDscntWonHtml = dlcyAmtDscntWonHtml+'</td>';
// 비율 할인 html
let goodsDscntDvRtHtml = '<td>';
goodsDscntDvRtHtml = goodsDscntDvRtHtml+'<span class="fw-500">';
goodsDscntDvRtHtml = goodsDscntDvRtHtml+'#aditDscntAmt % 할인';
goodsDscntDvRtHtml = goodsDscntDvRtHtml+'</span><br/>';
goodsDscntDvRtHtml = goodsDscntDvRtHtml+'<span class="gray-8">최대 #dscntMxmmAmt 원 할인</span>';
goodsDscntDvRtHtml = goodsDscntDvRtHtml+'</td>';
// 금액 할인 html
let goodsDscntDvAmtHtml = '<td>';
goodsDscntDvAmtHtml = goodsDscntDvAmtHtml+'<span class="fw-500">';
goodsDscntDvAmtHtml = goodsDscntDvAmtHtml+'#aditDscntAmt 원 할인';
goodsDscntDvAmtHtml = goodsDscntDvAmtHtml+'</span>';
goodsDscntDvAmtHtml = goodsDscntDvAmtHtml+'</td>';
// 유효기간 기간 제한 (날짜) html
let sletdTrTail = '<td>';
sletdTrTail = sletdTrTail+'<span>#couponValidpdBgnDe</span>';
sletdTrTail = sletdTrTail+'~';
sletdTrTail = sletdTrTail+'<span>#couponValidpdEndDe</span>';
sletdTrTail = sletdTrTail+'</td>';
sletdTrTail = sletdTrTail+'</tr>';
// 유효기간 발급일로부터 일수 html
let sletdTrCntDe = '<td>';
sletdTrCntDe = sletdTrCntDe+'(발급일로부터) ';
sletdTrCntDe = sletdTrCntDe+'<span>#couponValidpdDeCnt 일</span>';
sletdTrCntDe = sletdTrCntDe+'</td>';
sletdTrCntDe = sletdTrCntDe+'</tr>';
// 선택된 쿠폰이 있을 경우
if (childCouponList != null && childCouponList.length >= 0) {
// 기존에 그려진 쿠폰 리스트를 비워줌
$('#selectList').empty();
// 선택된 쿠폰 리스트를 CupnpkRegistC.jsp > 쿠폰선택 영역에 그려줌.
childCouponList.forEach(function(coupon) {
let trHtml = sletdTrHtml
.replaceAll("#choiseListId", 'choiseListId' + coupon.couponInnb)
.replaceAll("#couponInnb", coupon.couponInnb)
.replaceAll("#sopmalName", coupon.sopmalName)
.replaceAll("#couponSopmalCd", coupon.couponSopmalCd)
.replaceAll("#couponName", coupon.couponName)
.replaceAll("#bnefDv", coupon.bnefDv)
.replaceAll("#goodsDscntDv", coupon.goodsDscntDv)
.replaceAll("#aditDscntAmt", coupon.aditDscntAmt)
.replaceAll("#aditDscntRt", coupon.aditDscntRt)
.replaceAll("#dscntMxmmAmt", coupon.dscntMxmmAmt)
.replaceAll("#dlvyAmtDscntDv", coupon.dlvyAmtDscntDv)
.replaceAll("#dlvyAmtDscntAmt", coupon.dlvyAmtDscntAmt)
.replaceAll("#dlvyAmtMxmmDscntAmt", coupon.dlvyAmtMxmmDscntAmt)
.replaceAll("#couponRegistDe", coupon.couponRegistDe)
.replaceAll("#couponValidpdKnd", coupon.couponValidpdKnd)
.replaceAll("#couponValidpdBgnDe", coupon.couponValidpdBgnDe)
.replaceAll("#couponValidpdEndDe", coupon.couponValidpdEndDe)
.replaceAll("#couponValidpdDeCnt", coupon.couponValidpdDeCnt)
.replaceAll("#couponValidpdCntDe", coupon.couponValidpdCntDe);
// 배송비할인인 경우
if (coupon.bnefDv != null && coupon.bnefDv.trim() === '02') {
// 무료 배송비의 경우
if (coupon.dlvyAmtDscntDv != null && coupon.dlvyAmtDscntDv.trim() === '01') {
trHtml = trHtml + dlcyAmtDscntFreeHtml
.replaceAll("#dlvyAmtMxmmDscntAmt", coupon.dlvyAmtMxmmDscntAmt);
// 금액할인 배송비의 경우
} else if (coupon.dlvyAmtDscntDv != null && coupon.dlvyAmtDscntDv.trim() === '02') {
trHtml = trHtml + dlcyAmtDscntWonHtml
.replaceAll("#dlvyAmtDscntAmt", coupon.dlvyAmtDscntAmt);
}
} else {
// 혜택 구분값이 percent 인 경우 비율 html 을 append
if (coupon.goodsDscntDv != null && coupon.goodsDscntDv.trim() === '01') {
trHtml = trHtml + goodsDscntDvRtHtml
.replaceAll("#aditDscntAmt", coupon.aditDscntAmt)
.replaceAll("#dscntMxmmAmt", coupon.dscntMxmmAmt);
// 혜택 구분값이 won 인 경우 금액 html 을 append
} else if (coupon.goodsDscntDv != null && coupon.goodsDscntDv.trim() === '02') {
trHtml = trHtml + goodsDscntDvAmtHtml
.replaceAll("#aditDscntAmt", coupon.aditDscntAmt);
}
}
// 기간설정 날짜
if (coupon.couponValidpdKnd != null && coupon.couponValidpdKnd.trim() === '01') {
trHtml = trHtml + sletdTrTail
.replaceAll("#couponValidpdBgnDe", coupon.couponValidpdBgnDe)
.replaceAll("#couponValidpdEndDe", coupon.couponValidpdEndDe);
// 기간설정 일수
} else if (coupon.couponValidpdKnd != null && coupon.couponValidpdKnd.trim() === '02') {
trHtml = trHtml + sletdTrCntDe
.replaceAll("#couponValidpdDeCnt", coupon.couponValidpdDeCnt);
}
function checkBoxAllUpdate() {
$('#couponChoiseTr input[name="choiseCouponCheckbox"]').click(function() {
var checkBoxAll = true;
$('#couponChoiseTr input[name="choiseCouponCheckbox"]').each(function() {
if (!$(this).prop('checked')) {
checkBoxAll = false;
}
});
$('#couponChoiseTr .check-all input[type="checkbox"]').prop('checked', checkBoxAll);
});
}
$('#selectList').append(trHtml);
checkBoxAllUpdate();
});
}
};
/**
* 쿠폰팩 등록 화면에서 선택된 쿠폰을 반환하는 함수
*/
const getAllCouponList = function() {
let couponList = [];
// CupnpkRegistC.jsp 에서 선택된 쿠폰을 모달 창으로 퍼올리는 작업
$('#selectList tr').each(function() {
let coupon = {
couponInnb: '',
sopmalName: '',
couponSopmalCd: '',
couponName: '',
bnefDv: '',
goodsDscntDv: '',
aditDscntAmt: '',
aditDscntRt: '',
dscntMxmmAmt: '',
dlvyAmtDscntDv: '',
dlvyAmtDscntAmt: '',
dlvyAmtMxmmDscntAmt: '',
couponRegistDe: '',
couponValidpdKnd: '',
couponValidpdBgnDe: '',
couponValidpdEndDe: '',
couponValidpdDeCnt: '',
couponValidpdCntDe: ''
};
coupon.couponInnb = $(this).find("#couponInnb").val();
coupon.sopmalName = $(this).find("#sopmalName").val();
coupon.couponSopmalCd = $(this).find("#couponSopmalCd").val();
coupon.couponName = $(this).find("#couponName").val();
coupon.bnefDv = $(this).find("#bnefDv").val();
coupon.goodsDscntDv = $(this).find("#goodsDscntDv").val();
coupon.aditDscntAmt = $(this).find("#aditDscntAmt").val();
coupon.aditDscntRt = $(this).find("#aditDscntRt").val();
coupon.dscntMxmmAmt = $(this).find("#dscntMxmmAmt").val();
coupon.dlvyAmtDscntDv = $(this).find("#dlvyAmtDscntDv").val();
coupon.dlvyAmtDscntAmt = $(this).find("#dlvyAmtDscntAmt").val();
coupon.dlvyAmtMxmmDscntAmt = $(this).find("#dlvyAmtMxmmDscntAmt").val();
coupon.couponRegistDe = $(this).find("#couponRegistDe").val();
coupon.couponValidpdKnd = $(this).find("#couponValidpdKnd").val();
coupon.couponValidpdBgnDe = $(this).find("#couponValidpdBgnDe").val();
coupon.couponValidpdEndDe = $(this).find("#couponValidpdEndDe").val();
coupon.couponValidpdDeCnt = $(this).find("#couponValidpdDeCnt").val();
coupon.couponValidpdCntDe = $(this).find("#couponValidpdCntDe").val();
if (fn_is_empty(coupon.couponInnb)) {
} else {
couponList.push(coupon);
}
});
// 선택된 쿠폰 리스트 반환
return couponList;
};
/**
* 쿠폰발송 등록
*/
const fn_regist = function() {
let data = $('.common-form').serializeArray();
// directDiv 안의 텍스트 값 가져오기
let directDivTexts = [];
$('#directDiv div').each(function () {
let text = $(this).text().trim();
// 정규식을 사용해 [숫자]와 삭제를 제거
let cleanedText = text.replace(/^\[\d+\]\s*/, '').replace('삭제', '').trim();
directDivTexts.push(cleanedText);
});
let directDivString = directDivTexts.join('\n'); // 문자열로 치환
data.push({ name: 'textUploadTrget', value: directDivString });
console.log(" 쿠폰 발송 저장 data :", data);
if (confirm('쿠폰 발송을 <spring:message code="confirm.common.insert"/>')) {
// ajax 호출
$.ajax({
type: "post",
url : "/mngr/promtn/coupon/insertCouponPkSndngRegist",
data : data,
success:function(result) {
if(result.resBody != null) {
// 응답객체 선언
const resBody = result.resBody;
// 객체 -> JSON 파싱
const parsedResult = JSON.parse(resBody.result);
if(parsedResult.couponSndngInnb != null) {
alert('<spring:message code="success.common.insert"/>');
// 상세 수정 호출
fn_move_dtlupdt(parsedResult.couponSndngInnb);
} else {
alert('<spring:message code="fail.common.insert"/>');
/*
if (parsedResult.status === '1') {
alert(parsedResult.message);
} else {
alert(parsedResult.reason);
}
*/
}
}
}/*, error : function(request, status, error) {
let message = JSON.parse(request.responseText).resBody.result;
alert(message);
}*/
});
}
};
/*************************************************
* 쿠폰발송 목록 이동
*************************************************/
function fn_select_couponSndng_list() {
$('#listForm').attr('action', '<c:url value="/mngr/promtn/coupon/selectCouponPkSndngListInqireForm"/>');
$('#listForm').attr('method', 'post');
$('#listForm').submit();
};
/*************************************************
* 쿠폰발송 상세 수정 이동
*************************************************/
function fn_move_dtlupdt(couponSndngInnb) {
$('#listForm').attr('action', '<c:url value="/mngr/promtn/coupon/selectCouponPkSndngDtlUpdtForm"/>');
$('#listForm').attr('method', 'post');
$('#couponSndngInnb').val(couponSndngInnb);
$('#pageIndex').val(1);
$('#listForm').submit();
};
/*********************************************************************
* 쿠폰 발송 회원 검색팝업
* *******************************************************************/
const fn_coupont_sndng_mbrsrch_popup = function(modalDivSltr, modalSlrt, url, actionDv) {
$.ajax({
type: 'POST',
url: url,
data : {
actionDv : actionDv
},
success: function (data) {
$(modalSlrt).remove();
$(modalDivSltr).html(data);
$(modalSlrt).modal();
}
});
}
/*********************************************************************
* 쿠폰 발송 마케팅 회원 검색팝업
* *******************************************************************/
const fn_coupont_sndng_mbrsrch_marketing_popup = function(modalDivSltr, modalSlrt, url, actionDv) {
$.ajax({
type: 'POST',
url: url,
data : {
actionDv : actionDv
},
success: function (data) {
$(modalSlrt).remove();
$(modalDivSltr).html(data);
$(modalSlrt).modal();
}
});
}
/*********************************************************************
* 상품 검색 팝업
* *******************************************************************/
const fn_open_goods_modal_cart = function (modalDivSltr, modalSlrt, url, param) {
$.ajax({
type: 'POST',
url: url,
data: param,
success: function (data) {
giftAt = '';
$(modalSlrt).remove();
$(modalDivSltr).html(data);
$(modalSlrt).modal();
}
});
}
/*********************************************************************
* 상품 검색 팝업
* *******************************************************************/
const fn_open_goods_modal_buy = function (modalDivSltr, modalSlrt, url, param) {
$.ajax({
type: 'POST',
url: url,
data: param,
success: function (data) {
giftAt = '';
$(modalSlrt).remove();
$(modalDivSltr).html(data);
$(modalSlrt).modal();
}
});
}
</script>
</head>
<body>
<%-- 상단메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>
<main class="main">
<%@ include file="/WEB-INF/views/comm/mngr/Left.jsp"%>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">쿠폰(팩) 발송 등록</h2>
<div class="page-title__btn-container">
<a href="#fn_select_coupon_list" onclick="fn_select_couponSndng_list('1'); return false;" class="btn outline"><spring:message code="button.list"/></a>
<button class="btn primary" onclick="fn_regist(); return false;" ><spring:message code="button.save"/></button>
</div>
</div>
<section class="content-section">
<h3 class="content-section__title">기본 정보</h3>
<form id="couponForm1" class="common-form" method="post" action="">
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col >
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>발송유형</th>
<td colspan="3">
<div class="td-inner">
<div class="custom-radio-container" id="couponSndngTyRadioDiv">
<c:forEach var="codeList" items="${ resultMap.couponSndngTyCdList }" varStatus="">
<div class="custom-radio">
<input type="radio" id="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd }"/>" name="couponSndngTy" value="<c:out value="${ codeList.cd }"/>" ${f:setChecked("01" , codeList.cd)}>
<label for="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd }"/>"><c:out value="${ codeList.cdNm }"/></label>
</div>
</c:forEach>
<span class="gray-7">* 인증번호 발급으로 온라인, 온/오프라인 쿠폰만 조회됩니다.</span>
</div>
</div>
</td>
</tr>
<tr class="sndngDvCdTr">
<th>구분</th>
<td colspan="3">
<div class="td-inner">
<div class="custom-radio-container" id="sndngDvRadioDiv">
<c:forEach var="list" items="${ resultMap.sndngDvCdList }">
<div class="custom-radio">
<input type="radio" id="<c:out value="${ list.cdNm }"/><c:out value="${ list.cd }"/>" name="sndngDv" value="<c:out value="${ list.cd }"/>" <c:if test="${ '01' eq list.cd }">checked="checked"</c:if>>
<label for="<c:out value="${ list.cdNm }"/><c:out value="${ list.cd }"/>"><c:out value="${ list.cdNm }"/></label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr class="dwnlTr">
<th>다운로드 기간 제한</th>
<td>
<div class="td-inner">
<div class="custom-radio-container" id="radioDwldPdLmttAt">
<div class="custom-radio inner-input">
<input type="radio" id="dwldPdLmttAt-23" name="dwldPdLmttAt" value="N" checked>
<label for="dwldPdLmttAt-23">무제한</label>
<div>
</div>
</div>
<div class="custom-radio inner-input">
<input type="radio" id="dwldPdLmttAt-22" name="dwldPdLmttAt" value="Y" >
<label for="dwldPdLmttAt-22">기간제한</label>&ensp;
<div class="td-inner">
<input type="text" id="dwldBgnDt" name="dwldBgnDt" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<div class="timepicker-container">
<input type="text" class="bs-timepicker" id="dwldBgnDtTime" name="dwldBgnDt" title="시간 설정" value="00:00">
</div>
<span class="tilde">~</span>
<input type="text" id="dwldEndDt" name="dwldEndDt" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<div class="timepicker-container">
<input type="text" class="bs-timepicker" id="dwldEndDtTime" name="dwldEndDt" title="시간 설정" value="00:00">
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
<tr id="sndngTrgetDvTr">
<th>발송대상구분</th>
<td>
<div class="td-inner">
<div class="custom-radio-container" id="sndngTrgetDvDiv">
<c:forEach var="codeList" items="${ resultMap.sndngTrgetDvCdList }" varStatus="">
<div class="custom-radio">
<input type="radio" id="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd}"/>" name="sndngTrgetDv" value="<c:out value="${ codeList.cd}"/>" <c:if test="${ '01' eq codeList.cd }">checked="checked"</c:if>>
<label for="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd}"/>"><c:out value="${ codeList.cdNm }"/></label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr id="mbrGroupTr">
<th>등급 대상</th>
<td colspan="3">
<div class="td-inner">
<div class="b-checkbox-container" id="bnefSearchDiv">
<c:forEach var="list" items="${ resultMap.mbrGroupList }" varStatus="">
<label class="b-checkbox checkbox">
<input type="checkbox" id="" name="trgetMbrGradeInnbs" value="<c:out value="${ list.mbrGradInnb }"/>">
<span class="check"></span>
<span class="control-label"><c:out value="${ list.mbrGradNm }"/></span>
</label>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr>
<th>사용여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="r-9" name="couponSndngUseAt" value="Y" checked>
<label for="r-9">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="r-10" name="couponSndngUseAt" value="N">
<label for="r-10">미사용</label>
</div>
</div>
</div>
</td>
</tr>
<tr>
<th>발송 명<span class="red-7">*</span></th>
<td colspan="3">
<div class="td-inner">
<input class="input-text md" type="text" id="couponSndngNm" name="couponSndngNm" title="쿠폰발송명" maxlength="95">
</div>
</td>
</tr>
<tr>
<th>발송 설명<span class="red-7">*</span></th>
<td colspan="3">
<div class="td-inner">
<input class="input-text xl" type="text" id="couponSndngDc" name="couponSndngDc" title="쿠폰발송설명" maxlength="3900">
</div>
</td>
</tr>
<tr id="cupnpkChoiseTr" >
<th>쿠폰(팩)</th>
<td colspan="3">
<div class="td-inner vertical">
<div class="input-container">
<div class="select-box mr-10">
<select class="mr-5" title="쿠폰팩 리스트" id ="cupnpkInnb" name = "cupnpkInnb">
<c:forEach var ="cupnpkList" items ="${ resultMap.cupnpkList }">
<option value="${ cupnpkList.cupnpkInnb }">
${ cupnpkList.cupnpkNm }
</option>
</c:forEach>
</select>
</div>
</div>
</div>
</td>
</tr>
<tr id="couponChoiseTr">
<th>쿠폰선택<span class="red-7">*</span></th>
<td>
<div class="td-inner">
</div>
<div class="form-control-container">
<div class="left">
<button class="btn xsm primary" id="couponChoiseBtn" onclick="fn_open_modal_sndngty('#modalDiv', '#couponChoisePopup', '<c:url value="/mngr/promtn/coupon/selectCouponChoisePopupForm"/>', getSndngTyRadio()); return false;">
쿠폰 선택
</button>
<button class="btn xsm dark" id="couponDeleteBtn" onclick="fn_delete_couponchoise(); return false;">쿠폰 삭제</button>
</div>
<div class="center"></div>
</div>&ensp;
<div class="table-wrapper">
<table class="table vertical tight">
<caption>쿠폰팩에 들어갈 쿠폰 리스트</caption>
<colgroup>
<col style="width:60px;">
<col style="width:150px">
<col style="width:250px">
<col style="width:250px">
<col style="width:250px">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium tr-color-check check-all">
<input type="checkbox" value="">
<span class="check"></span>
</label>
</th>
<th>브랜드 몰 명</th>
<th>쿠폰명</th>
<th>혜택</th>
<th>유효기간</th>
</tr>
</thead>
<tbody id="selectList" >
</tbody>
</table>
</div>
</td>
</tr>
<tr class="sndngDtDvTr">
<th>발송일시 구분</th>
<td colspan="3">
<div class="td-inner">
<div class="custom-radio-container" >
<c:forEach var="codeList" items="${ resultMap.sndngDtDvCdList }" varStatus="">
<%-----------------------------------------------------------------------------
발송일시 구분에 따른 onclick함수 할당, html, checked를 설정한다.
01(수동발송) => 발송 일시 라디오 버튼 초기 세팅 및 예약발송 disable 처리 함수 할당
02(예약발송) => 예약발송 html 구성 및 예약발송 html enable처리 함수 할당
그 외 => 예약발송 disable 처리 함수 할당
-------------------------------------------------------------------------------%>
<c:choose>
<c:when test = "${codeList.cd eq '02'}">
<c:set var="reserSndngDivHtml"
value="&ensp;<div class='td-inner reserSndngDiv'>
<input type='text' id='sndngDt' name='sndngDt' class='datepicker' title='시작 날짜 선택' autocomplete='off'>
<div class='timepicker-container'>
<input type='text' class='bs-timepicker' id='sndngDtTime' name='sndngDt' title='시간 설정' value='00:00'>
</div>
</div>&ensp;"/>
<c:set var = "disableReserSndngDivFn" value = "fn_ctrl_disable([], ['.reserSndngDiv']);"/>
</c:when>
<c:otherwise>
<c:set var="reserSndngDivHtml" value=""/>
<c:set var = "disableReserSndngDivFn" value = "fn_ctrl_disable(['.reserSndngDiv'], []);"/>
</c:otherwise>
</c:choose>
<%-------------------------------------------------------------------------------%>
<div class="custom-radio inner-input custom-radio-dt-dv">
<input type="radio"
id="<c:out value="${ codeList.cdNm }${ codeList.cd }"/>"
name="sndngDtDvCd"
value="<c:out value="${ codeList.cd }"/>"
onchange="${disableReserSndngDivFn}"
${f:setChecked('01',codeList.cd)}>
<label for="<c:out value="${codeList.cdNm}${codeList.cd}"/>"><c:out value="${codeList.cdNm}"/></label>
${reserSndngDivHtml}
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</section>
<section class="content-section targetSettingSec">
<h3 class="content-section__title">발송 대상</h3>
<form id="couponForm3" class="common-form" method="post">
<div class="table-wrapper">
<div class="modal-content">
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr class="sndngDvTr">
<th>구분</th>
<td>
<%-- <div class="select-box">--%>
<%-- <select title="해당 셀렉트에 대한 설명" id="targetDv" name="sndngTrgetTyCd">--%>
<%-- <c:forEach var="cdList" items="${ resultMap.sndngTrgetTyCdList }" varStatus="status">--%>
<%-- <option value="${ cdList.cd }" id="${ cdList.cdNm }${ cdList.cd }" >${ cdList.cdNm }</option>--%>
<%-- </c:forEach>--%>
<%--&lt;%&ndash; <option value="marketingTrget" id="marketingTrget" >마케팅 대상</option>&ndash;%&gt;--%>
<%-- </select>--%>
<%-- </div>--%>
<div class="custom-radio-container" >
<c:forEach var="codeList" items="${ resultMap.sndngTrgetTyCdList }" varStatus="">
<div class="custom-radio inner-input custom-radio-trget-dv">
<input type="radio" id="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd }"/>"
name="sndngTrgetTyCd"
value="<c:out value="${ codeList.cd }"/>"
<c:if test="${ '01' eq codeList.cd }">checked="checked"</c:if>
>
&ensp;<label for="<c:out value="${ codeList.cdNm }"/><c:out value="${ codeList.cd }"/>"><c:out value="${ codeList.cdNm }"/></label>
</div>
</c:forEach>
</div>
</td>
</tr>
<%--
<tr class="sndngDvTrMk">
<th>구분</th>
<td>
<div class="select-box">
<select title="해당 셀렉트에 대한 설명" id="targetDvOffle" name="sndngTrgetTyCd">
<option value="member" id="member" selected>개인</option>
<option value="marketingTrget" id="marketingTrget" >마케팅 대상</option>
<option value="company" id="company" >외부업체</option>
</select>
</div>
</td>
</tr>
--%>
<tr id="memberTr">
<th>대상</th>
<td>
<div class="select" >
<span class="fw-500 fs-15 ml-5 srchMbrCnt">0 명</span>
<input type = "hidden" class= "mbrInfo"/>
<%-- <button class="btn xsm primary" type="button" onclick="fn_coupont_sndng_mbrsrch_popup('#modalDiv', '#member-search', '/mngr/mbr/selectMbrSrchPopupRForm', 'coupon'); return false;">회원검색</button>--%>
<button class="btn xsm primary" type="button" onclick="fn_open_modal('#modalDiv','#member-search','/mngr/mbr/selectMbrSrchPopupRForm', {'actionDv':'coupon'}); return false;">회원검색</button>
</div>
</td>
</tr>
<tr id="marketingTr">
<th>대상 검색</th>
<td>
<div class="select" >
<span class="fw-500 fs-15 ml-5 srchMarketingTrgetCnt">0 명</span>
<input type = "hidden" class= "marketingTrgetInfo"/>
<button class="btn xsm primary" type="button" onclick="fn_open_modal('#modalDiv', '#marketing-trget-search', '/mngr/mbr/selectMarketingTrgetSrchPopupForm', {'actionDv':'coupon'}); return false;">마케팅 대상 검색</button>
</div>
</td>
</tr>
<tr class="companyTr">
<th>발송수량</th>
<td>
<div class="td-inner input-container">
<input class="input-text sm number right" type="text" id="crtnbAtmcCreatCnt" name="crtnbAtmcCreatCnt" title="생성 개수" value="0" maxlength="15">
<span class="input-unit-text">개</span>
</div>
</td>
</tr>
<tr class="companyTr">
<th>대상</th>
<td>
<div class="td-inner">
<input class="input-text md" type="text" name="sndngTrgterNm" value="" placeholder="업체명" maxlength="38"/>
<br>
<input class="input-text md" type="text" name="sndngTrgetTelnb" oninput="fn_set_event(this, 'keyup', fn_fmt_telno)" value="" placeholder="전화번호" maxlength="13"/>
</div>
</td>
</tr>
<tr class="textUpload">
<th></th>
<td>
<div class="board-setting" style="width: 600px;">
<div class="board-setting__left">
<h5 class="board-setting__title">대상자 추가 목록</h5>
<textarea id="inputData" rows="5" cols="30" style="overflow:scroll; width:300px; height:500px;"></textarea>
<button type="button" class="btn xsm gray" id="addBtn">대상추가</button>
</div>
<%-- <div class="board-setting__center">--%>
<%-- <button class="board-setting__move-btn right"><span class="visually-hidden">오른쪽으로</span></button>--%>
<%-- <button class="board-setting__move-btn left"><span class="visually-hidden">왼쪽으로</span></button>--%>
<%-- </div>--%>
<div class="board-setting__right">
<h5 class="board-setting__title">발송 대상자 목록</h5>
<div id="directDiv" style="overflow:scroll; width:300px; height:500px; padding:10px; font-size: 12px;"></div>
<button type="button" class="btn xsm dark" id="removeOpt">전체 삭제</button>
</div>
</div>
</td>
</tr>
<%-- <tr class="textUpload">--%>
<%-- <th>받는 사람</th>--%>
<%-- <td>--%>
<%-- <textarea id="inputData" rows="5" cols="30" style="overflow:scroll; width:500px;"></textarea>--%>
<%-- <button type="button" class="btn xsm gray" id="addBtn">대상추가</button>--%>
<%-- </td>--%>
<%-- </tr>--%>
<%-- <tr class="textUpload">--%>
<%-- <th>대상</th>--%>
<%-- <td>--%>
<%-- <div class="td-inner">--%>
<%-- <div id="directDiv" style="overflow:scroll; width:500px; height:150px; padding:10px; font-size: 12px;"></div>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
</tbody>
</table>
</div>
<input type="hidden" title="" cols="30" rows="10" id = "sndngTrgetParam" name="sndngTrgetParam" value="<c:out value="${ resultMap.couponPkSndngVO.result.sndngTrgetParam }"/>"/>
<div class="td-inner hidden">
<%-- <input type="text" title="" cols="30" rows="10" id = "resultCn" name="jsonMbrList" value=""/>--%>
<input type="text" title="" cols="30" rows="10" id = "resultCn" name="jsonMbrList" value=""/>
<%-- <input type="text" title="" cols="30" rows="10" id = "resultCnMarketing" name="jsonMarketingTrgetList" value=""/>--%>
<input type="text" title="" cols="30" rows="10" id = "resultCnMarketing" name="jsonMarketingTrgetList" value=""/>
<button type = "button" class="btn xsm primary" id = "resultBtn">회원 값 확인</button>
<button type = "button" class="btn xsm primary" id = "resultBtnMarketing">마케팅 대상 값 확인</button>
</div>
<!-- 모달 DIV -->
<div id="modalDiv">
</div>
</div>
</div>
</form>
</section>
<section class="content-section messageSec">
<h3 class="content-section__title">메세지 설정</h3>
<form id="couponForm3" class="common-form" method="post">
<div class="table-wrapper">
<div class="modal-content">
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<%--
<tr id="messageTr">
<th>메세지 내용</th>
<td>
<div class="select" >
<div class="template-message" style="width: 300px;">
<div class="template-message__header">
수동 발송 내용
<span class="btn gray ml-2 xxsm">알림톡 X</span>
</div>
<div class="template-message__body">
<div class="sms-manage">
<textarea class="textarea" title="sms 입력" name="messageCn"></textarea>
<div class="sms-manage__byte">
<span class="number">0</span>
<span class="text">byte</span>
</div>
</div>
<div class="b-checkbox-container justify-end mt-8 mb-5 mr-2">
<label class="b-checkbox checkbox">
<input type="checkbox" value="Y" id="templateUseAt">
<span class="check"></span>
<span class="control-label">템플릿 사용 여부</span>
</label>
<a href="#substitution-sms-pop" rel="modal:open" class="btn sm outline">
<i class="icon icon_info"></i>
치환 코드
</a>
</div>
</div>
<div class="template-message__footer">
<div class="manage-btn-container">
<a href="#substitution-sms-pop" rel="modal:open" class="btn sm outline">
<i class="icon icon_info"></i>
치환 코드
</a>
</div>
</div>
</div>
</div>
</td>
</tr>
--%>
<tr>
<th>사용여부</th>
<td>
<div class="select-box">
<select title="해당 셀렉트에 대한 설명" id="messageUseAt" name="messageUseAt">
<option value="Y" id="messageUseAtY" selected>사용</option>
<option value="N" id="messageUseAtN" >미사용</option>
</select>
</div>
</td>
</tr>
<tr class="messageUseAtTr">
<th>발송 제목</th>
<td>
<div class="td-inner">
<input class="input-text xl" type="text" title="발송제목" name="sndngSj" id="sndngSj"
placeholder="">
</div>
</td>
</tr>
<tr class="messageUseAtTr">
<th>문자 내용</th>
<td>
<div class="td-inner vertical">
<div class="message-send">
<div class="message-send__left">
<div class="form-control-container">
<div class="left">
<h3 class="content-section__inner-title mb-0">내용 입력
</h3>
</div>
<div class="center">
</div>
<div class="right">
<button class="btn xsm outline" id="auto-callback" type="button">고객센터 추가</button>
<button class="btn xsm outline" id="auto-freedeny" type="button">수신거부 추가</button>
<button class="btn xsm gray" id="special_cont" type="button">특수문자</button>
<div id="special_view" style="position: absolute; z-index: 100; margin-left: 880px; margin-top: -250px; border: 2px solid rgb(170, 170, 170); padding: 3px; background-color: rgb(255, 255, 255); display: none;">
<table cellpadding="5" cellspacing="1" border="0" width="100%">
<tbody>
<tr>
<td align="center"><span class="special_char" conts="#" style="font-size:10px;cursor:pointer;">#</span></td>
<td align="center"><span class="special_char" conts="&" style="font-size:10px;cursor:pointer;">&</span></td>
<td align="center"><span class="special_char" conts="*" style="font-size:10px;cursor:pointer;">*</span></td>
<td align="center"><span class="special_char" conts="@" style="font-size:10px;cursor:pointer;">@</span></td>
<td align="center"><span class="special_char" conts="§" style="font-size:10px;cursor:pointer;">§</span></td>
<td align="center"><span class="special_char" conts="※" style="font-size:10px;cursor:pointer;">※</span></td>
<td align="center"><span class="special_char" conts="☆" style="font-size:10px;cursor:pointer;">☆</span></td>
<td align="center"><span class="special_char" conts="★" style="font-size:10px;cursor:pointer;">★</span></td>
<td align="center"><span class="special_char" conts="○" style="font-size:10px;cursor:pointer;">○</span></td>
<td align="center"><span class="special_char" conts="●" style="font-size:10px;cursor:pointer;">●</span></td>
<td align="center"><span class="special_char" conts="◎" style="font-size:10px;cursor:pointer;">◎</span></td>
<td align="center"><span class="special_char" conts="◇" style="font-size:10px;cursor:pointer;">◇</span></td>
<td align="center"><span class="special_char" conts="◆" style="font-size:10px;cursor:pointer;">◆</span></td>
<td align="center"><span class="special_char" conts="□" style="font-size:10px;cursor:pointer;">□</span></td>
</tr>
<tr>
<td align="center"><span class="special_char" conts="■" style="font-size:10px;cursor:pointer;">■</span></td>
<td align="center"><span class="special_char" conts="△" style="font-size:10px;cursor:pointer;">△</span></td>
<td align="center"><span class="special_char" conts="▲" style="font-size:10px;cursor:pointer;">▲</span></td>
<td align="center"><span class="special_char" conts="▽" style="font-size:10px;cursor:pointer;">▽</span></td>
<td align="center"><span class="special_char" conts="▼" style="font-size:10px;cursor:pointer;">▼</span></td>
<td align="center"><span class="special_char" conts="→" style="font-size:10px;cursor:pointer;">→</span></td>
<td align="center"><span class="special_char" conts="←" style="font-size:10px;cursor:pointer;">←</span></td>
<td align="center"><span class="special_char" conts="↑" style="font-size:10px;cursor:pointer;">↑</span></td>
<td align="center"><span class="special_char" conts="↓" style="font-size:10px;cursor:pointer;">↓</span></td>
<td align="center"><span class="special_char" conts="↔" style="font-size:10px;cursor:pointer;">↔</span></td>
<td align="center"><span class="special_char" conts="〓" style="font-size:10px;cursor:pointer;">〓</span></td>
<td align="center"><span class="special_char" conts="◁" style="font-size:10px;cursor:pointer;">◁</span></td>
<td align="center"><span class="special_char" conts="◀" style="font-size:10px;cursor:pointer;">◀</span></td>
<td align="center"><span class="special_char" conts="▷" style="font-size:10px;cursor:pointer;">▷</span></td>
<td align="center"><span class="special_char" conts="▶" style="font-size:10px;cursor:pointer;">▶</span></td>
</tr>
<tr>
<td align="center"><span class="special_char" conts="♤" style="font-size:10px;cursor:pointer;">♤</span></td>
<td align="center"><span class="special_char" conts="♠" style="font-size:10px;cursor:pointer;">♠</span></td>
<td align="center"><span class="special_char" conts="♡" style="font-size:10px;cursor:pointer;">♡</span></td>
<td align="center"><span class="special_char" conts="♥" style="font-size:10px;cursor:pointer;">♥</span></td>
<td align="center"><span class="special_char" conts="♧" style="font-size:10px;cursor:pointer;">♧</span></td>
<td align="center"><span class="special_char" conts="♣" style="font-size:10px;cursor:pointer;">♣</span></td>
<td align="center"><span class="special_char" conts="⊙" style="font-size:10px;cursor:pointer;">⊙</span></td>
<td align="center"><span class="special_char" conts="◈" style="font-size:10px;cursor:pointer;">◈</span></td>
<td align="center"><span class="special_char" conts="▣" style="font-size:10px;cursor:pointer;">▣</span></td>
<td align="center"><span class="special_char" conts="◐" style="font-size:10px;cursor:pointer;">◐</span></td>
<td align="center"><span class="special_char" conts="◑" style="font-size:10px;cursor:pointer;">◑</span></td>
<td align="center"><span class="special_char" conts="▒" style="font-size:10px;cursor:pointer;">▒</span></td>
<td align="center"><span class="special_char" conts="▤" style="font-size:10px;cursor:pointer;">▤</span></td>
<td align="center"><span class="special_char" conts="▥" style="font-size:10px;cursor:pointer;">▥</span></td>
<td align="center"><span class="special_char" conts="▨" style="font-size:10px;cursor:pointer;">▨</span></td>
</tr>
<tr>
<td align="center"><span class="special_char" conts="▧" style="font-size:10px;cursor:pointer;">▧</span></td>
<td align="center"><span class="special_char" conts="▦" style="font-size:10px;cursor:pointer;">▦</span></td>
<td align="center"><span class="special_char" conts="▩" style="font-size:10px;cursor:pointer;">▩</span></td>
<td align="center"><span class="special_char" conts="♨" style="font-size:10px;cursor:pointer;">♨</span></td>
<td align="center"><span class="special_char" conts="☏" style="font-size:10px;cursor:pointer;">☏</span></td>
<td align="center"><span class="special_char" conts="☎" style="font-size:10px;cursor:pointer;">☎</span></td>
<td align="center"><span class="special_char" conts="☜" style="font-size:10px;cursor:pointer;">☜</span></td>
<td align="center"><span class="special_char" conts="☞" style="font-size:10px;cursor:pointer;">☞</span></td>
<td align="center"><span class="special_char" conts="¶" style="font-size:10px;cursor:pointer;">¶</span></td>
<td align="center"><span class="special_char" conts="†" style="font-size:10px;cursor:pointer;">†</span></td>
<td align="center"><span class="special_char" conts="‡" style="font-size:10px;cursor:pointer;">‡</span></td>
<td align="center"><span class="special_char" conts="↕" style="font-size:10px;cursor:pointer;">↕</span></td>
<td align="center"><span class="special_char" conts="↗" style="font-size:10px;cursor:pointer;">↗</span></td>
<td align="center"><span class="special_char" conts="↙" style="font-size:10px;cursor:pointer;">↙</span></td>
<td align="center"><span class="special_char" conts="↖" style="font-size:10px;cursor:pointer;">↖</span></td>
</tr>
<tr>
<td align="center"><span class="special_char" conts="↘" style="font-size:10px;cursor:pointer;">↘</span></td>
<td align="center"><span class="special_char" conts="♭" style="font-size:10px;cursor:pointer;">♭</span></td>
<td align="center"><span class="special_char" conts="♩" style="font-size:10px;cursor:pointer;">♩</span></td>
<td align="center"><span class="special_char" conts="♪" style="font-size:10px;cursor:pointer;">♪</span></td>
<td align="center"><span class="special_char" conts="♬" style="font-size:10px;cursor:pointer;">♬</span></td>
<td align="center"><span class="special_char" conts="㉿" style="font-size:10px;cursor:pointer;">㉿</span></td>
<td align="center"><span class="special_char" conts="㈜" style="font-size:10px;cursor:pointer;">㈜</span></td>
<td align="center"><span class="special_char" conts="№" style="font-size:10px;cursor:pointer;">№</span></td>
<td align="center"><span class="special_char" conts="㏇" style="font-size:10px;cursor:pointer;">㏇</span></td>
<td align="center"><span class="special_char" conts="™" style="font-size:10px;cursor:pointer;">™</span></td>
<td align="center"><span class="special_char" conts="㏂" style="font-size:10px;cursor:pointer;">㏂</span></td>
<td align="center"><span class="special_char" conts="㏘" style="font-size:10px;cursor:pointer;">㏘</span></td>
<td align="center"><span class="special_char" conts="℡" style="font-size:10px;cursor:pointer;">℡</span></td>
<td align="center"><span class="special_char" conts="?" style="font-size:10px;cursor:pointer;">?</span></td>
<td align="center"><span class="special_char" conts="ª" style="font-size:10px;cursor:pointer;">ª</span></td>
</tr>
<tr>
<td align="center"><span class="special_char" conts="º" style="font-size:10px;cursor:pointer;">º</span></td>
</tr>
</tbody>
</table>
</div>
<a href="#substitution-pop" rel="modal:open" class="btn sm outline substitution-coupon">
<i class="icon icon_info"></i>
치환 코드
</a>
</div>
</div>
<textarea class="textarea" title="에디터 입력" cols="30" id="sndngCn" name="sndngCn" maxlength=1950
rows="10"></textarea>
<div class="sms-manage__byte">
<span class="byteCnt">0</span><span> / 2000</span>
<span class="gray-10 sndng-type">(SMS)</span>
</div>
</div>
<!-- <div class="message-send__right">
<div class="form-control-container">
<div class="left">
<h3 class="content-section__inner-title mb-0">미리보기</h3>
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<textarea class="textarea" title="에디터 입력" cols="30" rows="10"
id="previewCn" readonly></textarea>
</div> -->
</div>
<div class="gray-7">
<p class="fyi">‘정보통신망이용 촉진 및 정보 보호 등의 관한 법률 및 시행령’에 따라 광고 전송
시
제목에 (광고)를 표시해주세요.
<button type="button" class="mini-info-btn mb-3" data-info="info01">?</button>
</p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</form>
</section>
<%--
<section class="content-section messageSec">
<h3 class="content-section__title">안내 문자</h3>
<form id="couponForm3" class="common-form" method="post">
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody id="messageTbody">
<tr>
<th>메시지 발송</th>
<td>
<div class="td-inner">
<div class="custom-radio-container" id="smsSndngRadio">
<div class="custom-radio inner-input">
<input type="radio" id="r-27" name="smsSndngFormRadio" value="Y">
<label for="r-27">사용</label>&ensp;
<div class="select-box" >
<select class="lg" id="smsSndngFormInnb" name="smsSndngFormInnb" title="안내메시지">
<c:forEach var="list" items="${ resultMap.smsTmpltList }">
<option value="<c:out value="${ list.smsSndngFormInnb }"/>"><c:out value="${ list.smsCn }"/></option>
</c:forEach>
</select>
</div>
</div>
<div class="custom-radio inner-input">
<input type="radio" id="r-28" name="smsSndngFormRadio" value="N" checked>
<label for="r-28">미사용</label>
</div>
</div>
</div>
</td>
</tr>
<tr>
<th>알림톡 발송</th>
<td>
<div class="td-inner">
<div class="custom-radio-container" >
<div class="custom-radio inner-input">
<input type="radio" id="r-29" name="ntcntalkSndngFormRadio" value="Y">
<label for="r-29">사용</label>&ensp;
<div class="select-box">
<select class="lg" id="ntcntalkSndngFormInnb" name="ntcntalkSndngFormInnb" title="안내알림톡">
<c:forEach var="list" items="${ resultMap.kakaoTmpltList }">
<option value="<c:out value="${ list.ntcntalkSndngFormInnb }"/>"><c:out value="${ list.msg }"/></option>
</c:forEach>
</select>
</div>
</div>
<div class="custom-radio inner-input">
<input type="radio" id="r-30" name="ntcntalkSndngFormRadio" value="N" checked>
<label for="r-30">미사용</label>
</div>
</div>
</div>
</td>
</tr>
<tr>
<th>이메일 발송</th>
<td>
<div class="td-inner">
<div class="custom-radio-container" >
<div class="custom-radio inner-input">
<input type="radio" id="r-31" name="emailSndngFormRadio" value="Y">
<label for="r-31">사용</label>&ensp;
<div class="select-box">
<select class="lg" id="emailSndngFormInnb" name="emailSndngFormInnb" title="안내이메일">
<c:forEach var="list" items="${ resultMap.emailTmpltList }">
<option value="<c:out value="${ list.emailSndngFormInnb }"/>"><c:out value="${ list.emailSj }"/></option>
</c:forEach>
</select>
</div>
</div>
<div class="custom-radio inner-input">
<input type="radio" id="r-32" name="emailSndngFormRadio" value="N" checked>
<label for="r-32">미사용</label>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</section>
--%>
</div>
</div>
</main>
<!-- 치환코드 모달 -->
<div id="substitution-pop" class="modal" style="max-width: 400px;">
<div class="modal-header">
<h4>사용 가능한 치환코드</h4>
</div>
<div class="modal-content">
<div class="table-wrapper">
<table class="table vertical tight">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 33%;">
<col>
</colgroup>
<thead>
<tr>
<th>치환코드</th>
<th>설명</th>
</tr>
</thead>
<tbody>
<!-- 치환코드 내용 삽입 -->
<tr>
<th>
{shopName}
</th>
<td>
쇼핑몰 이름(설정 > 일반정보)
</td>
</tr>
<tr>
<th>
{oflneCouponCrtnb}
</th>
<td>
쿠폰 인증번호
</td>
</tr>
<tr>
<th>
{couponSndngNm}
</th>
<td>
쿠폰 발송 명
</td>
</tr>
<tr>
<th>
{receptNm}
</th>
<td>
대상자명
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div id="modalDiv">
</div>
<form id="listForm" name="listForm">
<input type="hidden" id="couponSndngInnb" name ="couponSndngInnb"/>
<input type="hidden" id="searchCouponPkSndngNm" name="searchCouponPkSndngNm" title="검색_쿠폰발송명" value="${ searchForm.searchCouponPkSndngNm }">
<input type="hidden" id="searchSndngDv" name="searchSndngDv" title="검색_쿠폰발송 구분" value="${ searchForm.searchSndngDv }">
<c:if test="${ not empty searchForm.searchCouponSndngTy }" >
<input type="hidden" id="searchCouponSndngTy" name="searchCouponSndngTy" value="
<%
String[] list3 = request.getParameterValues("searchCouponSndngTy");
if (list3 != null && list3.length > 0) {
// 첫번째만 콤마 없이
out.print(list3[0]);
if (list3.length > 1) {
// 나머지는 콤마 붙여서 출력
for (int i = 1; i < list3.length; i++) {
out.print(", " + list3[i]);
}
}
}
%>
">
</c:if>
<input type="hidden" id="searchUseAt" name="searchUseAt" title="쿠폰발송 사용여부" value="${ searchForm.searchUseAt }">
<input type="hidden" id="pageIndex" name="pageIndex" value="${ searchForm.pageIndex }"/>
<input type="hidden" id="recordCountPerPage" name="recordCountPerPage" value="${ searchForm.recordCountPerPage }"/>
<input type="hidden" id="pageUnit" name="pageUnit" value="${ searchForm.pageUnit }"/>
</form>
</body>
</html>