Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/develop' into order

card007 5 anni fa
parent
commit
2c34462480

+ 7 - 1
src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -412,11 +412,17 @@ public class TsaGoodsService {
 			if (dataList != null && !dataList.isEmpty()) {
 				for (GagaMap gagaMap : dataList) {
 					if (!StringUtils.isBlank(gagaMap.get("SYS_IMG_NM").toString())) {
-						gagaMap.set("SYS_IMG_NM", targetPath + '/' + gagaMap.get("SYS_IMG_NM").toString());
+						gagaMap.set("SYS_IMG_NM", targetPath + '/' + gagaMap.get("SYS_IMG_NM").toString() + "?RS=60");
 					}
 				}
 			}
 
+			log.info("[ excelFilenameWithPath] {}", excelFilenameWithPath);
+			log.info("[ dataList] {}", dataList.size());
+			log.info("[ listTitles] {}", listTitles);
+			log.info("[ cellNames] {}", cellNames);
+			log.info("[ cellTypes] {}", cellTypes);
+			
 			try {
 				GagaExcelUtil.createExcel(excelFilenameWithPath, dataList, "상품 정보", listTitles, cellNames, cellTypes, TsaConstants.EXCEL_FOOTER_TITLE);
 			} catch (Exception e) {

+ 1 - 0
src/main/java/com/style24/admin/biz/service/TsaSystemService.java

@@ -335,6 +335,7 @@ public class TsaSystemService {
 	 * @author gagamel
 	 * @since 2020. 10. 7
 	 */
+	@Transactional("shopTxnManager")
 	public void createMenuAccessHistory(String menuId, String reqUrl, String params) {
 		MenuAccessHst menuAccessHst = new MenuAccessHst();
 		menuAccessHst.setUserNo(TsaSession.getInfo().getUserNo());

+ 6 - 6
src/main/java/com/style24/admin/biz/web/TsaBusinessController.java

@@ -168,10 +168,10 @@ public class TsaBusinessController extends TsaBaseController {
 	public Collection<SupplyCompany> getSupplyCompanyList(@RequestBody SupplyCompany supplyComp) {
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(supplyComp.getSearchSupplyCompCd())) {
-			supplyComp.setMultiSupplyCompCd(supplyComp.getSearchSupplyCompCd().replaceAll("\r", "").split("\n"));
+			supplyComp.setMultiSupplyCompCd(supplyComp.getSearchSupplyCompCd().replaceAll("\r", "").trim().split("\n"));
 		}
 		if (!StringUtils.isBlank(supplyComp.getSearchSupplyCompNm())) {
-			supplyComp.setMultiSupplyCompNm(supplyComp.getSearchSupplyCompNm().replaceAll("\r", "").split("\n"));
+			supplyComp.setMultiSupplyCompNm(supplyComp.getSearchSupplyCompNm().replaceAll("\r", "").trim().split("\n"));
 		}
 		//log.info("supplyComp  {}", supplyComp);
 		return businessService.getSupplyCompanyList(supplyComp);
@@ -321,10 +321,10 @@ public class TsaBusinessController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(brand.getSearchBrandCd())) {
-			brand.setMultiBrandCd(brand.getSearchBrandCd().replaceAll("\r", "").split("\n"));
+			brand.setMultiBrandCd(brand.getSearchBrandCd().replaceAll("\r", "").trim().split("\n"));
 		}
 		if (!StringUtils.isBlank(brand.getSearchBrandNm())) {
-			brand.setMultiBrandNm(brand.getSearchBrandNm().replaceAll("\r", "").split("\n"));
+			brand.setMultiBrandNm(brand.getSearchBrandNm().replaceAll("\r", "").trim().split("\n"));
 		}
 
 		return businessService.getBrandList(brand);
@@ -763,10 +763,10 @@ public class TsaBusinessController extends TsaBaseController {
 	public Collection<BrandGroup> getBrandGroupList(@RequestBody BrandGroup brandGroup) {
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(brandGroup.getSearchBrandGroupNo())) {
-			brandGroup.setMultiBrandGroupNo(brandGroup.getSearchBrandGroupNo().replaceAll("\r", "").split("\n"));
+			brandGroup.setMultiBrandGroupNo(brandGroup.getSearchBrandGroupNo().replaceAll("\r", "").trim().split("\n"));
 		}
 		if (!StringUtils.isBlank(brandGroup.getSearchBrandGroupNm())) {
-			brandGroup.setMultiBrandGroupNm(brandGroup.getSearchBrandGroupNm().replaceAll("\r", "").split("\n"));
+			brandGroup.setMultiBrandGroupNm(brandGroup.getSearchBrandGroupNm().replaceAll("\r", "").trim().split("\n"));
 		}
 		return businessService.getBrandGroupList(brandGroup);
 	}

+ 35 - 13
src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -496,7 +496,7 @@ public class TsaGoodsController extends TsaBaseController {
 	@ResponseBody
 	public GagaMap getGoodsList(@RequestBody GoodsSearch goodsSearch) {
 
-		//log.info("[getGoodsList] goodsSearch = {}", goodsSearch);
+		log.info("[getGoodsList] goodsSearch = {}", goodsSearch);
 		GagaMap result = new GagaMap();
 
 		// 입점업체담당자는 업체코드 설정
@@ -507,7 +507,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 
 			if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
 				goodsSearch.setSearchGb("EXTEND");
@@ -572,7 +572,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 
 			if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
 				goodsSearch.setSearchGb("EXTEND");
@@ -580,6 +580,28 @@ public class TsaGoodsController extends TsaBaseController {
 				goodsSearch.setSearchGb("MASTER");
 			}
 		}
+		
+		if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
+			try {
+				String [] arrBrandCd = mapper.readValue(goodsSearch.getBrandList(), String[].class);
+				goodsSearch.setMultiBrand(arrBrandCd);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+
+		if (!StringUtils.isBlank(goodsSearch.getSupplyCompList())) {
+			try {
+				String [] arrSupplyComp = mapper.readValue(goodsSearch.getSupplyCompList(), String[].class);
+				goodsSearch.setMultiSupplyCompCd(arrSupplyComp);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+		
+		log.info("[downloadGoodsInfoExcelList] goodsSearch = {}", goodsSearch);
 
 		// 대용량엑셀파일다운로드는 이런 식으로 ...
 		goodsService.getGoodsInfoExcelList(goodsSearch, excelFilenameWithPath);
@@ -1575,7 +1597,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 		}
 
 		goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
@@ -1776,7 +1798,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 		}
 		if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
 			try {
@@ -2067,7 +2089,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 		}
 
 		return goodsService.getNoticeList(goodsSearch);
@@ -2190,7 +2212,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 
 			if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
 				goodsSearch.setSearchGb("EXTEND");
@@ -2425,7 +2447,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 
 			if ("searchExtendGoodsCd".equals(goodsSearch.getSearch())) {
 				goodsSearch.setSearchGb("EXTEND");
@@ -2450,7 +2472,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 		}
 
 		return goodsService.saveGoodsNaverPrice(goodsSearch);
@@ -2560,7 +2582,7 @@ public class TsaGoodsController extends TsaBaseController {
 	public Collection<GoodsNotiInfo> getGoodsNotiInfoListByNotiClsf(@RequestBody GoodsNotiInfo goodsNotiInfo) {
 		// multi row 검색관련 처리
 		if (StringUtils.isNotBlank(goodsNotiInfo.getGoodsCd())) {
-			goodsNotiInfo.setGoodsCds(goodsNotiInfo.getGoodsCd().replaceAll("\r", "").split("\n"));
+			goodsNotiInfo.setGoodsCds(goodsNotiInfo.getGoodsCd().replaceAll("\r", "").trim().split("\n"));
 		}
 
 		return goodsService.getGoodsNotiInfoListByNotiClsf(goodsNotiInfo);
@@ -2632,7 +2654,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 		}
 
 		return goodsService.getFreeGoodsList(goodsSearch);
@@ -2835,7 +2857,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 		}
 
 		goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
@@ -2863,7 +2885,7 @@ public class TsaGoodsController extends TsaBaseController {
 		Goods goods = new Goods();
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
-			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").split("\n"));
+			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 			goods.setArrGoodsCd(goodsSearch.getConditionList());
 		}
 		

+ 2 - 1
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -576,7 +576,8 @@ public class TsaMarketingController extends TsaBaseController {
 		// 쿠폰다운로드 방식 조회
 		mav.addObject("dnGbList", rendererService.getCommonCodeList("G058"));
 		// 결제수단 조회
-		mav.addObject("payTypeList", rendererService.getCommonCodeList("G015"));
+		String[] exceptCds2 = {"INICIS","ISTYLE","NAVER_ORDER","NICE"};
+		mav.addObject("payTypeList", rendererService.getCommonCodeList("G015", "Y", exceptCds2));
 		// 상위제휴채널 조회
 		mav.addObject("upperAfLinkCdList", rendererService.getCommonCodeList("G053"));
 		// 선착순쿠폰 조회

+ 6 - 2
src/main/java/com/style24/admin/support/interceptor/TsaDefaultInterceptor.java

@@ -87,8 +87,12 @@ public class TsaDefaultInterceptor extends HandlerInterceptorAdapter {
 			String params = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
 			log.info("params: {}", params);
 
-			// 메뉴접속이력 생성
-			systemService.createMenuAccessHistory(ckMenuId, reqUrl, (params.isEmpty() ? "" : params.toString()));
+			try {
+				// 메뉴접속이력 생성
+				systemService.createMenuAccessHistory(ckMenuId, reqUrl, (params.isEmpty() ? "" : params.toString()));
+			} catch (Exception e) {
+				// Do nothing
+			}
 		}
 	}
 

+ 35 - 13
src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -138,9 +138,11 @@
 		FROM TB_NOTI_INFO B
 		INNER JOIN TB_COMMON_CODE C ON B.NI_CLSF_CD = C.CD 
 		WHERE B.SUPPLY_COMP_CD = CASE #{supplyCompCd} 
-		                         WHEN '1003' THEN '1003'
-		                         WHEN '1004' THEN '1004'
-		                         WHEN '1005' THEN '1005'
+		                         WHEN '1' THEN '1'
+		                         WHEN '2' THEN '2'
+		                         WHEN '3' THEN '3'
+		                         WHEN '4' THEN '4'
+		                         WHEN '5' THEN '5'
 		                         ELSE 'E' END 
 		AND C.CD_GB = 'G004'   /*고시정보*/
 		ORDER BY C.DISP_ORD
@@ -157,9 +159,11 @@
 		     , B.DISP_ORD
 		FROM TB_NOTI_INFO B
 		WHERE B.SUPPLY_COMP_CD = CASE #{supplyCompCd} 
-		                         WHEN '1003' THEN '1003'
-		                         WHEN '1004' THEN '1004'
-		                         WHEN '1005' THEN '1005'
+		                         WHEN '1' THEN '1'
+		                         WHEN '2' THEN '2'
+		                         WHEN '3' THEN '3'
+		                         WHEN '4' THEN '4'
+		                         WHEN '5' THEN '5'
 		                         ELSE 'E' END 
 		<if test="niClsfCd != null and niClsfCd != ''">
 		AND B.NI_CLSF_CD = #{niClsfCd}
@@ -413,7 +417,14 @@
 		    , CASE IFNULL((SELECT COUNT(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = Q.GOODS_CD AND COLOR_CD = Q.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ),0) 
 		            WHEN 0 THEN 'N'
 		            ELSE 'Y' END AS GOODS_IMAGE_YN
+		<choose>
+		<when test='goodsPriceYn != null and goodsPriceYn == "Y"'>
 		    , IFNULL(GB.PC_CURR_PRICE, Q.CURR_PRICE)  AS BENEFIT_PRICE
+		</when>
+		<otherwise>
+		    , 0  AS BENEFIT_PRICE
+		</otherwise>
+		</choose>
 		FROM (     
 		SELECT Z.*
 		FROM (
@@ -526,7 +537,14 @@
 		              </foreach>
 		             )
 		              </when>
-		              <when test='search != null and search == "searchGoodsNum"'>
+		              <when test='search != null and search == "searchGoodsNm"'>
+		        AND (
+		              <foreach collection="conditionList" item="item" index="index" separator="or">
+		               UPPER(G.GOODS_NM) LIKE CONCAT('%',UPPER(#{item}),'%')
+		              </foreach>
+		             )
+		              </when>
+		               <when test='search != null and search == "searchGoodsNum"'>
 		        AND (
 		              <foreach collection="conditionList" item="item" index="index" separator="or">
 		               UPPER(G.GOODS_NUM) LIKE CONCAT('%',UPPER(#{item}),'%')
@@ -997,9 +1015,11 @@
 		INNER JOIN TB_NOTI_INFO A ON C.NI_CLSF_CD = A.NI_CLSF_CD
 		                          AND C.NI_ITEM_CD = A.NI_ITEM_CD
 		                          AND A.SUPPLY_COMP_CD = CASE B.SUPPLY_COMP_CD
-		                                                      WHEN '1003' THEN '1003'
-		                                                      WHEN '1004' THEN '1004'
-		                                                      WHEN '1005' THEN '1005'
+		                                                      WHEN '1' THEN '1'
+		                                                      WHEN '2' THEN '2'
+		                                                      WHEN '3' THEN '3'
+		                                                      WHEN '4' THEN '4'
+		                                                      WHEN '5' THEN '5'
 		                                                      ELSE 'E' 
 		                                                 END
 		WHERE C.GOODS_CD = #{goodsCd}
@@ -1041,9 +1061,11 @@
 		 WHERE 1 = 1
 		 AND N.NI_CLSF_CD = #{niClsfCd}
 		 AND N.SUPPLY_COMP_CD =  CASE G.SUPPLY_COMP_CD
-		                                WHEN '1003' THEN '1003'
-		                                WHEN '1004' THEN '1004'
-		                                WHEN '1005' THEN '1005'
+		                                WHEN '1' THEN '1'
+		                                WHEN '2' THEN '2'
+		                                WHEN '3' THEN '3'
+		                                WHEN '4' THEN '4'
+		                                WHEN '5' THEN '5'
 		                                ELSE 'E' 
 		                           END 
 		 ORDER BY  G.GOODS_CD , N.NI_CLSF_CD, N.DISP_ORD

+ 1 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaPlan.xml

@@ -145,6 +145,7 @@
 		SELECT COUNT(1)
 		  FROM TB_PlAN
 		 WHERE 1=1
+		 AND DEL_YN = 'N'
 		 <include refid="getPlanListCondition_sql"/>
 	</select>
 	

+ 4 - 7
src/main/webapp/WEB-INF/views/business/SupplyCompanyForm.html

@@ -157,12 +157,13 @@
 						<th>사업장주소</th>
 						<td colspan="5">
 							<input type="text" name="bizZipcode"  class="w100" data-valid-name="우편번호" readonly="readonly"/>
+							<button type="button" class="btn btn-info btn-lg" onclick="fnOpenDaumAddr();">우편번호찾기</button>
 							<input type="text" name="bizBaseAddr" class="w300" maxlength="200" readonly="readonly"/>
-							<input type="text" name="bizDtlAddr" class="w300" maxlength="200" readonly="readonly"/>
+							<input type="text" name="bizDtlAddr" class="w300" maxlength="200"/>
 						</td>
 						<th>홈페이지URL</th>
 						<td>
-							<input type="text" name="homepageUrl" readonly="readonly"/>
+							<input type="text" name="homepageUrl" maxlength="100" readonly="readonly"/>
 						</td>
 					</tr>
 					<tr>
@@ -469,6 +470,7 @@
 		$('#detailForm input[name=accountNo]').val(event.data.accountNo);
 		$('#detailForm input[name=depositorNm]').val(event.data.depositorNm);
 		$('#detailForm textarea[name=remarks]').val(event.data.remarks);
+		$('#detailForm textarea[name=note]').val(event.data.note);
 		
 		if (event.data.useYn == 'Y') {
 			$('#detailForm input:radio[name=useYn]').eq(0).trigger('click');
@@ -482,11 +484,6 @@
 			$('#detailForm input:radio[name=shotDelvYn]').eq(1).trigger('click');
 		}
 		
-		// 공지내용. Summernote에 값 세팅
-		if (!gagajf.isNull(event.data.note)){
-			gagaSn.setContents('#note', event.data.note);	
-		}
-		
 		// 배송비 정책 조회
 		fnGetDeliveryFeePolicy(event.data.supplyCompCd);
 	}

+ 5 - 4
src/main/webapp/WEB-INF/views/goods/GoodsDealForm.html

@@ -14,7 +14,7 @@
  * 1.0  2020.10.29   eskim       최초 작성
  *******************************************************************************
  -->	
-	<div class="modalPopup" data-width="1100" >
+	<div class="modalPopup" data-width="1200" >
 		<div class="panelStyle">
 			<div class="panelTitle">
 				<h2>딜 상품 구성</h2>
@@ -257,9 +257,10 @@
 			if (goods.goodsType != "G056_N"){
 				isExist = true;
 			}
-			if (goods.selfGoodsYn != "Y"){
-				isExist = true;
-			}
+			// 입점상품 허용 - 20210512
+			//if (goods.selfGoodsYn != "Y"){
+			//	isExist = true;
+			//}
 
 			if(!isExist){
 				var data = { 

+ 2 - 2
src/main/webapp/WEB-INF/views/goods/GoodsPopupListForm.html

@@ -262,9 +262,9 @@
 		{headerName: "상품코드", field: "goodsCd", width: 140, cellClass: 'text-center'},
 		{headerName: "상품명", field: "goodsNm", width: 200, cellClass: 'text-left'},
 		{headerName: "품목", field: "itemkindNm", width: 150, cellClass: 'text-left'},
-		{headerName: "재고", field: "stockQtySum", width: 80, cellClass: 'text-right',
+		/* {headerName: "재고", field: "stockQtySum", width: 80, cellClass: 'text-right',
 			valueFormatter: function(params) {	return params.value.addComma();}
-		},
+		}, */
 		{headerName: "상품상태", field: "goodsStat" , width: 120, cellClass: 'text-center',
 			cellEditorParams: { values: gagaAgGrid.extractValues(goodsStatList) },
 			valueFormatter: function (params) { return gagaAgGrid.lookupValue(goodsStatList, params.value); },

+ 39 - 6
src/main/webapp/WEB-INF/views/goods/GoodsSetForm.html

@@ -14,7 +14,7 @@
  * 1.0  2020.11.04   eskim       최초 작성
  *******************************************************************************
  -->	
-	<div class="modalPopup" data-width="1100" >
+	<div class="modalPopup" data-width="1250" >
 		<div class="panelStyle">
 			<div class="panelTitle">
 				<h2>세트 상품 구성</h2>
@@ -28,7 +28,7 @@
 						<!-- 아이콘 툴팁 -->
 						<div class="iconTooltip">
 							<i class="fa fa-info" aria-hidden="true"></i>
-							<span class="left" style="width:400px; text-align:left;">
+							<span class="left" style="width:450px; text-align:left;">
 							<!-- class="left" 또는 class="right" -->
 								* 세트상품 정보<br/>
 								&nbsp;&nbsp;- 상품상태 : 정보부족<br/>
@@ -40,7 +40,7 @@
 								&nbsp;&nbsp;- 배송비정책 : 구성상품의 기준여부 'Y'상품의 브랜드 배송비정책<br/>
 								<br/>
 								* 구성상품 정보<br/>
-								&nbsp;&nbsp;- 구상상품판매가 : 구성상품의 수량만큼의 판매가 합 입력<br/>
+								&nbsp;&nbsp;- 세트구상상품판매가 : 구성상품의 세트구성수량만큼의 판매가 합 입력<br/>
 								&nbsp;&nbsp;- 구상상품의 기준상품 : 수정 불가<br/>
 							</span>
 						</div>
@@ -91,6 +91,12 @@
 							<input type="hidden" id="makeNm" name="makeNm" />
 						</td>
 					</tr>
+					<tr>
+						<th>세트상품판매가</th>
+						<td colspan="7">
+							<div id="setGoodsCurrPrice"></div>
+						</td>
+					</tr>
 				</table>
 			</div>	
 			<ul class="panelBar">
@@ -98,6 +104,7 @@
 					<button type="button" class="btn btn-danger btn-lg" onclick="fnGoodsSetDeleteRow();">행삭제</button>
 				</li>
 				<li class="right">
+					<strong class="cRed">* 세트상품의 판매가는 세트구상상품판매가의 합로 설정되므로 구성상품의 세트구성수량과 세트구성상품판매가를 꼭 확인하세요.&nbsp;&nbsp;&nbsp;</strong>
 					<button type="button" class="btn btnRight btn-base btn-lg" onclick="fnOpenGoodsSetPopup();">구상상품추가</button>
 				</li>
 			</ul>
@@ -127,10 +134,10 @@
 			}
 		},
 		{headerName: "구성상품코드", field: "compsGoodsCd" , width: 130, cellClass: 'text-center'},
-		{headerName: "구성상품명", field: "goodsNm" , width: 250, cellClass: 'text-left'},
+		{headerName: "구성상품명", field: "goodsNm" , width: 200, cellClass: 'text-left'},
 		//{headerName: "순서", field: "dispOrd" , width: 100, cellClass: 'text-center',editable: true, required: true},
-		{headerName: "수량", field: "qty" , width: 80, cellClass: 'text-right',editable: true, required: true},
-		{headerName: "상품판매가", field: "compsCurrPrice" , width: 120, cellClass: 'text-right', editable: true, required: true,
+		{headerName: "세트구성수량", field: "qty" , width: 120, cellClass: 'text-right',editable: true, required: true},
+		{headerName: "세트구성상품판매가", field: "compsCurrPrice" , width: 150, cellClass: 'text-right', editable: true, required: true,
 			cellEditor: 'textCellEditor',
 			cellEditorParams: { maxlength: 14, validType: 'numeric'}
 		},
@@ -140,6 +147,10 @@
 			valueFormatter: function (params) { return gagaAgGrid.lookupValue(useYnList, params.value); },
 			valueParser: function (params) { return gagaAgGrid.lookupKey(useYnList, params.newValue); }
 		},
+		{headerName: "상품판매가", field: "currPrice" , width: 120, cellClass: 'text-right', editable: true, required: true,
+			cellEditor: 'textCellEditor',
+			cellEditorParams: { maxlength: 14, validType: 'numeric'}
+		},
 		{headerName: "상품상태", field: "goodsStat" , width: 100, cellClass: 'text-center',
 			cellEditorParams: { values: gagaAgGrid.extractValues(goodsStatList) },
 			valueFormatter: function (params) { return gagaAgGrid.lookupValue(goodsStatList, params.value); },
@@ -168,6 +179,7 @@
 		}	
 	}
 	
+
 	// Row 
 	gridGoodsSetOptions.onCellValueChanged = function(event) {
 		var rowIdx = null;
@@ -192,6 +204,18 @@
 				}
 			}	
 		}
+		
+		if (event.colDef.field == "compsCurrPrice"){
+			var setGoodsCurrPrice = 0;
+			
+			gridGoodsSetOptions.api.forEachNode(function(rowNode, index) {
+				if (!gagajf.isNull(rowNode.data.compsCurrPrice)){
+					setGoodsCurrPrice += Number(rowNode.data.compsCurrPrice);
+				}
+			});
+			$('#goodsSetForm').find('#setGoodsCurrPrice').html(setGoodsCurrPrice.addComma());
+		}
+		
 	}
 	
 	//창종료
@@ -215,6 +239,7 @@
 		// 기존상품
 		var oldGoodsSetList = gagaAgGrid.getAllRowData(gridGoodsSetOptions);
 		var idx = oldGoodsSetList.length+1; 
+		var setGoodsCurrPrice = 0;
 		
 		var isExist = false;
 		goodsData.forEach(function(goods){
@@ -230,6 +255,11 @@
 				if (goods.supplyCompCd != rowNode.data.supplyCompCd){
 					isExist = true;
 				}
+				
+				if (!gagajf.isNull(rowNode.data.compsCurrPrice)){
+					setGoodsCurrPrice += Number(rowNode.data.compsCurrPrice);
+				}
+				 
 			});
 
 			if (goods.goodsType != "G056_N"){
@@ -246,6 +276,7 @@
 						, dispOrd: idx
 						, qty: 1
 						, compsCurrPrice: goods.currPrice
+						, currPrice: goods.currPrice
 						, baseYn: 'N'
 						, goodsStat : goods.goodsStat
 						, useYn: 'Y'
@@ -254,6 +285,7 @@
 						, supplyCompCd : goods.supplyCompCd
 						, sysImgNm : goods.sysImgNm
 						};
+				setGoodsCurrPrice += Number(goods.currPrice);
 				//그리드 마지막에 추가해야함
 				gridGoodsSetOptions.api.updateRowData({add: [data], addIndex: idx});
 				gridGoodsSetOptions.api.refreshCells();
@@ -261,6 +293,7 @@
 			
 			}
 		});
+		$('#goodsSetForm').find('#setGoodsCurrPrice').html(setGoodsCurrPrice.addComma());
 	}
 	
 	// 저장클릭시

+ 3 - 3
src/main/webapp/WEB-INF/views/goods/WmsColorMappingForm.html

@@ -31,9 +31,9 @@
 					<li>
 						<h3>업체명</h3>
 						<select name="supplyCompCd" id="supplyCompCd">
-							<option value="1003" selected="selected">한세드림</option>
-							<option value="1004">(주)에프알제이</option>
-							<option value="1005">(주)엠케이트렌드</option>
+							<option value="3" selected="selected">한세드림</option>
+							<option value="4">(주)에프알제이</option>
+							<option value="5">(주)엠케이트렌드</option>
 						</select>
 						<button type="button" class="btn btn-dark btn-sm" id="btnAddRow">행추가</button>
 					</li>

+ 3 - 3
src/main/webapp/WEB-INF/views/goods/WmsSeasonMappingForm.html

@@ -31,9 +31,9 @@
 					<li>
 						<h3>업체명</h3>
 						<select name="supplyCompCd" id="supplyCompCd">
-							<option value="1003" selected="selected">한세드림</option>
-							<option value="1004">(주)에프알제이</option>
-							<option value="1005">(주)엠케이트렌드</option>
+							<option value="3" selected="selected">한세드림</option>
+							<option value="4">(주)에프알제이</option>
+							<option value="5">(주)엠케이트렌드</option>
 						</select>
 						<button type="button" class="btn btn-dark btn-sm" id="btnAddRow">행추가</button>
 					</li>

+ 3 - 3
src/main/webapp/WEB-INF/views/goods/WmsStyleYearMappingForm.html

@@ -31,9 +31,9 @@
 					<li>
 						<h3>업체명</h3>
 						<select name="supplyCompCd" id="supplyCompCd">
-							<option value="1003" selected="selected">한세드림</option>
-							<option value="1004">(주)에프알제이</option>
-							<option value="1005">(주)엠케이트렌드</option>
+							<option value="3" selected="selected">한세드림</option>
+							<option value="4">(주)에프알제이</option>
+							<option value="5">(주)엠케이트렌드</option>
 						</select>
 						<button type="button" class="btn btn-dark btn-sm" id="btnAddRow">행추가</button>
 					</li>

+ 9 - 5
src/main/webapp/WEB-INF/views/marketing/CouponPopupForm.html

@@ -338,7 +338,7 @@
 											<th>결제수단<em class="required" title="필수"></em></th>
 											<td colspan="5">
 												<label class="chkBox" th:if="${payTypeList}" th:each="oneData, status : ${payTypeList}">
-													<input type="checkbox" name="payTypeArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}"/>
+													<input type="checkbox" name="payTypeArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}" checked="checked"/>
 												</label>
 											</td>
 										</tr>
@@ -2486,10 +2486,6 @@
 				$("#CouponForm .buttonSpan").hide();	//행추가,삭제버튼
 			}
 
-			if($("#CouponForm input[name=rdoDcWay]:checked").val() == 'G240_10'){
-				$("#CouponForm .maxDcAmtArea").hide();
-			}
-
 			// 사용가능고객구분 체크박스 체크 제거
 			$('#CouponForm input:checkbox[name=usableCustGbArr]').prop('checked', false);
 			if(cpnCustGbList.length > 0){
@@ -2727,6 +2723,14 @@
 				}
 			}
 
+			if($("#CouponForm input[name=rdoDcWay]:checked").val() == 'G240_10') {
+				$("#CouponForm .maxDcAmtArea").hide();
+			}else{
+				$('#dcPvalSpan').text("%");
+				$('#dcMvalSpan').text("%");
+				$('#dcAvalSpan').text("%");
+			}
+
 			// 쿠폰다운 날짜
 			let edDtArr;
 			if(!gagajf.isNull(cpnDetail.downEddt)){

+ 8 - 4
src/main/webapp/WEB-INF/views/marketing/PlanDetailPopupForm.html

@@ -1152,10 +1152,14 @@
 					if(!validationPlanDetail()){
 						return false;
 					}
-					if ($('#planRegisterForm input[name=mainPimg]').val()=='') {
-						mcxDialog.alert("메인이미지를 등록하세요.");
-						return false;
-					}
+					
+					if($('#planRegisterForm select[name=planGb]').val() != 'S'){
+						if ($('#planRegisterForm input[name=mainPimg]').val()=='') {
+							mcxDialog.alert("목록 이미지를 등록하세요.");
+							return false;
+						}
+					} 
+					
 					var chkFrontGb = $('#planRegisterForm input:checkbox[name=frontGb]:checked');
 					
 					if(chkFrontGb.length < 1){

+ 0 - 7
src/main/webapp/WEB-INF/views/marketing/PlanPopupForm.html

@@ -86,13 +86,6 @@
 										th:value="${oneData.cd}"
 										th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
 							</select></td>
-
-							<!-- <th>기획전템플릿유형</th>
-							<td colspan="3"><select name="templateType">
-									<option value="">전체</option>
-									<option value="H">HTML</option>
-									<option value="T">TEXT</option>
-							</select></td> -->
 						</tr>
 
 						<tr>