ソースを参照

Merge branch 'develop' into sowon

# Conflicts:
#	src/main/java/com/style24/admin/biz/web/TsaMarketingController.java
sowon4187 5 年 前
コミット
0d47c0198b

+ 57 - 0
src/main/java/com/style24/admin/biz/dao/TsaCouponDao.java

@@ -305,4 +305,61 @@ public interface TsaCouponDao {
 	 * @since 2021. 2. 5
 	 */
 	void updateCouponStat(Coupon coupon);
+
+	/**
+	 * 쿠폰 마스터 수정
+	 * @param
+	 * @author bin2107
+	 * @since 2021. 2. 5
+	 */
+	void updateCouponMstInfo(Coupon coupon);
+
+	/**
+	 * 쿠폰 회원 구분 수정
+	 * @param
+	 * @author bin2107
+	 * @since 2021. 2. 5
+	 */
+	void deleteCouponCustGubun(Coupon coupon);
+
+	/**
+	 * 쿠폰 회원 등급 수정
+	 * @param
+	 * @author bin2107
+	 * @since 2021. 2. 5
+	 */
+	void deleteCouponCustGrade(Coupon coupon);
+
+	/**
+	 * 쿠폰 회원 결제 수정
+	 * @param
+	 * @author bin2107
+	 * @since 2021. 2. 5
+	 */
+	void deleteCouponPayType(Coupon coupon);
+
+	/**
+	 * 쿠폰 공급업체,브랜드,상품값 수정
+	 * @param
+	 * @author bin2107
+	 * @since 2021. 2. 5
+	 */
+	void deleteCouponRefVal(Coupon coupon);
+
+	/**
+	 * 쿠폰  입점업체 분담율 수정
+	 * @param
+	 * @author bin2107
+	 * @since 2021. 2. 5
+	 */
+	void deleteCouponBurden(Coupon coupon);
+
+	/**
+	 * 선착순 쿠폰 삭제
+	 * @param
+	 * @author bin2107
+	 * @since 2021. 2. 5
+	 */
+	void deleteLimitedTimeCoupon(Coupon coupon);
+
 }

+ 45 - 0
src/main/java/com/style24/admin/biz/dao/TsaMorebetterDao.java

@@ -269,5 +269,50 @@ public interface TsaMorebetterDao {
     List<MoreBetterGoods> getMorebetterRealApplyGoodsList(MoreBetter moreBetter);
 
     List<MoreBetterGoods> getMorebetterCompBrandGoodsList(MoreBetterGoods moreBetterGoods);
+
+    /**
+     * 다다익선 업체,브랜드,상품 (TB_TMTB_GOODS) 삭제
+     * @param moreBetter
+     * @return
+     * @author bin2107
+     * @since 2021. 2. 8
+     */
+    void deleteTmtbGoods(MoreBetter moreBetter);
+
+    /**
+     * 다다익선 분담율 (TB_TMTB_BURDEN) 삭제
+     * @param moreBetter
+     * @return
+     * @author bin2107
+     * @since 2021. 2. 8
+     */
+    void deleteTmtbBurden(MoreBetter moreBetter);
+
+    /**
+     * 다다익선 할인 구간 (TB_TMTB_SECTION) 삭제
+     * @param moreBetter
+     * @return
+     * @author bin2107
+     * @since 2021. 2. 8
+     */
+    void deleteTmtbSection(MoreBetter moreBetter);
+
+    /**
+     * 다다익선 할인값 (TB_TMTB_VAL) 삭제
+     * @param moreBetter
+     * @return
+     * @author bin2107
+     * @since 2021. 2. 8
+     */
+    void deleteTmtbVal(MoreBetter moreBetter);
+
+    /**
+     * 다다익선 임시 적용상품 (TB_TMTB_APPLY_GOODS_TEMP) 삭제
+     * @param moreBetter
+     * @return
+     * @author bin2107
+     * @since 2021. 2. 8
+     */
+    void deleteTmtbApplyGoods(MoreBetter moreBetter);
     /* // CSB 진행 */
 }

+ 24 - 13
src/main/java/com/style24/admin/biz/service/TsaCouponService.java

@@ -49,25 +49,31 @@ public class TsaCouponService {
 		params.setUpdNo(TsaSession.getInfo().getUserNo());
 
 		if(cpnId != 0) {    //수정모드일때
-
+			couponDao.updateCouponMstInfo(params);	// 쿠폰 마스터 수정
+			couponDao.deleteCouponCustGubun(params);	// 쿠폰 회원 구분 수정
+			couponDao.deleteCouponCustGrade(params);	// 쿠폰 회원 등급 수정
+			couponDao.deleteCouponPayType(params);	// 쿠폰 결제 수단 수정
+			couponDao.deleteCouponRefVal(params);	// 공급업체,브랜드,카테고리,상품 삭제
+			couponDao.deleteCouponBurden(params);	// 입점업체 분담율 삭제
+			couponDao.deleteLimitedTimeCoupon(params);	// 선착순 쿠폰 삭제
 		}else{	//등록모드일때
 			params.setCpnStat("G232_10");
 			couponDao.couponInsert(params);
+		}
 
-			for(int i=0; i<params.getUsableCustGbArr().length; i++){
-				params.setUsableCustGb(params.getUsableCustGbArr()[i]);
-				couponDao.createCouponCustGubun(params);
-			}
+		for(int i=0; i<params.getUsableCustGbArr().length; i++){
+			params.setUsableCustGb(params.getUsableCustGbArr()[i]);
+			couponDao.createCouponCustGubun(params);
+		}
 
-			for(int i=0; i<params.getUsableCustGradeArr().length; i++){
-				params.setUsableCustGrade(params.getUsableCustGradeArr()[i]);
-				couponDao.createCouponCustGrade(params);
-			}
+		for(int i=0; i<params.getUsableCustGradeArr().length; i++){
+			params.setUsableCustGrade(params.getUsableCustGradeArr()[i]);
+			couponDao.createCouponCustGrade(params);
+		}
 
-			for(int i=0; i<params.getPayTypeArr().length; i++){
-				params.setPayType(params.getPayTypeArr()[i]);
-				couponDao.createCouponPayType(params);
-			}
+		for(int i=0; i<params.getPayTypeArr().length; i++){
+			params.setPayType(params.getPayTypeArr()[i]);
+			couponDao.createCouponPayType(params);
 		}
 
 		// 공급업체 등록
@@ -75,6 +81,7 @@ public class TsaCouponService {
 			compRefval.setCpnId(params.getCpnId());
 			compRefval.setCpnTarget("G260_13");
 			compRefval.setRefVal(compRefval.getSupplyCompCd());
+			compRefval.setCpnType(params.getCpnType());
 			compRefval.setRegNo(params.getRegNo());
 			compRefval.setUpdNo(params.getUpdNo());
 			couponDao.saveCouponRefVal(compRefval);
@@ -85,6 +92,7 @@ public class TsaCouponService {
 			brandRefval.setCpnId(params.getCpnId());
 			brandRefval.setCpnTarget("G260_12");
 			brandRefval.setRefVal(brandRefval.getBrandCd());
+			brandRefval.setCpnType(params.getCpnType());
 			brandRefval.setRegNo(params.getRegNo());
 			brandRefval.setUpdNo(params.getUpdNo());
 			couponDao.saveCouponRefVal(brandRefval);
@@ -95,6 +103,7 @@ public class TsaCouponService {
 			applyGoodsRefval.setCpnId(params.getCpnId());
 			applyGoodsRefval.setCpnTarget("G260_10");
 			applyGoodsRefval.setRefVal(applyGoodsRefval.getGoodsCd());
+			applyGoodsRefval.setCpnType(params.getCpnType());
 			applyGoodsRefval.setRegNo(params.getRegNo());
 			applyGoodsRefval.setUpdNo(params.getUpdNo());
 			couponDao.saveCouponRefVal(applyGoodsRefval);
@@ -107,6 +116,7 @@ public class TsaCouponService {
 			cateRefval.setRefVal(cateRefval.getCateNo());
 			cateRefval.setFormalGb(cateRefval.getFormalGb());
 			cateRefval.setBrandCd(cateRefval.getBrandCd());
+			cateRefval.setCpnType(params.getCpnType());
 			cateRefval.setRegNo(params.getRegNo());
 			cateRefval.setUpdNo(params.getUpdNo());
 			couponDao.saveCouponRefVal(cateRefval);
@@ -117,6 +127,7 @@ public class TsaCouponService {
 			exceptGoodsRefval.setCpnId(params.getCpnId());
 			exceptGoodsRefval.setCpnTarget("G260_14");
 			exceptGoodsRefval.setRefVal(exceptGoodsRefval.getGoodsCd());
+			exceptGoodsRefval.setCpnType(params.getCpnType());
 			exceptGoodsRefval.setRegNo(params.getRegNo());
 			exceptGoodsRefval.setUpdNo(params.getUpdNo());
 			couponDao.saveCouponRefVal(exceptGoodsRefval);

+ 22 - 5
src/main/java/com/style24/admin/biz/service/TsaMorebetterService.java

@@ -145,6 +145,14 @@ public class TsaMorebetterService {
         Gson gson = new Gson();
         String jsonData = gson.toJson(moreBetter);
 
+        if("U".equals(moreBetter.getMode())){
+            morebetterDao.deleteTmtbGoods(moreBetter);      // TB_TMTB_GOODS DEL_YN 'Y' UPDATE
+            morebetterDao.deleteTmtbBurden(moreBetter);     // TB_TMTB_BURDEN DEL_YN 'Y' UPDATE
+            morebetterDao.deleteTmtbSection(moreBetter);    // TB_TMTB_SECTION DEL_YN 'Y' UPDATE
+            morebetterDao.deleteTmtbVal(moreBetter);        // TB_TMTB_VAL DEL_YN 'Y' UPDATE
+            morebetterDao.deleteTmtbApplyGoods(moreBetter); // TB_TMTB_APPLY_GOODS DELETE
+        }
+
         // TMTB 마스터(TB_TMTB) 저장
         morebetterDao.saveMorebetterMst(moreBetter);
 
@@ -166,12 +174,22 @@ public class TsaMorebetterService {
             regBrand.setTargetVal(regBrand.getBrandCd());
             regBrand.setRegNo(moreBetter.getRegNo());
             regBrand.setUpdNo(moreBetter.getUpdNo());
-
             morebetterDao.saveMorebetterGoods(regBrand);
         }
 
-        List<MoreBetterGoods> realApplyGoodsList = morebetterDao.getMorebetterRealApplyGoodsList(moreBetter);
         // 적용상품
+        for(MoreBetterGoods regApplyGoods : moreBetter.getGridApplyGoodsList()){
+            // 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
+            regApplyGoods.setTmtbSq(moreBetter.getTmtbSq());
+            regApplyGoods.setTargetVal(regApplyGoods.getGoodsCd());
+            regApplyGoods.setRegNo(moreBetter.getRegNo());
+            regApplyGoods.setUpdNo(moreBetter.getUpdNo());
+            regApplyGoods.setMultiDuplicateGoods(moreBetter.getMultiDuplicateGoods());
+            morebetterDao.saveMorebetterGoods(regApplyGoods);
+        }
+
+        // apply_goods
+        List<MoreBetterGoods> realApplyGoodsList = morebetterDao.getMorebetterRealApplyGoodsList(moreBetter);
         for(MoreBetterGoods realApplyGoods : realApplyGoodsList){
             for(MoreBetterGoods regApplyGoods : moreBetter.getApplyGoodsList()){
                 if(regApplyGoods.getGoodsCd().equals(realApplyGoods.getGoodsCd())){
@@ -180,8 +198,6 @@ public class TsaMorebetterService {
                     regApplyGoods.setTargetVal(realApplyGoods.getGoodsCd());
                     regApplyGoods.setRegNo(moreBetter.getRegNo());
                     regApplyGoods.setUpdNo(moreBetter.getUpdNo());
-
-                    morebetterDao.saveMorebetterGoods(regApplyGoods);
                     morebetterDao.saveMorebetterApplyGoods(regApplyGoods);
                 }
             }
@@ -190,6 +206,7 @@ public class TsaMorebetterService {
         // 제외상품
         for(MoreBetterGoods regExceptGoods : moreBetter.getExceptGoodsList()){
             // 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
+            log.info("exception::{}",moreBetter.getExceptGoodsList());
             regExceptGoods.setTmtbSq(moreBetter.getTmtbSq());
             regExceptGoods.setTargetVal(regExceptGoods.getGoodsCd());
             regExceptGoods.setRegNo(moreBetter.getRegNo());
@@ -345,7 +362,7 @@ public class TsaMorebetterService {
         morebetterDao.deleteTmtbApplyGoodsTemp(moreBetterGoods);
 
         // 적용상품 그리드 데이터
-        List<MoreBetterGoods> applyGoodsList = moreBetterGoods.getApplyGoodsList();
+        List<MoreBetterGoods> applyGoodsList = moreBetterGoods.getGridApplyGoodsList();
 
         if(moreBetterGoods.getMultiSupplyCompCd().length > 0 || moreBetterGoods.getMultiBrand().length > 0){
             // 공급업체, 브랜드에 해당하는 상품

+ 45 - 8
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -723,9 +723,10 @@ public class TsaMarketingController extends TsaBaseController {
 
 			// TMTB_GOODS_TEMP TABLE TRUNCATE -> 다른 다다에서 사용중인 상품 조회 -> INSERT
 			moreBetterGoods.setApplyGoodsList(moreBetter.getApplyGoodsList());
+			moreBetterGoods.setGridApplyGoodsList(moreBetter.getApplyGoodsList());
 			moreBetterGoods.setSectionGb(moreBetter.getSectionGb());
-			morebetterService.createMorebetterGoodsTemp(moreBetterGoods);
 
+			morebetterService.createMorebetterGoodsTemp(moreBetterGoods);
 			morebetterService.saveMoreBetterDetail(moreBetter);
 
 			// 다른 다다에서 사용중인 상품 조회
@@ -848,15 +849,51 @@ public class TsaMarketingController extends TsaBaseController {
 	 */
 	@PostMapping("/morebetter/changeStat")
 	@ResponseBody
-	public GagaResponse updateMorebetterStat(@RequestBody MoreBetter moreBetter) {
-		try {
-			morebetterService.updateMorebetterStat(moreBetter);
-		} catch (Exception e) {
+	public GagaMap updateMorebetterStat(@RequestBody MoreBetter moreBetter) {
+		GagaMap map = new GagaMap();
+
+		try{
+			log.info("getTmtbStat :::{}",moreBetter.getTmtbStat());
+			MoreBetterGoods moreBetterGoods = new MoreBetterGoods();
+
+			if("G232_11".equals(moreBetter.getTmtbStat())){
+				moreBetterGoods.setMultiSupplyCompCd(moreBetter.getMultiSupplyCompCd());
+				moreBetterGoods.setMultiBrand(moreBetter.getMultiBrand());
+				moreBetterGoods.setMultiApplyGoods(moreBetter.getMultiApplyGoods());
+				moreBetterGoods.setMultiExceptGoods(moreBetter.getMultiExceptGoods());
+
+				// TMTB_GOODS_TEMP TABLE TRUNCATE -> 다른 다다에서 사용중인 상품 조회 -> INSERT
+				moreBetterGoods.setApplyGoodsList(moreBetter.getApplyGoodsList());
+				moreBetterGoods.setGridApplyGoodsList(moreBetter.getApplyGoodsList());
+				moreBetterGoods.setSectionGb(moreBetter.getSectionGb());
+				morebetterService.createMorebetterGoodsTemp(moreBetterGoods);
+
+				// 다른 다다에서 사용중인 상품 조회
+				Collection<MoreBetterGoods> duplicateGoodsList = morebetterService.getMorebetterDuplicateList(moreBetterGoods);
+
+				// 조회 건수 있으면 -> 해당 상품코드 엑셀로 던져주기
+				if(duplicateGoodsList.size() > 0){
+					map.set("duplicateYn","Y");
+					map.set("duplicateGoodsList",duplicateGoodsList);
+					map.set("message", message.getMessage("FAIL_0001"));
+				}else{
+					// 조회 건수 없으면 -> 저장으로 넘어감
+					map.set("duplicateYn","N");
+					morebetterService.saveMoreBetterDetail(moreBetter);
+					//morebetterService.updateMorebetterStat(moreBetter);
+					map.set("message", message.getMessage("SUCC_0002"));
+				}
+			}else{
+				morebetterService.updateMorebetterStat(moreBetter);
+				map.set("message", message.getMessage("SUCC_0002"));
+			}
+		} catch(Exception e) {
 			e.printStackTrace();
-			return super.error(message.getMessage("FAIL_0001"));
+			map.set("message", message.getMessage("FAIL_0001"));
+			return map;
 		}
 
-		return super.ok(message.getMessage("SUCC_0003"));
+		return map;
 	}
 
 	/**
@@ -894,7 +931,7 @@ public class TsaMarketingController extends TsaBaseController {
 
 	/**
 	 * 쿠폰 상태 변경
-	 * @param param
+	 * @param coupon
 	 * @return
 	 * @author bin2107
 	 * @since 2021. 02. 05

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

@@ -70,6 +70,9 @@ public class Coupon extends TscBaseDomain {
     private String pubReasonNm;
     private String pubReasonDtl;
 
+    private Integer limitCpnId;         // 선착순쿠폰일련번호
+    private String delYn;
+
     // 그리드 파라미터
     /*private String supplyCompList;          // 공급업체 리스트
     private String brandList;               // 브랜드 리스트

+ 1 - 0
src/main/java/com/style24/persistence/domain/CouponRefval.java

@@ -20,6 +20,7 @@ public class CouponRefval extends TscBaseDomain {
     private Integer cpnRefvalSq;            // 쿠폰대상일련번호
     private String  refFormalGb;            // 정상/이월구분(G009). 쿠폰대상구분이 카테고리일 경우 사용
     private String  refBrandCd;             // 브랜드코드. 쿠폰대상구분이 카테고리일 경우 사용
+    private String  cpnType;			    // 쿠폰유형(공통코드G230)
     @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
     private Integer[] cpnRefvalSqArr;       // 쿠폰적용대상시퀀스배열
 

+ 2 - 2
src/main/java/com/style24/persistence/domain/Goods.java

@@ -19,8 +19,8 @@ import lombok.Data;
 public class Goods extends TscBaseDomain {
 
 	private String goodsCd;		//상품코드
-	private int productNo;		//ProductNo(WMS)
-	private String productCode;		//ProductCode(WMS)
+	//private int productNo;		//ProductNo(WMS)
+	//private String productCode;		//ProductCode(WMS)
 	private String brandCd;		//브랜드코드
 	private String itemkindCd;		//품목코드
 	private String goodsNm;		//상품명

+ 1 - 0
src/main/java/com/style24/persistence/domain/MoreBetter.java

@@ -61,6 +61,7 @@ public class MoreBetter extends TscBaseDomain {
 	List<MoreBetterGoods> supplyCompList;
 	List<MoreBetterGoods> brandList;
 	List<MoreBetterGoods> applyGoodsList;
+	List<MoreBetterGoods> gridApplyGoodsList;
 	List<MoreBetterGoods> exceptGoodsList;
 	List<MoreBetterBurden> burdenList;
 	List<MoreBetterSection> sectionGbList;

+ 2 - 5
src/main/java/com/style24/persistence/domain/MoreBetterGoods.java

@@ -63,9 +63,6 @@ public class MoreBetterGoods extends TscBaseDomain {
 	private String[] multiDuplicateGoods;
 
 	List<MoreBetterGoods> applyGoodsList;
-/*
-	List<MoreBetterGoods> multiSupplyCompCd;
-	List<MoreBetterGoods> multiBrand;
-	List<MoreBetterGoods> multiGoods;
-	List<MoreBetterGoods> multiExceptGoods;*/
+	List<MoreBetterGoods> gridApplyGoodsList;
+
 }

+ 218 - 97
src/main/java/com/style24/persistence/mybatis/shop/TsaCoupon.xml

@@ -181,9 +181,9 @@
 		  , #{cpnStat}
 		  , #{endAlimYn}
 		  , #{regNo}
-		  , now()
+		  , CURRENT_TIMESTAMP()
 		  , #{updNo}
-		  , now()
+		  , CURRENT_TIMESTAMP()
 		  , #{firstOrdYn}
 		  , #{downAblYn}
 		  <choose>
@@ -208,64 +208,64 @@
 		  </choose>
 		  , #{newCustYn}
 		) ON DUPLICATE KEY UPDATE
-		    CPN_NM = #{cpnNm}
-		  , SITE_CD = #{siteCd}
-		  , AF_LINK_CD = #{afLinkCd}
-		  , CPN_TYPE = #{cpnType}
-		  , APPLY_SCOPE = #{applyScope}
-		  , DC_WAY = #{dcWay}
-		  , DC_PVAL = #{dcPval}
-		  , DC_MVAL = #{dcMval}
-		  , DC_AVAL = #{dcAval}
-		  , MAX_DC_AMT = #{maxDcAmt}
-		  , PD_GB = #{pdGb}
+		CPN_NM = #{cpnNm}
+		, SITE_CD = #{siteCd}
+		, AF_LINK_CD = #{afLinkCd}
+		, CPN_TYPE = #{cpnType}
+		, APPLY_SCOPE = #{applyScope}
+		, DC_WAY = #{dcWay}
+		, DC_PVAL = #{dcPval}
+		, DC_MVAL = #{dcMval}
+		, DC_AVAL = #{dcAval}
+		, MAX_DC_AMT = #{maxDcAmt}
+		, PD_GB = #{pdGb}
 		<choose>
 			<when test='pdGb != null and pdGb == "P"'>
-		  , AVAIL_STDT = DATE_FORMAT(#{availStdt} , '%Y-%m-%d %H:%i:%s')
-		  , AVAIL_EDDT = DATE_FORMAT(#{availEddt} , '%Y-%m-%d %H:%i:%s')
-		  , AVAIL_DAYS = null
+				, AVAIL_STDT = DATE_FORMAT(#{availStdt} , '%Y-%m-%d %H:%i:%s')
+				, AVAIL_EDDT = DATE_FORMAT(#{availEddt} , '%Y-%m-%d %H:%i:%s')
+				, AVAIL_DAYS = null
 			</when>
 			<when test='pdGb != null and pdGb == "D"' >
-		  , AVAIL_STDT = null
-		  , AVAIL_EDDT = null
-	   	  , AVAIL_DAYS = #{availDays}
+				, AVAIL_STDT = null
+				, AVAIL_EDDT = null
+				, AVAIL_DAYS = #{availDays}
 			</when>
 		</choose>
-		  , CUST_PUB_LIMIT_QTY = #{custPubLimitQty}
-		  , TOT_PUB_LIMIT_QTY = #{totPubLimitQty}
-		  , ONE_PUB_QTY = #{onePubQty}
-		  , DOWN_STDT = DATE_FORMAT(#{downStdt} , '%Y-%m-%d %H:%i:%s')
-		  , DOWN_EDDT = DATE_FORMAT(#{downEddt} , '%Y-%m-%d %H:%i:%s')
-		  , BUY_LIMIT_AMT = #{buyLimitAmt}
-		  , PLAN_SQ = #{planSq}
-		  , REISSUANCE = #{reissuance}
-		  , CPN_STAT = #{cpnStat}
-		  , END_ALIM_YN = #{endAlimYn}
-		  , UPD_NO = #{updNo}
-		  , UPD_DT = now()
-		  , FIRST_ORD_YN = #{firstOrdYn}
-		  , DOWN_ABL_YN = #{downAblYn}
+		, CUST_PUB_LIMIT_QTY = #{custPubLimitQty}
+		, TOT_PUB_LIMIT_QTY = #{totPubLimitQty}
+		, ONE_PUB_QTY = #{onePubQty}
+		, DOWN_STDT = DATE_FORMAT(#{downStdt} , '%Y-%m-%d %H:%i:%s')
+		, DOWN_EDDT = DATE_FORMAT(#{downEddt} , '%Y-%m-%d %H:%i:%s')
+		, BUY_LIMIT_AMT = #{buyLimitAmt}
+		, PLAN_SQ = #{planSq}
+		, REISSUANCE = #{reissuance}
+		, CPN_STAT = #{cpnStat}
+		, END_ALIM_YN = #{endAlimYn}
+		, UPD_NO = #{updNo}
+		, UPD_DT = now()
+		, FIRST_ORD_YN = #{firstOrdYn}
+		, DOWN_ABL_YN = #{downAblYn}
 		<choose>
 			<when test='newCustYn != null and newCustYn == "Y"'>
-		  , CUST_JOIN_STDT = DATE_FORMAT(#{custJoinStdt} , '%Y-%m-%d %H:%i:%s')
-		  , CUST_JOIN_EDDT = DATE_FORMAT(#{custJoinEddt} , '%Y-%m-%d %H:%i:%s')
+				, CUST_JOIN_STDT = DATE_FORMAT(#{custJoinStdt} , '%Y-%m-%d %H:%i:%s')
+				, CUST_JOIN_EDDT = DATE_FORMAT(#{custJoinEddt} , '%Y-%m-%d %H:%i:%s')
 			</when>
 			<when test='newCustYn != null and newCustYn == "N"'>
-		  , CUST_JOIN_STDT = null
-		  , CUST_JOIN_EDDT = null
+				, CUST_JOIN_STDT = null
+				, CUST_JOIN_EDDT = null
 			</when>
 		</choose>
 		<choose>
 			<when test='firstOrdYn != null and firstOrdYn == "Y"'>
-		  , BUY_STDT = DATE_FORMAT(#{buyStdt} , '%Y-%m-%d %H:%i:%s')
-		  , BUY_EDDT = DATE_FORMAT(#{buyEddt} , '%Y-%m-%d %H:%i:%s')
+				, BUY_STDT = DATE_FORMAT(#{buyStdt} , '%Y-%m-%d %H:%i:%s')
+				, BUY_EDDT = DATE_FORMAT(#{buyEddt} , '%Y-%m-%d %H:%i:%s')
 			</when>
 			<when test='firstOrdYn != null and firstOrdYn == "N"'>
-		  , BUY_STDT = null
-		  , BUY_EDDT = null
+				, BUY_STDT = null
+				, BUY_EDDT = null
 			</when>
 		</choose>
-		  , NEW_CUST_YN = #{newCustYn}
+		, NEW_CUST_YN = #{newCustYn}
 	</insert>
 
 	<!-- 쿠폰조회 목록 -->
@@ -316,61 +316,58 @@
 		  <if test='refBrandCd != null and refBrandCd != ""'>
 		  , REF_BRAND_CD
 		  </if>
-		  , REG_NO
-		  , REG_DT
-		  , UPD_NO
-		  , UPD_DT
-		)
-		SELECT CPN_ID
-			 , #{cpnRefvalSq}
-			 , CPN_TYPE
-			 , #{cpnTarget}
-			 , #{refVal}
-			 <if test='refFormalGb != null and refFormalGb != ""'>
-			 , #{refFormalGb}
-			 </if>
+		, REG_NO
+		, REG_DT
+		, UPD_NO
+		, UPD_DT
+		) VALUES (
+			#{cpnId}
+			, #{cpnRefvalSq}
+			, #{cpnType}
+			, #{cpnTarget}
+			, #{refVal}
+			<if test='refFormalGb != null and refFormalGb != ""'>
+			, #{refFormalGb}
+			</if>
 			 <if test='refBrandCd != null and refBrandCd != ""'>
 			 , #{refBrandCd}
 			 </if>
-			 , REG_NO
-			 , now()
-			 , UPD_NO
-			 , now()
-		  FROM TB_COUPON
-		 WHERE CPN_ID = #{cpnId}
-		    ON DUPLICATE KEY UPDATE
-			REF_VAL = #{refVal}
-		  , REF_FORMAL_GB = #{refFormalGb}
-		  , REF_BRAND_CD = #{refBrandCd}
-		  , UPD_NO = #{updNo}
-		  , UPD_DT = now()
+			 , #{regNo}
+			 , CURRENT_TIMESTAMP()
+			 , #{updNo}
+			 , CURRENT_TIMESTAMP()
+		) ON DUPLICATE KEY UPDATE
+		REF_VAL = #{refVal}
+		, CPN_TYPE = #{cpnType}
+		, CPN_TARGET = #{cpnTarget}
+		, REF_FORMAL_GB = #{refFormalGb}
+		, REF_BRAND_CD = #{refBrandCd}
+		, DEL_YN = #{delYn}
+		, UPD_NO = #{updNo}
+		, UPD_DT = now()
 	</insert>
 
 	<!-- 쿠폰 입점업체 분담율 등록 -->
 	<insert id="saveCouponBurden" parameterType="CouponBurden">
 		/* TsaCoupon.saveCouponBurden */
-		INSERT INTO TB_COUPON_BURDEN(
-		    CPN_ID
-		  , SUPPLY_COMP_CD
-		  , BURDEN_RATE
-		  , REG_NO
-		  , REG_DT
-		  , UPD_NO
-		  , UPD_DT
-		)
-		SELECT CPN_ID
-			 , #{supplyCompCd}
-			 , #{burdenRate}
-			 , REG_NO
-			 , now()
-			 , UPD_NO
-			 , now()
-		  FROM TB_COUPON
-		 WHERE CPN_ID = #{cpnId}
-			ON DUPLICATE KEY UPDATE
-			   BURDEN_RATE = #{burdenRate}
-			 , UPD_NO = #{updNo}
-			 , UPD_DT = now()
+		INSERT INTO TB_COUPON_BURDEN( CPN_ID
+									, SUPPLY_COMP_CD
+									, BURDEN_RATE
+									, REG_NO
+									, REG_DT
+									, UPD_NO
+									, UPD_DT)
+		VALUES ( #{cpnId}
+			   , #{supplyCompCd}
+			   , #{burdenRate}
+			   , #{regNo}
+			   , CURRENT_TIMESTAMP()
+			   , #{updNo}
+			   , CURRENT_TIMESTAMP()
+		) ON DUPLICATE KEY UPDATE
+			BURDEN_RATE = #{burdenRate}
+			, UPD_NO = #{updNo}
+			, UPD_DT = now()
 	</insert>
 
 	<!-- 자사브랜드 조회-->
@@ -452,6 +449,7 @@
 			 , B.GOODS_NM
 			 , C.BRAND_ENM
 			 , A.CPN_REFVAL_SQ
+		     , A.DEL_YN
 		  FROM TB_COUPON_REFVAL A
 		 INNER JOIN TB_GOODS B ON A.REF_VAL = B.GOODS_CD
 		 INNER JOIN TB_BRAND C ON B.BRAND_CD = C.BRAND_CD
@@ -467,6 +465,7 @@
 		SELECT B.BRAND_CD
 			 , B.BRAND_ENM
 			 , A.CPN_REFVAL_SQ
+		     , A.DEL_YN
 		  FROM TB_COUPON_REFVAL A
 		 INNER JOIN TB_BRAND B ON A.REF_VAL = B.BRAND_CD
 		 WHERE A.CPN_ID = #{cpnId}
@@ -485,6 +484,7 @@
 			 , A.REF_FORMAL_GB					AS FORMAL_GB
 		     , A.REF_BRAND_CD					AS BRAND_CD
 			 , A.CPN_REFVAL_SQ
+		     , A.DEL_YN
 		  FROM TB_COUPON_REFVAL A
 		 INNER JOIN TB_CATE_4SRCH B ON A.REF_VAL = B.LEAF_CATE_NO
 		 WHERE A.CPN_ID = #{cpnId}
@@ -499,6 +499,7 @@
 		SELECT B.SUPPLY_COMP_CD
 			 , B.SUPPLY_COMP_NM
 			 , A.CPN_REFVAL_SQ
+		     , A.DEL_YN
 		  FROM TB_COUPON_REFVAL A
 		 INNER JOIN TB_SUPPLY_COMPANY B ON A.REF_VAL = B.SUPPLY_COMP_CD
 		 WHERE A.CPN_ID = #{cpnId}
@@ -516,6 +517,7 @@
 			 , CPN_ID
 		  FROM TB_COUPON_BURDEN
 		 WHERE CPN_ID = #{value}
+		   AND DEL_YN = 'N'
 	</select>
 
 	<!-- 쿠폰 적용대상 수정-->
@@ -524,7 +526,7 @@
 		UPDATE TB_COUPON_REFVAL
 		   SET DEL_YN = 'Y'
 			 , UPD_NO = #{updNo}
-			 , UPD_DT = now()
+			 , UPD_DT = CURRENT_TIMESTAMP()
 		 WHERE CPN_ID = #{cpnId}
 		   AND CPN_REFVAL_SQ IN
 		  <foreach collection="cpnRefvalSqArr" item="item" open="(" separator="," close=")">
@@ -556,9 +558,9 @@
 		     , #{pubReasonDtl}
 		     , #{endAlimSendYn}
 		     , #{regNo}
-		     , NOW()
+		     , CURRENT_TIMESTAMP()
 		     , #{updNo}
-		     , NOW()
+		     , CURRENT_TIMESTAMP()
 		)
 	</insert>
 
@@ -581,7 +583,7 @@
 		UPDATE TB_CUST_COUPON
 		   SET AVAIL_EDDT = DATE_FORMAT(#{availEddt} , '%Y-%m-%d')
 			 , UPD_NO = #{updNo}
-			 , UPD_DT = now()
+			 , UPD_DT = CURRENT_TIMESTAMP()
 		 WHERE CPN_ID = #{cpnId}
 		   AND USED_DT IS NOT NULL
 		   AND CUST_NO = #{custNo}
@@ -792,7 +794,14 @@
 				 ,CURRENT_TIMESTAMP()
 				 ,#{updNo}
 				 ,CURRENT_TIMESTAMP()
-		)
+		) ON DUPLICATE KEY UPDATE
+			LIMIT_CPN_NM = #{limitCpnNm}
+			, DOWN_LIMIT_QTY = #{downLimitQty}
+			, DOWN_STDT = DATE_FORMAT(#{downStdt},'%Y-%m-%d %H:%i:%s')
+			, DOWN_EDDT = DATE_FORMAT(#{downEddt},'%Y-%m-%d %H:%i:%s')
+			, DEL_YN = 'N'
+			, UPD_NO = #{updNo}
+			, UPD_DT = CURRENT_TIMESTAMP()
 	</insert>
 
 	<select id="getLimitedTimeCouponList" parameterType="int" resultType="CouponLimitedTime">
@@ -820,7 +829,7 @@
 		UPDATE TB_LIMITED_TIME_COUPON
 		SET DEL_YN = 'Y'
 		, UPD_NO = #{updNo}
-		, UPD_DT = now()
+		, UPD_DT = CURRENT_TIMESTAMP()
 		WHERE CPN_ID = #{cpnId}
 		AND LIMIT_CPN_ID IN
 		<foreach collection="arrLimitCpnId" item="item" index="index"  open="(" close=")" separator=",">
@@ -829,15 +838,127 @@
 	</update>
 
 	<update id="updateCouponStat" parameterType="Coupon">
-		/* TsaMarketing.updateCouponStat */
+		/* TsaCoupon.updateCouponStat */
 		UPDATE TB_COUPON SET
 		CPN_STAT = #{cpnStat}
 		<if test="cpnStat == 'G232_14'">
 			, DEL_YN = 'Y'
 		</if>
 		, UPD_NO = #{updNo}
-		, UPD_DT = NOW()
+		, UPD_DT = CURRENT_TIMESTAMP()
+		WHERE CPN_ID = #{cpnId}
+	</update>
+	
+	<update id="updateCouponMstInfo" parameterType="Coupon">
+		/* TsaCoupon.updateCouponMstInfo */
+		UPDATE	TB_COUPON	SET
+		CPN_NM = #{cpnNm}
+		, SITE_CD = #{siteCd}
+		, AF_LINK_CD = #{afLinkCd}
+		, CPN_TYPE = #{cpnType}
+		, APPLY_SCOPE = #{applyScope}
+		, DC_WAY = #{dcWay}
+		, DC_PVAL = #{dcPval}
+		, DC_MVAL = #{dcMval}
+		, DC_AVAL = #{dcAval}
+		, MAX_DC_AMT = #{maxDcAmt}
+		, PD_GB = #{pdGb}
+		<choose>
+			<when test='pdGb != null and pdGb == "P"'>
+				, AVAIL_STDT = DATE_FORMAT(#{availStdt} , '%Y-%m-%d %H:%i:%s')
+				, AVAIL_EDDT = DATE_FORMAT(#{availEddt} , '%Y-%m-%d %H:%i:%s')
+				, AVAIL_DAYS = null
+			</when>
+			<when test='pdGb != null and pdGb == "D"' >
+				, AVAIL_STDT = null
+				, AVAIL_EDDT = null
+				, AVAIL_DAYS = #{availDays}
+			</when>
+		</choose>
+		, CUST_PUB_LIMIT_QTY = #{custPubLimitQty}
+		, TOT_PUB_LIMIT_QTY = #{totPubLimitQty}
+		, ONE_PUB_QTY = #{onePubQty}
+		, DOWN_STDT = DATE_FORMAT(#{downStdt} , '%Y-%m-%d %H:%i:%s')
+		, DOWN_EDDT = DATE_FORMAT(#{downEddt} , '%Y-%m-%d %H:%i:%s')
+		, BUY_LIMIT_AMT = #{buyLimitAmt}
+		, PLAN_SQ = #{planSq}
+		, REISSUANCE = #{reissuance}
+		, CPN_STAT = #{cpnStat}
+		, END_ALIM_YN = #{endAlimYn}
+		, UPD_NO = #{updNo}
+		, UPD_DT = CURRENT_TIMESTAMP()
+		, FIRST_ORD_YN = #{firstOrdYn}
+		, DOWN_ABL_YN = #{downAblYn}
+		<choose>
+			<when test='newCustYn != null and newCustYn == "Y"'>
+				, CUST_JOIN_STDT = DATE_FORMAT(#{custJoinStdt} , '%Y-%m-%d %H:%i:%s')
+				, CUST_JOIN_EDDT = DATE_FORMAT(#{custJoinEddt} , '%Y-%m-%d %H:%i:%s')
+			</when>
+			<when test='newCustYn != null and newCustYn == "N"'>
+				, CUST_JOIN_STDT = null
+				, CUST_JOIN_EDDT = null
+			</when>
+		</choose>
+		<choose>
+			<when test='firstOrdYn != null and firstOrdYn == "Y"'>
+				, BUY_STDT = DATE_FORMAT(#{buyStdt} , '%Y-%m-%d %H:%i:%s')
+				, BUY_EDDT = DATE_FORMAT(#{buyEddt} , '%Y-%m-%d %H:%i:%s')
+			</when>
+			<when test='firstOrdYn != null and firstOrdYn == "N"'>
+				, BUY_STDT = null
+				, BUY_EDDT = null
+			</when>
+		</choose>
+		, NEW_CUST_YN = #{newCustYn}
+		WHERE CPN_ID = #{cpnId}
+	</update>
+	
+	<delete id="deleteCouponCustGubun" parameterType="Coupon">
+		/* TsaCoupon.deleteCouponCustGubun */
+		DELETE FROM	TB_COUPON_CUST_GBN
+		WHERE	CPN_ID = #{cpnId}
+	</delete>
+
+	<delete id="deleteCouponCustGrade" parameterType="Coupon">
+		/* TsaCoupon.deleteCouponCustGrade */
+		DELETE FROM	TB_COUPON_CUST_GRADE
+		WHERE	CPN_ID = #{cpnId}
+	</delete>
+
+	<delete id="deleteCouponPayType" parameterType="Coupon">
+		/* TsaCoupon.deleteCouponPayType */
+		DELETE FROM	TB_COUPON_PAYTYPE
+		WHERE	CPN_ID = #{cpnId}
+	</delete>
+	
+	<update id="deleteCouponRefVal" parameterType="Coupon">
+		/* TsaCoupon.deleteCouponRefVal */
+		UPDATE TB_COUPON_REFVAL SET
+			DEL_YN = 'Y'
+			, UPD_NO = #{updNo}
+			, UPD_DT = CURRENT_TIMESTAMP
+		WHERE CPN_ID = #{cpnId}
+		  AND DEL_YN = 'N'
+	</update>
+
+	<update id="deleteCouponBurden" parameterType="Coupon">
+		/* TsaCoupon.deleteCouponBurden */
+		UPDATE TB_COUPON_BURDEN SET
+			DEL_YN = 'Y'
+			, UPD_NO = #{updNo}
+			, UPD_DT = CURRENT_TIMESTAMP
+		WHERE CPN_ID = #{cpnId}
+		  AND DEL_YN = 'N'
+	</update>
+
+	<update id="deleteLimitedTimeCoupon" parameterType="Coupon">
+		/* TsaCoupon.deleteLimitedTimeCoupon */
+		UPDATE TB_LIMITED_TIME_COUPON SET
+			DEL_YN = 'Y'
+			, UPD_NO = #{updNo}
+			, UPD_DT = CURRENT_TIMESTAMP
 		WHERE CPN_ID = #{cpnId}
+		  AND DEL_YN = 'N'
 	</update>
 
 </mapper>

+ 0 - 8
src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -1032,8 +1032,6 @@
 		/* TsaGoods.createGoodsHst */
 		INSERT INTO TB_GOODS_HST 
 		(       GOODS_CD
-		      , PRODUCT_NO
-		      , PRODUCT_CODE
 		      , BRAND_CD
 		      , ITEMKIND_CD
 		      , GOODS_NM
@@ -1089,8 +1087,6 @@
 		      , UPD_DT
 		)
 		SELECT GOODS_CD            
-		     , PRODUCT_NO
-		     , PRODUCT_CODE
 		     , BRAND_CD            
 		     , ITEMKIND_CD         
 		     , GOODS_NM            
@@ -1509,8 +1505,6 @@
 		/* TsaGoods.createGoods */
 		INSERT INTO TB_GOODS (
 		    GOODS_CD
-		  , PRODUCT_NO
-		  , PRODUCT_CODE
 		  , BRAND_CD
 		  , ITEMKIND_CD
 		  , GOODS_NM
@@ -1554,8 +1548,6 @@
 		)
 		VALUES(
 		    #{goodsCd}
-		  , IFNULL(#{productNo},0)
-		  , IFNULL(#{productCode},0)
 		  , #{brandCd}
 		  , #{itemkindCd}
 		  , IFNULL(#{goodsNm},'상품명없음')

+ 89 - 31
src/main/java/com/style24/persistence/mybatis/shop/TsaMorebetter.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.style24.admin.biz.dao.TsaMorebetterDao">
 	<!-- // CSB 진행 -->
 	<select id="getMorebetterListCount" parameterType="MoreBetter" resultType="int">
-		/* TsaMarketing.getMorebetterListCount */
+		/* TsaMorebetter.getMorebetterListCount */
 		SELECT  COUNT(*) AS TOTCNT
 		FROM	TB_TMTB T
 		WHERE	1=1
@@ -21,7 +21,7 @@
 	</select>
 
 	<select id="getMorebetterList" parameterType="MoreBetter" resultType="MoreBetter">
-		/* TsaMarketing.getMorebetterList */
+		/* TsaMorebetter.getMorebetterList */
 		SELECT Z.*
 		FROM(
 			SELECT @rownum := @rownum + 1 AS RNUM
@@ -70,7 +70,7 @@
 	</sql>
 
 	<select id="getMorebetterMstInfo" parameterType="Integer" resultType="MoreBetter">
-		/* TsaMarketing.getMorebetterMstInfo */
+		/* TsaMorebetter.getMorebetterMstInfo */
 		SELECT	   	   TT.TMTB_SQ
 					 , TT.TMTB_NM
 					 , TT.TMTB_STAT
@@ -106,7 +106,7 @@
 	</select>
 
 	<select id="getMorebetterSectionValList" parameterType="Integer" resultType="MoreBetterSection">
-		/* TsaMarketing.getMorebetterSectionValList */
+		/* TsaMorebetter.getMorebetterSectionValList */
 		SELECT    TS.TMTB_SQ
 				 ,TS.TMTB_SECTION_SQ
 				 ,TV.TMTB_VAL_SQ
@@ -125,11 +125,12 @@
 		AND		TS.TMTB_SECTION_SQ = TV.TMTB_SECTION_SQ
 		WHERE 	1=1
 		  AND 	TS.TMTB_SQ = #{tmtbSq}
+		  AND   TS.DEL_YN = 'N'
 		ORDER BY TS.TMTB_SQ, TS.TMTB_SECTION_SQ, TV.TMTB_VAL_SQ
 	</select>
 
 	<select id="getMorebetterSupplyCompList" parameterType="MoreBetterGoods" resultType="MoreBetterGoods">
-		/* TsaMarketing.getMorebetterSupplyCompList */
+		/* TsaMorebetter.getMorebetterSupplyCompList */
 		SELECT 	 TMTB_GOODS_SQ
 				 , TMTB_SQ
 				 , GOODS_GB
@@ -146,10 +147,11 @@
 		WHERE 1=1
 		  AND TMTB_SQ = #{tmtbSq}
 		  AND TARGET_GB = 'G260_13'
+		  AND DEL_YN = 'N'
 	</select>
 
 	<select id="getMorebetterBrandList" parameterType="MoreBetterGoods" resultType="MoreBetterGoods">
-		/* TsaMarketing.getMorebetterBrandList */
+		/* TsaMorebetter.getMorebetterBrandList */
 		SELECT 	 TMTB_GOODS_SQ
 				 , TMTB_SQ
 				 , GOODS_GB
@@ -171,10 +173,11 @@
 		WHERE 1=1
 		  AND TMTB_SQ = #{tmtbSq}
 		  AND TARGET_GB = 'G260_12'
+		  AND DEL_YN = 'N'
 	</select>
 
 	<select id="getMorebetterApplyGoodsList" parameterType="MoreBetterGoods" resultType="MoreBetterGoods">
-		/* TsaMarketing.getMorebetterApplyGoodsList */
+		/* TsaMorebetter.getMorebetterApplyGoodsList */
 		SELECT 	 A.TMTB_GOODS_SQ
 				 , A.TMTB_SQ
 				 , B.TMTB_APPLY_GOODS_SQ
@@ -199,10 +202,11 @@
 		  AND A.TMTB_SQ = #{tmtbSq}
 		  AND A.TARGET_GB = 'G260_10'
 		  AND A.GOODS_GB IN ('G800_10','G800_20')
+ 		  AND A.DEL_YN = 'N'
 	</select>
 
 	<select id="getMorebetterExceptGoodsList" parameterType="MoreBetterGoods" resultType="MoreBetterGoods">
-		/* TsaMarketing.getMorebetterExceptGoodsList */
+		/* TsaMorebetter.getMorebetterExceptGoodsList */
 		SELECT 	 A.TMTB_GOODS_SQ
 				 , A.TMTB_SQ
 				 , B.TMTB_APPLY_GOODS_SQ
@@ -227,10 +231,11 @@
 		  AND A.TMTB_SQ = #{tmtbSq}
 		  AND A.TARGET_GB = 'G260_10'
 		  AND A.GOODS_GB IN ('G800_30')
+		  AND A.DEL_YN = 'N'
 	</select>
 
 	<select id="getMorebetterBurdenList" parameterType="Integer" resultType="MoreBetterBurden">
-		/* TsaMarketing.getMorebetterBurdenList */
+		/* TsaMorebetter.getMorebetterBurdenList */
 		SELECT 		TB_TMTB_BURDEN_SQ
 				   , TMTB_SQ
 				   , TMTB_SUPPLY_CD
@@ -243,10 +248,11 @@
 		FROM TB_TMTB_BURDEN
 		WHERE 1=1
 		  AND TMTB_SQ = #{tmtbSq}
+		  AND USE_YN = 'Y'
 	</select>
 
 	<insert id="saveMorebetterMst" parameterType="MoreBetter" keyProperty="tmtbSq">
-		/* TsaMarketing.saveMorebetterMst */
+		/* TsaMorebetter.saveMorebetterMst */
 		INSERT INTO TB_TMTB(
 		        TMTB_SQ
 		        ,TMTB_NM
@@ -285,7 +291,7 @@
 	</insert>
 
 	<insert id="saveMorebetterGoods" parameterType="MoreBetterGoods" keyProperty="tmtbGoodsSq">
-		/* TsaMarketing.saveMorebetterGoods */
+		/* TsaMorebetter.saveMorebetterGoods */
 		INSERT INTO TB_TMTB_GOODS(
 		         	 TMTB_GOODS_SQ
 		        	,TMTB_SQ
@@ -314,12 +320,13 @@
 						 GOODS_GB = #{goodsGb}
 						,TARGET_GB = #{targetGb}
 						,TARGET_VAL = #{targetVal}
+			    		,DEL_YN = #{delYn}
 						,UPD_NO = #{updNo}
 						,UPD_DT = NOW()
 	</insert>
 
 	<insert id="saveMorebetterApplyGoods" parameterType="MoreBetterGoods" keyProperty="tmtbApplyGoodsSq">
-		/* TsaMarketing.saveMorebetterApplyGoods */
+		/* TsaMorebetter.saveMorebetterApplyGoods */
 		INSERT INTO TB_TMTB_APPLY_GOODS(
 					TMTB_APPLY_GOODS_SQ
 					,TMTB_SQ
@@ -350,7 +357,7 @@
 	</insert>
 
 	<insert id="saveMorebetterSection" parameterType="MoreBetterSection" keyProperty="tmtbSectionSq">
-		/* TsaMarketing.saveMorebetterSection */
+		/* TsaMorebetter.saveMorebetterSection */
 		INSERT INTO TB_TMTB_SECTION(
 					 TMTB_SECTION_SQ
 					,TMTB_SQ
@@ -376,12 +383,13 @@
 			ON DUPLICATE KEY UPDATE
 						 SECTION_GB = #{sectionGb}
 						,SECTION_VAL = #{sectionVal}
+						,DEL_YN = #{delYn}
 						,UPD_NO = #{updNo}
 						,UPD_DT = NOW()
 	</insert>
 
 	<insert id="saveMorebetterVal" parameterType="MoreBetterSection" keyProperty="tmtbValSq">
-		/* TsaMarketing.saveMorebetterVal */
+		/* TsaMorebetter.saveMorebetterVal */
 		INSERT INTO TB_TMTB_VAL(
 					 TMTB_VAL_SQ
 					,TMTB_SQ
@@ -409,12 +417,13 @@
 			ON DUPLICATE KEY UPDATE
 						 DC_WAY = #{dcWay}
 						,DC_VAL = #{dcVal}
+						,DEL_YN = #{delYn}
 						,UPD_NO = #{updNo}
 						,UPD_DT = NOW()
 	</insert>
 
 	<insert id="saveMorebetterBurden" parameterType="MoreBetterBurden" keyProperty="tbTmtbBurdenSq">
-		/* TsaMarketing.saveMorebetterBurden */
+		/* TsaMorebetter.saveMorebetterBurden */
 		INSERT INTO TB_TMTB_BURDEN(
 								  TB_TMTB_BURDEN_SQ
 		                          ,TMTB_SQ
@@ -445,7 +454,7 @@
 	</insert>
 
 	<delete id="deleteTmtbSupplyCompanyList" parameterType="MoreBetterGoods">
-		/* TsaMarketing.deleteTmtbSupplyCompanyList */
+		/* TsaMorebetter.deleteTmtbSupplyCompanyList */
 		DELETE FROM TB_TMTB_GOODS
 		WHERE TMTB_SQ =  #{tmtbSq}
 		<if test="arrCompanySq != null and arrCompanySq.length>0">
@@ -457,7 +466,7 @@
 	</delete>
 
 	<delete id="deleteTmtbBrandList" parameterType="MoreBetterGoods">
-		/* TsaMarketing.deleteTmtbBrandList */
+		/* TsaMorebetter.deleteTmtbBrandList */
 		DELETE FROM TB_TMTB_GOODS
 		WHERE TMTB_SQ =  #{tmtbSq}
 		<if test="arrBrandSq != null and arrBrandSq.length>0">
@@ -469,7 +478,7 @@
 	</delete>
 
 	<delete id="deleteTmtbApplyGoodsList" parameterType="MoreBetterGoods">
-		/* TsaMarketing.deleteTmtbApplyGoodsList */
+		/* TsaMorebetter.deleteTmtbApplyGoodsList */
 		DELETE FROM TB_TMTB_GOODS
 		WHERE TMTB_SQ =  #{tmtbSq}
 		<if test="arrApplyGoodsSq != null and arrApplyGoodsSq.length>0">
@@ -481,7 +490,7 @@
 	</delete>
 
 	<delete id="deleteTmtbExceptGoodsList" parameterType="MoreBetterGoods">
-		/* TsaMarketing.deleteTmtbExceptGoodsList */
+		/* TsaMorebetter.deleteTmtbExceptGoodsList */
 		DELETE FROM TB_TMTB_GOODS
 		WHERE TMTB_SQ =  #{tmtbSq}
 		<if test="arrExceptGoodsSq != null and arrExceptGoodsSq.length>0">
@@ -493,7 +502,7 @@
 	</delete>
 
 	<delete id="deleteTmtbSectionList" parameterType="MoreBetterSection">
-		/* TsaMarketing.deleteTmtbSectionList */
+		/* TsaMorebetter.deleteTmtbSectionList */
 		DELETE FROM TB_TMTB_SECTION
 		WHERE TMTB_SQ =  #{tmtbSq}
 		<if test="arrSectionSq != null and arrSectionSq.length>0">
@@ -505,7 +514,7 @@
 	</delete>
 
 	<delete id="deleteTmtbValList" parameterType="MoreBetterSection">
-		/* TsaMarketing.deleteTmtbValList */
+		/* TsaMorebetter.deleteTmtbValList */
 		DELETE FROM TB_TMTB_VAL
 		WHERE TMTB_SQ =  #{tmtbSq}
 		<if test="arrSectionSq != null and arrSectionSq.length>0">
@@ -517,7 +526,7 @@
 	</delete>
 
 	<delete id="deleteTmtbBurdenList" parameterType="MoreBetterGoods">
-		/* TsaMarketing.deleteTmtbBurdenList */
+		/* TsaMorebetter.deleteTmtbBurdenList */
 		DELETE FROM TB_TMTB_BURDEN
 		WHERE TMTB_SQ =  #{tmtbSq}
 		<if test="arrBurdenSq != null and arrBurdenSq.length>0">
@@ -529,13 +538,13 @@
 	</delete>
 
 	<delete id="deleteTmtbGoodsTemp" parameterType="MoreBetterGoods">
-		/* TsaMarketing.deleteTmtbGoodsTemp */
+		/* TsaMorebetter.deleteTmtbGoodsTemp */
 		DELETE FROM TB_TMTB_USING_GOODS_TEMP
 		WHERE	REG_NO = #{regNo}
 	</delete>
 
 	<insert id="createTmtbGoodsTemp" parameterType="MoreBetterGoods">
-		/* TsaMarketing.createTmtbGoodsTemp */
+		/* TsaMorebetter.createTmtbGoodsTemp */
 		INSERT INTO TB_TMTB_USING_GOODS_TEMP
 			SELECT Z.REG_NO
 				, Z.GOODS_CD
@@ -553,6 +562,7 @@
 					WHERE 1=1
 					  AND NOW() BETWEEN DATE_FORMAT(A.TMTB_ST_DT, '%Y-%m-%d %H:%i:%S') AND DATE_FORMAT(A.TMTB_ED_DT, '%Y-%m-%d %H:%i:%S')
 					  AND A.TMTB_STAT = 'G232_11'
+					  AND A.DEL_YN = 'N'
 					  AND B.GOODS_GB IN ('G800_10','G800_20')
 					  AND B.DEL_YN = 'N'
 					  AND B.GOODS_CD NOT IN (
@@ -561,6 +571,7 @@
 											WHERE	1=1
 											  AND		B.TMTB_SQ = C.TMTB_SQ
 											  AND		C.GOODS_GB = 'G800_30'
+					      					  AND 		C.DEL_YN = 'N'
 										)
 			) Z
 			WHERE 1=1
@@ -568,7 +579,7 @@
 	</insert>
 
 	<select id="getMorebetterDuplicateList" parameterType="MoreBetterGoods" resultType="MoreBetterGoods">
-		/* TsaMarketing.getMorebetterDuplicateList */
+		/* TsaMorebetter.getMorebetterDuplicateList */
 		SELECT 	B.REG_NO
 				, B.GOODS_CD
 				, B.GOODS_NM
@@ -582,7 +593,7 @@
 	</select>
 
 	<update id="updateMorebetterStat" parameterType="MoreBetter">
-		/* TsaMarketing.updateMorebetterStat */
+		/* TsaMorebetter.updateMorebetterStat */
 		UPDATE TB_TMTB SET
 			TMTB_STAT = #{tmtbStat}
 		<if test="tmtbStat == 'G232_14'">
@@ -594,13 +605,13 @@
 	</update>
 
 	<delete id="deleteTmtbApplyGoodsTemp" parameterType="MoreBetterGoods">
-		/* TsaMarketing.deleteTmtbApplyGoodsTemp */
+		/* TsaMorebetter.deleteTmtbApplyGoodsTemp */
 		DELETE FROM TB_TMTB_APPLY_GOODS_TEMP
 		WHERE	REG_NO = #{regNo}
 	</delete>
 
 	<insert id="createTmtbApplyGoodsTemp" parameterType="MoreBetterGoods">
-		/* TsaMarketing.createTmtbApplyGoodsTemp */
+		/* TsaMorebetter.createTmtbApplyGoodsTemp */
 		INSERT INTO TB_TMTB_APPLY_GOODS_TEMP(
 											 REG_NO
 											,GOODS_CD
@@ -612,7 +623,7 @@
 	</insert>
 
 	<select id="getMorebetterRealApplyGoodsList" parameterType="MoreBetter" resultType="MoreBetterGoods">
-		/* TsaMarketing.getMorebetterRealApplyGoodsList */
+		/* TsaMorebetter.getMorebetterRealApplyGoodsList */
 		SELECT	GOODS_CD
 		  FROM	TB_TMTB_APPLY_GOODS_TEMP
 		 WHERE	1=1
@@ -626,7 +637,7 @@
 	</select>
 
 	<select id="getMorebetterCompBrandGoodsList" parameterType="MoreBetterGoods" resultType="MoreBetterGoods">
-		/* TsaMarketing.getMorebetterCompBrandGoodsList */
+		/* TsaMorebetter.getMorebetterCompBrandGoodsList */
 		SELECT  G.GOODS_CD
 				,'G800_20' AS GOODS_GB
 				,'G260_10' AS TARGET_GB
@@ -639,11 +650,58 @@
 			</foreach>
 		</if>
 		<if test="multiBrand != null and multiBrand.length>0">
-			AND G.BRAND_CD IN
+			OR G.BRAND_CD IN
 			<foreach collection="multiBrand" item="item" index="index"  open="(" close=")" separator=",">
 				#{item}
 			</foreach>
 		</if>
 	</select>
+
+	<update id="deleteTmtbGoods" parameterType="MoreBetter">
+		/* TsaMorebetter.deleteTmtbGoods */
+		UPDATE TB_TMTB_GOODS SET
+			DEL_YN = 'Y'
+			, UPD_NO = #{updNo}
+			, UPD_DT = CURRENT_TIMESTAMP
+		WHERE TMTB_SQ = #{tmtbSq}
+		  AND DEL_YN = 'N'
+	</update>
+
+	<update id="deleteTmtbBurden" parameterType="MoreBetter">
+		/* TsaMorebetter.deleteTmtbBurden */
+		UPDATE TB_TMTB_BURDEN SET
+			USE_YN = 'N'
+			, UPD_NO = #{updNo}
+			, UPD_DT = CURRENT_TIMESTAMP
+		WHERE TMTB_SQ = #{tmtbSq}
+		  AND USE_YN = 'Y'
+	</update>
+
+	<update id="deleteTmtbSection" parameterType="MoreBetter">
+		/* TsaMorebetter.deleteTmtbSection */
+		UPDATE TB_TMTB_SECTION SET
+			DEL_YN = 'Y'
+			, UPD_NO = #{updNo}
+			, UPD_DT = CURRENT_TIMESTAMP
+		WHERE TMTB_SQ = #{tmtbSq}
+		  AND DEL_YN = 'N'
+	</update>
+
+	<update id="deleteTmtbVal" parameterType="MoreBetter">
+		/* TsaMorebetter.deleteTmtbVal */
+		UPDATE TB_TMTB_VAL SET
+			DEL_YN = 'Y'
+			, UPD_NO = #{updNo}
+			, UPD_DT = CURRENT_TIMESTAMP
+		WHERE TMTB_SQ = #{tmtbSq}
+		  AND DEL_YN = 'N'
+	</update>
+
+	<delete id="deleteTmtbApplyGoods" parameterType="MoreBetter">
+		/* TsaMarketing.deleteTmtbApplyGoods */
+		DELETE FROM TB_TMTB_APPLY_GOODS
+		WHERE	TMTB_SQ = #{tmtbSq}
+	</delete>
+
 	<!--// CSB 진행 -->
 </mapper>

+ 60 - 20
src/main/webapp/WEB-INF/views/marketing/CouponPopupForm.html

@@ -15,7 +15,7 @@
  *******************************************************************************
  -->
 <div class="modalPopup" data-width="1200">
-	<div class="panelStyle" style="height: 750px">
+	<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>
@@ -497,8 +497,7 @@
 				<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>  <!-- 난수유형과 시리얼 유형에서는 쿠폰발행기능 X -->
-					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnCouponSave" onclick="fnCouponCreate();" th:if="${mode == 'N'}">등록</button>
-					<button type="button" class="btn btn-info btn-lg" onclick="fnCouponUpdate();" th:if="${mode == 'U'}">수정</button>
+					<button type="button" class="btn btnRight btn-success btn-lg couponButton" id="btnCouponSave" onclick="fnCouponCreate();">등록</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>
@@ -546,13 +545,14 @@
 		{ headerName: "쿠폰분담율(%)", field:"burdenRate" , width:150, cellClass: "text-center" ,
 		  cellEditorParams: { maxlength: 10, required: true }
 		} ,
-		{ headerName: "삭제여부" , field: "delYn"  , width:150, cellClass: "text-center" ,
+		/*{ 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: "cpnId" , width: 120 , cellClass: 'text-center' , hide:true},
+		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
 	];
 
 	// ag-grid 공급처 컬럼
@@ -560,7 +560,8 @@
 		{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: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
+		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
 	];
 
 	// ag-grid 브랜드 컬럼
@@ -569,7 +570,8 @@
 		{ 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: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
+		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
 	];
 
 	// ag-grid 적용상품 컬럼
@@ -578,7 +580,8 @@
 		{ 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: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
+		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
 	];
 
 	// ag-grid 카테고리 컬럼
@@ -610,7 +613,8 @@
 			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: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
+		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
 	];
 
 	// ag-grid 제외상품 컬럼
@@ -619,7 +623,8 @@
 		{ 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: "cpnRefvalSq" , width: 120 , cellClass: 'text-center' , hide:true},
+		{ headerName: "삭제여부"  , field: "delYn" , width: 120 , cellClass: 'text-center' , hide:true}
 	];
 
 	// ag-grid 시리얼 및 난수 리스트
@@ -671,6 +676,36 @@
 	limitedTimeCpnGridOptions.defaultColDef.editable = true;
 	limitedTimeCpnGridOptions.rowSelection = "multiple";
 
+	// 삭제버튼 클릭시
+	// 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)});
+	});
+	// 6.입점업체
+	$('#btnDelRow').on('click', function() {
+		inComGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(inComGridOptions)});
+	});
+	// 7.선착순
+	$('#btnDelLimitedTimeCpnRow').on('click', function() {
+		limitedTimeCpnGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(limitedTimeCpnGridOptions)});
+	});
+
 	// 선착순 쿠폰 행추가
 	$('#btnAddLimitedTimeCpnRow').on('click', function() {
 		var data = { cpnId: 1 ,limitCpnNm: null, downStdt: null, downEddt: null, downLimitQty: null, limitCpnId: null  };
@@ -678,7 +713,7 @@
 	});
 
 	// 선착순 쿠폰 행삭제
-	$('#btnDelLimitedTimeCpnRow').on('click', function() {
+	/*$('#btnDelLimitedTimeCpnRow').on('click', function() {
 		var selectedData = limitedTimeCpnGridOptions.api.getSelectedRows();
 		if (selectedData.length == 0) {
 			mcxDialog.alert('선택된 행이 없습니다.');
@@ -706,6 +741,7 @@
 			});
 		}
 	});
+	*/
 
 	// 선착순 쿠폰 체크박스 클릭시
 	$("#CouponForm #limitedTimeCpnBox").bind('click', function (){
@@ -1232,7 +1268,7 @@
 	};
 
 	// 적용대상 - 브랜드 삭제 버튼시
-	$('#btnBrandDel').on('click' , function(){
+	/*$('#btnBrandDel').on('click' , function(){
 		var selectVal = brandGridOptions.api.getSelectedRows();
 
 		if(selectVal.length == 0) {
@@ -1264,6 +1300,7 @@
 			brandGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(brandGridOptions)});
 		}
 	});
+	*/
 
 	// 적용대상 - 공급처 추가 버튼시
 	$('#btnSupplyAdd').on('click' , function (){
@@ -1290,7 +1327,7 @@
 	};
 
 	// 적용대상 - 공급처 삭제시시
-	$('#btnSupplyDel').on('click' , function () {
+	/*$('#btnSupplyDel').on('click' , function () {
 		var selectVal = supplyGridOptions.api.getSelectedRows();
 
 		if(selectVal.length == 0) {
@@ -1322,7 +1359,7 @@
 			// 신규화면이면 그리드상 삭제
 			supplyGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(supplyGridOptions)});
 		}
-	});
+	});*/
 
 	// 적용대상 - 카테고리 추가시
 	$('#btnCateAdd').on('click' , function () {
@@ -1349,7 +1386,7 @@
 	}
 
 	// 적용대상 - 카테고리 삭제시
-	$('#btnCateDel').on('click' , function () {
+	/*$('#btnCateDel').on('click' , function () {
 		var selectVal = cateGridOptions.api.getSelectedRows();
 
 		if(selectVal.length == 0) {
@@ -1381,6 +1418,7 @@
 			cateGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(cateGridOptions)});
 		}
 	});
+	*/
 
 	// 적용대상 - 상품 추가시
 	$('#btnGoodsAdd').on('click' , function () {
@@ -1393,7 +1431,7 @@
 	};
 
 	// 적용대상 - 상품 삭제 시
-	$('#btnGoodsDel').on('click' , function () {
+	/*$('#btnGoodsDel').on('click' , function () {
 		var selectVal = goodsGridOptions.api.getSelectedRows();
 
 		if(selectVal.length == 0) {
@@ -1423,6 +1461,7 @@
 			goodsGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(goodsGridOptions)});
 		}
 	});
+	 */
 
 	// 적용대상 - 제외상품 추가시
 	$('#btnExcepGoodsAdd').on('click' , function(){
@@ -1434,7 +1473,7 @@
 	};
 
 	// 적용대상 - 제외상품 삭제시
-	$('#btnExcepGoodsDel').on('click' , function () {
+	/*$('#btnExcepGoodsDel').on('click' , function () {
 		var selectVal = excepGoodsGridOptions.api.getSelectedRows();
 
 		if(selectVal.length == 0) {
@@ -1467,6 +1506,7 @@
 			excepGoodsGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(excepGoodsGridOptions)});
 		}
 	});
+	*/
 
 	// ag-grid 상품관련 list 콜백함수
 	function gridAddGoodsList(OriginGridListOption, result, gubun) {
@@ -1573,9 +1613,9 @@
 		gagaAgGrid.addRowData(inComGridOptions , data , "supplyCompCd" );
 	});
 	// 행삭제시
-	$('#btnDelRow').on('click' , function(){
+	/*$('#btnDelRow').on('click' , function(){
 		inComGridOptions.api.updateRowData({remove:gagaAgGrid.selectedRowData(inComGridOptions)});
-	});
+	});*/
 
 	// 제휴링크채널 수정 (제휴링크가 꼭필요한지 확인필요)
 	function fnChangeAfLinkCdList(){

+ 186 - 179
src/main/webapp/WEB-INF/views/marketing/MorebetterPopupForm.html

@@ -355,7 +355,8 @@
 		{headerName: "공급처ID", field: "supplyCompCd", width: 120, cellClass: 'text-center'},
 		{headerName: "공급업체명", field: "supplyCompNm", width: 150, cellClass: 'text-center'},
 		{headerName: "적용대상", field: "targetGb", width: 150, cellClass: 'text-center', hide: true},
-		{headerName: "시퀀스", field: "tmtbGoodsSq", width: 150, cellClass: 'text-center', hide: true}
+		{headerName: "시퀀스", field: "tmtbGoodsSq", width: 150, cellClass: 'text-center', hide: true},
+		{headerName: "삭제여부", field: "delYn", width: 150, cellClass: 'text-center', hide: true}
 	];
 	// 브랜드 리스트 설정
 	var columnBrandList = [
@@ -364,7 +365,8 @@
 		{headerName: "브랜드명", field: "brandEnm", width: 120, cellClass: 'text-center'},
 		{headerName: "공급업체명", field: "supplyCompNm", width: 150, cellClass: 'text-center'},
 		{headerName: "적용대상", field: "targetGb", width: 150, cellClass: 'text-center', hide: true},
-		{headerName: "시퀀스", field: "tmtbGoodsSq", width: 150, cellClass: 'text-center', hide: true}
+		{headerName: "시퀀스", field: "tmtbGoodsSq", width: 150, cellClass: 'text-center', hide: true},
+		{headerName: "삭제여부", field: "delYn", width: 150, cellClass: 'text-center', hide: true}
 	];
 	// 적용상품 리스트 설정
 	var columnApplyGoodsList = [
@@ -379,7 +381,8 @@
 		{headerName: "상품명", field: "goodsNm", width: 120, cellClass: 'text-center'},
 		{headerName: "적용대상", field: "targetGb", width: 150, cellClass: 'text-center', hide: true},
 		{headerName: "시퀀스", field: "tmtbGoodsSq", width: 150, cellClass: 'text-center', hide: true},
-		{headerName: "실제적용대상 시퀀스", field: "tmtbApplyGoodsSq", width: 150, cellClass: 'text-center', hide: true}
+		{headerName: "실제적용대상 시퀀스", field: "tmtbApplyGoodsSq", width: 150, cellClass: 'text-center', hide: true},
+		{headerName: "삭제여부", field: "delYn", width: 150, cellClass: 'text-center', hide: true}
 	];
 	// 제외상품 리스트 설정
 	var columnExceptGoodsList = [
@@ -394,7 +397,8 @@
 		{headerName: "상품명", field: "goodsNm", width: 120, cellClass: 'text-center'},
 		{headerName: "적용대상", field: "targetGb", width: 150, cellClass: 'text-center', hide: true},
 		{headerName: "시퀀스", field: "tmtbGoodsSq", width: 150, cellClass: 'text-center', hide: true},
-		{headerName: "실제적용대상 시퀀스", field: "tmtbApplyGoodsSq", width: 150, cellClass: 'text-center', hide: true}
+		{headerName: "실제적용대상 시퀀스", field: "tmtbApplyGoodsSq", width: 150, cellClass: 'text-center', hide: true},
+		{headerName: "삭제여부", field: "delYn", width: 150, cellClass: 'text-center', hide: true}
 	];
 
 	// 업체분담율 리스트 설정
@@ -413,7 +417,7 @@
 			//cellEditor: 'textCellEditor',
 			cellEditorParams: { maxlength: 3, validType: 'numeric'}
 		},
-		{headerName: "사용여부", field: "useYn" , width: 120, cellClass: 'text-center'},
+		{headerName: "사용여부", field: "useYn" , width: 120, cellClass: 'text-center', hide: true},
 		{headerName: "시퀀스", field: "tmtbBurdenSq", width: 150, cellClass: 'text-center', hide: true}
 	];
 
@@ -462,7 +466,8 @@
 			cellEditorParams: { maxlength: 14, validType: 'numeric'}
 		},
 		{headerName: "구간시퀀스", field: "tmtbSectionSq", width: 150, cellClass: 'text-center', hide: true},
-		{headerName: "할인값시퀀스", field: "tmtbValSq", width: 150, cellClass: 'text-center', hide: true}
+		{headerName: "할인값시퀀스", field: "tmtbValSq", width: 150, cellClass: 'text-center', hide: true},
+		{headerName: "삭제여부", field: "delYn", width: 150, cellClass: 'text-center', hide: true}
 	];
 	// 다른 다다익선 사용중인 중복상품 엑셀 리스트 설정
 	var columnDuplicateGoodsList = [
@@ -712,6 +717,7 @@
 			, supplyCompList : allSupplyCompData
 			, brandList : allBrandData
 			, applyGoodsList : allApplyGoodsData
+			, gridApplyGoodsList : allApplyGoodsData
 			, exceptGoodsList : allExceptGoodsData
 			, burdenList : allApplyBurdenData
 			, sectionGbList : allSectionGbData
@@ -828,7 +834,6 @@
 		gridAddGoodsList(gridOptionsFGExceptGoodsList, result , "except");
 	};
 
-
 	// ag-grid 상품관련 list 콜백함수
 	function gridAddGoodsList(OriginGridListOption, result, gubun) {
 		var goodsGbVal = "G800_10";
@@ -887,7 +892,10 @@
 		cfnOpenCompanyListPopup("fnSetPopupApplyBurdenInfo");
 	});
 
-	/*
+	// 할인구간 선택삭제 버튼 클릭시
+	$('#moreBetterForm #btnDelSectionRow').on('click', function() {
+		gridOptionsSectionGbList.api.updateRowData({remove:gagaAgGrid.selectedRowData(gridOptionsSectionGbList)});
+	});
     // 공급업체 설정 선택삭제 버튼 클릭시
     $('#moreBetterForm #btnDeleteCompany').on('click', function() {
         gridOptionsFGCompanyList.api.updateRowData({remove:gagaAgGrid.selectedRowData(gridOptionsFGCompanyList)});
@@ -908,7 +916,7 @@
     $('#moreBetterForm #btnDelApplyBurden').on('click', function() {
         gridOptionsApplyBurdenList.api.updateRowData({remove:gagaAgGrid.selectedRowData(gridOptionsApplyBurdenList)});
     });
-    */
+
 	//패널영역 줄이기
 	$(document).on("click",".panelControl .inner-fa-chevron-up", function() {
 		$(this).parent().parent().parent().find(".inner-panelContent").slideUp(100);
@@ -935,39 +943,6 @@
 		gagaAgGrid.addRowData(gridOptionsSectionGbList, data, "sectionVal");
 	});
 
-	// 구간할인 행삭제
-	$('#btnDelSectionRow').on('click', function() {
-		var selectedData = gridOptionsSectionGbList.api.getSelectedRows();
-		if (selectedData.length == 0) {
-			mcxDialog.alert('선택된 행이 없습니다.');
-			return;
-		}
-
-		var removedData = gagaAgGrid.removeRowData(gridOptionsSectionGbList, false);
-
-		var arrSectionSq = [];
-
-		$.each(selectedData, function(idx, item) {
-			arrSectionSq.push(item.tmtbSectionSq);
-		});
-
-		if (removedData.length > 0) {
-
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					var data = { arrSectionSq : arrSectionSq
-						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
-					};
-
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/morebetter/sectionVal/delete', jsonData);
-				}
-			});
-		}
-	});
-
 	// 할인구간 선택 시 기본 조건 변경
 	$("#moreBetterForm input[name=sectionGb]").bind('click change', function () {
 		var sectionGbValue = $(this).val();
@@ -1010,142 +985,6 @@
 		}
 	});
 
-	// 공급업체 행삭제
-	$('#btnDeleteCompany').on('click', function() {
-		var selectedData = gridOptionsFGCompanyList.api.getSelectedRows();
-		if (selectedData.length == 0) {
-			mcxDialog.alert('선택된 행이 없습니다.');
-			return;
-		}
-		var removedData = gagaAgGrid.removeRowData(gridOptionsFGCompanyList, false);
-		var arrCompanySq = [];
-		$.each(selectedData, function(idx, item) {
-			arrCompanySq.push(item.tmtbGoodsSq);
-		});
-		if (removedData.length > 0) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					var data = { arrCompanySq : arrCompanySq
-						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
-					};
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/morebetter/supplyCompany/delete', jsonData);
-				}
-			});
-		}
-	});
-
-	// 브랜드 행삭제
-	$('#btnDeleteBrand').on('click', function() {
-		var selectedData = gridOptionsFGBrandList.api.getSelectedRows();
-		if (selectedData.length == 0) {
-			mcxDialog.alert('선택된 행이 없습니다.');
-			return;
-		}
-		var removedData = gagaAgGrid.removeRowData(gridOptionsFGBrandList, false);
-		var arrBrandSq = [];
-		$.each(selectedData, function(idx, item) {
-			arrBrandSq.push(item.tmtbGoodsSq);
-		});
-		if (removedData.length > 0) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					var data = { arrBrandSq : arrBrandSq
-						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
-					};
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/morebetter/brand/delete', jsonData);
-				}
-			});
-		}
-	});
-
-	// 적용상품 행삭제
-	$('#btnDeleteApplyGoods').on('click', function() {
-		var selectedData = gridOptionsFGApplyGoodsList.api.getSelectedRows();
-		if (selectedData.length == 0) {
-			mcxDialog.alert('선택된 행이 없습니다.');
-			return;
-		}
-		var removedData = gagaAgGrid.removeRowData(gridOptionsFGApplyGoodsList, false);
-		var arrApplyGoodsSq = [];
-		$.each(selectedData, function(idx, item) {
-			arrApplyGoodsSq.push(item.tmtbGoodsSq);
-		});
-		if (removedData.length > 0) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					var data = { arrApplyGoodsSq : arrApplyGoodsSq
-						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
-					};
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/morebetter/applyGoods/delete', jsonData);
-				}
-			});
-		}
-	});
-
-	// 제외상품 행삭제
-	$('#btnDeleteExtGoods').on('click', function() {
-		var selectedData = gridOptionsFGExceptGoodsList.api.getSelectedRows();
-		if (selectedData.length == 0) {
-			mcxDialog.alert('선택된 행이 없습니다.');
-			return;
-		}
-		var removedData = gagaAgGrid.removeRowData(gridOptionsFGExceptGoodsList, false);
-		var arrExceptGoodsSq = [];
-		$.each(selectedData, function(idx, item) {
-			arrExceptGoodsSq.push(item.tmtbGoodsSq);
-		});
-		if (removedData.length > 0) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					var data = { arrExceptGoodsSq : arrExceptGoodsSq
-						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
-					};
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/morebetter/exceptGoods/delete', jsonData);
-				}
-			});
-		}
-	});
-
-	// 업체분담율 행삭제
-	$('#btnDelApplyBurden').on('click', function() {
-		var selectedData = gridOptionsApplyBurdenList.api.getSelectedRows();
-		if (selectedData.length == 0) {
-			mcxDialog.alert('선택된 행이 없습니다.');
-			return;
-		}
-		var removedData = gagaAgGrid.removeRowData(gridOptionsApplyBurdenList, false);
-		var arrBurdenSq = [];
-		$.each(selectedData, function(idx, item) {
-			arrBurdenSq.push(item.tmtbBurdenSq);
-		});
-		if (removedData.length > 0) {
-			mcxDialog.confirm('삭제하시겠습니까?', {
-				cancelBtnText: "취소",
-				sureBtnText: "확인",
-				sureBtnClick: function(){
-					var data = { arrBurdenSq : arrBurdenSq
-						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
-					};
-					var jsonData = JSON.stringify(data);
-					gagajf.ajaxJsonSubmit('/marketing/morebetter/burden/delete', jsonData);
-				}
-			});
-		}
-	});
-
-
 	// 수정 버튼 클릭시
 	$('#btnMorebetterUpdate').on('click', function() {
 		// validation
@@ -1293,6 +1132,7 @@
 						, supplyCompList : allSupplyCompData
 						, brandList : allBrandData
 						, applyGoodsList : allApplyGoodsData
+						, gridApplyGoodsList : allApplyGoodsData
 						, exceptGoodsList : allExceptGoodsData
 						, burdenList : allApplyBurdenData
 						, sectionGbList : allSectionGbData
@@ -1309,7 +1149,6 @@
 	});
 
 	var fnMorebetterChangeStatCollback = function(result){
-		console.log('<fnMorebetterChangeStatCollback result>');
 		if(result.duplicateYn == "Y"){
 			for(let i=0; i<result.duplicateGoodsList.length; i++){
 				gagaAgGrid.addRowData(gridOptionsDuplicateGoodsList, {"goodsCd" : result.duplicateGoodsList[i].goodsCd, "goodsNm" : result.duplicateGoodsList[i].goodsNm});
@@ -1358,7 +1197,175 @@
 		});
 	});
 
+/*
+	// 공급업체 행삭제
+	$('#btnDeleteCompany').on('click', function() {
+		var selectedData = gridOptionsFGCompanyList.api.getSelectedRows();
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 행이 없습니다.');
+			return;
+		}
+		var removedData = gagaAgGrid.removeRowData(gridOptionsFGCompanyList, false);
+		var arrCompanySq = [];
+		$.each(selectedData, function(idx, item) {
+			arrCompanySq.push(item.tmtbGoodsSq);
+		});
+		if (removedData.length > 0) {
+			mcxDialog.confirm('삭제하시겠습니까?', {
+				cancelBtnText: "취소",
+				sureBtnText: "확인",
+				sureBtnClick: function(){
+					var data = { arrCompanySq : arrCompanySq
+						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
+					};
+					var jsonData = JSON.stringify(data);
+					gagajf.ajaxJsonSubmit('/marketing/morebetter/supplyCompany/delete', jsonData);
+				}
+			});
+		}
+	});
+
+	// 브랜드 행삭제
+	$('#btnDeleteBrand').on('click', function() {
+		var selectedData = gridOptionsFGBrandList.api.getSelectedRows();
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 행이 없습니다.');
+			return;
+		}
+		var removedData = gagaAgGrid.removeRowData(gridOptionsFGBrandList, false);
+		var arrBrandSq = [];
+		$.each(selectedData, function(idx, item) {
+			arrBrandSq.push(item.tmtbGoodsSq);
+		});
+		if (removedData.length > 0) {
+			mcxDialog.confirm('삭제하시겠습니까?', {
+				cancelBtnText: "취소",
+				sureBtnText: "확인",
+				sureBtnClick: function(){
+					var data = { arrBrandSq : arrBrandSq
+						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
+					};
+					var jsonData = JSON.stringify(data);
+					gagajf.ajaxJsonSubmit('/marketing/morebetter/brand/delete', jsonData);
+				}
+			});
+		}
+	});
+
+	// 적용상품 행삭제
+	$('#btnDeleteApplyGoods').on('click', function() {
+		var selectedData = gridOptionsFGApplyGoodsList.api.getSelectedRows();
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 행이 없습니다.');
+			return;
+		}
+		var removedData = gagaAgGrid.removeRowData(gridOptionsFGApplyGoodsList, false);
+		var arrApplyGoodsSq = [];
+		$.each(selectedData, function(idx, item) {
+			arrApplyGoodsSq.push(item.tmtbGoodsSq);
+		});
+		if (removedData.length > 0) {
+			mcxDialog.confirm('삭제하시겠습니까?', {
+				cancelBtnText: "취소",
+				sureBtnText: "확인",
+				sureBtnClick: function(){
+					var data = { arrApplyGoodsSq : arrApplyGoodsSq
+						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
+					};
+					var jsonData = JSON.stringify(data);
+					gagajf.ajaxJsonSubmit('/marketing/morebetter/applyGoods/delete', jsonData);
+				}
+			});
+		}
+	});
+
+	// 제외상품 행삭제
+	$('#btnDeleteExtGoods').on('click', function() {
+		var selectedData = gridOptionsFGExceptGoodsList.api.getSelectedRows();
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 행이 없습니다.');
+			return;
+		}
+		var removedData = gagaAgGrid.removeRowData(gridOptionsFGExceptGoodsList, false);
+		var arrExceptGoodsSq = [];
+		$.each(selectedData, function(idx, item) {
+			arrExceptGoodsSq.push(item.tmtbGoodsSq);
+		});
+		if (removedData.length > 0) {
+			mcxDialog.confirm('삭제하시겠습니까?', {
+				cancelBtnText: "취소",
+				sureBtnText: "확인",
+				sureBtnClick: function(){
+					var data = { arrExceptGoodsSq : arrExceptGoodsSq
+						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
+					};
+					var jsonData = JSON.stringify(data);
+					gagajf.ajaxJsonSubmit('/marketing/morebetter/exceptGoods/delete', jsonData);
+				}
+			});
+		}
+	});
+
+	// 업체분담율 행삭제
+	$('#btnDelApplyBurden').on('click', function() {
+		var selectedData = gridOptionsApplyBurdenList.api.getSelectedRows();
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 행이 없습니다.');
+			return;
+		}
+		var removedData = gagaAgGrid.removeRowData(gridOptionsApplyBurdenList, false);
+		var arrBurdenSq = [];
+		$.each(selectedData, function(idx, item) {
+			arrBurdenSq.push(item.tmtbBurdenSq);
+		});
+		if (removedData.length > 0) {
+			mcxDialog.confirm('삭제하시겠습니까?', {
+				cancelBtnText: "취소",
+				sureBtnText: "확인",
+				sureBtnClick: function(){
+					var data = { arrBurdenSq : arrBurdenSq
+						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
+					};
+					var jsonData = JSON.stringify(data);
+					gagajf.ajaxJsonSubmit('/marketing/morebetter/burden/delete', jsonData);
+				}
+			});
+		}
+	});
+*/
+
+	// 구간할인 행삭제
+	/*$('#btnDelSectionRow').on('click', function() {
+		var selectedData = gridOptionsSectionGbList.api.getSelectedRows();
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 행이 없습니다.');
+			return;
+		}
+
+		var removedData = gagaAgGrid.removeRowData(gridOptionsSectionGbList, false);
+
+		var arrSectionSq = [];
+
+		$.each(selectedData, function(idx, item) {
+			arrSectionSq.push(item.tmtbSectionSq);
+		});
 
+		if (removedData.length > 0) {
+
+			mcxDialog.confirm('삭제하시겠습니까?', {
+				cancelBtnText: "취소",
+				sureBtnText: "확인",
+				sureBtnClick: function(){
+					var data = { arrSectionSq : arrSectionSq
+						,tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
+					};
+
+					var jsonData = JSON.stringify(data);
+					gagajf.ajaxJsonSubmit('/marketing/morebetter/sectionVal/delete', jsonData);
+				}
+			});
+		}
+	});*/
 
 </script>
 </html>