Ver Fonte

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

xodud1202 há 5 anos atrás
pai
commit
c2f5d85138

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

@@ -3538,7 +3538,7 @@ public class TsaGoodsService {
 	 */
 	public void saveSizeInfo(SizeInfo sizeInfo) {
 
-		log.info("[saveSizeInfo] sizeInfo {}", sizeInfo);
+		//log.info("[saveSizeInfo] sizeInfo {}", sizeInfo);
 		String sizeCate1Cd = "";
 		String sizeCate2Cd = "";
 		if ("1".equals(sizeInfo.getSizeGb()) ){

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

@@ -58,7 +58,7 @@ public class TsaBoardController extends TsaBaseController {
 
 	/**
 	 * 공지사항 화면
-	 * @param noticeType - 공지유형(10:사이트공지, 20:내부공지)
+	 * @param noticeType - 공지유형(G047_10:사이트공지, G047_20:내부공지)
 	 * @return
 	 * @author gagamel
 	 * @since 2020. 10. 30

+ 1 - 0
src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -491,6 +491,7 @@ public class TsaGoodsController extends TsaBaseController {
 	@ResponseBody
 	public GagaMap getGoodsList(@RequestBody GoodsSearch goodsSearch) {
 
+		log.info("[getGoodsList] goodsSearch = {}", goodsSearch);
 		GagaMap result = new GagaMap();
 
 		// 입점업체담당자는 업체코드 설정

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

@@ -2,8 +2,8 @@ package com.style24.persistence.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
-
 import com.style24.persistence.TscPageRequest;
+
 import lombok.Data;
 
 /**

+ 8 - 4
src/main/java/com/style24/persistence/domain/GoodsSearch.java

@@ -2,8 +2,8 @@ package com.style24.persistence.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
-
 import com.style24.persistence.TscPageRequest;
+
 import lombok.Data;
 
 /**
@@ -49,7 +49,11 @@ public class GoodsSearch extends TscBaseDomain {
 	private String edDate;
 	private String stockQtySt;
 	private String stockQtyEd;
-	private String cateCd;
+
+	private String siteCd;
+	private String cateGb;
+	private String selLvl;
+	private int cateNo;
 	private String ageGrpCd;
 
 	private String regSuccYn;
@@ -83,8 +87,8 @@ public class GoodsSearch extends TscBaseDomain {
 	private Integer rinbdInfoSq;
 	private String callbackFn;
 
-	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private String[] siteCd;
+	//@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	//private String[] siteCd;
 
 	/* 상품목록 Multi CheckBox 항목*/
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)

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

@@ -82,7 +82,7 @@
 	<!-- ERP 연동 여부 -->
 	<select id="getWmsSyncYn" resultType="String">
 		/* TsaSystem.getWmsSyncYn */
-		SELECT UPPER(NVL(USE_YN,'N')) AS WMS_SYNC_YN
+		SELECT UPPER(IFNULL(USE_YN,'N')) AS WMS_SYNC_YN
 		FROM TB_COMMON_CODE
 		WHERE CD_GB = 'G077'
 		AND CD = 'WMSSYNCYN'

+ 71 - 42
src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -394,8 +394,8 @@
 	<select id="getGoodsList" parameterType="GoodsSearch" resultType="Goods">
 		/* TsaGoods.getGoodsList */
 		SELECT Q.*
-		    , (CASE WHEN Q.GOODS_TYPE = 'G056_N' THEN (SELECT NVL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = Q.GOODS_CD) 
-		            ELSE (SELECT NVL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = Q.GOODS_CD) 
+		    , (CASE WHEN Q.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = Q.GOODS_CD) 
+		            ELSE (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = Q.GOODS_CD) 
 		            END) AS STOCK_QTY_SUM
 		    , (SELECT ITEMKIND_NM FROM TB_ITEMKIND WHERE ITEMKIND_CD = Q.ITEMKIND_CD ) AS ITEMKIND_NM
 		    , FN_GET_USER_NM(REG_NO) AS REG_NM
@@ -553,12 +553,12 @@
 		        <if test="supplyCompCd != null and supplyCompCd != ''">
 		        AND G.SUPPLY_COMP_CD = #{supplyCompCd}
 		        </if>
-				<if test="multiSupplyCompCd != null and multiSupplyCompCd != ''">
-					AND G.SUPPLY_COMP_CD IN
-					<foreach collection="multiSupplyCompCd" item="item" index="index"  open="(" close=")" separator=",">
-						#{item}
-					</foreach>
-				</if>
+		        <if test="multiSupplyCompCd != null and multiSupplyCompCd != ''">
+		            AND G.SUPPLY_COMP_CD IN
+		            <foreach collection="multiSupplyCompCd" item="item" index="index"  open="(" close=")" separator=",">
+		                #{item}
+		            </foreach>
+		        </if>
 		        <if test="brandCd != null and brandCd != ''">
 		        AND G.BRAND_CD = #{brandCd}
 		        </if>
@@ -715,11 +715,31 @@
 		        <if test="ageGrpCd != null and ageGrpCd != ''">
 		        AND G.AGE_GRP_CD = #{ageGrpCd}
 		        </if>
-		        <if test="cateCd != null and cateCd != ''">
+		        <if test="cateNo != null and cateNo > 0 ">
 		        AND G.GOODS_CD IN (
 		            SELECT GOODS_CD
-		            FROM   TB_CATEGORY_GOODS
-		            WHERE  CATE_CD = #{cateCd}
+		            FROM TB_CATE_4SRCH A
+		            INNER JOIN TB_CATE_GOODS B ON A.LEAF_CATE_NO = B.CATE_NO
+		            WHERE 1 = 1
+		            AND SITE_CD = #{siteCd}
+		            AND CATE_GB = #{cateGb}
+		            <choose>
+		                <when test='selLvl != null and selLvl == "2"'>
+		            AND A.CATE1_NO = #{cateNo} 
+		                </when>
+		                    <when test='selLvl != null and selLvl == "3"'>
+		            AND A.CATE2_NO = #{cateNo} 
+		                </when>
+		                    <when test='selLvl != null and selLvl == "4"'>
+		            AND A.CATE3_NO = #{cateNo} 
+		                </when>
+		                    <when test='selLvl != null and selLvl == "5"'>
+		            AND A.CATE4_NO = #{cateNo} 
+		                </when>
+		                <otherwise>
+		            AND A.CATE5_NO = #{cateNo} 
+		                </otherwise>
+		            </choose>
 		        )
 		        </if>
 	</sql>
@@ -777,8 +797,8 @@
 		     , CASE IFNULL((SELECT COUNT(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ),0) 
 		            WHEN 0 THEN 'N'
 		            ELSE 'Y' END AS GOODS_IMAGE_YN
-		     , (CASE WHEN G.GOODS_TYPE = 'G056_N' THEN (SELECT NVL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = G.GOODS_CD) 
-		            ELSE (SELECT NVL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = G.GOODS_CD) 
+		     , (CASE WHEN G.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = G.GOODS_CD) 
+		            ELSE (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = G.GOODS_CD) 
 		            END) AS STOCK_QTY_SUM
 		     , (SELECT ITEMKIND_NM FROM TB_ITEMKIND WHERE ITEMKIND_CD = G.ITEMKIND_CD) AS ITEMKIND_NM
 		     , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
@@ -972,12 +992,12 @@
 		      , N.NI_CLSF_CD
 		      , N.NI_ITEM_CD
 		      , FN_GET_CODE_NM('G005', N.NI_ITEM_CD) AS NI_ITEM_NM
-		      , CASE WHEN NI_ITEM_CD = 'G005_003' THEN NVL(G.COLOR_NM,N.NI_CONTENT)
-		             WHEN NI_ITEM_CD = 'G005_004' THEN NVL(G.SIZE_NAME,N.NI_CONTENT)
-		             WHEN NI_ITEM_CD = 'G005_006' THEN NVL(FN_GET_CODE_NM('G076', G.ORIGIN_CD),N.NI_CONTENT)
+		      , CASE WHEN NI_ITEM_CD = 'G005_003' THEN IFNULL(G.COLOR_NM,N.NI_CONTENT)
+		             WHEN NI_ITEM_CD = 'G005_004' THEN IFNULL(G.SIZE_NAME,N.NI_CONTENT)
+		             WHEN NI_ITEM_CD = 'G005_006' THEN IFNULL(FN_GET_CODE_NM('G076', G.ORIGIN_CD),N.NI_CONTENT)
 		             WHEN NI_ITEM_CD = 'G005_097' AND FN_GET_CODE_NM('G076', G.ORIGIN_CD) IN ('대한민국', '한국', 'KOREA') THEN 'N'
 		             WHEN NI_ITEM_CD = 'G005_097' AND FN_GET_CODE_NM('G076', G.ORIGIN_CD) NOT IN ('대한민국', '한국', 'KOREA') THEN 'Y'
-		             WHEN NI_ITEM_CD = 'G005_009' THEN NVL(G.MAKE_YMD, N.NI_CONTENT)
+		             WHEN NI_ITEM_CD = 'G005_009' THEN IFNULL(G.MAKE_YMD, N.NI_CONTENT)
 		        ELSE N.NI_CONTENT
 		        END
 		        AS  NI_CONTENT
@@ -1265,7 +1285,7 @@
 	<!-- 상품 자동 검색어 조회-->
 	<select id="getGoodsSnm" parameterType="String" resultType="String">
 		/* TsaGoods.getGoodsSnm */
-		WITH RECURSIVE TMP_COLOR_GOODS AS (
+		WITH TMP_COLOR_GOODS AS (
 		    SELECT GOODS_CD
 		         , REPLACE(CONCAT(GROUP_CONCAT(COLOR_GRP_CD),';',GROUP_CONCAT(COLOR_ENM),';',GROUP_CONCAT(CD_NM)),',',';') AS COLOR_INFO
 		    FROM (
@@ -1289,7 +1309,7 @@
 		       G.STYLE_YEAR,';',
 		       FN_GET_CODE_NM('G006',G.SEASON_CD),';',
 		       FN_GET_CODE_NM('G007',G.SEX_GB),';',
-		       NVL2(D.COLOR_INFO,CONCAT(D.COLOR_INFO,';'),''),
+		       COALESCE(D.COLOR_INFO,CONCAT(D.COLOR_INFO,';'),''),
 		       REPLACE(I.ITEMKIND_NM,'>',';')
 		       )) AS GOODS_SNM
 		FROM TB_GOODS G
@@ -1313,8 +1333,8 @@
 	<select id="getNewNotiInfo" parameterType="Goods" resultType="GoodsNotiInfo">
 		/* TsaGoods.getNewNotiInfo */
 		SELECT D.NI_CLSF_CD
-		     , NVL(C.NI_ITEM_CD, D.NI_ITEM_CD) AS NI_ITEM_CD
-		     , NVL(C.NI_CONTENT, D.NI_CONTENT) AS NI_CONTENT
+		     , IFNULL(C.NI_ITEM_CD, D.NI_ITEM_CD) AS NI_ITEM_CD
+		     , IFNULL(C.NI_CONTENT, D.NI_CONTENT) AS NI_CONTENT
 		     , D.DISP_ORD
 		FROM (
 		       SELECT A.NI_CLSF_CD
@@ -1380,7 +1400,7 @@
 	<!-- 상품 사이즈 조회 -->
 	<select id="getGoodsSizeList" parameterType="Goods" resultType="Option">
 		/* TsaGoods.getGoodsSizeList */
-		WITH RECURSIVE TMP_GOODS AS (
+		WITH TMP_GOODS AS (
 		    SELECT A.GOODS_CD 
 		         , A.GOODS_TYPE 
 		         , IFNULL(B.COMPS_GOODS_CD, A.GOODS_CD) AS COMPS_GOODS_CD
@@ -1393,7 +1413,7 @@
 		SELECT #{goodsCd} AS GOODS_CD
 		     , A.GOODS_CD AS COMPS_GOODS_CD
 		     , A.OPT_CD
-		     , CONCAT(A.OPT_CD1,  NVL2(A.OPT_CD2, '', CONCAT('/', A.OPT_CD2))) AS OPT_NM 
+		     , CONCAT(A.OPT_CD1,  COALESCE(A.OPT_CD2, '', CONCAT('/', A.OPT_CD2))) AS OPT_NM 
 		     , A.OPT_CD1
 		     , A.OPT_CD2
 		     , A.ADD_PRICE
@@ -1429,15 +1449,15 @@
 	<select id="getGoodsColorList" parameterType="Goods" resultType="GoodsImg">
 		/* TsaGoods.getGoodsColorList */
 		SELECT A.GOODS_CD 
-		     , NVL(A.OPT_CD1, A.MAIN_COLOR_CD) AS OPT_CD1
+		     , IFNULL(A.OPT_CD1, A.MAIN_COLOR_CD) AS OPT_CD1
 		     , A.MAIN_COLOR_CD
-		     , IF(A.MAIN_COLOR_CD = NVL(A.OPT_CD1, A.MAIN_COLOR_CD), 'Y','N') AS  MAIN_COLOR_YN
+		     , IF(A.MAIN_COLOR_CD = IFNULL(A.OPT_CD1, A.MAIN_COLOR_CD), 'Y','N') AS  MAIN_COLOR_YN
 		     , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = A.GOODS_CD AND COLOR_CD = A.OPT_CD1 AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM 
 		     , C.COLOR_ENM 
 		FROM (
 		      SELECT A.GOODS_CD 
 		           , A.MAIN_COLOR_CD 
-		           , NVL(B.OPT_CD1,'00') AS OPT_CD1
+		           , IFNULL(B.OPT_CD1,'00') AS OPT_CD1
 		      FROM TB_GOODS A
 		      LEFT OUTER JOIN TB_OPTION B ON A.GOODS_CD = B.GOODS_CD
 		                                  AND 1 = (CASE WHEN A.SELF_GOODS_YN = 'Y' THEN 1
@@ -1533,11 +1553,11 @@
 		)
 		VALUES(
 		    #{goodsCd}
-		  , NVL(#{productNo},0)
-		  , NVL(#{productCode},0)
+		  , IFNULL(#{productNo},0)
+		  , IFNULL(#{productCode},0)
 		  , #{brandCd}
 		  , #{itemkindCd}
-		  , NVL(#{goodsNm},'상품명없음')
+		  , IFNULL(#{goodsNm},'상품명없음')
 		  , #{goodsTnm}
 		  , #{goodsSnm}
 		  , #{goodsSnm1}
@@ -1546,13 +1566,13 @@
 		  , #{seasonCd}
 		  , #{sexGb}
 		  , #{goodsNum}
-		  , NVL(#{goodsType},'N')
+		  , IFNULL(#{goodsType},'N')
 		  , #{listPrice}
 		  , #{currPrice}
 		  , #{costPrice}
 		  , #{dcRate}
 		  , #{goodsStat}
-		  , NVL(#{selfMallYn},'Y') 
+		  , IFNULL(#{selfMallYn},'Y') 
 		  , #{goodsGb}
 		  , #{distributionGb}
 		  , #{selfGoodsYn}
@@ -1564,13 +1584,13 @@
 		  , #{pntMrate}
 		  , #{sellFeeRate}
 		  , #{formalGb}
-		  , NVL(#{giftPackYn},'N')
+		  , IFNULL(#{giftPackYn},'N')
 		  , #{originCd}
 		  , #{makeYmd}
 		  , #{taxGb}
-		  , NVL(#{erpStockLinkYn},'N')
-		  , NVL(#{newCustOrdYn},'N')
-		  , NVL(#{adultYn},'N')
+		  , IFNULL(#{erpStockLinkYn},'N')
+		  , IFNULL(#{newCustOrdYn},'N')
+		  , IFNULL(#{adultYn},'N')
 		  , #{regNo}
 		  , NOW()
 		  , #{updNo}
@@ -1626,7 +1646,7 @@
 		  , GOODS_SNM1 = #{goodsSnm1}
 		  , SELF_MALL_YN = #{selfMallYn}
 		  , GOODS_SNM = #{goodsSnm}
-		  , FRST_CFRM_DT = (CASE #{chGoodsStatYn} WHEN 'Y' THEN NVL2(FRST_CFRM_DT, NOW(), FRST_CFRM_DT)
+		  , FRST_CFRM_DT = (CASE #{chGoodsStatYn} WHEN 'Y' THEN COALESCE(FRST_CFRM_DT, NOW(), FRST_CFRM_DT)
 		                                          ELSE FRST_CFRM_DT END)
 		  , PRE_PPNT_USABLE_YN = #{prePpntUsableYn}
 		  , PRE_MPNT_USABLE_YN = #{preMpntUsableYn}
@@ -2742,10 +2762,10 @@
 		, #{sellFeeRate}
 		, STR_TO_DATE(#{applyStdt},'%Y%m%d%H%i%S')
 		, STR_TO_DATE(#{applyEddt},'%Y%m%d%H%i%S')
-		, NVL(#{cfrmYn},'N')
+		, IFNULL(#{cfrmYn},'N')
 		, #{cfrmNo}
 		, #{cfrmDt}
-		, NVL(#{applyYn},'N')
+		, IFNULL(#{applyYn},'N')
 		, #{regNo}
 		, NOW()
 		, #{updNo}
@@ -3133,7 +3153,7 @@
 		              , G.GOODS_NM
 		              , G.LIST_PRICE
 		              , G.CURR_PRICE
-		              , NVL(GB.PC_CURR_PRICE,G.CURR_PRICE) AS BENEFIT_PRICE
+		              , IFNULL(GB.PC_CURR_PRICE,G.CURR_PRICE) AS BENEFIT_PRICE
 		              , FN_GET_USER_NM(GE.REG_NO) AS UPD_NM
 		              , DATE_FORMAT(GE.REG_DT,'%Y%m%d%H%i%S') AS REG_DT
 		              , FN_GET_USER_NM(GE.UPD_NO) AS UPD_NM
@@ -3855,7 +3875,7 @@
 		   , REG_NO
 		   , REG_DT
 		    )
-		WITH RECURSIVE TAB_GOODS AS (
+		WITH TAB_GOODS AS (
 		    SELECT A.GOODS_CD
 		         , A.ITEMKIND_CD
 		         , B.CATE_NO
@@ -4133,8 +4153,8 @@
 		</if>
 		<if test='formalGb != null and formalGb != "X"'>
 		  , FORMAL_GB = #{formalGb}
-		  , PNT_PRATE = NVL(#{pntPrate}, PNT_PRATE)
-		  , PNT_MRATE = NVL(#{pntMrate}, PNT_MRATE)
+		  , PNT_PRATE = IFNULL(#{pntPrate}, PNT_PRATE)
+		  , PNT_MRATE = IFNULL(#{pntMrate}, PNT_MRATE)
 		</if>
 		<if test="minOrdQty != null and minOrdQty > 0">
 		  , MIN_ORD_QTY = #{minOrdQty}
@@ -4324,6 +4344,15 @@
 		        </if>
 		    </otherwise>
 		</choose>
+		<choose>
+		    <when test='sizeGb != null and sizeGb == "1"'>
+		ORDER BY A.SIZE_GB, A.SIZE_CATE1_CD, A.DISP_ORD
+		    </when>
+		    <otherwise>
+		ORDER BY A.SIZE_GB, A.DISP_ORD
+		    </otherwise>
+		</choose>
+		
 	</select>
 	
 	<!-- 사이즈 정보 저장 -->

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

@@ -207,9 +207,9 @@
 		                        ),0) > 0 THEN 1
 		            ELSE 0
 		       END        AS LEAF_LVL /*말단레벨*/
+		     , RANK() OVER(ORDER BY DISP_ORD) AS RK
 		FROM   CONNECTBY2 A
 		WHERE  MENU_ID NOT LIKE 'P%' /*팝업메뉴제외*/
-		ORDER  BY DISP_ORD
 	</select>
 
 </mapper>

+ 1 - 8
src/main/java/com/style24/persistence/mybatis/shop/TsaStock.xml

@@ -209,13 +209,6 @@
 		        <if test="ageGrpCd != null and ageGrpCd != ''">
 		        AND G.AGE_GRP_CD = #{ageGrpCd}
 		        </if>
-		        <if test="cateCd != null and cateCd != ''">
-		        AND G.GOODS_CD IN (
-		            SELECT GOODS_CD
-		            FROM   TB_CATEGORY_GOODS
-		            WHERE  CATE_CD = #{cateCd}
-		        )
-		        </if>
 	</sql>
 	
 	<!-- 목록 페이징 정보 -->
@@ -392,7 +385,7 @@
 		                          , ST.SOLDOUT_YN
 		                          , ST.CURR_STOCK_QTY
 		                          , ST.BASE_STOCK_QTY
-		                          , NVL(SQ.STOCK_QTY,0) AS SALE_STOCK_QTY
+		                          , IFNULL(SQ.STOCK_QTY,0) AS SALE_STOCK_QTY
 		                          , GREATEST(GREATEST(ST.CURR_STOCK_QTY - ST.BASE_STOCK_QTY, 0) - IFNULL(SQ.STOCK_QTY, 0), 0) AS ABLE_STOCK_QTY
 		                          , G.REG_DT
 		                    FROM TB_GOODS G

+ 1 - 1
src/main/webapp/WEB-INF/views/goods/GoodsDetailForm.html

@@ -1812,7 +1812,7 @@
 			return false;
 		}
 		
-		if (!checkRepYn){
+		if (!checkRepYn && $("#goodsDetailForm input[name=goodsType]").val() == "G056_D"){
 			mcxDialog.alert('구성상품중 대표여부를 선택해 주세요.');
 			return false;
 		}

+ 8 - 26
src/main/webapp/WEB-INF/views/goods/GoodsItemkindForm.html

@@ -45,9 +45,9 @@
 					<tr>
 						<th>카테고리</th>
 						<td colspan="5">
-							<input name="siteCd" id="siteCd" type="hidden" value="10"/>
+							<input name="siteCd" id="siteCd" type="hidden" value="G000_10"/>
 							<input name="selLvl" id="selLvl" type="hidden"/>
-							<input name="cateCd" id="cateCd" type="hidden"/>
+							<input name="cateNo" id="cateNo" type="hidden"/>
 							<input name="cateType" id="cateType" type="hidden"/>
 							<select name="cateGb" id="cateGb" onchange="fnChangeSelect($(this).val(), 1);">
 								<option value="">[카테고리구분]</option>
@@ -220,24 +220,9 @@
 	}
 
 	var fnChangeSelect = function(val, selLvl){
-		$("#cateCd").val('');
-		$('#tcateCd').val('');
-		$('#mcateCd').val('');
-		$('#scateCd').val('');
-		$('#dcateCd').val('');
-		if(val==''){
-			if(selLvl>1){
-				selLvl = selLvl - 1;
-				if(selLvl>2){
-					$("#cateCd").val($("#selCate"+(selLvl-1)).val());
-				}
-			}else{
-				selLvl = '';
-			}
-		}else{
-			if(selLvl>2){
-				$("#cateCd").val(val);
-			}
+		$("#cateNo").val('');
+		if (1 < selLvl){ //상품검색용 카테고리 설정
+			$("#cateNo").val(val);
 		}
 		$("#searchForm input[name=selLvl]").val(selLvl);
 		$("#searchForm input[name=searchGb]").val("BASIC");
@@ -256,14 +241,11 @@
 			var cd = '';
 			var nm = '';
 			if(data[i].useYn=='Y'){
-				if(selLvl=='1'){
-					cd = data[i].cateGb;
-					nm = gagaAgGrid.lookupValue(cateGbList, cd);
-				}else{
-					cd = data[i].cateCd;
+				
+					cd = data[i].cateNo;
 					nm = data[i].cateNm;
 					$("#cateType").val(data[i].cateType);
-				}
+				
 				html += '<option value="'+cd+'">['+cd+'] '+nm+'</option>';
 			}
 		}

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

@@ -42,9 +42,9 @@
 								<option th:if="${niClsfCdList}" th:each="oneData, status : ${niClsfCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 							</select>
 						</td>
-						<th>상품코드</th>
+						<th>상품코드<em class="required" title="필수"></em></th>
 						<td>
-							<textarea class="textareaR3 w200" name="goodsCd" id="goodsCd"></textarea>
+							<textarea class="textareaR3 w200" name="goodsCd" id="goodsCd" required="required" data-valid-name="상품코드"></textarea>
 						</td>
 					</tr>
 				</table>

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

@@ -218,11 +218,13 @@
 	// 신규버튼 초기화
 	$('#btnNew').on('click', function() {
 		$("#sizeInfoForm")[0].reset();
+		$('#sizeInfoForm input[name=sizeCate1Cd]').val(''); 
+		$('#brandArea').removeClass('off').addClass('on');
 		$('#sizeInfoForm input[name=sizeGb]').prop('readonly', false);
 		$('#sizeInfoForm input[name=sizeGb]').removeClass("formControl");
 		$('#sizeInfoForm input[name=selfYn]').prop('readonly', false);
 		$('#sizeInfoForm input[name=selfYn]').removeClass("formControl");
-		$('#sizeInfoForm select[name=brandCd]').prop('readonly', false);
+		$('#sizeInfoForm select[name=brandCd]').prop('disabled', false);
 		$('#sizeInfoForm select[name=brandCd]').removeClass("formControl");
 		$("#sizeInfoForm input:radio[name=sizeGb]:input[value=1]").click();
 		$("#sizeInfoForm input:radio[name=selfYn]:input[value=N]").click();
@@ -255,7 +257,7 @@
 			return false;
 		
 		if (gagajf.isNull($('#sizeInfoForm input[name=sizeCate2Nm]').val())){
-			if ("1" == $('#sizeInfoForm input[name=sizeGb]').val() && "Y" == $('#sizeInfoForm input[name=selfYn]').val() ){
+			if ("1" == $('#sizeInfoForm input[name=sizeGb]').val() && "Y" == $('#sizeInfoForm input[name=selfYn]:checked').val() ){
 				
 			}else{
 				mcxDialog.alertC("사이즈카테명을 입력해주세요.", {
@@ -268,6 +270,10 @@
 			}	
 		}
 		
+		if (gagajf.isNull($('#sizeInfoForm textarea[name=sizeInfo]').val())){
+			mcxDialog.alert("html 내용을 입력하세요.");
+			return false;
+		}
 		
 		mcxDialog.confirm('저장하시겠습니까?', {
 			cancelBtnText: "취소",

+ 49 - 6
src/main/webapp/WEB-INF/views/marketing/CouponPopupForm.html

@@ -46,9 +46,9 @@
 								<table class="frmStyle">
 									<colgroup>
 										<col style="width:10%">
-										<col style="width:40%;">
+										<col style="width:45%;">
 										<col style="width:10%">
-										<col style="width:40%;">
+										<col style="width:35%;">
 									</colgroup>
 									<tbody>
 										<tr th:if="${cpnDetail}">
@@ -94,9 +94,12 @@
 										<tr>
 											<th>사용가능고객구분<em class="required" title="필수"></em></th>
 											<td>
-												<select name="usableCustGb" id="usableCustGb" required="required" data-valid-name="사용가능고객구분">
+												<!--<select name="usableCustGb" id="usableCustGb" required="required" data-valid-name="사용가능고객구분">
 													<option th:if="${usableCustGbList}" th:each="oneData , status : ${usableCustGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-												</select>
+												</select>-->
+												<input type="hidden" name="usableCustGb"/>
+												<label class="chkBox"><input type="checkbox" name="chkUsableCustGb" id="chkUsableCustGb10" value="G100_10">일반회원</label>
+												<label class="chkBox"><input type="checkbox" name="chkUsableCustGb" id="chkUsableCustGb20" value="G100_20">임직원</label>
 											</td>
 											<th>사이트<em class="required" title="필수"></em></th>
 											<td>
@@ -108,10 +111,16 @@
 										<tr>
 											<th>사용고객등급구분<em class="required" title="필수"></em></th>
 											<td>
-												<select name="usableCustGrade" id="usableCustGrade" required="required" data-valid-name="사용고객등급구분">
+												<!--<select name="usableCustGrade" id="usableCustGrade" required="required" data-valid-name="사용고객등급구분">
 													<option value="ALL">[전체]</option>
 													<option th:if="${usableCustGradeList}" th:each="oneData , status : ${usableCustGradeList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-												</select>
+												</select>-->
+												<input type="hidden" name="usableCustGrade"/>
+												<label class="chkBox"><input type="checkbox" name="chkUsableCustGrade" id="chkUsableCustGrade10" value="G110_10">VIP</label>
+												<label class="chkBox"><input type="checkbox" name="chkUsableCustGrade" id="chkUsableCustGrade20" value="G110_20">GOLD</label>
+												<label class="chkBox"><input type="checkbox" name="chkUsableCustGrade" id="chkUsableCustGrade30" value="G110_30">SILVER</label>
+												<label class="chkBox"><input type="checkbox" name="chkUsableCustGrade" id="chkUsableCustGrade40" value="G110_40">BRONZE</label>
+												<label class="chkBox"><input type="checkbox" name="chkUsableCustGrade" id="chkUsableCustGrade50" value="G110_50">WELCOME</label>
 											</td>
 											<th>만료알림여부<em class="required" title="필수"></em></th>
 											<td>
@@ -332,6 +341,12 @@
 												</select>
 											</td>
 										</tr>
+										<tr>
+											<th>멀티결제수단</th>
+											<td colspan="5">
+
+											</td>
+										</tr>
 										<tr>
 											<th>쿠폰상태<em class="required" title="필수"></em></th>
 											<td>
@@ -659,7 +674,35 @@
 	});
 
 	// 쿠폰 등록 버튼 클릭시
+
 	function fnCouponCreate(){
+		mcxDialog.confirm('저장하시겠습니까?' , {
+			cancelBtnText:"취소",
+			sureBtnText:"확인",
+			sureBtnClick: function () {
+				var chkUsableCustGb = document.getElementsByName("chkUsableCustGb");
+				var chkUsableCustGrade = document.getElementsByName("chkUsableCustGrade");
+				var usableCustGb = "";
+				var usableCustGrade = "";
+
+				for(let i=0; i<chkUsableCustGb.length; i++){
+					if(chkUsableCustGb[i].checked == true){
+						usableCustGb += chkUsableCustGb[i].value+"|";
+					}
+				}
+				for(let i=0; i<chkUsableCustGrade.length; i++){
+					if(chkUsableCustGrade[i].checked == true){
+						usableCustGrade += chkUsableCustGrade[i].value+"|";
+					}
+				}
+
+				$("#CouponForm input[name=usableCustGb]").val(usableCustGb);
+				$("#CouponForm input[name=usableCustGrade]").val(usableCustGrade);
+			}
+		});
+	}
+
+	function fnCouponCreate2(){
 		mcxDialog.confirm('저장하시겠습니까?' , {
 			cancelBtnText:"취소",
 			sureBtnText:"확인",