Ver Fonte

쿠폰, 다다익선, 사은품 적용대상 업체, 브랜드 AND 조건 기능 추가

jsh77b há 4 anos atrás
pai
commit
6530659313

+ 7 - 3
src/main/java/com/style24/admin/biz/service/TsaFreegiftPromotionService.java

@@ -265,7 +265,7 @@ public class TsaFreegiftPromotionService {
 		}
 
 		// 공급업체 / 브랜드 실 사용 테이블 저장
-		if(param.getSupplyCompList() != null && param.getSupplyCompList().size() > 0 && param.getBrandList() != null && param.getBrandList().size() > 0) {
+		if (param.getSupplyCompList() != null && param.getSupplyCompList().size() > 0 && param.getBrandList() != null && param.getBrandList().size() > 0) {
 			freegiftPromotionDao.insertFreegiftGoodsApplyList(param);
 		} else if (param.getSupplyCompList() != null && param.getSupplyCompList().size() > 0) {
 			FreeGoodsPromotion company = new FreeGoodsPromotion();
@@ -273,14 +273,18 @@ public class TsaFreegiftPromotionService {
 			company.setTargetGb("G260_13");		// 적용 대상 (G260_10|상품, G260_12|브랜드, G260_13|공급처)
 			company.setRegNo(param.getRegNo());
 			freegiftPromotionDao.insertFreegiftGoodsApplyList(company);	// 등록된 업체 코드 등록
-			freegiftPromotionDao.insertFreegiftGoodsApplyCompanyOrBrandList(company);
+			
+			// 2021.08.23 업체,브랜드 and 조건
+			//freegiftPromotionDao.insertFreegiftGoodsApplyCompanyOrBrandList(company);
 		} else if (param.getBrandList() != null && param.getBrandList().size() > 0) {
 			FreeGoodsPromotion brand = new FreeGoodsPromotion();
 			brand.setFreegiftSq(param.getFreegiftSq());
 			brand.setTargetGb("G260_12");		// 적용 대상 (G260_10|상품, G260_12|브랜드, G260_13|공급처)
 			brand.setRegNo(param.getRegNo());
 			freegiftPromotionDao.insertFreegiftGoodsApplyList(brand);	// 등록된 업체 코드 등록
-			freegiftPromotionDao.insertFreegiftGoodsApplyCompanyOrBrandList(brand);
+			
+			// 2021.08.23 업체,브랜드 and 조건
+			//freegiftPromotionDao.insertFreegiftGoodsApplyCompanyOrBrandList(brand);
 		}
 
 	}

+ 453 - 54
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -6,7 +6,9 @@ import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collection;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.Iterator;
+import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +24,12 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.gagaframework.excel.GagaExcelUtil;
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.rest.server.GagaResponse;
+import com.gagaframework.web.rest.server.GagaResponseStatus;
+import com.gagaframework.web.util.GagaDateUtil;
+import com.gagaframework.web.util.GagaFileUtil;
 import com.style24.admin.biz.service.TsaCardPromotionService;
 import com.style24.admin.biz.service.TsaCommonService;
 import com.style24.admin.biz.service.TsaFreegiftPromotionService;
@@ -69,13 +77,6 @@ import com.style24.persistence.domain.User;
 
 import lombok.extern.slf4j.Slf4j;
 
-import com.gagaframework.excel.GagaExcelUtil;
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.rest.server.GagaResponse;
-import com.gagaframework.web.rest.server.GagaResponseStatus;
-import com.gagaframework.web.util.GagaDateUtil;
-import com.gagaframework.web.util.GagaFileUtil;
-
 /**
  * 마케팅 Controller
  * @author xodud1202
@@ -505,7 +506,7 @@ public class TsaMarketingController extends TsaBaseController {
 
 		return result;
 	}
-
+	
 	/**
 	 * 쿠폰 등록 팝업 화면
 	 * @return ModelAndView
@@ -514,7 +515,7 @@ public class TsaMarketingController extends TsaBaseController {
 	 */
 	@GetMapping("/coupon/popup/form")
 	@ResponseBody
-	public ModelAndView couponCreatePopup(@RequestParam(value = "mode") String mode, @RequestParam(value = "cpnId", required = false) Integer cpnId) {
+	public ModelAndView couponCreatePopup_20210816(@RequestParam(value = "mode") String mode, @RequestParam(value = "cpnId", required = false) Integer cpnId) {
 		ModelAndView mav = new ModelAndView();
 		String num = "";
 		int issueCnt = 0;
@@ -535,6 +536,7 @@ public class TsaMarketingController extends TsaBaseController {
 
 			hhList.add(temp);
 		}
+		
 		// 일시 분 리스트 세팅
 		Collection<CommonCode> mmList = new ArrayList<CommonCode>();
 		for (int i = 0; i < 60; i++) {
@@ -550,55 +552,375 @@ public class TsaMarketingController extends TsaBaseController {
 
 			mmList.add(temp);
 		}
-		// 시간 분 리스트 세팅
-		mav.addObject("mmList", mmList);
-		// 시간 시 리스트 세팅
-		mav.addObject("hhList", hhList);
+
+		mav.addObject("mmList", mmList); // 시간 분 리스트 세팅
+		mav.addObject("hhList", hhList); // 시간 시 리스트 세팅
+		
 		// 상품상태
 		String[] exceptCds = {"G008_00"};
 		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
-		// 입점업체 조회
-		mav.addObject("ibSupplyCompList", rendererService.getSupplyCompanyList("", "N"));
+		
+		mav.addObject("ibSupplyCompList", rendererService.getSupplyCompanyList("", "N")); // 입점업체 조회
+		
 		// 할인 쿠폰 코드 조회
 		String[] exceptG233 = {"G233_30"};
 		mav.addObject("dcCdList", rendererService.getCommonCodeList("G233", "Y", exceptG233));
+		
+		mav.addObject("formalGbList", rendererService.getCommonCodeList("G009")); // 정상/이월 조회
+		mav.addObject("cateGbList", rendererService.getCommonCodeList("G032")); // 카테고리 구분 조회
+		mav.addObject("selfBrandList", rendererService.getSelfBrandList()); // 자사 브랜드 조회
+		mav.addObject("siteCdList", rendererService.getCommonCodeList("G000")); // 사이트코드 조회
+		mav.addObject("cpnStatList", rendererService.getCommonCodeList("G232")); // 쿠폰상태 조회
+		mav.addObject("cpnTypeList", rendererService.getCommonCodeList("G230", "Y")); // 쿠폰 유형 조회
+		
+		// 사용가능 고객구분 조회
+		String[] exceptCds1 = {"G100_00"};
+		mav.addObject("usableCustGbList", rendererService.getCommonCodeList("G100", "Y", exceptCds1));
+		
+		mav.addObject("usableCustGradeList", rendererService.getCommonCodeList("G110")); // 사용가능 고객등급 조회
+		mav.addObject("reissuanceList", rendererService.getCommonCodeList("G231")); // 재발급 여부 조회
+		mav.addObject("dcWayList", rendererService.getCommonCodeList("G240")); // 할인방식 조회
+		mav.addObject("dnGbList", rendererService.getCommonCodeList("G058")); // 쿠폰다운로드 방식 조회
+		
+		// 결제수단 조회
+		String[] exceptCds2 = {"INICIS", "ISTYLE", "NAVER_ORDER", "NICE"};
+		mav.addObject("payTypeList", rendererService.getCommonCodeList("G015", "Y", exceptCds2));
+		
+		mav.addObject("upperAfLinkCdList", rendererService.getCommonCodeList("G053")); // 상위제휴채널 조회
+		mav.addObject("limitedTimeCpnList", new Coupon()); // 선착순쿠폰 조회
+		mav.addObject("channelList", rendererService.getCommonCodeList("G053", "Y")); // 제휴채널 조회
+		
+		// 이미 쿠폰 아이디가 있으면 적용대상 조회
+		if (mode.equals("U")) {
+			issueCnt = coreCouponService.getCouponIssueCnt(cpnId);
+			mav.addObject("cpnDetail", coreCouponService.getCouponDetail(cpnId)); // 쿠폰상세조회
+			mav.addObject("cpnDtlRefvalSupplyCompList", coreCouponService.getCouponRefvalSupplyCompList(cpnId)); // 쿠폰적용대상 - 공급업체 조회
+			mav.addObject("cpnDtlRefvalApplyGoodsList", coreCouponService.getCouponRefvalGoodsList(cpnId, "G260_10")); // 쿠폰적용대상 - 적용상품 조회
+			mav.addObject("cpnDtlRefvalCateList", coreCouponService.getCouponRefvalCategoryList(cpnId)); // 쿠폰적용대상 - 카테고리 조회
+			mav.addObject("cpnDtlRefvalBrandList", coreCouponService.getCouponRefvalBrandList(cpnId)); // 쿠폰적용대상 - 브랜드 조회
+			mav.addObject("cpnDtlRefvalExceptGoodsList", coreCouponService.getCouponRefvalGoodsList(cpnId, "G260_14")); // 쿠폰적용대상 - 제외상품 조회
+			mav.addObject("cpnDtlBurdenList", coreCouponService.getCouponBurdenList(cpnId)); // 쿠폰 입점업체분담율 조회
+			mav.addObject("randomCpnList", coreCouponService.getRandomCouponInfo(cpnId)); // 시리얼 및 난수 쿠폰 조회
+			mav.addObject("cpnCustGbList", coreCouponService.getCouponCustGbList(cpnId)); // 쿠폰사용가능고객구분 조회
+			mav.addObject("cpnCustGradeList", coreCouponService.getCouponCustGradeList(cpnId)); // 쿠폰사용가능고객등급 조회
+			mav.addObject("cpnPayTypeList", coreCouponService.getCouponPayTypeList(cpnId)); // 쿠폰사용가능결제수단 조회
+			mav.addObject("limitedTimeCpnList", coreCouponService.getLimitedTimeCouponList(cpnId)); // 선착순쿠폰 조회
+			mav.addObject("afChannelList", coreCouponService.getCouponAfChannelList(cpnId)); // 등록했던 제휴채널
+		}
+		
+		mav.addObject("mode", mode);
+		mav.addObject("issueCnt", issueCnt);
+
+		mav.setViewName("marketing/CouponPopupForm");
+		return mav;
+	}
+	
+	/**
+	 * 공급업체목록으로 브랜드정보목록 조회
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021-08-23
+	 */
+	@PostMapping("/coupon/supplyCompCdAndBrandList")
+	@ResponseBody
+	public GagaMap getSupplyCompCdAndBrandList(@RequestBody Coupon coupon) {
+		GagaMap result = new GagaMap();
+		
+		Collection<Coupon> brandList = coreCouponService.getSupplyCompCdAndBrandCdList(coupon);
+		
+		result.set("returnList", brandList);
+		
+		return result;
+	}
+	
+	/**
+	 * 브랜드목록으로 공급업체정보목록 조회
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021-08-23
+	 */
+	@PostMapping("/coupon/brandCdAndSupplyCompList")
+	@ResponseBody
+	public GagaMap getBrandCdAndSupplyCompList(@RequestBody Coupon coupon) {
+		GagaMap result = new GagaMap();
+		
+		Collection<Coupon> supplyCompList = coreCouponService.getBrandCdAndSupplyCompList(coupon);
+		result.set("returnList", supplyCompList);
+		
+		return result;
+	}
+
+	/**
+	 * 쿠폰 등록 팝업 화면
+	 * @return ModelAndView
+	 * @author xyzp1539
+	 * @since 2020-12-23
+	 */
+	@GetMapping("/coupon/popup/form_20210823")
+	@ResponseBody
+	public ModelAndView couponCreatePopup(@RequestParam(value = "mode") String mode, @RequestParam(value = "cpnId", required = false) Integer cpnId) {
+		ModelAndView mav = new ModelAndView();
+		int issueCnt = 0;
+		
+		String num = "";
+		
+		// 일시 시 리스트 세팅
+		Collection<CommonCode> hhList = new ArrayList<CommonCode>();
+		for (int i = 0; i < 24; i++) {
+			num = "";
+			CommonCode temp = new CommonCode();
+			if (i < 10) {
+				num = "0" + i;
+			} else {
+				num = String.valueOf(i);
+			}
+
+			temp.setCd(num);
+			temp.setCdNm(num + "시");
+
+			hhList.add(temp);
+		}
+		
+		// 일시 분 리스트 세팅
+		Collection<CommonCode> mmList = new ArrayList<CommonCode>();
+		for (int i = 0; i < 60; i++) {
+			num = "";
+			CommonCode temp = new CommonCode();
+			if (i < 10) {
+				num = "0" + i;
+			} else {
+				num = String.valueOf(i);
+			}
+			temp.setCd(num);
+			temp.setCdNm(num + "분");
+
+			mmList.add(temp);
+		}
+		
+		// 시간 분 리스트 세팅
+		mav.addObject("mmList"					, mmList);
+		// 시간 시 리스트 세팅
+		mav.addObject("hhList"					, hhList);
+		// 쿠폰상태 조회
+		mav.addObject("cpnStatList"				, rendererService.getCommonCodeList("G232"));
+		// 쿠폰 유형 조회
+		mav.addObject("cpnTypeList"				, rendererService.getCommonCodeList("G230", "Y"));
+		// 상품상태
+		String[] exceptCds = {"G008_00"};
+		mav.addObject("goodsStatList"			, rendererService.getCommonCodeList("G008", "Y", exceptCds));
+		// 입점업체 조회
+		mav.addObject("ibSupplyCompList"		, rendererService.getSupplyCompanyList("", "N"));
 		// 정상/이월 조회
-		mav.addObject("formalGbList", rendererService.getCommonCodeList("G009"));
+		mav.addObject("formalGbList"			, rendererService.getCommonCodeList("G009"));
 		// 카테고리 구분 조회
-		mav.addObject("cateGbList", rendererService.getCommonCodeList("G032"));
+		mav.addObject("cateGbList"				, rendererService.getCommonCodeList("G032"));
 		// 자사 브랜드 조회
-		mav.addObject("selfBrandList", rendererService.getSelfBrandList());
-		// 사이트코드 조회
-		mav.addObject("siteCdList", rendererService.getCommonCodeList("G000"));
-		// 쿠폰상태 조회
-		mav.addObject("cpnStatList", rendererService.getCommonCodeList("G232"));
-		// 쿠폰 유형 조회
-		mav.addObject("cpnTypeList", rendererService.getCommonCodeList("G230", "Y"));
+		mav.addObject("selfBrandList"			, rendererService.getSelfBrandList());
+
 		// 사용가능 고객구분 조회
 		String[] exceptCds1 = {"G100_00"};
-		mav.addObject("usableCustGbList", rendererService.getCommonCodeList("G100", "Y", exceptCds1));
+		mav.addObject("usableCustGbList"		, rendererService.getCommonCodeList("G100", "Y", exceptCds1));
 		// 사용가능 고객등급 조회
-		mav.addObject("usableCustGradeList", rendererService.getCommonCodeList("G110"));
+		mav.addObject("usableCustGradeList"		, rendererService.getCommonCodeList("G110"));
 		// 재발급 여부 조회
-		mav.addObject("reissuanceList", rendererService.getCommonCodeList("G231"));
+		mav.addObject("reissuanceList"			, rendererService.getCommonCodeList("G231"));
 		// 할인방식 조회
-		mav.addObject("dcWayList", rendererService.getCommonCodeList("G240"));
+		mav.addObject("dcWayList"				, rendererService.getCommonCodeList("G240"));
 		// 쿠폰다운로드 방식 조회
-		mav.addObject("dnGbList", rendererService.getCommonCodeList("G058"));
+		mav.addObject("dnGbList"				, rendererService.getCommonCodeList("G058"));
 		// 결제수단 조회
 		String[] exceptCds2 = {"INICIS", "ISTYLE", "NAVER_ORDER", "NICE"};
-		mav.addObject("payTypeList", rendererService.getCommonCodeList("G015", "Y", exceptCds2));
+		mav.addObject("payTypeList"				, rendererService.getCommonCodeList("G015", "Y", exceptCds2));
 		// 상위제휴채널 조회
-		mav.addObject("upperAfLinkCdList", rendererService.getCommonCodeList("G053"));
+		mav.addObject("upperAfLinkCdList"		, rendererService.getCommonCodeList("G053"));
 		// 선착순쿠폰 조회
-		mav.addObject("limitedTimeCpnList", new Coupon());
-		// 제휴채널 조회
-		mav.addObject("channelList", rendererService.getCommonCodeList("G053", "Y"));
+		mav.addObject("limitedTimeCpnList"		, new Coupon());
+
+		// 사이트코드 조회
+		mav.addObject("siteCdList"				, rendererService.getCommonCodeList("G000"));
+		
+		// 할인 쿠폰 코드 조회
+		//String[] exceptG233 = {"G233_30"};
+		mav.addObject("dcCdList"				, rendererService.getCommonCodeList("G233", "Y"));
+		
 		// 이미 쿠폰 아이디가 있으면 적용대상 조회
-		if (mode.equals("U")) {
-			issueCnt = coreCouponService.getCouponIssueCnt(cpnId);
-			// 쿠폰상세조회
-			mav.addObject("cpnDetail", coreCouponService.getCouponDetail(cpnId));
+		Coupon cpnDetail = new Coupon();
+		if (cpnId != null && cpnId > 0) {
+			issueCnt 	= coreCouponService.getCouponIssueCnt(cpnId);
+			cpnDetail 	= coreCouponService.getCouponDetail(cpnId);
+		}
+		// 쿠폰상세조회
+		mav.addObject("cpnDetail", cpnDetail);
+
+		mav.addObject("mode", mode);
+		mav.addObject("issueCnt", issueCnt);
+
+		mav.setViewName("marketing/CouponPopupForm_20210823");
+		return mav;
+	}
+	
+	/**
+	 * 쿠폰등록화면 즉시할인쿠폰
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021-08-17
+	 */
+	@PostMapping("/coupon/popup/cpn1Info")
+	@ResponseBody
+	public ModelAndView couponCreatePopupCpn1Info(@RequestBody Coupon cpn) {
+		ModelAndView mav = new ModelAndView();
+		
+		// 2021.08.17 날짜관련정보설정
+		String num = "";
+		// 일시 시 리스트 세팅
+		Collection<CommonCode> hhList = new ArrayList<CommonCode>();
+		for (int i = 0; i < 24; i++) {
+			num = "";
+			CommonCode temp = new CommonCode();
+			if (i < 10) {
+				num = "0" + i;
+			} else {
+				num = String.valueOf(i);
+			}
+
+			temp.setCd(num);
+			temp.setCdNm(num + "시");
+
+			hhList.add(temp);
+		}
+		
+		// 일시 분 리스트 세팅
+		Collection<CommonCode> mmList = new ArrayList<CommonCode>();
+		for (int i = 0; i < 60; i++) {
+			num = "";
+			CommonCode temp = new CommonCode();
+			if (i < 10) {
+				num = "0" + i;
+			} else {
+				num = String.valueOf(i);
+			}
+			temp.setCd(num);
+			temp.setCdNm(num + "분");
+
+			mmList.add(temp);
+		}
+
+		mav.addObject("hhList"			, hhList); // 시간 시 리스트 세팅
+		mav.addObject("mmList"			, mmList); // 시간 분 리스트 세팅
+		mav.addObject("siteCdList"		, rendererService.getCommonCodeList("G000"));		// 사이트코드 조회
+		mav.addObject("dcWayList"		, rendererService.getCommonCodeList("G240"));		// 할인방식 조회
+		
+		// 이미 쿠폰 아이디가 있으면 적용대상 조회
+		Coupon cpnDetail = new Coupon();
+		int cpnId = cpn.getCpnId(); 
+		if (cpnId > 0) {
+			cpnDetail = coreCouponService.getCouponDetail(cpnId);
+		}
+		// 쿠폰상세조회
+		mav.addObject("cpnDetail", cpnDetail);
+		mav.setViewName("marketing/CouponPopupCpn1Info");
+		
+		return mav;
+	}
+	
+	/**
+	 * 쿠폰등록화면 상품쿠폰, 장바구니쿠폰, 배송비쿠폰
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021-08-17
+	 */
+	@PostMapping("/coupon/popup/goodsCpnInfo")
+	@ResponseBody
+	public ModelAndView couponCreatePopupGoodsCpnInfo(@RequestBody Coupon cpn) {
+		ModelAndView mav = new ModelAndView();
+		// 2021.08.17 날짜관련정보설정
+		String num = "";
+		
+		// 일시 시 리스트 세팅
+		Collection<CommonCode> hhList = new ArrayList<CommonCode>();
+		for (int i = 0; i < 24; i++) {
+			num = "";
+			CommonCode temp = new CommonCode();
+			if (i < 10) {
+				num = "0" + i;
+			} else {
+				num = String.valueOf(i);
+			}
+
+			temp.setCd(num);
+			temp.setCdNm(num + "시");
+
+			hhList.add(temp);
+		}
+		
+		// 일시 분 리스트 세팅
+		Collection<CommonCode> mmList = new ArrayList<CommonCode>();
+		for (int i = 0; i < 60; i++) {
+			num = "";
+			CommonCode temp = new CommonCode();
+			if (i < 10) {
+				num = "0" + i;
+			} else {
+				num = String.valueOf(i);
+			}
+			temp.setCd(num);
+			temp.setCdNm(num + "분");
+
+			mmList.add(temp);
+		}
+		
+		mav.addObject("hhList"				, hhList); // 시간 시 리스트 세팅
+		mav.addObject("mmList"				, mmList); // 시간 분 리스트 세팅
+		
+		mav.addObject("siteCdList"			, rendererService.getCommonCodeList("G000"));	// 사이트코드 조회
+		mav.addObject("dcWayList"			, rendererService.getCommonCodeList("G240")); // 할인방식 조회
+		
+		String[] exceptCds1 = {"G100_00"};
+		mav.addObject("usableCustGbList"	, rendererService.getCommonCodeList("G100", "Y", exceptCds1));	// 사용가능 고객구분 조회
+		mav.addObject("usableCustGradeList"	, rendererService.getCommonCodeList("G110")); // 사용가능 고객등급 조회
+		mav.addObject("dnGbList"			, rendererService.getCommonCodeList("G058")); // 쿠폰다운로드 방식 조회
+		
+		String[] exceptCds2 = {"INICIS", "ISTYLE", "NAVER_ORDER", "NICE"};
+		mav.addObject("payTypeList"			, rendererService.getCommonCodeList("G015", "Y", exceptCds2)); // 결제수단 조회
+		
+		// 이미 쿠폰 아이디가 있으면 적용대상 조회
+		Coupon cpnDetail = new Coupon();
+		int cpnId = cpn.getCpnId(); 
+		if (cpnId > 0) {
+			cpnDetail = coreCouponService.getCouponDetail(cpnId);
+			
+			// 쿠폰사용가능고객구분 조회
+			mav.addObject("cpnCustGbList", coreCouponService.getCouponCustGbList(cpnId));
+			// 쿠폰사용가능고객등급 조회
+			mav.addObject("cpnCustGradeList", coreCouponService.getCouponCustGradeList(cpnId));
+			// 쿠폰사용가능결제수단 조회
+			mav.addObject("cpnPayTypeList", coreCouponService.getCouponPayTypeList(cpnId));
+		}
+		// 쿠폰상세조회
+		mav.addObject("cpnDetail", cpnDetail);
+		
+		mav.setViewName("marketing/CouponPopupGoodsCpnInfo");
+		return mav;
+	}
+	
+	/**
+	 * 쿠폰등록화면 적용대상탭
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021-08-17
+	 */
+	@PostMapping("/coupon/popup/applyInfo")
+	@ResponseBody
+	public ModelAndView couponCreatePopupApplyInfo(@RequestBody Coupon cpn) {
+		ModelAndView mav = new ModelAndView();
+
+		mav.addObject("formalGbList"		, rendererService.getCommonCodeList("G009")); // 정상/이월 조회
+		mav.addObject("selfBrandList"		, rendererService.getSelfBrandList()); // 자사 브랜드 조회
+		mav.addObject("cateGbList"			, rendererService.getCommonCodeList("G032")); // 카테고리 구분 조회
+		
+		// 이미 쿠폰 아이디가 있으면 적용대상 조회
+		int cpnId = cpn.getCpnId(); 
+		if (cpnId > 0) {
 			// 쿠폰적용대상 - 공급업체 조회
 			mav.addObject("cpnDtlRefvalSupplyCompList", coreCouponService.getCouponRefvalSupplyCompList(cpnId));
 			// 쿠폰적용대상 - 적용상품 조회
@@ -609,28 +931,105 @@ public class TsaMarketingController extends TsaBaseController {
 			mav.addObject("cpnDtlRefvalBrandList", coreCouponService.getCouponRefvalBrandList(cpnId));
 			// 쿠폰적용대상 - 제외상품 조회
 			mav.addObject("cpnDtlRefvalExceptGoodsList", coreCouponService.getCouponRefvalGoodsList(cpnId, "G260_14"));
+		}
+		
+		mav.setViewName("marketing/CouponPopupApplyInfo");
+		
+		return mav;
+	}
+	
+	/**
+	 * 쿠폰등록화면 입점업체분담율탭
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021-08-17
+	 */
+	@PostMapping("/coupon/popup/burdenInfo")
+	@ResponseBody
+	public ModelAndView couponCreatePopupBurdenInfo(@RequestBody Coupon cpn) {
+		ModelAndView mav = new ModelAndView();
+		
+		// 이미 쿠폰 아이디가 있으면 적용대상 조회
+		int cpnId = cpn.getCpnId(); 
+		if (cpnId > 0) {
 			// 쿠폰 입점업체분담율 조회
 			mav.addObject("cpnDtlBurdenList", coreCouponService.getCouponBurdenList(cpnId));
-			// 시리얼 및 난수 쿠폰 조회
-			mav.addObject("randomCpnList", coreCouponService.getRandomCouponInfo(cpnId));
-			// 쿠폰사용가능고객구분 조회
-			mav.addObject("cpnCustGbList", coreCouponService.getCouponCustGbList(cpnId));
-			// 쿠폰사용가능고객등급 조회
-			mav.addObject("cpnCustGradeList", coreCouponService.getCouponCustGradeList(cpnId));
-			// 쿠폰사용가능결제수단 조회
-			mav.addObject("cpnPayTypeList", coreCouponService.getCouponPayTypeList(cpnId));
-			// 선착순쿠폰 조회
-			mav.addObject("limitedTimeCpnList", coreCouponService.getLimitedTimeCouponList(cpnId));
+		}
+		
+		mav.setViewName("marketing/CouponPopupBurdenInfo");
+		
+		return mav;
+	}
+	
+	/**
+	 * 쿠폰등록화면 제휴채널탭
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021-08-17
+	 */
+	@PostMapping("/coupon/popup/afChannelInfo")
+	@ResponseBody
+	public ModelAndView couponCreatePopupAfChannelInfo(@RequestBody Coupon cpn) {
+		ModelAndView mav = new ModelAndView();
+		
+		// 제휴채널 조회
+		mav.addObject("channelList", rendererService.getCommonCodeList("G053", "Y"));
+		
+		// 이미 쿠폰 아이디가 있으면 적용대상 조회
+		int cpnId = cpn.getCpnId(); 
+		if (cpnId > 0) {
 			// 등록했던 제휴채널
 			mav.addObject("afChannelList", coreCouponService.getCouponAfChannelList(cpnId));
 		}
+		
+		mav.setViewName("marketing/CouponPopupAfChannelInfo");
+		
+		return mav;
+	}
+	
+	/**
+	 * 쿠폰등록화면 선착순시간설정탭
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021-08-17
+	 */
+	@PostMapping("/coupon/popup/limitedTimeInfo")
+	@ResponseBody
+	public ModelAndView couponCreatePopupLimitedTimeInfo(@RequestBody Coupon cpn) {
+		ModelAndView mav = new ModelAndView();
+		
+		// 이미 쿠폰 아이디가 있으면 적용대상 조회
+		int cpnId = cpn.getCpnId(); 
+		if (cpnId > 0) {
+			// 선착순쿠폰 조회
+			mav.addObject("limitedTimeCpnList", coreCouponService.getLimitedTimeCouponList(cpnId));
+		}
+		
+		mav.setViewName("marketing/CouponPopupLimitedTimeInfo");
+		
+		return mav;
+	}
+	
+	/**
+	 * 쿠폰등록화면 랜덤쿠폰탭
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021-08-17
+	 */
+	@PostMapping("/coupon/popup/randomInfo")
+	@ResponseBody
+	public ModelAndView randomCpnInfo(@RequestBody Coupon cpn) {
+		ModelAndView mav = new ModelAndView();
+		
+		// 이미 쿠폰 아이디가 있으면 적용대상 조회
+		int cpnId = cpn.getCpnId(); 
+		if (cpnId > 0) {
+			// 시리얼 및 난수 쿠폰 조회
+			mav.addObject("randomCpnList", coreCouponService.getRandomCouponInfo(cpnId));
+		}
 
-		//issueCnt = 3;
-
-		mav.addObject("mode", mode);
-		mav.addObject("issueCnt", issueCnt);
-
-		mav.setViewName("marketing/CouponPopupForm");
+		mav.setViewName("marketing/CouponPopupRandomInfo");
+		
 		return mav;
 	}
 

+ 14 - 0
src/main/java/com/style24/persistence/domain/Coupon.java

@@ -121,5 +121,19 @@ public class Coupon extends TscBaseDomain {
         this.custNm = CryptoUtils.decryptAES(this.custNm);
         return this.custNm;
     }
+    
+    // 업체목록배열
+    @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+    private String[] supplyCompCdArr;
+    
+    // 브랜드목록배열
+    @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+    private String[] brandCdArr;
+    
+    private String brandCd;
+    private String brandEnm;
+    private String supplyCompNm;
+    private String supplyCompCd;
+    private String brandGroupNm;
 
 }

+ 6 - 17
src/main/java/com/style24/persistence/mybatis/shop/TsaMorebetter.xml

@@ -647,30 +647,19 @@
 				<if test="multiSupplyCompCd!= null and multiSupplyCompCd.length>0">
 					SELECT GOODS_CD
 					     , 'G800_10' AS GOODS_GB
-					FROM TB_GOODS
-					WHERE SUPPLY_COMP_CD IN
+					FROM   TB_GOODS
+					WHERE  SUPPLY_COMP_CD IN
 					<foreach collection="multiSupplyCompCd" item="item" open="(" separator="," close=")">
-						#{item}
+					       #{item}
 					</foreach>
-					<if test="multiDefaultGoods != null and multiDefaultGoods.length>0">
-						AND GOODS_CD NOT IN ( ${applySql} )
-					</if>
-					UNION ALL
-				</if>
-				<if test="multiBrand!= null and multiBrand.length>0">
-					SELECT	GOODS_CD
-					      , 'G800_10' AS GOODS_GB
-					FROM	TB_GOODS
-					WHERE 	BRAND_CD IN
+					AND    BRAND_CD IN
 					<foreach collection="multiBrand" item="item" open="(" separator="," close=")">
-						#{item}
+						   #{item}
 					</foreach>
 					<if test="multiDefaultGoods != null and multiDefaultGoods.length>0">
-						AND GOODS_CD NOT IN ( ${applySql} )
+					AND    GOODS_CD NOT IN ( ${applySql} )
 					</if>
-					UNION ALL
 				</if>
-				${applyGbSql}
 			) T
 			WHERE	1=1
 			<if test="multiExceptGoods!= null and multiExceptGoods.length>0">

+ 117 - 0
src/main/webapp/WEB-INF/views/marketing/CouponPopupAfChannelInfo.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+
+<!--
+ *******************************************************************************
+ * @source  : CouponPopupForm.html
+ * @desc    : 쿠폰 등록 팝업 화면
+ *============================================================================
+ * ISTYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.23   xyzp1539       최초 작성
+ *******************************************************************************
+ -->
+<!-- 제휴채널 설정 -->
+<div class="inner-panelContent">
+	<div class="panelContent">
+		<div class="panelBar">
+			<h4>제휴채널</h4>
+		</div>
+		<table class="frmStyle">
+			<colgroup>
+				<col style="width:15%;">
+				<col style="width:85%;">
+			</colgroup>
+			<tbody>
+			<tr>
+				<th>업체 분담율</th>
+				<td>
+					<div class="padding10 inner-tb-solid">
+						<button type="button" class="btn btnRight btn-success btn-lg" id="btnAddAf">제휴채널 추가</button>
+						<button type="button" class="btn btnRight btn-success btn-lg" id="btnDeleteAf">선택삭제</button>
+						<br/>
+						<div id="afChannelList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+					</div>
+				</td>
+			</tr>
+			</tbody>
+		</table>
+	</div>
+</div>
+
+<!-- //제휴채널 설정 -->
+<script th:inline="javascript">
+let channelName 	= gagajf.convertToArray([[${channelList}]]);
+let afChannelList 	= [[${afChannelList}]];
+
+let columnAfDefs = [
+	{width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+	{headerName: "제휴채널코드", field: "afLinkCd", width: 100, cellClass: 'text-center'},
+	{
+		headerName: "제휴채널명", field: "afLinkNm", width: 180,
+		cellRenderer: function(params) {
+			return '<a href="javascript:void(0);">' + params.value + '</a>';
+		}
+	},
+	{headerName: "상위제휴채널", field: "afChannel", width: 120, cellClass: 'text-center',
+		cellEditor: 'agRichSelectCellEditor',
+		cellEditorParams: { values: gagaAgGrid.extractValues(channelName) },
+		valueFormatter: function (params) { return gagaAgGrid.lookupValue(channelName, params.value); },
+		valueParser: function (params) { return gagaAgGrid.lookupKey(channelName, params.newValue); }
+	}
+];
+
+// 제휴채널 그리드 설정
+var afLinkOptions = gagaAgGrid.getGridOptions(columnAfDefs);
+
+afLinkOptions.rowSelection = "multiple";
+afLinkOptions.suppressRowClickSelection = true;
+
+var afChannelInfoInit = function() {
+	gagaAgGrid.createGrid('afChannelList'		, afLinkOptions );
+	
+	if (afChannelList != null) {
+		afLinkOptions.api.setRowData(afChannelList);
+	}
+	
+	// 제휴채널 추가
+	$('#btnAddAf').on('click' , function () {
+		cfnOpenAfChannelPopup("callBackAf");
+	});
+	
+	// 제휴채널 선택삭제 버튼 클릭시
+	$('#btnDeleteAf').on('click', function() {
+		afLinkOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(afLinkOptions)});
+	});
+	
+	// 비활성화처리 대기상태가아닐때 동작
+	if (cpnDetail.cpnStat != 'G232_10' || issueCnt > 0) {
+		$('#btnAddAf').hide();
+		$('#btnDeleteAf').hide();
+	}
+}
+
+//제휴채널 콜백
+var callBackAf = function(result) {
+	// 기존 리스트 데이터 for
+	for(let i = 0 ; i < result.length ; i++) {
+		let addChk = true, gridListValue = gagaAgGrid.getAllRowData(afLinkOptions);		// 받아온 모든 데이터
+
+		// 받아온 data for
+		for(let j = 0 ; j < gridListValue.length ; j++) {
+			// 동일한 data는 추가하지 않음
+			if(gridListValue[j].afLinkCd == result[i].afLinkCd) {	addChk = false;	}		// 중복체크
+		}
+
+		// 중복되지 않은 데이터 리스트에 추가
+		if(addChk) {
+			gagaAgGrid.addRowData(afLinkOptions, {"afLinkCd":result[i].afLinkCd , "afLinkNm":result[i].afLinkNm, "afChannel":result[i].afChannel});
+		}
+	}
+}
+
+</script>
+</html>

+ 439 - 0
src/main/webapp/WEB-INF/views/marketing/CouponPopupApplyInfo.html

@@ -0,0 +1,439 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : CouponPopupForm.html
+ * @desc    : 쿠폰 등록 팝업 화면
+ *============================================================================
+ * ISTYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.23   xyzp1539       최초 작성
+ *******************************************************************************
+ -->
+ 
+<!-- 쿠폰적용대상-->
+<div class="inner-panelContent">
+	<div class="panelContent">
+		<div class="panelBar">
+			<h4>적용 대상 상품 등록</h4>
+		</div>
+		<table class="frmStyle">
+			<colgroup>
+				<col style="width:15%;">
+				<col style="width:85%;">
+			</colgroup>
+			<tbody>
+				<tr>
+					<th>적용범위<em class="required" title="필수"></em></th>
+					<td>
+						<input type="hidden" name="applyScope" required="required" data-valid-name="적용범위">
+						<label class="rdoBtn"> <input type="radio" name="rdoApplyScope" value="A"/>전체</label>
+						<label class="rdoBtn"> <input type="radio" name="rdoApplyScope" value="I" checked/>개별</label>
+					</td>
+				</tr>
+				<tr class="supplyTrArea">
+					<th>공급처</th>
+					<td>
+						<div class="padding10 inner-tb-solid">
+							<button type="button" class="btn btnRight btn-success btn-lg" id="btnSupplyAdd">공급처 추가</button>
+							<button type="button" class="btn btnRight btn-success btn-lg" id="btnSupplyDel">선택삭제</button>
+							<br/>
+							<div id="supplyGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+						</div>
+					</td>
+				</tr>
+				<tr class="brandTrArea">
+					<th>브랜드</th>
+					<td>
+						<div class="padding10 inner-tb-solid">
+							<button type="button" class="btn btnRight btn-success btn-lg" id="btnBrandAdd">브랜드 추가</button>
+							<button type="button" class="btn btnRight btn-success btn-lg" id="btnBrandDel">선택삭제</button>
+							<br/>
+							<div id="brandGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+						</div>
+					</td>
+				</tr>
+				<tr class="categoryTrArea">
+					<th>카테고리</th>
+					<td>
+						<div class="padding10 inner-tb-solid">
+							<button type="button" class="btn btnRight btn-success btn-lg" id="btnCateAdd">카테고리 추가</button>
+							<button type="button" class="btn btnRight btn-success btn-lg" id="btnCateDel">선택삭제</button>
+							<br/>
+							<div id="cateGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+						</div>
+					</td>
+				</tr>
+				<tr class="goodsTrArea">
+					<th>적용상품</th>
+					<td>
+						<div class="padding10 inner-tb-solid">
+							<button type="button" class="btn btnRight btn-success btn-lg" id="btnGoodsAdd">상품 추가</button>
+							<button type="button" class="btn btnRight btn-success btn-lg" id="btnGoodsDel">선택삭제</button>
+							<br/>
+							<div id="goodsGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+						</div>
+					</td>
+				</tr>
+			</tbody>
+		</table>
+	</div>
+</div>
+
+<div class="inner-panelContent exceptArea">
+	<div class="panelContent">
+		<div class="panelBar">
+			<h4>제외 대상 상품 등록</h4>
+		</div>
+		<table class="frmStyle">
+			<colgroup>
+				<col style="width:15%;">
+				<col style="width:85%;">
+			</colgroup>
+			<tbody>
+			<tr>
+				<th>제외상품</th>
+				<td>
+					<div class="padding10 inner-tb-solid">
+						<button type="button" class="btn btnRight btn-success btn-lg" id="btnExcepGoodsAdd">제외상품 추가</button>
+						<button type="button" class="btn btnRight btn-success btn-lg" id="btnExcepGoodsDel">선택삭제</button>
+						<br/>
+						<div id="excepGoodsGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+					</div>
+				</td>
+			</tr>
+			</tbody>
+		</table>
+	</div>
+</div>
+
+<script th:inline="javascript">
+// 공통코드 리스트
+var formalGbList 			= gagajf.convertToArray([[${formalGbList}]]);
+var cateGbList 				= gagajf.convertToArray([[${cateGbList}]]);
+var selfBrandList 			= gagajf.convertToArray([[${selfBrandList}]]);
+
+var cpnDtlRefvalSupplyCompList 	= [[${cpnDtlRefvalSupplyCompList}]];
+var cpnDtlRefvalApplyGoodsList 	= [[${cpnDtlRefvalApplyGoodsList}]];
+var cpnDtlRefvalCateList 		= [[${cpnDtlRefvalCateList}]];
+var cpnDtlRefvalBrandList 		= [[${cpnDtlRefvalBrandList}]];
+var cpnDtlRefvalExceptGoodsList = [[${cpnDtlRefvalExceptGoodsList}]];
+
+//ag-grid 공급처 컬럼
+var supplyColumnDefs = [
+	{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+	{ headerName : "공급업체코드" , field: "supplyCompCd" , width:150, cellClass: 'text-center'} ,
+	{ headerName: "공급업체명" , field: "supplyCompNm" , width:150, cellClass: 'text-center'},
+	{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
+	{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
+];
+
+// ag-grid 브랜드 컬럼
+var brandSelColumnDefs = [
+	{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+	{ headerName : "브랜드ID" , field: "brandCd" , width: 120, cellClass : 'text-center'} ,
+	{ headerName : "브랜드명" , field: "brandEnm" , width: 120, cellClass: 'text-center'} ,
+	{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
+	{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
+];
+
+// ag-grid 적용상품 컬럼
+var goodsSelColumnDefs = [
+	{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+	{ headerName: "상품구분" , field: "goodsGb" , width: 100, cellClass: 'text-center'} ,
+	{ headerName: "Product ID" , field: "goodsCd" , width: 120, cellClass: 'text-center'},
+	{ headerName: "상품명"  , field: "goodsNm" , width: 250 , cellClass: 'text-center'} ,
+	{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
+	{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
+];
+
+// ag-grid 카테고리 컬럼
+var cateSelColumnDefs = [
+	{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+	{ headerName: "사이트" , field: "siteCd" , width: 100 , cellClass: 'text-center' ,
+		cellEditor: 'agRichSelectCellEditor',
+		cellEditorParams: { values: gagaAgGrid.extractValues(siteCdList) },
+		valueFormatter: function (params) { return gagaAgGrid.lookupValue(siteCdList, params.value); },
+		valueParser: function (params) { return gagaAgGrid.lookupKey(siteCdList, params.newValue); }
+	},
+	{ headerName: "카테고리구분" , field: "cateGb" , width: 100 , cellClass: 'text-center' ,
+		cellEditor: 'agRichSelectCellEditor',
+		cellEditorParams: { values: gagaAgGrid.extractValues(cateGbList) },
+		valueFormatter: function (params) { return gagaAgGrid.lookupValue(cateGbList, params.value); },
+		valueParser: function (params) { return gagaAgGrid.lookupKey(cateGbList, params.newValue); }
+	},
+	{ headerName: "카테고리코드" , field: "cateNo" , width: 100 , cellClass: 'text-center'} ,
+	{ headerName: "카테고리명" , field: "cateNm" , width: 120 , cellClass: 'text-center'},
+	{ headerName: "이월/정상구분" , field: "formalGb" , width: 120 , cellClass: 'text-center',
+		cellEditor: 'agRichSelectCellEditor',
+		cellEditorParams: { values: gagaAgGrid.extractValues(formalGbList) },
+		valueFormatter: function (params) { return gagaAgGrid.lookupValue(formalGbList, params.value); },
+		valueParser: function (params) { return gagaAgGrid.lookupKey(formalGbList, params.newValue); }
+	},
+	{ headerName: "브랜드명" , field:"brandCd" , width:150, cellClass: "text-center", required: true ,
+		editable: true, cellEditor: 'agRichSelectCellEditor',
+		cellEditorParams: { values: gagaAgGrid.extractValues(selfBrandList) },
+		valueFormatter: function (params) { return gagaAgGrid.lookupValue(selfBrandList, params.value); },
+		valueParser: function (params) { return gagaAgGrid.lookupKey(selfBrandList, params.newValue); }
+	},
+	{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
+	{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
+];
+
+// ag-grid 제외상품 컬럼
+var excepGoodsColumnDefs = [
+	{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+	{ headerName: "상품구분" , field: "goodsGb" , width: 100, cellClass: 'text-center'} ,
+	{ headerName: "Product ID" , field: "goodsCd" , width: 120, cellClass: 'text-center'},
+	{ headerName: "상품명"  , field: "goodsNm" , width: 250 , cellClass: 'text-center'} ,
+	{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
+	{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
+];
+
+var supplyGridOptions 			= gagaAgGrid.getGridOptions(supplyColumnDefs);
+var brandGridOptions 			= gagaAgGrid.getGridOptions(brandSelColumnDefs);
+var cateGridOptions 			= gagaAgGrid.getGridOptions(cateSelColumnDefs);
+var goodsGridOptions 			= gagaAgGrid.getGridOptions(goodsSelColumnDefs);
+var excepGoodsGridOptions 		= gagaAgGrid.getGridOptions(excepGoodsColumnDefs);
+
+cateGridOptions.rowSelection 		= "multiple";
+goodsGridOptions.rowSelection 		= "multiple";
+brandGridOptions.rowSelection 		= "multiple";
+supplyGridOptions.rowSelection 		= "multiple";
+excepGoodsGridOptions.rowSelection 	= "multiple";
+	
+var applyInfoInit = function() {	
+
+	gagaAgGrid.createGrid('brandGridList'		, brandGridOptions);
+	gagaAgGrid.createGrid('cateGridList'		, cateGridOptions);
+	gagaAgGrid.createGrid('supplyGridList'		, supplyGridOptions);
+	gagaAgGrid.createGrid('goodsGridList'		, goodsGridOptions);
+	gagaAgGrid.createGrid('excepGoodsGridList'	, excepGoodsGridOptions);
+	
+	// 수정모드시 그리드 세팅
+	if (cpnDtlRefvalSupplyCompList != null) {
+		supplyGridOptions.api.setRowData(cpnDtlRefvalSupplyCompList);
+		goodsGridOptions.api.setRowData(cpnDtlRefvalApplyGoodsList);
+		excepGoodsGridOptions.api.setRowData(cpnDtlRefvalExceptGoodsList);
+		brandGridOptions.api.setRowData(cpnDtlRefvalBrandList);
+		cateGridOptions.api.setRowData(cpnDtlRefvalCateList);
+		
+		$("#CouponForm input:radio[name='rdoApplyScope']:radio[value=" + cpnDetail.applyScope + "]").prop('checked', true);
+		
+		if (cpnDetail.applyScope == 'A'){ 
+			$("#CouponForm .supplyTrArea").hide();
+			$("#CouponForm .brandTrArea").hide();
+			$("#CouponForm .categoryTrArea").hide();
+			$("#CouponForm .goodsTrArea").hide();
+			$("#CouponForm .exceptArea").hide();
+		}
+	}
+	
+	// 적용범위 클릭 시
+	$("#CouponForm input[name=rdoApplyScope]").bind('click', function () {
+		//전체적용일때
+		if ($('#CouponForm input:radio[name="rdoApplyScope"]:checked').val() == 'A'){ 
+			supplyGridOptions.api.updateRowData({remove:gagaAgGrid.getAllRowData(supplyGridOptions)});
+			brandGridOptions.api.updateRowData({remove:gagaAgGrid.getAllRowData(brandGridOptions)});
+			cateGridOptions.api.updateRowData({remove:gagaAgGrid.getAllRowData(cateGridOptions)});
+			goodsGridOptions.api.updateRowData({remove:gagaAgGrid.getAllRowData(goodsGridOptions)});
+			excepGoodsGridOptions.api.updateRowData({remove:gagaAgGrid.getAllRowData(excepGoodsGridOptions)});
+			
+			$("#CouponForm .supplyTrArea").hide();
+			$("#CouponForm .brandTrArea").hide();
+			$("#CouponForm .categoryTrArea").hide();
+			$("#CouponForm .goodsTrArea").hide();
+			$("#CouponForm .exceptArea").hide();
+		}
+		//개별적용일때
+		else{ 
+			var radioValue = $("#CouponForm input[name=rdoCpnType]:checked").val();
+			
+			// 배송비 쿠폰일때
+			if (radioValue == 'G230_30') {
+				$("#CouponForm .supplyTrArea").show();
+			} else {
+				$("#CouponForm .supplyTrArea").show();
+				$("#CouponForm .brandTrArea").show();
+				$("#CouponForm .categoryTrArea").show();
+				$("#CouponForm .goodsTrArea").show();
+				$("#CouponForm .exceptArea").show();
+			}
+		}
+	});
+	
+	//적용대상 - 공급처 추가 버튼시
+	$('#btnSupplyAdd').on('click' , function (){
+		cfnOpenCompanyListPopup("fnSetPopupComapnyInfo" , "M");
+	});
+	
+	// 적용대상 - 브랜드 추가 버튼시
+	$('#btnBrandAdd').on('click' , function(){
+		cfnOpenBrandListPopup("fnSetPopupBrandInfo", "M");
+	});
+	
+	// 적용대상 - 카테고리 추가시
+	$('#btnCateAdd').on('click' , function () {
+		cfnOpenCategoryPopup("fnSetPopupCategoryInfo");
+	});
+	
+	// 적용대상 - 상품 추가시
+	$('#btnGoodsAdd').on('click' , function () {
+		cfnOpenGoodsPopup("fnSetPopupApplyGoodsInfo");
+	});
+
+	// 적용대상 - 제외상품 추가시
+	$('#btnExcepGoodsAdd').on('click' , function(){
+		cfnOpenGoodsPopup("fnSetPopupExceptGoodsInfo");
+	});
+	
+	// 삭제버튼 클릭시
+	// 1.공급업체
+	$('#btnSupplyDel').on('click', function() {
+		supplyGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(supplyGridOptions)});
+	});
+	// 2.브랜드
+	$('#btnBrandDel').on('click', function() {
+		brandGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(brandGridOptions)});
+	});
+	// 3.카테고리
+	$('#btnCateDel').on('click', function() {
+		cateGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(cateGridOptions)});
+	});
+	// 4.적용상품
+	$('#btnGoodsDel').on('click', function() {
+		goodsGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(goodsGridOptions)});
+	});
+	// 5.제외상품
+	$('#btnExcepGoodsDel').on('click', function() {
+		excepGoodsGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(excepGoodsGridOptions)});
+	});
+	
+	// 비활성화처리 대기상태가아닐때 동작
+	if (cpnDetail.cpnStat != 'G232_10' || issueCnt > 0) {
+		$("#CouponForm input[name=rdoApplyScope]").attr("disabled", true);
+		$('#btnSupplyDel').hide();
+		$('#btnBrandDel').hide();
+		$('#btnCateDel').hide();
+		$('#btnGoodsDel').hide();
+		$('#btnExcepGoodsDel').hide();
+		
+		$('#btnSupplyAdd').hide();
+		$('#btnBrandAdd').hide();
+		$('#btnCateAdd').hide();
+		$('#btnGoodsAdd').hide();
+		$('#btnExcepGoodsAdd').hide();
+	}
+}
+
+//공급업체 설정 / 업체 추가 콜백함수
+var fnSetPopupComapnyInfo = function(result) {
+	// 기존 리스트 데이터 for
+	for(let i = 0 ; i < result.length ; i++) {
+		let addChk = true, gridListValue = gagaAgGrid.getAllRowData(supplyGridOptions);		// 받아온 모든 데이터
+
+		// 받아온 data for
+		for(let j = 0 ; j < gridListValue.length ; j++) {
+			// 동일한 data는 추가하지 않음
+			if(gridListValue[j].supplyCompCd == result[i].supplyCompCd) {	addChk = false;	}		// 중복체크
+		}
+
+		// 중복되지 않은 데이터 리스트에 추가
+		if(addChk) {
+			gagaAgGrid.addRowData(supplyGridOptions, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm});
+		}
+	}
+};
+
+//브랜드 설정 / 브랜드 추가 콜백함수 (단수로 가져오므로 복수일 경우에 수정 확인 필요)
+var fnSetPopupBrandInfo = function(result) {
+	for(let i = 0 ; i < result.length ; i++) {
+		let addChk = true, gridListValue = gagaAgGrid.getAllRowData(brandGridOptions);		// 받아온 모든 데이터
+
+		// 받아온 data for
+		for(let j = 0 ; j < gridListValue.length ; j++) {
+			if(gridListValue[j].brandCd == result[i].brandCd) {	addChk = false;	}					// 중복체크
+		}
+
+		// 중복되지 않은 데이터 리스트에 추가
+		if(addChk) {
+			gagaAgGrid.addRowData(brandGridOptions, {"brandCd" : result[i].brandCd, "brandEnm" : result[i].brandEnm, "supplyCompNm" : result[i].supplyCompNm});
+		}
+	}
+};
+
+//카테고리 추가 콜백 함수
+var fnSetPopupCategoryInfo = function (result) {
+	// 기존 리스트 데이터 for
+	for(let i = 0 ; i < result.length ; i++) {
+		let addChk = true, gridListValue = gagaAgGrid.getAllRowData(cateGridOptions);		// 받아온 모든 데이터
+
+		// 받아온 data for
+		for(let j = 0 ; j < gridListValue.length ; j++) {
+			// 동일한 data는 추가하지 않음
+			if(gridListValue[j].cateNo == result[i].cateNo) {	addChk = false;	}		// 중복체크
+		}
+
+		// 중복되지 않은 데이터 리스트에 추가
+		if(addChk) {
+			gagaAgGrid.addRowData(cateGridOptions, {"siteCd":result[i].siteCd , "cateGb":result[i].cateGb , "cateNo":result[i].cateNo, "cateNm":result[i].cateNm , "formalGb":result[i].formalGb , "brandEnm":null});
+		}
+	}
+}
+
+//적용 상품 리스트 콜백함수
+var fnSetPopupApplyGoodsInfo = function(result) {
+	gridAddGoodsList(goodsGridOptions, result , "apply");
+};
+
+//적용 상품 리스트 콜백함수
+var fnSetPopupExceptGoodsInfo = function(result) {
+	gridAddGoodsList(excepGoodsGridOptions, result , "except");
+};
+
+//ag-grid 상품관련 list 콜백함수
+function gridAddGoodsList(OriginGridListOption, result, gubun) {
+	var goodsGbVal = "G800_10";
+	
+	if (gubun == 'except') {
+		goodsGbVal = "G800_30";
+	}
+
+	let addCnt 		= 0;
+	let failCnt 	= 0;
+	let dupliCnt 	= 0;
+	let goodsDCnt 	= 0;
+
+	for (let i = 0 ; i < result.length ; i++) {
+		let addChk = true, gridListValue = gagaAgGrid.getAllRowData(OriginGridListOption);		// 받아온 모든 데이터
+
+		if(result[i].goodsType == 'G056_D'){ //딜상품 제외
+			addChk = false;
+			goodsDCnt++;
+		}
+
+		// 받아온 data for
+		for (let j = 0 ; j < gridListValue.length ; j++) {
+			if(gridListValue[j].goodsCd == result[i].goodsCd) {	addChk = false;	dupliCnt++;}				// 중복체크
+		}
+
+		// 중복되지 않은 데이터 리스트에 추가
+		if (addChk) {
+			gagaAgGrid.addRowData(OriginGridListOption, {"goodsGb": goodsGbVal, "goodsCd" : result[i].goodsCd, "goodsNm" : result[i].goodsNm});
+			addCnt++;
+		}
+	}
+	uifnPopupClose('popupGoods');
+	failCnt = result.length - addCnt - dupliCnt - goodsDCnt;
+	mcxDialog.alert("데이터가 적용되었습니다.<br/>" + addCnt + "건 성공, "+ dupliCnt + "건 중복, "+ goodsDCnt + "건 딜상품 제외, " + failCnt + "건 실패");
+}
+
+//2021.08.17 초기화설정 변경
+$(document).ready(function() {
+
+});
+</script>
+</html>

+ 121 - 0
src/main/webapp/WEB-INF/views/marketing/CouponPopupBurdenInfo.html

@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : CouponPopupForm.html
+ * @desc    : 쿠폰 등록 팝업 화면
+ *============================================================================
+ * ISTYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.23   xyzp1539       최초 작성
+ *******************************************************************************
+ -->
+<div class="inner-panelContent">
+	<div class="panelContent">
+		<div class="panelBar">
+			<h4>업체 분담율</h4>
+		</div>
+		<table class="frmStyle">
+			<colgroup>
+				<col style="width:15%;">
+				<col style="width:85%;">
+			</colgroup>
+			<tbody>
+			<tr>
+				<th>업체 분담율</th>
+				<td>
+					<div class="padding10 inner-tb-solid">
+						<button type="button" class="btn btnRight btn-success btn-lg" id="btnAddApplyBurden">업체추가</button>
+						<button type="button" class="btn btnRight btn-success btn-lg" id="btnDelApplyBurden">선택삭제</button>
+						<br/>
+						<div id="inComGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+					</div>
+				</td>
+			</tr>
+			</tbody>
+		</table>
+	</div>
+</div> 
+
+<script th:inline="javascript">
+
+var cpnDtlBurdenList = [[${cpnDtlBurdenList}]];
+
+//ag-grid 입점업체분담율 컬럼
+var columnDefs = [
+	{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+	{ headerName: "입점업체코드" , field:"supplyCompCd" , width:150, cellClass:"text-center"
+	} ,
+	{ headerName: "입점업체명"  , field: "supplyCompNm" , width: 120 , cellClass: 'text-center'},
+	{ headerName: "쿠폰분담율(%)", field:"burdenRate" , width:150, cellClass: "text-center" , required: true
+		,valueFormatter: function(params) {
+			if(params.value && params.value > 0) {
+				if(params.value > 100){
+					mcxDialog.alert('할인율은 100이하로 설정해주세요.');
+					params.data.burdenRate = '0';
+					return '0';
+				}
+				return params.value.addComma();
+			} else {
+				return '0';
+			}
+		},
+		cellEditorParams: { maxlength: 4, validType: 'numeric'}
+	} ,
+	{ headerName: "쿠폰번호"  , field: "cpnId" , width: 120 , cellClass: 'text-center' , hide:true},
+	{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
+];
+
+var inComGridOptions = gagaAgGrid.getGridOptions(columnDefs);
+inComGridOptions.defaultColDef.editable = true;
+inComGridOptions.rowSelection = "multiple";
+inComGridOptions.stopEditingWhenGridLosesFocus = true;
+
+var burdenInfoInit = function() {
+	gagaAgGrid.createGrid('inComGridList'		, inComGridOptions);
+
+	//업체분담율 추가 버튼 클릭시
+	$('#CouponForm #btnAddApplyBurden').on('click', function() {
+		cfnOpenCompanyListPopup("fnSetPopupApplyBurdenInfo" ,"M");
+	});
+	
+	// 업체분담율 선택삭제 버튼 클릭시
+	$('#CouponForm #btnDelApplyBurden').on('click', function() {
+		inComGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(inComGridOptions)});
+	});
+	
+	if (cpnDtlBurdenList != null) {
+		inComGridOptions.api.setRowData(cpnDtlBurdenList);
+	}
+	
+	// 비활성화처리 대기상태가아닐때 동작
+	if (cpnDetail.cpnStat != 'G232_10' || issueCnt > 0) {
+		$('#CouponForm #btnAddApplyBurden').hide();
+		$('#CouponForm #btnDelApplyBurden').hide();
+		inComGridOptions.defaultColDef.editable = false;
+	}
+}
+
+//분담업체율 설정 / 업체 추가 콜백함수
+var fnSetPopupApplyBurdenInfo = function(result) {
+	// 기존 리스트 데이터 for
+	for(let i = 0 ; i < result.length ; i++) {
+		let addChk = true, gridListValue = gagaAgGrid.getAllRowData(inComGridOptions);		// 받아온 모든 데이터
+
+		// 받아온 data for
+		for(let j = 0 ; j < gridListValue.length ; j++) {
+			// 동일한 data는 추가하지 않음
+			if(gridListValue[j].supplyCompCd == result[i].supplyCompCd) {	addChk = false;	}		// 중복체크
+		}
+
+		// 중복되지 않은 데이터 리스트에 추가
+		if(addChk) {
+			gagaAgGrid.addRowData(inComGridOptions, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm, "delYn" : result[i].delYn});
+		}
+	}
+};
+</script>
+</html>

+ 231 - 0
src/main/webapp/WEB-INF/views/marketing/CouponPopupCpn1Info.html

@@ -0,0 +1,231 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : CouponPopupForm.html
+ * @desc    : 쿠폰 등록 팝업 화면
+ *============================================================================
+ * ISTYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.23   xyzp1539       최초 작성
+ *******************************************************************************
+ -->
+ 
+<!-- 즉시할인쿠폰 -->
+<table class="frmStyle G230_10">
+	<colgroup>
+		<col style="width:165px;">
+		<col style="width:45%;">
+		<col style="width:165px;">
+		<col>
+	</colgroup>
+	<tbody>
+		<tr>
+			<th>쿠폰명<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" name="cpnNm" required="required" data-valid-name="쿠폰명">
+			</td>
+			<th>사이트<em class="required" title="필수"></em></th>
+			<td>
+				<select name="siteCd" required="required" data-valid-name="사이트">
+					<option th:if="${siteCdList}" th:each="oneData , status : ${siteCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+				</select>
+			</td>
+		</tr>
+		<tr>
+			<th>쿠폰설명</th>
+			<td colspan="3">
+				<input type="text" name="cpnDesc" data-valid-name="쿠폰설명">
+			</td>
+		</tr>
+		<tr>
+			<th>할인방식<em class="required" title="필수"></em></th>
+			<td>
+				<input type="hidden" name="dcWay" required="required" data-valid-name="할인방식">
+				<label class="rdoBtn" th:if="${dcWayList}" th:each="oneData, status : ${dcWayList}"> 
+					<input type="radio" name="rdoDcWay"  th:text="${oneData.cdNm}" th:value="${oneData.cd}"/>
+				</label>
+			</td>
+			<th>할인값(PC)<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" class="w200" name="dcPval" value="0" required="required" data-valid-name="할인값(PC)" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);inputNumberFormat(this);"><span class="dcPvalSpan">원</span>
+				<button type="button" class="btn btn-default btn-lg" id="applySameValueBtn">동일적용</button>
+			</td>
+		</tr>
+		<tr>
+			<th>할인값(모바일웹)<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" class="w200" name="dcMval" value="0" required="required" data-valid-name="할인값(모바일웹)" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);inputNumberFormat(this);"><span class="dcMvalSpan">원</span>
+			</td>
+			<th>할인값(모바일앱)<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" class="w200" name="dcAval" value="0" required="required" data-valid-name="할인값(모바일앱)" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);inputNumberFormat(this);"><span class="dcAvalSpan">원</span>
+			</td>
+		</tr>
+		<tr>
+			<th>최대할인금액<em class="required" title="필수"></em></th>
+			<td colspan="3">
+				<input type="text" class="w200" name="maxDcAmt" value="0" required="required" data-valid-name="최대할인금액" style="text-align: right;" onkeyup="inputNumberFormat(this);" th:value="${cpnDetail.maxDcAmt}">
+				<span class="maxDcAmtSpan">원</span>
+			</td>
+		</tr>
+		<tr>
+			<th class="availDateTr">유효기간시작일시<em class="required" title="필수"></em></th>
+			<td class="availDateTr">
+				<input type="hidden" name="availStdt" id="availStdt" data-valid-name="유효기간시작일시">
+				<input type="text" class="schDate w100" name="availStDay" id="availStDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
+				<select name="availStHH" id="availStHH">
+					<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+				<select name="availStMM">
+					<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+			<th class="availDateTr">유효기간종료일시<em class="required" title="필수"></em></th>
+			<td class="availDateTr">
+				<input type="hidden" name="availEddt" id="availEddt" data-valid-name="유효기간종료일시">
+				<input type="text" class="schDate w100" name="availEdDay" id="availEdDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
+				<select name="availEdHH" onclick="fnChangeEdHH(this);">
+					<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+					<option th:text="24시" th:value="24" selected></option>
+				</select>
+				<select name="availEdMM">
+					<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+			</td>
+		</tr>
+	</tbody>
+</table>
+<!-- //즉시할인쿠폰 -->
+
+<script th:inline="javascript">
+var cpnDetail 				= [[${cpnDetail}]];
+
+// 할인방식 할인율 일때, 할인값 체크
+var fnDcValOnkeyUp = function (obj){
+	var inputName 	= $(obj).attr("name");
+	var rdoDcWay 	= $('#CouponForm input:radio[name="rdoDcWay"]:checked').val();
+	var dcVal 		= $("#CouponForm input[name="+inputName+"]").val();
+	if (rdoDcWay == "G240_11") {
+		if(dcVal > 100){
+			mcxDialog.alert('할인율은 100을 넘을수 없습니다.');
+			$("#CouponForm input[name="+inputName+"]").val('');
+			$("#CouponForm input[name="+inputName+"]").focus();
+			return;
+		}
+	}
+}
+
+// 종료시간 클릭시
+var fnChangeEdHH = function (obj){
+	var selectId = $(obj).attr("name");
+	var changeId = "";
+	
+	if (selectId == "downEdHH") {
+		changeId = "downEdMM";
+	} else if(selectId == "availEdHH") {
+		changeId = "availEdMM";
+	} else if(selectId == "buyEdHH") {
+		changeId = "buyEdMM";
+	} else {
+		changeId = "custJoinEdMM";
+	}
+	
+	if (obj.value == 24) {
+		$("#CouponForm select[name="+changeId+"] option").hide();
+		$("#CouponForm select[name="+changeId+"] option:first").show().prop("selected", true);
+	} else {
+		$("#CouponForm select[name="+changeId+"] option").show();
+	}
+};
+
+//2021.08.17 초기화설정 변경
+$(document).ready(function() {
+	if (cpnDetail != null && cpnDetail.cpnId != null) {
+		
+		// 기본정보 세팅
+		$("#CouponForm input[name=cpnNm]").val(cpnDetail.cpnNm);
+		$("#CouponForm input[name=cpnDesc]").val(cpnDetail.cpnDesc);
+		$("#CouponForm input:radio[name='rdoDcWay']:radio[value=" + cpnDetail.dcWay + "]").prop('checked', true);
+		$("#CouponForm input:radio[name='rdoApplyScope']:radio[value=" + cpnDetail.applyScope + "]").prop('checked', true);
+		$("#CouponForm input[name=dcPval]").val(cpnDetail.dcPval.addComma());
+		$("#CouponForm input[name=dcMval]").val(cpnDetail.dcMval.addComma());
+		$("#CouponForm input[name=dcAval]").val(cpnDetail.dcAval.addComma());
+		$("#CouponForm input[name=maxDcAmt]").val(cpnDetail.maxDcAmt.addComma());
+		
+		// 금액할인
+		if (cpnDetail.dcWay == 'G240_10') {
+			strAmtType = "원";
+			$("#CouponForm input[name=maxDcAmt]").attr("disabled", true);
+		}
+		// 율할인
+		else {
+			strAmtType = "%";
+			$("#CouponForm input[name=maxDcAmt]").attr("disabled", false);
+		}
+		
+		$('.dcPvalSpan').text(strAmtType);
+		$('.dcMvalSpan').text(strAmtType);
+		$('.dcAvalSpan').text(strAmtType);
+		
+		$("#CouponForm #siteCd").val(cpnDetail.siteCd).prop("selected", true);
+		
+		// 유효기간이 날짜인경우 날짜 세팅
+		if (cpnDetail.pdGb == "P") {
+			splitDate("start"	, cpnDetail.availStdt, "avail");
+			splitDate("end"		, cpnDetail.availEddt, "avail");
+			
+			issueCnt = 0;
+			if (issueCnt > 0) {
+				$("#CouponForm #availStDay").attr('readonly', true);
+				$("#CouponForm #availStDay").attr('disabled', true);
+				$("#CouponForm #availStHH").attr('readonly', true);
+				$("#CouponForm #availStHH").attr('disabled', true);
+				$("#CouponForm #availStMM").attr('readonly', true);
+				$("#CouponForm #availStMM").attr('disabled', true);
+				$("#CouponForm #availEdDay").attr('readonly', true);
+				$("#CouponForm #availEdDay").attr('disabled', true);
+				$("#CouponForm #availEdHH").attr('readonly', true);
+				$("#CouponForm #availEdHH").attr('disabled', true);
+				$("#CouponForm #availEdMM").attr('readonly', true);
+				$("#CouponForm #availEdMM").attr('disabled', true);
+			}
+		} else {
+			$("#CouponForm #availDays").val(cpnDetail.availDays);
+			$('#CouponForm #availEdHH option:last').attr("selected", "selected");
+			$('#CouponForm #availEdMM option:last').attr("selected", "selected");
+
+		}
+		
+		// 비활성화처리 대기상태가아닐때 동작
+		if (cpnDetail.cpnStat != 'G232_10' || issueCnt > 0) {
+			$("#CouponForm input[name=cpnNm]").attr("disabled", true);
+			$("#CouponForm input[name=cpnDesc]").attr("disabled", true);
+			$("#CouponForm input:radio[name='rdoDcWay']").attr("disabled", true);
+			$("#CouponForm input:radio[name='rdoApplyScope']").attr("disabled", true);
+			$("#CouponForm input[name=dcPval]").attr("disabled", true);
+			$("#CouponForm input[name=dcMval]").attr("disabled", true);
+			$("#CouponForm input[name=dcAval]").attr("disabled", true);
+			$("#CouponForm input[name=maxDcAmt]").attr("disabled", true);
+
+			$("#CouponForm select[name=siteCd]").attr("disabled", true);
+			
+			$("#CouponForm input[name=availStDay]").attr('readonly', true);
+			$("#CouponForm input[name=availStDay]").attr('disabled', true);
+			$("#CouponForm select[name=availStHH]").attr('readonly', true);
+			$("#CouponForm select[name=availStHH]").attr('disabled', true);
+			$("#CouponForm select[name=availStMM]").attr('readonly', true);
+			$("#CouponForm select[name=availStMM]").attr('disabled', true);
+			$("#CouponForm input[name=availEdDay]").attr('readonly', true);
+			$("#CouponForm input[name=availEdDay]").attr('disabled', true);
+			$("#CouponForm select[name=availEdHH]").attr('readonly', true);
+			$("#CouponForm select[name=availEdHH]").attr('disabled', true);
+			$("#CouponForm select[name=availEdMM]").attr('readonly', true);
+			$("#CouponForm select[name=availEdMM]").attr('disabled', true);
+		}
+	}
+});
+</script>
+</html>

+ 195 - 439
src/main/webapp/WEB-INF/views/marketing/CouponPopupForm.html

@@ -22,14 +22,14 @@
 		</div>
 		<div class="panelContent">
 			<form id="CouponForm" name="CouponForm" action="#" th:action="@{'/marketing/coupon/save'}" >
-				<input type="hidden" name="supplyCompList" 		id="supplyCompList">
-				<input type="hidden" name="brandList" 			id="brandList">
-				<input type="hidden" name="applyGoodsList" 		id="applyGoodsList">
-				<input type="hidden" name="exceptGoodsList" 	id="excepGoodsList">
-				<input type="hidden" name="burdenList" 			id="burdenList">
-				<input type="hidden" name="cateList" 			id="cateList">
-				<input type="hidden" name="rdCpnNm" 			id="rdCpnNm">
-				<input type="hidden" name="cpnId" 				id="cpnId" th:if="${cpnDetail}" th:value="${cpnDetail.cpnId}">
+				<input type="hidden" name="supplyCompList" id="supplyCompList">
+				<input type="hidden" name="brandList" id="brandList">
+				<input type="hidden" name="applyGoodsList" id="applyGoodsList">
+				<input type="hidden" name="exceptGoodsList" id="excepGoodsList">
+				<input type="hidden" name="burdenList" id="burdenList">
+				<input type="hidden" name="cateList" id="cateList">
+				<input type="hidden" name="rdCpnNm" id="rdCpnNm">
+				<input type="hidden" name="cpnId" id="cpnId" th:if="${cpnDetail}" th:value="${cpnDetail.cpnId}">
 				<input type="hidden" name="mode" th:value="${mode}"/>
 
 				<div class="tabs">
@@ -89,6 +89,7 @@
 											<td>
 												<input type="hidden" id="cpnType" name="cpnType" required="required"  data-valid-name="쿠폰유형">
 												<label class="rdoBtn" th:if="${cpnTypeList}" th:each="oneData, status : ${cpnTypeList}"> <input type="radio" name="rdoCpnType"  th:text="${oneData.cdNm}" th:value="${oneData.cd}"/></label>
+
 											</td>
 											<th class="limitedTimeCpnArea" style="display: none;">선착순쿠폰</th>
 											<td class="limitedTimeCpnArea" style="display: none;">
@@ -199,12 +200,6 @@
 												<input type="text" name="availDays" id="availDays" class="w200" data-valid-type="numeric" data-valid-name="유효기간일수">
 											</td>
 										</tr>
-<!--										<tr class="availDayTr" style="display: none;">-->
-<!--											<th>유효기간일수<em class="required" title="필수"></em></th>-->
-<!--											<td>-->
-<!--												<input type="text" name="availDays" id="availDays" class="w200" data-valid-name="유효기간일수">-->
-<!--											</td>-->
-<!--										</tr>-->
 										<tr>
 											<th class="availDateTr">유효기간시작일시<em class="required" title="필수"></em></th>
 											<td class="availDateTr">
@@ -321,20 +316,6 @@
 												<em style="color:red"> *상품상세 페이지내</em>
 											</td>
 										</tr>
-										<!--<tr>
-											<th>재발급여부<em class="required" title="필수"></em></th>
-											<td>
-												<select name="reissuance" id="reissuance" required="required" data-valid-name="재발급여부" >
-													<option th:if="${reissuanceList}" th:each="oneData , status : ${reissuanceList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-												</select>
-											</td>
-											<th>다운로드구분<em class="required" title="필수"></em></th>
-											<td>
-												<select name="dnGb" id="dnGb" required="required" data-valid-name="다운로드구분">
-													<option th:if="${dnGbList}" th:each="oneData , status:${dnGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-												</select>
-											</td>
-										</tr>-->
 										<tr class="payTypeTr" style="display: none;">
 											<th>결제수단</th>
 											<td colspan="5">
@@ -367,23 +348,9 @@
 												</label>
 												<input type="hidden" id="cpnStat" name="cpnStat"/>
 											</td>
-											<!--<th>제휴링크코드<em class="required" title="필수"></em></th>
-											<td>
-												<select name="afChannel" id="afChannel" onchange="fnChangeAfLinkCdList()" data-valid-name="제휴링크코드" required="required">
-													<option th:if="${upperAfLinkCdList}" th:each="oneData , status : ${upperAfLinkCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-												</select>
-												<select name="afLinkCd" id="afLinkCd">
-												</select>
-											</td>-->
 										</tr>
 									</tbody>
 								</table>
-								<!--<div class="mdPopBtnB aR">
-									<button type="button" class="btn btn-info btn-lg" onclick="fnPubCustListPopUp();" th:if="${mode == 'U'}">발급받은회원</button>
-									<button type="button" class="btn btn-info btn-lg" onclick="fnCustomerIssuePopUp();" th:if="${mode == 'U' && cpnDetail.dcCdGb == 'G233_00'}">쿠폰발행</button>
-									<button type="button" class="btn btn-info btn-lg" onclick="fnCouponCreate();" th:if="${mode == 'N'}">등록</button>
-									<button type="button" class="btn btn-info btn-lg" onclick="fnCouponUpdate();" th:if="${mode == 'U'}">수정</button>
-								</div>-->
 							</div>
 						</li>
 						<!-- 쿠폰적용대상-->
@@ -587,10 +554,6 @@
 	var columnDefs = [
 		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
 		{ headerName: "입점업체코드" , field:"supplyCompCd" , width:150, cellClass:"text-center"
-			// cellEditor: 'agRichSelectCellEditor',
-			// cellEditorParams: { values: gagaAgGrid.extractValues(ibSupplyComList) },
-			// valueFormatter: function (params) { return gagaAgGrid.lookupValue(ibSupplyComList, params.value); },
-			// valueParser: function (params) { return gagaAgGrid.lookupKey(ibSupplyComList, params.newValue);}
 		} ,
 		{ headerName: "입점업체명"  , field: "supplyCompNm" , width: 120 , cellClass: 'text-center'},
 		{ headerName: "쿠폰분담율(%)", field:"burdenRate" , width:150, cellClass: "text-center" , required: true
@@ -607,14 +570,7 @@
 				}
 			},
 			cellEditorParams: { maxlength: 4, validType: 'numeric'}
-			// cellEditorParams: { maxlength: 10, required: true }
 		} ,
-		/*{ headerName: "삭제여부" , field: "delYn"  , width:150, cellClass: "text-center" ,
-			cellEditor: 'agRichSelectCellEditor',
-			cellEditorParams: { values: gagaAgGrid.extractValues(delYnList) },
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(delYnList, params.value); },
-			valueParser: function (params) { return gagaAgGrid.lookupKey(delYnList, params.newValue); }
-		} ,*/
 		{ headerName: "쿠폰번호"  , field: "cpnId" , width: 120 , cellClass: 'text-center' , hide:true},
 		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
 	];
@@ -633,7 +589,6 @@
 		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
 		{ headerName : "브랜드ID" , field: "brandCd" , width: 120, cellClass : 'text-center'} ,
 		{ headerName : "브랜드명" , field: "brandEnm" , width: 120, cellClass: 'text-center'} ,
-		//{ headerName : "공급업체명", field: "supplyCompNm" , width: 150, cellClass: 'text-center' } ,
 		{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
 		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
 	];
@@ -723,11 +678,6 @@
 		{ headerName: "종료시간"  , field: "downEdTime" , width: 200 , cellClass: 'text-center'
 			,cellEditor: 'dateTimer'
 			,cellEditorParams: { maxlength: 8, required: true }
-			// ,valueFormatter: function (params) {
-			// 	params.value = params.value.replace(/[^0-9]/g, '');
-			// 	params.value = params.value.substr(0,2)+':'+params.value.substr(2,2)+':59';
-			// 	return params.value;
-			// }
 		} ,
 		{ headerName: "다운로드가능수량"  , field: "downLimitQty" , width: 150 , cellClass: 'text-center'
 			,cellEditorParams: { maxlength: 4, validType: 'numeric'}
@@ -755,16 +705,17 @@
 		}
 	];
 
-	var inComGridOptions = gagaAgGrid.getGridOptions(columnDefs);
-	var cateGridOptions = gagaAgGrid.getGridOptions(cateSelColumnDefs);
-	var goodsGridOptions = gagaAgGrid.getGridOptions(goodsSelColumnDefs);
-	var brandGridOptions = gagaAgGrid.getGridOptions(brandSelColumnDefs);
-	var supplyGridOptions = gagaAgGrid.getGridOptions(supplyColumnDefs);
-	var excepGoodsGridOptions = gagaAgGrid.getGridOptions(excepGoodsColumnDefs);
-	var randomCouponGridOptions = gagaAgGrid.getGridOptions(randomCouponDefs);
-	var limitedTimeCpnGridOptions = gagaAgGrid.getGridOptions(limitedTimeCpnDefs);
+	var inComGridOptions 			= gagaAgGrid.getGridOptions(columnDefs);
+	var cateGridOptions 			= gagaAgGrid.getGridOptions(cateSelColumnDefs);
+	var goodsGridOptions 			= gagaAgGrid.getGridOptions(goodsSelColumnDefs);
+	var brandGridOptions 			= gagaAgGrid.getGridOptions(brandSelColumnDefs);
+	var supplyGridOptions 			= gagaAgGrid.getGridOptions(supplyColumnDefs);
+	var excepGoodsGridOptions 		= gagaAgGrid.getGridOptions(excepGoodsColumnDefs);
+	var randomCouponGridOptions 	= gagaAgGrid.getGridOptions(randomCouponDefs);
+	var limitedTimeCpnGridOptions 	= gagaAgGrid.getGridOptions(limitedTimeCpnDefs);
+	
 	// 제휴채널 그리드 설정
-	var afLinkOptions = gagaAgGrid.getGridOptions(columnAfDefs);
+	var afLinkOptions 				= gagaAgGrid.getGridOptions(columnAfDefs);
 	afLinkOptions.rowSelection = "multiple";
 	afLinkOptions.suppressRowClickSelection = true;
 
@@ -785,11 +736,8 @@
 			var temp = event.data.downEdTime.replaceAll(":","");
 			var hh = temp.substr(0,2);
 			var mm = temp.substr(2,2);
-			// var ss = temp.substr(4,2);
 
 			event.data.downEdTime = hh+':'+mm+':'+'59';
-			// console.log('event.data.downEdTime:::'+event.data.downEdTime);
-
 			limitedTimeCpnGridOptions.api.updateRowData({update: [event.data]});
 			return;
 		}
@@ -840,37 +788,6 @@
 		cfnOpenCompanyListPopup("fnSetPopupApplyBurdenInfo" ,"M");
 	});
 
-	// 선착순 쿠폰 행삭제
-	/*$('#btnDelLimitedTimeCpnRow').on('click', function() {
-		var selectedData = limitedTimeCpnGridOptions.api.getSelectedRows();
-		if (selectedData.length == 0) {
-			mcxDialog.alert('선택된 행이 없습니다.');
-			return;
-		}
-		var removedData = gagaAgGrid.removeRowData(limitedTimeCpnGridOptions, false);
-		var arrLimitCpnId = [];
-
-		$.each(selectedData, function(idx, item) {
-			arrLimitCpnId.push(item.limitCpnId);
-		});
-
-		if (removedData.length > 0) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					var data = { arrLimitCpnId : arrLimitCpnId
-						,cpnId : $('#CouponForm input[name=cpnId]').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/limitedtime/coupon/update', jsonData);
-				}
-			});
-		}
-	});
-	*/
-
 	// 분담업체율 설정 / 업체 추가 콜백함수
 	var fnSetPopupApplyBurdenInfo = function(result) {
 		// 기존 리스트 데이터 for
@@ -1036,12 +953,6 @@
 		}
 
 		// 할인방식 할인율 일때, 최대할인금액 0 보다 큰지 체크
-		// 2021.08.13 임시 즉시할인 쿠폰일때도 최대할인금액 적용 예정
-		// 임시로 최대할인 금액 10만원 적용
-		if ($('#CouponForm #cpnType').val() == "G230_10") {
-			$('#CouponForm').find('input[name=maxDcAmt]').val("100000");
-		}
-		
 		if($('#CouponForm input:radio[name="rdoDcWay"]:checked').val() == 'G240_11'){
 			if($('#CouponForm').find('input[name=maxDcAmt]').val() < 1){
 				mcxDialog.alert("최대 할인 금액을 입력해주세요.");
@@ -1050,7 +961,7 @@
 			}
 		}
 
-		if($('#CouponForm input:radio[name="rdoApplyScope"]:checked').val() == 'I'){
+		if ($('#CouponForm input:radio[name="rdoApplyScope"]:checked').val() == 'I') {
 			// 적용대상 체크
 			let targetCnt = 0;
 			let target1 = gagaAgGrid.getAllRowData(supplyGridOptions);
@@ -1059,6 +970,22 @@
 			let target4 = gagaAgGrid.getAllRowData(goodsGridOptions);
 
 			targetCnt = target1.length + target2.length + target3.length + target4.length;
+			
+			// 2021.08.23 브랜드 && 업체 and 조건 설정
+			if (target1.length > 0) {
+				if (target2.length < 1) {
+					mcxDialog.alert("적용대상 브랜드정보를 설정해주세요.");
+					return false;
+				}
+			}
+			
+			if (target2.length > 0) {
+				if (target1.length < 1) {
+					mcxDialog.alert("적용대상 업체정보를 설정해주세요.");
+					return false;
+				}
+			}
+			
 			if(targetCnt < 1){
 				mcxDialog.alert("적용대상을 설정해주세요.");
 				return false;
@@ -1104,19 +1031,6 @@
 			return false;
 		}
 
-		/*
-		21-07-19 결제수단 필수조건 아니여서 주석처리
-		if(cpnType == 'G230_20'){
-			// 결제수단 체크박스 체크
-			var payTypeCnt = $('#CouponForm input:checkbox[name=payTypeArr]:checked').length;
-			if(payTypeCnt<1){
-				mcxDialog.alert("결제수단을 체크해주세요.");
-				$('#CouponForm input:checkbox[name=payTypeArr]').focus();
-				return false;
-			}
-		}
-		*/
-
 		if($('#CouponForm select[name="pdGb"] option:selected').val() == 'D'){
 			if(gagajf.isNull($("#availDays").val()) || $("#availDays").val() < 1){
 				mcxDialog.alert("유효기간 일수를 입력해주세요.");
@@ -1279,28 +1193,6 @@
 						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드종료일을 입력해주세요.");
 						return false;
 					}
-					//
-					// cpnData[i].downStDt = (cpnData[i].downEdDate).replace(/[^0-9]/g, '') + (cpnData[i].downStTime).replace(/[^0-9]/g, '');
-					// var stdt = (cpnData[i].downEdDate).replace(/[^0-9]/g, '') + (cpnData[i].downStTime).replace(/[^0-9]/g, '');
-					// console.log('cpnData[i].downStDt>>'+cpnData[i].downStDt);
-					//
-					// var eddt = '';
-					// if(gagajf.isNull(cpnData[i].downEdTime)){
-					// 	mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드종료일을 입력해주세요.");
-					// 	return false;
-					// }else{
-					// 	var tempEddt = cpnData[i].downEdTime.replace(/[^0-9]/g, '');
-					// 	console.log('tempEddt>>'+tempEddt.substr(0,4));
-					// 	if(tempEddt.substr(0,4) == '0000'){
-					// 		tempEddt = cpnData[i].downEdDate.replace(/[^0-9]/g, '') +'235959';
-					// 		cpnData[i].downEdDt = tempEddt;
-					// 		eddt = tempEddt;
-					// 	}else{
-					// 		cpnData[i].downEdDt = (cpnData[i].downEdDate).replace(/[^0-9]/g, '') + (cpnData[i].downEdTime).replace(/[^0-9]/g, '');
-					// 		eddt = (cpnData[i].downEdDate).replace(/[^0-9]/g, '') + (cpnData[i].downEdTime).replace(/[^0-9]/g, '');
-					// 	}
-					// }
-					// console.log('cpnData[i].downEdDt>>'+cpnData[i].downEdDt);
 
 					if(gagajf.isNull(cpnData[i].downLimitQty)){
 						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드가능수량을 입력해주세요.");
@@ -1414,53 +1306,51 @@
 				}
 
 				var data = {
-					cpnId : $('#CouponForm input[name=cpnId]').val()
-					,cpnNm : $('#CouponForm input[name=cpnNm]').val()
-					,cpnDesc : $('#CouponForm input[name=cpnDesc]').val()
-					,siteCd : $('#CouponForm select[name=siteCd]').val()
-					// ,afLinkCd : $('#CouponForm select[name=afLinkCd]').val()
-					,cpnType : $('input:radio[name="rdoCpnType"]:checked').val()
-					,applyScope : $('input:radio[name="rdoApplyScope"]:checked').val()
-					,dcWay : $('input:radio[name="rdoDcWay"]:checked').val()
-					,dcPval : $('#CouponForm input[name=dcPval]').val().replaceAll(',','')
-					,dcMval : $('#CouponForm input[name=dcMval]').val().replaceAll(',','')
-					,dcAval : $('#CouponForm input[name=dcAval]').val().replaceAll(',','')
-					,maxDcAmt : $('#CouponForm input[name=maxDcAmt]').val().replaceAll(',','')
-					,pdGb : $('#CouponForm select[name=pdGb]').val()
-					,availStdt : $('#CouponForm input[name=availStdt]').val()
-					,availEddt : $('#CouponForm input[name=availEddt]').val()
-					,availDays : $('#CouponForm input[name=availDays]').val().replaceAll(',','')
-					,custPubLimitQty : $('#CouponForm input[name=custPubLimitQty]').val().replaceAll(',','')
-					,totPubLimitQty : $('#CouponForm input[name=totPubLimitQty]').val().replaceAll(',','')
-					,onePubQty : $('#CouponForm input[name=onePubQty]').val().replaceAll(',','')
-					,downStdt : $('#CouponForm input[name=downStdt]').val()
-					,downEddt : $('#CouponForm input[name=downEddt]').val()
-					,buyLimitAmt : $('#CouponForm input[name=buyLimitAmt]').val().replaceAll(',','')
-					,cpnStat : $('input:radio[name="disCpnStat"]:checked').val()
-					,endAlimYn : $('#CouponForm select[name=endAlimYn]').val()
-					,firstOrdYn : $('#CouponForm select[name=firstOrdYn]').val()
-					,downAblYn : $('#CouponForm select[name=downAblYn]').val()
-					,custJoinStdt : $('#CouponForm input[name=custJoinStdt]').val()
-					,custJoinEddt : $('#CouponForm input[name=custJoinEddt]').val()
-					,buyStdt : $('#CouponForm input[name=buyStdt]').val()
-					,buyEddt : $('#CouponForm input[name=buyEddt]').val()
-					,newCustYn : $('#CouponForm select[name=newCustYn]').val()
-					// ,afChannel : $('#CouponForm select[name=afChannel]').val()
-					,dcCdGb : $('input:radio[name="dcCdGb"]:checked').val()
-					,rdCpnNm : $('input[name="serialCpnNm"]').val()
-					,supplyCompList : gagaAgGrid.getAllRowData(supplyGridOptions)
-					,brandList : gagaAgGrid.getAllRowData(brandGridOptions)
-					,applyGoodsList : gagaAgGrid.getAllRowData(goodsGridOptions)
-					,exceptGoodsList : gagaAgGrid.getAllRowData(excepGoodsGridOptions)
-					,cateList : gagaAgGrid.getAllRowData(cateGridOptions)
-					,burdenList : gagaAgGrid.getAllRowData(inComGridOptions)
-					,usableCustGbArr : usableCustGbArr
+					cpnId 				: $('#CouponForm input[name=cpnId]').val()
+					,cpnNm 				: $('#CouponForm input[name=cpnNm]').val()
+					,cpnDesc 			: $('#CouponForm input[name=cpnDesc]').val()
+					,siteCd 			: $('#CouponForm select[name=siteCd]').val()
+					,cpnType 			: $('input:radio[name="rdoCpnType"]:checked').val()
+					,applyScope 		: $('input:radio[name="rdoApplyScope"]:checked').val()
+					,dcWay 				: $('input:radio[name="rdoDcWay"]:checked').val()
+					,dcPval 			: $('#CouponForm input[name=dcPval]').val().replaceAll(',','')
+					,dcMval 			: $('#CouponForm input[name=dcMval]').val().replaceAll(',','')
+					,dcAval 			: $('#CouponForm input[name=dcAval]').val().replaceAll(',','')
+					,maxDcAmt 			: $('#CouponForm input[name=maxDcAmt]').val().replaceAll(',','')
+					,pdGb 				: $('#CouponForm select[name=pdGb]').val()
+					,availStdt 			: $('#CouponForm input[name=availStdt]').val()
+					,availEddt 			: $('#CouponForm input[name=availEddt]').val()
+					,availDays 			: $('#CouponForm input[name=availDays]').val().replaceAll(',','')
+					,custPubLimitQty 	: $('#CouponForm input[name=custPubLimitQty]').val().replaceAll(',','')
+					,totPubLimitQty 	: $('#CouponForm input[name=totPubLimitQty]').val().replaceAll(',','')
+					,onePubQty 			: $('#CouponForm input[name=onePubQty]').val().replaceAll(',','')
+					,downStdt 			: $('#CouponForm input[name=downStdt]').val()
+					,downEddt 			: $('#CouponForm input[name=downEddt]').val()
+					,buyLimitAmt 		: $('#CouponForm input[name=buyLimitAmt]').val().replaceAll(',','')
+					,cpnStat 			: $('input:radio[name="disCpnStat"]:checked').val()
+					,endAlimYn 			: $('#CouponForm select[name=endAlimYn]').val()
+					,firstOrdYn 		: $('#CouponForm select[name=firstOrdYn]').val()
+					,downAblYn 			: $('#CouponForm select[name=downAblYn]').val()
+					,custJoinStdt 		: $('#CouponForm input[name=custJoinStdt]').val()
+					,custJoinEddt 		: $('#CouponForm input[name=custJoinEddt]').val()
+					,buyStdt 			: $('#CouponForm input[name=buyStdt]').val()
+					,buyEddt 			: $('#CouponForm input[name=buyEddt]').val()
+					,newCustYn 			: $('#CouponForm select[name=newCustYn]').val()
+					,dcCdGb 			: $('input:radio[name="dcCdGb"]:checked').val()
+					,rdCpnNm 			: $('input[name="serialCpnNm"]').val()
+					,supplyCompList 	: gagaAgGrid.getAllRowData(supplyGridOptions)
+					,brandList 			: gagaAgGrid.getAllRowData(brandGridOptions)
+					,applyGoodsList 	: gagaAgGrid.getAllRowData(goodsGridOptions)
+					,exceptGoodsList 	: gagaAgGrid.getAllRowData(excepGoodsGridOptions)
+					,cateList 			: gagaAgGrid.getAllRowData(cateGridOptions)
+					,burdenList 		: gagaAgGrid.getAllRowData(inComGridOptions)
+					,usableCustGbArr 	: usableCustGbArr
 					,usableCustGradeArr : usableCustGradeArr
-					,payTypeArr : payTypeArr
+					,payTypeArr 		: payTypeArr
 					,limitedTimeCpnList : gagaAgGrid.getAllRowData(limitedTimeCpnGridOptions)
-					,afChannelList : gagaAgGrid.getAllRowData(afLinkOptions)
-					,mode : $('#CouponForm input[name=mode]').val()
-					,scmYn : 'N'
+					,afChannelList 		: gagaAgGrid.getAllRowData(afLinkOptions)
+					,mode 				: $('#CouponForm input[name=mode]').val()
+					,scmYn 				: 'N'
 				};
 				var jsonData = JSON.stringify(data);
 				gagajf.ajaxJsonSubmit($('#CouponForm').prop('action'), jsonData, fnCouponSaveCollback);
@@ -1503,7 +1393,6 @@
 	// disabled 해제
 	function setDisabledFalse(){ //debugger;
 
-
 	}
 
 	function checkValidation(){
@@ -1521,14 +1410,6 @@
 			$('#CouponForm input:checkbox[name=usableCustGradeArr]').focus();
 			return false;
 		}
-		// 결제수단 체크박스 체크
-		/* 21-07-19 결제수단 필수조건 아니여서 주석처리
-		var payTypeCnt = $('#CouponForm input:checkbox[name=payTypeArr]').length;
-		if(payTypeCnt<1){
-			mcxDialog.alert("결제수단을 체크해주세요.");
-			$('#CouponForm input:checkbox[name=payTypeArr]').focus();
-			return false;
-		}*/
 
 		//신규가입 지급한다면 validation 체크
 		if( $('#newCustYn option:selected').val() == "Y" ){
@@ -1677,6 +1558,7 @@
 	// 할인방식 변경
 	$("#CouponForm input[name=rdoDcWay]").bind('click change', function () {
 		var radioValue = $(this).val();
+		
 		//발급이력이있으면 수정안됨
 		if(issueCnt > 0 ) {
 			return false;
@@ -1690,11 +1572,6 @@
 			$('#dcMval').val(0);
 			$('#dcAval').val(0);
 			$('#maxDcAmt').val(0);
-			// if($("#CouponForm input[name=rdoCpnType]:checked").val() == 'G230_10'){
-			// 	$("#CouponForm .maxDcAmtArea").hide();
-			// }else{
-			// 	$("#CouponForm .maxDcAmtArea").show();
-			// }
 			$("#CouponForm .maxDcAmtArea").hide();
 		} else {		//할인율
 			$('#dcPvalSpan').text("%");
@@ -1706,21 +1583,18 @@
 			$('#maxDcAmt').val(0);
 
 			if($("#CouponForm input[name=rdoCpnType]:checked").val() == 'G230_10'){
-				$("#CouponForm .maxDcAmtArea").hide();
+				$("#CouponForm .maxDcAmtArea").show();
 			}else{
 				$("#CouponForm .maxDcAmtArea").show();
 			}
 		}
 	});
 
-	// 쿠폰타입변경
+	// 쿠폰 상태 변경
 	$("#CouponForm input[name=rdoCpnType]").bind('click change', function () {
 		var radioValue = $(this).val();
-		
-		// 2021.08.13 초기화작업이 필요함
-		$('#CouponForm').find('input[name=maxDcAmt]').val("0");
 
-		if (mode == "U") {
+		if(mode == "U") {
 			radioValue = cpnDetail.cpnType;
 		}
 
@@ -1763,7 +1637,9 @@
 			$("#CouponForm input:radio[name='rdoApplyScope']:radio[value=I]").prop('checked', true);
 			$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('disabled', true);
 			$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('readonly', true);
-		}else{
+			
+			$("#CouponForm #endAlimYn").attr("disabled", true);
+		} else {
 			$("#CouponForm input:radio[name='rdoApplyScope']:radio[value=I]").prop('checked', true);
 			$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('disabled', false);
 			$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('readonly', false);
@@ -1801,6 +1677,7 @@
 			$('#CouponForm .firstBuyTr').show();
 			$('#CouponForm .dcCdCheck1').show();
 			$('#CouponForm .pdGbArea').show();
+			
 			// 다운로드 시작,종료 , 기간/일수 , 제휴채널, 고객 등급, 구매제한 , 할인율일때 구매제한한도, 1회발행수량, 다운로드 가능여부 숨기기
 			$('#CouponForm .downStdtArea').show();
 			$('#CouponForm .downEddtArea').show();
@@ -1810,13 +1687,15 @@
 			$('#CouponForm .downAblArea').show();
 			$('#CouponForm .linkAfArea').show();
 			$('#CouponForm .dcCdCheck2').show();
-
+			
 			// 즉시할인아닌 쿠폰들 할인금액체크시 최대할인금액 숨김
-			if(rdoDcWayVal == 'G240_10'){
+			if (rdoDcWayVal == 'G240_10'){
 				$('#CouponForm .maxDcAmtArea').hide();
-			}else{
+			} else {
 				$('#CouponForm .maxDcAmtArea').show();
 			}
+
+			$("#CouponForm #endAlimYn").attr("disabled", false);
 		}
 
 		// 즉시할인쿠폰만 개별, 나머진 전체/개별
@@ -1898,6 +1777,9 @@
 
 	// 브랜드 설정 / 브랜드 추가 콜백함수 (단수로 가져오므로 복수일 경우에 수정 확인 필요)
 	var fnSetPopupBrandInfo = function(result) {
+		
+		var brandCdArr = [];
+		
 		for(let i = 0 ; i < result.length ; i++) {
 			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(brandGridOptions);		// 받아온 모든 데이터
 
@@ -1909,44 +1791,50 @@
 			// 중복되지 않은 데이터 리스트에 추가
 			if(addChk) {
 				gagaAgGrid.addRowData(brandGridOptions, {"brandCd" : result[i].brandCd, "brandEnm" : result[i].brandEnm, "supplyCompNm" : result[i].supplyCompNm});
+				
+				// 2021.08.23 업체로정보로 브랜드정보 조회
+				brandCdArr.push(result[i].brandCd);
 			}
 		}
-	};
-
-	// 적용대상 - 브랜드 삭제 버튼시
-	/*$('#btnBrandDel').on('click' , function(){
-		var selectVal = brandGridOptions.api.getSelectedRows();
-
-		if(selectVal.length == 0) {
-			mcxDialog.alert("선택된 행이 없습니다");
-			return;
-		}
-
-		if(cpnDetail != null ) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					gagaAgGrid.removeRowData(brandGridOptions , false);
-					var cpnRefvalSqArr = [];
-
-					$.each(selectVal , function(idx , item){
-						cpnRefvalSqArr.push(item.cpnRefvalSq);
-					});
-					var data = { cpnRefvalSqArr : cpnRefvalSqArr
-						,cpnId : cpnDetail.cpnId
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/refval/update', jsonData);
+		
+		// 2021.08.23 업체로정보로 브랜드정보 조회
+		// 적용대상 정보 로드
+		if (brandCdArr.length > 0) {
+			
+			var jsonObj = {"brandCdArr" : brandCdArr};
+			
+			$.ajax( {
+				type		: "POST",
+				url 		: '/marketing/coupon/brandCdAndSupplyCompList',
+				data		: JSON.stringify(jsonObj),
+				dataType 	: 'json',
+				beforeSend : function(xhr, settings) {
+					xhr.setRequestHeader("AJAX"			, "true");
+					xhr.setRequestHeader('Accept'		, 'application/json');
+					xhr.setRequestHeader('Content-Type'	, 'application/json');
+				},
+				success 	: function(result) {
+					if (result != null) {
+						// 기존 리스트 데이터 for
+						for(let i = 0 ; i < result.returnList.length ; i++) {
+							let addChk = true, gridListValue = gagaAgGrid.getAllRowData(supplyGridOptions);		// 받아온 모든 데이터
+
+							// 받아온 data for
+							for (let j = 0 ; j < gridListValue.length ; j++) {
+								// 동일한 data는 추가하지 않음
+								if(gridListValue[j].supplyCompCd == result.returnList[i].supplyCompCd) {	addChk = false;	}		// 중복체크
+							}
+
+							// 중복되지 않은 데이터 리스트에 추가
+							if(addChk) {
+								gagaAgGrid.addRowData(supplyGridOptions, {"supplyCompCd" : result.returnList[i].supplyCompCd, "supplyCompNm" : result.returnList[i].supplyCompNm});
+							}
+						}
+					}
 				}
 			});
-		} else {
-			// 신규화면이면 그리드상 삭제
-			brandGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(brandGridOptions)});
 		}
-	});
-	*/
+	};
 
 	// 적용대상 - 공급처 추가 버튼시
 	$('#btnSupplyAdd').on('click' , function (){
@@ -1955,57 +1843,64 @@
 
 	// 공급업체 설정 / 업체 추가 콜백함수
 	var fnSetPopupComapnyInfo = function(result) {
+		
+		var supplyCompCdArr = [];
+		
 		// 기존 리스트 데이터 for
-		for(let i = 0 ; i < result.length ; i++) {
+		for (let i = 0 ; i < result.length ; i++) {
 			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(supplyGridOptions);		// 받아온 모든 데이터
 
 			// 받아온 data for
-			for(let j = 0 ; j < gridListValue.length ; j++) {
+			for (let j = 0 ; j < gridListValue.length ; j++) {
 				// 동일한 data는 추가하지 않음
 				if(gridListValue[j].supplyCompCd == result[i].supplyCompCd) {	addChk = false;	}		// 중복체크
 			}
 
 			// 중복되지 않은 데이터 리스트에 추가
-			if(addChk) {
+			if (addChk) {
 				gagaAgGrid.addRowData(supplyGridOptions, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm});
+				
+				// 2021.08.23 업체로정보로 브랜드정보 조회
+				supplyCompCdArr.push(result[i].supplyCompCd);
 			}
 		}
-	};
-
-	// 적용대상 - 공급처 삭제시시
-	/*$('#btnSupplyDel').on('click' , function () {
-		var selectVal = supplyGridOptions.api.getSelectedRows();
-
-		if(selectVal.length == 0) {
-			mcxDialog.alert("선택된 행이 없습니다");
-			return;
-		}
-
-		if(cpnDetail != null ) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					gagaAgGrid.removeRowData(supplyGridOptions , false);
-					var cpnRefvalSqArr = [];
-
-					$.each(selectVal , function(idx , item){
-						cpnRefvalSqArr.push(item.cpnRefvalSq);
-					});
-
-					var data = { cpnRefvalSqArr : cpnRefvalSqArr
-						,cpnId : $('#CouponForm #cpnId').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/refval/update', jsonData);
+		
+		// 2021.08.23 업체로정보로 브랜드정보 조회
+		// 적용대상 정보 로드
+		if (supplyCompCdArr.length > 0) {
+			
+			var jsonObj = {"supplyCompCdArr" : supplyCompCdArr};
+			
+			$.ajax( {
+				type		: "POST",
+				url 		: '/marketing/coupon/supplyCompCdAndBrandList',
+				data		: JSON.stringify(jsonObj),
+				dataType 	: 'json',
+				beforeSend : function(xhr, settings) {
+					xhr.setRequestHeader("AJAX"			, "true");
+					xhr.setRequestHeader('Accept'		, 'application/json');
+					xhr.setRequestHeader('Content-Type'	, 'application/json');
+				},
+				success 	: function(result) {
+					if (result != null) {
+						for (let i = 0 ; i < result.returnList.length ; i++) {
+							let addChk = true, gridListValue = gagaAgGrid.getAllRowData(brandGridOptions);		// 받아온 모든 데이터
+
+							// 받아온 data for
+							for (let j = 0 ; j < gridListValue.length ; j++) {
+								if (gridListValue[j].brandCd == result.returnList[i].brandCd) {	addChk = false;	} // 중복체크
+							}
+
+							// 중복되지 않은 데이터 리스트에 추가
+							if (addChk) {
+								gagaAgGrid.addRowData(brandGridOptions, {"brandCd" : result.returnList[i].brandCd, "brandEnm" : result.returnList[i].brandEnm});
+							}
+						}
+					}
 				}
 			});
-		} else {
-			// 신규화면이면 그리드상 삭제
-			supplyGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(supplyGridOptions)});
 		}
-	});*/
+	};
 
 	// 적용대상 - 카테고리 추가시
 	$('#btnCateAdd').on('click' , function () {
@@ -2031,41 +1926,6 @@
 		}
 	}
 
-	// 적용대상 - 카테고리 삭제시
-	/*$('#btnCateDel').on('click' , function () {
-		var selectVal = cateGridOptions.api.getSelectedRows();
-
-		if(selectVal.length == 0) {
-			mcxDialog.alert("선택된 행이 없습니다");
-			return;
-		}
-		if(cpnDetail != null) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					gagaAgGrid.removeRowData(cateGridOptions , false);
-
-					var cpnRefvalSqArr = [];
-
-					$.each(selectVal , function(idx , item){
-						cpnRefvalSqArr.push(item.cpnRefvalSq);
-					});
-
-					var data = { cpnRefvalSqArr : cpnRefvalSqArr
-						,cpnId : $('#CouponForm #cpnId').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/refval/update', jsonData);
-				}
-			});
-		} else {
-			cateGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(cateGridOptions)});
-		}
-	});
-	*/
-
 	// 적용대상 - 상품 추가시
 	$('#btnGoodsAdd').on('click' , function () {
 		cfnOpenGoodsPopup("fnSetPopupApplyGoodsInfo");
@@ -2076,39 +1936,6 @@
 		gridAddGoodsList(goodsGridOptions, result , "apply");
 	};
 
-	// 적용대상 - 상품 삭제 시
-	/*$('#btnGoodsDel').on('click' , function () {
-		var selectVal = goodsGridOptions.api.getSelectedRows();
-
-		if(selectVal.length == 0) {
-			mcxDialog.alert("선택된 행이 없습니다");
-			return;
-		}
-		if(cpnDetail != null ) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					gagaAgGrid.removeRowData(goodsGridOptions , false);
-					var cpnRefvalSqArr = [];
-
-					$.each(selectVal , function(idx , item){
-						cpnRefvalSqArr.push(item.cpnRefvalSq);
-					});
-					var data = { cpnRefvalSqArr : cpnRefvalSqArr
-						,cpnId : $('#CouponForm #cpnId').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/refval/update', jsonData);
-				}
-			});
-		} else {
-			goodsGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(goodsGridOptions)});
-		}
-	});
-	 */
-
 	// 적용대상 - 제외상품 추가시
 	$('#btnExcepGoodsAdd').on('click' , function(){
 		cfnOpenGoodsPopup("fnSetPopupExceptGoodsInfo");
@@ -2118,42 +1945,6 @@
 		gridAddGoodsList(excepGoodsGridOptions, result , "except");
 	};
 
-	// 적용대상 - 제외상품 삭제시
-	/*$('#btnExcepGoodsDel').on('click' , function () {
-		var selectVal = excepGoodsGridOptions.api.getSelectedRows();
-
-		if(selectVal.length == 0) {
-			mcxDialog.alert("선택된 행이 없습니다");
-			return;
-		}
-
-		if(cpnDetail != null ) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					gagaAgGrid.removeRowData(excepGoodsGridOptions , false);
-					var cpnRefvalSqArr = [];
-
-					$.each(selectVal , function(idx , item){
-						cpnRefvalSqArr.push(item.cpnRefvalSq);
-					});
-
-					var data = { cpnRefvalSqArr : cpnRefvalSqArr
-						,cpnId : $('#CouponForm #cpnId').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-
-					gagajf.ajaxJsonSubmit('/marketing/coupon/refval/update', jsonData);
-				}
-			});
-		} else {
-			excepGoodsGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(excepGoodsGridOptions)});
-		}
-	});
-	*/
-
 	// ag-grid 상품관련 list 콜백함수
 	function gridAddGoodsList(OriginGridListOption, result, gubun) {
 		var goodsGbVal = "G800_10";
@@ -2274,30 +2065,6 @@
 		var data = { supplyCompCd: null , burdenRate : null , delYn : 'N'};
 		gagaAgGrid.addRowData(inComGridOptions , data , "supplyCompCd" );
 	});
-	// 행삭제시
-	/*$('#btnDelRow').on('click' , function(){
-		inComGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(inComGridOptions)});
-	});*/
-
-	// 제휴링크채널 수정 (제휴링크가 꼭필요한지 확인필요)
-	// function fnChangeAfLinkCdList(){
-	// 	var actionUrl = "/business/aflink/list" + '?' + $('#afChannel').serialize();
-	// 	var tag = "";
-	//
-	// 	$("#CouponForm #afLinkCd").children('option').remove();
-	//
-	// 	gagajf.ajaxJsonSubmit(actionUrl, '', function(data) {
-	// 		for (let i = 0; i < data.length; i++) {
-	// 			if (data[i].useYn == 'Y') {
-	// 				tag += '<option value="' + data[i].afLinkCd + '">[' + data[i].afLinkCd + '] ' + data[i].afLinkNm + '</option>';
-	// 			}
-	// 		}
-	//
-	// 		$("#CouponForm #afLinkCd").append(tag);
-	// 		$("#CouponForm #afLinkCd option:first").attr("selected" , "selected");
-	//
-	// 	});
-	// }
 
 	// 발급받은회원 팝업
 	var fnPubCustListPopUp = function (){
@@ -2396,34 +2163,16 @@
 		}
 
 		// 적용대상 - 공급처 그리드 전체값 세팅
-		/*var supplyAllData = gagaAgGrid.getAllRowData(supplyGridOptions);
-		var jsonSupplyCompData = JSON.stringify(supplyAllData);
-		$('#CouponForm #supplyCompList').val(jsonSupplyCompData);*/
 		$('#CouponForm #supplyCompList').val(gagaAgGrid.getAllRowData(supplyGridOptions));
 		// 적용대상 - 브랜드 그리드 전체값 세팅
-		/*var brandAllData = gagaAgGrid.getAllRowData(brandGridOptions);
-		var jsonBrandData = JSON.stringify(brandAllData);
-		$('#CouponForm #brandList').val(jsonBrandData);*/
 		$('#CouponForm #brandList').val(gagaAgGrid.getAllRowData(brandGridOptions));
 		// // 적용대상 - 카테고리 그리드 전체값 세팅
-		/*var cateAllData = gagaAgGrid.getAllRowData(cateGridOptions);
-		var jsonCateData = JSON.stringify(cateAllData);
-		$('#CouponForm #cateList').val(jsonCateData);*/
 		$('#CouponForm #cateList').val(gagaAgGrid.getAllRowData(cateGridOptions));
 		// 적용대상 - 적용상품 그리드 전체값 세팅
-		/*var goodsAllData = gagaAgGrid.getAllRowData(goodsGridOptions);
-		var jsonGoodsData = JSON.stringify(goodsAllData);
-		$('#CouponForm #applyGoodsList').val(jsonGoodsData);*/
 		$('#CouponForm #applyGoodsList').val(gagaAgGrid.getAllRowData(goodsGridOptions));
 		// 적용대상 - 제외상품 그리드 전체값 세팅
-		/*var exceptGoodsAllData = gagaAgGrid.getAllRowData(excepGoodsGridOptions);
-		var jsonExceptGoodsData = JSON.stringify(exceptGoodsAllData);
-		$('#CouponForm #excepGoodsList').val(jsonExceptGoodsData);*/
 		$('#CouponForm #excepGoodsList').val(gagaAgGrid.getAllRowData(excepGoodsGridOptions));
 		// 입점업체분담율 그리드 전체값 세팅
-		/*var inCompBurdenAllData = gagaAgGrid.getAllRowData(inComGridOptions);
-		var jsonInCompBurdenData = JSON.stringify(inCompBurdenAllData);
-		$('#CouponForm #burdenList').val(jsonInCompBurdenData);*/
 		$('#CouponForm #burdenList').val(gagaAgGrid.getAllRowData(inComGridOptions));
 
 	}
@@ -2465,6 +2214,7 @@
 			$("#CouponForm .randomCpnArea").hide();
 			$("#CouponForm .maxDcAmtArea").hide();
 			$("input:radio[name='disCpnStat']:radio[value='G232_10']").prop('checked', true); // 선택하기
+			
 			if($('input:radio[name="rdoCpnType"]:checked').val() == 'G230_10'){
 				$('#CouponForm .custJoinTr').hide();
 				$('#CouponForm .custJoinDateTr').hide();
@@ -2486,6 +2236,8 @@
 				$("#CouponForm input:radio[name='rdoApplyScope']:radio[value=I]").prop('checked', true);
 				$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('disabled', true);
 				$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('readonly', true);
+				
+				$("#CouponForm #endAlimYn").attr("disabled", true);
 			}
 			$("#btnCouponSave").show();	// 저장버튼
 			$("#CouponForm .buttonSpan").show();
@@ -2893,6 +2645,7 @@
 			// 다운로드기간 세팅
 			splitDate("start", cpnDetail.downStdt, "down");
 			splitDate("end", cpnDetail.downEddt, "down");
+			
 			// 유효기간이 날짜인경우 날짜 세팅
 			if (cpnDetail.pdGb == "P") {
 				splitDate("start", cpnDetail.availStdt, "avail");
@@ -3064,17 +2817,20 @@
 	// 날짜분리 ( 시작/종료날짜구분(start , end) , 날짜String , 적용타겟대상 )
 	function splitDate(stedGb , date , targetGb ){
 		var str = date;
-		var dateStr = str.split(' ');
-		var timeArr = dateStr[1].split(':');
-
-		if(stedGb == "start") {
-			$("#CouponForm #"+targetGb+"StDay").val(dateStr[0]);
-			$("#CouponForm #"+targetGb+"StHH").val(timeArr[0]);
-			$("#CouponForm #"+targetGb+"StMM").val(timeArr[1]);
-		} else {
-			$("#CouponForm #"+targetGb+"EdDay").val(dateStr[0]);
-			$("#CouponForm #"+targetGb+"EdHH").val(timeArr[0]);
-			$("#CouponForm #"+targetGb+"EdMM").val(timeArr[1]);
+		
+		if (str != null && str != '') {
+			var dateStr = str.split(' ');
+			var timeArr = dateStr[1].split(':');
+	
+			if(stedGb == "start") {
+				$("#CouponForm #"+targetGb+"StDay").val(dateStr[0]);
+				$("#CouponForm #"+targetGb+"StHH").val(timeArr[0]);
+				$("#CouponForm #"+targetGb+"StMM").val(timeArr[1]);
+			} else {
+				$("#CouponForm #"+targetGb+"EdDay").val(dateStr[0]);
+				$("#CouponForm #"+targetGb+"EdHH").val(timeArr[0]);
+				$("#CouponForm #"+targetGb+"EdMM").val(timeArr[1]);
+			}
 		}
 	}
 	// 제한없음 문구 변경

+ 0 - 3246
src/main/webapp/WEB-INF/views/marketing/CouponPopupForm_20210816.html

@@ -1,3246 +0,0 @@
-<!DOCTYPE html>
-<html lang="ko"
-	  xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : CouponPopupForm.html
- * @desc    : 쿠폰 등록 팝업 화면
- *============================================================================
- * ISTYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2020.12.23   xyzp1539       최초 작성
- *******************************************************************************
- -->
-<div class="modalPopup" data-width="1500">
-	<div class="panelStyle" style="height: 750px;">
-		<div class="panelTitle">
-			<h2 th:text="${'쿠폰 ' + (mode == 'N' ? '등록' : '수정')}">쿠폰등록</h2>
-			<button type="button" class="close" onclick="uifnPopupClose('CouponRegForm')"><i class="fa fa-times"></i></button>
-		</div>
-		<div class="panelContent">
-			<form id="CouponForm" name="CouponForm" action="#" th:action="@{'/marketing/coupon/save'}" >
-				<input type="hidden" name="supplyCompList" 		id="supplyCompList">
-				<input type="hidden" name="brandList" 			id="brandList">
-				<input type="hidden" name="applyGoodsList" 		id="applyGoodsList">
-				<input type="hidden" name="exceptGoodsList" 	id="excepGoodsList">
-				<input type="hidden" name="burdenList" 			id="burdenList">
-				<input type="hidden" name="cateList" 			id="cateList">
-				<input type="hidden" name="rdCpnNm" 			id="rdCpnNm">
-				<input type="hidden" name="cpnId" 				id="cpnId" th:if="${cpnDetail}" th:value="${cpnDetail.cpnId}">
-				<input type="hidden" name="mode" th:value="${mode}"/>
-
-				<div class="tabs">
-					<div class="tabsNav">
-						<ul>
-							<li class="on"><a href="#coupontab1">기본정보</a></li>
-							<li><a href="#coupontab2">적용대상</a></li>
-							<li><a href="#coupontab3">입점업체분담율</a></li>
-							<li class="randomCpnTab" style="display:none;"><a href="#coupontab4">시리얼및난수</a></li>
-							<li class="limitedTimeCpnTab" style="display:none;"><a href="#coupontab5">선착순쿠폰</a></li>	<!--style="display:none;"-->
-						</ul>
-					</div>
-					<ul class="tabsCont">
-						<li class="tab on" id="coupontab1">
-							<div class="panelStyle">
-								<table class="frmStyle">
-									<colgroup>
-										<col style="width:10%">
-										<col style="width:45%;">
-										<col style="width:10%">
-										<col style="width:35%;">
-									</colgroup>
-									<tbody>
-										<tr th:if="${cpnDetail}">
-											<th>쿠폰번호</th>
-											<td colspan="5">
-												<span th:if="${cpnDetail}" th:text="${cpnDetail.cpnId}"></span>
-											</td>
-										</tr>
-										<tr>
-											<th>쿠폰명<em class="required" title="필수"></em></th>
-											<td>
-												<input type="text" name="cpnNm" id="cpnNm" required="required" data-valid-name="쿠폰명">
-											</td>
-											<th>사이트<em class="required" title="필수"></em></th>
-											<td>
-												<select name="siteCd" id="siteCd" required="required" data-valid-name="사이트">
-													<option th:if="${siteCdList}" th:each="oneData , status : ${siteCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-												</select>
-											</td>
-										</tr>
-										<tr>
-											<th>쿠폰설명</th>
-											<td>
-												<input type="text" name="cpnDesc" id="cpnDesc" data-valid-name="쿠폰설명">
-											</td>
-											<th>만료알림여부<em class="required" title="필수"></em></th>
-											<td>
-												<select name="endAlimYn" id="endAlimYn" required="required" data-valid-name="만료알림여부">
-													<option value="Y">Y</option>
-													<option value="N" selected="selected">N</option>
-												</select>
-											</td>
-										</tr>
-										<tr>
-											<th>쿠폰유형<em class="required" title="필수"></em></th>
-											<td>
-												<input type="hidden" id="cpnType" name="cpnType" required="required"  data-valid-name="쿠폰유형">
-												<label class="rdoBtn" th:if="${cpnTypeList}" th:each="oneData, status : ${cpnTypeList}"> <input type="radio" name="rdoCpnType"  th:text="${oneData.cdNm}" th:value="${oneData.cd}"/></label>
-											</td>
-											<th class="limitedTimeCpnArea" style="display: none;">선착순쿠폰</th>
-											<td class="limitedTimeCpnArea" style="display: none;">
-												<label class="chkBox limitedTimeCpnBox" id="limitedTimeCpnBox"><input type="checkbox" name="limitedTimeCpnYn" id="limitedTimeCpnYn" value="N"/>선착순쿠폰</label>
-											</td>
-										</tr>
-										<tr class="dcCdGb" style="display:none;">
-											<th>할인쿠폰유형<em class="required" title="필수"></em></th>
-											<td class="normalCol">
-												<input type="hidden" id="dcCd" data-valid-name="할인쿠폰유형">
-												<label class="rdoBtn" th:if="${dcCdList}" th:each="oneData, status : ${dcCdList}"> <input type="radio" name="dcCdGb"  th:text="${oneData.cdNm}" th:value="${oneData.cd}"/></label>
-											</td>
-											<th class="randomCpnArea">난수생성수량<em class="required" title="필수"></em></th>
-											<td class="randomCpnArea">
-												<input type="text" name="randomCpnQty" class="w300" data-valid-name="난수생성수량" data-valid-type="numeric">
-											</td>
-										</tr>
-										<tr class="serialCpnArea" style="display:none;">
-											<th>시리얼쿠폰키워드<em class="required" title="필수"></em></th>
-											<td>
-												<input type="text" name="serialCpnNm" id="serialCpnNm" class="w300" maxlength="10" data-valid-name="시리얼쿠폰키워드">
-											</td>
-											<th>시리얼쿠폰발급수량<em class="required" title="필수"></em></th>
-											<td>
-												<input type="text" name="serialCpnQty" class="w300" data-valid-name="시리얼쿠폰발급수량" data-valid-type="numeric">
-											</td>
-										</tr>
-										<tr>
-											<th class="usableCustGbArea">사용가능고객구분<em class="required" title="필수"></em></th>
-											<td class="usableCustGbArea">
-												<label class="chkBox" th:if="${usableCustGbList}" th:each="oneData, status : ${usableCustGbList}">
-													<input type="checkbox" name="usableCustGbArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}" checked="checked"/>
-												</label>
-											</td>
-											<th class="usableCustGradeArea">사용고객등급구분<em class="required" title="필수"></em></th>
-											<td class="usableCustGradeArea">
-												<label class="chkBox" th:if="${usableCustGradeList}" th:each="oneData, status : ${usableCustGradeList}">
-													<input type="checkbox" name="usableCustGradeArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}" checked="checked"/>
-												</label>
-											</td>
-										</tr>
-										<tr>
-											<th>할인방식<em class="required" title="필수"></em></th>
-											<td>
-												<input type="hidden" name="dcWay" id="dcWay" required="required" data-valid-name="할인방식">
-												<label class="rdoBtn" th:if="${dcWayList}" th:each="oneData, status : ${dcWayList}"> <input type="radio" name="rdoDcWay"  th:text="${oneData.cdNm}" th:value="${oneData.cd}"/></label>
-											</td>
-											<th>할인값(PC)<em class="required" title="필수"></em></th>
-											<td>
-												<input type="text" class="w200" id="dcPval" name="dcPval" value="0" required="required" data-valid-name="할인값(PC)" data-valid-type="numeric" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);"><span id="dcPvalSpan">원</span>
-												<button type="button" class="btn btn-default btn-lg" id="applySameValueBtn">동일적용</button>
-											</td>
-										</tr>
-										<tr>
-											<th>할인값(모바일웹)<em class="required" title="필수"></em></th>
-											<td>
-												<input type="text" class="w200" id="dcMval" name="dcMval" value="0" required="required" data-valid-name="할인값(모바일웹)" data-valid-type="numeric" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);"><span id="dcMvalSpan">원</span>
-											</td>
-											<th>할인값(모바일앱)<em class="required" title="필수"></em></th>
-											<td>
-												<input type="text" class="w200" id="dcAval" name="dcAval" value="0" required="required" data-valid-name="할인값(모바일앱)" data-valid-type="numeric" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);"><span id="dcAvalSpan">원</span>
-											</td>
-										</tr>
-										<tr>
-											<th class="buyLimitAmtArea">구매제한금액<em class="required" title="필수"></em></th>
-											<td class="buyLimitAmtArea">
-												<input type="text" id="buyLimitAmt" name="buyLimitAmt" class="w200" required="required" value="0" style="text-align: right;" data-valid-name="구매제한금액" data-valid-type="numeric">원
-											</td>
-											<th class="maxDcAmtArea">최대할인금액<em class="required" title="필수"></em></th>
-											<td class="maxDcAmtArea">
-												<input type="text" class="w200" id="maxDcAmt" name="maxDcAmt" value="0" required="required" data-valid-name="최대할인금액" data-valid-type="numeric" style="text-align: right;"><span id="maxDcAmtSpan">원</span>
-											</td>
-										</tr>
-										<tr>
-											<th class="downStdtArea">다운로드시작일시<em class="required" title="필수"></em></th>
-											<td class="downStdtArea">
-												<input type="hidden" name="downStdt" id="downStdt" required="required" data-valid-name="다운로드시작일시">
-												<input type="text" class="schDate w100" name="downStDay" id="downStDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
-												<select name="downStHH" id="downStHH">
-													<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-												<select name="downStMM" id="downStMM">
-													<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-											<th class="downEddtArea">다운로드종료일시<em class="required" title="필수"></em></th>
-											<td class="downEddtArea">
-												<input type="hidden" id="downEddt" name="downEddt" required="required" data-valid-name="다운로드종료일시">
-												<input type="text" class="schDate w100" name="downEdDay" id="downEdDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
-												<select name="downEdHH" id="downEdHH" onclick="fnChangeEdHH(this);">
-													<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-													<option th:text="24시" th:value="24"></option>
-												</select>
-												<select name="downEdMM" id="downEdMM">
-													<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-											</td>
-										</tr>
-										<tr>
-											<th class="pdGbArea">기간/일수구분<em class="required" title="필수"></em></th>
-											<td class="pdGbArea">
-												<select name="pdGb" id="pdGb" onchange="pdGbChange(this)" required="required" data-valid-name="기간/일수구분">
-													<option value="P">기간</option>
-													<option value="D">일수</option>
-												</select>
-											</td>
-											<th class="availDaysArea">유효기간일수<em class="required" title="필수"></em></th>
-											<td class="availDaysArea">
-												<input type="text" name="availDays" id="availDays" class="w200" data-valid-type="numeric" data-valid-name="유효기간일수">
-											</td>
-										</tr>
-<!--										<tr class="availDayTr" style="display: none;">-->
-<!--											<th>유효기간일수<em class="required" title="필수"></em></th>-->
-<!--											<td>-->
-<!--												<input type="text" name="availDays" id="availDays" class="w200" data-valid-name="유효기간일수">-->
-<!--											</td>-->
-<!--										</tr>-->
-										<tr>
-											<th class="availDateTr">유효기간시작일시<em class="required" title="필수"></em></th>
-											<td class="availDateTr">
-												<input type="hidden" name="availStdt" id="availStdt" data-valid-name="유효기간시작일시">
-												<input type="text" class="schDate w100" name="availStDay" id="availStDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
-												<select name="availStHH" id="availStHH">
-													<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-												<select name="availStMM" id="availStMM">
-													<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-											<th class="availDateTr">유효기간종료일시<em class="required" title="필수"></em></th>
-											<td class="availDateTr">
-												<input type="hidden" id="availEddt" name="availEddt" data-valid-name="유효기간종료일시">
-												<input type="text" class="schDate w100" name="availEdDay" id="availEdDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
-												<select name="availEdHH" id="availEdHH" onclick="fnChangeEdHH(this);">
-													<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-													<option th:text="24시" th:value="24"></option>
-												</select>
-												<select name="availEdMM" id="availEdMM">
-													<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-											</td>
-										</tr>
-										<tr class="firstBuyTr">
-											<th>첫구매여부<em class="required" title="필수"></em></th>
-											<td>
-												<select name="firstOrdYn" id="firstOrdYn" onchange="firstOrdYnChange(this)" required="required" data-valid-name="첫구매여부">
-													<option value="Y">Y</option>
-													<option value="N" selected="selected">N</option>
-												</select>
-											</td>
-										</tr>
-										<tr>
-											<th class="buyDateTr">첫구매기간시작일시<em class="required" title="필수"></em></th>
-											<td class="buyDateTr">
-												<input type="hidden" name="buyStdt" id="buyStdt" data-valid-name="첫구매기간시작일시">
-												<input type="text" class="schDate w100" name="buyStDay" id="buyStDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
-												<select name="buyStHH" id="buyStHH">
-													<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-												<select name="buyStMM" id="buyStMM">
-													<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-											<th class="buyDateTr">첫구매기간종료일시<em class="required" title="필수"></em></th>
-											<td class="buyDateTr">
-												<input type="hidden" id="buyEddt" name="buyEddt" data-valid-name="첫구매기간종료일시">
-												<input type="text" class="schDate w100" name="buyEdDay" id="buyEdDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
-												<select name="buyEdHH" id="buyEdHH" onclick="fnChangeEdHH(this);">
-													<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-													<option th:text="24시" th:value="24"></option>
-												</select>
-												<select name="buyEdMM" id="buyEdMM">
-													<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-											</td>
-										</tr>
-										<tr class="custJoinTr">
-											<th>신규회원여부<em class="required" title="필수"></em></th>
-											<td>
-												<select name="newCustYn" id="newCustYn" onchange="newCustYnChange(this)" required="required" data-valid-name="신규회원여부">
-													<option value="Y">Y</option>
-													<option value="N" selected="selected">N</option>
-												</select>
-											</td>
-										</tr>
-										<tr>
-											<th class="custJoinDateTr">신규회원기간시작일시<em class="required" title="필수"></em></th>
-											<td class="custJoinDateTr">
-												<input type="hidden" name="custJoinStdt" id="custJoinStdt" data-valid-name="신규회원기간시작일시">
-												<input type="text" class="schDate w100" name="custJoinStDay" id="custJoinStDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
-												<select name="custJoinStHH" id="custJoinStHH">
-													<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-												<select name="custJoinStMM" id="custJoinStMM">
-													<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-											<th class="custJoinDateTr">신규회원기간종료일시<em class="required" title="필수"></em></th>
-											<td class="custJoinDateTr">
-												<input type="hidden" id="custJoinEddt" name="custJoinEddt" data-valid-name="신규회원기간종료일시">
-												<input type="text" class="schDate w100" name="custJoinEdDay" id="custJoinEdDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
-												<select name="custJoinEdHH" id="custJoinEdHH" onclick="fnChangeEdHH(this);">
-													<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-													<option th:text="24시" th:value="24"></option>
-												</select>
-												<select name="custJoinEdMM" id="custJoinEdMM">
-													<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
-												</select>
-											</td>
-										</tr>
-										<tr class="dcCdCheck1">
-											<th>총발행제한수량<em class="required" title="필수"></em></th>
-											<td>
-												<input type="text" class="w200" name="totPubLimitQty" id="totPubLimitQty" value="0" required="required" data-valid-name="총발행제한수량" data-valid-type="numeric" style="text-align: right;">개
-												<label class="chkBox" id="chkBoxTotPubQty"><input type="checkbox" id="chkNoLimitTotPubLimitQty"/>제한없음</label>
-											</td>
-											<th>1인당발행제한수량<em class="required" title="필수"></em></th>
-											<td>
-												<input type="text" class="w200" name="custPubLimitQty" id="custPubLimitQty" value="1" required="required" data-valid-name="1인당발행제한수량" data-valid-type="numeric" style="text-align: right;">개
-												<label class="chkBox" id="chkBoxCustPubQty"><input type="checkbox" id="chkNoLimitCustPubLimitQty"/>제한없음</label>
-											</td>
-										</tr>
-										<tr>
-											<th class="dcCdCheck2">1회발행수량<em class="required" title="필수"></em></th>
-											<td class="dcCdCheck2">
-												<input type="text" class="w200" name="onePubQty" id="onePubQty" value="1" required="required" data-valid-name="1회발행수량" data-valid-type="numeric" style="text-align: right;">개
-											</td>
-											<th class="downAblArea">다운로드가능여부<em class="required" title="필수"></em></th>
-											<td class="downAblArea">
-												<select name="downAblYn" id="downAblYn" required="required" data-valid-name="다운로드가능여부">
-													<option value="Y">Y</option>
-													<option value="N" selected="selected">N</option>
-												</select>
-												<em style="color:red"> *상품상세 페이지내</em>
-											</td>
-										</tr>
-										<!--<tr>
-											<th>재발급여부<em class="required" title="필수"></em></th>
-											<td>
-												<select name="reissuance" id="reissuance" required="required" data-valid-name="재발급여부" >
-													<option th:if="${reissuanceList}" th:each="oneData , status : ${reissuanceList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-												</select>
-											</td>
-											<th>다운로드구분<em class="required" title="필수"></em></th>
-											<td>
-												<select name="dnGb" id="dnGb" required="required" data-valid-name="다운로드구분">
-													<option th:if="${dnGbList}" th:each="oneData , status:${dnGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-												</select>
-											</td>
-										</tr>-->
-										<tr class="payTypeTr" style="display: none;">
-											<th>결제수단</th>
-											<td colspan="5">
-												<label class="chkBox" th:if="${payTypeList}" th:each="oneData, status : ${payTypeList}">
-													<input type="checkbox" name="payTypeArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}" checked="checked"/>
-												</label>
-											</td>
-										</tr>
-										<tr>
-											<th class="linkAfArea">제휴채널</th>
-											<td colspan="1" class="linkAfArea">
-												<!-- 수정시 프로모션명 입력 : before -->
-												<div class="padding10"	style="display: inline-block; width: 100%;">
-													<!--<span>공급업체 설정</span>-->
-													<div class="padding10 inner-tb-solid">
-														<span class="buttonSpan">
-															<button type="button" class="btn btnRight btn-success btn-lg" id="btnAddAf">제휴채널 추가</button>
-															<button type="button" class="btn btnRight btn-success btn-lg"id="btnDeleteAf">선택삭제</button>
-														</span> <br />
-														<div id="afChannelList" style="width: 100%; height: 200px;" class="ag-theme-balham"></div>
-													</div>
-												</div>
-											</td>
-										</tr>
-										<tr>
-											<th>쿠폰상태<em class="required" title="필수"></em></th>
-											<td>
-												<label class="rdoBtn" th:if="${cpnStatList}" th:each="oneData, status : ${cpnStatList}" >
-													<input type="radio" id="disCpnStat" name="disCpnStat" th:value="${oneData.cd}" th:text="${oneData.cdNm}" data-valid-name="상태" disabled="disabled"/>
-												</label>
-												<input type="hidden" id="cpnStat" name="cpnStat"/>
-											</td>
-											<!--<th>제휴링크코드<em class="required" title="필수"></em></th>
-											<td>
-												<select name="afChannel" id="afChannel" onchange="fnChangeAfLinkCdList()" data-valid-name="제휴링크코드" required="required">
-													<option th:if="${upperAfLinkCdList}" th:each="oneData , status : ${upperAfLinkCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-												</select>
-												<select name="afLinkCd" id="afLinkCd">
-												</select>
-											</td>-->
-										</tr>
-									</tbody>
-								</table>
-								<!--<div class="mdPopBtnB aR">
-									<button type="button" class="btn btn-info btn-lg" onclick="fnPubCustListPopUp();" th:if="${mode == 'U'}">발급받은회원</button>
-									<button type="button" class="btn btn-info btn-lg" onclick="fnCustomerIssuePopUp();" th:if="${mode == 'U' && cpnDetail.dcCdGb == 'G233_00'}">쿠폰발행</button>
-									<button type="button" class="btn btn-info btn-lg" onclick="fnCouponCreate();" th:if="${mode == 'N'}">등록</button>
-									<button type="button" class="btn btn-info btn-lg" onclick="fnCouponUpdate();" th:if="${mode == 'U'}">수정</button>
-								</div>-->
-							</div>
-						</li>
-						<!-- 쿠폰적용대상-->
-						<li class="tab" id="coupontab2" >
-							<div class="panelStyle">
-								<div class="inner-panelContent">
-									<div class="panelContent">
-										<div class="panelBar">
-											<h4>적용 대상 상품 등록</h4>
-										</div>
-										<table class="frmStyle">
-											<colgroup>
-												<col style="width:15%;">
-												<col style="width:85%;">
-											</colgroup>
-											<tbody>
-												<tr>
-													<th>적용범위<em class="required" title="필수"></em></th>
-													<td>
-														<input type="hidden" name="applyScope" id="applyScope" required="required" data-valid-name="적용범위">
-														<label class="rdoBtn"> <input type="radio" name="rdoApplyScope" value="A"/>전체</label>
-														<label class="rdoBtn"> <input type="radio" name="rdoApplyScope" value="I"/>개별</label>
-													</td>
-												</tr>
-												<tr class="supplyTrArea">
-													<th>공급처</th>
-													<td>
-														<div class="padding10 inner-tb-solid">
-															<button type="button" class="btn btnRight btn-success btn-lg" id="btnSupplyAdd">공급처 추가</button>
-															<button type="button" class="btn btnRight btn-success btn-lg" id="btnSupplyDel">선택삭제</button>
-															<br/>
-															<div id="supplyGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
-														</div>
-													</td>
-												</tr>
-												<tr class="brandTrArea">
-													<th>브랜드</th>
-													<td>
-														<div class="padding10 inner-tb-solid">
-															<button type="button" class="btn btnRight btn-success btn-lg" id="btnBrandAdd">브랜드 추가</button>
-															<button type="button" class="btn btnRight btn-success btn-lg" id="btnBrandDel">선택삭제</button>
-															<br/>
-															<div id="brandGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
-														</div>
-													</td>
-												</tr>
-												<tr class="categoryTrArea">
-													<th>카테고리</th>
-													<td>
-														<div class="padding10 inner-tb-solid">
-															<button type="button" class="btn btnRight btn-success btn-lg" id="btnCateAdd">카테고리 추가</button>
-															<button type="button" class="btn btnRight btn-success btn-lg" id="btnCateDel">선택삭제</button>
-															<br/>
-															<div id="cateGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
-														</div>
-													</td>
-												</tr>
-												<tr class="goodsTrArea">
-													<th>적용상품</th>
-													<td>
-														<div class="padding10 inner-tb-solid">
-															<button type="button" class="btn btnRight btn-success btn-lg" id="btnGoodsAdd">상품 추가</button>
-															<button type="button" class="btn btnRight btn-success btn-lg" id="btnGoodsDel">선택삭제</button>
-															<br/>
-															<div id="goodsGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
-														</div>
-													</td>
-												</tr>
-											</tbody>
-										</table>
-									</div>
-								</div>
-								<div class="inner-panelContent exceptArea">
-									<div class="panelContent">
-										<div class="panelBar">
-											<h4>적용 대상 상품 등록</h4>
-										</div>
-										<table class="frmStyle">
-											<colgroup>
-												<col style="width:15%;">
-												<col style="width:85%;">
-											</colgroup>
-											<tbody>
-											<tr>
-												<th>제외상품</th>
-												<td>
-													<div class="padding10 inner-tb-solid">
-														<button type="button" class="btn btnRight btn-success btn-lg" id="btnExcepGoodsAdd">제외상품 추가</button>
-														<button type="button" class="btn btnRight btn-success btn-lg" id="btnExcepGoodsDel">선택삭제</button>
-														<br/>
-														<div id="excepGoodsGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
-													</div>
-												</td>
-											</tr>
-											</tbody>
-										</table>
-									</div>
-								</div>
-							</div>
-						</li>
-						<!-- 쿠폰적용대상끝-->
-						<!-- 입점업체분담율-->
-						<li class="tab" id="coupontab3">
-							<div class="panelStyle">
-								<div class="inner-panelContent">
-									<div class="panelContent">
-										<div class="panelBar">
-											<h4>업체 분담율</h4>
-										</div>
-										<table class="frmStyle">
-											<colgroup>
-												<col style="width:15%;">
-												<col style="width:85%;">
-											</colgroup>
-											<tbody>
-											<tr>
-												<th>업체 분담율</th>
-												<td>
-													<div class="padding10 inner-tb-solid">
-														<button type="button" class="btn btnRight btn-success btn-lg" id="btnAddApplyBurden">업체추가</button>
-														<button type="button" class="btn btnRight btn-success btn-lg" id="btnDelApplyBurden">선택삭제</button>
-														<br/>
-														<div id="inComGridList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
-													</div>
-												</td>
-											</tr>
-											</tbody>
-										</table>
-									</div>
-								</div>
-							</div>
-						</li>
-						<!-- 입점업체분담끝-->
-						<!-- 난수 및 네임쿠폰 설정 -->
-						<li class="tab" id="coupontab4">
-							<div class="panelStyle">
-								<span>
-									<div id="randomCpnList" style="width: 100%; height: 500px" class="ag-theme-balham"></div>
-								</span>
-							</div>
-						</li>
-						<!-- 난수 및 네임쿠폰 설정-->
-						<!-- 선착순 쿠폰 설정 START -->
-						<li class="tab" id="coupontab5">
-							<div class="panelStyle">
-								<span class="limitedTimeCpnSpan">
-									<button type="button" class="btn btnRight btn-success btn-lg" id="btnAddLimitedTimeCpnRow">행추가</button>
-									<button type="button" class="btn btnRight btn-success btn-lg" id="btnDelLimitedTimeCpnRow">행삭제</button>
-								</span>
-								<br/>
-								<div id="limitedTimeCpnList" style="width: 100%; height: 500px" class="ag-theme-balham"></div>
-							</div>
-						</li>
-						<!-- 선착순 쿠폰 설정 END -->
-					</ul>
-				</div>
-				<div class="mdPopBtnB aR">
-					<button type="button" class="btn btn-info btn-lg" onclick="fnPubCustListPopUp();" th:if="${mode == 'U'}">발급받은회원</button>
-					<button type="button" class="btn btn-info btn-lg" onclick="fnCustomerIssuePopUp();" th:if="${mode == 'U' and cpnDetail.dcCdGb == 'G233_00' and cpnDetail.cpnStat=='G232_11'}">쿠폰발행</button>  <!-- 난수유형과 시리얼 유형에서는 쿠폰발행기능 X -->
-					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnCouponSave" onclick="fnCouponCreate();" th:text="${mode == 'N' ? '등록' : '수정'}"></button>
-					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnChangeStatIng" style="display: none;">진행</button>
-					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnCouponDelete" style="display: none;">삭제</button>
-					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnCouponStop" style="display: none;">중지</button>
-					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnCouponEnd" style="display: none;">종료</button>
-				</div>
-
-			</form>
-		</div>
-	</div>
-</div>
-<script th:inline="javascript">
-	/*<![CDATA[*/
-	// 상세조회 리스트
-	var mode 							= [[${mode}]];
-	var cpnDetail 						= [[${cpnDetail}]];
-	var cpnDtlRefvalSupplyCompList 		= [[${cpnDtlRefvalSupplyCompList}]];
-	var cpnDtlRefvalApplyGoodsList 		= [[${cpnDtlRefvalApplyGoodsList}]];
-	var cpnDtlRefvalCateList 			= [[${cpnDtlRefvalCateList}]];
-	var cpnDtlRefvalBrandList 			= [[${cpnDtlRefvalBrandList}]];
-	var cpnDtlRefvalExceptGoodsList 	= [[${cpnDtlRefvalExceptGoodsList}]];
-	var cpnDtlBurdenList 				= [[${cpnDtlBurdenList}]];
-	var randomCpnList 					= [[${randomCpnList}]];
-	var issueCnt 						= [[${issueCnt}]];
-
-	var cpnCustGbList 					= [[${cpnCustGbList}]];
-	var cpnCustGradeList 				= [[${cpnCustGradeList}]];
-	var cpnPayTypeList 					= [[${cpnPayTypeList}]];
-	var limitedTimeCpnList 				= [[${limitedTimeCpnList}]];
-	var afChannelList 					= [[${afChannelList}]];
-
-	// 공통코드 리스트
-	var ibSupplyComList 				= gagajf.convertToArray([[${ibSupplyCompList}]]);
-	var formalGbList 					= gagajf.convertToArray([[${formalGbList}]]);
-	var cateGbList 						= gagajf.convertToArray([[${cateGbList}]]);
-	var delYnList 						= { "Y":"Yes", "N":"No" };
-	var siteCdList 						= gagajf.convertToArray([[${siteCdList}]]);
-	var selfBrandList 					= gagajf.convertToArray([[${selfBrandList}]]);
-	let channelName 					= gagajf.convertToArray([[${channelList}]]);
-
-	// ag-grid 입점업체분담율 컬럼
-	var columnDefs = [
-		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-		{ headerName: "입점업체코드" , field:"supplyCompCd" , width:150, cellClass:"text-center"
-			// cellEditor: 'agRichSelectCellEditor',
-			// cellEditorParams: { values: gagaAgGrid.extractValues(ibSupplyComList) },
-			// valueFormatter: function (params) { return gagaAgGrid.lookupValue(ibSupplyComList, params.value); },
-			// valueParser: function (params) { return gagaAgGrid.lookupKey(ibSupplyComList, params.newValue);}
-		} ,
-		{ headerName: "입점업체명"  , field: "supplyCompNm" , width: 120 , cellClass: 'text-center'},
-		{ headerName: "쿠폰분담율(%)", field:"burdenRate" , width:150, cellClass: "text-center" , required: true
-			,valueFormatter: function(params) {
-				if(params.value && params.value > 0) {
-					if(params.value > 100){
-						mcxDialog.alert('할인율은 100이하로 설정해주세요.');
-						params.data.burdenRate = '0';
-						return '0';
-					}
-					return params.value.addComma();
-				} else {
-					return '0';
-				}
-			},
-			cellEditorParams: { maxlength: 4, validType: 'numeric'}
-			// cellEditorParams: { maxlength: 10, required: true }
-		} ,
-		/*{ headerName: "삭제여부" , field: "delYn"  , width:150, cellClass: "text-center" ,
-			cellEditor: 'agRichSelectCellEditor',
-			cellEditorParams: { values: gagaAgGrid.extractValues(delYnList) },
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(delYnList, params.value); },
-			valueParser: function (params) { return gagaAgGrid.lookupKey(delYnList, params.newValue); }
-		} ,*/
-		{ headerName: "쿠폰번호"  , field: "cpnId" , width: 120 , cellClass: 'text-center' , hide:true},
-		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
-	];
-
-	// ag-grid 공급처 컬럼
-	var supplyColumnDefs = [
-		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-		{ headerName : "공급업체코드" , field: "supplyCompCd" , width:150, cellClass: 'text-center'} ,
-		{ headerName: "공급업체명" , field: "supplyCompNm" , width:150, cellClass: 'text-center'},
-		{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
-		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
-	];
-
-	// ag-grid 브랜드 컬럼
-	var brandSelColumnDefs = [
-		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-		{ headerName : "브랜드ID" , field: "brandCd" , width: 120, cellClass : 'text-center'} ,
-		{ headerName : "브랜드명" , field: "brandEnm" , width: 120, cellClass: 'text-center'} ,
-		//{ headerName : "공급업체명", field: "supplyCompNm" , width: 150, cellClass: 'text-center' } ,
-		{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
-		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
-	];
-
-	// ag-grid 적용상품 컬럼
-	var goodsSelColumnDefs = [
-		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-		{ headerName: "상품구분" , field: "goodsGb" , width: 100, cellClass: 'text-center'} ,
-		{ headerName: "Product ID" , field: "goodsCd" , width: 120, cellClass: 'text-center'},
-		{ headerName: "상품명"  , field: "goodsNm" , width: 250 , cellClass: 'text-center'} ,
-		{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
-		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
-	];
-
-	// ag-grid 카테고리 컬럼
-	var cateSelColumnDefs = [
-		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-		{ headerName: "사이트" , field: "siteCd" , width: 100 , cellClass: 'text-center' ,
-			cellEditor: 'agRichSelectCellEditor',
-			cellEditorParams: { values: gagaAgGrid.extractValues(siteCdList) },
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(siteCdList, params.value); },
-			valueParser: function (params) { return gagaAgGrid.lookupKey(siteCdList, params.newValue); }
-		},
-		{ headerName: "카테고리구분" , field: "cateGb" , width: 100 , cellClass: 'text-center' ,
-			cellEditor: 'agRichSelectCellEditor',
-			cellEditorParams: { values: gagaAgGrid.extractValues(cateGbList) },
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(cateGbList, params.value); },
-			valueParser: function (params) { return gagaAgGrid.lookupKey(cateGbList, params.newValue); }
-		},
-		{ headerName: "카테고리코드" , field: "cateNo" , width: 100 , cellClass: 'text-center'} ,
-		{ headerName: "카테고리명" , field: "cateNm" , width: 120 , cellClass: 'text-center'},
-		{ headerName: "이월/정상구분" , field: "formalGb" , width: 120 , cellClass: 'text-center',
-			cellEditor: 'agRichSelectCellEditor',
-			cellEditorParams: { values: gagaAgGrid.extractValues(formalGbList) },
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(formalGbList, params.value); },
-			valueParser: function (params) { return gagaAgGrid.lookupKey(formalGbList, params.newValue); }
-		},
-		{ headerName: "브랜드명" , field:"brandCd" , width:150, cellClass: "text-center", required: true ,
-			editable: true, cellEditor: 'agRichSelectCellEditor',
-			cellEditorParams: { values: gagaAgGrid.extractValues(selfBrandList) },
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(selfBrandList, params.value); },
-			valueParser: function (params) { return gagaAgGrid.lookupKey(selfBrandList, params.newValue); }
-		},
-		{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
-		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
-	];
-
-	// ag-grid 제외상품 컬럼
-	var excepGoodsColumnDefs = [
-		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-		{ headerName: "상품구분" , field: "goodsGb" , width: 100, cellClass: 'text-center'} ,
-		{ headerName: "Product ID" , field: "goodsCd" , width: 120, cellClass: 'text-center'},
-		{ headerName: "상품명"  , field: "goodsNm" , width: 250 , cellClass: 'text-center'} ,
-		{ headerName: "쿠폰대상일련번호"  , field: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
-		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
-	];
-
-	// ag-grid 시리얼 및 난수 리스트
-	var randomCouponDefs = [
-		{ headerName : "생성쿠폰키워드" , field: "rdCpnNm" , width:150, cellClass: 'text-center'} ,
-		{ headerName: "지급고객번호" , field: "custNo" , width:150, cellClass: 'text-center'},
-		{ headerName: "고객아이디" , field: "custId" , width:150, cellClass: 'text-center'},
-		{ headerName: "고객명" , field: "custNm" , width:150, cellClass: 'text-center'},
-		{ headerName: "지급일" , field: "regDt" , width:150, cellClass: 'text-center'},
-		{ headerName: "쿠폰사용일" , field: "usedDt" , width:150, cellClass: 'text-center'}
-	];
-
-	// 선착순 쿠폰 리스트
-	var limitedTimeCpnDefs = [
-		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-		{ headerName: "쿠폰시퀀스", field: "cpnId", width: 150, cellClass: 'text-center'},	//, hide: true
-		{ headerName: "선착순쿠폰명" , field: "limitCpnNm" , width: 200, cellClass: 'text-center'
-			,cellEditorParams: { maxlength: 20}
-		} ,
-		{ headerName: "시작일" , field: "downStDate" , width: 200, cellClass: 'text-center'
-			,cellEditor: 'datePicker'
-			,cellEditorParams: { maxlength: 10, required: true }
-		},
-		{ headerName: "시작시간" , field: "downStTime" , width: 200, cellClass: 'text-center'
-			,cellEditor: 'dateTimer'
-			,cellEditorParams: { maxlength: 8, required: true }
-		},
-		{ headerName: "종료일"  , field: "downEdDate" , width: 200 , cellClass: 'text-center'
-			,cellEditor: 'datePicker'
-			,cellEditorParams: { maxlength: 10, required: true }
-		} ,
-		{ headerName: "종료시간"  , field: "downEdTime" , width: 200 , cellClass: 'text-center'
-			,cellEditor: 'dateTimer'
-			,cellEditorParams: { maxlength: 8, required: true }
-			// ,valueFormatter: function (params) {
-			// 	params.value = params.value.replace(/[^0-9]/g, '');
-			// 	params.value = params.value.substr(0,2)+':'+params.value.substr(2,2)+':59';
-			// 	return params.value;
-			// }
-		} ,
-		{ headerName: "다운로드가능수량"  , field: "downLimitQty" , width: 150 , cellClass: 'text-center'
-			,cellEditorParams: { maxlength: 4, validType: 'numeric'}
-		},
-		{ headerName: "선착순시퀀스", field: "limitCpnId", width: 150, cellClass: 'text-center' , hide: true}
-		,{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
-		,{headerName: "시작일시", field: "downStdt", width: 150, cellClass: 'text-center' , hide:true}
-		,{headerName: "종료일시", field: "downEddt", width: 150, cellClass: 'text-center' , hide:true}
-	];
-
-	let columnAfDefs = [
-		{width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-		{headerName: "제휴채널코드", field: "afLinkCd", width: 100, cellClass: 'text-center'},
-		{
-			headerName: "제휴채널명", field: "afLinkNm", width: 180,
-			cellRenderer: function(params) {
-				return '<a href="javascript:void(0);">' + params.value + '</a>';
-			}
-		},
-		{headerName: "상위제휴채널", field: "afChannel", width: 120, cellClass: 'text-center',
-			cellEditor: 'agRichSelectCellEditor',
-			cellEditorParams: { values: gagaAgGrid.extractValues(channelName) },
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(channelName, params.value); },
-			valueParser: function (params) { return gagaAgGrid.lookupKey(channelName, params.newValue); }
-		}
-	];
-
-	var inComGridOptions = gagaAgGrid.getGridOptions(columnDefs);
-	var cateGridOptions = gagaAgGrid.getGridOptions(cateSelColumnDefs);
-	var goodsGridOptions = gagaAgGrid.getGridOptions(goodsSelColumnDefs);
-	var brandGridOptions = gagaAgGrid.getGridOptions(brandSelColumnDefs);
-	var supplyGridOptions = gagaAgGrid.getGridOptions(supplyColumnDefs);
-	var excepGoodsGridOptions = gagaAgGrid.getGridOptions(excepGoodsColumnDefs);
-	var randomCouponGridOptions = gagaAgGrid.getGridOptions(randomCouponDefs);
-	var limitedTimeCpnGridOptions = gagaAgGrid.getGridOptions(limitedTimeCpnDefs);
-	// 제휴채널 그리드 설정
-	var afLinkOptions = gagaAgGrid.getGridOptions(columnAfDefs);
-	afLinkOptions.rowSelection = "multiple";
-	afLinkOptions.suppressRowClickSelection = true;
-
-	inComGridOptions.defaultColDef.editable = true;
-	inComGridOptions.rowSelection = "multiple";
-	goodsGridOptions.rowSelection = "multiple";
-	supplyGridOptions.rowSelection = "multiple";
-	excepGoodsGridOptions.rowSelection = "multiple";
-	cateGridOptions.rowSelection = "multiple";
-	brandGridOptions.rowSelection = "multiple";
-	inComGridOptions.stopEditingWhenGridLosesFocus = true;
-	limitedTimeCpnGridOptions.defaultColDef.editable = true;
-	limitedTimeCpnGridOptions.rowSelection = "multiple";
-
-	// 선착순 쿠폰 종료시간 초 59로 변경
-	limitedTimeCpnGridOptions.onCellValueChanged = function (event){
-		if (event.colDef.field == "downEdTime"){
-			var temp = event.data.downEdTime.replaceAll(":","");
-			var hh = temp.substr(0,2);
-			var mm = temp.substr(2,2);
-			// var ss = temp.substr(4,2);
-
-			event.data.downEdTime = hh+':'+mm+':'+'59';
-			// console.log('event.data.downEdTime:::'+event.data.downEdTime);
-
-			limitedTimeCpnGridOptions.api.updateRowData({update: [event.data]});
-			return;
-		}
-	}
-
-	// 삭제버튼 클릭시
-	// 1.공급업체
-	$('#btnSupplyDel').on('click', function() {
-		supplyGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(supplyGridOptions)});
-	});
-	// 2.브랜드
-	$('#btnBrandDel').on('click', function() {
-		brandGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(brandGridOptions)});
-	});
-	// 3.카테고리
-	$('#btnCateDel').on('click', function() {
-		cateGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(cateGridOptions)});
-	});
-	// 4.적용상품
-	$('#btnGoodsDel').on('click', function() {
-		goodsGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(goodsGridOptions)});
-	});
-	// 5.제외상품
-	$('#btnExcepGoodsDel').on('click', function() {
-		excepGoodsGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(excepGoodsGridOptions)});
-	});
-	// 업체분담율 선택삭제 버튼 클릭시
-	$('#CouponForm #btnDelApplyBurden').on('click', function() {
-		inComGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(inComGridOptions)});
-	});
-	// 7.선착순
-	$('#btnDelLimitedTimeCpnRow').on('click', function() {
-		limitedTimeCpnGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(limitedTimeCpnGridOptions)});
-	});
-
-	// 제휴채널 선택삭제 버튼 클릭시
-	$('#btnDeleteAf').on('click', function() {
-		afLinkOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(afLinkOptions)});
-	});
-
-	// 선착순 쿠폰 행추가
-	$('#btnAddLimitedTimeCpnRow').on('click', function() {
-		var data = { cpnId: 1 ,limitCpnNm: null, downStDate: _today, downStTime: '00:00:00', downEdDate: _today, downEdTime: '23:59:59', downLimitQty: null, limitCpnId: null, delYn: 'N' };
-		gagaAgGrid.addRowData(limitedTimeCpnGridOptions, data, "limitCpnNm");
-	});
-	// 업체분담율 추가 버튼 클릭시
-	$('#CouponForm #btnAddApplyBurden').on('click', function() {
-		cfnOpenCompanyListPopup("fnSetPopupApplyBurdenInfo" ,"M");
-	});
-
-	// 선착순 쿠폰 행삭제
-	/*$('#btnDelLimitedTimeCpnRow').on('click', function() {
-		var selectedData = limitedTimeCpnGridOptions.api.getSelectedRows();
-		if (selectedData.length == 0) {
-			mcxDialog.alert('선택된 행이 없습니다.');
-			return;
-		}
-		var removedData = gagaAgGrid.removeRowData(limitedTimeCpnGridOptions, false);
-		var arrLimitCpnId = [];
-
-		$.each(selectedData, function(idx, item) {
-			arrLimitCpnId.push(item.limitCpnId);
-		});
-
-		if (removedData.length > 0) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					var data = { arrLimitCpnId : arrLimitCpnId
-						,cpnId : $('#CouponForm input[name=cpnId]').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/limitedtime/coupon/update', jsonData);
-				}
-			});
-		}
-	});
-	*/
-
-	// 분담업체율 설정 / 업체 추가 콜백함수
-	var fnSetPopupApplyBurdenInfo = function(result) {
-		// 기존 리스트 데이터 for
-		for(let i = 0 ; i < result.length ; i++) {
-			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(inComGridOptions);		// 받아온 모든 데이터
-
-			// 받아온 data for
-			for(let j = 0 ; j < gridListValue.length ; j++) {
-				// 동일한 data는 추가하지 않음
-				if(gridListValue[j].supplyCompCd == result[i].supplyCompCd) {	addChk = false;	}		// 중복체크
-			}
-
-			// 중복되지 않은 데이터 리스트에 추가
-			if(addChk) {
-				gagaAgGrid.addRowData(inComGridOptions, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm, "delYn" : result[i].delYn});
-			}
-		}
-	};
-
-	// 선착순 쿠폰 체크박스 클릭시
-	$("#CouponForm #limitedTimeCpnBox").bind('click', function (){
-		var chkBox= document.getElementById('limitedTimeCpnYn').checked;
-
-		if(chkBox){	//true 체크가 되어있었는데 해제됐어 -> 탭을 숨겨
-			$("#CouponForm .limitedTimeCpnTab").show();
-			$("#limitedTimeCpnYn").val("Y");
-			$("#CouponForm #totPubLimitQty").val(0);
-			$("#CouponForm input[id=chkBoxTotPubQty]").prop("disabled", true);
-			$("#CouponForm input[id=totPubLimitQty]").prop("disabled", true);
-			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent("label").addClass("checked");
-			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('checked', true);
-			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").attr('readonly', true);
-			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('disabled', true);
-			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent().prop('disabled', true);
-			//상품상세 페이지내 다운로드 가능여부 N으로
-			$('#CouponForm select[name=downAblYn]').val('N').prop("selected", true);
-			$("#CouponForm select[name=downAblYn]").attr("readonly", true);
-			$("#CouponForm select[name=downAblYn]").attr("disabled", true);
-		}else{	//false 체크가 안되어있었는데 체크됐어 -> 탭을 보여줘
-			$("#CouponForm .limitedTimeCpnTab").hide();
-			$("#limitedTimeCpnYn").val("N");
-			$("#CouponForm #totPubLimitQty").val(0);
-			$("#CouponForm input[id=chkBoxTotPubQty]").prop("disabled", false);
-			$("#CouponForm input[id=totPubLimitQty]").prop("disabled", false);
-			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent("label").removeClass("checked");
-			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('checked', false);
-			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").attr('readonly', false);
-			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('disabled', false);
-			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent().prop('disabled', false);
-			//상품상세 페이지내 다운로드 가능여부 Y으로
-			// $('#CouponForm select[name=downAblYn]').val('Y').prop("selected", false);
-			$("#CouponForm select[name=downAblYn]").attr("readonly", false);
-			$("#CouponForm select[name=downAblYn]").attr("disabled", false);
-		}
-	});
-
-	// 종료시간 클릭시
-	var fnChangeEdHH = function (obj){
-		var selectId = obj.id;
-		var changeId = "";
-		if(selectId == "downEdHH"){
-			changeId = "downEdMM";
-		}else if(selectId == "availEdHH"){
-			changeId = "availEdMM";
-		}else if(selectId == "buyEdHH"){
-			changeId = "buyEdMM";
-		}else{
-			changeId = "custJoinEdMM";
-		}
-		if(obj.value == 24) {
-			$("#CouponForm #"+changeId+" option").hide();
-			$('#CouponForm #'+changeId+' option:first').show().prop("selected", true);
-		} else {
-			$("#CouponForm #"+changeId+" option").show();
-		}
-	};
-
-	// 총발행 제한수량 -> 제한없음 처리
-	$("#CouponForm #chkBoxTotPubQty").bind('click', function (){
-		var chkBox= document.getElementById('chkNoLimitTotPubLimitQty').checked;
-
-		var cpnStat = $('#CouponForm input:radio[name="disCpnStat"]:checked').val();
-		if(cpnStat=='G232_10'){
-			if(chkBox){ //true 체크가 되어있었는데 해제됐어 -> 값0 inputbox disabled 해제
-				$("#CouponForm #totPubLimitQty").val(0);
-				$("#CouponForm input[id=totPubLimitQty]").prop("disabled", true);
-				$("#CouponForm input[id=totPubLimitQty]").prop("readonly", true);
-			}else{	//false 체크가 안되어있었는데 체크됐어 -> 값0 inputbox disabled
-				$("#CouponForm #totPubLimitQty").val(0);
-				$("#CouponForm input[id=totPubLimitQty]").prop("disabled", false);
-				$("#CouponForm input[id=totPubLimitQty]").prop("readonly", false);
-			}
-		}
-
-	});
-
-	// 1인당발행 제한수량 -> 제한없음 처리
-	$("#CouponForm #chkBoxCustPubQty").bind('click', function (){
-		var chkBox= document.getElementById('chkNoLimitCustPubLimitQty').checked;
-		var cpnStat = $('#CouponForm input:radio[name="disCpnStat"]:checked').val();
-		if(cpnStat=='G232_10'){
-			if(chkBox){ //true 체크가 되어있었는데 해제됐어 -> 값0 inputbox disabled 해제
-				$("#CouponForm #custPubLimitQty").val(0);
-				$("#CouponForm input[id=custPubLimitQty]").prop("disabled", true);
-				$("#CouponForm input[id=custPubLimitQty]").prop("readonly", true);
-			}else{	//false 체크가 안되어있었는데 체크됐어 -> 값0 inputbox disabled
-				$("#CouponForm #custPubLimitQty").val(0);
-				$("#CouponForm input[id=custPubLimitQty]").prop("disabled", false);
-				$("#CouponForm input[id=custPubLimitQty]").prop("readonly", false);
-			}
-		}
-	});
-
-	// 할인방식 할인율 일때, 할인값 체크
-	var fnDcValOnkeyUp = function (obj){
-		var inputName = $(obj).attr("name");
-		var rdoDcWay = $('#CouponForm input:radio[name="rdoDcWay"]:checked').val();
-		var dcVal = $("#CouponForm input[name="+inputName+"]").val();
-		if(rdoDcWay == "G240_11"){
-			if(dcVal > 100){
-				mcxDialog.alert('할인율은 100을 넘을수 없습니다.');
-				$("#CouponForm input[name="+inputName+"]").val('');
-				$("#CouponForm input[name="+inputName+"]").focus();
-				return;
-			}
-		}
-	}
-
-	// 할인값 동일적용
-	$("#applySameValueBtn").bind('click change', function () {
-		var cdPval = $("#CouponForm input[name=dcPval]").val();
-		$("#CouponForm input[name=dcMval]").val(cdPval);
-		$("#CouponForm input[name=dcAval]").val(cdPval);
-	});
-
-	function checkValidation2(){
-		// 쿠폰명 체크
-		var chkCpnNm = $('#CouponForm input[name=cpnNm]').val();
-		if(gagajf.isNull(chkCpnNm)){
-			mcxDialog.alert("쿠폰명을 입력해주세요.");
-			$('#CouponForm input[name=cpnNm]').focus();
-			return false;
-		}
-
-		// 할인금액, 할인율 체크
-		var chkDcPval = $('#CouponForm input[name=dcPval]').val();
-		var chkDcMval = $('#CouponForm input[name=dcMval]').val();
-		var chkDcAval = $('#CouponForm input[name=dcAval]').val();
-		if(gagajf.isNull(chkDcPval) || chkDcPval < 1){
-			mcxDialog.alert("할인값(PC)을 입력해주세요.");
-			$('#CouponForm input[name=dcPval]').focus();
-			return false;
-		}
-		if(gagajf.isNull(chkDcMval) || chkDcMval < 1){
-			mcxDialog.alert("할인값(모바일웹)을 입력해주세요.");
-			$('#CouponForm input[name=dcMval]').focus();
-			return false;
-		}
-		if(gagajf.isNull(chkDcAval) || chkDcAval < 1){
-			mcxDialog.alert("할인값(모바일앱)을 입력해주세요.");
-			$('#CouponForm input[name=dcAval]').focus();
-			return false;
-		}
-
-		// 할인방식 할인율 일때, 최대할인금액 0 보다 큰지 체크
-		// 2021.08.13 임시 즉시할인 쿠폰일때도 최대할인금액 적용 예정
-		// 임시로 최대할인 금액 10만원 적용
-		if ($('#CouponForm #cpnType').val() == "G230_10") {
-			$('#CouponForm').find('input[name=maxDcAmt]').val("100000");
-		}
-		
-		if($('#CouponForm input:radio[name="rdoDcWay"]:checked').val() == 'G240_11'){
-			if($('#CouponForm').find('input[name=maxDcAmt]').val() < 1){
-				mcxDialog.alert("최대 할인 금액을 입력해주세요.");
-				$('#CouponForm input[name=maxDcAmt]').focus();
-				return false;
-			}
-		}
-
-		if($('#CouponForm input:radio[name="rdoApplyScope"]:checked').val() == 'I'){
-			// 적용대상 체크
-			let targetCnt = 0;
-			let target1 = gagaAgGrid.getAllRowData(supplyGridOptions);
-			let target2 = gagaAgGrid.getAllRowData(brandGridOptions);
-			let target3 = gagaAgGrid.getAllRowData(cateGridOptions);
-			let target4 = gagaAgGrid.getAllRowData(goodsGridOptions);
-
-			targetCnt = target1.length + target2.length + target3.length + target4.length;
-			if(targetCnt < 1){
-				mcxDialog.alert("적용대상을 설정해주세요.");
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-	// 즉시할인쿠폰일때 데이터 validation 체크
-	var checkValidation10 = function (){
-		var stdt = $('#CouponForm #availStDay').val();
-		var eddt = $('#CouponForm #availEdDay').val();
-		if(gagajf.isNull(stdt)){
-			mcxDialog.alert("유효기간 시작일시를 입력해주세요.");
-			return false;
-		}
-		if(gagajf.isNull(eddt)){
-			mcxDialog.alert("유효기간 종료일시를 입력해주세요.");
-			return false;
-		}
-		if(stdt>eddt){
-			mcxDialog.alert("시작일시가 종료일시보다 클 수 없습니다.");
-			return false;
-		}
-
-		return true;
-	}
-
-	var checkValidation20 = function (cpnType){
-		// 사용가능고객구분 체크박스 체크
-		var usableCustGbCnt = $('#CouponForm input:checkbox[name=usableCustGbArr]:checked').length;
-		if(usableCustGbCnt<1){
-			mcxDialog.alert("사용가능 고객구분을 체크해주세요.");
-			$('#CouponForm input:checkbox[name=usableCustGbArr]').focus();
-			return false;
-		}
-		// 사용가능고객등급 체크박스 체크
-		var usableCustGradeCnt = $('#CouponForm input:checkbox[name=usableCustGradeArr]:checked').length;
-		if(usableCustGradeCnt<1){
-			mcxDialog.alert("사용가능 고객등급을 체크해주세요.");
-			$('#CouponForm input:checkbox[name=usableCustGradeArr]').focus();
-			return false;
-		}
-
-		/*
-		21-07-19 결제수단 필수조건 아니여서 주석처리
-		if(cpnType == 'G230_20'){
-			// 결제수단 체크박스 체크
-			var payTypeCnt = $('#CouponForm input:checkbox[name=payTypeArr]:checked').length;
-			if(payTypeCnt<1){
-				mcxDialog.alert("결제수단을 체크해주세요.");
-				$('#CouponForm input:checkbox[name=payTypeArr]').focus();
-				return false;
-			}
-		}
-		*/
-
-		if($('#CouponForm select[name="pdGb"] option:selected').val() == 'D'){
-			if(gagajf.isNull($("#availDays").val()) || $("#availDays").val() < 1){
-				mcxDialog.alert("유효기간 일수를 입력해주세요.");
-				$('#CouponForm input[name=availDays]').focus();
-				return false;
-			}
-		}
-
-		//다운로드일시 validation 체크
-		var downFromDate = $('#CouponForm input[name=downStDay]').val();
-		var downToDate = $('#CouponForm input[name=downEdDay]').val();
-
-		if (gagajf.isNull(downFromDate) || gagajf.isNull(downToDate)) {
-			mcxDialog.alertC("다운로드 시작일자와 종료일자를 입력하세요.", {
-				sureBtnText: "확인",
-				sureBtnClick: function() {
-					$('#CouponForm input[name=downStDay]').focus();
-				}
-			});
-			return false;
-		}
-
-		if (downFromDate > downToDate) {
-			mcxDialog.alertC("다운로드 시작일자는 종료일자 보다 클 수 없습니다.", {
-				sureBtnText: "확인",
-				sureBtnClick: function() {
-					$('#CouponForm input[name=downEdDay]').focus();
-				}
-			});
-			return false;
-		}
-
-		//신규가입 지급한다면 validation 체크
-		if( $('#newCustYn option:selected').val() == "Y" ){
-			var fromDate = $('#CouponForm input[name=custJoinStDay]').val();
-			var toDate = $('#CouponForm input[name=custJoinEdDay]').val();
-
-			if (gagajf.isNull(fromDate) || gagajf.isNull(toDate)) {
-				mcxDialog.alertC("신규가입기간 시작일자와 종료일자를 입력하세요.", {
-					sureBtnText: "확인",
-					sureBtnClick: function() {
-						$('#CouponForm input[name=custJoinStDay]').focus();
-					}
-				});
-				return false;
-			}
-
-			if (fromDate > toDate) {
-				mcxDialog.alertC("등록 시작일자는 종료일자 보다 클 수 없습니다.", {
-					sureBtnText: "확인",
-					sureBtnClick: function() {
-						$('#CouponForm input[name=custJoinEdDay]').focus();
-					}
-				});
-				return false;
-			}
-		}
-
-		// 첫구매 지급하면 validation 체크
-		if( $('#firstOrdYn option:selected').val() == "Y" ){
-			var fromDate = $('#CouponForm input[name=buyStDay]').val();
-			var toDate = $('#CouponForm input[name=buyEdDay]').val();
-
-			if (gagajf.isNull(fromDate) || gagajf.isNull(toDate)) {
-				mcxDialog.alertC("신규가입기간 시작일자와 종료일자를 입력하세요.", {
-					sureBtnText: "확인",
-					sureBtnClick: function() {
-						$('#CouponForm input[name=buyStDay]').focus();
-					}
-				});
-				return false;
-			}
-
-			if (fromDate > toDate) {
-				mcxDialog.alertC("등록 시작일자는 종료일자 보다 클 수 없습니다.", {
-					sureBtnText: "확인",
-					sureBtnClick: function() {
-						$('#CouponForm input[name=buyEdDay]').focus();
-					}
-				});
-				return false;
-			}
-		}
-
-		// 할인율 validation 체크 (100을 넘길수없음)
-		if($('#dcWay').val() == 'G240_11') {
-			if($('#dcPval').val() > 100) {
-				mcxDialog.alert('PC할인율은 100을 초과할수없습니다.');
-				$('#dcPval').focus();
-				return false;
-			} else if( $('#dcMval').val() > 100) {
-				mcxDialog.alert('모바일(웹)할인율은 100을 초과할수없습니다.');
-				$('#dcMval').focus();
-				return false;
-			}  else if( $('#dcAval').val() > 100) {
-				mcxDialog.alert('모바일(앱)할인율은 100을 초과할수없습니다.');
-				$('#dcAval').focus();
-				return false;
-			}
-		}
-
-		// 할인쿠폰 유형에 따른 총 발행수량 수정 (주문서 쿠폰이고 난수쿠폰일 경우)
-		if($('#CouponForm #cpnType').val() == "G230_20" && $('#CouponForm input:radio[name="dcCdGb"]:checked').val() == "G233_20") {
-			if($("#CouponForm input[name=randomCpnQty]").val() == "" || $("#CouponForm input[name=randomCpnQty]").val() < 1) {
-				mcxDialog.alert('쿠폰의 발급 수량을 입력해주세요.');
-				$("#CouponForm input[name=randomCpnQty]").focus();
-				return false;
-			}
-			if($("#CouponForm input[name=randomCpnQty]").val() > 10000) {
-				mcxDialog.alert('쿠폰의 발급 수량은 10000장을 초과할 수 없습니다.');
-				$("#CouponForm input[name=randomCpnQty]").focus();
-				return false;
-			}
-
-		} else if ($('#CouponForm #cpnType').val() == "G230_20" && $('#CouponForm input:radio[name="dcCdGb"]:checked').val() == "G233_10") {		// 주문서 쿠폰이고 시리얼 유형일 경우
-			if($("#CouponForm input[name=serialCpnNm]").val().length > 10) {
-				mcxDialog.alert('시리얼쿠폰키워드는 10글자를 넘을 수 없습니다.');
-				$("#CouponForm input[name=serialCpnNm]").focus();
-				return false;
-			}
-			if($("#CouponForm input[name=serialCpnQty]").val() == "" || $("#CouponForm input[name=serialCpnQty]").val() < 1) {
-				mcxDialog.alert('쿠폰의 발급 수량을 입력해주세요.');
-				$("#CouponForm input[name=serialCpnQty]").focus();
-				return false;
-			}
-			if($("#CouponForm input[name=randomCpnQty]").val() > 10000) {
-				mcxDialog.alert('쿠폰의 발급 수량은 10000장을 초과할 수 없습니다.');
-				$("#CouponForm input[name=serialCpnQty]").focus();
-				return false;
-			}
-		} else if ($('#CouponForm #cpnType').val() == "G230_11" && $("#limitedTimeCpnYn").val() == "Y") {	// 상품쿠폰이고 선착순쿠폰 체크되어 있을때
-			let cpnData = gagaAgGrid.getAllRowData(limitedTimeCpnGridOptions);
-			if(cpnData.length < 1){
-				mcxDialog.alert("선착순 쿠폰을 설정해주세요.");
-				return false;
-			}else{
-				for(i=0; i<cpnData.length; i++){
-
-					if(gagajf.isNull(cpnData[i].limitCpnNm)){
-						mcxDialog.alert(i+1 + "번 행의 선착순 쿠폰명을 입력해주세요.");
-						return false;
-					}
-
-					if(gagajf.isNull(cpnData[i].downStDate)){
-						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드시작일을 입력해주세요.");
-						return false;
-					}
-
-					if(gagajf.isNull(cpnData[i].downEdDate)){
-						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드시작일을 입력해주세요.");
-						return false;
-					}
-
-					if(gagajf.isNull(cpnData[i].downStTime)){
-						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드시작일을 입력해주세요.");
-						return false;
-					}
-
-					if(gagajf.isNull(cpnData[i].downEdTime)){
-						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드종료일을 입력해주세요.");
-						return false;
-					}
-					//
-					// cpnData[i].downStDt = (cpnData[i].downEdDate).replace(/[^0-9]/g, '') + (cpnData[i].downStTime).replace(/[^0-9]/g, '');
-					// var stdt = (cpnData[i].downEdDate).replace(/[^0-9]/g, '') + (cpnData[i].downStTime).replace(/[^0-9]/g, '');
-					// console.log('cpnData[i].downStDt>>'+cpnData[i].downStDt);
-					//
-					// var eddt = '';
-					// if(gagajf.isNull(cpnData[i].downEdTime)){
-					// 	mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드종료일을 입력해주세요.");
-					// 	return false;
-					// }else{
-					// 	var tempEddt = cpnData[i].downEdTime.replace(/[^0-9]/g, '');
-					// 	console.log('tempEddt>>'+tempEddt.substr(0,4));
-					// 	if(tempEddt.substr(0,4) == '0000'){
-					// 		tempEddt = cpnData[i].downEdDate.replace(/[^0-9]/g, '') +'235959';
-					// 		cpnData[i].downEdDt = tempEddt;
-					// 		eddt = tempEddt;
-					// 	}else{
-					// 		cpnData[i].downEdDt = (cpnData[i].downEdDate).replace(/[^0-9]/g, '') + (cpnData[i].downEdTime).replace(/[^0-9]/g, '');
-					// 		eddt = (cpnData[i].downEdDate).replace(/[^0-9]/g, '') + (cpnData[i].downEdTime).replace(/[^0-9]/g, '');
-					// 	}
-					// }
-					// console.log('cpnData[i].downEdDt>>'+cpnData[i].downEdDt);
-
-					if(gagajf.isNull(cpnData[i].downLimitQty)){
-						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드가능수량을 입력해주세요.");
-						return false;
-					}else{
-						if(cpnData[i].downLimitQty<1){
-							mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드가능수량을 1개이상 입력해주세요.");
-							return false;
-						}
-					}
-				}
-				limitedTimeCpnGridOptions.api.setRowData(cpnData);
-			}
-		}
-
-		var chkLimitCpnCnt = document.getElementById('chkNoLimitTotPubLimitQty').checked;
-		if(!chkLimitCpnCnt){
-			let cnt = $("#CouponForm").find("[name=totPubLimitQty]").val();
-			if(cnt < 1){
-				mcxDialog.alert("총발행 제한수량은 0보다 커야합니다.");
-				return false;
-			}
-		}
-
-		var chkCustLimitCpnCnt = document.getElementById('chkNoLimitCustPubLimitQty').checked;
-		if(!chkCustLimitCpnCnt){
-			let cnt = $("#CouponForm").find("[name=custPubLimitQty]").val();
-			if(cnt < 1){
-				mcxDialog.alert("1인당 발행 제한수량은 0보다 커야합니다.");
-				return false;
-			}
-		}
-
-		var chkIssueCnt = $("#CouponForm").find("[name=onePubQty]").val();
-		if(chkIssueCnt < 1){
-			mcxDialog.alert("1회발행 제한수량은 0보다 커야합니다.");
-			return false;
-		}
-
-		return true;
-	}
-
-	// 분담율 합 체크
-	var fnBurdenValueCheck = function (){
-		let burdenData = gagaAgGrid.getAllRowData(inComGridOptions);
-		let totalValue = 0;
-		$.each(burdenData, function(idx, item) {
-			totalValue += parseInt(item.burdenRate);
-		});
-
-		if(totalValue > 100) {
-			mcxDialog.alert("업체분담율의 합이 100을 넘을수 없습니다.");
-			return false;
-		}
-
-		return true;
-	};
-
-	// 쿠폰 등록
-	function fnCouponCreate(){
-		// 필수값들 셋팅
-		setReqValue();
-
-		// 데이터 validation 체크
-		if(!checkValidation2()) {
-			return false;
-		}
-
-		var chkCpnType = $("#CouponForm input[name=rdoCpnType]:checked").val();
-		if(chkCpnType != 'G230_10'){	// 즉시할인쿠폰제외
-			if(!checkValidation20(chkCpnType)){
-				return false;
-			}
-		}
-
-		// 유효기간 체크
-		if(!checkValidation10()){
-			return false;
-		}
-
-		// 업체분담율 토탈 100% 넘는지 체크
-		if(!fnBurdenValueCheck()) {
-			return false;
-		}
-
-		mcxDialog.confirm('저장하시겠습니까?' , {
-			cancelBtnText: "취소",
-			sureBtnText: "확인",
-			sureBtnClick: function () {
-				var usableCustGbArr = [];
-				var chkCustGb  = $('#CouponForm input:checkbox[name=usableCustGbArr]:checked');
-				for(let i=0; i< chkCustGb.length; i++){
-					usableCustGbArr.push(chkCustGb.eq(i).val());
-				}
-
-				var usableCustGradeArr = [];
-				var chkCustGrade = $('#CouponForm input:checkbox[name=usableCustGradeArr]:checked');
-				for(let i=0; i< chkCustGrade.length; i++){
-					usableCustGradeArr.push(chkCustGrade.eq(i).val());
-				}
-
-				var payTypeArr = [];
-				var chkPayType = $('#CouponForm input:checkbox[name=payTypeArr]:checked');
-				for(let i=0; i< chkPayType.length; i++){
-					payTypeArr.push(chkPayType.eq(i).val());
-				}
-
-				// 쿠폰유형 상품 쿠폰이고, 선착순 쿠폰일때 dcCdGb = G233_30
-				if($("#CouponForm input[name=rdoCpnType]:checked").val() == 'G230_11' && $("#CouponForm input:checkbox[name=limitedTimeCpnYn]").val() == "Y"){
-					$('input:radio[name="dcCdGb"]:checked').val("G233_30");
-				}
-
-				var data = {
-					cpnId : $('#CouponForm input[name=cpnId]').val()
-					,cpnNm : $('#CouponForm input[name=cpnNm]').val()
-					,cpnDesc : $('#CouponForm input[name=cpnDesc]').val()
-					,siteCd : $('#CouponForm select[name=siteCd]').val()
-					// ,afLinkCd : $('#CouponForm select[name=afLinkCd]').val()
-					,cpnType : $('input:radio[name="rdoCpnType"]:checked').val()
-					,applyScope : $('input:radio[name="rdoApplyScope"]:checked').val()
-					,dcWay : $('input:radio[name="rdoDcWay"]:checked').val()
-					,dcPval : $('#CouponForm input[name=dcPval]').val().replaceAll(',','')
-					,dcMval : $('#CouponForm input[name=dcMval]').val().replaceAll(',','')
-					,dcAval : $('#CouponForm input[name=dcAval]').val().replaceAll(',','')
-					,maxDcAmt : $('#CouponForm input[name=maxDcAmt]').val().replaceAll(',','')
-					,pdGb : $('#CouponForm select[name=pdGb]').val()
-					,availStdt : $('#CouponForm input[name=availStdt]').val()
-					,availEddt : $('#CouponForm input[name=availEddt]').val()
-					,availDays : $('#CouponForm input[name=availDays]').val().replaceAll(',','')
-					,custPubLimitQty : $('#CouponForm input[name=custPubLimitQty]').val().replaceAll(',','')
-					,totPubLimitQty : $('#CouponForm input[name=totPubLimitQty]').val().replaceAll(',','')
-					,onePubQty : $('#CouponForm input[name=onePubQty]').val().replaceAll(',','')
-					,downStdt : $('#CouponForm input[name=downStdt]').val()
-					,downEddt : $('#CouponForm input[name=downEddt]').val()
-					,buyLimitAmt : $('#CouponForm input[name=buyLimitAmt]').val().replaceAll(',','')
-					,cpnStat : $('input:radio[name="disCpnStat"]:checked').val()
-					,endAlimYn : $('#CouponForm select[name=endAlimYn]').val()
-					,firstOrdYn : $('#CouponForm select[name=firstOrdYn]').val()
-					,downAblYn : $('#CouponForm select[name=downAblYn]').val()
-					,custJoinStdt : $('#CouponForm input[name=custJoinStdt]').val()
-					,custJoinEddt : $('#CouponForm input[name=custJoinEddt]').val()
-					,buyStdt : $('#CouponForm input[name=buyStdt]').val()
-					,buyEddt : $('#CouponForm input[name=buyEddt]').val()
-					,newCustYn : $('#CouponForm select[name=newCustYn]').val()
-					// ,afChannel : $('#CouponForm select[name=afChannel]').val()
-					,dcCdGb : $('input:radio[name="dcCdGb"]:checked').val()
-					,rdCpnNm : $('input[name="serialCpnNm"]').val()
-					,supplyCompList : gagaAgGrid.getAllRowData(supplyGridOptions)
-					,brandList : gagaAgGrid.getAllRowData(brandGridOptions)
-					,applyGoodsList : gagaAgGrid.getAllRowData(goodsGridOptions)
-					,exceptGoodsList : gagaAgGrid.getAllRowData(excepGoodsGridOptions)
-					,cateList : gagaAgGrid.getAllRowData(cateGridOptions)
-					,burdenList : gagaAgGrid.getAllRowData(inComGridOptions)
-					,usableCustGbArr : usableCustGbArr
-					,usableCustGradeArr : usableCustGradeArr
-					,payTypeArr : payTypeArr
-					,limitedTimeCpnList : gagaAgGrid.getAllRowData(limitedTimeCpnGridOptions)
-					,afChannelList : gagaAgGrid.getAllRowData(afLinkOptions)
-					,mode : $('#CouponForm input[name=mode]').val()
-					,scmYn : 'N'
-				};
-				var jsonData = JSON.stringify(data);
-				gagajf.ajaxJsonSubmit($('#CouponForm').prop('action'), jsonData, fnCouponSaveCollback);
-			}
-		});
-	}
-
-	var fnCouponSaveCollback = function (result){
-		uifnPopupClose('CouponRegForm');
-		$('#btnSearch').trigger('click');
-	}
-
-	// 쿠폰 수정 시
-	function fnCouponUpdate(){
-		mcxDialog.confirm('수정하시겠습니까?' , {
-			cancelBtnText:"취소",
-			sureBtnText:"확인",
-			sureBtnClick: function () {
-				gagajf.removeCommaAtNumberFormattedInput('#CouponForm');
-				// disabled 해제
-				$("#CouponForm * ").attr("readonly" , false);
-				$("#CouponForm * ").prop("disabled" , false);
-				// 필수값들 셋팅
-				setReqValue();
-				// 필수값 validation 체크
-				if (!gagajf.validation('#CouponForm')) {
-					return false;
-				}
-				if(!checkValidation()) {
-					return false;
-				}
-
-				gagajf.ajaxFormSubmit($('#CouponForm').prop('action'), '#CouponForm', function() {
-					uifnPopupClose('CouponRegForm');
-					$('#btnSearch').trigger('click');
-				});
-			}
-		});
-	}
-	// disabled 해제
-	function setDisabledFalse(){ //debugger;
-
-
-	}
-
-	function checkValidation(){
-		// 사용가능고객구분 체크박스 체크
-		var usableCustGbCnt = $('#CouponForm input:checkbox[name=usableCustGbArr]').length;
-		if(usableCustGbCnt<1){
-			mcxDialog.alert("사용가능고객구분을 체크해주세요.");
-			$('#CouponForm input:checkbox[name=usableCustGbArr]').focus();
-			return false;
-		}
-		// 사용가능고객등급 체크박스 체크
-		var usableCustGradeCnt = $('#CouponForm input:checkbox[name=usableCustGradeArr]').length;
-		if(usableCustGradeCnt<1){
-			mcxDialog.alert("사용가능고객등급을 체크해주세요.");
-			$('#CouponForm input:checkbox[name=usableCustGradeArr]').focus();
-			return false;
-		}
-		// 결제수단 체크박스 체크
-		/* 21-07-19 결제수단 필수조건 아니여서 주석처리
-		var payTypeCnt = $('#CouponForm input:checkbox[name=payTypeArr]').length;
-		if(payTypeCnt<1){
-			mcxDialog.alert("결제수단을 체크해주세요.");
-			$('#CouponForm input:checkbox[name=payTypeArr]').focus();
-			return false;
-		}*/
-
-		//신규가입 지급한다면 validation 체크
-		if( $('#newCustYn option:selected').val() == "Y" ){
-			var fromDate = $('#CouponForm input[name=custJoinStdt]').val();
-			var toDate = $('#CouponForm input[name=custJoinEddt]').val();
-
-			if (gagajf.isNull(fromDate) || gagajf.isNull(toDate)) {
-				mcxDialog.alertC("신규가입기간 시작일자와 종료일자를 입력하세요.", {
-					sureBtnText: "확인",
-					sureBtnClick: function() {
-						$('#CouponForm input[name=custJoinStdt]').focus();
-					}
-				});
-				return false;
-			}
-
-			if (fromDate > toDate) {
-				mcxDialog.alertC("등록 시작일자는 종료일자 보다 클 수 없습니다.", {
-					sureBtnText: "확인",
-					sureBtnClick: function() {
-						$('#CouponForm input[name=custJoinEddt]').focus();
-					}
-				});
-				return false;
-			}
-		}
-
-		// 첫구매 지급하면 validation 체크
-		if( $('#firstOrdYn option:selected').val() == "Y" ){
-			var fromDate = $('#CouponForm input[name=buyStdt]').val();
-			var toDate = $('#CouponForm input[name=buyEddt]').val();
-
-			if (gagajf.isNull(fromDate) || gagajf.isNull(toDate)) {
-				mcxDialog.alertC("신규가입기간 시작일자와 종료일자를 입력하세요.", {
-					sureBtnText: "확인",
-					sureBtnClick: function() {
-						$('#CouponForm input[name=buyStdt]').focus();
-					}
-				});
-				return false;
-			}
-
-			if (fromDate > toDate) {
-				mcxDialog.alertC("등록 시작일자는 종료일자 보다 클 수 없습니다.", {
-					sureBtnText: "확인",
-					sureBtnClick: function() {
-						$('#CouponForm input[name=buyEddt]').focus();
-					}
-				});
-				return false;
-			}
-		}
-
-		// 할인율 validation 체크 (100을 넘길수없음)
-		if($('#dcWay').val() == 'G240_11') {
-			if($('#dcPval').val() > 100) {
-				mcxDialog.alert('PC할인율은 100을 초과할수없습니다.');
-				$('#dcPval').focus();
-				return false;
-			} else if( $('#dcMval').val() > 100) {
-				mcxDialog.alert('모바일(웹)할인율은 100을 초과할수없습니다.');
-				$('#dcMval').focus();
-				return false;
-			}  else if( $('#dcAval').val() > 100) {
-				mcxDialog.alert('모바일(앱)할인율은 100을 초과할수없습니다.');
-				$('#dcAval').focus();
-				return false;
-			}
-		}
-
-		// 할인쿠폰 유형에 따른 총 발행수량 수정 (주문서 쿠폰이고 난수쿠폰일 경우)
-		if($('#CouponForm #cpnType').val() == "G230_20" && $('#CouponForm input:radio[name="dcCdGb"]:checked').val() == "G233_20") {
-			if($("#CouponForm input[name=randomCpnQty]").val() == "" || $("#CouponForm input[name=randomCpnQty]").val() < 1) {
-				mcxDialog.alert('쿠폰의 발급 수량을 입력해주세요.');
-				$("#CouponForm input[name=randomCpnQty]").focus();
-				return false;
-			}
-			if($("#CouponForm input[name=randomCpnQty]").val() > 10000) {
-				mcxDialog.alert('쿠폰의 발급 수량은 10000장을 초과할 수 없습니다.');
-				$("#CouponForm input[name=randomCpnQty]").focus();
-				return false;
-			}
-
-		} else if ($('#CouponForm #cpnType').val() == "G230_20" && $('#CouponForm input:radio[name="dcCdGb"]:checked').val() == "G233_10") {		// 주문서 쿠폰이고 시리얼 유형일 경우
-			if($("#CouponForm input[name=serialCpnNm]").val().length > 10) {
-				mcxDialog.alert('시리얼쿠폰키워드는 10글자를 넘을 수 없습니다.');
-				$("#CouponForm input[name=serialCpnNm]").focus();
-				return false;
-			}
-			if($("#CouponForm input[name=serialCpnQty]").val() == "" || $("#CouponForm input[name=serialCpnQty]").val() < 1) {
-				mcxDialog.alert('쿠폰의 발급 수량을 입력해주세요.');
-				$("#CouponForm input[name=serialCpnQty]").focus();
-				return false;
-			}
-			if($("#CouponForm input[name=randomCpnQty]").val() > 10000) {
-				mcxDialog.alert('쿠폰의 발급 수량은 10000장을 초과할 수 없습니다.');
-				$("#CouponForm input[name=serialCpnQty]").focus();
-				return false;
-			}
-		} else if ($('#CouponForm #cpnType').val() == "G230_11" && $("#limitedTimeCpnYn").val() == "Y") {	// 상품쿠폰이고 선착순쿠폰 체크되어 있을때
-			let cpnData = gagaAgGrid.getAllRowData(limitedTimeCpnGridOptions);
-			if(cpnData.length < 1){
-				mcxDialog.alert("선착순 쿠폰을 설정해주세요.");
-				return false;
-			}else{
-				for(i=0; i<cpnData.length; i++){
-
-					if(gagajf.isNull(cpnData[i].limitCpnNm)){
-						mcxDialog.alert(i+1 + "번 행의 선착순 쿠폰명을 입력해주세요.");
-						return false;
-					}
-
-					if(gagajf.isNull(cpnData[i].downStdt)){
-						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드시작일을 입력해주세요.");
-						return false;
-					}
-
-					if(gagajf.isNull(cpnData[i].downEddt)){
-						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드종료일을 입력해주세요.");
-						return false;
-					}else{
-						var tempEddt = cpnData[i].downEddt.replace(/[^0-9]/g, '');
-						if(tempEddt.substr(8,14) == '000000'){
-							tempEddt = tempEddt.substr(0,8)+'235959';
-							cpnData[i].downEddt = tempEddt;
-						}
-					}
-
-					if(gagajf.isNull(cpnData[i].downLimitQty)){
-						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드가능수량을 입력해주세요.");
-						return false;
-					}else{
-						if(cpnData[i].downLimitQty<1){
-							mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드가능수량을 1개이상 입력해주세요.");
-							return false;
-						}
-					}
-				}
-				limitedTimeCpnGridOptions.api.setRowData(cpnData);
-			}
-		}
-
-		return true;
-	}
-
-	// 할인방식 변경
-	$("#CouponForm input[name=rdoDcWay]").bind('click change', function () {
-		var radioValue = $(this).val();
-		//발급이력이있으면 수정안됨
-		if(issueCnt > 0 ) {
-			return false;
-		}
-
-		if(radioValue == 'G240_10') {		//할인금액
-			$('#dcPvalSpan').text("원");
-			$('#dcMvalSpan').text("원");
-			$('#dcAvalSpan').text("원");
-			$('#dcPval').val(0);
-			$('#dcMval').val(0);
-			$('#dcAval').val(0);
-			$('#maxDcAmt').val(0);
-			// if($("#CouponForm input[name=rdoCpnType]:checked").val() == 'G230_10'){
-			// 	$("#CouponForm .maxDcAmtArea").hide();
-			// }else{
-			// 	$("#CouponForm .maxDcAmtArea").show();
-			// }
-			$("#CouponForm .maxDcAmtArea").hide();
-		} else {		//할인율
-			$('#dcPvalSpan').text("%");
-			$('#dcMvalSpan').text("%");
-			$('#dcAvalSpan').text("%");
-			$('#dcPval').val(0);
-			$('#dcMval').val(0);
-			$('#dcAval').val(0);
-			$('#maxDcAmt').val(0);
-
-			if($("#CouponForm input[name=rdoCpnType]:checked").val() == 'G230_10'){
-				$("#CouponForm .maxDcAmtArea").hide();
-			}else{
-				$("#CouponForm .maxDcAmtArea").show();
-			}
-		}
-	});
-
-	// 쿠폰타입변경
-	$("#CouponForm input[name=rdoCpnType]").bind('click change', function () {
-		var radioValue = $(this).val();
-		
-		// 2021.08.13 초기화작업이 필요함
-		$('#CouponForm').find('input[name=maxDcAmt]').val("0");
-
-		if (mode == "U") {
-			radioValue = cpnDetail.cpnType;
-		}
-
-		// 즉시할인아닌 쿠폰들 할인금액체크시 최대할인금액 숨김
-		var rdoDcWayVal = $("#CouponForm input[name=rdoDcWay]:checked").val();
-
-		// 즉시할인쿠폰일때 유효기간 노출, 그외 유효기간/일수 선택
-		var pgGbVal = $('#CouponForm select[name="pdGb"] option:selected').val();
-		if(pgGbVal == 'P') {	//기간
-			$('#CouponForm .availDaysArea').hide();
-			$('#CouponForm .availDateTr').show();
-		}else{	//일수
-			$('#CouponForm .availDateTr').hide();
-			$('#CouponForm .availDaysArea').show();
-		}
-
-		// 즉시할인 쿠폰일때
-		if(radioValue == 'G230_10'){
-			$('#CouponForm .custJoinTr').hide();
-			$('#CouponForm .custJoinDateTr').hide();
-			$('#CouponForm .firstBuyTr').hide();
-			$('#CouponForm .buyDateTr').hide();
-			$('#CouponForm .dcCdCheck1').hide();
-			$('#CouponForm .limitedTimeCpnArea').hide();
-			$('#CouponForm .pdGbArea').hide();
-			$('#CouponForm .availDaysArea').hide();
-			// $("#CouponForm").find("input:radio[name='rdoApplyScope']:radio[value='A']").attr('disabled', true);
-			// 다운로드 시작,종료 , 기간/일수 , 제휴채널, 고객 등급, 구매제한 , 할인율일때 구매제한한도, 1회발행수량, 다운로드 가능여부 숨기기
-			$('#CouponForm .downStdtArea').hide();
-			$('#CouponForm .downEddtArea').hide();
-			$('#CouponForm .pdGbArea').hide();
-			$('#CouponForm .buyLimitAmtArea').hide();
-			$('#CouponForm .usableCustGbArea').hide();
-			$('#CouponForm .usableCustGradeArea').hide();
-			$('#CouponForm .downAblArea').hide();
-			$('#CouponForm .linkAfArea').hide();
-			$('#CouponForm .dcCdCheck2').hide();
-			$('#CouponForm .maxDcAmtArea').hide();
-			$('#CouponForm .availDateTr').show();
-			$("#CouponForm input:radio[name='rdoApplyScope']:radio[value=I]").prop('checked', true);
-			$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('disabled', true);
-			$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('readonly', true);
-		}else{
-			$("#CouponForm input:radio[name='rdoApplyScope']:radio[value=I]").prop('checked', true);
-			$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('disabled', false);
-			$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('readonly', false);
-
-			if(radioValue == 'G230_11'){ // 상품쿠폰일때 선착순쿠폰 등록 가능
-				$('#CouponForm .limitedTimeCpnArea').show();
-			}else{
-				$('#CouponForm .limitedTimeCpnArea').hide();
-			}
-
-			if(radioValue == 'G230_30'){	// 배송비쿠폰일때 할인금액만 적용
-				$("#CouponForm input:radio[name='rdoDcWay']:radio[value=G240_10]").prop('checked', true);
-				$("#CouponForm").find("input:radio[name='rdoDcWay']").attr('disabled', true);
-				$("#CouponForm").find("input:radio[name='rdoDcWay']").attr('readonly', true);
-				$('#CouponForm .maxDcAmtArea').hide();
-				// 적용대상 탭
-				$("#CouponForm .supplyTrArea").show();
-				$("#CouponForm .brandTrArea").hide();
-				$("#CouponForm .categoryTrArea").hide();
-				$("#CouponForm .goodsTrArea").hide();
-				$("#CouponForm .exceptArea").hide();
-			}else{
-				$("#CouponForm").find("input:radio[name='rdoDcWay']").attr('disabled', false);
-				$("#CouponForm").find("input:radio[name='rdoDcWay']").attr('readonly', false);
-				$('#CouponForm .maxDcAmtArea').show();
-				// 적용대상 탭
-				$("#CouponForm .supplyTrArea").show();
-				$("#CouponForm .brandTrArea").show();
-				$("#CouponForm .categoryTrArea").show();
-				$("#CouponForm .goodsTrArea").show();
-				$("#CouponForm .exceptArea").show();
-			}
-
-			$('#CouponForm .custJoinTr').show();
-			$('#CouponForm .firstBuyTr').show();
-			$('#CouponForm .dcCdCheck1').show();
-			$('#CouponForm .pdGbArea').show();
-			// 다운로드 시작,종료 , 기간/일수 , 제휴채널, 고객 등급, 구매제한 , 할인율일때 구매제한한도, 1회발행수량, 다운로드 가능여부 숨기기
-			$('#CouponForm .downStdtArea').show();
-			$('#CouponForm .downEddtArea').show();
-			$('#CouponForm .buyLimitAmtArea').show();
-			$('#CouponForm .usableCustGbArea').show();
-			$('#CouponForm .usableCustGradeArea').show();
-			$('#CouponForm .downAblArea').show();
-			$('#CouponForm .linkAfArea').show();
-			$('#CouponForm .dcCdCheck2').show();
-
-			// 즉시할인아닌 쿠폰들 할인금액체크시 최대할인금액 숨김
-			if(rdoDcWayVal == 'G240_10'){
-				$('#CouponForm .maxDcAmtArea').hide();
-			}else{
-				$('#CouponForm .maxDcAmtArea').show();
-			}
-		}
-
-		// 즉시할인쿠폰만 개별, 나머진 전체/개별
-		if(radioValue == 'G230_10') {
-			$("input:radio[name='rdoApplyScope']:radio[value='I']").prop('checked', true);
-		} else {
-			$("input:radio[name='rdoApplyScope']:radio[value='I']").prop('checked', true);
-		}
-
-		// 주문서 쿠폰 선택시 결제수단 노출
-		if(radioValue == 'G230_20') {
-			$('#CouponForm .payTypeTr').show();
-			$('#CouponForm #payType').attr('required' , true);
-			$("#CouponForm .dcCdGb").show();		// 할인쿠폰유형 노출
-		} else {
-			$('#CouponForm .payTypeTr').hide();
-			$('#CouponForm #payType').attr('required' , false );
-			$("#CouponForm .dcCdGb").hide();		// 할인쿠폰유형 숨김
-			$("#CouponForm input:radio[name='dcCdGb']:radio[value='G233_00']").prop('checked', true);		// 주문서 쿠폰이 아닐 경우 일반 쿠폰으로 설정
-		}
-
-		// 선착순 쿠폰 비노출
-		$("#CouponForm .limitedTimeCpnTab").hide();
-		$('#CouponForm input:checkbox[name=limitedTimeCpnYn]').prop('checked', false);
-		$("#limitedTimeCpnYn").val("N");
-		$("#CouponForm #totPubLimitQty").val(0);
-		$("#CouponForm input[id=chkBoxTotPubQty]").prop("disabled", false);
-		$("#CouponForm input[id=totPubLimitQty]").prop("disabled", false);
-		$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent("label").removeClass("checked");
-		$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").attr('readonly', false);
-		$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('disabled', false);
-		$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent().prop('disabled', false);
-
-		// 다운로드 가능여부 활성화
-		$("#CouponForm select[name=downAblYn]").attr("readonly", false);
-		$("#CouponForm select[name=downAblYn]").attr("disabled", false);
-
-		$('#CouponForm #cpnType').val(radioValue);
-	});
-
-	// 할인 쿠폰 유형 변경
-	$("#CouponForm input[name=dcCdGb]").bind('click change', function () {
-		if(this.value == "G233_00") {			// 일반 유형
-			$("#CouponForm .dcCdCheck1").show();
-			$("#CouponForm .dcCdCheck2").show();
-			$("#CouponForm .serialCpnArea").hide();
-			$("#CouponForm .randomCpnArea").hide();
-			$("#CouponForm #newCustYn").parent().attr("colspan", "");
-			$("#CouponForm .normalCol").attr("colspan", "5");
-			$('#CouponForm input[name="serialCpnNm"]').attr('required' , false);
-			$('#CouponForm input[name="serialCpnQty"]').attr('required' , false);
-			$('#CouponForm input[name="randomCpnQty"]').attr('required' , false);
-		} else {
-			if(this.value == "G233_10") {		// 시리얼 유형
-				$("#CouponForm .serialCpnArea").show();
-				$("#CouponForm .randomCpnArea").hide();
-				$("#CouponForm .normalCol").attr("colspan", "5");
-				$('#CouponForm input[name="serialCpnNm"]').attr('required' , true);
-				$('#CouponForm input[name="serialCpnQty"]').attr('required' , true);
-				$('#CouponForm input[name="randomCpnQty"]').attr('required' , false);
-			} else {							// 난수 유형
-				$("#CouponForm .serialCpnArea").hide();
-				$("#CouponForm .randomCpnArea").show();
-				$("#CouponForm .normalCol").attr("colspan", "");
-				$('#CouponForm input[name="serialCpnNm"]').attr('required' , false);
-				$('#CouponForm input[name="serialCpnQty"]').attr('required' , false);
-				$('#CouponForm input[name="randomCpnQty"]').attr('required' , true);
-			}
-			$("#CouponForm .dcCdCheck1").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
-			$("#CouponForm .dcCdCheck2").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
-			$("#CouponForm #newCustYn").parent().attr("colspan", "5");		// 총발행제한 수량을 없애면서 신규회원여부 colspan 수정
-		}
-	});
-
-	// 적용대상 - 브랜드 추가 버튼시
-	$('#btnBrandAdd').on('click' , function(){
-		cfnOpenBrandListPopup("fnSetPopupBrandInfo", "M");
-	});
-
-	// 브랜드 설정 / 브랜드 추가 콜백함수 (단수로 가져오므로 복수일 경우에 수정 확인 필요)
-	var fnSetPopupBrandInfo = function(result) {
-		for(let i = 0 ; i < result.length ; i++) {
-			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(brandGridOptions);		// 받아온 모든 데이터
-
-			// 받아온 data for
-			for(let j = 0 ; j < gridListValue.length ; j++) {
-				if(gridListValue[j].brandCd == result[i].brandCd) {	addChk = false;	}					// 중복체크
-			}
-
-			// 중복되지 않은 데이터 리스트에 추가
-			if(addChk) {
-				gagaAgGrid.addRowData(brandGridOptions, {"brandCd" : result[i].brandCd, "brandEnm" : result[i].brandEnm, "supplyCompNm" : result[i].supplyCompNm});
-			}
-		}
-	};
-
-	// 적용대상 - 브랜드 삭제 버튼시
-	/*$('#btnBrandDel').on('click' , function(){
-		var selectVal = brandGridOptions.api.getSelectedRows();
-
-		if(selectVal.length == 0) {
-			mcxDialog.alert("선택된 행이 없습니다");
-			return;
-		}
-
-		if(cpnDetail != null ) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					gagaAgGrid.removeRowData(brandGridOptions , false);
-					var cpnRefvalSqArr = [];
-
-					$.each(selectVal , function(idx , item){
-						cpnRefvalSqArr.push(item.cpnRefvalSq);
-					});
-					var data = { cpnRefvalSqArr : cpnRefvalSqArr
-						,cpnId : cpnDetail.cpnId
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/refval/update', jsonData);
-				}
-			});
-		} else {
-			// 신규화면이면 그리드상 삭제
-			brandGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(brandGridOptions)});
-		}
-	});
-	*/
-
-	// 적용대상 - 공급처 추가 버튼시
-	$('#btnSupplyAdd').on('click' , function (){
-		cfnOpenCompanyListPopup("fnSetPopupComapnyInfo" , "M");
-	});
-
-	// 공급업체 설정 / 업체 추가 콜백함수
-	var fnSetPopupComapnyInfo = function(result) {
-		// 기존 리스트 데이터 for
-		for(let i = 0 ; i < result.length ; i++) {
-			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(supplyGridOptions);		// 받아온 모든 데이터
-
-			// 받아온 data for
-			for(let j = 0 ; j < gridListValue.length ; j++) {
-				// 동일한 data는 추가하지 않음
-				if(gridListValue[j].supplyCompCd == result[i].supplyCompCd) {	addChk = false;	}		// 중복체크
-			}
-
-			// 중복되지 않은 데이터 리스트에 추가
-			if(addChk) {
-				gagaAgGrid.addRowData(supplyGridOptions, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm});
-			}
-		}
-	};
-
-	// 적용대상 - 공급처 삭제시시
-	/*$('#btnSupplyDel').on('click' , function () {
-		var selectVal = supplyGridOptions.api.getSelectedRows();
-
-		if(selectVal.length == 0) {
-			mcxDialog.alert("선택된 행이 없습니다");
-			return;
-		}
-
-		if(cpnDetail != null ) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					gagaAgGrid.removeRowData(supplyGridOptions , false);
-					var cpnRefvalSqArr = [];
-
-					$.each(selectVal , function(idx , item){
-						cpnRefvalSqArr.push(item.cpnRefvalSq);
-					});
-
-					var data = { cpnRefvalSqArr : cpnRefvalSqArr
-						,cpnId : $('#CouponForm #cpnId').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/refval/update', jsonData);
-				}
-			});
-		} else {
-			// 신규화면이면 그리드상 삭제
-			supplyGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(supplyGridOptions)});
-		}
-	});*/
-
-	// 적용대상 - 카테고리 추가시
-	$('#btnCateAdd').on('click' , function () {
-		cfnOpenCategoryPopup("fnSetPopupCategoryInfo");
-	});
-
-	// 카테고리 추가 콜백 함수
-	var fnSetPopupCategoryInfo = function (result) {
-		// 기존 리스트 데이터 for
-		for(let i = 0 ; i < result.length ; i++) {
-			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(cateGridOptions);		// 받아온 모든 데이터
-
-			// 받아온 data for
-			for(let j = 0 ; j < gridListValue.length ; j++) {
-				// 동일한 data는 추가하지 않음
-				if(gridListValue[j].cateNo == result[i].cateNo) {	addChk = false;	}		// 중복체크
-			}
-
-			// 중복되지 않은 데이터 리스트에 추가
-			if(addChk) {
-				gagaAgGrid.addRowData(cateGridOptions, {"siteCd":result[i].siteCd , "cateGb":result[i].cateGb , "cateNo":result[i].cateNo, "cateNm":result[i].cateNm , "formalGb":result[i].formalGb , "brandEnm":null});
-			}
-		}
-	}
-
-	// 적용대상 - 카테고리 삭제시
-	/*$('#btnCateDel').on('click' , function () {
-		var selectVal = cateGridOptions.api.getSelectedRows();
-
-		if(selectVal.length == 0) {
-			mcxDialog.alert("선택된 행이 없습니다");
-			return;
-		}
-		if(cpnDetail != null) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					gagaAgGrid.removeRowData(cateGridOptions , false);
-
-					var cpnRefvalSqArr = [];
-
-					$.each(selectVal , function(idx , item){
-						cpnRefvalSqArr.push(item.cpnRefvalSq);
-					});
-
-					var data = { cpnRefvalSqArr : cpnRefvalSqArr
-						,cpnId : $('#CouponForm #cpnId').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/refval/update', jsonData);
-				}
-			});
-		} else {
-			cateGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(cateGridOptions)});
-		}
-	});
-	*/
-
-	// 적용대상 - 상품 추가시
-	$('#btnGoodsAdd').on('click' , function () {
-		cfnOpenGoodsPopup("fnSetPopupApplyGoodsInfo");
-	});
-
-	// 적용 상품 리스트 콜백함수
-	var fnSetPopupApplyGoodsInfo = function(result) {
-		gridAddGoodsList(goodsGridOptions, result , "apply");
-	};
-
-	// 적용대상 - 상품 삭제 시
-	/*$('#btnGoodsDel').on('click' , function () {
-		var selectVal = goodsGridOptions.api.getSelectedRows();
-
-		if(selectVal.length == 0) {
-			mcxDialog.alert("선택된 행이 없습니다");
-			return;
-		}
-		if(cpnDetail != null ) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					gagaAgGrid.removeRowData(goodsGridOptions , false);
-					var cpnRefvalSqArr = [];
-
-					$.each(selectVal , function(idx , item){
-						cpnRefvalSqArr.push(item.cpnRefvalSq);
-					});
-					var data = { cpnRefvalSqArr : cpnRefvalSqArr
-						,cpnId : $('#CouponForm #cpnId').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/refval/update', jsonData);
-				}
-			});
-		} else {
-			goodsGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(goodsGridOptions)});
-		}
-	});
-	 */
-
-	// 적용대상 - 제외상품 추가시
-	$('#btnExcepGoodsAdd').on('click' , function(){
-		cfnOpenGoodsPopup("fnSetPopupExceptGoodsInfo");
-	});
-	// 적용 상품 리스트 콜백함수
-	var fnSetPopupExceptGoodsInfo = function(result) {
-		gridAddGoodsList(excepGoodsGridOptions, result , "except");
-	};
-
-	// 적용대상 - 제외상품 삭제시
-	/*$('#btnExcepGoodsDel').on('click' , function () {
-		var selectVal = excepGoodsGridOptions.api.getSelectedRows();
-
-		if(selectVal.length == 0) {
-			mcxDialog.alert("선택된 행이 없습니다");
-			return;
-		}
-
-		if(cpnDetail != null ) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					gagaAgGrid.removeRowData(excepGoodsGridOptions , false);
-					var cpnRefvalSqArr = [];
-
-					$.each(selectVal , function(idx , item){
-						cpnRefvalSqArr.push(item.cpnRefvalSq);
-					});
-
-					var data = { cpnRefvalSqArr : cpnRefvalSqArr
-						,cpnId : $('#CouponForm #cpnId').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-
-					gagajf.ajaxJsonSubmit('/marketing/coupon/refval/update', jsonData);
-				}
-			});
-		} else {
-			excepGoodsGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(excepGoodsGridOptions)});
-		}
-	});
-	*/
-
-	// ag-grid 상품관련 list 콜백함수
-	function gridAddGoodsList(OriginGridListOption, result, gubun) {
-		var goodsGbVal = "G800_10";
-		if(gubun == 'except'){
-			goodsGbVal = "G800_30";
-		}
-
-		let addCnt = 0;
-		let failCnt = 0;
-		let dupliCnt = 0;
-		let goodsDCnt = 0;
-
-		for(let i = 0 ; i < result.length ; i++) {
-			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(OriginGridListOption);		// 받아온 모든 데이터
-
-			if(result[i].goodsType == 'G056_D'){ //딜상품 제외
-				addChk = false;
-				goodsDCnt++;
-			}
-
-			// 받아온 data for
-			for(let j = 0 ; j < gridListValue.length ; j++) {
-				if(gridListValue[j].goodsCd == result[i].goodsCd) {	addChk = false;	dupliCnt++;}				// 중복체크
-			}
-
-			// 중복되지 않은 데이터 리스트에 추가
-			if(addChk) {
-				gagaAgGrid.addRowData(OriginGridListOption, {"goodsGb": goodsGbVal, "goodsCd" : result[i].goodsCd, "goodsNm" : result[i].goodsNm});
-				addCnt++;
-			}
-		}
-		uifnPopupClose('popupGoods');
-		failCnt = result.length - addCnt - dupliCnt - goodsDCnt;
-		mcxDialog.alert("데이터가 적용되었습니다.<br/>" + addCnt + "건 성공, "+ dupliCnt + "건 중복, "+ goodsDCnt + "건 딜상품 제외, " + failCnt + "건 실패");
-	}
-
-	// 기간 일수 변경시
-	function pdGbChange(pThis){
-		var selectVal = $(pThis).val();
-
-		if(typeof selectVal == "undefined") {
-			if(mode == "U") {
-				selectVal = cpnDetail.pdGb;
-			} else {
-				selectVal = "P";
-			}
-		}
-
-		if(selectVal == "P") {
-			$('.availDateTr').css('display' , '');
-			$("#CouponForm .availDaysArea").hide();
-			// $('.availDayTr').css('display' , 'none');
-			$('#CouponForm #availDays').attr('required' , false);
-			$('#CouponForm #availStDay').attr('required' , true);
-			$('#CouponForm #availEdDay').attr('required' , true);
-			$('#CouponForm #availStdt').attr('required' , true);
-			$('#CouponForm #availEddt').attr('required' , true);
-		} else {
-			$('.availDateTr').css('display' , 'none');
-			// $('.availDayTr').css('display' , '');
-			$("#CouponForm .availDaysArea").show();
-			$('#CouponForm #availDays').attr('required' , true);
-			$('#CouponForm #availStDay').attr('required' , false);
-			$('#CouponForm #availEdDay').attr('required' , false);
-			$('#CouponForm #availStdt').attr('required' , false);
-			$('#CouponForm #availEddt').attr('required' , false);
-		}
-	}
-
-	// 첫구매여부 변경시
-	function firstOrdYnChange(pThis){
-		var selectVal = $(pThis).val();
-
-		if(typeof selectVal == "undefined") {
-			if(mode == "U") {
-				selectVal = cpnDetail.firstOrdYn;
-			} else {
-				selectVal = "N";
-			}
-		}
-
-		if(selectVal == "Y" ) {
-			$('.buyDateTr').css('display' , '');
-			$('#buyStdt').attr('required' , true);
-			$('#buyEddt').attr('required' , true);
-		} else {
-			$('.buyDateTr').css('display' , 'none');
-			$('#buyStdt').attr('required' , false);
-			$('#buyEddt').attr('required' , false);
-		}
-	}
-
-	// 신규회원여부 변경시
-	function newCustYnChange(pThis){
-		var selectVal = $(pThis).val();
-
-		if(typeof selectVal == "undefined") {
-			if(mode == "U") {
-				selectVal = cpnDetail.newCustYn;
-			} else {
-				selectVal = "N";
-			}
-		}
-
-		if(selectVal == "Y" ) {
-			$('.custJoinDateTr').css('display' , '');
-			$('#custJoinStdt').attr('required' , true);
-			$('#custJoinEddt').attr('required' , true);
-		} else {
-			$('.custJoinDateTr').css('display' , 'none');
-			$('#custJoinStdt').attr('required' , false);
-			$('#custJoinEddt').attr('required' , false);
-		}
-	}
-
-	// 행추가시
-	$('#btnAddRow').on('click' , function(){
-		var data = { supplyCompCd: null , burdenRate : null , delYn : 'N'};
-		gagaAgGrid.addRowData(inComGridOptions , data , "supplyCompCd" );
-	});
-	// 행삭제시
-	/*$('#btnDelRow').on('click' , function(){
-		inComGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(inComGridOptions)});
-	});*/
-
-	// 제휴링크채널 수정 (제휴링크가 꼭필요한지 확인필요)
-	// function fnChangeAfLinkCdList(){
-	// 	var actionUrl = "/business/aflink/list" + '?' + $('#afChannel').serialize();
-	// 	var tag = "";
-	//
-	// 	$("#CouponForm #afLinkCd").children('option').remove();
-	//
-	// 	gagajf.ajaxJsonSubmit(actionUrl, '', function(data) {
-	// 		for (let i = 0; i < data.length; i++) {
-	// 			if (data[i].useYn == 'Y') {
-	// 				tag += '<option value="' + data[i].afLinkCd + '">[' + data[i].afLinkCd + '] ' + data[i].afLinkNm + '</option>';
-	// 			}
-	// 		}
-	//
-	// 		$("#CouponForm #afLinkCd").append(tag);
-	// 		$("#CouponForm #afLinkCd option:first").attr("selected" , "selected");
-	//
-	// 	});
-	// }
-
-	// 발급받은회원 팝업
-	var fnPubCustListPopUp = function (){
-		let cpnId = $("#CouponForm #cpnId").val();
-		var actionUrl = "/marketing/coupon/pubCust/popup/form?cpnId=" + cpnId;
-		cfnOpenModalPopup(actionUrl, 'CpnPubCustListPopup');
-	};
-
-	// 쿠폰발행팝업
-	function fnCustomerIssuePopUp(){
-		cfnCpnPubForCustPopup();
-	};
-
-	// 전송시 값 세팅
-	function setReqValue(){
-		// 쿠폰유형값 세팅
-		$('#CouponForm #cpnType').val($('#CouponForm input:radio[name="rdoCpnType"]:checked').val());
-		// 할인방식값 세팅
-		$('#CouponForm #dcWay').val($('#CouponForm input:radio[name="rdoDcWay"]:checked').val());
-		// 적용범위값 세팅
-		$('#CouponForm #applyScope').val($('#CouponForm input:radio[name="rdoApplyScope"]:checked').val());
-		// 쿠폰상태
-		$('#CouponForm input[name=cpnStat]').val($('input:radio[name="disCpnStat"]:checked').val());
-		// 다운로드기간 세팅
-		let downStdt = "";
-		let downEddt = "";
-		downStdt = $('#CouponForm input[name=downStDay]').val()+$('#CouponForm select[name=downStHH]').val()+$('#CouponForm select[name=downStMM]').val()+'00';
-		if($('#CouponForm select[name=downEdHH]').val() == "24"){
-			downEddt = $('#CouponForm input[name=downEdDay]').val()+'235959';
-		}else{
-			downEddt = $('#CouponForm input[name=downEdDay]').val()+$('#CouponForm select[name=downEdHH]').val()+$('#CouponForm select[name=downEdMM]').val()+'00';
-		}
-		downStdt = downStdt.replace(/[^0-9]/g, '');
-		downEddt = downEddt.replace(/[^0-9]/g, '');
-		$('#CouponForm #downStdt').val(downStdt);
-		$('#CouponForm #downEddt').val(downEddt);
-
-		// 유효기간 세팅
-		let availStdt = "";
-		let availEddt = "";
-		if($("#CouponForm #pdGb").val() == 'P') {
-			availStdt = $('#CouponForm input[name=availStDay]').val()+$('#CouponForm select[name=availStHH]').val()+$('#CouponForm select[name=availStMM]').val()+'00';
-			if($('#CouponForm select[name=availEdHH]').val() == "24"){
-				availEddt = $('#CouponForm input[name=availEdDay]').val()+'235959';
-			}else{
-				availEddt = $('#CouponForm input[name=availEdDay]').val()+$('#CouponForm select[name=availEdHH]').val()+$('#CouponForm select[name=availEdMM]').val()+'00';
-			}
-			availStdt = availStdt.replace(/[^0-9]/g, '');
-			availEddt = availEddt.replace(/[^0-9]/g, '');
-			$('#CouponForm #availStdt').val(availStdt);
-			$('#CouponForm #availEddt').val(availEddt);
-			$('#CouponForm #availDays').val('');
-		} else {
-			$('#CouponForm #availStdt').val('');
-			$('#CouponForm #availEddt').val('');
-		}
-
-		// 첫구매기간세팅
-		let buyStdt = "";
-		let buyEddt = "";
-		buyStdt = $('#CouponForm input[name=buyStDay]').val()+$('#CouponForm select[name=buyStHH]').val()+$('#CouponForm select[name=buyStMM]').val()+'00';
-		if($('#CouponForm select[name=buyEdHH]').val() == "24"){
-			buyEddt = $('#CouponForm input[name=buyEdDay]').val()+'235959';
-		}else{
-			buyEddt = $('#CouponForm input[name=buyEdDay]').val()+$('#CouponForm select[name=buyEdHH]').val()+$('#CouponForm select[name=buyEdMM]').val()+'00';
-		}
-		buyStdt = buyStdt.replace(/[^0-9]/g, '');
-		buyEddt = buyEddt.replace(/[^0-9]/g, '');
-		$('#CouponForm #buyStdt').val(buyStdt);
-		$('#CouponForm #buyEddt').val(buyEddt);
-
-		// 신규회원기간 세팅
-		let custJoinStdt = "";
-		let custJoinEddt = "";
-		custJoinStdt = $('#CouponForm input[name=custJoinStDay]').val()+$('#CouponForm select[name=custJoinStHH]').val()+$('#CouponForm select[name=custJoinStMM]').val()+'00';
-		if($('#CouponForm select[name=custJoinEdHH]').val() == "24"){
-			custJoinEddt = $('#CouponForm input[name=custJoinEdDay]').val()+'235959';
-		}else{
-			custJoinEddt = $('#CouponForm input[name=custJoinEdDay]').val()+$('#CouponForm select[name=custJoinEdHH]').val()+$('#CouponForm select[name=custJoinEdMM]').val()+'00';
-		}
-		custJoinStdt = custJoinStdt.replace(/[^0-9]/g, '');
-		custJoinEddt = custJoinEddt.replace(/[^0-9]/g, '');
-		$('#CouponForm #custJoinStdt').val(custJoinStdt);
-		$('#CouponForm #custJoinEddt').val(custJoinEddt);
-
-		// 할인쿠폰 유형에 따른 총 발행수량 수정 (주문서 쿠폰이고 난수쿠폰일 경우)
-		if($('#CouponForm #cpnType').val() == "G230_20" && $('#CouponForm input:radio[name="dcCdGb"]:checked').val() == "G233_20") {
-			$('#CouponForm input[name="totPubLimitQty"]').val($('#CouponForm input[name="randomCpnQty"]').val());	// 총 발행수량 난수 생성수량으로 변경
-			$('#CouponForm input[name="custPubLimitQty"]').val(1);		// 1인당 발행제한수량 1개 고정
-			$('#CouponForm input[name="onePubQty"]').val(1);			// 1회발행수량 1개 고정
-		} else if ($('#CouponForm #cpnType').val() == "G230_20" && $('#CouponForm input:radio[name="dcCdGb"]:checked').val() == "G233_10") {		// 주문서 쿠폰이고 시리얼 유형일 경우
-			$('#CouponForm input[name="rdCpnNm"]').val($('#CouponForm input[name="serialCpnNm"]').val());			// 시리얼유형쿠폰명 저장
-			$('#CouponForm input[name="totPubLimitQty"]').val($('#CouponForm input[name="serialCpnQty"]').val());	// 총 발행수량 랜덤쿠폰발급수량으로 변경
-			$('#CouponForm input[name="custPubLimitQty"]').val(1);		// 1인당 발행제한수량 1개 고정
-			$('#CouponForm input[name="onePubQty"]').val(1);			// 1회발행수량 1개 고정
-		}
-
-		// 적용대상 - 공급처 그리드 전체값 세팅
-		/*var supplyAllData = gagaAgGrid.getAllRowData(supplyGridOptions);
-		var jsonSupplyCompData = JSON.stringify(supplyAllData);
-		$('#CouponForm #supplyCompList').val(jsonSupplyCompData);*/
-		$('#CouponForm #supplyCompList').val(gagaAgGrid.getAllRowData(supplyGridOptions));
-		// 적용대상 - 브랜드 그리드 전체값 세팅
-		/*var brandAllData = gagaAgGrid.getAllRowData(brandGridOptions);
-		var jsonBrandData = JSON.stringify(brandAllData);
-		$('#CouponForm #brandList').val(jsonBrandData);*/
-		$('#CouponForm #brandList').val(gagaAgGrid.getAllRowData(brandGridOptions));
-		// // 적용대상 - 카테고리 그리드 전체값 세팅
-		/*var cateAllData = gagaAgGrid.getAllRowData(cateGridOptions);
-		var jsonCateData = JSON.stringify(cateAllData);
-		$('#CouponForm #cateList').val(jsonCateData);*/
-		$('#CouponForm #cateList').val(gagaAgGrid.getAllRowData(cateGridOptions));
-		// 적용대상 - 적용상품 그리드 전체값 세팅
-		/*var goodsAllData = gagaAgGrid.getAllRowData(goodsGridOptions);
-		var jsonGoodsData = JSON.stringify(goodsAllData);
-		$('#CouponForm #applyGoodsList').val(jsonGoodsData);*/
-		$('#CouponForm #applyGoodsList').val(gagaAgGrid.getAllRowData(goodsGridOptions));
-		// 적용대상 - 제외상품 그리드 전체값 세팅
-		/*var exceptGoodsAllData = gagaAgGrid.getAllRowData(excepGoodsGridOptions);
-		var jsonExceptGoodsData = JSON.stringify(exceptGoodsAllData);
-		$('#CouponForm #excepGoodsList').val(jsonExceptGoodsData);*/
-		$('#CouponForm #excepGoodsList').val(gagaAgGrid.getAllRowData(excepGoodsGridOptions));
-		// 입점업체분담율 그리드 전체값 세팅
-		/*var inCompBurdenAllData = gagaAgGrid.getAllRowData(inComGridOptions);
-		var jsonInCompBurdenData = JSON.stringify(inCompBurdenAllData);
-		$('#CouponForm #burdenList').val(jsonInCompBurdenData);*/
-		$('#CouponForm #burdenList').val(gagaAgGrid.getAllRowData(inComGridOptions));
-
-	}
-
-	$(document).ready(function() {
-		gagaAgGrid.createGrid('inComGridList', inComGridOptions);
-		gagaAgGrid.createGrid('brandGridList', brandGridOptions);
-		gagaAgGrid.createGrid('cateGridList', cateGridOptions);
-		gagaAgGrid.createGrid('supplyGridList', supplyGridOptions);
-		gagaAgGrid.createGrid('goodsGridList', goodsGridOptions);
-		gagaAgGrid.createGrid('excepGoodsGridList', excepGoodsGridOptions);
-		gagaAgGrid.createGrid('randomCpnList', randomCouponGridOptions);
-		gagaAgGrid.createGrid('limitedTimeCpnList', limitedTimeCpnGridOptions);
-		gagaAgGrid.createGrid('afChannelList', afLinkOptions );
-
-		// 일단 버튼 숨김
-		$(".couponButton").hide();
-
-		// 초기화시 데이터 세팅
-		if (mode == "N") {
-			$('input[name=rdoCpnType]').eq(0).attr("checked", true);
-			$('input[name=dcCdGb]').eq(0).attr("checked", true);
-			$('input[name=rdoDcWay]').eq(0).attr("checked", true);
-			$('input[name=rdoApplyScope]').eq(0).attr("checked", true)
-			$('#CouponForm #availEdHH option:last').attr("selected", "selected");
-			$('#CouponForm #availEdMM option').hide();
-			$('#CouponForm #availEdMM option:first').show().prop("selected", true);
-			$('#downEdHH option:last').attr("selected", "selected");
-			$('#downEdMM option').hide();
-			$('#downEdMM option:first').show().prop("selected", true);
-			$('#custJoinEdHH option:last').attr("selected", "selected");
-			$('#custJoinEdMM option').hide();
-			$('#custJoinEdMM option:first').show().prop("selected", true);
-			$('#buyEdHH option:last').attr("selected", "selected");
-			$('#buyEdMM option').hide();
-			$('#buyEdMM option:first').show().prop("selected", true);
-			$("#CouponForm #afChannel option:first").attr("selected" , "selected");
-			$("#CouponForm .normalCol").attr("colspan", "5");
-			$("#CouponForm .randomCpnArea").hide();
-			$("#CouponForm .maxDcAmtArea").hide();
-			$("input:radio[name='disCpnStat']:radio[value='G232_10']").prop('checked', true); // 선택하기
-			if($('input:radio[name="rdoCpnType"]:checked').val() == 'G230_10'){
-				$('#CouponForm .custJoinTr').hide();
-				$('#CouponForm .custJoinDateTr').hide();
-				$('#CouponForm .firstBuyTr').hide();
-				$('#CouponForm .buyDateTr').hide();
-				$('#CouponForm .dcCdCheck1').hide();
-				// 다운로드 시작,종료 , 기간/일수 , 제휴채널, 고객 등급, 구매제한 , 할인율일때 구매제한한도, 1회발행수량, 다운로드 가능여부 숨기기
-				$('#CouponForm .downStdtArea').hide();
-				$('#CouponForm .downEddtArea').hide();
-				$('#CouponForm .pdGbArea').hide();
-				$('#CouponForm .buyLimitAmtArea').hide();
-				$('#CouponForm .usableCustGbArea').hide();
-				$('#CouponForm .usableCustGradeArea').hide();
-				$('#CouponForm .downAblArea').hide();
-				$('#CouponForm .linkAfArea').hide();
-				$('#CouponForm .dcCdCheck2').hide();
-				$('#CouponForm .maxDcAmtArea').hide();
-				// $("#CouponForm #afLinkCd").attr('disabled', true);
-				$("#CouponForm input:radio[name='rdoApplyScope']:radio[value=I]").prop('checked', true);
-				$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('disabled', true);
-				$("#CouponForm").find("input:radio[name='rdoApplyScope']").attr('readonly', true);
-			}
-			$("#btnCouponSave").show();	// 저장버튼
-			$("#CouponForm .buttonSpan").show();
-
-		} else {
-			if(cpnDetail.cpnStat == "G232_10"){
-				$("#btnCouponSave").show();		// 저장버튼
-				$("#btnChangeStatIng").show();	// 진행버튼
-				$("#btnCouponDelete").show();	// 삭제버튼
-				$("#btnCouponEnd").show();		// 종료버튼
-				$("#CouponForm .buttonSpan").show();	//행추가,삭제버튼
-			}else if(cpnDetail.cpnStat == "G232_11"){
-				$("#btnCouponSave").hide();		// 저장버튼
-				$("#btnCouponStop").show();		// 중지버튼
-				$("#btnCouponDelete").show();	// 삭제버튼
-				$("#btnCouponEnd").show();		// 종료버튼
-				$("#CouponForm .buttonSpan").hide();	//행추가,삭제버튼
-			}else{
-				$("#CouponForm .buttonSpan").hide();	//행추가,삭제버튼
-			}
-
-			// 사용가능고객구분 체크박스 체크 제거
-			$('#CouponForm input:checkbox[name=usableCustGbArr]').prop('checked', false);
-			if(cpnCustGbList.length > 0){
-				var chkboxCnt = $('#CouponForm input:checkbox[name=usableCustGbArr]').length;
-				var dataCnt = cpnCustGbList.length;
-				for(let i=0; i<chkboxCnt; i++){
-					for(let j=0; j<dataCnt; j++){
-						var data = cpnCustGbList[j].usableCustGb;
-						if($('#CouponForm input:checkbox[name=usableCustGbArr]').eq(i).val() == data){
-							$('#CouponForm input:checkbox[name=usableCustGbArr]').eq(i).prop('checked', true);
-							$("#CouponForm input:checkbox[name=usableCustGbArr]").eq(i).parent("label").addClass('checked');
-						}
-					}
-				}
-			}
-
-			// 사용고객등급구분 체크박스 체크 제거
-			$('#CouponForm input:checkbox[name=usableCustGradeArr]').prop('checked', false);
-			if(cpnCustGradeList.length > 0){
-				var chkboxCnt = $('#CouponForm input:checkbox[name=usableCustGradeArr]').length;
-				var dataCnt = cpnCustGradeList.length;
-				for(let i=0; i<chkboxCnt; i++){
-					for(let j=0; j<dataCnt; j++){
-						var data = cpnCustGradeList[j].usableCustGrade;
-						if($('#CouponForm input:checkbox[name=usableCustGradeArr]').eq(i).val() == data){
-							$('#CouponForm input:checkbox[name=usableCustGradeArr]').eq(i).prop('checked', true);
-							$("#CouponForm input:checkbox[name=usableCustGradeArr]").eq(i).parent().addClass('checked');
-						}
-					}
-				}
-			}
-
-			// 결제수단 체크박스 체크 제거
-			$('#CouponForm input:checkbox[name=payTypeArr]').prop('checked', false);
-			if(cpnPayTypeList.length > 0){
-				var chkboxCnt = $('#CouponForm input:checkbox[name=payTypeArr]').length;
-				var dataCnt = cpnPayTypeList.length;
-				for(let i=0; i<chkboxCnt; i++){
-					for(let j=0; j<dataCnt; j++){
-						var data = cpnPayTypeList[j].payType;
-						if($('#CouponForm input:checkbox[name=payTypeArr]').eq(i).val() == data){
-							$('#CouponForm input:checkbox[name=payTypeArr]').eq(i).prop('checked', true);
-							$("#CouponForm input:checkbox[name=payTypeArr]").eq(i).parent().addClass('checked');
-						}
-					}
-				}
-			}
-
-			// 수정모드시 그리드 세팅
-			inComGridOptions.api.setRowData(cpnDtlBurdenList);
-			supplyGridOptions.api.setRowData(cpnDtlRefvalSupplyCompList);
-			goodsGridOptions.api.setRowData(cpnDtlRefvalApplyGoodsList);
-			excepGoodsGridOptions.api.setRowData(cpnDtlRefvalExceptGoodsList);
-			brandGridOptions.api.setRowData(cpnDtlRefvalBrandList);
-			cateGridOptions.api.setRowData(cpnDtlRefvalCateList);
-			randomCouponGridOptions.api.setRowData(randomCpnList);
-			limitedTimeCpnGridOptions.api.setRowData(limitedTimeCpnList);
-			afLinkOptions.api.setRowData(afChannelList);
-
-			if(cpnDetail.cpnType == "G230_30"){
-				$("#CouponForm .supplyTrArea").show();
-				$("#CouponForm .brandTrArea").hide();
-				$("#CouponForm .categoryTrArea").hide();
-				$("#CouponForm .goodsTrArea").hide();
-				$("#CouponForm .exceptArea").hide();
-			}
-
-			// 기본정보 세팅
-			$("#CouponForm input:radio[name='rdoDcWay']:radio[value=" + cpnDetail.dcWay + "]").prop('checked', true);
-			$("#CouponForm input:radio[name='rdoCpnType']:radio[value=" + cpnDetail.cpnType + "]").prop('checked', true);
-			$("#CouponForm input:radio[name='rdoApplyScope']:radio[value=" + cpnDetail.applyScope + "]").prop('checked', true);
-			$("#CouponForm #dcPval").val(cpnDetail.dcPval);
-			$("#CouponForm #dcMval").val(cpnDetail.dcMval);
-			$("#CouponForm #dcAval").val(cpnDetail.dcAval);
-			$("#CouponForm #maxDcAmt").val(cpnDetail.maxDcAmt);
-			$("#CouponForm #totPubLimitQty").val(cpnDetail.totPubLimitQty);
-			$("#CouponForm #custPubLimitQty").val(cpnDetail.custPubLimitQty);
-
-			if(cpnDetail.cpnStat!='G232_10'){
-				$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").attr('readonly', true);
-				$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('disabled', true);
-				$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent().prop('disabled', true);
-				$("#CouponForm #totPubLimitQty").attr('readonly', true);
-				$("#CouponForm #totPubLimitQty").attr('disabled', true);
-
-				$("#CouponForm input[id=chkNoLimitCustPubLimitQty]").attr('readonly', true);
-				$("#CouponForm input[id=chkNoLimitCustPubLimitQty]").prop('disabled', true);
-				$("#CouponForm input[id=chkNoLimitCustPubLimitQty]").parent().prop('disabled', true);
-				$("#CouponForm #custPubLimitQty").attr('readonly', true);
-				$("#CouponForm #custPubLimitQty").attr('disabled', true);
-				if(cpnDetail.totPubLimitQty<1){
-					$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent("label").addClass("checked");
-					$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('checked', true);
-				}else{
-					$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('checked', false);
-				}
-
-				if(cpnDetail.custPubLimitQty<1){
-					$("#CouponForm input[id=chkNoLimitCustPubLimitQty]").parent("label").addClass("checked");
-					$("#CouponForm input[id=chkNoLimitCustPubLimitQty]").prop('checked', true);
-				}else{
-					$("#CouponForm input[id=chkNoLimitCustPubLimitQty]").prop('checked', false);
-				}
-			}else{
-				if(cpnDetail.totPubLimitQty<1){
-					$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent("label").addClass("checked");
-					$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('checked', true);
-					$("#CouponForm #totPubLimitQty").attr('readonly', true);
-					$("#CouponForm #totPubLimitQty").attr('disabled', true);
-				}else{
-					$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('checked', false);
-					$("#CouponForm #totPubLimitQty").attr('readonly', false);
-					$("#CouponForm #totPubLimitQty").attr('disabled', false);
-				}
-
-				if(cpnDetail.custPubLimitQty<1){
-					$("#CouponForm input[id=chkNoLimitCustPubLimitQty]").parent("label").addClass("checked");
-					$("#CouponForm input[id=chkNoLimitCustPubLimitQty]").prop('checked', true);
-					$("#CouponForm #custPubLimitQty").attr('readonly', true);
-					$("#CouponForm #custPubLimitQty").attr('disabled', true);
-				}else{
-					$("#CouponForm input[id=chkNoLimitCustPubLimitQty]").prop('checked', false);
-					$("#CouponForm #custPubLimitQty").attr('readonly', false);
-					$("#CouponForm #custPubLimitQty").attr('disabled', false);
-				}
-			}
-
-			$("#CouponForm #onePubQty").val(cpnDetail.onePubQty);
-			$("#CouponForm #usableCustGb").val(cpnDetail.usableCustGb).prop("selected", true);
-			$("#CouponForm #usableCustGrade").val(cpnDetail.usableCustGrade).prop("selected", true);
-			$("#CouponForm #endAlimYn").val(cpnDetail.endAlimYn).prop("selected", true);
-			$("#CouponForm #firstOrdYn").val(cpnDetail.firstOrdYn).prop("selected", true);
-			$("#CouponForm #reissuance").val(cpnDetail.reissuance).prop("selected", true);
-			$("#CouponForm #dnGb").val(cpnDetail.dnGb).prop("selected", true);
-			//$("#CouponForm #cpnStat").val(cpnDetail.cpnStat).prop("selected", true);
-			$("input:radio[name='disCpnStat']:radio[value="+cpnDetail.cpnStat+"]").prop('checked', true); // 선택하기
-			$("#CouponForm #newCustYn").val(cpnDetail.newCustYn).prop("selected", true);
-			$("#CouponForm #pdGb").val(cpnDetail.pdGb).prop("selected", true);
-			$("#CouponForm #siteCd").val(cpnDetail.siteCd).prop("selected", true);
-			$("#CouponForm #afChannel").val(cpnDetail.afChannel).prop("selected", true);
-			$("#CouponForm #cpnNm").val(cpnDetail.cpnNm);
-			$("#CouponForm #downAblYn").val(cpnDetail.downAblYn);
-			$("#CouponForm #buyLimitAmt").val(cpnDetail.buyLimitAmt);
-			$("#CouponForm #cpnId").val(cpnDetail.cpnId);
-			$("#CouponForm #cpnDesc").val(cpnDetail.cpnDesc);
-
-			if(cpnDetail.cpnType == "G230_10"){
-				$('#CouponForm .custJoinTr').hide();
-				$('#CouponForm .custJoinDateTr').hide();
-				$('#CouponForm .firstBuyTr').hide();
-				$('#CouponForm .buyDateTr').hide();
-				$('#CouponForm .dcCdCheck1').hide();
-				$('#CouponForm .limitedTimeCpnArea').hide();
-				$('#CouponForm .pdGbArea').hide();
-				$('#CouponForm .availDaysArea').hide();
-				// $("#CouponForm").find("input:radio[name='rdoApplyScope']:radio[value='A']").attr('disabled', true);
-				// 다운로드 시작,종료 , 기간/일수 , 제휴채널, 고객 등급, 구매제한 , 할인율일때 구매제한한도, 1회발행수량, 다운로드 가능여부 숨기기
-				$('#CouponForm .downStdtArea').hide();
-				$('#CouponForm .downEddtArea').hide();
-				$('#CouponForm .pdGbArea').hide();
-				$('#CouponForm .buyLimitAmtArea').hide();
-				$('#CouponForm .usableCustGbArea').hide();
-				$('#CouponForm .usableCustGradeArea').hide();
-				$('#CouponForm .downAblArea').hide();
-				$('#CouponForm .linkAfArea').hide();
-				$('#CouponForm .dcCdCheck2').hide();
-				$('#CouponForm .maxDcAmtArea').hide();
-				$('#CouponForm .availDateTr').show();
-			}else{
-				$('#CouponForm .custJoinTr').show();
-				$('#CouponForm .custJoinDateTr').show();
-				$('#CouponForm .firstBuyTr').show();
-				$('#CouponForm .buyDateTr').show();
-				$('#CouponForm .dcCdCheck1').show();
-				if(cpnDetail.cpnType == "G230_30"){
-					$('#CouponForm .maxDcAmtArea').hide();
-				}
-				if(cpnDetail.cpnType == "G230_20"){
-					$('#CouponForm .payTypeTr').show();
-				}
-			}
-
-			if(limitedTimeCpnList.length>0 && cpnDetail.cpnType == "G230_11"){  //상품쿠폰이고 선착순쿠폰일때
-				$("#CouponForm input:checkbox[name=limitedTimeCpnYn]").val("Y");
-				$("#CouponForm .limitedTimeCpnTab").show();
-				$('#CouponForm .limitedTimeCpnArea').show();
-				$('#CouponForm input:checkbox[name=limitedTimeCpnYn]').prop('checked', true);
-				$("#CouponForm input:checkbox[name=limitedTimeCpnYn]").parent().addClass('checked');
-				$("#CouponForm input[id=limitedTimeCpnYn]").parent("label").addClass("checked");
-				$("#CouponForm input[id=limitedTimeCpnYn]").attr('readonly', true);
-				$("#CouponForm input[id=limitedTimeCpnYn]").prop('disabled', true);
-				$("#CouponForm input[id=limitedTimeCpnYn]").parent().prop('disabled', true);
-				$("#CouponForm input[id=totPubLimitQty]").prop("disabled", true);
-				$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent("label").addClass("checked");
-				$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").attr('readonly', true);
-				$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('disabled', true);
-				$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent().prop('disabled', true);
-				$("#CouponForm select[name=downAblYn]").attr("readonly", true);
-				$("#CouponForm select[name=downAblYn]").attr("disabled", true);
-			}else{
-				$("#CouponForm #limitedTimeCpnYn").val("N");
-				$("#CouponForm .limitedTimeCpnTab").hide();
-				$('#CouponForm .limitedTimeCpnArea').hide();
-			}
-
-			// 한번 저장되면 쿠폰유형, 할인쿠폰유형, 난수 생성수량, 시리얼명, 시리얼쿠폰발급수량, 할인방식, 적용범위 수정 불가 처리
-			$("#CouponForm input:radio[name='rdoCpnType']").attr('readonly', true);
-			$("#CouponForm input:radio[name='rdoCpnType']").prop('disabled', true);
-			$("#CouponForm input:radio[name='rdoCpnType']").parent().prop('disabled', true);
-			$("#CouponForm input:radio[name='rdoDcWay']").attr('readonly', true);
-			$("#CouponForm input:radio[name='rdoDcWay']").prop('disabled', true);
-			$("#CouponForm input:radio[name='rdoDcWay']").parent().prop('disabled', true);
-			$("#CouponForm input:radio[name='dcCdGb']").attr('readonly', true);
-			$("#CouponForm input:radio[name='dcCdGb']").prop('disabled', true);
-			$("#CouponForm input:radio[name='dcCdGb']").parent().prop('disabled', true);
-			$("#CouponForm input:radio[name='dcCdGb']:radio[value=" + cpnDetail.dcCdGb + "]").prop('checked', true);
-			$("#CouponForm input[name='serialCpnNm']").prop("disabled", true);
-			$("#CouponForm input[name='serialCpnQty']").prop("disabled", true);
-			$("#CouponForm input[name='randomCpnQty']").prop("disabled", true);
-			$("#CouponForm input:radio[name='rdoApplyScope']").attr('readonly', true);
-			$("#CouponForm input:radio[name='rdoApplyScope']").prop('disabled', true);
-			$("#CouponForm input:radio[name='rdoApplyScope']").parent().prop('disabled', true);
-
-			// 할인방식이 할인율이면 최대할인금액 노출
-			if(cpnDetail.dcWay == "G240_11"){
-				$("#CouponForm .maxDcAmtArea").show();
-			}
-			// 주문서 쿠폰이면 할인쿠폰유형 노출
-			if(cpnDetail.cpnType == "G230_20") {
-				$("#CouponForm .dcCdGb").show();
-			}
-			// 할인코드유형이 일반유형이 아니면
-			if(cpnDetail.dcCdGb != "G233_00" && cpnDetail.dcCdGb != "G233_30") {
-				$("#CouponForm .randomCpnTab").show();							// 시리얼 및 난수 TAB 노출
-				$("#CouponForm .dcCdCheck1").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
-				$("#CouponForm .dcCdCheck2").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
-				if(cpnDetail.dcCdGb == "G233_10") {		// 시리얼 유형
-					$("#CouponForm input[name='serialCpnQty']").val(cpnDetail.totPubLimitQty);
-					$("#CouponForm input[name='serialCpnNm']").val(cpnDetail.rdCpnNm);
-					$("#CouponForm .normalCol").attr("colspan", "5");
-					$("#CouponForm .serialCpnArea").show();
-					$("#CouponForm .randomCpnArea").hide();
-				} else if (cpnDetail.dcCdGb == "G233_20") {
-					$("#CouponForm input[name='randomCpnQty']").val(cpnDetail.totPubLimitQty);
-					$("#CouponForm .normalCol").attr("colspan", "");
-					$("#CouponForm .randomCpnArea").show();
-					$("#CouponForm .serialCpnArea").hide();
-				}
-			}
-
-			if($("#CouponForm input[name=rdoDcWay]:checked").val() == 'G240_10') {
-				$("#CouponForm .maxDcAmtArea").hide();
-			}else{
-				$('#dcPvalSpan').text("%");
-				$('#dcMvalSpan').text("%");
-				$('#dcAvalSpan').text("%");
-			}
-
-			// 쿠폰다운 날짜
-			let edDtArr;
-			if(!gagajf.isNull(cpnDetail.downEddt)){
-				edDtArr = cpnDetail.downEddt.split(" ");
-				if(edDtArr[1] == "23:59:59") {
-					edHour = "24";
-					edMinute = "00";
-					$("#CouponForm #downEdMM option").hide();
-					$('#CouponForm #downEdMM option:first').show().prop("selected", true);
-				}
-			}
-
-			// 유효 날짜
-			let availEdDtArr;
-			if(!gagajf.isNull(cpnDetail.availEddt)){
-				availEdDtArr = cpnDetail.availEddt.split(" ");
-				if(availEdDtArr[1] == "23:59:59") {
-					edHour = "24";
-					edMinute = "00";
-					$("#CouponForm #availEdMM option").hide();
-					$('#CouponForm #availEdMM option:first').show().prop("selected", true);
-				}
-			}
-
-			// 첫구매 날짜
-			let firstBuyEdDtArr;
-			if(!gagajf.isNull(cpnDetail.buyEddt)){
-				firstBuyEdDtArr = cpnDetail.buyEddt.split(" ");
-				if(firstBuyEdDtArr[1] == "23:59:59") {
-					edHour = "24";
-					edMinute = "00";
-					$("#CouponForm #buyEdMM option").hide();
-					$('#CouponForm #buyEdMM option:first').show().prop("selected", true);
-				}
-			}
-
-			// 신규가입 날짜
-			let custJoinEdDtArr;
-			if(!gagajf.isNull(cpnDetail.custJoinEddt)){
-				custJoinEdDtArr = cpnDetail.custJoinEddt.split(" ");
-				if(custJoinEdDtArr[1] == "23:59:59") {
-					edHour = "24";
-					edMinute = "00";
-					$("#CouponForm #custJoinEdMM option").hide();
-					$('#CouponForm #custJoinEdMM option:first').show().prop("selected", true);
-				}
-			}
-
-			// 만약 쿠폰 발급한 내역이 있으면 쿠폰수정못하게 readonly , disabled 속성 추가
-			if (issueCnt > 0) {
-				$("#CouponForm #usableCustGb").attr('readonly', true);
-				$("#CouponForm #usableCustGb").attr('disabled', true);
-				$("#CouponForm #afChannel").attr('readonly', true);
-				$("#CouponForm #afChannel").attr('disabled', true);
-				$("#CouponForm #usableCustGrade").attr('readonly', true);
-				$("#CouponForm #usableCustGrade").attr('disabled', true);
-				$("#CouponForm #endAlimYn").attr('readonly', true);
-				$("#CouponForm #endAlimYn").attr('disabled', true);
-				$("#CouponForm #firstOrdYn").attr('readonly', true);
-				$("#CouponForm #firstOrdYn").attr('disabled', true);
-				$("#CouponForm #reissuance").attr('readonly', true);
-				$("#CouponForm #reissuance").attr('disabled', true);
-				$("#CouponForm #dnGb").attr('readonly', true);
-				$("#CouponForm #dnGb").attr('disabled', true);
-				$("#CouponForm #newCustYn").attr('readonly', true);
-				$("#CouponForm #newCustYn").attr('disabled', true);
-				$("#CouponForm #pdGb").attr('readonly', true);
-				$("#CouponForm #pdGb").attr('disabled', true);
-				$("#CouponForm #downAblYn").attr('readonly', true);
-				$("#CouponForm #downAblYn").attr('disabled', true);
-				$("#CouponForm #siteCd").attr('readonly', true);
-				$("#CouponForm #siteCd").attr('disabled', true);
-				$("#CouponForm #cpnNm").attr('readonly', true);
-				$("#CouponForm #cpnNm").attr('disabled', true);
-				$("#CouponForm #dcPval").attr('readonly', true);
-				$("#CouponForm #dcPval").attr('disabled', true);
-				$("#CouponForm #dcMval").attr('readonly', true);
-				$("#CouponForm #dcMval").attr('disabled', true);
-				$("#CouponForm #dcAval").attr('readonly', true);
-				$("#CouponForm #dcAval").attr('disabled', true);
-				$("#CouponForm #maxDcAmt").attr('readonly', true);
-				$("#CouponForm #maxDcAmt").attr('disabled', true);
-				$("#CouponForm #totPubLimitQty").attr('readonly', true);
-				$("#CouponForm #totPubLimitQty").attr('disabled', true);
-				$("#CouponForm #custPubLimitQty").attr('readonly', true);
-				$("#CouponForm #custPubLimitQty").attr('disabled', true);
-				$("#CouponForm #onePubQty").attr('readonly', true);
-				$("#CouponForm #onePubQty").attr('disabled', true);
-				$("#CouponForm #downStDay").attr('readonly', true);
-				$("#CouponForm #downStDay").attr('disabled', true);
-				$("#CouponForm #downStHH").attr('readonly', true);
-				$("#CouponForm #downStHH").attr('disabled', true);
-				$("#CouponForm #downStMM").attr('readonly', true);
-				$("#CouponForm #downStMM").attr('disabled', true);
-				$("#CouponForm #downEdDay").attr('readonly', true);
-				$("#CouponForm #downEdDay").attr('disabled', true);
-				$("#CouponForm #downEdHH").attr('readonly', true);
-				$("#CouponForm #downEdHH").attr('disabled', true);
-				$("#CouponForm #downEdMM").attr('readonly', true);
-				$("#CouponForm #downEdMM").attr('disabled', true);
-				$("#CouponForm #buyLimitAmt").attr('readonly', true);
-				$("#CouponForm input:radio[name='rdoDcWay']").attr('readonly', true);
-				$("#CouponForm input:radio[name='rdoApplyScope']").attr('readonly', true);
-				$("#CouponForm .rdoBtn").css('cursor', 'auto');
-				$("#CouponForm #cpnId").attr('readonly', true);
-				$("#CouponForm #cpnId").attr('disabled', true);
-				$("#CouponForm input:checkbox[name='cpnCreateType']").attr('readonly', true);
-				$("#CouponForm input:checkbox[name='cpnCreateType']").attr('disabled', true);
-				$("#CouponForm input:checkbox[name=cpnCreateType]").attr('checked', true);
-				$("#CouponForm input:checkbox[name=cpnCreateType]").parent().addClass('checked');
-				$("#btnAddAf").hide();
-				$("#btnDeleteAf").hide();
-				$("#btnSupplyAdd").hide();
-				$("#btnSupplyDel").hide();
-				$("#btnBrandAdd").hide();
-				$("#btnBrandDel").hide();
-				$("#btnCateAdd").hide();
-				$("#btnCateDel").hide();
-				$("#btnGoodsAdd").hide();
-				$("#btnGoodsDel").hide();
-				$("#btnExcepGoodsAdd").hide();
-				$("#btnExcepGoodsDel").hide();
-				$("#btnAddApplyBurden").hide();
-				$("#btnDelApplyBurden").hide();
-			}
-			// 다운로드기간 세팅
-			splitDate("start", cpnDetail.downStdt, "down");
-			splitDate("end", cpnDetail.downEddt, "down");
-			// 유효기간이 날짜인경우 날짜 세팅
-			if (cpnDetail.pdGb == "P") {
-				splitDate("start", cpnDetail.availStdt, "avail");
-				splitDate("end", cpnDetail.availEddt, "avail");
-				if(issueCnt > 0) {
-					$("#CouponForm #availStDay").attr('readonly', true);
-					$("#CouponForm #availStDay").attr('disabled', true);
-					$("#CouponForm #availStHH").attr('readonly', true);
-					$("#CouponForm #availStHH").attr('disabled', true);
-					$("#CouponForm #availStMM").attr('readonly', true);
-					$("#CouponForm #availStMM").attr('disabled', true);
-					$("#CouponForm #availEdDay").attr('readonly', true);
-					$("#CouponForm #availEdDay").attr('disabled', true);
-					$("#CouponForm #availEdHH").attr('readonly', true);
-					$("#CouponForm #availEdHH").attr('disabled', true);
-					$("#CouponForm #availEdMM").attr('readonly', true);
-					$("#CouponForm #availEdMM").attr('disabled', true);
-				}
-			} else {
-				$("#CouponForm #availDays").val(cpnDetail.availDays);
-				$('#CouponForm #availEdHH option:last').attr("selected", "selected");
-				$('#CouponForm #availEdMM option:last').attr("selected", "selected");
-
-			}
-			// 첫구매여부 적용하는 경우 날짜 세팅
-			if (cpnDetail.firstOrdYn == "Y") {
-				splitDate("start", cpnDetail.buyStdt, "buy");
-				splitDate("end", cpnDetail.buyEddt, "buy");
-				if(issueCnt > 0) {
-					$("#CouponForm #buyStDay").attr('readonly', true);
-					$("#CouponForm #buyStDay").attr('disabled', true);
-					$("#CouponForm #buyStHH").attr('readonly', true);
-					$("#CouponForm #buyStHH").attr('disabled', true);
-					$("#CouponForm #buyStMM").attr('readonly', true);
-					$("#CouponForm #buyStMM").attr('disabled', true);
-				}
-			}
-			// 신규회원여부 적용하는 경우 날짜 세팅
-			if (cpnDetail.newCustYn == "Y") {
-				splitDate("start", cpnDetail.custJoinStdt, "custJoin");
-				splitDate("end", cpnDetail.custJoinEddt, "custJoin");
-				if(issueCnt > 0) {
-					$("#CouponForm #custJoinStDay").attr('readonly', true);
-					$("#CouponForm #custJoinStDay").attr('disabled', true);
-					$("#CouponForm #custJoinStHH").attr('readonly', true);
-					$("#CouponForm #custJoinStHH").attr('disabled', true);
-					$("#CouponForm #custJoinStMM").attr('readonly', true);
-					$("#CouponForm #custJoinStMM").attr('disabled', true);
-				}
-			}
-
-			// 대기상태 아닐 때 , 체크박스 disabled, 입력불가
-			if(cpnDetail.cpnStat != 'G232_10'){
-				$("#CouponForm").find("input[name=usableCustGbArr]").each(function (){
-					$(this).attr('disabled', true);
-				});
-				$("#CouponForm").find("input[name=usableCustGradeArr]").each(function (){
-					$(this).attr('disabled', true);
-				});
-				$("#CouponForm").find("input[name=payTypeArr]").each(function (){
-					$(this).attr('disabled', true);
-				});
-
-				$("#CouponForm #usableCustGb").attr('readonly', true);
-				$("#CouponForm #usableCustGb").attr('disabled', true);
-				$("#CouponForm #afChannel").attr('readonly', true);
-				$("#CouponForm #afChannel").attr('disabled', true);
-				$("#CouponForm #usableCustGrade").attr('readonly', true);
-				$("#CouponForm #usableCustGrade").attr('disabled', true);
-				$("#CouponForm #endAlimYn").attr('readonly', true);
-				$("#CouponForm #endAlimYn").attr('disabled', true);
-				$("#CouponForm #firstOrdYn").attr('readonly', true);
-				$("#CouponForm #firstOrdYn").attr('disabled', true);
-				$("#CouponForm #reissuance").attr('readonly', true);
-				$("#CouponForm #reissuance").attr('disabled', true);
-				$("#CouponForm #dnGb").attr('readonly', true);
-				$("#CouponForm #dnGb").attr('disabled', true);
-				$("#CouponForm #newCustYn").attr('readonly', true);
-				$("#CouponForm #newCustYn").attr('disabled', true);
-				$("#CouponForm #pdGb").attr('readonly', true);
-				$("#CouponForm #pdGb").attr('disabled', true);
-				$("#CouponForm #downAblYn").attr('readonly', true);
-				$("#CouponForm #downAblYn").attr('disabled', true);
-				$("#CouponForm #siteCd").attr('readonly', true);
-				$("#CouponForm #siteCd").attr('disabled', true);
-				$("#CouponForm #cpnNm").attr('readonly', true);
-				$("#CouponForm #cpnNm").attr('disabled', true);
-				$("#CouponForm #dcPval").attr('readonly', true);
-				$("#CouponForm #dcPval").attr('disabled', true);
-				$("#CouponForm #dcMval").attr('readonly', true);
-				$("#CouponForm #dcMval").attr('disabled', true);
-				$("#CouponForm #dcAval").attr('readonly', true);
-				$("#CouponForm #dcAval").attr('disabled', true);
-				$("#CouponForm #maxDcAmt").attr('readonly', true);
-				$("#CouponForm #maxDcAmt").attr('disabled', true);
-				$("#CouponForm #totPubLimitQty").attr('readonly', true);
-				$("#CouponForm #totPubLimitQty").attr('disabled', true);
-				$("#CouponForm #custPubLimitQty").attr('readonly', true);
-				$("#CouponForm #custPubLimitQty").attr('disabled', true);
-				$("#CouponForm #onePubQty").attr('readonly', true);
-				$("#CouponForm #onePubQty").attr('disabled', true);
-				$("#CouponForm #downStDay").attr('readonly', true);
-				$("#CouponForm #downStDay").attr('disabled', true);
-				$("#CouponForm #downStHH").attr('readonly', true);
-				$("#CouponForm #downStHH").attr('disabled', true);
-				$("#CouponForm #downStMM").attr('readonly', true);
-				$("#CouponForm #downStMM").attr('disabled', true);
-				$("#CouponForm #downEdDay").attr('readonly', true);
-				$("#CouponForm #downEdDay").attr('disabled', true);
-				$("#CouponForm #downEdHH").attr('readonly', true);
-				$("#CouponForm #downEdHH").attr('disabled', true);
-				$("#CouponForm #downEdMM").attr('readonly', true);
-				$("#CouponForm #downEdMM").attr('disabled', true);
-				$("#CouponForm #buyLimitAmt").attr('readonly', true);
-				$("#CouponForm input:radio[name='rdoDcWay']").attr('readonly', true);
-				$("#CouponForm input:radio[name='rdoApplyScope']").attr('readonly', true);
-				$("#CouponForm .rdoBtn").css('cursor', 'auto');
-				$("#CouponForm #cpnId").attr('readonly', true);
-				$("#CouponForm #cpnId").attr('disabled', true);
-				$("#CouponForm input:checkbox[name='cpnCreateType']").attr('readonly', true);
-				$("#CouponForm input:checkbox[name='cpnCreateType']").attr('disabled', true);
-				$("#CouponForm input:checkbox[name=cpnCreateType]").attr('checked', true);
-				$("#CouponForm input:checkbox[name=cpnCreateType]").parent().addClass('checked');
-				$("#CouponForm #availStDay").attr('readonly', true);
-				$("#CouponForm #availStDay").attr('disabled', true);
-				$("#CouponForm #availStHH").attr('readonly', true);
-				$("#CouponForm #availStHH").attr('disabled', true);
-				$("#CouponForm #availStMM").attr('readonly', true);
-				$("#CouponForm #availStMM").attr('disabled', true);
-				$("#CouponForm #availEdDay").attr('readonly', true);
-				$("#CouponForm #availEdDay").attr('disabled', true);
-				$("#CouponForm #availEdHH").attr('readonly', true);
-				$("#CouponForm #availEdHH").attr('disabled', true);
-				$("#CouponForm #availEdMM").attr('readonly', true);
-				$("#CouponForm #availEdMM").attr('disabled', true);
-
-				$("#btnAddAf").hide();
-				$("#btnDeleteAf").hide();
-				$("#btnSupplyAdd").hide();
-				$("#btnSupplyDel").hide();
-				$("#btnBrandAdd").hide();
-				$("#btnBrandDel").hide();
-				$("#btnCateAdd").hide();
-				$("#btnCateDel").hide();
-				$("#btnGoodsAdd").hide();
-				$("#btnGoodsDel").hide();
-				$("#btnExcepGoodsAdd").hide();
-				$("#btnExcepGoodsDel").hide();
-				$("#btnAddApplyBurden").hide();
-				$("#btnDelApplyBurden").hide();
-			}
-		}
-		// 기본세팅
-		pdGbChange();
-		firstOrdYnChange();
-		newCustYnChange();
-		// fnChangeAfLinkCdList();
-
-		// 제휴채널2뎁스 기본세팅
-		if(cpnDetail != null ) {
-			$("#CouponForm #afLinkCd").val(cpnDetail.afLinkCd).prop("selected", true);
-			if(issueCnt > 0 ) {
-				$("#CouponForm #afLinkCd").attr('readonly', true);
-				$("#CouponForm #afLinkCd").attr('disabled', true);
-			}
-		}
-	});
-
-	// 날짜분리 ( 시작/종료날짜구분(start , end) , 날짜String , 적용타겟대상 )
-	function splitDate(stedGb , date , targetGb ){
-		var str = date;
-		var dateStr = str.split(' ');
-		var timeArr = dateStr[1].split(':');
-
-		if(stedGb == "start") {
-			$("#CouponForm #"+targetGb+"StDay").val(dateStr[0]);
-			$("#CouponForm #"+targetGb+"StHH").val(timeArr[0]);
-			$("#CouponForm #"+targetGb+"StMM").val(timeArr[1]);
-		} else {
-			$("#CouponForm #"+targetGb+"EdDay").val(dateStr[0]);
-			$("#CouponForm #"+targetGb+"EdHH").val(timeArr[0]);
-			$("#CouponForm #"+targetGb+"EdMM").val(timeArr[1]);
-		}
-	}
-	// 제한없음 문구 변경
-	$("input[name=totPubLimitQty],input[name=custPubLimitQty],input[name=buyLimitAmt],input[name=onePubQty]").change(function(){
-		if($(this).val() == "0"){
-			$("#"+$(this).attr("name")+"Span").html("*제한없음");
-		}else{
-			$("#"+$(this).attr("name")+"Span").html("");
-		}
-		$("#"+$(this).attr("name")+"Span").css("color", "red");
-	});
-	setTimeout(function(){
-		$("input[name=totPubLimitQty],input[name=custPubLimitQty],input[name=buyLimitAmt],input[name=onePubQty]").change();
-	}, 1);
-
-	// 콤마 찍어주기
-	$(function(){
-		setComma("CouponForm" , true);
-	});
-
-	function setComma(formId, pBoolean){
-		setTimeout(function(){
-			//숫자타입 콤마 찍어주기
-			$("#"+formId+" [data-valid-type=numeric]").each(function(){
-				$(this).change(function(){
-					if(pBoolean){
-						$(this).val($(this).val().addComma());
-					}else{
-						$(this).val($(this).val().removeComma());
-					}
-				});
-				if(pBoolean){
-					$(this).val($(this).val().addComma());
-				}else{
-					$(this).val($(this).val().removeComma());
-				}
-			});
-		}, 300);
-	}
-
-	// 진행 버튼 클릭
-	$("#btnChangeStatIng").on("click", function() {
-		mcxDialog.confirmC("쿠폰을 진행하시겠습니까?<br/>진행 후에는 수정이 제한될 수 있습니다.", {
-			btn: ["아니오","예"],
-			btnClick: function(index) {
-				if(index == 2) {
-					let data = { cpnStat : "G232_11"				// 진행
-						, cpnId : $('#CouponForm input[name=cpnId]').val()
-					}
-					var jsonData = JSON.stringify(data);					
-					gagajf.ajaxJsonSubmit('/marketing/coupon/changeStat', jsonData, fnCouponSaveCollback);
-				}
-			}
-		});
-	});
-
-	// 중지 버튼 클릭
-	$("#btnCouponStop").on("click", function() {
-		mcxDialog.confirmC("쿠폰 진행을 중지하시겠습니까?<br/>중지 후에는 진행으로 복원하실 수 없습니다.", {
-			btn: ["아니오","예"],
-			btnClick: function(index) {
-				if(index == 2) {
-					let data = { cpnStat : "G232_12"			// 중지
-						, cpnId : $('#CouponForm input[name=cpnId]').val()
-					}
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/changeStat', jsonData, fnCouponSaveCollback);
-				}
-			}
-		});
-	});
-
-	// 삭제 버튼 클릭
-	$("#btnCouponDelete").on("click", function() {
-		mcxDialog.confirmC("쿠폰을 삭제하시겠습니까?<br/>삭제한 프로모션은 복원하실 수 없습니다.", {
-			btn: ["아니오","예"],
-			btnClick: function(index) {
-				if(index == 2) {
-					let data = { cpnStat: "G232_14"			// 삭제
-						, cpnId : $('#CouponForm input[name=cpnId]').val()
-					}
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/changeStat', jsonData, fnCouponSaveCollback);
-				}
-			}
-		});
-	});
-
-	// 종료 버튼 클릭
-	$("#btnCouponEnd").on("click", function() {
-		mcxDialog.confirmC("쿠폰을 종료하시겠습니까?<br/>종료한 프로모션은 복원하실 수 없습니다.", {
-			btn: ["아니오","예"],
-			btnClick: function(index) {
-				if(index == 2) {
-					let data = { cpnStat: "G232_13"			// 종료
-						, cpnId : $('#CouponForm input[name=cpnId]').val()
-					}
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/coupon/changeStat', jsonData, fnCouponSaveCollback);
-				}
-			}
-		});
-	});
-
-	// 제휴채널 추가
-	$('#btnAddAf').on('click' , function () {
-		cfnOpenAfChannelPopup("callBackAf");
-	});
-
-	// 제휴채널 콜백
-	var callBackAf = function(result) {
-		// 기존 리스트 데이터 for
-		for(let i = 0 ; i < result.length ; i++) {
-			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(afLinkOptions);		// 받아온 모든 데이터
-
-			// 받아온 data for
-			for(let j = 0 ; j < gridListValue.length ; j++) {
-				// 동일한 data는 추가하지 않음
-				if(gridListValue[j].afLinkCd == result[i].afLinkCd) {	addChk = false;	}		// 중복체크
-			}
-
-			// 중복되지 않은 데이터 리스트에 추가
-			if(addChk) {
-				gagaAgGrid.addRowData(afLinkOptions, {"afLinkCd":result[i].afLinkCd , "afLinkNm":result[i].afLinkNm, "afChannel":result[i].afChannel});
-			}
-		}
-	}
-
-	// 적용범위 클릭 시
-	$("#CouponForm input[name=rdoApplyScope]").bind('click', function () {
-		if($('#CouponForm input:radio[name="rdoApplyScope"]:checked').val() == 'A'){ //전체적용일때
-			supplyGridOptions.api.updateRowData({remove:gagaAgGrid.getAllRowData(supplyGridOptions)});
-			brandGridOptions.api.updateRowData({remove:gagaAgGrid.getAllRowData(brandGridOptions)});
-			cateGridOptions.api.updateRowData({remove:gagaAgGrid.getAllRowData(cateGridOptions)});
-			goodsGridOptions.api.updateRowData({remove:gagaAgGrid.getAllRowData(goodsGridOptions)});
-			excepGoodsGridOptions.api.updateRowData({remove:gagaAgGrid.getAllRowData(excepGoodsGridOptions)});
-			$("#CouponForm .supplyTrArea").hide();
-			$("#CouponForm .brandTrArea").hide();
-			$("#CouponForm .categoryTrArea").hide();
-			$("#CouponForm .goodsTrArea").hide();
-			$("#CouponForm .exceptArea").hide();
-		}else{ //개별적용일때
-			var radioValue = $("#CouponForm input[name=rdoCpnType]:checked").val();
-			// 배송비 쿠폰일때
-			if(radioValue == 'G230_30'){
-				$("#CouponForm .supplyTrArea").show();
-			}else{
-				$("#CouponForm .supplyTrArea").show();
-				$("#CouponForm .brandTrArea").show();
-				$("#CouponForm .categoryTrArea").show();
-				$("#CouponForm .goodsTrArea").show();
-				$("#CouponForm .exceptArea").show();
-			}
-		}
-	});
-
-	// 시리얼 쿠폰 사용
-	$("#serialCpnNm").bind("keyup",function(){
-		re = /[~!@\#$%^&*\()\-=+_']/gi;
-		var temp=$("#serialCpnNm").val();
-		if(re.test(temp)){ //특수문자가 포함되면 삭제하여 값으로 다시셋팅
-			$("#serialCpnNm").val(temp.replace(re,""));
-		}
-		$("#serialCpnNm").val($("#serialCpnNm").val().replaceAll(" ", ""));
-	});
-
-	/*]]>*/
-</script>
-</html>

+ 1365 - 0
src/main/webapp/WEB-INF/views/marketing/CouponPopupForm_20210823.html

@@ -0,0 +1,1365 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : CouponPopupForm.html
+ * @desc    : 쿠폰 등록 팝업 화면
+ *============================================================================
+ * ISTYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.23   xyzp1539       최초 작성
+ *******************************************************************************
+ -->
+<div class="modalPopup" data-width="1500">
+	<div class="panelStyle" style="height: 750px;">
+		<div class="panelTitle">
+			<h2 th:text="${'쿠폰 ' + (mode == 'N' ? '등록' : '수정')}">쿠폰등록</h2>
+			<button type="button" class="close" onclick="uifnPopupClose('CouponRegForm')"><i class="fa fa-times"></i></button>
+		</div>
+		
+		<div class="panelContent">
+			<form id="CouponForm" name="CouponForm" action="#" th:action="@{'/marketing/coupon/save'}" >
+				<input type="hidden" name="supplyCompList" 		id="supplyCompList">
+				<input type="hidden" name="brandList" 			id="brandList">
+				<input type="hidden" name="applyGoodsList" 		id="applyGoodsList">
+				<input type="hidden" name="exceptGoodsList" 	id="excepGoodsList">
+				<input type="hidden" name="burdenList" 			id="burdenList">
+				<input type="hidden" name="cateList" 			id="cateList">
+				<input type="hidden" name="rdCpnNm" 			id="rdCpnNm">
+				<input type="hidden" name="cpnId" 				id="cpnId" th:if="${cpnDetail}" th:value="${cpnDetail.cpnId}">
+				<input type="hidden" name="mode" 				th:value="${mode}"/>
+
+				<div class="tabs">
+					<div class="tabsNav">
+						<ul>
+							<li class="on"><a href="#coupontab1">기본정보</a></li>
+							<li><a href="#coupontab2">적용대상</a></li>
+							<li><a href="#coupontab3">입점업체분담율</a></li>
+							<li class="coupontab4" style="display:none;"><a href="#coupontab4">시리얼및난수</a></li>
+							<li class="coupontab5" style="display:none;"><a href="#coupontab5">선착순쿠폰</a></li>
+							<li class="coupontab7" style="display:none;"><a href="#coupontab7">제휴채널</a></li>
+						</ul>
+					</div>
+					
+					<!-- 기본정보 -->
+					<ul class="tabsCont">
+						<li class="tab on" id="coupontab1">
+							<div class="panelStyle">
+								
+								<table class="frmStyle">
+									<colgroup>
+										<col style="width:165px;">
+										<col style="width:45%;">
+										<col style="width:165px;">
+										<col>
+									</colgroup>
+									<tbody>
+										<tr th:if="${cpnDetail}">
+											<th>쿠폰번호</th>
+											<td colspan="3">
+												<span th:if="${cpnDetail}" th:text="${cpnDetail.cpnId}"></span>
+											</td>
+										</tr>
+										<tr>
+											<th>쿠폰상태<em class="required" title="필수"></em></th>
+											<td colspan="3">
+												<label class="rdoBtn" th:if="${cpnStatList}" th:each="oneData, status : ${cpnStatList}" >
+													<input type="radio" name="disCpnStat" th:value="${oneData.cd}" th:text="${oneData.cdNm}" data-valid-name="상태" disabled="disabled"/>
+												</label>
+												<input type="hidden" name="cpnStat"/>
+											</td>
+										</tr>
+										<tr>
+											<th>쿠폰유형<em class="required" title="필수"></em></th>
+											<td>
+												<label class="rdoBtn" th:if="${cpnTypeList}" th:each="oneData, status : ${cpnTypeList}"> 
+													<input type="radio" name="rdoCpnType" th:text="${oneData.cdNm}" th:value="${oneData.cd}"/>
+												</label>
+												<input type="hidden" name="cpnType" required="required" data-valid-name="쿠폰유형">
+											</td>
+											<th>쿠폰상세유형<em class="required" title="필수"></em></th>
+											<td>
+												<label class="rdoBtn" th:if="${dcCdList}" th:each="oneData, status : ${dcCdList}"> 
+													<input type="radio" name="dcCdGb"  th:text="${oneData.cdNm}" th:value="${oneData.cd}"/>
+												</label>
+												<input type="hidden" name="dcCd" data-valid-name="할인쿠폰유형">
+											</td>
+										</tr>
+									</tbody>
+								</table>
+								
+								<!-- 쿠폰영역 -->
+								<div id="goodsCpnForm"></div>
+								
+							</div>
+						</li>
+						<!-- //기본정보 -->
+						
+						<!-- 쿠폰적용대상-->
+						<li class="tab" id="coupontab2">
+							<div class="panelStyle">
+							</div>
+						</li>
+						<!-- //쿠폰적용대상-->
+						
+						<!-- 입점업체분담율-->
+						<li class="tab" id="coupontab3">
+							<div class="panelStyle">
+							</div>
+						</li>
+						<!-- //입점업체분담율-->
+						
+						<!-- 난수 및 네임쿠폰 설정 -->
+						<li class="tab" id="coupontab4">
+							<div class="panelStyle">
+							</div>
+						</li>
+						<!-- //난수 및 네임쿠폰 설정-->
+						
+						<!-- 선착순 쿠폰 설정 -->
+						<li class="tab" id="coupontab5">
+							<div class="panelStyle">
+							</div>
+						</li>
+						<!-- //선착순 쿠폰 설정 -->
+						
+						<!-- 제휴채널 설정 -->
+						<li class="tab" id="coupontab7">
+							<div class="panelStyle">
+							</div>
+						</li>
+						<!-- //제휴채널 설정 -->
+						
+					</ul>
+				</div>
+				
+				<div class="mdPopBtnB aR">
+					<button type="button" class="btn btn-info btn-lg" onclick="fnPubCustListPopUp();" th:if="${mode == 'U'}">발급받은회원</button>
+					<button type="button" class="btn btn-info btn-lg" onclick="fnCustomerIssuePopUp();" th:if="${mode == 'U' and cpnDetail.dcCdGb == 'G233_00' and cpnDetail.cpnStat=='G232_11'}">쿠폰발행</button>  <!-- 난수유형과 시리얼 유형에서는 쿠폰발행기능 X -->
+					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnCouponSave" onclick="fnCouponCreate();" th:text="${mode == 'N' ? '등록' : '수정'}"></button>
+					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnChangeStatIng" style="display: none;">진행</button>
+					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnCouponDelete" style="display: none;">삭제</button>
+					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnCouponStop" style="display: none;">중지</button>
+					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnCouponEnd" style="display: none;">종료</button>
+				</div>
+			</form>
+		</div>
+	</div>
+</div>
+
+<script th:inline="javascript">
+</script>
+
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	
+	// 상세조회 리스트
+	var mode 					= [[${mode}]];
+	var cpnDetail 				= [[${cpnDetail}]];
+	var randomCpnList 			= [[${randomCpnList}]];
+	var issueCnt 				= [[${issueCnt}]];
+
+	// 쿠폰등록기본정보로드
+	var goodsCpnInfoSet = function(cpnType) {
+		
+		// 초기즉시할인쿠폰정보로드
+		var url = '';
+		
+		// 즉시할인쿠폰
+		if (cpnType == 'G230_10') {
+			url = '/marketing/coupon/popup/cpn1Info';
+		}
+		// 상품쿠폰, 장바구니쿠폰, 배송비쿠폰
+		else {
+			url = '/marketing/coupon/popup/goodsCpnInfo';
+		}
+		
+		$.ajax( {
+			type		: "POST",
+			url 		: url,
+			data		: JSON.stringify(jsonObj),
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+			},
+			success 	: function(result) {
+				if (result != null) {
+					$("#goodsCpnForm").html(result);
+					
+					// 할인방식 변경
+					$("#CouponForm input[name=rdoDcWay]").bind('click', function () {
+						var rdoDcWay 	= $(this).val();
+						var strAmtType	= "원";
+						
+						// 발급이력이있으면 수정안됨
+						if (issueCnt > 0 ) {
+							return false;
+						}
+						
+						// 금액할인
+						if (rdoDcWay == 'G240_10') {
+							strAmtType = "원";
+							$("#CouponForm input[name=maxDcAmt]").attr("disabled", true);
+						}
+						// 율할인
+						else {
+							strAmtType = "%";
+							$("#CouponForm input[name=maxDcAmt]").attr("disabled", false);
+						}
+						
+						$('.dcPvalSpan').text(strAmtType);
+						$('.dcMvalSpan').text(strAmtType);
+						$('.dcAvalSpan').text(strAmtType);
+						$('#CouponForm input[name=dcPval]').val(0);
+						$('#CouponForm input[name=dcMval]').val(0);
+						$('#CouponForm input[name=dcAval]').val(0);
+						$('#CouponForm input[name=maxDcAmt]').val(0);
+					});
+					
+					// 할인값 동일적용
+					$("#applySameValueBtn").bind('click', function () {
+						var cdPval = $("#CouponForm input[name=dcPval]").val();
+						$("#CouponForm input[name=dcMval]").val(cdPval);
+						$("#CouponForm input[name=dcAval]").val(cdPval);
+					});
+					
+					if (cpnDetail.cpnId == null) {
+						// 2021.08.16 초기화실행
+						fnResetCouponForm(cpnType);
+					}
+					
+					// 달력적용
+					if (cpnDetail.cpnStat == 'G232_10' && issueCnt < 1) {
+						$('.schDate').datepicker({
+							changeMonth	: true,
+							changeYear	: true,
+							defaultDate	: $('.schDate').val()
+						});
+					}
+					
+					// 적용대상 정보 로드
+					applyInfoSet();
+				}
+			}
+		});
+	}
+	
+	// 적용대상 정보 로드
+	var applyInfoSet = function(){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/marketing/coupon/popup/applyInfo',
+			data		: JSON.stringify(jsonObj),
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+			},
+			success 	: function(result) {
+				if (result != null) {
+					$("#coupontab2 .panelStyle").html(result);
+					
+					// 적용대상자바스크립트 초기화
+					applyInfoInit();
+					
+					// 입점업체분담율 정보 로드
+					burdenInfoSet();
+				}
+			}
+		});
+	}
+	
+	// 입점업체분담율 정보 로드
+	var burdenInfoSet = function(){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/marketing/coupon/popup/burdenInfo',
+			data		: JSON.stringify(jsonObj),
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+			},
+			success 	: function(result) {
+				if (result != null) {
+					$("#coupontab3 .panelStyle").html(result);
+					
+					// 적용대상정보 초기화
+					burdenInfoInit();
+					
+					// 쿠폰정보가 존재, 상품쿠폰, 장바구니쿠폰, 배송비쿠폰, > 일반쿠폰일때 제휴채널 로드
+					if (cpnDetail != null && cpnDetail.cpnId != null) {
+						if (cpnDetail.cpnType == 'G230_11' || cpnDetail.cpnType == 'G230_20' || cpnDetail.cpnType == 'G230_30') {
+							// 일반쿠폰
+							if (cpnDetail.dcCdGb == 'G233_00') {
+								// 제휴채널로드
+								$(".coupontab7").css("display", "block");
+								afChannelInfoSet();
+							} 
+							// 선착순쿠폰
+							else if (cpnDetail.dcCdGb == 'G233_30') {
+								// 선착순쿠폰로드
+								$(".coupontab5").show();
+								limitedTimeInfoSet();
+								
+								// 총발행제한
+								$("#CouponForm input[name=totPubLimitQty]").attr("disabled", true);
+								$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").attr("disabled", true);
+								$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").prop("checked", true);
+							}
+							// 시리얼쿠폰
+							else if (cpnDetail.dcCdGb == 'G233_10') {
+								// 총발행제한
+								$("#CouponForm input[name=totPubLimitQty]").attr("disabled", true);
+								$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").attr("disabled", true);
+								$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").prop("checked", true);
+								$("#CouponForm .serialCpnArea").show(); // 시리얼쿠폰영역 노출
+								
+								// 랜덤쿠폰로드
+								$(".coupontab4").show();
+								randomInfoSet();
+							}
+							// 랜덤쿠폰
+							else if (cpnDetail.dcCdGb == 'G233_20') {
+								// 총발행제한
+								$("#CouponForm input[name=totPubLimitQty]").attr("disabled", true);
+								$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").attr("disabled", true);
+								$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").prop("checked", true);
+								$("#CouponForm .randomCpnArea").show(); // 랜덤쿠폰영역 노출
+								
+								// 랜덤쿠폰로드
+								$(".coupontab4").show();
+								randomInfoSet();
+							}
+						}
+					}
+				}
+			}
+		});
+	}
+	
+	// 제휴채널 정보 로드
+	var afChannelInfoSet = function(){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/marketing/coupon/popup/afChannelInfo',
+			data		: JSON.stringify(jsonObj),
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+			},
+			success 	: function(result) {
+				if (result != null) {
+					$("#coupontab7 .panelStyle").html(result);
+
+					// 제휴채널정보 초기화
+					afChannelInfoInit();
+				}
+			}
+		});
+	}
+	
+	// 선착순쿠폰 정보 로드
+	var limitedTimeInfoSet = function(){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/marketing/coupon/popup/limitedTimeInfo',
+			data		: JSON.stringify(jsonObj),
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+			},
+			success 	: function(result) {
+				if (result != null) {
+					$("#coupontab5 .panelStyle").html(result);
+					
+					// 선착순쿠폰정보 초기화
+					limitedTimeInfoInit();
+				}
+			}
+		});
+	}
+	
+	// 랜덤쿠폰 정보 로드
+	var randomInfoSet = function(){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/marketing/coupon/popup/randomInfo',
+			data		: JSON.stringify(jsonObj),
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+			},
+			success 	: function(result) {
+				if (result != null) {
+					$("#coupontab4 .panelStyle").html(result);
+					
+					// 랜덤쿠폰정보 초기화
+					randomInfoInit();
+				}
+			}
+		});
+	}
+	
+	// 2021.08.17 초기화설정 변경
+	$(document).ready(function() {
+		
+		var cpnId = 0;
+		
+		// 쿠폰상세
+		if (cpnDetail != null && cpnDetail.cpnId != null) {
+			cpnId = cpnDetail.cpnId;
+		}
+		
+		// AJAX 로드를 위한 변수 설정
+		jsonObj = {
+			"cpnId" : cpnId
+		}
+		
+		jsonData = JSON.stringify(jsonObj);
+		
+		// 쿠폰정보수정
+		if (cpnDetail != null && cpnDetail.cpnId != null) {
+			// 쿠폰상태값표시
+			$("#CouponForm input:radio[name=disCpnStat]").each(function(){
+				if ($(this).val() == cpnDetail.cpnStat) {
+					$(this).attr("checked", true);
+				} else {
+					$(this).attr("checked", false);
+				}
+			});
+			
+			// 쿠폰유형표시
+			$("#CouponForm input:radio[name=rdoCpnType]").attr("disabled", true);
+			$("#CouponForm input:radio[name=rdoCpnType]").each(function(){
+				if ($(this).val() == cpnDetail.cpnType) {
+					$(this).attr("checked", true);
+				} else {
+					$(this).attr("checked", false);
+				}
+			});
+			
+			// 쿠폰유형표시
+			$("#CouponForm input:radio[name=dcCdGb]").attr("disabled", true);
+			$("#CouponForm input:radio[name=dcCdGb]").each(function(){
+				if ($(this).val() == cpnDetail.dcCdGb) {
+					$(this).attr("checked", true);
+				} else {
+					$(this).attr("checked", false);
+				}
+			});
+			
+			if (cpnDetail.cpnStat == "G232_10") {
+				$("#btnCouponSave").show();		// 저장버튼
+				$("#btnChangeStatIng").show();	// 진행버튼
+				$("#btnCouponDelete").show();	// 삭제버튼
+				$("#btnCouponEnd").show();		// 종료버튼
+				$("#CouponForm .buttonSpan").show();	//행추가,삭제버튼
+			} 
+			else if(cpnDetail.cpnStat == "G232_11") {
+				$("#btnCouponSave").hide();		// 저장버튼
+				$("#btnCouponStop").show();		// 중지버튼
+				$("#btnCouponDelete").show();	// 삭제버튼
+				$("#btnCouponEnd").show();		// 종료버튼
+				$("#CouponForm .buttonSpan").hide();	//행추가,삭제버튼
+			}
+			else {
+				$("#CouponForm .buttonSpan").hide();	//행추가,삭제버튼
+			}
+			
+			// 쿠폰정보로드
+			goodsCpnInfoSet(cpnDetail.cpnType);
+		}
+		// 쿠폰정보등록
+		else {
+			$("#CouponForm input:radio[name=rdoCpnType]").eq(0).attr("checked", true);
+			
+			// 1차쿠폰정보로드
+			goodsCpnInfoSet('G230_10');
+			
+			// 최초등록이면 대기상태
+			$("#CouponForm input[name=disCpnStat]").eq(0).attr("checked", true);
+		}
+	});
+	
+	// 쿠폰타입변경
+	$("#CouponForm input:radio[name=rdoCpnType]").bind('click change', function () {
+		// 쿠폰타입
+		var cpnType = $(this).val();
+		
+		goodsCpnInfoSet(cpnType);
+	});
+	
+	// 상세쿠폰유형변경
+	$("#CouponForm input:radio[name=dcCdGb]").bind('click change', function () {
+		// 상세쿠폰유형
+		var cpnType 	= $("#CouponForm input:radio[name=rdoCpnType]:checked").val();
+		var dcCdGb 		= $(this).val();
+		
+		$(".coupontab5").hide(); // 선착순쿠폰 감추기
+		$(".coupontab7").hide(); // 제휴채널 감추기
+		
+		// 시리얼쿠폰영역감추가
+		$("#CouponForm .serialCpnArea").hide();
+		$("#CouponForm input[name=serialCpnNm]").val("");
+		$("#CouponForm input[name=serialCpnQty]").val(0);
+		
+		// 랜덤쿠폰영역감추가
+		$("#CouponForm .randomCpnArea").hide();
+		$("#CouponForm input[name=randomCpnQty]").val(0);
+		
+		// 총발행제한
+		$("#CouponForm input[name=totPubLimitQty]").val("0");
+		$("#CouponForm input[name=totPubLimitQty]").attr("disabled", false);
+		$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").attr("disabled", false);
+		$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").prop("checked", false);
+		
+		// 다운로드가능여부
+		$("#CouponForm select[name=downAblYn]").attr("disabled", "disabled");
+		$("#CouponForm select[name=downAblYn]").val("N");
+		
+		// 선착순쿠폰
+		if (dcCdGb == 'G233_30') {
+			// 선착순쿠폰로드
+			$(".coupontab5").show();
+			limitedTimeInfoSet();
+			
+			// 총발행제한
+			$("#CouponForm input[name=totPubLimitQty]").attr("disabled", true);
+			$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").attr("disabled", true);
+			$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").prop("checked", true);
+		}
+		// 시리얼쿠폰
+		else if (dcCdGb == 'G233_10') {
+			// 총발행제한
+			$("#CouponForm input[name=totPubLimitQty]").attr("disabled", true);
+			$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").attr("disabled", true);
+			$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").prop("checked", true);
+			$("#CouponForm .serialCpnArea").show(); // 시리얼쿠폰영역 노출
+		}
+		// 랜덤쿠폰
+		else if (dcCdGb == 'G233_20') {
+			// 총발행제한
+			$("#CouponForm input[name=totPubLimitQty]").attr("disabled", true);
+			$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").attr("disabled", true);
+			$("#CouponForm input[name=chkNoLimitTotPubLimitQty]").prop("checked", true);
+			$("#CouponForm .randomCpnArea").show(); // 랜덤쿠폰영역 노출
+		} 
+		// 일반쿠폰
+		else if (dcCdGb == 'G233_00') {
+			// 상품쿠폰, 장바구니쿠폰, 배송비쿠폰
+			if (cpnType == 'G230_11' || cpnType == 'G230_20' || cpnType == 'G230_30') {
+				// 제휴채널로드
+				$(".coupontab7").show();
+				afChannelInfoSet();
+			}
+			
+			// 상품쿠폰
+			if (cpnType == 'G230_11') {
+				// 다운로드가능여부
+				$("#CouponForm select[name=downAblYn]").removeAttr("disabled");
+				$("#CouponForm select[name=downAblYn]").val("N");
+			}
+		}
+	});
+
+	// 2021.08.16 초기화기능
+	var fnResetCouponForm = function(cpnType) {
+		
+		$('.schDate').datepicker({
+			changeMonth	: true,
+			changeYear	: true,
+			defaultDate	: $('.schDate').val()
+		});
+		
+		// 할인방식초기화
+		$("#CouponForm input[name=rdoDcWay]").trigger("click");
+		
+		// 초기화
+		$("#CouponForm input[name=dcCdGb]").each(function(idx){
+			if (idx == 0) {
+				$(this).trigger("click");
+			}
+		});
+		
+		$("#CouponForm input[name=dcCdGb]").eq(1).attr("disabled", true);
+		$("#CouponForm input[name=dcCdGb]").eq(2).attr("disabled", true);
+		$("#CouponForm input[name=dcCdGb]").eq(3).attr("disabled", true);
+		
+		// 선착순쿠폰 감추기
+		$(".coupontab5").hide();
+		
+		// 제휴채널 감추기
+		$(".coupontab7").hide();
+		
+		// 즉시할인쿠폰
+		if (cpnType == 'G230_10') {
+			
+		}
+		// 상품쿠폰
+		else if (cpnType == 'G230_11') {
+			$("#CouponForm input[name=dcCdGb]").eq(3).attr("disabled", false);
+			
+			// 제휴채널로드
+			$(".coupontab7").css("display", "block");
+			afChannelInfoSet();
+			
+			// 다운로드가능여부
+			$("#CouponForm select[name=downAblYn]").removeAttr("disabled");
+			$("#CouponForm select[name=downAblYn]").val("N");
+		}
+		// 장바구니쿠폰
+		else if (cpnType == 'G230_20') {
+			$("#CouponForm input[name=dcCdGb]").eq(1).attr("disabled", false);
+			$("#CouponForm input[name=dcCdGb]").eq(2).attr("disabled", false);
+			$("#CouponForm .payTypeTr").show();
+			
+			// 제휴채널로드
+			$(".coupontab7").show();
+			afChannelInfoSet();
+			
+			// 다운로드가능여부
+			$("#CouponForm select[name=downAblYn]").attr("disabled", "disabled");
+			$("#CouponForm select[name=downAblYn]").val("N");
+		}
+		// 배송비쿠폰
+		else if (cpnType == 'G230_30') {
+			// 제휴채널로드
+			$(".coupontab7").show();
+			afChannelInfoSet();
+			
+			// 다운로드가능여부
+			$("#CouponForm select[name=downAblYn]").attr("disabled", "disabled");
+			$("#CouponForm select[name=downAblYn]").val("N");
+		}
+	}
+	
+	// 진행 버튼 클릭
+	$("#btnChangeStatIng").on("click", function() {
+		mcxDialog.confirmC("쿠폰을 진행하시겠습니까?<br/>진행 후에는 수정이 제한될 수 있습니다.", {
+			btn: ["아니오","예"],
+			btnClick: function(index) {
+				if(index == 2) {
+					let data = { cpnStat : "G232_11"				// 진행
+						, cpnId : $('#CouponForm input[name=cpnId]').val()
+					}
+					var jsonData = JSON.stringify(data);					
+					gagajf.ajaxJsonSubmit('/marketing/coupon/changeStat', jsonData, fnCouponSaveCollback);
+				}
+			}
+		});
+	});
+
+	// 중지 버튼 클릭
+	$("#btnCouponStop").on("click", function() {
+		mcxDialog.confirmC("쿠폰 진행을 중지하시겠습니까?<br/>중지 후에는 진행으로 복원하실 수 없습니다.", {
+			btn: ["아니오","예"],
+			btnClick: function(index) {
+				if(index == 2) {
+					let data = { cpnStat : "G232_12"			// 중지
+						, cpnId : $('#CouponForm input[name=cpnId]').val()
+					}
+					var jsonData = JSON.stringify(data);
+					gagajf.ajaxJsonSubmit('/marketing/coupon/changeStat', jsonData, fnCouponSaveCollback);
+				}
+			}
+		});
+	});
+
+	// 삭제 버튼 클릭
+	$("#btnCouponDelete").on("click", function() {
+		mcxDialog.confirmC("쿠폰을 삭제하시겠습니까?<br/>삭제한 프로모션은 복원하실 수 없습니다.", {
+			btn: ["아니오","예"],
+			btnClick: function(index) {
+				if(index == 2) {
+					let data = { cpnStat: "G232_14"			// 삭제
+						, cpnId : $('#CouponForm input[name=cpnId]').val()
+					}
+					var jsonData = JSON.stringify(data);
+					gagajf.ajaxJsonSubmit('/marketing/coupon/changeStat', jsonData, fnCouponSaveCollback);
+				}
+			}
+		});
+	});
+
+	// 종료 버튼 클릭
+	$("#btnCouponEnd").on("click", function() {
+		mcxDialog.confirmC("쿠폰을 종료하시겠습니까?<br/>종료한 프로모션은 복원하실 수 없습니다.", {
+			btn: ["아니오","예"],
+			btnClick: function(index) {
+				if(index == 2) {
+					let data = { cpnStat: "G232_13"			// 종료
+						, cpnId : $('#CouponForm input[name=cpnId]').val()
+					}
+					var jsonData = JSON.stringify(data);
+					gagajf.ajaxJsonSubmit('/marketing/coupon/changeStat', jsonData, fnCouponSaveCollback);
+				}
+			}
+		});
+	});
+
+	// 쿠폰 등록
+	function fnCouponCreate(){
+		var chkCpnType 	= $("#CouponForm input[name=rdoCpnType]:checked").val();
+		var dcCdGb 		= $("#CouponForm input[name=dcCdGb]:checked").val();
+		
+		// 필수값들 셋팅
+		setReqValue(chkCpnType);
+
+		// 데이터 validation 체크
+		if (!checkValidation2()) {
+			return false;
+		}
+
+		// 즉시할인쿠폰제외
+		if (chkCpnType != 'G230_10'){	
+			if (!checkValidation20(chkCpnType)) {
+				return false;
+			}
+		}
+
+		// 유효기간 체크
+		if (!checkValidation10()) {
+			return false;
+		}
+
+		// 업체분담율 토탈 100% 넘는지 체크
+		if (!fnBurdenValueCheck()) {
+			return false;
+		}
+		
+		mcxDialog.confirm('저장하시겠습니까?' , {
+			cancelBtnText	: "취소",
+			sureBtnText		: "확인",
+			sureBtnClick	: function () {
+				var usableCustGbArr = [];
+				
+				var chkCustGb = $('#CouponForm input:checkbox[name=usableCustGbArr]:checked');
+				for (let i=0; i< chkCustGb.length; i++) {
+					usableCustGbArr.push(chkCustGb.eq(i).val());
+				}
+
+				var usableCustGradeArr = [];
+				var chkCustGrade = $('#CouponForm input:checkbox[name=usableCustGradeArr]:checked');
+				for (let i=0; i< chkCustGrade.length; i++) {
+					usableCustGradeArr.push(chkCustGrade.eq(i).val());
+				}
+
+				var payTypeArr = [];
+				var chkPayType = $('#CouponForm input:checkbox[name=payTypeArr]:checked');
+				for (let i=0; i< chkPayType.length; i++) {
+					payTypeArr.push(chkPayType.eq(i).val());
+				}
+
+				var supplyCompList 		= gagaAgGrid.getAllRowData(supplyGridOptions);
+				var brandList 			= gagaAgGrid.getAllRowData(brandGridOptions);
+				var applyGoodsList 		= gagaAgGrid.getAllRowData(goodsGridOptions);
+				var exceptGoodsList 	= gagaAgGrid.getAllRowData(excepGoodsGridOptions);
+				var cateList 			= gagaAgGrid.getAllRowData(cateGridOptions);
+				var burdenList 			= gagaAgGrid.getAllRowData(inComGridOptions);
+				var limitedTimeCpnList 	= null;
+				var afChannelList 		= null;
+				
+				// 쿠폰유형 상품 쿠폰 && 선착순 쿠폰
+				if (chkCpnType == "G230_11" && dcCdGb == "G233_30"){
+					limitedTimeCpnList 	= gagaAgGrid.getAllRowData(limitedTimeCpnGridOptions);
+				}
+				// (쿠폰유형 상품쿠폰, 장바구니쿠폰, 배송비쿠폰) && 일반쿠폰
+				if ((chkCpnType == "G230_11" || chkCpnType == "G230_20" || chkCpnType == "G230_30") && dcCdGb == "G233_00") {
+					afChannelList = gagaAgGrid.getAllRowData(afLinkOptions);
+				}
+				
+				var pdGb 		= $("#CouponForm select[name=pdGb] option:selected").val();
+				var newCustYn 	= $('#CouponForm select[name=newCustYn]').val();
+				var firstOrdYn	= $('#CouponForm select[name=firstOrdYn]').val();
+				var endAlimYn	= $('#CouponForm select[name=endAlimYn]').val();
+				var downAblYn	= $('#CouponForm select[name=downAblYn]').val();
+				
+				// 즉시할인쿠폰
+				if (chkCpnType == "G230_10") {
+					pdGb 		= "P";
+					newCustYn 	= "N";
+					firstOrdYn	= "N";
+					endAlimYn	= "N";
+					downAblYn	= "N";
+				}
+
+				var data = {
+					cpnId 				: $('#CouponForm input[name=cpnId]').val()
+					,cpnNm 				: $('#CouponForm input[name=cpnNm]').val()
+					,cpnDesc 			: $('#CouponForm input[name=cpnDesc]').val()
+					,siteCd 			: $('#CouponForm select[name=siteCd]').val()
+					,cpnType 			: $('#CouponForm input:radio[name="rdoCpnType"]:checked').val()
+					,applyScope 		: $('#CouponForm input:radio[name="rdoApplyScope"]:checked').val()
+					,dcWay 				: $('#CouponForm input:radio[name="rdoDcWay"]:checked').val()
+					,dcPval 			: strReplaceAll($('#CouponForm input[name=dcPval]').val())
+					,dcMval 			: strReplaceAll($('#CouponForm input[name=dcMval]').val())
+					,dcAval 			: strReplaceAll($('#CouponForm input[name=dcAval]').val())
+					,maxDcAmt 			: strReplaceAll($('#CouponForm input[name=maxDcAmt]').val())
+					,pdGb 				: pdGb
+					,availStdt 			: $('#CouponForm input[name=availStdt]').val()
+					,availEddt 			: $('#CouponForm input[name=availEddt]').val()
+					,availDays 			: strReplaceAll($('#CouponForm input[name=availDays]').val())
+					,custPubLimitQty 	: strReplaceAll($('#CouponForm input[name=custPubLimitQty]').val())
+					,totPubLimitQty 	: strReplaceAll($('#CouponForm input[name=totPubLimitQty]').val())
+					,onePubQty 			: strReplaceAll($('#CouponForm input[name=onePubQty]').val())
+					,downStdt 			: $('#CouponForm input[name=downStdt]').val()
+					,downEddt 			: $('#CouponForm input[name=downEddt]').val()
+					,buyLimitAmt 		: strReplaceAll($('#CouponForm input[name=buyLimitAmt]').val())
+					,cpnStat 			: $('#CouponForm input:radio[name="disCpnStat"]:checked').val()
+					,endAlimYn 			: endAlimYn
+					,firstOrdYn 		: firstOrdYn
+					,downAblYn 			: downAblYn
+					,custJoinStdt 		: $('#CouponForm input[name=custJoinStdt]').val()
+					,custJoinEddt 		: $('#CouponForm input[name=custJoinEddt]').val()
+					,buyStdt 			: $('#CouponForm input[name=buyStdt]').val()
+					,buyEddt 			: $('#CouponForm input[name=buyEddt]').val()
+					,newCustYn 			: newCustYn
+					,dcCdGb 			: $('#CouponForm input:radio[name="dcCdGb"]:checked').val()
+					,rdCpnNm 			: $('#CouponForm input[name="serialCpnNm"]').val()
+					,mode 				: $('#CouponForm input[name=mode]').val()
+					,scmYn 				: 'N'
+					,usableCustGbArr 	: usableCustGbArr
+					,usableCustGradeArr : usableCustGradeArr
+					,payTypeArr 		: payTypeArr
+					,supplyCompList 	: supplyCompList
+					,brandList 			: brandList
+					,applyGoodsList 	: applyGoodsList
+					,exceptGoodsList 	: exceptGoodsList
+					,cateList 			: cateList
+					,burdenList 		: burdenList
+					,limitedTimeCpnList : limitedTimeCpnList
+					,afChannelList 		: afChannelList
+				};
+				
+				var jsonData = JSON.stringify(data);
+				gagajf.ajaxJsonSubmit($('#CouponForm').prop('action'), jsonData, fnCouponSaveCollback);
+			}
+		});
+	}
+	
+	// callback  gkatn
+	var fnCouponSaveCollback = function (result){
+		uifnPopupClose('CouponRegForm');
+		$('#btnSearch').trigger('click');
+	}
+	
+	// 발급받은회원 팝업
+	var fnPubCustListPopUp = function (){
+		let cpnId = $("#CouponForm #cpnId").val();
+		var actionUrl = "/marketing/coupon/pubCust/popup/form?cpnId=" + cpnId;
+		cfnOpenModalPopup(actionUrl, 'CpnPubCustListPopup');
+	};
+
+	// 쿠폰발행팝업
+	function fnCustomerIssuePopUp(){
+		cfnCpnPubForCustPopup();
+	};
+	
+	// 전송시 값 세팅
+	function setReqValue(cpnType){
+		
+		var dcCdGb = $("#CouponForm input[name=dcCdGb]:checked").val();
+		
+		// 쿠폰유형값 세팅
+		$("#CouponForm input[name=cpnType]").val(cpnType);
+		
+		// 할인방식값 세팅
+		$("#CouponForm input[name=dcWay]").val($('#CouponForm input:radio[name="rdoDcWay"]:checked').val());
+		
+		// 적용범위값 세팅
+		$("#CouponForm input[name=applyScope]").val($('#CouponForm input:radio[name="rdoApplyScope"]:checked').val());
+		
+		// 쿠폰상태
+		$("#CouponForm input[name=cpnStat]").val($('input:radio[name="disCpnStat"]:checked').val());
+		
+		// 다운로드기간 세팅
+		let downStdt = "";
+		let downEddt = "";
+		downStdt = $('#CouponForm input[name=downStDay]').val()+$('#CouponForm select[name=downStHH]').val()+$('#CouponForm select[name=downStMM]').val()+'00';
+		if($('#CouponForm select[name=downEdHH]').val() == "24"){
+			downEddt = $('#CouponForm input[name=downEdDay]').val()+'235959';
+		}else{
+			downEddt = $('#CouponForm input[name=downEdDay]').val()+$('#CouponForm select[name=downEdHH]').val()+$('#CouponForm select[name=downEdMM]').val()+'00';
+		}
+		downStdt = downStdt.replace(/[^0-9]/g, '');
+		downEddt = downEddt.replace(/[^0-9]/g, '');
+		$('#CouponForm input[name=downStdt]').val(downStdt);
+		$('#CouponForm input[name=downEddt]').val(downEddt);
+
+		// 유효기간 세팅
+		let availStdt = "";
+		let availEddt = "";
+		
+		var pdGb = $("#CouponForm select[name=pdGb] option:selected").val();
+		if (cpnType == "G230_10") {
+			pdGb = "P";
+		}
+		
+		if (pdGb == 'P') {
+			availStdt = $('#CouponForm input[name=availStDay]').val() + $('#CouponForm select[name=availStHH]').val() + $('#CouponForm select[name=availStMM]').val()+'00';
+			
+			if ($('#CouponForm select[name=availEdHH]').val() == "24") {
+				availEddt = $('#CouponForm input[name=availEdDay]').val() + '235959';
+			} else {
+				availEddt = $('#CouponForm input[name=availEdDay]').val() + $('#CouponForm select[name=availEdHH]').val() + $('#CouponForm select[name=availEdMM]').val()+'00';
+			}
+			
+			availStdt = availStdt.replace(/[^0-9]/g, '');
+			availEddt = availEddt.replace(/[^0-9]/g, '');
+			
+			$('#CouponForm input[name=availStdt]').val(availStdt);
+			$('#CouponForm input[name=availEddt]').val(availEddt);
+			$('#CouponForm input[name=availDays]').val('');
+		} else {
+			$('#CouponForm input[name=availStdt]').val('');
+			$('#CouponForm input[name=availEddt]').val('');
+		}
+
+		// 첫구매기간세팅
+		let buyStdt = "";
+		let buyEddt = "";
+		buyStdt = $('#CouponForm input[name=buyStDay]').val()+$('#CouponForm select[name=buyStHH]').val()+$('#CouponForm select[name=buyStMM]').val()+'00';
+		if($('#CouponForm select[name=buyEdHH]').val() == "24"){
+			buyEddt = $('#CouponForm input[name=buyEdDay]').val()+'235959';
+		}else{
+			buyEddt = $('#CouponForm input[name=buyEdDay]').val()+$('#CouponForm select[name=buyEdHH]').val()+$('#CouponForm select[name=buyEdMM]').val()+'00';
+		}
+		buyStdt = buyStdt.replace(/[^0-9]/g, '');
+		buyEddt = buyEddt.replace(/[^0-9]/g, '');
+		$('#CouponForm input[name=buyStdt]').val(buyStdt);
+		$('#CouponForm input[name=buyEddt]').val(buyEddt);
+
+		// 신규회원기간 세팅
+		let custJoinStdt = "";
+		let custJoinEddt = "";
+		custJoinStdt = $('#CouponForm input[name=custJoinStDay]').val()+$('#CouponForm select[name=custJoinStHH]').val()+$('#CouponForm select[name=custJoinStMM]').val()+'00';
+		if($('#CouponForm select[name=custJoinEdHH]').val() == "24"){
+			custJoinEddt = $('#CouponForm input[name=custJoinEdDay]').val()+'235959';
+		}else{
+			custJoinEddt = $('#CouponForm input[name=custJoinEdDay]').val()+$('#CouponForm select[name=custJoinEdHH]').val()+$('#CouponForm select[name=custJoinEdMM]').val()+'00';
+		}
+		custJoinStdt = custJoinStdt.replace(/[^0-9]/g, '');
+		custJoinEddt = custJoinEddt.replace(/[^0-9]/g, '');
+		$('#CouponForm input[name=custJoinStdt]').val(custJoinStdt);
+		$('#CouponForm input[name=custJoinEddt]').val(custJoinEddt);
+
+		// 할인쿠폰 유형에 따른 총 발행수량 수정 (주문서 쿠폰이고 난수쿠폰일 경우)
+		if (cpnType == "G230_20" && dcCdGb == "G233_20") {
+			$('#CouponForm input[name="totPubLimitQty"]').val($('#CouponForm input[name="randomCpnQty"]').val());	// 총 발행수량 난수 생성수량으로 변경
+			$('#CouponForm input[name="custPubLimitQty"]').val(1);		// 1인당 발행제한수량 1개 고정
+			$('#CouponForm input[name="onePubQty"]').val(1);			// 1회발행수량 1개 고정
+		} 
+		// 주문서 쿠폰이고 시리얼 유형일 경우
+		else if (cpnType == "G230_20" && dcCdGb == "G233_10") {		
+			$('#CouponForm input[name="rdCpnNm"]').val($('#CouponForm input[name="serialCpnNm"]').val());			// 시리얼유형쿠폰명 저장
+			$('#CouponForm input[name="totPubLimitQty"]').val($('#CouponForm input[name="serialCpnQty"]').val());	// 총 발행수량 랜덤쿠폰발급수량으로 변경
+			$('#CouponForm input[name="custPubLimitQty"]').val(1);		// 1인당 발행제한수량 1개 고정
+			$('#CouponForm input[name="onePubQty"]').val(1);			// 1회발행수량 1개 고정
+		}
+
+		$('#CouponForm #supplyCompList').val(gagaAgGrid.getAllRowData(supplyGridOptions));
+		$('#CouponForm #brandList').val(gagaAgGrid.getAllRowData(brandGridOptions));
+		$('#CouponForm #cateList').val(gagaAgGrid.getAllRowData(cateGridOptions));
+		
+		// 적용대상 - 적용상품 그리드 전체값 세팅
+		$('#CouponForm #applyGoodsList').val(gagaAgGrid.getAllRowData(goodsGridOptions));
+		
+		// 적용대상 - 제외상품 그리드 전체값 세팅
+		$('#CouponForm #excepGoodsList').val(gagaAgGrid.getAllRowData(excepGoodsGridOptions));
+		
+		// 입점업체분담율 그리드 전체값 세팅
+		$('#CouponForm #burdenList').val(gagaAgGrid.getAllRowData(inComGridOptions));
+	}
+	
+	// 기본정보체크 (전체쿠폰)
+	function checkValidation2(){
+		var dcCdGb = $("#CouponForm input[name=dcCdGb]:checked").val();
+		
+		// 쿠폰명 체크
+		var chkCpnNm = $('#CouponForm input[name=cpnNm]').val();
+		if (gagajf.isNull(chkCpnNm)) {
+			mcxDialog.alert("쿠폰명을 입력해주세요.");
+			$('#CouponForm input[name=cpnNm]').focus();
+			return false;
+		}
+
+		// 할인금액, 할인율 체크
+		var chkDcPval = $('#CouponForm input[name=dcPval]').val();
+		var chkDcMval = $('#CouponForm input[name=dcMval]').val();
+		var chkDcAval = $('#CouponForm input[name=dcAval]').val();
+		if (gagajf.isNull(chkDcPval) || chkDcPval < 1) {
+			mcxDialog.alert("할인값(PC)을 입력해주세요.");
+			$('#CouponForm input[name=dcPval]').focus();
+			return false;
+		}
+		if (gagajf.isNull(chkDcMval) || chkDcMval < 1) {
+			mcxDialog.alert("할인값(모바일웹)을 입력해주세요.");
+			$('#CouponForm input[name=dcMval]').focus();
+			return false;
+		}
+		if (gagajf.isNull(chkDcAval) || chkDcAval < 1) {
+			mcxDialog.alert("할인값(모바일앱)을 입력해주세요.");
+			$('#CouponForm input[name=dcAval]').focus();
+			return false;
+		}
+
+		// 할인방식 할인율 일때, 최대할인금액 0 보다 큰지 체크
+		if ($('#CouponForm input:radio[name="rdoDcWay"]:checked').val() == 'G240_11') {
+			if($('#CouponForm').find('input[name=maxDcAmt]').val() < 1){
+				mcxDialog.alert("최대 할인 금액을 입력해주세요.");
+				$('#CouponForm input[name=maxDcAmt]').focus();
+				return false;
+			}
+		}
+
+		if($('#CouponForm input:radio[name="rdoApplyScope"]:checked').val() == 'I'){
+			// 적용대상 체크
+			let targetCnt = 0;
+			let target1 = gagaAgGrid.getAllRowData(supplyGridOptions);
+			let target2 = gagaAgGrid.getAllRowData(brandGridOptions);
+			let target3 = gagaAgGrid.getAllRowData(cateGridOptions);
+			let target4 = gagaAgGrid.getAllRowData(goodsGridOptions);
+
+			targetCnt = target1.length + target2.length + target3.length + target4.length;
+			if(targetCnt < 1){
+				mcxDialog.alert("적용대상을 설정해주세요.");
+				return false;
+			}
+		}
+
+		return true;
+	}
+	
+	// 쿠폰상세정보체크 (상품쿠폰, 장바구니쿠폰, 배송비쿠폰)
+	var checkValidation20 = function (cpnType){
+		var dcCdGb = $("#CouponForm input[name=dcCdGb]:checked").val();
+		
+		// 사용가능고객구분 체크박스 체크
+		var usableCustGbCnt = $('#CouponForm input:checkbox[name=usableCustGbArr]:checked').length;
+		if(usableCustGbCnt<1){
+			mcxDialog.alert("사용가능 고객구분을 체크해주세요.");
+			$('#CouponForm input:checkbox[name=usableCustGbArr]').focus();
+			return false;
+		}
+		
+		// 사용가능고객등급 체크박스 체크
+		var usableCustGradeCnt = $('#CouponForm input:checkbox[name=usableCustGradeArr]:checked').length;
+		if(usableCustGradeCnt<1){
+			mcxDialog.alert("사용가능 고객등급을 체크해주세요.");
+			$('#CouponForm input:checkbox[name=usableCustGradeArr]').focus();
+			return false;
+		}
+
+		if ($('#CouponForm select[name="pdGb"] option:selected').val() == 'D') {
+			if(gagajf.isNull($("#CouponForm input[name=availDays] ").val()) || $("#CouponForm input[name=availDays] ").val() < 1){
+				mcxDialog.alert("유효기간 일수를 입력해주세요.");
+				$('#CouponForm input[name=availDays]').focus();
+				return false;
+			}
+		}
+
+		// 다운로드일시 validation 체크
+		var downFromDate = $('#CouponForm input[name=downStDay]').val();
+		var downToDate = $('#CouponForm input[name=downEdDay]').val();
+
+		if (gagajf.isNull(downFromDate) || gagajf.isNull(downToDate)) {
+			mcxDialog.alertC("다운로드 시작일자와 종료일자를 입력하세요.", {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$('#CouponForm input[name=downStDay]').focus();
+				}
+			});
+			return false;
+		}
+
+		if (downFromDate > downToDate) {
+			mcxDialog.alertC("다운로드 시작일자는 종료일자 보다 클 수 없습니다.", {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$('#CouponForm input[name=downEdDay]').focus();
+				}
+			});
+			return false;
+		}
+
+		// 신규가입 지급한다면 validation 체크
+		if( $('#CouponForm select[name=newCustYn] option:selected').val() == "Y" ){
+			var fromDate = $('#CouponForm input[name=custJoinStDay]').val();
+			var toDate = $('#CouponForm input[name=custJoinEdDay]').val();
+
+			if (gagajf.isNull(fromDate) || gagajf.isNull(toDate)) {
+				mcxDialog.alertC("신규가입기간 시작일자와 종료일자를 입력하세요.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('#CouponForm input[name=custJoinStDay]').focus();
+					}
+				});
+				return false;
+			}
+
+			if (fromDate > toDate) {
+				mcxDialog.alertC("등록 시작일자는 종료일자 보다 클 수 없습니다.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('#CouponForm input[name=custJoinEdDay]').focus();
+					}
+				});
+				return false;
+			}
+		}
+
+		// 첫구매 지급하면 validation 체크
+		if( $('#CouponForm select[name=firstOrdYn] option:selected').val() == "Y" ){
+			var fromDate = $('#CouponForm input[name=buyStDay]').val();
+			var toDate = $('#CouponForm input[name=buyEdDay]').val();
+
+			if (gagajf.isNull(fromDate) || gagajf.isNull(toDate)) {
+				mcxDialog.alertC("신규가입기간 시작일자와 종료일자를 입력하세요.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('#CouponForm input[name=buyStDay]').focus();
+					}
+				});
+				return false;
+			}
+
+			if (fromDate > toDate) {
+				mcxDialog.alertC("등록 시작일자는 종료일자 보다 클 수 없습니다.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('#CouponForm input[name=buyEdDay]').focus();
+					}
+				});
+				return false;
+			}
+		}
+
+		// 할인율 validation 체크 (100을 넘길수없음)
+		if($("CouponForm input[name=rdoDcWay]:checked").val() == 'G240_11') {
+			if($('#dcPval').val() > 100) {
+				mcxDialog.alert('PC할인율은 100을 초과할수없습니다.');
+				$('#dcPval').focus();
+				return false;
+			} else if( $('#dcMval').val() > 100) {
+				mcxDialog.alert('모바일(웹)할인율은 100을 초과할수없습니다.');
+				$('#dcMval').focus();
+				return false;
+			}  else if( $('#dcAval').val() > 100) {
+				mcxDialog.alert('모바일(앱)할인율은 100을 초과할수없습니다.');
+				$('#dcAval').focus();
+				return false;
+			}
+		}
+		
+		$("CouponForm input[name=rdoDcWay]:checked")
+
+		// 할인쿠폰 유형에 따른 총 발행수량 수정 (주문서 쿠폰이고 난수쿠폰일 경우)
+		// 장바구니쿠폰 && 난수쿠폰일때 
+		if (cpnType == "G230_20" && dcCdGb == "G233_20") {
+			if($("#CouponForm input[name=randomCpnQty]").val() == "" || $("#CouponForm input[name=randomCpnQty]").val() < 1) {
+				mcxDialog.alert('쿠폰의 발급 수량을 입력해주세요.');
+				$("#CouponForm input[name=randomCpnQty]").focus();
+				return false;
+			}
+			if($("#CouponForm input[name=randomCpnQty]").val() > 10000) {
+				mcxDialog.alert('쿠폰의 발급 수량은 10000장을 초과할 수 없습니다.');
+				$("#CouponForm input[name=randomCpnQty]").focus();
+				return false;
+			}
+
+		}
+		// 장바구니쿠폰 && 시리얼쿠폰일때
+		else if (cpnType == "G230_20" && dcCdGb == "G233_10") {		// 주문서 쿠폰이고 시리얼 유형일 경우
+			if($("#CouponForm input[name=serialCpnNm]").val().length > 10) {
+				mcxDialog.alert('시리얼쿠폰키워드는 10글자를 넘을 수 없습니다.');
+				$("#CouponForm input[name=serialCpnNm]").focus();
+				return false;
+			}
+			if($("#CouponForm input[name=serialCpnQty]").val() == "" || $("#CouponForm input[name=serialCpnQty]").val() < 1) {
+				mcxDialog.alert('쿠폰의 발급 수량을 입력해주세요.');
+				$("#CouponForm input[name=serialCpnQty]").focus();
+				return false;
+			}
+			if($("#CouponForm input[name=randomCpnQty]").val() > 10000) {
+				mcxDialog.alert('쿠폰의 발급 수량은 10000장을 초과할 수 없습니다.');
+				$("#CouponForm input[name=serialCpnQty]").focus();
+				return false;
+			}
+		}
+		// 상품쿠폰 && 선착순쿠폰일때
+		else if (cpnType == "G230_11" && dcCdGb == "G233_30") {	// 상품쿠폰이고 선착순쿠폰 체크되어 있을때
+			let cpnData = gagaAgGrid.getAllRowData(limitedTimeCpnGridOptions);
+			if(cpnData.length < 1){
+				mcxDialog.alert("선착순 쿠폰을 설정해주세요.");
+				return false;
+			}else{
+				for(i=0; i<cpnData.length; i++){
+
+					if(gagajf.isNull(cpnData[i].limitCpnNm)){
+						mcxDialog.alert(i+1 + "번 행의 선착순 쿠폰명을 입력해주세요.");
+						return false;
+					}
+
+					if(gagajf.isNull(cpnData[i].downStDate)){
+						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드시작일을 입력해주세요.");
+						return false;
+					}
+
+					if(gagajf.isNull(cpnData[i].downEdDate)){
+						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드시작일을 입력해주세요.");
+						return false;
+					}
+
+					if(gagajf.isNull(cpnData[i].downStTime)){
+						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드시작일을 입력해주세요.");
+						return false;
+					}
+
+					if(gagajf.isNull(cpnData[i].downEdTime)){
+						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드종료일을 입력해주세요.");
+						return false;
+					}
+
+					if(gagajf.isNull(cpnData[i].downLimitQty)){
+						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드가능수량을 입력해주세요.");
+						return false;
+					}else{
+						if(cpnData[i].downLimitQty<1){
+							mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드가능수량을 1개이상 입력해주세요.");
+							return false;
+						}
+					}
+				}
+				limitedTimeCpnGridOptions.api.setRowData(cpnData);
+			}
+		}
+
+		// 선착순쿠폰, 시리얼쿠폰, 랜텀쿠폰이 아닐때 동작
+		var chkLimitCpnCnt = $("#CouponForm input[name=chkNoLimitTotPubLimitQty]").is(":checked");
+		if (chkLimitCpnCnt == false) {
+			if (dcCdGb != "G233_30" && dcCdGb != "G233_20" && dcCdGb != "G233_10") {
+				let cnt = $("#CouponForm input[name=totPubLimitQty]").val();
+				if(cnt < 1){
+					mcxDialog.alert("총발행 제한수량은 0보다 커야합니다.");
+					return false;
+				}
+			}
+		}
+
+		// 선착순쿠폰, 시리얼쿠폰, 랜텀쿠폰이 아닐때 동작
+		var chkCustLimitCpnCnt = $("#CouponForm input[name=chkNoLimitCustPubLimitQty]").is(":checked");
+		if (chkCustLimitCpnCnt == false) {
+			if(dcCdGb != "G233_30" && dcCdGb != "G233_20" && dcCdGb != "G233_10"){
+				let cnt = $("#CouponForm input[name=custPubLimitQty]").val();
+				if(cnt < 1){
+					mcxDialog.alert("1인당 발행 제한수량은 0보다 커야합니다.");
+					return false;
+				}
+			}
+		}
+
+		var chkIssueCnt = $("#CouponForm").find("[name=onePubQty]").val();
+		if(chkIssueCnt < 1){
+			mcxDialog.alert("1회발행 제한수량은 0보다 커야합니다.");
+			return false;
+		}
+
+		return true;
+	}
+	
+	// 즉시할인쿠폰일때 데이터 validation 체크
+	var checkValidation10 = function (){
+		var stdt = $('#CouponForm input[name=availStDay]').val();
+		var eddt = $('#CouponForm input[name=availEdDay]').val();
+		
+		if(gagajf.isNull(stdt)){
+			mcxDialog.alert("유효기간 시작일시를 입력해주세요.");
+			return false;
+		}
+		if(gagajf.isNull(eddt)){
+			mcxDialog.alert("유효기간 종료일시를 입력해주세요.");
+			return false;
+		}
+		if(stdt>eddt){
+			mcxDialog.alert("시작일시가 종료일시보다 클 수 없습니다.");
+			return false;
+		}
+
+		return true;
+	}
+	
+	// 분담율 합 체크
+	var fnBurdenValueCheck = function (){
+		let burdenData = gagaAgGrid.getAllRowData(inComGridOptions);
+		let totalValue = 0;
+		$.each(burdenData, function(idx, item) {
+			totalValue += parseInt(item.burdenRate);
+		});
+
+		if(totalValue > 100) {
+			mcxDialog.alert("업체분담율의 합이 100을 넘을수 없습니다.");
+			return false;
+		}
+
+		return true;
+	};
+
+	// START ::: 2021.04.09 숫자입려 천단위 찍기
+	var inputNumberFormat = function(obj) {
+	    obj.value = comma(uncomma(obj.value));
+	}
+
+	var comma = function(str) {
+	    str = String(str);
+	    return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');
+	}
+
+	var uncomma = function(str) {
+	    str = String(str);
+	    return str.replace(/[^\d]+/g, '');
+	}
+	// 2021.04.09 숫자입려 천단위 찍기 ::: END
+	
+	// replce 처리
+	var strReplaceAll = function(str) {
+		var rtnStr = "";
+		if (str != undefined) {
+			rtnStr = str.replaceAll(',','');
+		}
+		return rtnStr;
+	}
+	
+	// 날짜분리 ( 시작/종료날짜구분(start , end) , 날짜String , 적용타겟대상 )
+	function splitDate(stedGb , date , targetGb ){
+		var str 		= date;
+		var dateStr 	= str.split(' ');
+		var timeArr 	= dateStr[1].split(':');
+		
+		if (stedGb == "start") {
+			$("#CouponForm input[name="+targetGb+"StDay]").val(dateStr[0]);
+			$("#CouponForm select[name="+targetGb+"StHH]").val(timeArr[0]);
+			$("#CouponForm select[name="+targetGb+"StMM]").val(timeArr[1]);
+		} else {
+			$("#CouponForm input[name="+targetGb+"EdDay]").val(dateStr[0]);
+			$("#CouponForm select[name="+targetGb+"EdHH]").val(timeArr[0]);
+			$("#CouponForm select[name="+targetGb+"EdMM]").val(timeArr[1]);
+		}
+	}
+	
+	/*]]>*/
+</script>
+</html>

+ 690 - 0
src/main/webapp/WEB-INF/views/marketing/CouponPopupGoodsCpnInfo.html

@@ -0,0 +1,690 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : CouponPopupForm.html
+ * @desc    : 쿠폰 등록 팝업 화면
+ *============================================================================
+ * ISTYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.23   xyzp1539       최초 작성
+ *******************************************************************************
+ -->
+ 
+<!-- 상품쿠폰,장바구니쿠폰,배송비쿠폰 -->
+<table class="frmStyle G230_20">
+	<colgroup>
+		<col style="width:165px;">
+		<col style="width:45%;">
+		<col style="width:165px;">
+		<col>
+	</colgroup>
+	<tbody>
+		<tr>
+			<th>쿠폰명<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" name="cpnNm" required="required" data-valid-name="쿠폰명">
+			</td>
+			<th>사이트<em class="required" title="필수"></em></th>
+			<td>
+				<select name="siteCd" required="required" data-valid-name="사이트">
+					<option th:if="${siteCdList}" th:each="oneData , status : ${siteCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+				</select>
+			</td>
+		</tr>
+		<tr>
+			<th>쿠폰설명</th>
+			<td>
+				<input type="text" name="cpnDesc" data-valid-name="쿠폰설명">
+			</td>
+			<th>만료알림여부<em class="required" title="필수"></em></th>
+			<td>
+				<select name="endAlimYn" required="required" data-valid-name="만료알림여부">
+					<option value="Y">Y</option>
+					<option value="N" selected="selected">N</option>
+				</select>
+			</td>
+		</tr>
+		<tr class="serialCpnArea" style="display:none;">
+			<th>시리얼쿠폰키워드<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" name="serialCpnNm" class="w300" maxlength="10" data-valid-name="시리얼쿠폰키워드">
+			</td>
+			<th>시리얼쿠폰발급수량<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" name="serialCpnQty" class="w300" data-valid-name="시리얼쿠폰발급수량" style="text-align: right" onkeyup="inputNumberFormat(this);">
+			</td>
+		</tr>
+		<tr class="randomCpnArea" style="display:none;">
+			<th >난수생성수량<em class="required" title="필수"></em></th>
+			<td colspan="3">
+				<input type="text" name="randomCpnQty" class="w300" data-valid-name="난수생성수량" style="text-align: right" onkeyup="inputNumberFormat(this);">
+			</td>
+		</tr>
+		<tr>
+			<th class="usableCustGbArea">사용가능고객구분<em class="required" title="필수"></em></th>
+			<td class="usableCustGbArea">
+				<label class="chkBox" th:if="${usableCustGbList}" th:each="oneData, status : ${usableCustGbList}">
+					<input type="checkbox" name="usableCustGbArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}" checked="checked"/>
+				</label>
+			</td>
+			<th class="usableCustGradeArea">사용고객등급구분<em class="required" title="필수"></em></th>
+			<td class="usableCustGradeArea">
+				<label class="chkBox" th:if="${usableCustGradeList}" th:each="oneData, status : ${usableCustGradeList}">
+					<input type="checkbox" name="usableCustGradeArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}" checked="checked"/>
+				</label>
+			</td>
+		</tr>
+		<tr>
+			<th>할인방식<em class="required" title="필수"></em></th>
+			<td>
+				<input type="hidden" name="dcWay" required="required" data-valid-name="할인방식">
+				<label class="rdoBtn" th:if="${dcWayList}" th:each="oneData, status : ${dcWayList}"> 
+					<input type="radio" name="rdoDcWay" th:text="${oneData.cdNm}" th:value="${oneData.cd}"/>
+				</label>
+			</td>
+			<th>할인값(PC)<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" class="w200" name="dcPval" value="0" required="required" data-valid-name="할인값(PC)" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);inputNumberFormat(this);">
+				<span class="dcPvalSpan">원</span>
+				<button type="button" class="btn btn-default btn-lg" id="applySameValueBtn">동일적용</button>
+			</td>
+		</tr>
+		<tr>
+			<th>할인값(모바일웹)<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" class="w200" name="dcMval" value="0" required="required" data-valid-name="할인값(모바일웹)" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);inputNumberFormat(this);">
+				<span class="dcMvalSpan">원</span>
+			</td>
+			<th>할인값(모바일앱)<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" class="w200" name="dcAval" value="0" required="required" data-valid-name="할인값(모바일앱)" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);inputNumberFormat(this);">
+				<span class="dcAvalSpan">원</span>
+			</td>
+		</tr>
+		<tr>
+			<th class="maxDcAmtArea">최대할인금액<em class="required" title="필수"></em></th>
+			<td class="maxDcAmtArea">
+				<input type="text" class="w200" name="maxDcAmt" value="0" required="required" data-valid-name="최대할인금액" style="text-align: right;" onkeyup="inputNumberFormat(this);"><span>원</span>
+			</td>
+			<th class="buyLimitAmtArea">구매제한금액<em class="required" title="필수"></em></th>
+			<td class="buyLimitAmtArea">
+				<input type="text" name="buyLimitAmt" class="w200" required="required" value="0" style="text-align: right;" data-valid-name="구매제한금액" onkeyup="inputNumberFormat(this);">원
+			</td>
+		</tr>
+		<tr>
+			<th class="downStdtArea">다운로드시작일시<em class="required" title="필수"></em></th>
+			<td class="downStdtArea">
+				<input type="hidden" name="downStdt" required="required" data-valid-name="다운로드시작일시">
+				<input type="text" class="schDate w100" name="downStDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
+				<select name="downStHH">
+					<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+				<select name="downStMM">
+					<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+			<th class="downEddtArea">다운로드종료일시<em class="required" title="필수"></em></th>
+			<td class="downEddtArea">
+				<input type="hidden" name="downEddt" required="required" data-valid-name="다운로드종료일시">
+				<input type="text" class="schDate w100" name="downEdDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
+				<select name="downEdHH" onclick="fnChangeEdHH(this);">
+					<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+					<option th:text="24시" th:value="24" selected></option>
+				</select>
+				<select name="downEdMM">
+					<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+			</td>
+		</tr>
+		<tr>
+			<th class="pdGbArea">기간/일수구분<em class="required" title="필수"></em></th>
+			<td class="pdGbArea" colspan="3">
+				<select name="pdGb" id="pdGb" onchange="pdGbChange(this)" required="required" data-valid-name="기간/일수구분">
+					<option value="P">기간</option>
+					<option value="D">일수</option>
+				</select>
+			</td>
+		</tr>
+		<tr class="availDaysArea" style="display:none;">
+			<th>유효기간일수<em class="required" title="필수"></em></th>
+			<td colspan="3">
+				<input type="text" name="availDays" class="w200" data-valid-name="유효기간일수" style="text-align: right;" onkeyup="inputNumberFormat(this);">
+			</td>
+		</tr>
+		<tr>
+			<th class="availDateTr">유효기간시작일시<em class="required" title="필수"></em></th>
+			<td class="availDateTr">
+				<input type="hidden" name="availStdt" data-valid-name="유효기간시작일시">
+				<input type="text" class="schDate w100" name="availStDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
+				<select name="availStHH" id="availStHH">
+					<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+				<select name="availStMM" id="availStMM">
+					<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+			<th class="availDateTr">유효기간종료일시<em class="required" title="필수"></em></th>
+			<td class="availDateTr">
+				<input type="hidden" id="availEddt" name="availEddt" data-valid-name="유효기간종료일시">
+				<input type="text" class="schDate w100" name="availEdDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
+				<select name="availEdHH" id="availEdHH" onclick="fnChangeEdHH(this);">
+					<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+					<option th:text="24시" th:value="24" selected></option>
+				</select>
+				<select name="availEdMM" id="availEdMM">
+					<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+			</td>
+		</tr>
+		<tr class="firstBuyTr">
+			<th>첫구매여부<em class="required" title="필수"></em></th>
+			<td colspan="3">
+				<select name="firstOrdYn" onchange="firstOrdYnChange(this)" required="required" data-valid-name="첫구매여부">
+					<option value="Y">Y</option>
+					<option value="N" selected="selected">N</option>
+				</select>
+			</td>
+		</tr>
+		<tr class="buyDateTr" style="display:none;">
+			<th >첫구매기간시작일시<em class="required" title="필수"></em></th>
+			<td>
+				<input type="hidden" name="buyStdt" data-valid-name="첫구매기간시작일시">
+				<input type="text" class="schDate w100" name="buyStDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
+				<select name="buyStHH">
+					<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+				<select name="buyStMM">
+					<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+			<th>첫구매기간종료일시<em class="required" title="필수"></em></th>
+			<td>
+				<input type="hidden" name="buyEddt" data-valid-name="첫구매기간종료일시">
+				<input type="text" class="schDate w100" name="buyEdDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
+				<select name="buyEdHH" onclick="fnChangeEdHH(this);">
+					<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+					<option th:text="24시" th:value="24" selected></option>
+				</select>
+				<select name="buyEdMM">
+					<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+			</td>
+		</tr>
+		<tr class="custJoinTr">
+			<th>신규회원여부<em class="required" title="필수"></em></th>
+			<td colspan="3">
+				<select name="newCustYn" onchange="newCustYnChange(this)" required="required" data-valid-name="신규회원여부">
+					<option value="Y">Y</option>
+					<option value="N" selected="selected">N</option>
+				</select>
+			</td>
+		</tr>
+		<tr class="custJoinDateTr" style="display:none;">
+			<th >신규회원기간시작일시<em class="required" title="필수"></em></th>
+			<td>
+				<input type="hidden" name="custJoinStdt" data-valid-name="신규회원기간시작일시">
+				<input type="text" class="schDate w100" name="custJoinStDay" id="custJoinStDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
+				<select name="custJoinStHH">
+					<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+				<select name="custJoinStMM">
+					<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+			<th>신규회원기간종료일시<em class="required" title="필수"></em></th>
+			<td>
+				<input type="hidden" name="custJoinEddt" data-valid-name="신규회원기간종료일시">
+				<input type="text" class="schDate w100" name="custJoinEdDay" id="custJoinEdDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
+				<select name="custJoinEdHH" onclick="fnChangeEdHH(this);">
+					<option th:if="${hhList}" th:each="oneData , status : ${hhList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+					<option th:text="24시" th:value="24" selected></option>
+				</select>
+				<select name="custJoinEdMM">
+					<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
+				</select>
+			</td>
+		</tr>
+		<tr class="dcCdCheck1">
+			<th>총발행제한수량<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" class="w200" name="totPubLimitQty" value="0" required="required" data-valid-name="총발행제한수량" style="text-align: right;" onkeyup="inputNumberFormat(this);">개
+				<label class="chkBox" id="chkBoxTotPubQty"><input type="checkbox" name="chkNoLimitTotPubLimitQty"/>제한없음</label>
+			</td>
+			<th>1인당발행제한수량<em class="required" title="필수"></em></th>
+			<td>
+				<input type="text" class="w200" name="custPubLimitQty" value="1" required="required" data-valid-name="1인당발행제한수량" style="text-align: right;" onkeyup="inputNumberFormat(this);">개
+				<label class="chkBox" id="chkBoxCustPubQty"><input type="checkbox" name="chkNoLimitCustPubLimitQty"/>제한없음</label>
+			</td>
+		</tr>
+		<tr>
+			<th class="dcCdCheck2">1회발행수량<em class="required" title="필수"></em></th>
+			<td class="dcCdCheck2">
+				<input type="text" class="w200" name="onePubQty" value="1" required="required" data-valid-name="1회발행수량" style="text-align: right;" onkeyup="inputNumberFormat(this);">개
+			</td>
+			<th class="downAblArea">다운로드가능여부<em class="required" title="필수"></em></th>
+			<td class="downAblArea">
+				<select name="downAblYn" required="required" data-valid-name="다운로드가능여부">
+					<option value="Y">Y</option>
+					<option value="N" selected="selected">N</option>
+				</select>
+				<em style="color:red"> *상품상세 페이지내</em>
+			</td>
+		</tr>
+		<tr class="payTypeTr" style="display:none;">
+			<th>결제수단</th>
+			<td colspan="3">
+				<label class="chkBox" th:if="${payTypeList}" th:each="oneData, status : ${payTypeList}">
+					<input type="checkbox" name="payTypeArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}" checked="checked"/>
+				</label>
+			</td>
+		</tr>
+	</tbody>
+</table>
+<!-- //기본정보 -->
+
+<script th:inline="javascript">
+
+var cpnCustGbList 			= [[${cpnCustGbList}]];
+var cpnCustGradeList 		= [[${cpnCustGradeList}]];
+var cpnPayTypeList 			= [[${cpnPayTypeList}]];
+
+// 할인방식 할인율 일때, 할인값 체크
+var fnDcValOnkeyUp = function (obj){
+	var inputName 	= $(obj).attr("name");
+	var rdoDcWay 	= $('#CouponForm input:radio[name="rdoDcWay"]:checked').val();
+	var dcVal 		= $("#CouponForm input[name="+inputName+"]").val();
+	
+	if (rdoDcWay == "G240_11") {
+		if (dcVal > 100) {
+			mcxDialog.alert('할인율은 100을 넘을수 없습니다.');
+			$("#CouponForm input[name="+inputName+"]").val('');
+			$("#CouponForm input[name="+inputName+"]").focus();
+			return;
+		}
+	}
+}
+
+// 기간 일수 변경시
+function pdGbChange(pThis){
+	var selectVal = $(pThis).val();
+
+	if (typeof selectVal == "undefined") {
+		if(mode == "U") {
+			selectVal = cpnDetail.pdGb;
+		} else {
+			selectVal = "P";
+		}
+	}
+
+	if (selectVal == "P") {
+		$('.availDateTr').css('display' , '');
+		$("#CouponForm .availDaysArea").hide();
+		$('#CouponForm select[name=availDays]').attr('required' , false);
+		$('#CouponForm select[name=availStDay]').attr('required' , true);
+		$('#CouponForm select[name=availEdDay]').attr('required' , true);
+		$('#CouponForm select[name=availStdt]').attr('required' , true);
+		$('#CouponForm select[name=availEddt]').attr('required' , true);
+	} else {
+		$('.availDateTr').css('display' , 'none');
+		$("#CouponForm .availDaysArea").show();
+		$('#CouponForm select[name=availDays]').attr('required' , true);
+		$('#CouponForm select[name=availStDay]').attr('required' , false);
+		$('#CouponForm select[name=availEdDay]').attr('required' , false);
+		$('#CouponForm select[name=availStdt]').attr('required' , false);
+		$('#CouponForm select[name=availEddt]').attr('required' , false);
+	}
+}
+
+// 종료시간 클릭시
+var fnChangeEdHH = function (obj){
+	var selectId = $(obj).attr("name");
+	
+	var changeId = "";
+	if (selectId == "downEdHH") {
+		changeId = "downEdMM";
+	} else if(selectId == "availEdHH") {
+		changeId = "availEdMM";
+	} else if(selectId == "buyEdHH") {
+		changeId = "buyEdMM";
+	} else {
+		changeId = "custJoinEdMM";
+	}
+	
+	if (obj.value == 24) {
+		$("#CouponForm select[name="+changeId+"] option").hide();
+		$("#CouponForm select[name="+changeId+"] option:first").show().prop("selected", true);
+	} else {
+		$("#CouponForm select[name="+changeId+"] option").show();
+	}
+};
+
+// 첫구매여부 변경시
+function firstOrdYnChange(pThis){
+	var selectVal = $(pThis).val();
+
+	if (typeof selectVal == "undefined") {
+		if (mode == "U") {
+			selectVal = cpnDetail.firstOrdYn;
+		} else {
+			selectVal = "N";
+		}
+	}
+
+	if (selectVal == "Y" ) {
+		$('.buyDateTr').css('display' , '');
+		$('#CouponForm select[name=buyStdt]').attr('required' , true);
+		$('#CouponForm select[name=buyEddt]').attr('required' , true);
+	} else {
+		$('.buyDateTr').css('display' , 'none');
+		$('#CouponForm select[name=buyStdt]').attr('required' , false);
+		$('#CouponForm select[name=buyEddt]').attr('required' , false);
+	}
+}
+
+// 신규회원여부 변경시
+function newCustYnChange(pThis){
+	var selectVal = $(pThis).val();
+
+	if(typeof selectVal == "undefined") {
+		if(mode == "U") {
+			selectVal = cpnDetail.newCustYn;
+		} else {
+			selectVal = "N";
+		}
+	}
+
+	if (selectVal == "Y" ) {
+		$('.custJoinDateTr').css('display' , '');
+		$('#CouponForm select[name=custJoinStdt]').attr('required' , true);
+		$('#CouponForm select[name=custJoinEddt]').attr('required' , true);
+	} else {
+		$('.custJoinDateTr').css('display' , 'none');
+		$('#CouponForm select[name=custJoinStdt]').attr('required' , false);
+		$('#CouponForm select[name=custJoinEddt]').attr('required' , false);
+	}
+}
+
+// 시리얼 쿠폰 사용
+$("#CouponForm input[name=serialCpnNm]").bind("keyup",function(){
+	re = /[~!@\#$%^&*\()\-=+_']/gi;
+	var temp = $(this).val();
+	
+	// 특수문자가 포함되면 삭제하여 값으로 다시셋팅
+	if (re.test(temp)) { 
+		$(this).val(temp.replace(re,""));
+	}
+	
+	$(this).val($(this).val().replaceAll(" ", ""));
+});
+
+// 총발행 제한수량 -> 제한없음 처리
+$("#CouponForm #chkBoxTotPubQty").bind('click', function (){
+	var chkBox 	= $("#CouponForm input[name=chkNoLimitTotPubLimitQty]").is(":checked");
+	var cpnStat = $('#CouponForm input:radio[name="disCpnStat"]:checked').val();
+	
+	if (cpnStat=='G232_10'){
+		// true 체크가 되어있었는데 해제됐어 -> 값0 inputbox disabled 해제
+		if (chkBox) { 
+			$("#CouponForm input[name=totPubLimitQty]").val(0);
+			$("#CouponForm input[name=totPubLimitQty]").prop("disabled", true);
+			$("#CouponForm input[name=totPubLimitQty]").prop("readonly", true);
+		} 
+		// false 체크가 안되어있었는데 체크됐어 -> 값0 inputbox disabled
+		else {	
+			$("#CouponForm input[name=totPubLimitQty]").val(0);
+			$("#CouponForm input[name=totPubLimitQty]").prop("disabled", false);
+			$("#CouponForm input[name=totPubLimitQty]").prop("readonly", false);
+		}
+	}
+});
+
+// 1인당발행 제한수량 -> 제한없음 처리
+$("#CouponForm #chkBoxCustPubQty").bind('click', function (){
+	var chkBox 	= $("#CouponForm input[name=chkNoLimitCustPubLimitQty]").is(":checked");
+	var cpnStat = $('#CouponForm input:radio[name="disCpnStat"]:checked').val();
+	
+	if (cpnStat=='G232_10'){
+		// true 체크가 되어있었는데 해제됐어 -> 값0 inputbox disabled 해제
+		if (chkBox) { 
+			$("#CouponForm input[name=custPubLimitQty]").val(0);
+			$("#CouponForm input[name=custPubLimitQty]").prop("disabled", true);
+			$("#CouponForm input[name=custPubLimitQty]").prop("readonly", true);
+		}
+		// false 체크가 안되어있었는데 체크됐어 -> 값0 inputbox disabled
+		else {	
+			$("#CouponForm input[name=custPubLimitQty]").val(1);
+			$("#CouponForm input[name=custPubLimitQty]").prop("disabled", false);
+			$("#CouponForm input[name=custPubLimitQty]").prop("readonly", false);
+		}
+	}
+});
+
+//2021.08.17 초기화설정 변경
+$(document).ready(function() {
+	if (cpnDetail != null && cpnDetail.cpnId != null) {
+		
+		// 기본정보 세팅
+		$("#CouponForm input[name=cpnNm]").val(cpnDetail.cpnNm);
+		$("#CouponForm input[name=cpnDesc]").val(cpnDetail.cpnDesc);
+		$("#CouponForm input:radio[name='rdoDcWay']:radio[value=" + cpnDetail.dcWay + "]").prop('checked', true);
+		$("#CouponForm input:radio[name='rdoApplyScope']:radio[value=" + cpnDetail.applyScope + "]").prop('checked', true);
+		$("#CouponForm input[name=dcPval]").val(cpnDetail.dcPval.addComma());
+		$("#CouponForm input[name=dcMval]").val(cpnDetail.dcMval.addComma());
+		$("#CouponForm input[name=dcAval]").val(cpnDetail.dcAval.addComma());
+		$("#CouponForm input[name=maxDcAmt]").val(cpnDetail.maxDcAmt.addComma());
+		$("#CouponForm input[name=buyLimitAmt]").val(cpnDetail.buyLimitAmt.addComma());
+		$("#CouponForm input[name=onePubQty]").val(cpnDetail.onePubQty.addComma());
+		$("#CouponForm input[name=randomCpnQty]").val(cpnDetail.totPubLimitQty.addComma());
+		$("#CouponForm input[name=serialCpnQty]").val(cpnDetail.totPubLimitQty.addComma());
+		$("#CouponForm input[name=serialCpnNm]").val(cpnDetail.rdCpnNm);
+
+		// 금액할인
+		if (cpnDetail.dcWay == 'G240_10') {
+			strAmtType = "원";
+			$("#CouponForm input[name=maxDcAmt]").attr("disabled", true);
+		}
+		// 율할인
+		else {
+			strAmtType = "%";
+			$("#CouponForm input[name=maxDcAmt]").attr("disabled", false);
+		}
+		
+		$('.dcPvalSpan').text(strAmtType);
+		$('.dcMvalSpan').text(strAmtType);
+		$('.dcAvalSpan').text(strAmtType);
+		
+		$("#CouponForm input[name=totPubLimitQty]").val(cpnDetail.totPubLimitQty.addComma());
+		$("#CouponForm input[name=custPubLimitQty]").val(cpnDetail.custPubLimitQty.addComma());
+		
+		$("#CouponForm select[name=pdGb]").val(cpnDetail.pdGb).prop("selected", true);
+		$("#CouponForm select[name=siteCd]").val(cpnDetail.siteCd).prop("selected", true);
+		$("#CouponForm select[name=endAlimYn]").val(cpnDetail.endAlimYn).prop("selected", true);
+		$("#CouponForm select[name=firstOrdYn]").val(cpnDetail.firstOrdYn).prop("selected", true);
+		$("#CouponForm select[name=newCustYn]").val(cpnDetail.newCustYn).prop("selected", true);
+		$("#CouponForm select[name=downAblYn]").val(cpnDetail.downAblYn).prop("selected", true);
+		
+		// 유효기간이 날짜인경우 날짜 세팅
+		if (cpnDetail.pdGb == "P") {
+			splitDate("start"	, cpnDetail.availStdt, "avail");
+			splitDate("end"		, cpnDetail.availEddt, "avail");
+		} else {
+			$("#CouponForm #availDays").val(cpnDetail.availDays);
+			$('#CouponForm #availEdHH option:last').attr("selected", "selected");
+			$('#CouponForm #availEdMM option:last').attr("selected", "selected");
+		}
+		
+		// 유효기간이 날짜인경우 날짜 세팅
+		splitDate("start"	, cpnDetail.downStdt, "down");
+		splitDate("end"		, cpnDetail.downEddt, "down");
+		
+		// 사용가능고객구분 체크박스 체크 제거
+		$('#CouponForm input:checkbox[name=usableCustGbArr]').prop('checked', false);
+		if (cpnCustGbList != null) {
+			if(cpnCustGbList.length > 0){
+				var chkboxCnt = $('#CouponForm input:checkbox[name=usableCustGbArr]').length;
+				var dataCnt = cpnCustGbList.length;
+				for(let i=0; i<chkboxCnt; i++){
+					for(let j=0; j<dataCnt; j++){
+						var data = cpnCustGbList[j].usableCustGb;
+						if($('#CouponForm input:checkbox[name=usableCustGbArr]').eq(i).val() == data){
+							$('#CouponForm input:checkbox[name=usableCustGbArr]').eq(i).prop('checked', true);
+							$("#CouponForm input:checkbox[name=usableCustGbArr]").eq(i).parent("label").addClass('checked');
+						}
+					}
+				}
+			}
+		}
+
+		// 사용고객등급구분 체크박스 체크 제거
+		$('#CouponForm input:checkbox[name=usableCustGradeArr]').prop('checked', false);
+		if (cpnCustGradeList != null) {
+			if (cpnCustGradeList.length > 0){
+				var chkboxCnt = $('#CouponForm input:checkbox[name=usableCustGradeArr]').length;
+				var dataCnt = cpnCustGradeList.length;
+				for(let i=0; i<chkboxCnt; i++){
+					for(let j=0; j<dataCnt; j++){
+						var data = cpnCustGradeList[j].usableCustGrade;
+						if($('#CouponForm input:checkbox[name=usableCustGradeArr]').eq(i).val() == data){
+							$('#CouponForm input:checkbox[name=usableCustGradeArr]').eq(i).prop('checked', true);
+							$("#CouponForm input:checkbox[name=usableCustGradeArr]").eq(i).parent().addClass('checked');
+						}
+					}
+				}
+			}
+		}
+		
+		// 첫구매여부
+		if (cpnDetail.firstOrdYn == "Y") {
+			$('.buyDateTr').css('display' , '');
+			$('#CouponForm select[name=buyStdt]').attr('required' , true);
+			$('#CouponForm select[name=buyEddt]').attr('required' , true);
+			
+			splitDate("start"	, cpnDetail.buyStdt, "buy");
+			splitDate("end"		, cpnDetail.buyEddt, "buy");
+		}
+		
+		// 신규회원여부
+		if (cpnDetail.newCustYn == "Y") {
+			$('.custJoinDateTr').css('display' , '');
+			$('#CouponForm select[name=custJoinStdt]').attr('required' , true);
+			$('#CouponForm select[name=custJoinEddt]').attr('required' , true);
+			
+			splitDate("start"	, cpnDetail.custJoinStdt, "custJoin");
+			splitDate("end"		, cpnDetail.custJoinEddt, "custJoin");
+		}
+		
+		// 총발행제한수량
+		if (cpnDetail.totPubLimitQty == 0) {
+			$('#CouponForm input:checkbox[name=chkNoLimitTotPubLimitQty]').prop("checked", true);
+			$("#CouponForm input[name=totPubLimitQty]").val(0);
+			$("#CouponForm input[name=totPubLimitQty]").prop("disabled", true);
+			$("#CouponForm input[name=totPubLimitQty]").prop("readonly", true);
+		}
+		
+		// 1인당발행제한수량
+		if (cpnDetail.custPubLimitQty == 0) {
+			$('#CouponForm input:checkbox[name=chkNoLimitCustPubLimitQty]').prop("checked", true);
+			$("#CouponForm input[name=custPubLimitQty]").val(0);
+			$("#CouponForm input[name=custPubLimitQty]").prop("disabled", true);
+			$("#CouponForm input[name=custPubLimitQty]").prop("readonly", true);
+		}
+		
+		// 비활성화처리 대기상태가아닐때 동작
+		if (cpnDetail.cpnStat != 'G232_10' || issueCnt > 0) {
+			$("#CouponForm input[name=cpnNm]").attr("disabled", true);
+			$("#CouponForm input[name=cpnDesc]").attr("disabled", true);
+			$("#CouponForm input:radio[name='rdoDcWay']").attr("disabled", true);
+			$("#CouponForm input:radio[name='rdoApplyScope']").attr("disabled", true);
+			$("#CouponForm input[name=dcPval]").attr("disabled", true);
+			$("#CouponForm input[name=dcMval]").attr("disabled", true);
+			$("#CouponForm input[name=dcAval]").attr("disabled", true);
+			$("#CouponForm input[name=maxDcAmt]").attr("disabled", true);
+			$("#CouponForm input[name=buyLimitAmt]").attr("disabled", true);
+			$("#CouponForm input[name=onePubQty]").attr("disabled", true);
+			$("#CouponForm input[name=randomCpnQty]").attr("disabled", true);
+			$("#CouponForm input[name=serialCpnQty]").attr("disabled", true);
+			$("#CouponForm input[name=serialCpnNm]").attr("disabled", true);
+			
+			$('#CouponForm input:checkbox[name=usableCustGbArr]').attr("disabled", true);
+			$('#CouponForm input:checkbox[name=usableCustGradeArr]').attr("disabled", true);
+			
+			$('#CouponForm input:checkbox[name=chkNoLimitTotPubLimitQty]').attr("disabled", true);
+			$('#CouponForm input:checkbox[name=chkNoLimitCustPubLimitQty]').attr("disabled", true);
+			
+			$("#CouponForm input[name=totPubLimitQty]").attr("disabled", true);
+			$("#CouponForm input[name=custPubLimitQty]").attr("disabled", true);
+			
+			$("#CouponForm select[name=pdGb]").attr("disabled", true);
+			$("#CouponForm select[name=siteCd]").attr("disabled", true);
+			$("#CouponForm select[name=endAlimYn]").attr("disabled", true);
+			$("#CouponForm select[name=firstOrdYn]").attr("disabled", true);
+			$("#CouponForm select[name=newCustYn]").attr("disabled", true);
+			$("#CouponForm select[name=downAblYn]").attr("disabled", true);
+			
+			$("#CouponForm input[name=downStDay]").attr('readonly', true);
+			$("#CouponForm input[name=downStDay]").attr('disabled', true);
+			$("#CouponForm select[name=downStHH]").attr('readonly', true);
+			$("#CouponForm select[name=downStHH]").attr('disabled', true);
+			$("#CouponForm select[name=downStMM]").attr('readonly', true);
+			$("#CouponForm select[name=downStMM]").attr('disabled', true);
+			$("#CouponForm input[name=downEdDay]").attr('readonly', true);
+			$("#CouponForm input[name=downEdDay]").attr('disabled', true);
+			$("#CouponForm select[name=downEdHH]").attr('readonly', true);
+			$("#CouponForm select[name=downEdHH]").attr('disabled', true);
+			$("#CouponForm select[name=downEdMM]").attr('readonly', true);
+			$("#CouponForm select[name=downEdMM]").attr('disabled', true);
+			
+			$("#CouponForm input[name=availStDay]").attr('readonly', true);
+			$("#CouponForm input[name=availStDay]").attr('disabled', true);
+			$("#CouponForm select[name=availStHH]").attr('readonly', true);
+			$("#CouponForm select[name=availStHH]").attr('disabled', true);
+			$("#CouponForm select[name=availStMM]").attr('readonly', true);
+			$("#CouponForm select[name=availStMM]").attr('disabled', true);
+			$("#CouponForm input[name=availEdDay]").attr('readonly', true);
+			$("#CouponForm input[name=availEdDay]").attr('disabled', true);
+			$("#CouponForm select[name=availEdHH]").attr('readonly', true);
+			$("#CouponForm select[name=availEdHH]").attr('disabled', true);
+			$("#CouponForm select[name=availEdMM]").attr('readonly', true);
+			$("#CouponForm select[name=availEdMM]").attr('disabled', true);
+			
+			$("#CouponForm input[name=buyStDay]").attr('readonly', true);
+			$("#CouponForm input[name=buyStDay]").attr('disabled', true);
+			$("#CouponForm select[name=buyStHH]").attr('readonly', true);
+			$("#CouponForm select[name=buyStHH]").attr('disabled', true);
+			$("#CouponForm select[name=buyStMM]").attr('readonly', true);
+			$("#CouponForm select[name=buyStMM]").attr('disabled', true);
+			$("#CouponForm input[name=buyEdDay]").attr('readonly', true);
+			$("#CouponForm input[name=buyEdDay]").attr('disabled', true);
+			$("#CouponForm select[name=buyEdHH]").attr('readonly', true);
+			$("#CouponForm select[name=buyEdHH]").attr('disabled', true);
+			$("#CouponForm select[name=buyEdMM]").attr('readonly', true);
+			$("#CouponForm select[name=buyEdMM]").attr('disabled', true);
+			
+			$("#CouponForm input[name=custJoinStDay]").attr('readonly', true);
+			$("#CouponForm input[name=custJoinStDay]").attr('disabled', true);
+			$("#CouponForm select[name=custJoinStHH]").attr('readonly', true);
+			$("#CouponForm select[name=custJoinStHH]").attr('disabled', true);
+			$("#CouponForm select[name=custJoinStMM]").attr('readonly', true);
+			$("#CouponForm select[name=custJoinStMM]").attr('disabled', true);
+			$("#CouponForm input[name=custJoinEdDay]").attr('readonly', true);
+			$("#CouponForm input[name=custJoinEdDay]").attr('disabled', true);
+			$("#CouponForm select[name=custJoinEdHH]").attr('readonly', true);
+			$("#CouponForm select[name=custJoinEdHH]").attr('disabled', true);
+			$("#CouponForm select[name=custJoinEdMM]").attr('readonly', true);
+			$("#CouponForm select[name=custJoinEdMM]").attr('disabled', true);
+		}
+	}
+});
+</script>
+</html>
+
+
+
+
+
+
+
+
+
+
+

+ 108 - 0
src/main/webapp/WEB-INF/views/marketing/CouponPopupLimitedTimeInfo.html

@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : CouponPopupForm.html
+ * @desc    : 쿠폰 등록 팝업 화면
+ *============================================================================
+ * ISTYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.23   xyzp1539       최초 작성
+ *******************************************************************************
+ -->
+<!-- 선착순 쿠폰 설정 -->
+<span class="limitedTimeCpnSpan">
+	<button type="button" class="btn btnRight btn-success btn-lg" id="btnAddLimitedTimeCpnRow">행추가</button>
+	<button type="button" class="btn btnRight btn-success btn-lg" id="btnDelLimitedTimeCpnRow">행삭제</button>
+</span>
+<br/>
+<div id="limitedTimeCpnList" style="width: 100%; height: 500px" class="ag-theme-balham"></div>
+<!-- //선착순 쿠폰 설정 -->
+
+<!-- //제휴채널 설정 -->
+<script th:inline="javascript">
+let limitedTimeCpnList 	= [[${limitedTimeCpnList}]];
+
+//선착순 쿠폰 리스트
+var limitedTimeCpnDefs = [
+	{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+	{ headerName: "쿠폰시퀀스", field: "cpnId", width: 150, cellClass: 'text-center'},	//, hide: true
+	{ headerName: "선착순쿠폰명" , field: "limitCpnNm" , width: 200, cellClass: 'text-center'
+		,cellEditorParams: { maxlength: 20}
+	} ,
+	{ headerName: "시작일" , field: "downStDate" , width: 200, cellClass: 'text-center'
+		,cellEditor: 'datePicker'
+		,cellEditorParams: { maxlength: 10, required: true }
+	},
+	{ headerName: "시작시간" , field: "downStTime" , width: 200, cellClass: 'text-center'
+		,cellEditor: 'dateTimer'
+		,cellEditorParams: { maxlength: 8, required: true }
+	},
+	{ headerName: "종료일"  , field: "downEdDate" , width: 200 , cellClass: 'text-center'
+		,cellEditor: 'datePicker'
+		,cellEditorParams: { maxlength: 10, required: true }
+	} ,
+	{ headerName: "종료시간"  , field: "downEdTime" , width: 200 , cellClass: 'text-center'
+		,cellEditor: 'dateTimer'
+		,cellEditorParams: { maxlength: 8, required: true }
+	} ,
+	{ headerName: "다운로드가능수량"  , field: "downLimitQty" , width: 150 , cellClass: 'text-center'
+		,cellEditorParams: { maxlength: 4, validType: 'numeric'}
+	},
+	{ headerName: "선착순시퀀스", field: "limitCpnId", width: 150, cellClass: 'text-center' , hide: true}
+	,{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
+	,{headerName: "시작일시", field: "downStdt", width: 150, cellClass: 'text-center' , hide:true}
+	,{headerName: "종료일시", field: "downEddt", width: 150, cellClass: 'text-center' , hide:true}
+];
+
+var limitedTimeCpnGridOptions = gagaAgGrid.getGridOptions(limitedTimeCpnDefs);
+limitedTimeCpnGridOptions.defaultColDef.editable = true;
+limitedTimeCpnGridOptions.rowSelection = "multiple";
+
+var limitedTimeInfoInit = function() {
+	
+	gagaAgGrid.createGrid('limitedTimeCpnList'	, limitedTimeCpnGridOptions);
+	
+	if (limitedTimeCpnList != null) {
+		limitedTimeCpnGridOptions.api.setRowData(limitedTimeCpnList);
+	}
+	
+	// 선착순 쿠폰 종료시간 초 59로 변경
+	limitedTimeCpnGridOptions.onCellValueChanged = function (event){
+		if (event.colDef.field == "downEdTime"){
+			var temp 	= event.data.downEdTime.replaceAll(":","");
+			var hh 		= temp.substr(0,2);
+			var mm 		= temp.substr(2,2);
+			
+			event.data.downEdTime = hh+':'+mm+':'+'59';
+			limitedTimeCpnGridOptions.api.updateRowData({update: [event.data]});
+			
+			return;
+		}
+	}
+	
+	// 선착순 쿠폰 행추가
+	$('#btnAddLimitedTimeCpnRow').on('click', function() {
+		var data = { cpnId: 1 ,limitCpnNm: null, downStDate: _today, downStTime: '00:00:00', downEdDate: _today, downEdTime: '23:59:59', downLimitQty: null, limitCpnId: null, delYn: 'N' };
+		gagaAgGrid.addRowData(limitedTimeCpnGridOptions, data, "limitCpnNm");
+	});
+	
+	// 선착순 쿠폰 행삭제
+	$('#btnDelLimitedTimeCpnRow').on('click', function() {
+		limitedTimeCpnGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(limitedTimeCpnGridOptions)});
+	});
+	
+	// 비활성화처리 대기상태가아닐때 동작
+	if (cpnDetail.cpnStat != 'G232_10' || issueCnt > 0) {
+		$('#btnAddLimitedTimeCpnRow').hide();
+		$('#btnDelLimitedTimeCpnRow').hide();
+		limitedTimeCpnGridOptions.defaultColDef.editable = false;
+	}
+	
+	
+}
+</script>
+</html>

+ 46 - 0
src/main/webapp/WEB-INF/views/marketing/CouponPopupRandomInfo.html

@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : CouponPopupForm.html
+ * @desc    : 쿠폰 등록 팝업 화면
+ *============================================================================
+ * ISTYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.23   xyzp1539       최초 작성
+ *******************************************************************************
+ -->
+<span>
+	<div id="randomCpnList" style="width: 100%; height: 500px" class="ag-theme-balham"></div>
+</span>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+// 상세조회 리스트
+var randomCpnList = [[${randomCpnList}]];
+
+// ag-grid 시리얼 및 난수 리스트
+var randomCouponDefs = [
+	{ headerName : "생성쿠폰키워드" , field: "rdCpnNm" , width:150, cellClass: 'text-center'} ,
+	{ headerName: "지급고객번호" , field: "custNo" , width:150, cellClass: 'text-center'},
+	{ headerName: "고객아이디" , field: "custId" , width:150, cellClass: 'text-center'},
+	{ headerName: "고객명" , field: "custNm" , width:150, cellClass: 'text-center'},
+	{ headerName: "지급일" , field: "regDt" , width:150, cellClass: 'text-center'},
+	{ headerName: "쿠폰사용일" , field: "usedDt" , width:150, cellClass: 'text-center'}
+];
+
+var randomCouponGridOptions = gagaAgGrid.getGridOptions(randomCouponDefs);
+
+var randomInfoInit = function() {
+	gagaAgGrid.createGrid('randomCpnList'	, randomCouponGridOptions);
+	
+	if (randomCpnList != null) {
+		randomCouponGridOptions.api.setRowData(randomCpnList);
+	}
+}
+/*]]>*/
+</script>
+</html>

+ 141 - 28
src/main/webapp/WEB-INF/views/marketing/FreeGoodsPromotionRegiForm.html

@@ -688,53 +688,143 @@
 
 	// 리스트 정보 수정
 	function fnSetListInfo(result, gridListOption, key) {
-		let resultList = [];											// 최종 상품 리스트
-		let gridListValue = gagaAgGrid.getAllRowData(gridListOption);	// 기존 리스트
-		let addCnt = 0;													// 적용 성공 수량
-		let failCnt = 0;												// 실패 수량
-		let dealCntString = "";
+		let resultList 		= [];											// 최종 상품 리스트
+		let gridListValue 	= gagaAgGrid.getAllRowData(gridListOption);		// 기존 리스트
+		let addCnt 			= 0;											// 적용 성공 수량
+		let failCnt 		= 0;											// 실패 수량
+		let dealCntString 	= "";
+		
+		let addListArr		= [];
+		
 		// 기존 리스트 데이터 for
-		for(let i = 0 ; i < result.length ; i++) {
+		for (let i = 0 ; i < result.length ; i++) {
 			let addChk = true;					// 받아온 모든 데이터
 
 			// 받아온 data for
-			for(let j = 0 ; j < gridListValue.length ; j++) {
+			for (let j = 0 ; j < gridListValue.length ; j++) {
 				// 조회한 상품 중 동일하지 않은 데이터만 추가
-				if(eval("gridListValue[j]." + key) == eval("result[i]." + key)) {	addChk = false;	}		// 중복체크
+				// 중복체크
+				if (eval("gridListValue[j]." + key) == eval("result[i]." + key)) {	
+					addChk = false;
+				}
 			}
 
 			// 딜상품은 추가 불가. 구성상품으로 추가할것.
-			if(key == "goodsCd" && result[i].goodsType == "G056_D") {
-				if(dealCntString == "") {
+			if (key == "goodsCd" && result[i].goodsType == "G056_D") {
+				if (dealCntString == "") {
 					dealCntString = "<br/>딜 상품은 추가 될 수 없습니다. 구성상품으로 등록해주세요.";
 				}
 				addChk = false;
 			}
 
 			// 추가된 데이터 중 중복되지 않은 데이터 리스트에 추가
-			if(addChk) {	resultList.push(result[i]); addCnt++;	}
+			if (addChk) {	
+				resultList.push(result[i]);
+				
+				// 2021.08.23 공급업체 && 브랜드
+				if (key == "supplyCompCd") {
+					addListArr.push(result[i].supplyCompCd);
+				} else if (key == "brandCd") {
+					addListArr.push(result[i].brandCd);
+				}
+				
+				addCnt++;
+			}
 		}
 
 		// 사은품 추가는 5개까지만
-		if(key == "productNo") {
+		if (key == "productNo") {
 			let totalCnt = resultList.length + gridListValue.length;
-			if(totalCnt > 5) {
+			if (totalCnt > 5) {
 				mcxDialog.alert("사은품은 최대 5개까지만 등록하실 수 있습니다.");
 				return false;
 			}
 
 			failCnt = result.length - addCnt;
 			mcxDialog.alert("데이터가 적용되었습니다.<br/>" + addCnt + "건 성공, " + failCnt + "건 실패" + dealCntString);
-		} else if (key == "goodsCd") {
+		}
+		else if (key == "goodsCd") {
 			uifnPopupClose('popupGoods');
 			failCnt = result.length - addCnt;
 			mcxDialog.alert("데이터가 적용되었습니다.<br/>" + addCnt + "건 성공, " + failCnt + "건 실패" + dealCntString);
 		}
 
 		// 추가된 정보 그리드에 추가
-		for(let i = 0 ; i < resultList.length ; i++) {
+		for (let i = 0 ; i < resultList.length ; i++) {
 			gagaAgGrid.addRowData(gridListOption, resultList[i], key);
 		}
+		
+		// 2021.08.23 업체로정보로 브랜드정보 조회
+		// 적용대상 정보 로드
+		if (addListArr.length > 0) {
+			var jsonObj;
+			
+			if (key == "supplyCompCd") {
+				jsonObj = {"supplyCompCdArr" : addListArr};
+				
+				$.ajax( {
+					type		: "POST",
+					url 		: '/marketing/coupon/supplyCompCdAndBrandList',
+					data		: JSON.stringify(jsonObj),
+					dataType 	: 'json',
+					beforeSend 	: function(xhr, settings) {
+						xhr.setRequestHeader("AJAX"			, "true");
+						xhr.setRequestHeader('Accept'		, 'application/json');
+						xhr.setRequestHeader('Content-Type'	, 'application/json');
+					},
+					success 	: function(result) {
+						if (result != null) {
+							for (let i = 0 ; i < result.returnList.length ; i++) {
+								let addChk = true, gridListValue = gagaAgGrid.getAllRowData(gridOptionsFGBrandList);		// 받아온 모든 데이터
+
+								// 받아온 data for
+								for (let j = 0 ; j < gridListValue.length ; j++) {
+									if(gridListValue[j].brandCd == result.returnList[i].brandCd) {	addChk = false;	}					// 중복체크
+								}
+
+								// 중복되지 않은 데이터 리스트에 추가
+								if (addChk) {
+									gagaAgGrid.addRowData(gridOptionsFGBrandList, {"brandCd" : result.returnList[i].brandCd, "brandEnm" : result.returnList[i].brandEnm, "supplyCompNm" : result.returnList[i].supplyCompNm, "targetGb" : "G260_12"});
+								}
+							}
+						}
+					}
+				});
+			} else if (key == "brandCd") {
+				jsonObj = {"brandCdArr" : addListArr};
+				
+				$.ajax( {
+					type		: "POST",
+					url 		: '/marketing/coupon/brandCdAndSupplyCompList',
+					data		: JSON.stringify(jsonObj),
+					dataType 	: 'json',
+					beforeSend : function(xhr, settings) {
+						xhr.setRequestHeader("AJAX"			, "true");
+						xhr.setRequestHeader('Accept'		, 'application/json');
+						xhr.setRequestHeader('Content-Type'	, 'application/json');
+					},
+					success 	: function(result) {
+						if (result != null) {
+							// 기존 리스트 데이터 for
+							for(let i = 0 ; i < result.returnList.length ; i++) {
+								let addChk = true, gridListValue = gagaAgGrid.getAllRowData(gridOptionsFGCompanyList);		// 받아온 모든 데이터
+
+								// 받아온 data for
+								for(let j = 0 ; j < gridListValue.length ; j++) {
+									// 동일한 data는 추가하지 않음
+									if(gridListValue[j].supplyCompCd == result.returnList[i].supplyCompCd) {	addChk = false;	}		// 중복체크
+								}
+
+								// 중복되지 않은 데이터 리스트에 추가
+								if(addChk) {
+									gagaAgGrid.addRowData(gridOptionsFGCompanyList, {"supplyCompCd" : result.returnList[i].supplyCompCd, "supplyCompNm" : result.returnList[i].supplyCompNm, "targetGb" : "G260_13"});
+								}
+							}
+						}
+					}
+				});
+			}
+		}
 	}
 
 	// 저장 후 콜백 함수
@@ -767,13 +857,13 @@
 	// 저장 버튼 클릭시
 	$('#freeGoodsPromotionForm #btnFreegoodsPromotionSave').on('click', function() {
 		// 각 ag-grid list 수량
-		let extmallCnt = gagaAgGrid.getAllRowData(gridOptionsFGExtmallList).length;
-		let supplyCompCnt = gagaAgGrid.getAllRowData(gridOptionsFGCompanyList).length;
-		let brandCnt = gagaAgGrid.getAllRowData(gridOptionsFGBrandList).length;
-		let applyGoodsCnt = gagaAgGrid.getAllRowData(gridOptionsFGApplyGoodsList).length;
-		let exceptGoodsCnt = gagaAgGrid.getAllRowData(gridOptionsFGExceptGoodsList).length;
-		let freeGoods1Cnt = gagaAgGrid.getAllRowData(gridOptionsFreeGoods1List).length;
-		let freeGoods2Cnt = gagaAgGrid.getAllRowData(gridOptionsFreeGoods2List).length;
+		let extmallCnt 		= gagaAgGrid.getAllRowData(gridOptionsFGExtmallList).length;
+		let supplyCompCnt 	= gagaAgGrid.getAllRowData(gridOptionsFGCompanyList).length;
+		let brandCnt 		= gagaAgGrid.getAllRowData(gridOptionsFGBrandList).length;
+		let applyGoodsCnt 	= gagaAgGrid.getAllRowData(gridOptionsFGApplyGoodsList).length;
+		let exceptGoodsCnt 	= gagaAgGrid.getAllRowData(gridOptionsFGExceptGoodsList).length;
+		let freeGoods1Cnt 	= gagaAgGrid.getAllRowData(gridOptionsFreeGoods1List).length;
+		let freeGoods2Cnt 	= gagaAgGrid.getAllRowData(gridOptionsFreeGoods2List).length;
 
 		if (!gagajf.validation('#freeGoodsPromotionForm')) {
 			return false;
@@ -805,7 +895,7 @@
 			return false;
 		}
 
-		if($("#extmallYn").is(":checked") && extmallCnt < 1) {
+		if ($("#extmallYn").is(":checked") && extmallCnt < 1) {
 			mcxDialog.alert("제휴몰을 선택해주세요.");
 			return false;
 		}
@@ -815,6 +905,29 @@
 			mcxDialog.alert("공급업체, 브랜드, 적용 상품 중 한가지 이상 등록해주세요.");
 			return false;
 		}
+		
+		// 2021.08.23 업체 브랜드 and 조건
+		if (supplyCompCnt > 0) {
+			if (brandCnt < 1) {
+				mcxDialog.alert("브랜드, 적용 상품 중 한가지 이상 등록해주세요.");
+				return false;
+			}	
+		}
+		
+		// 2021.08.23 브랜드 && 업체 and 조건 설정
+		if (supplyCompCnt > 0) {
+			if (brandCnt < 1) {
+				mcxDialog.alert("적용대상 브랜드정보를 설정해주세요.");
+				return false;
+			}
+		}
+		
+		if (brandCnt > 0) {
+			if (supplyCompCnt < 1) {
+				mcxDialog.alert("적용대상 업체정보를 설정해주세요.");
+				return false;
+			}
+		}
 
 		// 사은품조건1 필수 체크
 		if(freeGoods1Cnt < 1) {
@@ -1083,15 +1196,15 @@
 
 	// 제휴몰 리스트 세팅
 	function fnSetPopupExtmallInfo(result) {
-		let resultList = [];											// 최종 상품 리스트
-		let gridListValue = gagaAgGrid.getAllRowData(gridOptionsFGExtmallList);	// 기존 리스트
+		let resultList 		= [];													// 최종 상품 리스트
+		let gridListValue 	= gagaAgGrid.getAllRowData(gridOptionsFGExtmallList);	// 기존 리스트
 
 		// 콜백 리스트 데이터 for
-		for(let i = 0 ; i < result.length ; i++) {
+		for (let i = 0 ; i < result.length ; i++) {
 			let addChk = true;					// 받아온 모든 데이터
 
 			// 기존 data for
-			for(let j = 0 ; j < gridListValue.length ; j++) {
+			for (let j = 0 ; j < gridListValue.length ; j++) {
 				// 조회한 상품 중 동일하지 않은 데이터만 추가
 				if((gridListValue[j].vendorId + "" + gridListValue[j].extmallId) == (result[i].vendorId + "" + result[i].extmallId)) {
 					addChk = false;			// 중복체크
@@ -1105,7 +1218,7 @@
 		}
 
 		// 추가된 정보 그리드에 추가
-		for(let i = 0 ; i < resultList.length ; i++) {
+		for (let i = 0 ; i < resultList.length ; i++) {
 			gagaAgGrid.addRowData(gridOptionsFGExtmallList, resultList[i], "extmallId");
 			$("#freeGoodsPromotionForm #gridExtmallIdList").append('<input type="hidden" class="extmallIdList" name="extmallIdList" value="' + resultList[i].extmallId + '" />');
 		}

+ 111 - 10
src/main/webapp/WEB-INF/views/marketing/MorebetterPopupForm.html

@@ -767,18 +767,33 @@
 		// }
 
 		// 각 ag-grid list 수량
-		let allSupplyCompData = gagaAgGrid.getAllRowData(gridOptionsFGCompanyList);
-		let allBrandData = gagaAgGrid.getAllRowData(gridOptionsFGBrandList);
-		let allDefaultGoodsData = gagaAgGrid.getAllRowData(gridOptionsDefaultGoodsList);
-		let allApplyGoodsData = gagaAgGrid.getAllRowData(gridOptionsFGApplyGoodsList);
-		let allExceptGoodsData = gagaAgGrid.getAllRowData(gridOptionsFGExceptGoodsList);
-		let allApplyBurdenData = gagaAgGrid.getAllRowData(gridOptionsApplyBurdenList);
-		let allSectionGbData = gagaAgGrid.getAllRowData(gridOptionsSectionGbList);
-
-		if(allSectionGbData.length < 1){
+		let allSupplyCompData 		= gagaAgGrid.getAllRowData(gridOptionsFGCompanyList);
+		let allBrandData 			= gagaAgGrid.getAllRowData(gridOptionsFGBrandList);
+		let allDefaultGoodsData 	= gagaAgGrid.getAllRowData(gridOptionsDefaultGoodsList);
+		let allApplyGoodsData 		= gagaAgGrid.getAllRowData(gridOptionsFGApplyGoodsList);
+		let allExceptGoodsData 		= gagaAgGrid.getAllRowData(gridOptionsFGExceptGoodsList);
+		let allApplyBurdenData 		= gagaAgGrid.getAllRowData(gridOptionsApplyBurdenList);
+		let allSectionGbData 		= gagaAgGrid.getAllRowData(gridOptionsSectionGbList);
+
+		if (allSectionGbData.length < 1) {
 			mcxDialog.alert("할인구간을 설정해주세요.");
 			return false;
 		}
+		
+		// 2021.08.23 브랜드 && 업체 and 조건 설정
+		if (allSupplyCompData.length > 0) {
+			if (allBrandData.length < 1) {
+				mcxDialog.alert("적용대상 브랜드정보를 설정해주세요.");
+				return false;
+			}
+		}
+		
+		if (allBrandData.length > 0) {
+			if (allSupplyCompData.length < 1) {
+				mcxDialog.alert("적용대상 업체정보를 설정해주세요.");
+				return false;
+			}
+		}
 
 		// 공급업체+브랜드 상품조회
 		var multiSupplyCompCd = [];
@@ -840,7 +855,7 @@
 		};
 
 		var jsonData = JSON.stringify(data);
-console.log(jsonData);
+		console.log(jsonData);
 		gagajf.ajaxJsonSubmit($('#moreBetterForm').prop('action'), jsonData, fnMorebetterSaveCollback);
 	});
 
@@ -864,6 +879,9 @@ console.log(jsonData);
 
 	// 공급업체 설정 / 업체 추가 콜백함수
 	var fnSetPopupComapnyInfo = function(result) {
+		
+		var supplyCompCdArr = [];
+		
 		// 기존 리스트 데이터 for
 		for(let i = 0 ; i < result.length ; i++) {
 			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(gridOptionsFGCompanyList);		// 받아온 모든 데이터
@@ -877,8 +895,47 @@ console.log(jsonData);
 			// 중복되지 않은 데이터 리스트에 추가
 			if(addChk) {
 				gagaAgGrid.addRowData(gridOptionsFGCompanyList, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm, "targetGb" : "G260_13"});
+				
+				// 2021.08.23 업체로정보로 브랜드정보 조회
+				supplyCompCdArr.push(result[i].supplyCompCd);
 			}
 		}
+		
+		// 2021.08.23 업체로정보로 브랜드정보 조회
+		// 적용대상 정보 로드
+		if (supplyCompCdArr.length > 0) {
+			
+			var jsonObj = {"supplyCompCdArr" : supplyCompCdArr};
+			
+			$.ajax( {
+				type		: "POST",
+				url 		: '/marketing/coupon/supplyCompCdAndBrandList',
+				data		: JSON.stringify(jsonObj),
+				dataType 	: 'json',
+				beforeSend : function(xhr, settings) {
+					xhr.setRequestHeader("AJAX"			, "true");
+					xhr.setRequestHeader('Accept'		, 'application/json');
+					xhr.setRequestHeader('Content-Type'	, 'application/json');
+				},
+				success 	: function(result) {
+					if (result != null) {
+						for(let i = 0 ; i < result.returnList.length ; i++) {
+							let addChk = true, gridListValue = gagaAgGrid.getAllRowData(gridOptionsFGBrandList);		// 받아온 모든 데이터
+
+							// 받아온 data for
+							for(let j = 0 ; j < gridListValue.length ; j++) {
+								if(gridListValue[j].brandCd == result.returnList[i].brandCd) {	addChk = false;	}					// 중복체크
+							}
+
+							// 중복되지 않은 데이터 리스트에 추가
+							if(addChk) {
+								gagaAgGrid.addRowData(gridOptionsFGBrandList, {"brandCd" : result.returnList[i].brandCd, "brandEnm" : result.returnList[i].brandEnm, "supplyCompNm" : result.returnList[i].supplyCompNm, "targetGb" : "G260_12"});
+							}
+						}
+					}
+				}
+			});
+		}
 
 		// 브랜드 데이터 체크
 		/*let allBrandCnt = gagaAgGrid.getAllRowData(gridOptionsFGBrandList).length;
@@ -890,6 +947,9 @@ console.log(jsonData);
 
 	// 브랜드 설정 / 브랜드 추가 콜백함수 (단수로 가져오므로 복수일 경우에 수정 확인 필요)
 	var fnSetPopupBrandInfo = function(result) {
+		
+		var brandCdArr = [];
+		
 		for(let i = 0 ; i < result.length ; i++) {
 			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(gridOptionsFGBrandList);		// 받아온 모든 데이터
 
@@ -901,8 +961,49 @@ console.log(jsonData);
 			// 중복되지 않은 데이터 리스트에 추가
 			if(addChk) {
 				gagaAgGrid.addRowData(gridOptionsFGBrandList, {"brandCd" : result[i].brandCd, "brandEnm" : result[i].brandEnm, "supplyCompNm" : result[i].supplyCompNm, "targetGb" : "G260_12"});
+				
+				// 2021.08.23 업체로정보로 브랜드정보 조회
+				brandCdArr.push(result[i].brandCd);
 			}
 		}
+		
+		// 2021.08.23 업체로정보로 브랜드정보 조회
+		// 적용대상 정보 로드
+		if (brandCdArr.length > 0) {
+			
+			var jsonObj = {"brandCdArr" : brandCdArr};
+			
+			$.ajax( {
+				type		: "POST",
+				url 		: '/marketing/coupon/brandCdAndSupplyCompList',
+				data		: JSON.stringify(jsonObj),
+				dataType 	: 'json',
+				beforeSend : function(xhr, settings) {
+					xhr.setRequestHeader("AJAX"			, "true");
+					xhr.setRequestHeader('Accept'		, 'application/json');
+					xhr.setRequestHeader('Content-Type'	, 'application/json');
+				},
+				success 	: function(result) {
+					if (result != null) {
+						// 기존 리스트 데이터 for
+						for(let i = 0 ; i < result.returnList.length ; i++) {
+							let addChk = true, gridListValue = gagaAgGrid.getAllRowData(gridOptionsFGCompanyList);		// 받아온 모든 데이터
+
+							// 받아온 data for
+							for(let j = 0 ; j < gridListValue.length ; j++) {
+								// 동일한 data는 추가하지 않음
+								if(gridListValue[j].supplyCompCd == result.returnList[i].supplyCompCd) {	addChk = false;	}		// 중복체크
+							}
+
+							// 중복되지 않은 데이터 리스트에 추가
+							if(addChk) {
+								gagaAgGrid.addRowData(gridOptionsFGCompanyList, {"supplyCompCd" : result.returnList[i].supplyCompCd, "supplyCompNm" : result.returnList[i].supplyCompNm, "targetGb" : "G260_13"});
+							}
+						}
+					}
+				}
+			});
+		}
 
 		// 공급업체 데이터 체크
 		/*var allSupplyCompData = gagaAgGrid.getAllRowData(gridOptionsFGCompanyList);