Quellcode durchsuchen

Merge branch 'eskim' into develop

eskim vor 5 Jahren
Ursprung
Commit
b1bdef77a5

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

@@ -434,7 +434,9 @@ public class TsaGoodsController extends TsaBaseController {
 
 		mav.addObject("siteList", rendererService.getAvailCommonCodeList("G000"));
 		// 공급업체
-		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList());
+		String supplyCompCd = "";
+		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
+		//mav.addObject("supplyCompList", rendererService.getSupplyCompanyList());
 		// 상품상태
 		String[] exceptCds = {"G008_00"};
 		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
@@ -1070,6 +1072,9 @@ public class TsaGoodsController extends TsaBaseController {
 	public ModelAndView wmsInstockForm() {
 		ModelAndView mav = new ModelAndView();
 
+		// 공급업체
+		String supplyCompCd = "";
+		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
 		// 상품상태
 		String[] exceptCds = {"G008_00"};
 		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
@@ -1482,7 +1487,6 @@ public class TsaGoodsController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0003"));
 	}
 
-
 	/**
 	 * 상품 재입고알림관리 화면
 	 *
@@ -1719,7 +1723,9 @@ public class TsaGoodsController extends TsaBaseController {
 
 		mav.addObject("siteList", rendererService.getAvailCommonCodeList("G000"));
 		// 공급업체
-		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList());
+		String supplyCompCd = "";
+		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
+		//mav.addObject("supplyCompList", rendererService.getSupplyCompanyList());
 		// 상품상태
 		String[] exceptCds = {"G008_00"};
 		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));

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

@@ -72,15 +72,13 @@ public class TsaStockController extends TsaBaseController {
 	public ModelAndView goodsSizeStockListForm() {
 
 		ModelAndView mav = new ModelAndView();
-		//사이트
-		mav.addObject("siteList", rendererService.getAvailCommonCodeList("G000"));
 
 		String supplyCompCd = "";
 		if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
 			supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
 		}
 		// 공급업체
-		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd));
+		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
 		// 상품상태
 		String[] exceptCds = {"G008_00"};
 		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));

+ 6 - 5
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -397,9 +397,9 @@
 	<select id="getGoodsList" parameterType="GoodsSearch" resultType="Goods">
 		/* TsaGoods.getGoodsList */
 		SELECT Z.*
-		    /*, (CASE WHEN Z.GOODS_TYPE = 'N' THEN (SELECT NVL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = Z.GOODS_CD) 
-		            ELSE (SELECT NVL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_EXTEND WHERE GOODS_CD = Z.GOODS_CD) 
-		            END) AS STOCK_QTY_SUM */
+		    , (CASE WHEN Z.GOODS_TYPE = 'G056_N' THEN (SELECT NVL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = Z.GOODS_CD) 
+		            ELSE (SELECT NVL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = Z.GOODS_CD) 
+		            END) AS STOCK_QTY_SUM
 		    , 0 AS STOCK_QTY_SUM
 		    , (SELECT ITEMKIND_NM FROM TB_ITEMKIND WHERE ITEMKIND_CD = Z.ITEMKIND_CD ) AS ITEMKIND_NM
 		    , FN_GET_USER_NM(REG_NO) AS REG_NM
@@ -430,6 +430,7 @@
 		              , G.ERP_PRICE_LINK_YN
 		              , G.CHANGEABLE_YN
 		              , G.RETURNABLE_YN
+		              , G.GIFT_PACK_YN
 		              , DATE_FORMAT(G.FRST_CFRM_DT, '%Y%m%d%H%i%S') AS FRST_CFRM_DT
 		              , G.SELL_FEE_RATE
 		              , DATE_FORMAT(G.PRICE_UPD_DT,'%Y%m%d%H%i%S') AS PRICE_UPD_DT
@@ -692,11 +693,11 @@
 		        </if>
 		        <if test='dateGbn != null and dateGbn == "S"'>
 		            <if test="stDate != null and stDate != ''">
-		        AND G.APPR_UPD_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
+		        AND G.FRST_CFRM_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
 		            </if>
 		            <if test="edDate != null and edDate != ''">
 		            <![CDATA[
-		        AND G.APPR_UPD_DT < DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
+		        AND G.FRST_CFRM_DT < DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
 		            ]]>
 		            </if>
 		        </if>

+ 2 - 2
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaStock.xml

@@ -187,11 +187,11 @@
 		        </if>
 		        <if test='dateGbn != null and dateGbn == "S"'>
 		            <if test="stDate != null and stDate != ''">
-		        AND G.APPR_UPD_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
+		        AND G.FRST_CFRM_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
 		            </if>
 		            <if test="edDate != null and edDate != ''">
 		            <![CDATA[
-		        AND G.APPR_UPD_DT < DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
+		        AND G.FRST_CFRM_DT < DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
 		            ]]>
 		            </if>
 		        </if>

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

@@ -199,8 +199,14 @@
 											</select>
 											<input type="hidden" id="ageGrpCdOrg" name="ageGrpCdOrg"/>
 										</td>
+										<th>선물 주문가능여부<em class="required" title="필수"></em></th>
+										<td>
+											<label class="rdoBtn"><input type="radio" name="giftPackYn" id="giftPackYnY" value="Y" />Y</label>
+											<label class="rdoBtn"><input type="radio" name="giftPackYn" id="giftPackYnN" value="N"/>N</label>
+											<input type="hidden" id="giftPackYnOrg" name="giftPackYnOrg"/>
+										</td>
 										<th>가격변경일</th>
-										<td colspan="3"><span id="priceUpdDtTxt"></span></td>
+										<td><span id="priceUpdDtTxt"></span></td>
 									</tr>
 									<tr>
 										<th>정상가</th>
@@ -223,8 +229,8 @@
 										</td>
 										<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>
+											<label class="rdoBtn"><input type="radio" name="selfMallYn" id="selfMallYnY" value="Y" />Y</label>
+											<label class="rdoBtn"><input type="radio" name="selfMallYn" id="selfMallYnN" value="N"/>N</label>
 											<input type="hidden" id="selfMallYnOrg" name="selfMallYnOrg"/>
 										</td>
 									</tr>
@@ -504,6 +510,7 @@
 		},
 		{headerName: "재고연동여부", field: "erpStockLinkYn" , width: 100, cellClass: 'text-center'},
 		{headerName: "자사몰노출여부", field: "selfMallYn" , width: 120, cellClass: 'text-center'},
+		{headerName: "선물주문여부", field: "giftPackYn" , width: 120, cellClass: 'text-center'},
 		{headerName: "판매수수료율", field: "sellFeeRate" , width: 120, cellClass: 'text-right'},
 		{headerName: "사용자검색어", field: "goodsSnm1" , width: 150, cellClass: 'text-left'},
 		{headerName: "검색어", field: "goodsSnm" , width: 450, cellClass: 'text-left', tooltipField: "goodsSnm"}
@@ -695,6 +702,12 @@
 			}else{
 				$("#goodsDetailForm input:radio[name=selfMallYn]:input[value='N']").trigger('click');
 			}
+			if (result.giftPackYn == "Y"){
+				$("#goodsDetailForm input:radio[name=giftPackYn]:input[value='Y']").trigger('click');
+			}else{
+				$("#goodsDetailForm input:radio[name=giftPackYn]:input[value='N']").trigger('click');
+			}
+			
 			
 			$('#goodsDetailForm input[name=sellFeeRate]').val(result.sellFeeRate);
 			$("#goodsDetailForm input[name=sellFeeRateOrg]").val(result.sellFeeRate);
@@ -718,6 +731,7 @@
 			$("#goodsDetailForm input[name=formalGbOrg]").val(result.formalGb);
 			$("#goodsDetailForm input[name=erpPriceLinkYnOrg]").val(result.erpPriceLinkYn);
 			$("#goodsDetailForm input[name=selfMallYnOrg]").val(result.selfMallYn);
+			$("#goodsDetailForm input[name=giftPackYnOrg]").val(result.giftPackYn);
 			$("#goodsDetailForm input[name=prePpntUsableYnOrg]").val(result.prePpntUsableYn);
 			$("#goodsDetailForm input[name=preMpntUsableYnOrg]").val(result.preMpntUsableYn);
 			$("#goodsDetailForm input[name=changeableYnOrg]").val(result.changeableYn);
@@ -1728,6 +1742,10 @@
 		if ($("#goodsDetailForm input[name=selfMallYnOrg]").val() != $("input[name=selfMallYn]:checked").val()){
 			return true;
 		}
+		//선물주문여부
+		if ($("#goodsDetailForm input[name=giftPackYnOrg]").val() != $("input[name=giftPackYn]:checked").val()){
+			return true;
+		}
 		//PC포인트 
 		if ($("#goodsDetailForm input[name=pntPrateOrg]").val() != $("#goodsDetailForm input[name=pntPrate]").val()){
 			return true;

+ 5 - 5
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsDetailSizeStockForm.html

@@ -33,7 +33,7 @@
 		</tr>
 		<tr>
 			<td class="aC">1</td>
-			<td class="aC"><label class="rdoBtn"><input type="radio" name="selfMallYn" id="selfMallYnY" value="Y"  checked/></label></td>
+			<td class="aC"><label class="rdoBtn"><input type="radio" name="A" id="A" value="Y"  checked/></label></td>
 			<td class="aC"><img alt="" src="http://image.istyle24.com/Upload/ProductImage/0000004766/20200826/14505664_L.jpg?RS=560" width="60px"></td>
 			<td class="aC">BK</td>
 			<td class="aC">BLACK</td>
@@ -41,7 +41,7 @@
 		</tr>
 		<tr>
 			<td class="aC">2</td>
-			<td class="aC"><label class="rdoBtn"><input type="radio" name="selfMallYn" id="selfMallYnY" value="Y"  /></label></td>
+			<td class="aC"><label class="rdoBtn"><input type="radio" name="A" id="A" value="Y"  /></label></td>
 			<td class="aC"><img alt="" src="http://image.istyle24.com/Upload/ProductImage/0000004766/20200826/14505664_L.jpg?RS=560" width="60px"></td>
 			<td class="aC">BK</td>
 			<td class="aC">BLACK</td>
@@ -49,7 +49,7 @@
 		</tr>
 		<tr>
 			<td class="aC">3</td>
-			<td class="aC"><label class="rdoBtn"><input type="radio" name="selfMallYn" id="selfMallYnY" value="Y"  /></label></td>
+			<td class="aC"><label class="rdoBtn"><input type="radio" name="A" id="A" value="Y"  /></label></td>
 			<td class="aC"><img alt="" src="http://image.istyle24.com/Upload/ProductImage/0000004766/20200826/14505664_L.jpg?RS=560" width="60px"></td>
 			<td class="aC">BK</td>
 			<td class="aC">BLACK</td>
@@ -86,8 +86,8 @@
 		</th:block>
 		<tr>
 			<th>상품코드</th>
-			<th>옵션1</th>
-			<th>옵션2</th>
+			<th>옵션1(색상)</th>
+			<th>옵션2(사이즈)</th>
 			<th>추가가격</th>
 			<th>노출순서</th>
 			<th>노출여부</th>

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

@@ -52,6 +52,8 @@
 					<tr>
 						<th>업체/브랜드<em class="required" title="필수"></em></th>
 						<td colspan="3">
+							<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnY" value="Y"  checked/>자사</label>
+							<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnN" value="N"/>입점</label>
 							<select name="supplyCompCd" id="supplyCompCd">
 								<option value="" th:if="${sessionInfo.roleCd} != 'G001_B000'">[전체]</option>
 								<option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
@@ -98,25 +100,39 @@
 								</ul>
 							</div>
 						</td>
-						<th>년도/시즌</th>
+						<th>정상/이월 구분</th>
 						<td>
-							<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>
-							</select>
-							<select  name="seasonCd" id="seasonCd">
+							<select  name="formalGb" id="formalGb">
 								<option value="">[전체]</option>
-								<option th:if="${seasonList}" th:each="oneData, status : ${seasonList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+								<option th:if="${formalGbList}" th:each="oneData, status : ${formalGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 							</select>
 						</td>
 					</tr>
 					<tr>
-						<th>정상/이월 구분</th>
+						<th>년도/시즌</th>
 						<td>
-							<select  name="formalGb" id="formalGb">
+							<!-- <select  name="styleYear" id="styleYear">
 								<option value="">[전체]</option>
-								<option th:if="${formalGbList}" th:each="oneData, status : ${formalGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+								<option th:if="${styleYearList}" th:each="oneData, status : ${styleYearList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 							</select>
+							<select  name="seasonCd" id="seasonCd">
+								<option value="">[전체]</option>
+								<option th:if="${seasonList}" th:each="oneData, status : ${seasonList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+							</select> -->
+							<div class="multiCheckBox" style="width:140px;">
+								<button type="button" class="sltBtn">[전체]</button>
+								<ul style="overflow:auto; height:140px">
+									<li><label class="chkBox"><input type="checkbox" name="전체선택" id="multiStyleYear" onclick="uifnAllCheck('multiStyleYear')">전체선택</label></li>
+									<li th:if="${styleYearList}" th:each="oneData, status : ${styleYearList}"><label class="chkBox"><input type="checkbox" name="multiStyleYear" th:id="${'styleYear' + oneData.cd}" th:value="${oneData.cd}" ><th:block th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></th:block></label></li>
+								</ul>
+							</div>
+							<div class="multiCheckBox" style="width:170px;">
+								<button type="button" class="sltBtn">[전체]</button>
+								<ul style="overflow:auto; height:170px">
+									<li><label class="chkBox"><input type="checkbox" name="전체선택" id="multiSeasonCd" onclick="uifnAllCheck('multiSeasonCd')">전체선택</label></li>
+									<li th:if="${seasonList}" th:each="oneData, status : ${seasonList}"><label class="chkBox"><input type="checkbox" name="multiSeasonCd" th:id="${'seasonCd' + oneData.cd}" th:value="${oneData.cd}" ><th:block th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></th:block></label></li>
+								</ul>
+							</div>		
 						</td>
 						<th>연령대</th>
 						<td>
@@ -396,7 +412,7 @@
 			}
 		},
 		{headerName: "품목", field: "itemkindNm", width: 150, cellClass: 'text-center'},
-		/*{headerName: "판매가능재고", field: "stockQtySum", width: 120, cellClass: 'text-right',
+		{headerName: "판매가능재고", field: "stockQtySum", width: 120, cellClass: 'text-right',
 			valueFormatter: function(params) {	return params.value.addComma();},
 			cellStyle : function(params){
 				if ("00" == params.data.goodsStat  || "10" == params.data.goodsStat || "20" == params.data.goodsStat || "30" == params.data.goodsStat) {
@@ -408,7 +424,7 @@
 				}
 				return { 'background-color': color};
 			} 
-		},*/
+		},
 		{headerName: "상품상태", field: "goodsStat" , width: 100, cellClass: 'text-center',
 			cellEditorParams: { values: gagaAgGrid.extractValues(goodsStatList) },
 			valueFormatter: function (params) { return gagaAgGrid.lookupValue(goodsStatList, params.value); },
@@ -936,6 +952,23 @@
 		cfnOpenGoodsDealPopup();
 	});
 
+	// 자사/입점 변경여부
+	$("#searchForm input[name=selfYn]").bind('click change', function () {
+		var radioValue = $(this).val();
+		var selfGb = "S";	// 자사 공급 업체
+		if (radioValue == "N"){
+			selfGb = "E";	//입점 공급업체
+		}
+		
+		var actionUrl = '/renderer/supply/company/list/'+ selfGb;	
+
+		$('#searchForm').find('#multiBrand').empty();
+		//$("#searchForm select[name=brandCd] option:gt(0)").remove();
+
+		cfnCreateCombo(actionUrl, $('#searchForm select[name=supplyCompCd]'), "[전체]", "");
+		
+	});
+	
 	$(document).ready(function() {
 
 		cfnCreateCalendar('#sellTerms', 'stDate', 'edDate', true, '등록일', 'X');
@@ -943,6 +976,7 @@
 		var selectCode = '<select  name="dateGbn" id="dateGbn">';
 		selectCode += '<option value="R" seledted>상품등록일</option>';
 		selectCode += '<option value="P">가격변경일</option>';
+		selectCode += '<option value="S">최초승인일</option>';
 		selectCode += '</select>';
 
 		$("#searchForm").find('#sellTerms').prepend(selectCode);

+ 6 - 11
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsMassRegisterForm.html

@@ -139,9 +139,9 @@
 					</div>
 					<!-- //아이콘 툴팁 -->
 				</li>
-				<li class="right">
+				<!-- <li class="right">
 					<button type="button" class="btn btn-default btn-lg" id="btnGoodsRegExcelDownLoad">엑셀다운로드</button>
-				</li>
+				</li> -->
 			</ul>
 			<!-- //상단버튼 영역  -->
 			<div id="gridList" style="width: 100%; height: 500px;" class="ag-theme-balham"></div>
@@ -227,9 +227,6 @@
 		{headerName: "시즌", field: "seasonCd", width: 80, cellClass: 'text-center'},
 		{headerName: "성별", field: "sexGb", width: 80, cellClass: 'text-center'},
 		{headerName: "품번", field: "goodsNum", width: 100, cellClass: 'text-center'},
-		{headerName: "형태", field: "shapeCd", width: 80, cellClass: 'text-center'},
-		{headerName: "색상", field: "colorCd", width: 80, cellClass: 'text-center'},
-		{headerName: "TAG가", field: "tagPrice", width: 100, cellClass: 'text-center'},
 		{headerName: "정상가", field: "listPrice", width: 100, cellClass: 'text-center'},
 		{headerName: "판매가", field: "currPrice", width: 100, cellClass: 'text-center'},
 		{headerName: "공급업체상품코드", field: "supplyGoodsCd", width: 130, cellClass: 'text-center'},
@@ -400,18 +397,17 @@
 		str = str + '<div class="mdPopContent">';
 		str = str + '<ul class="notice ">';
 		str = str + '- <em>상품미등록</em>';
-		str = str + '<li>상품코드 오류 : 빈값, 길이 11, \'_\'가 존재하는지</li>';
-		str = str + '<li>업체 오류 : 빈값, \'W\'나 \'F\' 가 아닌경우</li>';
+		str = str + '<li>상품코드 오류 : 빈값</li>';
+		str = str + '<li>업체 오류 : 빈값</li>';
 		str = str + '<li>상품명 오류 : 빈값</li>';
 		str = str + '<li>제조국 오류 : 빈값</li>';
 		str = str + '<li>제조년월일 오류 : 빈값, 날짜형식이 맞는지</li>';
-		str = str + '<li>ERP 미존재 상품코드 : ERP에 상품코드가 존재하는지</li>';
+		str = str + '<li>WMS 미존재 상품코드 : WMS에 상품코드가 존재하는지</li>';
 		str = str + '<li>스타일 연도 오류 : 온라인에서 관리되지 않는 스타일 연도</li>';
 		str = str + '<li>성별 오류 : 온라인에서 관리되지 않는 성별</li>';
-		str = str + '<li>컬러 오류 : 온라인에서 관리되지 않는 컬러</li>';
 		str = str + '<li>상품코드 중복등록요청 : 등록된 상품코드 등록요청</li>';
 		str = str + '<li>품목 오류 : 온라인에서 관리되지 않는 품목</li>';
-		str = str + '<li>ERP 브랜드 오류 : 온라인에서 관리되지 않는 ERP 브랜드</li>';
+		str = str + '<li>WMS 브랜드 오류 : 온라인에서 관리되지 않는 WMS 브랜드</li>';
 		str = str + '<li>이미지 유형 오류 : 온라인에서 관리되지 않는 이미지유형</li>';
 		str = str + '<li>상품이미지 필수 오류 : A타입 : IMG_PATH1: 정사각형이미지(앞면),IMG_PATH3: 작사각형이미지(정면),<br/></li>';
 		str = str + '<span style="padding-left:185px;"></span>';
@@ -420,7 +416,6 @@
 		str = str + '<li>품목의 고시정보 없음 : 품목의 고시분류 매핑이 안되어 있는 경우</li>';
 		str = str + '<li>고시분류 오류 : 등록요청 고시분류 와 온라인에서 품목과 매핑된 고시분류가 다른 경우</li>';
 		str = str + '- <em>상품등록</em>';
-		str = str + '<li>ERP 상품 사이즈 정보 없음 : ERP에 상품코드의 사이즈가 없을 경우</li>';
 		str = str + '</ul>';
 		str = str + '</div></div></div>';
 

+ 46 - 12
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsPopupListForm.html

@@ -14,7 +14,7 @@
  * 1.0  2020.10.26   eskim       최초 작성
  *******************************************************************************
  -->
-	<div class="modalPopup" data-width="1600">
+	<div class="modalPopup" data-width="1700">
 	<div class="panelStyle">
 		<!-- TITLE -->
 		<div class="panelTitle">
@@ -41,6 +41,8 @@
 				<tr>
 					<th>업체/브랜드<em class="required" title="필수"></em></th>
 					<td colspan="3">
+						<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnY" value="Y"  checked/>자사</label>
+						<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnN" value="N"/>입점</label>
 						<select name="supplyCompCd" id="supplyCompCd">
 							<option value="" th:if="${sessionInfo.roleCd} != 'G001_B000'">[전체]</option>
 							<option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
@@ -87,25 +89,40 @@
 							</ul>
 						</div>
 					</td>
-					<th>년도/시즌</th>
+					<th>정상/이월 구분</th>
 					<td>
-						<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>
-						</select>
-						<select  name="seasonCd" id="seasonCd">
+						<select  name="formalGb" id="formalGb">
 							<option value="">[전체]</option>
-							<option th:if="${seasonList}" th:each="oneData, status : ${seasonList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+							<option th:if="${formalGbList}" th:each="oneData, status : ${formalGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 						</select>
 					</td>
+					
 				</tr>
 				<tr>
-					<th>정상/이월 구분</th>
+					<th>년도/시즌</th>
 					<td>
-						<select  name="formalGb" id="formalGb">
+						<!-- <select  name="styleYear" id="styleYear">
 							<option value="">[전체]</option>
-							<option th:if="${formalGbList}" th:each="oneData, status : ${formalGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+							<option th:if="${styleYearList}" th:each="oneData, status : ${styleYearList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 						</select>
+						<select  name="seasonCd" id="seasonCd">
+							<option value="">[전체]</option>
+							<option th:if="${seasonList}" th:each="oneData, status : ${seasonList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+						</select> -->
+						<div class="multiCheckBox" style="width:140px;">
+							<button type="button" class="sltBtn">[전체]</button>
+							<ul style="overflow:auto; height:140px">
+								<li><label class="chkBox"><input type="checkbox" name="전체선택" id="multiStyleYear" onclick="uifnAllCheck('multiStyleYear')">전체선택</label></li>
+								<li th:if="${styleYearList}" th:each="oneData, status : ${styleYearList}"><label class="chkBox"><input type="checkbox" name="multiStyleYear" th:id="${'styleYear' + oneData.cd}" th:value="${oneData.cd}" ><th:block th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></th:block></label></li>
+							</ul>
+						</div>
+						<div class="multiCheckBox" style="width:170px;">
+							<button type="button" class="sltBtn">[전체]</button>
+							<ul style="overflow:auto; height:170px">
+								<li><label class="chkBox"><input type="checkbox" name="전체선택" id="multiSeasonCd" onclick="uifnAllCheck('multiSeasonCd')">전체선택</label></li>
+								<li th:if="${seasonList}" th:each="oneData, status : ${seasonList}"><label class="chkBox"><input type="checkbox" name="multiSeasonCd" th:id="${'seasonCd' + oneData.cd}" th:value="${oneData.cd}" ><th:block th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></th:block></label></li>
+							</ul>
+						</div>
 					</td>
 					<th>연령대</th>
 					<td>
@@ -486,6 +503,23 @@
 		
 		cfnCreateMultiCombo(actionUrl,"multiBrand",  "[전체]",null, 'Y', null, null, 'goodsPopupForm');
 	});
+	
+	// 자사/입점 변경여부
+	$("#goodsPopupForm input[name=selfYn]").bind('click change', function () {
+		var radioValue = $(this).val();
+		var selfGb = "S";	// 자사 공급 업체
+		if (radioValue == "N"){
+			selfGb = "E";	//입점 공급업체
+		}
+		
+		var actionUrl = '/renderer/supply/company/list/'+ selfGb;
+
+		$('#goodsPopupForm').find('#multiBrand').empty();
+		//$("#searchForm select[name=brandCd] option:gt(0)").remove();
+
+		cfnCreateCombo(actionUrl, $('#goodsPopupForm select[name=supplyCompCd]'), "[전체]", "");
+		
+	});
 
 	$(document).ready(function() {
 		cfnCreateCalendar('#sellTermsP', 'stDate', 'edDate', true, '등록일', 'X');
@@ -493,7 +527,7 @@
 		var selectCode = '<select  name="dateGbn" id="dateGbn"  class="w100">';
 		selectCode += '<option value="R" seledted>상품등록일</option>';
 		selectCode += '<option value="P">가격변경일</option>';
-		selectCode += '<option value="S">승인일</option>';
+		selectCode += '<option value="S">최초승인일</option>';
 		selectCode += '</select>';
 
 		$("#goodsPopupForm").find('#sellTermsP').prepend(selectCode);

+ 4 - 4
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsPriceReserveForm.html

@@ -172,14 +172,14 @@
 			,valueFormatter: function(params) {return params.value.addComma();}
 			,cellStyle : function(params){return { 'color': 'red'}}
 		},
-		{headerName: "예약시작일시", field: "applyStdt", width: 130, cellClass: 'text-center',
+		{headerName: "예약시작일시", field: "applyStdt", width: 150, cellClass: 'text-center',
 			cellRenderer: function(params) {
-				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD") : '';
+				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
 			}
 		},
-		{headerName: "예약종료일시", field: "applyEddt", width: 130, cellClass: 'text-center',
+		{headerName: "예약종료일시", field: "applyEddt", width: 150, cellClass: 'text-center',
 			cellRenderer: function(params) {
-				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD") : '';
+				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
 			}
 		},
 		{headerName: "등록일시", field: "regDt", width: 150, cellClass: 'text-center',

+ 21 - 10
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsPriceReservePopupForm.html

@@ -32,12 +32,22 @@
 					<tr>
 						<th>상품예약가격<em class="required" title="필수"></em></th>
 						<td><input type="text" class="w100p aR" id="resGoodsPrice" name="resGoodsPrice" maxlength="10" data-valid-type="numeric" /></td>
-						<th>예약일<em class="required" title="필수"></em></th>
+						<th>예약일<em class="required" title="필수"></em></th>
 						<td>
 							<input name="applyStYMD" id="applyStYMD" type="text" class="w80 schDate" maxlength="10" required="required" data-valid-name="예약시작일" />
+							<select name="applyStHH" id="applyStHH" required="required" data-valid-name="예약 시작시간">
+								<th:block th:each="num, index  : ${#numbers.sequence(0,23)}">
+								<option  th:value="${#numbers.formatInteger(num,2)}" th:text="|${#numbers.formatInteger(num,2)}시|" >시간</option>
+								</th:block>
+							</select>
 							<input name="applyStdt" id="applyStdt" type="hidden" />
 							~
 							<input name="applyEdYMD" id="applyEdYMD" type="text" class="w80 schDate" maxlength="10" required="required" data-valid-name="예약 종료일" />
+							<select name="applyEdHH" id="applyEdHH" required="required" data-valid-name="예약 종료시간">
+								<th:block th:each="num: ${#numbers.sequence(0,23)}">
+								<option  th:value="${#numbers.formatInteger(num,2)}"  th:text="|${#numbers.formatInteger(num,2)}시|" th:selected="${#numbers.formatInteger(num,2)}==23 ? 'true'">시간</option>
+								</th:block>
+							</select>
 							<input name="applyEddt" id="applyEddt" type="hidden" />
 						</td>
 					</tr>
@@ -188,10 +198,14 @@
 
 		if (optCheck) return false;
 		
-		var applyStdt = $('#goodsPriceRsvtForm input[name=applyStYMD]').val().replaceAll("-","") ;
-		var applyEddt = $('#goodsPriceRsvtForm input[name=applyEdYMD]').val().replaceAll("-","");
+		var applyStdt = $('#goodsPriceRsvtForm input[name=applyStYMD]').val().replaceAll("-","") +
+		$('#goodsPriceRsvtForm select[name=applyStHH]').val() + "0000";
 
-		
+		var applyEddt = $('#goodsPriceRsvtForm input[name=applyEdYMD]').val().replaceAll("-","") +
+		$('#goodsPriceRsvtForm select[name=applyEdHH]').val() +"5959";
+
+		$('#goodsPriceRsvtForm input[name=applyStdt]').val(applyStdt);
+		$('#goodsPriceRsvtForm input[name=applyEddt]').val(applyEddt);
 
 		if ($('#goodsPriceRsvtForm input[name=applyStdt]').val() > $('#goodsPriceRsvtForm input[name=applyEddt]').val()) {
 			mcxDialog.alertC("예약 시작일자는 종료일자 보다 클 수 없습니다.", {
@@ -203,7 +217,7 @@
 			return false;
 		}
 
-		var toDateStr = new Date().format("YYYYMMDD");
+		var toDateStr = new Date().format("YYYYMMDDHHmmss");
 
 		if (toDateStr >= applyStdt){
 			mcxDialog.alertC("예약 시작일자는 현재일자 보다 작거나 같을 수 없습니다.",  {
@@ -236,9 +250,6 @@
 					arrEndGoodsPrice.push(item.currPrice);
 				});
 				
-				$('#goodsPriceRsvtForm input[name=applyStdt]').val(applyStdt +"000000");
-				$('#goodsPriceRsvtForm input[name=applyEddt]').val(applyEddt +"235959");
-
 				var data = {resGoodsPrice : $('#goodsPriceRsvtForm input[name=resGoodsPrice]').val()
 							, applyStdt : $('#goodsPriceRsvtForm input[name=applyStdt]').val()
 							, applyEddt : $('#goodsPriceRsvtForm input[name=applyEddt]').val()
@@ -305,8 +316,8 @@
 
 	//창종료
 	var fnGoodsPriceRsvtListFormClose = function(){
-		uifnPopupClose('popupGoodsTitleReserve');
-		fnGoodsTnmResDeleteCollBack();
+		uifnPopupClose('popupGoodsPriceReserve');
+		fnGoodsPriceResDeleteCollBack();
 	}
 
 	$(document).ready(function() {

+ 25 - 5
style24.admin/src/main/webapp/WEB-INF/views/stock/GoodsSizeStockForm.html

@@ -49,6 +49,8 @@
 					<tr>
 						<th>업체/브랜드<em class="required" title="필수"></em></th>
 						<td colspan="3">
+							<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnY" value="Y"  checked/>자사</label>
+							<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnN" value="N"/>입점</label>
 							<select name="supplyCompCd" id="supplyCompCd">
 								<option value="" th:if="${sessionInfo.roleCd} != 'G001_B000'">[전체]</option>
 								<option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
@@ -205,7 +207,6 @@
 	var sessRoleCd = [[${sessionInfo.roleCd}]];
 	var goodsStatList = gagajf.convertToArray([[${goodsStatList}]]);
 	var formalGbList = gagajf.convertToArray([[${formalGbList}]]);
-	var siteList = gagajf.convertToArray([[${siteList}]]);
 	var columnDefs = [];
 	
 	columnDefs = [
@@ -293,16 +294,17 @@
 		fnInit();
 	});
 	
-	var fnInit = function(){
-		$("#goodsSizeStockForm input[name=siteCd]").prop("disabled", true);
-		$("#goodsSizeStockForm input[name=siteCd]").addClass("formControl");
+	var fnInit = function(){debugger;
 		
 		$('#goodsSizeStockForm')[0].reset();
 		//$("#goodsSizeStockForm input[type=radio]").removeClass("checked");
 		$("#goodsSizeStockForm input[type=checkbox]").removeClass("checked");
 		//$("#goodsSizeStockForm input[type=radio]").parent("label").removeClass("checked");
 		$("#goodsSizeStockForm input[type=checkbox]").parent("label").removeClass("checked");
-		$("#goodsSizeStockForm input[type=radio][checked]").parent("label").addClass("checked");
+		//$("#goodsSizeStockForm input[type=radio][checked]").parent("label").addClass("checked");
+		
+		$("#goodsSizeStockForm input[name=selfYn]:input[value='Y']").trigger('click');
+		
 	}
 	
 	// 조회클릭시
@@ -523,6 +525,24 @@
 		fnGoodsListSearch("EXCELRESULT");
 	}
 	
+	// 자사/입점 변경여부
+	$("#goodsSizeStockForm input[name=selfYn]").bind('click change', function () {
+	//$('#goodsSizeStockForm input[name=selfYn]').on('change', function() {debugger;
+		var radioValue = $(this).val();
+		var selfGb = "S";	// 자사 공급 업체
+		if (radioValue == "N"){
+			selfGb = "E";	//입점 공급업체
+		}
+		
+		var actionUrl = '/renderer/supply/company/list/'+ selfGb;	
+
+		$("#goodsSizeStockForm select[name=brandCd] option:gt(0)").remove();
+
+		cfnCreateCombo(actionUrl, $('#goodsSizeStockForm select[name=supplyCompCd]'), "[전체]", "");
+
+		
+	});
+	
 	$(document).ready(function() {
 		
 		// Create a agGrid

+ 3 - 3
style24.admin/src/main/webapp/ux/plugins/gaga/gaga.validation.js

@@ -485,12 +485,12 @@ var gagajf = {
 	},
 
 	/**
-	 * formId의 input의 data-valid-type이 integer, real인 경우에 값에 comma(,)를 자동으로 제거한다.
+	 * formId의 input의 data-valid-type이 integer, real, numeric 인 경우에 값에 comma(,)를 자동으로 제거한다.
 	 * 사용) gagajf.removeCommaAtNumberFormattedInput('#registerForm');
 	 */
 	removeCommaAtNumberFormattedInput : function(formId) {
 		$(formId).find('input').each(function(idx, el) {
-			if ($(el).data('validType') == 'integer' || $(el).data('validType') == 'real') {
+			if ($(el).data('validType') == 'integer' || $(el).data('validType') == 'real' || $(el).data('validType') == 'numeric') {
 				$(el).val($(el).val().removeComma());
 			}
 		});
@@ -533,7 +533,7 @@ var gagajf = {
 		gagajf.removeCommaAtNumberFormattedInput(formId);
 
 		var jsonData = JSON.stringify($(formId).serializeObject());
-
+		
 		$.ajax({
 			type : 'POST',
 			url : actionUrl,