Explorar o código

Merge branch 'develop' of http://112.172.147.34:4936/style24/STYLE24.git into develop

gagamel %!s(int64=5) %!d(string=hai) anos
pai
achega
a2a77796a3

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

@@ -17,7 +17,6 @@ import com.style24.admin.support.security.session.TsaSession;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.domain.Brand;
 import com.style24.persistence.domain.Color;
-import com.style24.persistence.domain.CommonCode;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.GoodsCompose;
 import com.style24.persistence.domain.GoodsDesc;
@@ -1067,7 +1066,7 @@ public class TsaGoodsService {
 		String goodsCd = this.getGoodsCodeSeq("D", "D");
 		regGoods.setGoodsCd(goodsCd);
 		regGoods.setSupplyGoodsCd(goodsCd);
-		regGoods.setGoodsType("D");
+		regGoods.setGoodsType("G056_D");
 		regGoods.setSupplyCompCd(goods.getSupplyCompCd());
 		regGoods.setBrandCd(goods.getBrandCd());
 		regGoods.setItemkindCd(goods.getItemkindCd());
@@ -1076,11 +1075,15 @@ public class TsaGoodsService {
 		regGoods.setSeasonCd(goods.getSeasonCd());
 		regGoods.setSexGb(goods.getSexGb());
 		regGoods.setColorCd(goods.getColorCd());
+		regGoods.setMainColorYn("Y");
 		regGoods.setMakeNm(goods.getMakeNm());
 		regGoods.setMakeYmd(goods.getMakeYmd());
 		regGoods.setSelfMallYn(goods.getSelfMallYn());
-		regGoods.setGoodsStat("20"); // 정보부족
-		regGoods.setFormalGb("10"); // 정상 기본값 처리
+		regGoods.setGoodsStat("G008_20"); // 정보부족
+		regGoods.setFormalGb("G009_10"); // 정상 기본값 처리
+		regGoods.setGoodsGb("G03_11"); // 자사상품은 신규
+		regGoods.setDistributionGb("G03_12");
+		regGoods.setGoodsNum(goodsCd);
 
 		regGoods.setListPrice(goods.getCurrPrice());
 		regGoods.setCurrPrice(goods.getCurrPrice());
@@ -1091,6 +1094,7 @@ public class TsaGoodsService {
 			goodsExtendList = mapper.readValue(goods.getGoodsComposeList(), new TypeReference<Collection<GoodsCompose>>() {
 			});
 		} catch (Exception e) {
+			e.printStackTrace();
 			throw new IllegalStateException(message.getMessage("딜상품 저장 중 오류로 인해 저장되지 않았습니다."));
 		}
 
@@ -1110,7 +1114,6 @@ public class TsaGoodsService {
 			if ("Y".equals(goodsExtend.getBaseYn())) {
 				regGoods.setBrandCd(extendGoods.getBrandCd());
 				regGoods.setItemkindCd(extendGoods.getItemkindCd());
-				regGoods.setGoodsNum(extendGoods.getGoodsNum());
 				regGoods.setSupplyCompCd(extendGoods.getSupplyCompCd());
 				regGoods.setFormalGb(extendGoods.getFormalGb());
 			}
@@ -1165,19 +1168,7 @@ public class TsaGoodsService {
 		regGoods.setSelfGoodsYn("Y");
 
 		// 스타일 연도
-		CommonCode commonCode = new CommonCode();
-		commonCode.setUseYn("Y");
-		commonCode.setCdGb("G023"); // 스타일년도
-		commonCode.setCd(regGoods.getStyleYear());
-		Collection<CommonCode> styleYearList = rendererService.getCommonCodeList(commonCode);
-		if (styleYearList == null || styleYearList.isEmpty()) {
-			throw new IllegalStateException(message.getMessage("스타일 연도를 확인해 주세요."));
-		}
-		String styleYear = "";
-		for (CommonCode styleCode : styleYearList) {
-			styleYear = styleCode.getCdNm();
-		}
-		regGoods.setStyleYear(styleYear);
+		regGoods.setStyleYear(regGoods.getStyleYear());
 
 		goodsDao.createGoods(regGoods); // 상품기본 저장
 		goodsDao.createGoodsSmmary(regGoods); // 상품통계 생성

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

@@ -322,7 +322,7 @@ public class TsaGoodsController extends TsaBaseController {
 		// 입점업체담당자는 업체코드 설정
 		if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
 			goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
-			goodsSearch.setMdId(Integer.toString(TsaSession.getInfo().getUserNo()));
+			goodsSearch.setMdNo(TsaSession.getInfo().getUserNo());
 		}
 
 		// multi row 검색관련 처리
@@ -362,7 +362,7 @@ public class TsaGoodsController extends TsaBaseController {
 		// 입점업체담당자는 업체코드 설정
 		if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
 			goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
-			goodsSearch.setMdId(Integer.toString(TsaSession.getInfo().getUserNo()));
+			goodsSearch.setMdNo(TsaSession.getInfo().getUserNo());
 		}
 		goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
 
@@ -534,7 +534,7 @@ public class TsaGoodsController extends TsaBaseController {
 		// 입점업체담당자는 업체코드 설정
 		if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
 			goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
-			goodsSearch.setMdId(Integer.toString(TsaSession.getInfo().getUserNo()));
+			goodsSearch.setMdNo(TsaSession.getInfo().getUserNo());
 		}
 		goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
 		result.set("goodsExcelList", goodsService.getGoodsList(goodsSearch));
@@ -855,6 +855,7 @@ public class TsaGoodsController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
 
+
 	/**
 	 * 상품 대량 등록 화면
 	 *
@@ -1014,7 +1015,7 @@ public class TsaGoodsController extends TsaBaseController {
 		// 입점업체담당자는 업체코드 설정
 		if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
 			goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
-			goodsSearch.setMdId(Integer.toString(TsaSession.getInfo().getUserNo()));
+			goodsSearch.setMdNo(TsaSession.getInfo().getUserNo());
 		}
 
 		// multi row 검색관련 처리
@@ -1150,7 +1151,7 @@ public class TsaGoodsController extends TsaBaseController {
 		// 입점업체담당자는 업체코드 설정
 		if ("B000".equals(TsaSession.getInfo().getRoleCd())) {
 			goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
-			goodsSearch.setMdId(Integer.toString(TsaSession.getInfo().getUserNo()));
+			goodsSearch.setMdNo(TsaSession.getInfo().getUserNo());
 		}
 
 		// multi row 검색관련 처리
@@ -1324,7 +1325,7 @@ public class TsaGoodsController extends TsaBaseController {
 		// 입점업체담당자는 업체코드 설정
 		if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
 			goodsSearch.setSupplyCompCd(TsaSession.getInfo().getSupplyCompCd());
-			goodsSearch.setMdId(Integer.toString(TsaSession.getInfo().getUserNo()));
+			goodsSearch.setMdNo(TsaSession.getInfo().getUserNo());
 		}
 
 		// multi row 검색관련 처리
@@ -1348,5 +1349,4 @@ public class TsaGoodsController extends TsaBaseController {
 		return result;
 	}
 
-
 }

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

@@ -26,7 +26,7 @@ public class GoodsCompose extends TscBaseDomain {
 	private String useYn;
 
 	private int currPrice;
-	private int goodsStat;
+	private String goodsStat;
 	private String imgPath1;
 	private String imgPath6;
 	private String imgType;

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

@@ -36,7 +36,7 @@ public class GoodsSearch extends TscBaseDomain {
 	private String soldOutYn;
 	private String erpStockLinkYn;
 	private String erpPriceLinkYn;
-	private String mdId;
+	private int mdNo;
 	private String currPrice;
 	private String currPriceSt;
 	private String currPriceEd;

+ 19 - 17
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -230,11 +230,11 @@
 		                   ) SD
 		                   ON ( (G.GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')
 		                        OR G.SUPPLY_GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')) 
-		                        <if test="mdId != null and mdId != ''">
+		                        <if test="mdNo != null and mdNo > 0">
 		                        AND G.BRAND_CD IN (
 		                                           SELECT DISTINCT BRAND_CD
 		                                           FROM TB_BRAND_MD
-		                                           WHERE MD_ID = #{mdId}
+		                                           WHERE MD_NO = #{mdNo}
 		                                           )
 		                       </if>
 		                   )
@@ -339,11 +339,11 @@
 		                   ) SD
 		                   ON ( (G.GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')
 		                        OR G.SUPPLY_GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')) 
-		                        <if test="mdId != null and mdId != ''">
+		                        <if test="mdNo != null and mdNo > 0">
 		                        AND G.BRAND_CD IN (
 		                                           SELECT DISTINCT BRAND_CD
 		                                           FROM TB_BRAND_MD
-		                                           WHERE MD_ID = #{mdId}
+		                                           WHERE MD_NO = #{mdNo}
 		                                           )
 		                       </if>
 		                   )
@@ -500,11 +500,11 @@
 		        <if test="erpPriceLinkYn != null and erpPriceLinkYn != ''">
 		        AND G.ERP_PRICE_LINK_YN = #{erpPriceLinkYn}
 		        </if>
-		        <if test="mdId != null and mdId != ''">
+		        <if test="mdNo != null and mdNo > 0">
 		        AND G.BRAND_CD IN (
 		            SELECT DISTINCT BRAND_CD
 		            FROM   TB_BRAND_MD
-		            WHERE  MD_ID = #{mdId}
+		            WHERE  MD_NO = #{mdNo}
 		        )
 		        </if>
 		        <if test="currPriceSt != null and currPriceSt != ''">
@@ -661,11 +661,11 @@
 		          ) SD
 		           ON ( (G.GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')
 		                 OR G.SUPPLY_GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')) 
-		                <if test="mdId != null and mdId != ''">
+		                <if test="mdNo != null and mdNo > 0">
 		                AND G.BRAND_CD IN (
 		                                   SELECT DISTINCT BRAND_CD
 		                                   FROM TB_BRAND_MD
-		                                   WHERE MD_ID = #{mdId}
+		                                   WHERE MD_NO = #{mdNo}
 		                                  )
 		               </if>
 		              )
@@ -1236,6 +1236,7 @@
 		  , GOODS_SNM
 		  , GOODS_SNM1
 		  , COLOR_CD
+		  , MAIN_COLOR_YN
 		  , STYLE_YEAR
 		  , SEASON_CD
 		  , SEX_GB
@@ -1276,6 +1277,7 @@
 		  , #{goodsSnm}
 		  , #{goodsSnm1}
 		  , #{colorCd}
+		  , #{mainColorYn}
 		  , #{styleYear}
 		  , #{seasonCd}
 		  , #{sexGb}
@@ -1549,7 +1551,7 @@
 	<!-- 상품코드 생성 -->
 	<insert id="createGoodsSequence" parameterType="Goods">
 		/* TsaGoods.createGoodsSequence */
-		<selectKey keyProperty="goodsSq" resultType="int" order="BEFORE">
+		<selectKey keyProperty="goodsSq" resultType="int" order="AFTER">
 		SELECT GOODS_SQ FROM TB_GOODS_SEQUENCE
 		</selectKey>
 		INSERT INTO TB_GOODS_SEQUENCE (GOODS_SQ) VALUES (NULL)
@@ -1589,11 +1591,11 @@
 		          ) SD
 		          ON ( (G.GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')
 		               OR G.SUPPLY_GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')) 
-		               <if test="mdId != null and mdId != ''">
+		               <if test="mdNo != null and mdNo > 0">
 		               AND G.BRAND_CD IN (
 		                                  SELECT DISTINCT BRAND_CD
 		                                  FROM TB_BRAND_MD
-		                                  WHERE MD_ID = #{mdId}
+		                                  WHERE MD_NO = #{mdNo}
 		                                  )
 		              </if>
 		           )
@@ -1659,11 +1661,11 @@
 		                  ) SD
 		                  ON ( (G.GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')
 		                       OR G.SUPPLY_GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')) 
-		                       <if test="mdId != null and mdId != ''">
+		                       <if test="mdNo != null and mdNo > 0">
 		                      AND G.BRAND_CD IN (
 		                                          SELECT DISTINCT BRAND_CD
 		                                          FROM TB_BRAND_MD
-		                                          WHERE MD_ID = #{mdId}
+		                                          WHERE MD_NO = #{mdNo}
 		                                          )
 		                      </if>
 		                   )
@@ -1812,11 +1814,11 @@
 		  ) SD
 		  ON ( (G.GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')
 		       OR G.SUPPLY_GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')) 
-		       <if test="mdId != null and mdId != ''">
+		       <if test="mdNo != null and mdNo > 0">
 		       AND G.BRAND_CD IN (
 		                          SELECT DISTINCT BRAND_CD
 		                          FROM TB_BRAND_MD
-		                          WHERE MD_ID = #{mdId}
+		                          WHERE MD_NO = #{mdNo}
 		                          )
 		      </if>
 		   )
@@ -1881,11 +1883,11 @@
 		                  ) SD
 		                  ON ( (G.GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')
 		                       OR G.SUPPLY_GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')) 
-		                       <if test="mdId != null and mdId != ''">
+		                       <if test="mdNo != null and mdNo > 0">
 		                      AND G.BRAND_CD IN (
 		                                          SELECT DISTINCT BRAND_CD
 		                                          FROM TB_BRAND_MD
-		                                          WHERE MD_ID = #{mdId}
+		                                          WHERE MD_NO = #{mdNo}
 		                                          )
 		                      </if>
 		                   )

+ 7 - 7
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaRenderer.xml

@@ -171,7 +171,7 @@
 		FROM   TB_BRAND A
 		INNER JOIN TB_BRAND_MD B ON A.BRAND_CD = B.BRAND_CD
 		WHERE  A.USE_YN = 'Y'
-		AND    B.MD_ID = #{userNo}
+		AND    B.MD_NO = #{userNo}
 		GROUP  BY A.BRAND_CD, A.BRAND_ENM
 		ORDER  BY A.BRAND_CD
 	</select>
@@ -265,11 +265,11 @@
 	<select id="getBrandMdList" resultType="CommonCode">
 		/* TsaRenderer.getBrandMdList */
 		SELECT DISTINCT
-		       A.MD_ID   AS CD
+		       A.MD_NO   AS CD
 		     , C.USER_NM AS CD_NM
 		FROM   TB_BRAND_MD A
 		INNER JOIN TB_BRAND B ON A.BRAND_CD = B.BRAND_CD
-		INNER JOIN TB_USER C ON A.MD_ID = C.USER_ID
+		INNER JOIN TB_USER C ON A.MD_NO = C.USER_NO
 		ORDER  BY C.USER_NM
 	</select>
 
@@ -294,8 +294,8 @@
 		FROM   TB_BRAND_MD A
 		     , TB_BRAND B
 		WHERE  A.BRAND_CD = B.BRAND_CD
-		<if test='mdId != null and mdId != "" and mdId != "all"'>
-		AND    A.MD_ID = #{mdId}
+		<if test='mdNo != null and mdNo != "" and mdNo != "all"'>
+		AND    A.MD_NO = #{mdNo}
 		</if>
 	</select>
 
@@ -308,8 +308,8 @@
 		FROM   TB_BRAND_MD A
 		      ,TB_BRAND B
 		WHERE  A.BRAND_CD = B.BRAND_CD
-		<if test='mdId != null and mdId != "" and mdId != "all"'>
-		AND    A.MD_ID = #{mdId}
+		<if test='mdNo != null and mdNo != "" and mdNo != "all"'>
+		AND    A.MD_NO = #{mdNo}
 		</if>
 		GROUP  BY BRAND_GRP_NM
 	</select>

+ 1 - 1
style24.admin/src/main/resources/config/application-locd.yml

@@ -20,7 +20,7 @@ domain:
     admin: //ldadmin.style24.com
     front: //ldfront.style24.com
     image: //ldimage.style24.com
-    uximage: //ldfront.style24.com
+    uximage: //ldadmin.style24.com
 
 upload:
     default:

+ 1 - 1
style24.admin/src/main/resources/config/application-locp.yml

@@ -20,7 +20,7 @@ domain:
     admin: //lpadmin.wivismall.com
     wivis: //lpfront.wivismall.com
     image: //image.wivismall.com/speedy_image-wivismall
-    uximage: //lpfront.wivismall.com
+    uximage: //lpadmin.wivismall.com
 
 upload:
     default:

+ 47 - 65
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsDealForm.html

@@ -20,13 +20,15 @@
 				<h2>딜 상품 구성</h2>
 				<button type="button" class="close" onclick="fngoodsDealFormClose()"><i class="fa fa-times"></i></button>
 			</div>
+			<form id="goodsDealForm" name="goodsDealForm" th:method="post">
+			<input type="hidden" id="goodsComposeList" name="goodsComposeList" />
 			<div class="panelContent">
 				<ul class="notice">
 					<li>구성상품 등록시 기본값&nbsp;
 						<!-- 아이콘 툴팁 -->
 						<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;">
 								- 상품상태 : 정보부족<br/>
 								- 정상가 : 판매가 입력값<br/>
 								- 브랜드코드 : 구성상품의 기준여부 'Y'상품의 브랜드코드<br/>
@@ -39,8 +41,6 @@
 						<!-- //아이콘 툴팁 --> 
 					</li>
 				</ul>
-				<form id="goodsDealForm" name="goodsDealForm" th:method="post">
-				<input type="hidden" id="compsGoodsList" name="compsGoodsList" />
 				<table class="frmStyle">
 					<colgroup>
 						<col width="10%"/>
@@ -51,17 +51,17 @@
 						<col width="23%"/>
 					</colgroup>
 					<tr>
-						<th>상품명<i class="star"></i></th>
+						<th>상품명<em class="required" title="필수"></em></th>
 						<td><input type="text" id="goodsNm" name="goodsNm" maxlength="60"/></td>
-						<th>판매가<i class="star"></i></th>
+						<th>판매가<em class="required" title="필수"></em></th>
 						<td><input type="text" class="w100" id="currPrice" name="currPrice" maxlength="8" data-valid-type="numeric"/></td>
-						<th>자사노출여부<i class="star"></i></th>
+						<th>자사노출여부<em class="required" title="필수"></em></th>
 						<td><label class="rdoBtn"><input type="radio" name="selfMallYn" id="selfMallYnY" value="Y" checked/>Y</label>
 							<label class="rdoBtn"><input type="radio" name="selfMallYn" id="selfMallYnN" value="N"/>N</label>
 						</td>
 					</tr>
 					<tr>
-						<th>년도/시즌<i class="star"></i></th>
+						<th>년도/시즌<em class="required" title="필수"></em></th>
 						<td colspan="3"><select  name="styleYear" id="styleYear">
 								<option value="">[전체]</option>
 								<option th:if="${styleYearList}" th:each="oneData, status : ${styleYearList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
@@ -71,7 +71,7 @@
 								<option th:if="${seasonList}" th:each="oneData, status : ${seasonList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 							</select>
 						</td>
-						<th>성별<i class="star"></i></th>
+						<th>성별<em class="required" title="필수"></em></th>
 						<td><select  name="sexGb" id="sexGb">
 								<option value="">[전체]</option>
 								<option th:if="${sexGbList}" th:each="oneData, status : ${sexGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
@@ -79,37 +79,38 @@
 						</td>
 					</tr>
 					<tr>
-						<th>색상<i class="star"></i></th>
+						<th>색상<em class="required" title="필수"></em></th>
 						<td >
 							<select name="colorCd" id="colorCd">
 								<option value="">[전체]</option>
 								<option th:if="${colorCdList}" th:each="oneData, status : ${colorCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 							</select>
 						</td>
-						<th>원산지<i class="star"></i></th>
+						<th>원산지<em class="required" title="필수"></em></th>
 						<td><input type="text" class="w100" id="makeNm" name="makeNm" maxlength="20" /></td>
-						<th>제조년월일<i class="star"></i></th>
+						<th>제조년월일<em class="required" title="필수"></em></th>
 						<td><input type="text" class="w100" id="makeYmd" name="makeYmd" maxlength="8" data-valid-type="date"/></td>
 					</tr>
-					<tr>
-						<th>제조년월일<i class="star"></i></th>
-						<td colspan="5"><input type="text" class="w100" id="makeYmd" name="makeYmd" maxlength="8" data-valid-type="date"/></td>
-					</tr>
-					
 				</table>
-				<div class="padT15 padB15">
+			</div>	
+			<ul class="panelBar">
+				<li class="left">
 					<button type="button" class="btn btn-danger btn-lg" onclick="fnGoodsDealDeleteRow();">행삭제</button>
-					<button type="button" class="btn btnRight btn-base btn-lg" onclick="fnOpenGoodsDealPopup();">구상상품추가</button>
-					<button type="button" class="btn btnRight btn-success btn-lg" id="btnGoodsDealSearchExcel" >엑셀조회</button>
+				</li>
+				<li class="right">
 					<button type="button" class="btn btnRight btn-default btn-lg" onclick="cfnDownloadSampleFile('SF003');">상품엑셀조회 양식 다운로드</button>
-				</div>
-				<div id="gridGoodsDealList" style="height: 450px;" class="ag-theme-balham lh60"></div>
+					<button type="button" class="btn btnRight btn-success btn-lg" id="btnGoodsDealSearchExcel" >엑셀조회</button>
+					<button type="button" class="btn btnRight btn-base btn-lg" onclick="fnOpenGoodsDealPopup();">구상상품추가</button>
+				</li>
+			</ul>
+			<div id="gridGoodsDealList" style="height: 450px;" class="ag-theme-balham lh60"></div>
 			</form>	
-			</div>
 			<ul class="panelBar">
-				<th:block th:if="${sessionInfo.roleCd == '0000' OR sessionInfo.roleCd == 'A000' OR sessionInfo.roleCd == 'A101' OR sessionInfo.roleCd == 'A100' OR sessionInfo.roleCd == 'A001'}">
-				<button type="button" class="btn btnRight btn-success btn-lg" id="btnGoodsDealSave">저장</button>
-				</th:block>
+				<li  class="right">
+					<th:block th:if="${sessionInfo.roleCd == 'G001_0000' OR sessionInfo.roleCd == 'G001_A000' OR sessionInfo.roleCd == 'G001_A101' OR sessionInfo.roleCd == 'G001_A100' OR sessionInfo.roleCd == 'G001_A001'}">
+					<button type="button" class="btn btnRight btn-success btn-lg" id="btnGoodsDealSave">저장</button>
+					</th:block>
+				</li>
 			</ul>
 		</div>
 	</div>
@@ -120,35 +121,35 @@
 	// specify the columns
 	var columnGoodsDealDefs = [
 		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+		{headerName: "CRUD", field: "crud", width: 75, minWidth: 75, hide: true},
 		{headerName: "정렬", field: "dispOrd", width: 70 ,hide: false, cellClass: 'text-center',  rowDrag: true },
 		//{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
 		{headerName: "이미지", field: "imgPath1", width: 100, height: 60, cellClass: 'text-center'
 			,cellRenderer: function(params) {
-				if (params.data.imgType == "A"){
-					if(!gagajf.isNull(params.data.imgPath6)){
-						return '<img width="60" src="'+ uploadGoodsUrl+params.data.imgPath6.replace("/1000/","/100/") + '" alt=""  onerror="this.src=\'/image/no.gif\';"/>';
-					}else{
-						return '<img width="60" src="'+ uploadGoodsUrl+params.value.replace("/1000/","/100/") + '" alt=""  onerror="this.src=\'/image/no.gif\';"/>';
-					}	
-				}else{
-					if(!gagajf.isNull(params.data.imgPath6)){
-						return '<img width="60" src="'+ params.data.imgPath1 + '" alt="" onerror="this.src=\'/image/no.gif\';"/>';
-					}else{
+				if (params.data.imgType == "G030_A"){
+					if (gagajf.isNull(params.value)) {
+						return '<img width="60" src="'+ params.data.imgPath6 + '" alt="" onerror="this.src=\'/image/no.gif\';"/>';
+					} else {
 						return '<img width="60" src="'+ params.value + '" alt="" onerror="this.src=\'/image/no.gif\';"/>';
 					}
+					
+				}else{
+					return '<img width="60" src="'+ params.value + '" alt="" onerror="this.src=\'/image/no.gif\';"/>';
 				}
 			}
 		},
 		{headerName: "구성상품코드", field: "compsGoodsCd" , width: 130, cellClass: 'text-center'},
 		{headerName: "옵션명", field: "compsGoodsOptNm" , width: 250, cellClass: 'text-left',editable: true, required: true},
-		{headerName: "판매가", field: "currPrice" , width: 100, cellClass: 'text-center'},
-		{headerName: "기준여부(품목/전시카테)", field: "baseYn" , width: 180, cellClass: 'text-center',editable: true, required: true,
+		{headerName: "판매가", field: "currPrice" , width: 100, cellClass: 'text-right'
+			,valueFormatter: function(params) {return params.value.addComma();}
+		},
+		{headerName: "기준여부(품목/전시카테)", field: "baseYn" , width: 170, cellClass: 'text-center',editable: true, required: true,
 			cellEditor: 'agRichSelectCellEditor',
 			cellEditorParams: { values: gagaAgGrid.extractValues(useYnList) },
 			valueFormatter: function (params) { return gagaAgGrid.lookupValue(useYnList, params.value); },
 			valueParser: function (params) { return gagaAgGrid.lookupKey(useYnList, params.newValue); }
 		},
-		{headerName: "전시여부", field: "useYn" , width: 90, cellClass: 'text-center',editable: true, required: true,
+		{headerName: "전시여부", field: "useYn" , width: 80, cellClass: 'text-center',editable: true, required: true,
 			cellEditor: 'agRichSelectCellEditor',
 			cellEditorParams: { values: gagaAgGrid.extractValues(useYnList) },
 			valueFormatter: function (params) { return gagaAgGrid.lookupValue(useYnList, params.value); },
@@ -160,18 +161,6 @@
 			valueParser: function (params) { return gagaAgGrid.lookupKey(goodsStatList, params.newValue); }
 		},
 		{headerName: "수량", field: "qty" , width: 80, cellClass: 'text-right',hide:true}
-		/* {headerName: "등록일자", field: "regDt", width: 150, cellClass: 'text-center' ,
-			cellRenderer: function(params) {
-				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmm").format("YYYY-MM-DD HH:mm") : '';
-			}
-		},
-		{headerName: "등록자", field: "regId", width: 100, cellClass: 'text-center'},
-		{headerName: "수정일자", field: "regDt", width: 150, cellClass: 'text-center' ,
-			cellRenderer: function(params) {
-				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmm").format("YYYY-MM-DD HH:mm") : '';
-			}
-		},
-		{headerName: "수정자", field: "regId", width: 100, cellClass: 'text-center'} */
 	];
 
 	// Get GridOptions
@@ -247,14 +236,14 @@
 					isExist = true;
 				}
 			});
-			if (goods.goodsType != 'N'){
+			if (goods.goodsType != 'G056_N'){
 				isExist = true;
 			}
 
 			if(!isExist){
 				var data = { 
 						  compsGoodsCd: goods.goodsCd
-						, goodsType: 'D'
+						, goodsType: 'G056_D'
 						, dispOrd: idx
 						, qty: 1
 						, compsCurrPrice: goods.currPrice
@@ -308,8 +297,8 @@
 			cancelBtnText: "취소",
 			sureBtnText: "확인",
 			sureBtnClick: function(){
-				var compsGoodsList = gagaAgGrid.getAllRowData(gridGoodsDealOptions);
-				$("#goodsDealForm input[name=compsGoodsList]").val(JSON.stringify(compsGoodsList));
+				var goodsComposeList = gagaAgGrid.getAllRowData(gridGoodsDealOptions);
+				$("#goodsDealForm input[name=goodsComposeList]").val(JSON.stringify(goodsComposeList));
 				gagajf.ajaxFormSubmit("/goods/deal/save", "#goodsDealForm", fngoodsDealFormClose);
 			}
 		});
@@ -461,7 +450,7 @@
 				checkBaseYn = true;
 			}
 			
-			if(item.goodsStat != "90"){
+			if(item.goodsStat != "G008_90"){
 				optCheck = true;
 				mcxDialog.alertC("상품상태를 확인해 주세요.", {
 					sureBtnText: "확인",
@@ -520,7 +509,7 @@
 	}
 	
 	//상품삭제
-	var fnGoodsDealDeleteRow = function() {
+	var fnGoodsDealDeleteRow = function() {debugger;
 		var selectedData = gagaAgGrid.selectedRowData(gridGoodsDealOptions);
 		
 		if (selectedData.length == 0) {
@@ -528,15 +517,8 @@
 			return;
 		}
 		
-		var iTotalCnt = 0;
-		var iCnt = 0;
-		$.each(selectedData, function(index, item) {	
-			iTotalCnt ++;
-			if (item.crud == "C"){
-				gridGoodsDealOptions.api.updateRowData({remove: [item]});	
-				iCnt ++;
-			}
-		});
+		//화면에서 삭제
+		var removedData = gagaAgGrid.removeRowData(gridGoodsDealOptions, false);
 	}
 	
 /*]]>*/

+ 20 - 16
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsDetailForm.html

@@ -75,7 +75,7 @@
 							<li><a href="#goodstab2">옵션/재고정보</a></li>
 							<li><a href="#goodstab3">상품상세정보</a></li>
 							<li id="goodsNotiTab"><a href="#goodstab4">고시정보</a></li>
-							<li id="goodsCodiTab"><a href="#goodstab5">대표색상</a></li>
+							<li id="goodsColorTab"><a href="#goodstab5">대표색상</a></li>
 							<li id="GoodsComposeTab" style="display:none;"><a href="#goodstab6">구성상품</a></li>
 							<li><a href="#goodstab7">변경이력</a></li>
 						</ul>
@@ -419,7 +419,7 @@
 										<button type="button" class="btn btn-base btn-lg" onclick="fnOpenGoodsDetailPopup()">상품조회</button>
 									</li>
 								</ul>
-								<div id="gridGoodsComposeList" style="height: 550px;" class="ag-theme-balham lh60"></div>
+								<div id="gridGoodsComposeList" style="height: 500px;" class="ag-theme-balham lh60"></div>
 								<!-- 내용 삽입 -->
 							</div>
 							<!-- //TAB6 CONTENTS AREA -->
@@ -546,7 +546,7 @@
 			valueParser: function (params) { return gagaAgGrid.lookupKey(goodsTypeList, params.newValue); }
 		},
 		{headerName: "구성상품코드", field: "compsGoodsCd" , width: 130, cellClass: 'text-center'},
-		{headerName: "구성상품코드명", field: "compsGoodsCdNm" , width: 200, cellClass: 'text-left'},
+		{headerName: "구성상품코드명", field: "compsGoodsNm" , width: 200, cellClass: 'text-left'},
 		//{headerName: "순서", field: "dispOrd" , width: 80, cellClass: 'text-right',editable: true, required: true},
 		{headerName: "수량", field: "qty" , width: 100, cellClass: 'text-right'
 			,valueFormatter: function(params) { return Number(params.value).addComma();}
@@ -865,11 +865,13 @@
 				$('#goodsDetailForm #erplinkarea').addClass('off');
 				if (result.selfGoodsYn == "Y") $('#goodsDetailForm #GoodsComposeTab').css('display','block');
 				$('#goodsDetailForm #goodsNotiTab').css('display','none');
+				$('#goodsDetailForm #goodsColorTab').css('display','none');
 			}else if ("G056_D" == result.goodsType){
 				$('#goodsDetailForm #erplinkarea').addClass('off');
 				$('#goodsDetailForm #erplinkarea').addClass('off');
 				if (result.selfGoodsYn == "Y") $('#goodsDetailForm #GoodsComposeTab').css('display','block');
 				$('#goodsDetailForm #goodsNotiTab').css('display','none');
+				$('#goodsDetailForm #goodsColorTab').css('display','none');
 			}
 			
 			//상품 구분에 따른 컬럼 사용여부처리 end
@@ -1098,7 +1100,7 @@
 	}
 
 	//상품저장 버튼 클릭 시
-	$('#btnGoodsDetailSave').click(function() {debugger;
+	$('#btnGoodsDetailSave').click(function() {
 
 		var optCheck = false;
 		var idx = 0;
@@ -1493,19 +1495,21 @@
 			return false;
 		}
 		
-		// 대표 색상 
-		var goosNumAllData = gagaAgGrid.getAllRowData(gridGoodsNumOptions);
-		var mainColorCnt = 0;
+		// 대표 색상 - 일반 상품만 체크
+		if ($("#goodsDetailForm input[name=goodsType]").val() == "G056_N"){
+			var goosNumAllData = gagaAgGrid.getAllRowData(gridGoodsNumOptions);
+			var mainColorCnt = 0;
 
-		$.each(goosNumAllData, function(index, item) {
-			if (item.mainColorYn == "Y"){
-				mainColorCnt++;
+			$.each(goosNumAllData, function(index, item) {
+				if (item.mainColorYn == "Y"){
+					mainColorCnt++;
+				}
+			});
+			if (mainColorCnt <= 0 || mainColorCnt > 1){
+				optCheck = true;
+				mcxDialog.alertC("대표 색상 여부를 확인해 주세요.");
+				return false;
 			}
-		});
-		if (mainColorCnt <= 0 || mainColorCnt > 1){
-			optCheck = true;
-			mcxDialog.alertC("대표 색상 여부를 확인해 주세요.");
-			return false;
 		}
 
 		if(optCheck) {
@@ -1525,7 +1529,7 @@
 				}
 			});
 			return false;
-		}else if (dcRate >= 90){debugger;
+		}else if (dcRate >= 90){
 			mcxDialog.confirmC("할인율이 90%이상입니다. 계속하시겠습니까?", {
 				btn: ["아니요","예"],
 				btnClick: function(index){

+ 3 - 3
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsListForm.html

@@ -352,13 +352,13 @@
 			,cellRenderer: function(params) {
 				if (params.data.imgType == "G030_A"){
 					if (gagajf.isNull(params.value)) {
-						return '<img width="60" src="'+ params.data.imgPath6 + '" alt="" onclick="cfnOpenImagePreViewPopup(\'goodsImgView\', \''+ params.data.imgPath6 +'\')"/>';
+						return '<img width="60" src="'+ params.data.imgPath6 + '" alt="" onclick="cfnOpenImagePreViewPopup(\'goodsImgView\', \''+ params.data.imgPath6 +'\')" onerror="this.src=\'/image/no.gif\';"/>';
 					} else {
-						return '<img width="60" src="'+ params.value + '" alt="" onclick="cfnOpenImagePreViewPopup(\'goodsImgView\', \''+ params.value +'\')"/>';
+						return '<img width="60" src="'+ params.value + '" alt="" onclick="cfnOpenImagePreViewPopup(\'goodsImgView\', \''+ params.value +'\')" onerror="this.src=\'/image/no.gif\';"/>';
 					}
 					
 				}else{
-					return '<img width="60" src="'+ params.value + '" alt="" onclick="cfnOpenImagePreViewPopup(\'goodsImgView\', \''+ params.value +'\')"/>';
+					return '<img width="60" src="'+ params.value + '" alt="" onclick="cfnOpenImagePreViewPopup(\'goodsImgView\', \''+ params.value +'\')" onerror="this.src=\'/image/no.gif\';"/>';
 				}
 			}
 		},

+ 5 - 4
style24.admin/src/main/webapp/ux/js/admin.popup.js

@@ -147,11 +147,11 @@ var cfnOpenOrderDetailPopup = function(ordNo) {
  */
 //이미지 미리보기  팝업 열기
 var cfnOpenImagePreViewPopup = function(id,imgUrl) {
-	var str = '<div class="popupWrap videoClose" id="'+id+'" style="z-index:30">';
-	str = str + '<div class="videoPopup modal" data-width="700" data-height="350">';
+
+	var str = '<div class="videoPopup" data-width="700" data-height="350" id="'+id+'" style="z-index:30">';
 	str = str + '<button type="button" class="close" onclick="uifnPopupClose(\''+id+'\')"><i class="fa fa-times"></i></button>';
-	str = str + '<img id="imagePreView" src="/image/del01.jpg"/>';
-	str = str + '</div></div>';
+	str = str + '<img id="imagePreView" src="/image/no.gif"/>';
+	str = str + '</div>';
 
 	if ($('#'+ id).length == 0) {
 		$('body').append(str);
@@ -161,6 +161,7 @@ var cfnOpenImagePreViewPopup = function(id,imgUrl) {
 	var popW = parseInt( $thisId.attr("data-width") );
 	var popH = parseInt( $thisId.attr("data-height") );
 	$("#imagePreView").attr("src", imgUrl);
+	//$($thisId).css({display:"block"});
 	$("#"+id).css({display:"block"});
 }
 

+ 12 - 9
style24.admin/src/main/webapp/ux/js/admin.ui.js

@@ -101,7 +101,7 @@ function uifnPopupOpen(id){
 		};
 		if ($thisId.children().find(".panelBar").length > 0 ){ btnAreaH = 52 };
 
-		console.log(topTbl);
+		//console.log(topTbl);
 		var tabContH = popH-42-topTbl-35-btnAreaH; //높이계산 : 팝업높이-타이틀-상단테이블-탭스높이-버튼
 		$(".tab > .panelStyle").css({height:tabContH});
 	};
@@ -111,15 +111,18 @@ function uifnPopupOpen(id){
 //MODAL POPUP CLOSE
 function uifnPopupClose(id) {
 	var $thisId = $("#"+id);
-	$thisId.children().css({display:"none"});
-	$thisId.children().remove();
-	var modalLen = $(".modalPopup[style='display:block;']").length;
-	var modalessLen = $(".modalPopup[style='display:block;']").length;
-	if ( modalLen == 0 && modalessLen ==0 ){
-		$("body").removeClass("scrollOff");
-	};
-	if ( $thisId.children().hasClass("videoClose") ){
+	if ( $thisId.hasClass("popupWrap") ) { //모달,모덜리스  팝업
+		$thisId.children("div").css({display:"none"});
+		$thisId.children("div").remove();
+		var modalLen = $(".modalPopup[style='display:block;']").length;
+		var modalessLen = $(".modalPopup[style='display:block;']").length;
+		if ( modalLen == 0 && modalessLen ==0 ){
+			$("body").removeClass("scrollOff");
+		};
+	} else if ( $thisId.hasClass("videoPopup") ) {  //비디오(이미지)팝업
+		$thisId.css({display:"none"});
 		$("#iframe_video").attr("src","");
+		$thisId.remove();
 	};
 };