Просмотр исходного кода

Merge branch 'ST24PRJ-512' into jmh

jmh 4 лет назад
Родитель
Сommit
8d8e406374

+ 3 - 3
src/main/java/com/style24/admin/biz/service/TsaStockService.java

@@ -87,18 +87,18 @@ public class TsaStockService {
 	 */
 	public void getGoodsSizeStockExcelList(GoodsSearch goodsSearch, String excelFilenameWithPath) {
 		// 헤더 title 설정
-		String[] listTitles = {"브랜드명","상품명", "품목", "상품상태", "상품코드",  "옵션코드", "색상" , "사이즈", "품절여부",
+		String[] listTitles = {"브랜드명","상품명", "품목", "상품상태", "상품코드",  "옵션코드", "색상" , "사이즈", "SKUModelNo(WMS)", "품절여부",
 			"재고", "안전재고","출고대기", "판매가능재고"};
 
 		// DB 처리 시 사용되는 파라미터명(셀명) 설정
-		String[] cellNames = { "BRAND_ENM", "GOODS_NM", "ITEMKIND_NM","GOODS_STAT_NM","GOODS_CD", "OPT_CD", "OPT_CD1","OPT_CD2", "SOLDOUT_YN",
+		String[] cellNames = { "BRAND_ENM", "GOODS_NM", "ITEMKIND_NM","GOODS_STAT_NM","GOODS_CD", "OPT_CD", "OPT_CD1","OPT_CD2", "SKU_MODEL_NO", "SOLDOUT_YN",
 			"CURR_STOCK_QTY", "BASE_STOCK_QTY", "SALE_STOCK_QTY", "ABLE_STOCK_QTY"};
 
 		String[] cellTypes = {GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
 			GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
 			GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
 			GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
-			GagaExcelConstants.CellType.CHAR_CENTER.name(),
+			GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
 			GagaExcelConstants.CellType.CHAR_RIGHT.name(), GagaExcelConstants.CellType.CHAR_RIGHT.name(),
 			GagaExcelConstants.CellType.CHAR_RIGHT.name(), GagaExcelConstants.CellType.CHAR_RIGHT.name()
 		};

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

@@ -385,6 +385,7 @@
 		              , X.OPT_CD
 		              , X.OPT_CD1
 		              , X.OPT_CD2
+		              , X.SKU_MODEL_NO
 		              , X.SOLDOUT_YN
 		              , X.CURR_STOCK_QTY
 		              , X.BASE_STOCK_QTY
@@ -406,6 +407,7 @@
 		                          , ST.OPT_CD
 		                          , ST.OPT_CD1
 		                          , ST.OPT_CD2
+		                          , ST.SKU_MODEL_NO
 		                          , ST.SOLDOUT_YN
 		                          , ST.CURR_STOCK_QTY
 		                          , ST.BASE_STOCK_QTY

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

@@ -35,6 +35,11 @@
 				<input type="hidden" id="goodsType" name="goodsType" />
 				<input type="hidden" id="goodsComposeList" name="goodsComposeList" />
 				<input type="hidden" id="repGoodsCd" name="repGoodsCd" /> <!-- 대표상품(딜 가격) -->
+				<!-- 사용자검색어, 검색어 부분 (사용안함 히든처리) 21.11.22 -->
+				<input type="hidden" class="w60p" id="goodsSnm1" name="goodsSnm1"></input>
+				<input type="hidden" id="goodsSnm1Org" name="goodsSnm1Org"/>
+				<input type="hidden" id="goodsSnm" name="goodsSnm"></input>
+				
 			<div class="panelContent">
 				<table class="frmStyle">
 					<colgroup>
@@ -101,7 +106,7 @@
 									</colgroup>
 									<tbody>
 									<tr>
-										<td rowspan="4" style="text-align:center">
+										<td rowspan="6" style="text-align:center">
 										<img id="goodsImgUrl" src="" width="130px"/>
 										<input type="hidden" name="sysImgNm" id="sysImgNm" />
 										</td>
@@ -120,6 +125,7 @@
 											<input type="hidden" id="goodsNmOrg" name="goodsNmOrg"/>
 										</td>
 									</tr>
+									<!-- 21.11.22 사용안함으로 변경, 상단 히든으로 정의(기존데이터용)
 									<tr>
 										<th>사용자검색어</th>
 										<td colspan="5">
@@ -132,12 +138,10 @@
 										<th>검색어</th>
 										<td colspan="5">
 											<textarea class="textareaR2 w100p" id="goodsSnmTxt" name="goodsSnmTxt" disabled="disabled"></textarea>
-											<!-- <input type="text" class="w100p" id="goodsSnmTxt" name="goodsSnmTxt" disabled="disabled"></input> -->
 											<input type="hidden" id="goodsSnm" name="goodsSnm"></input>
 										</td>
-									</tr>
+									</tr> -->
 									<tr>
-										<td class="aC cRed" style="font-weight:bold;"><span id="goodsTypeNm"></span></td> <!-- 상품타입노출 -->
 										<th>정상/이월 구분<em class="required" title="필수"></em></th>
 										<td>
 											<label class="rdoBtn" th:if="${formalGbList}" th:each="oneData, status : ${formalGbList}" ><input type="radio" id="formalGb" name="formalGb" th:value="${oneData.cd}" th:text="${oneData.cdNm}" /></label>
@@ -159,7 +163,6 @@
 										</td>
 									</tr>
 									<tr>
-										<td rowspan="14">&nbsp;</td>
 										<th>시즌<em class="required" title="필수"></em></th>
 										<td >
 											<select  name="seasonCd" id="seasonCd">
@@ -217,6 +220,7 @@
 										</td>
 									</tr>
 									<tr class="chk_deal">
+										<td class="aC cRed" style="font-weight:bold;"><span id="goodsTypeNm"></span></td> <!-- 상품타입노출 -->
 										<th>상품연령대</th>
 										<td>
 											<select  name="ageGrpCd" id="ageGrpCd">
@@ -235,6 +239,7 @@
 										<td><span id="priceUpdDtTxt"></span></td>
 									</tr>
 									<tr>
+										<td rowspan="12">&nbsp;</td>
 										<th>정상가<em class="required" title="필수"></em></th>
 										<td>
 											<input type="text" class="w80p aR" id="listPrice" name="listPrice" maxlength="10" data-valid-type="numeric"/> 원

+ 15 - 0
src/main/webapp/WEB-INF/views/goods/GoodsListForm.html

@@ -427,6 +427,16 @@
 		{headerName: 'No', width: 60, cellClass: 'text-center',
 			valueGetter: function(params) { return cfnGridNumner('searchForm',params.node.rowIndex, 'A');}
 		},
+		{
+			headerName		: "미리보기"
+			, field			: "goodsCd"
+			, width			: 100
+			, cellClass		: 'text-center'
+			, cellRenderer: function (params) {
+				var retStr = '<button type="button" class="btn btn-base btn-sm" onclick="btnGoodsDetailPreview(\'' + params.data.goodsCd + '\');">미리보기</button>';
+				return retStr;
+			}
+		},
 		{headerName: "이미지", field: "sysImgNm", width: 100, height: 60, cellClass: 'text-center'
 			,cellRenderer: function(params) {
 				return '<img width="60" src="'+ _goodsUrl+ "/" + params.value + '?RS=60" alt="" onclick="cfnOpenImagePreViewPopup(\'goodsImgView\', \''+ _goodsUrl+ "/" + params.value +'\')" onerror="this.src=\'/image/no.png\';"/>';
@@ -1251,6 +1261,11 @@
 		cfnCreateDelvPolicyCombo( $('#searchForm input[name=statSupplyCompCd]').val(), $('#searchForm select[name=delvFeeCdC]'), "[선택]");
 	}
 	
+	// 미리보기
+	var btnGoodsDetailPreview = function(cd){
+		cfnOpenFrontGoodsPopup(cd);
+	}
+	
 	// 상품이미지 미리보기 레이어에서 창 종료 이벤트
 	$(document).on("mouseleave","#goodsImgView",function(){
 		$("#goodsImgView").remove();

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

@@ -121,7 +121,7 @@
 					<button type="button" class="btn btn-success btn-lg" id="btnGoodsExcelSave" 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>
 					<button type="button" class="btn btn-success  btn-lg" id="btnGoodsPriceResSave">예약등록</button>
 					<button type="button" class="btn btn-danger btn-lg" id="btnGoodsPriceResDelete">예약삭제</button>
-					<button type="button" class="btn btn-danger btn-lg" id="btnGoodsPriceResClose">종료</button>
+					<!-- <button type="button" class="btn btn-danger btn-lg" id="btnGoodsPriceResClose">종료</button> -->
 				</li>
 				<li class="right">
 					검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>&nbsp;

+ 14 - 4
src/main/webapp/WEB-INF/views/goods/GoodsPriceReservePopupForm.html

@@ -31,7 +31,7 @@
 					</colgroup>
 					<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>
+						<td><input type="text" class="w100p aR" id="resGoodsPrice" name="resGoodsPrice" maxlength="10" data-valid-type="pinteger" /></td>
 						<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="예약시작일" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
@@ -152,7 +152,17 @@
 			});
 			return false;
 		}
-
+		
+		if( 1 > $("#goodsPriceRsvtForm input[name=resGoodsPrice]").val()) {
+			mcxDialog.alertC("상품 예약가격을 입력하세요.",{
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$("#goodsPriceRsvtForm input[name=resGoodsPrice]").focus();
+				}
+			});
+			return false;
+		}
+		
 		var fromDate = $('#goodsPriceRsvtForm input[name=applyStYMD]').val();
 		var toDate = $('#goodsPriceRsvtForm input[name=applyEdYMD]').val();
 
@@ -188,7 +198,7 @@
 		
 		var optCheck = false;
 		$.each(allRowData, function(index, item) {
-			if (item.listPrice < $("#goodsPriceRsvtForm input[name=resGoodsPrice]").val()){
+			if (item.listPrice < $("#goodsPriceRsvtForm input[name=resGoodsPrice]").val().removeComma()){
 				optCheck = true;
 				mcxDialog.alertC("가격예약 상품중 정상가가 예약가 보다 낮은 상품이 상품이 존재합니다.<br/>확인해 주세요", {
 					sureBtnText: "확인",
@@ -265,7 +275,7 @@
 					arrEndGoodsPrice.push(item.currPrice);
 				});
 				
-				var data = {resGoodsPrice : $('#goodsPriceRsvtForm input[name=resGoodsPrice]').val()
+				var data = {resGoodsPrice : $('#goodsPriceRsvtForm input[name=resGoodsPrice]').val().removeComma()
 							, applyStdt : $('#goodsPriceRsvtForm input[name=applyStdt]').val()
 							, applyEddt : $('#goodsPriceRsvtForm input[name=applyEddt]').val()
 							, arrGoodsCd : arrGoodsCd

+ 13 - 11
src/main/webapp/WEB-INF/views/stock/GoodsSizeStockForm.html

@@ -199,7 +199,15 @@ x			</div>
 			valueGetter: function(params) { return cfnGridNumner('goodsSizeStockForm',params.node.rowIndex, 'A');}
 		},
 		{headerName: "브랜드명", field: "brandEnm", width: 130, cellClass: 'text-center'},
-		{headerName: "상품명", field: "goodsNm", width: 200, cellClass: 'text-left'},
+		{headerName: "상품명", field: "goodsNm", width: 200, cellClass: 'text-left',
+			cellRenderer: function(params) {
+				if (params.data.sizeSoldoutYn == "Y"){
+					return '<a href="javascript:void(0);" style="color:red">' + params.value + '</a>';
+				}else{
+					return '<a href="javascript:void(0);">' + params.value + '</a>';	
+				}
+			}
+		},
 		{headerName: "품목", field: "itemkindNm", width: 180, cellClass: 'text-left',
 			cellRenderer: function (params) {
 				if (gagajf.isNull( params.value)){
@@ -214,17 +222,11 @@ x			</div>
 			valueFormatter: function (params) { return gagaAgGrid.lookupValue(goodsStatList, params.value); },
 			valueParser: function (params) { return gagaAgGrid.lookupKey(goodsStatList, params.newValue); }
 		},
-		{headerName: "상품코드", field: "goodsCd", width: 140, cellClass: 'text-center',
-			cellRenderer: function(params) {
-				if (params.data.sizeSoldoutYn == "Y"){
-					return '<a href="javascript:void(0);" style="color:red">' + params.value + '</a>';
-				}else{
-					return '<a href="javascript:void(0);">' + params.value + '</a>';	
-				}
-			}	
-		},
+		{headerName: "상품코드", field: "goodsCd", width: 140, cellClass: 'text-center'},			
+		{headerName: "옵션코드", field: "optCd", width: 100, cellClass: 'text-center'},
 		{headerName: "색상", field: "optCd1", width: 100, cellClass: 'text-center'},
 		{headerName: "사이즈", field: "optCd2", width: 100, cellClass: 'text-center'},
+		{headerName: "SKUModelNo(WMS)", field: "skuModelNo", width: 140, cellClass: 'text-center'},
 		{headerName: "품절여부", field: "soldoutYn", width: 100, cellClass: 'text-center',
 			cellStyle : function(params){
 				var color = "";
@@ -267,7 +269,7 @@ x			</div>
 	// Row Click
 	gridOptions.onCellClicked = function(event) {
 		var goodsCd = event.data.goodsCd;
-		if (event.colDef.field == "goodsCd"){
+		if (event.colDef.field == "goodsNm"){
 			cfnOpenGoodsDetailPopup('U',goodsCd);
 		}
 	}