Преглед изворни кода

최수빈-0107 다다익선 화면 중간 커밋

bin2107 пре 5 година
родитељ
комит
9a93029f62

+ 9 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaMarketingDao.java

@@ -68,6 +68,15 @@ public interface TsaMarketingDao {
 	 */
 	void saveMorebetterMst(MoreBetter tmtb);
 
+	/**
+	 * 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
+	 * @param MoreBetter
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 7
+	 */
+	void saveMorebetterGoods(MoreBetterGoods regSupplyComp);
+
 	/**
 	 * 다다익선 할인구간설정 2차조건(TB_TMTB_SECTION) 저장
 	 * @param MoreBetter

+ 68 - 8
style24.admin/src/main/java/com/style24/admin/biz/service/TsaMarketingService.java

@@ -138,24 +138,86 @@ public class TsaMarketingService {
 		tmtb.setRegNo(TsaSession.getInfo().getUserNo());
 		tmtb.setUdpNo(TsaSession.getInfo().getUserNo());
 
-
 		// TMTB 마스터(TB_TMTB) 저장
 		marketingDao.saveMorebetterMst(tmtb);
 
+		// 다다익선 적용대상 설정
+		// 공급업체
+		Collection<MoreBetterGoods> supplyCompList = tmtb.getSupplyCompListNew();
+		for(MoreBetterGoods regSupplyComp : supplyCompList){
+			// 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
+			// tmtbGoodsSq 생성
+			Integer tmtbGoodsSq =  commonService.getNextSequence("SEQ_TMTB_GOODS");
+			regSupplyComp.setTmtbGoodsSq(tmtbGoodsSq);
+			regSupplyComp.setTmtbSq(tmtb.getTmtbSq());
+			regSupplyComp.setGoodsGb("G800_20");
+			regSupplyComp.setTargetVal(regSupplyComp.getSupplyCompCd());
+			regSupplyComp.setRegNo(tmtb.getRegNo());
+			regSupplyComp.setUdpNo(tmtb.getUdpNo());
+
+			marketingDao.saveMorebetterGoods(regSupplyComp);
+		}
+
+		// 브랜드
+		Collection<MoreBetterGoods> brandList = tmtb.getBrandListNew();
+		for(MoreBetterGoods regBrand : brandList){
+			// 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
+			// tmtbGoodsSq 생성
+			Integer tmtbGoodsSq =  commonService.getNextSequence("SEQ_TMTB_GOODS");
+			regBrand.setTmtbGoodsSq(tmtbGoodsSq);
+			regBrand.setTmtbSq(tmtb.getTmtbSq());
+			regBrand.setGoodsGb("G800_20");
+			regBrand.setTargetVal(regBrand.getBrandCd());
+			regBrand.setRegNo(tmtb.getRegNo());
+			regBrand.setUdpNo(tmtb.getUdpNo());
+
+			marketingDao.saveMorebetterGoods(regBrand);
+		}
+
+		// 적용상품
+		Collection<MoreBetterGoods> applyGoodsList = tmtb.getApplyGoodsListNew();
+		for(MoreBetterGoods regApplyGoods : applyGoodsList){
+			// 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
+			// tmtbGoodsSq 생성
+			Integer tmtbGoodsSq =  commonService.getNextSequence("SEQ_TMTB_GOODS");
+			regApplyGoods.setTmtbGoodsSq(tmtbGoodsSq);
+			regApplyGoods.setTmtbSq(tmtb.getTmtbSq());
+			regApplyGoods.setTargetVal(regApplyGoods.getGoodsCd());
+			regApplyGoods.setRegNo(tmtb.getRegNo());
+			regApplyGoods.setUdpNo(tmtb.getUdpNo());
+
+			marketingDao.saveMorebetterGoods(regApplyGoods);
+		}
+
+		// 제외상품
+		Collection<MoreBetterGoods> exceptGoodsList = tmtb.getExceptGoodsListNew();
+		for(MoreBetterGoods regExceptGoods : exceptGoodsList){
+			// 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
+			// tmtbGoodsSq 생성
+			Integer tmtbGoodsSq =  commonService.getNextSequence("SEQ_TMTB_GOODS");
+			regExceptGoods.setTmtbGoodsSq(tmtbGoodsSq);
+			regExceptGoods.setTmtbSq(tmtb.getTmtbSq());
+			regExceptGoods.setTargetVal(regExceptGoods.getGoodsCd());
+			regExceptGoods.setRegNo(tmtb.getRegNo());
+			regExceptGoods.setUdpNo(tmtb.getUdpNo());
+
+			marketingDao.saveMorebetterGoods(regExceptGoods);
+		}
+
 		// 다다익선 할인구간 저장
 		Collection<MoreBetterSection> sectionGbList = tmtb.getSectionGbListNew();
 		for(MoreBetterSection regSection : sectionGbList){
 			// 다다익선 할인구간설정 2차조건(TB_TMTB_SECTION) 저장
 			// tmtbSectionSq 생성
 			Integer tmtbSectionSq =  commonService.getNextSequence("SEQ_TMTB_SECTION");
-			regSection.setTbTmtbSectionSq(tmtbSectionSq);
+			regSection.setTmtbSectionSq(tmtbSectionSq);
 
 			// 다다익선 조건에 따른 할인혜택(금액할인) 설정(TB_TMTB_VAL) 저장
 			// tmtbValSq 생성
 			Integer tmtbValSq =  commonService.getNextSequence("SEQ_TMTB_VAL");
-			regSection.setTbTmtbValSq(tmtbValSq);
+			regSection.setTmtbValSq(tmtbValSq);
 			regSection.setTmtbSq(tmtb.getTmtbSq());
-			regSection.setRegNo(tmtb.getRegNo());//udpNo UdpNo
+			regSection.setRegNo(tmtb.getRegNo());
 			regSection.setUdpNo(tmtb.getUdpNo());
 
 			marketingDao.saveMorebetterSection(regSection);
@@ -167,13 +229,11 @@ public class TsaMarketingService {
 		for (MoreBetterBurden regBurden : burdenList) {
 			// tmtbBurdenSq 생성
 			Integer tmtbBurdenSq =  commonService.getNextSequence("SEQ_TMTB_BURDEN");
-			regBurden.setTbTmtbBurdenSq(tmtbBurdenSq);
+			regBurden.setTmtbBurdenSq(tmtbBurdenSq);
 			regBurden.setTmtbSq(tmtb.getTmtbSq());
-			regBurden.setRegNo(tmtb.getRegNo());//udpNo UdpNo
+			regBurden.setRegNo(tmtb.getRegNo());
 			regBurden.setUdpNo(tmtb.getUdpNo());
 
-			log.info("MoreBetterBurden regBurden ::" +regBurden);
-
 			marketingDao.saveMorebetterBurden(regBurden);
 		}
 

+ 39 - 18
style24.admin/src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -295,7 +295,16 @@ public class TsaMarketingController extends TsaBaseController {
 		mav.addObject("dcWayList", rendererService.getAvailCommonCodeList("G240"));
 		log.info("CHECK param dcWayList>>"+rendererService.getAvailCommonCodeList("G240"));
 
+		// 적용 상품구분 목록
+		String[] exceptGoodsCds = {"G800_30","G800_40"};
+		mav.addObject("applyGoodsGbList", rendererService.getCommonCodeList("G800", "Y", exceptGoodsCds));
+		log.info("CHECK param applyGoodsGbList>>"+rendererService.getCommonCodeList("G800", "Y", exceptGoodsCds));
 
+		// 제외 상품구분 목록
+		mav.addObject("exceptGoodsGbList", rendererService.getAvailCommonCodeList("G800"));
+		log.info("CHECK param exceptGoodsGbList>>"+rendererService.getAvailCommonCodeList("G800"));
+
+		// 이것도 리스트 받아와서 바꿔야함 ㅠㅠ
 		String tmtbStat = "G232_10";
 		tmtb.setTmtbStat(tmtbStat);
 
@@ -321,43 +330,59 @@ public class TsaMarketingController extends TsaBaseController {
 	@PostMapping("/morebetter/save")
 	@ResponseBody
 	public GagaResponse saveMorebetterDetail(@RequestBody MoreBetter tmtb) {
-		Collection<MoreBetterGoods> tmtbCompList = null;
+		Collection<MoreBetterGoods> tmtbSupplyCompList = null;
 		Collection<MoreBetterGoods> tmtbBrandList = null;
+		Collection<MoreBetterGoods> tmtbApplyGoodsList = null;
+		Collection<MoreBetterGoods> tmtbExceptGoodsList = null;
 		Collection<MoreBetterBurden> tmtbBurdenList = null;
 		Collection<MoreBetterSection> tmtbSectionGbList = null;
 		ObjectMapper mapper = new ObjectMapper();
 
-		/*
 		// 공급업체
 		try {
 			if (tmtb.getSupplyCompList() != null) {
-				tmtbCompList = mapper.readValue(tmtb.getSupplyCompList(), new TypeReference<Collection<MoreBetterComp>>() {
+				tmtbSupplyCompList = mapper.readValue(tmtb.getSupplyCompList(), new TypeReference<Collection<MoreBetterGoods>>() {
 				});
 			}
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
-		*/
-/*
+
 		// 브랜드
 		try {
 			if (tmtb.getBrandList() != null) {
-				tmtbBrandList = mapper.readValue(tmtb.getBrandList(), new TypeReference<Collection<MoreBetterBrand>>() {
+				tmtbBrandList = mapper.readValue(tmtb.getBrandList(), new TypeReference<Collection<MoreBetterGoods>>() {
+				});
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		// 적용상품
+		try {
+			if (tmtb.getApplyGoodsList() != null) {
+				tmtbApplyGoodsList = mapper.readValue(tmtb.getApplyGoodsList(), new TypeReference<Collection<MoreBetterGoods>>() {
 				});
 			}
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
-*/
+		// 적용상품
+		try {
+			if (tmtb.getExceptGoodsList() != null) {
+				tmtbExceptGoodsList = mapper.readValue(tmtb.getExceptGoodsList(), new TypeReference<Collection<MoreBetterGoods>>() {
+				});
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
 		// 할인구간
 		try {
 			if (tmtb.getSectionGbList() != null) {
-				log.info("getSectionGbList here1");
 				tmtbSectionGbList = mapper.readValue(tmtb.getSectionGbList(), new TypeReference<Collection<MoreBetterSection>>() {
 				});
-				log.info("getSectionGbList here2");
 			}
-			log.info("getSectionGbList here123");
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -365,23 +390,19 @@ public class TsaMarketingController extends TsaBaseController {
 		// 업체분담율
 		try {
 			if (tmtb.getBurdenList() != null) {
-				log.info("here1");
 				tmtbBurdenList = mapper.readValue(tmtb.getBurdenList(), new TypeReference<Collection<MoreBetterBurden>>() {
 				});
-				log.info("here2");
 			}
-			log.info("here123");
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
 
 		log.info("tmtb::"+tmtb);
 
-		// html에서 SectionVal -> DcVal 안되서...여기서 set 왜지..?
-		//tmtb.setDcVal(tmtb.getSectionVal());
-
-		//tmtb.setSupplyCompListNew(tmtbCompList);
-		//tmtb.setBrandListNew(tmtbBrandList);
+		tmtb.setSupplyCompListNew(tmtbSupplyCompList);
+		tmtb.setBrandListNew(tmtbBrandList);
+		tmtb.setApplyGoodsListNew(tmtbApplyGoodsList);
+		tmtb.setExceptGoodsListNew(tmtbExceptGoodsList);
 		tmtb.setSectionGbListNew(tmtbSectionGbList);
 		tmtb.setBurdenListNew(tmtbBurdenList);
 

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

@@ -31,6 +31,17 @@ public class MoreBetter extends TscBaseDomain {
 	private String searchTxt;		// 프로모션 검색 조건
 	private String gbn;				// 팝업 구분 : C=등록, U=수정
 
+	// 공급업체
+	private String supplyCompCd;
+	private String supplyCompNm;
+	private String targetGb;
+
+	// 브랜드
+	private String brandCd;
+	private String brandEnm;
+
+	// 상품
+
 	// 다다익선 할인구간설정 2차조건(TB_TMTB_SECTION)
 	private int tmtbSectionSq;		// 다다익선 할인구간 시퀀스
 	private String sectionGb;		// 구간설정 구분값(G810_10:수량,G810_11:금액)
@@ -42,7 +53,7 @@ public class MoreBetter extends TscBaseDomain {
 	private int dcVal;				// 할인값
 
 	// 다다익선 업체분담율(TB_TMTB_BURDEN)
-	private int tbTmtbBurdenSq;		// 업체분담율Sq
+	private int tmtbBurdenSq;		// 업체분담율Sq
 	private String tmtbSupplyCd;	// 업체코드
 	private String tmtbBurdenRate;	// 업체분담율
 	//private String burdenRate;	// 업체분담율

+ 1 - 1
style24.admin/src/main/java/com/style24/persistence/domain/MoreBetterBurden.java

@@ -13,7 +13,7 @@ import lombok.Data;
 @Data
 public class MoreBetterBurden extends TscBaseDomain {
 	// 다다익선 업체 분담율
-	private Integer tbTmtbBurdenSq;		// 업체분담율Sq
+	private Integer tmtbBurdenSq;		// 업체분담율Sq
 	private Integer tmtbSq;				// 프로모션Sq
 	private String tmtbSupplyCd;	// 업체코드
 	private String tmtbBurdenRate;	// 업체분담율

+ 9 - 64
style24.admin/src/main/java/com/style24/persistence/domain/MoreBetterGoods.java

@@ -16,77 +16,22 @@ import java.util.Collection;
 @Data
 public class MoreBetterGoods extends TscBaseDomain {
 	// 다다익선 적용대상
-	private int tbTmtbGoodsSq;		// 업체분담율Sq
+	private int tmtbGoodsSq;		// 업체분담율Sq
 	private int tmtbSq;				// 프로모션Sq
-	private String goodsGb;
-	private String targetGb;
-	private String targetVal;
-	private String delYn;
+	private String goodsGb;			// 공통코드 (G800_10|기본상품, G800_20|적용상품, G800_30|제외상품, G800_40|ALL)
+	private String targetGb;		// 적용대상 (G260_10|상품, G260_12|브랜드, G260_13|공급처)
+	private String targetVal;		// 브랜드코드, 상품코드, 공급처코드
+	private String delYn;			// 삭제여부
 	private Integer regNo;			// 등록자
 	private String  regDt;			// 등록일시
 	private Integer udpNo;			// 수정자
 	private String  udtDt;			// 수정일시
 
-	// 공급업체
 	private String supplyCompCd;
 	private String supplyCompNm;
-	private int provierNo;
-	private String bizGb;				// 사업자구분
-	private String bizNo;				// 사업자번호
-	private String bizKind;				// 업종
-	private String bizType;				// 업태
-	private String ownerNm;				// 대표자명
-	private String bizZipcode;			// 사업장우편번호
-	private String bizBaseAddr;			// 사업장기본주소
-	private String bizDtlAddr;			// 사업장상세주소
-	private String mainTelno;			// 대표전화번호
-	private String mainFaxno;			// 대표팩스번호
-	private String homepageUrl;			// 홈페이지URL
-	private String selfYn;				// 자사여부(Y:자사, N:입점)
-	private String distributionGb;		// 유통구분(공통코드G065)
-	private String shotDelvYn;			// 총알배송여부
-	private String supplyStat;			// 입점상태(공통코드G010)
-	private int minOrdAmt;				// 무료배송비최소주문금액
-	private int delvFee;				// 배송비
-	private float sellFeeRate;			// 판매수수료율
-	private String settleDay;			// 정산일(매월)
-	private String bankCd;				// 은행코드
-	private String accountNo;			// 계좌번호
-	private String depositorNm;			// 예금주명
-	private String csChargeNm;			// CS담당자명
-	private String csChargeTelno;		// CS담당자전화번호
-	private String settleChargeNm;		// 정산담당자명
-	private String settleChargeTelno;	// 정산담당자전화번호
-	private String settleChargeEmail;	// 정산담당자이메일
-	private String billEmail;			// 계산서이메일
-	private String econtractYn;			// 전자계약여부
-	private String remarks;				// 비고
-	private String supplyStatNm;		// 입점상태명
+	private String brandCd;
+	private String brandEnm;
+	private String goodsCd;
+	private String goodsNm;
 
-	// 브랜드
-	private String brandGb;			// 브랜드구분
-	private String brandCd;			// 브랜드코드
-	private String brandEnm;		// 브랜드영문명
-	private String brandKnm;		// 브랜드한글명
-	private String dispNmLang;		// 노출명언어
-	private String rgbCd;			// RGB코드(front 브랜드메인 GNB 색상)
-	private String brandGrpNm;		// 브랜드그룹명
-	private String delvLocCd;		// 출고처코드(출고처)
-	private String delvLocNm;		// 출고처명
-	private String erpBrandCd;		// ERP브랜드코드
-	private String delvFeeCd;		// 배송비정책코드
-	private float pntPrate10;		// 포인트적립율(PC정상)
-	private float pntMrate10;		// 포인트적립율(모바일정상)
-	private float pntPrate20;		// 포인트적립율(PC이월)
-	private float pntMrate20;		// 포인트적립율(모바일이월)
-	private String logoFileNm;		// 로고파일명
-	private int dispOrd;			// 표시순서
-	private String useYn;			// 사용여부(Y:사용)
-	private int brandNo;			// 브랜드번호(WMS 연동용)
-	private String newSysFileNm;	//신규이미지파일명
-
-	// 검색조건
-	private String searchGb;			// 검색구분
-	private String searchTxt;			// 검색어
-	private String callbackFn;			// 콜백함수
 }

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

@@ -14,8 +14,8 @@ import lombok.Data;
 public class MoreBetterSection extends TscBaseDomain {
 	// 다다익선 상품
 	private Integer tmtbSq;
-	private Integer tbTmtbSectionSq;	// 업체분담율Sq
-	private Integer tbTmtbValSq;		// 업체분담율Sq
+	private Integer tmtbSectionSq;	// 업체분담율Sq
+	private Integer tmtbValSq;		// 업체분담율Sq
 
 	private String  sectionGb;		// 구간설정구분값(G810_10:수량,G810_11:금액)
 	private Integer sectionVal;		// 구간설정값/구간할인시작(수량이상,금액이상)

+ 32 - 4
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaMarketing.xml

@@ -195,6 +195,34 @@
 				   )
 	</insert>
 
+	<insert id="saveMorebetterGoods" parameterType="MoreBetterGoods" >
+		/* TsaMarketing.saveMorebetterGoods */
+		INSERT INTO TB_TMTB_GOODS(
+		         	 TMTB_GOODS_SQ
+		        	,TMTB_SQ
+					,GOODS_GB
+					,TARGET_GB
+					,TARGET_VAL
+					,DEL_YN
+					,REG_NO
+					,REG_DT
+					,UDP_NO
+					,UDT_DT
+			)
+			VALUES (
+			         #{tmtbGoodsSq}
+			        ,#{tmtbSq}
+				    ,#{goodsGb}
+				    ,#{targetGb}
+				    ,#{targetVal}
+				    ,'N'
+				    ,#{regNo}
+				    ,NOW()
+				    ,#{udpNo}
+				    ,NOW()
+				   )
+	</insert>
+
 	<insert id="saveMorebetterSection" parameterType="MoreBetterSection" >
 		/* TsaMarketing.saveMorebetterSection */
 		INSERT INTO TB_TMTB_SECTION(
@@ -209,7 +237,7 @@
 					,UDT_DT
 			)
 			VALUES (
-					 #{tbTmtbSectionSq}
+					 #{tmtbSectionSq}
 					,#{tmtbSq}
 					,#{sectionGb}
 				    ,#{sectionVal}
@@ -236,9 +264,9 @@
 					,UDT_DT
 			)
 			VALUES (
-					#{tbTmtbValSq}
+					#{tmtbValSq}
 				   ,#{tmtbSq}
-				   ,#{tbTmtbSectionSq}
+				   ,#{tmtbSectionSq}
 				   ,#{dcWay}
 				   ,#{dcVal}
 				   ,'N'
@@ -263,7 +291,7 @@
 					,UDT_DT
 			)
 			VALUES (
-			         #{tbTmtbBurdenSq}
+			         #{tmtbBurdenSq}
 			        ,#{tmtbSq}
 			        ,#{tmtbSupplyCd}
 			        ,#{tmtbBurdenRate}

+ 48 - 22
style24.admin/src/main/webapp/WEB-INF/views/marketing/MorebetterRegForm.html

@@ -290,37 +290,51 @@
 		var FGAddGoodsStatList = gagajf.convertToArray([[${goodsStatList}]]);		// 상품 상태 리스트
 		var sectionGbList = gagajf.convertToArray([[${sectionGbList}]]);	// 할인구간 리스트
 		var dcWayList = gagajf.convertToArray([[${dcWayList}]]);	// 할인구분 리스트
+		var applyGoodsGbList = gagajf.convertToArray([[${applyGoodsGbList}]]);	// 적용 상품구분 목록
+		var exceptGoodsGbList = gagajf.convertToArray([[${exceptGoodsGbList}]]);	// 제외 상품구분 목록
 
 		// 공급업체 리스트 설정
 		var columnFGCompanyList = [
 			{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
 			{headerName: "공급처ID", field: "supplyCompCd", width: 120, cellClass: 'text-center'},
-			{headerName: "공급업체명", field: "supplyCompNm", width: 150, cellClass: 'text-center'}
+			{headerName: "공급업체명", field: "supplyCompNm", width: 150, cellClass: 'text-center'},
+			{headerName: "적용대상", field: "targetGb", width: 150, cellClass: 'text-center'}
 		];
 		// 브랜드 리스트 설정
 		var columnBrandList = [
 			{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: 150, cellClass: 'text-center'}
+			{headerName: "브랜드명", field: "brandEnm", width: 120, cellClass: 'text-center'},
+			{headerName: "공급업체명", field: "supplyCompNm", width: 150, cellClass: 'text-center'},
+			{headerName: "적용대상", field: "targetGb", width: 150, cellClass: 'text-center'}
 		];
 		// 적용상품 리스트 설정
 		var columnApplyGoodsList = [
 			{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+			{headerName: "상품구분", field: "goodsGb", width: 100, cellClass: 'text-center',
+				cellEditor: 'agRichSelectCellEditor',
+				cellEditorParams: { values: gagaAgGrid.extractValues(applyGoodsGbList), required: true },
+				valueFormatter: function (params) { return gagaAgGrid.lookupValue(applyGoodsGbList, params.value); },
+				valueParser: function (params) { return gagaAgGrid.lookupKey(applyGoodsGbList, params.newValue); }
+			},
+			//{headerName: "상품구분", field: "goodsGb", width: 120, cellClass: 'text-center'},
 			{headerName: "Product ID", field: "goodsCd", width: 120, cellClass: 'text-center'},
-			{headerName: "브랜드명", field: "brandEnm", width: 150, cellClass: 'text-center'},
 			{headerName: "상품명", field: "goodsNm", width: 120, cellClass: 'text-center'},
-			{headerName: "판매상태", field: "goodsStat" , width: 120, cellClass: 'text-center',
-				cellEditorParams: { values: gagaAgGrid.extractValues(FGAddGoodsStatList) },
-				valueFormatter: function (params) { return gagaAgGrid.lookupValue(FGAddGoodsStatList, params.value); },
-				valueParser: function (params) { return gagaAgGrid.lookupKey(FGAddGoodsStatList, params.newValue); }
-			},
-			{headerName: "정상가", field: "listPrice", width: 120, cellClass: 'text-center', valueFormatter: function(params) {return params.value.addComma();}},
-			{headerName: "판매가", field: "currPrice", width: 120, cellClass: 'text-center', valueFormatter: function(params) {return params.value.addComma();}}
+			{headerName: "적용대상", field: "targetGb", width: 150, cellClass: 'text-center'}
 		];
 		// 제외상품 리스트 설정
 		var columnExceptGoodsList = [
 			{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+			{headerName: "상품구분", field: "goodsGb", width: 100, cellClass: 'text-center',
+				cellEditor: 'agRichSelectCellEditor',
+				cellEditorParams: { values: gagaAgGrid.extractValues(exceptGoodsGbList), required: true },
+				valueFormatter: function (params) { return gagaAgGrid.lookupValue(exceptGoodsGbList, params.value); },
+				valueParser: function (params) { return gagaAgGrid.lookupKey(exceptGoodsGbList, params.newValue); }
+			},
 			{headerName: "Product ID", field: "goodsCd", width: 120, cellClass: 'text-center'},
+			{headerName: "상품명", field: "goodsNm", width: 120, cellClass: 'text-center'},
+			{headerName: "적용대상", field: "targetGb", width: 150, cellClass: 'text-center'}
+			/*{headerName: "Product ID", field: "goodsCd", width: 120, cellClass: 'text-center'},
 			{headerName: "브랜드명", field: "brandEnm", width: 150, cellClass: 'text-center'},
 			{headerName: "상품명", field: "goodsNm", width: 120, cellClass: 'text-center'},
 			{headerName: "판매상태", field: "goodsStat" , width: 120, cellClass: 'text-center',
@@ -329,7 +343,8 @@
 				valueParser: function (params) { return gagaAgGrid.lookupKey(FGAddGoodsStatList, params.newValue); }
 			},
 			{headerName: "정상가", field: "listPrice", width: 120, cellClass: 'text-center',valueFormatter: function(params) {return params.value.addComma();}},
-			{headerName: "판매가", field: "currPrice", width: 120, cellClass: 'text-center',valueFormatter: function(params) {return params.value.addComma();}}
+			{headerName: "판매가", field: "currPrice", width: 120, cellClass: 'text-center',valueFormatter: function(params) {return params.value.addComma();}},
+			{headerName: "적용대상", field: "targetGb", width: 150, cellClass: 'text-center'}*/
 		];
 
 		// 업체분담율 리스트 설정
@@ -375,6 +390,8 @@
 		gridOptionsFGBrandList.rowSelection = "multiple";
 		// 적용상품 리스트 설정
 		var gridOptionsFGApplyGoodsList = gagaAgGrid.getGridOptions(columnApplyGoodsList);
+		// Grid editable
+		gridOptionsFGApplyGoodsList.defaultColDef.editable = true;
 		gridOptionsFGApplyGoodsList.rowSelection = "multiple";
 		// 제외상품 리스트 설정
 		var gridOptionsFGExceptGoodsList = gagaAgGrid.getGridOptions(columnExceptGoodsList);
@@ -404,7 +421,6 @@
 
 		// 저장 버튼 클릭시
 		$('#btnMorebetterSave').on('click', function() {
-			console.log('save 1818');
 			// 각 ag-grid list 수량
 			let supplyCompCnt = gagaAgGrid.getAllRowData(gridOptionsFGCompanyList).length;
 			let brandCnt = gagaAgGrid.getAllRowData(gridOptionsFGBrandList).length;
@@ -520,7 +536,9 @@
 				}
 
 				// 중복되지 않은 데이터 리스트에 추가
-				if(addChk) {	gagaAgGrid.addRowData(gridOptionsFGCompanyList, result[i], "supplyCompCd");	}
+				if(addChk) {
+					gagaAgGrid.addRowData(gridOptionsFGCompanyList, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm, "targetGb" : "G260_13"});
+				}
 			}
 		};
 
@@ -535,7 +553,9 @@
 				}
 
 				// 중복되지 않은 데이터 리스트에 추가
-				if(addChk) {	gagaAgGrid.addRowData(gridOptionsFGBrandList, result[i], "brandCd");	}
+				if(addChk) {
+					gagaAgGrid.addRowData(gridOptionsFGBrandList, {"brandCd" : result[i].brandCd, "brandEnm" : result[i].brandEnm, "supplyCompNm" : result[i].supplyCompNm, "targetGb" : "G260_12"});
+				}
 			}
 		};
 
@@ -543,12 +563,12 @@
 		var fnSetPopupApplyBurdenInfo = function(result) {
 			// 기존 리스트 데이터 for
 			for(let i = 0 ; i < result.length ; i++) {
-				console.log('old i::'+i+"::"+result[i].supplyCompCd);
+				//console.log('old i::'+i+"::"+result[i].supplyCompCd);
 				let addChk = true, gridListValue = gagaAgGrid.getAllRowData(gridOptionsApplyBurdenList);		// 받아온 모든 데이터
 
 				// 받아온 data for
 				for(let j = 0 ; j < gridListValue.length ; j++) {
-					console.log('new add j::'+j+":supplyCompCd:"+gridListValue[j].tmtbSupplyCd);
+					//console.log('new add j::'+j+":supplyCompCd:"+gridListValue[j].tmtbSupplyCd);
 					// 동일한 data는 추가하지 않음
 					if(gridListValue[j].tmtbSupplyCd == result[i].supplyCompCd) {	addChk = false;	}		// 중복체크
 				}
@@ -556,8 +576,6 @@
 				// 중복되지 않은 데이터 리스트에 추가
 				if(addChk) {
 					//gagaAgGrid.addRowData(gridOptionsApplyBurdenList, result[i], "tmtbSupplyCd");
-					console.log('add compCd>>'+result[i].supplyCompCd);
-					console.log('add useYn>>'+result[i].useYn);
 					gagaAgGrid.addRowData(gridOptionsApplyBurdenList, {"tmtbSupplyCd" : result[i].supplyCompCd, "useYn" : result[i].useYn});
 				}
 			}
@@ -565,17 +583,22 @@
 
 		// 적용 상품 리스트 콜백함수
 		var fnSetPopupApplyGoodsInfo = function(result) {
-			gridAddGoodsList(gridOptionsFGApplyGoodsList, result);
+			gridAddGoodsList(gridOptionsFGApplyGoodsList, result , "apply");
 		};
 
 		// 제외 상품 리스트 콜백함수
 		var fnSetPopupExceptGoodsInfo = function(result) {
-			gridAddGoodsList(gridOptionsFGExceptGoodsList, result);
+			gridAddGoodsList(gridOptionsFGExceptGoodsList, result , "except");
 		};
 
 
 		// ag-grid 상품관련 list 콜백함수
-		function gridAddGoodsList(OriginGridListOption, result) {
+		function gridAddGoodsList(OriginGridListOption, result, gubun) {
+			var goodsGbVal = "G800_10";
+			if(gubun == 'except'){
+				goodsGbVal = "G800_30";
+			}
+
 			for(let i = 0 ; i < result.length ; i++) {
 				let addChk = true, gridListValue = gagaAgGrid.getAllRowData(OriginGridListOption);		// 받아온 모든 데이터
 
@@ -585,7 +608,10 @@
 				}
 
 				// 중복되지 않은 데이터 리스트에 추가
-				if(addChk) {	gagaAgGrid.addRowData(OriginGridListOption, result[i], "goodsCd");	}
+				if(addChk) {
+					//gagaAgGrid.addRowData(OriginGridListOption, result[i], "goodsCd");
+					gagaAgGrid.addRowData(OriginGridListOption, {"goodsGb": goodsGbVal, "goodsCd" : result[i].goodsCd, "goodsNm" : result[i].goodsNm, "targetGb" : "G260_10"});
+				}
 			}
 		}