Procházet zdrojové kódy

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

card007 před 4 roky
rodič
revize
88c9417385

+ 10 - 0
src/main/java/com/style24/admin/biz/dao/TsaGoodsDao.java

@@ -617,6 +617,16 @@ public interface TsaGoodsDao {
 	 * @since 2020. 11. 12
 	 */
 	void deleteGoodResSell(GoodsResSell goodsResSell);
+	
+	/**
+	 * 상품예약판매 출고예정일 수정
+	 *
+	 * @param goodsResSell
+	 * @return void
+	 * @author jmh
+	 * @since 2021. 08. 11
+	 */
+	void updateGoodResSellDelvResDt(GoodsResSell goodsResSell);
 
 	/**
 	 * 네이버 EP 제외 상품 목록 건수

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

@@ -1916,6 +1916,24 @@ public class TsaGoodsService {
 			idx++;
 		}
 	}
+	
+	/**
+	 * 상품예약판매 출고예정일수정
+	 *
+	 * @param goodsResSell
+	 * @return void
+	 * @author jmh
+	 * @since 2021. 08. 11
+	 */
+	@Transactional("shopTxnManager")
+	public void changeGoodsResSellDelvResDt(Collection<GoodsResSell> goodsResSellList) {
+		for (GoodsResSell item : goodsResSellList) {
+			item.setUpdNo(TsaSession.getInfo().getUserNo());
+			goodsDao.updateGoodResSellDelvResDt(item);
+		}
+	}
+	
+	
 
 	/**
 	 * 상품 상세공지 목록

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

@@ -2217,6 +2217,21 @@ public class TsaGoodsController extends TsaBaseController {
 		goodsService.deleteGoodsResSell(goodsResSell);
 		return super.ok(message.getMessage("SUCC_0003"));
 	}
+	
+	/**
+	 * 상품예약판매 출고예정일변경
+	 *
+	 * @param goodsResSell
+	 * @return GagaResponse
+	 * @author jmh
+	 * @since 2021. 08. 11
+	 */
+	@PostMapping("/reserve/sell/change")
+	@ResponseBody
+	public GagaResponse changeGoodsResSellDelvResDt(@RequestBody Collection<GoodsResSell> goodsResSellList) {
+		goodsService.changeGoodsResSellDelvResDt(goodsResSellList);
+		return super.ok(message.getMessage("SUCC_0002"));
+	}
 
 	/**
 	 * 상품 상세공지 화면

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

@@ -2308,7 +2308,7 @@
 		                   , G.GOODS_STAT
 		                   , GR.GOODS_RES_SELL_SQ
 		                   , GR.USE_YN
-		                   , DATE_FORMAT(GR.DELV_RES_DT,'%Y%m%d%H%i%S') AS DELV_RES_DT
+		                   , DATE_FORMAT(GR.DELV_RES_DT,'%Y-%m-%d') AS DELV_RES_DT
 		                   , GR.REG_NO
 		                   , FN_GET_USER_NM(GR.REG_NO) AS REG_NM
 		                   , DATE_FORMAT(GR.REG_DT,'%Y%m%d%H%i%S') AS REG_DT
@@ -2414,6 +2414,17 @@
 		WHERE GOODS_RES_SELL_SQ = #{goodsResSellSq}
 	</delete>
 	
+	<!-- 상품예약판매 출고예정일 수정 -->
+	<update id="updateGoodResSellDelvResDt" parameterType="GoodsResSell">
+		/* TsaGoods.updateGoodResSellDelvResDt */
+		UPDATE TB_GOODS_RES_SELL
+		SET DELV_RES_DT = STR_TO_DATE(#{delvResDt},'%Y-%m-%d')
+			, UPD_NO = #{updNo}
+			, UPD_DT = NOW() 
+		WHERE GOODS_RES_SELL_SQ = #{goodsResSellSq}
+		AND  DATE(NOW()) <![CDATA[<]]> STR_TO_DATE(#{delvResDt},'%Y-%m-%d')
+	</update>
+	
 	<!-- 네이버 EP 제외 상품 목록 건수 -->
 	<select id="getGoodsEpSkipCount" parameterType="GoodsSearch" resultType="int">
 		/* TsaGoods.getGoodsEpSkipCount */

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

@@ -179,6 +179,7 @@
 		  FROM TB_GOODS G
 		 INNER JOIN TB_DELV_FEE_POLICY DFP
 		    ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
+		   AND G.SUPPLY_COMP_CD = DFP.SUPPLY_COMP_CD
 		 WHERE G.GOODS_CD = #{goodsCd}
 		   AND NOT EXISTS(SELECT 1
 							FROM TB_DELIVERY_FEE

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

@@ -638,6 +638,7 @@
 		  JOIN TB_ORDER_DETAIL_ITEM   C ON OD.ORD_DTL_NO  = C.ORD_DTL_NO  
 		  JOIN TB_ORDER_RECALL_EXCEPTION_ITEM D ON C.ORD_DTL_NO = D.ORDER_DTL_NO 
 		  JOIN TB_DELV_FEE_POLICY     P ON OD.DELV_FEE_CD = P.DELV_FEE_CD 
+		                                  AND OD.SUPPLY_COMP_CD = P.SUPPLY_COMP_CD 
 		 WHERE A.ORD_CHG_SQ = #{ordChgSq}
 	</select>
 	

+ 2 - 2
src/main/webapp/WEB-INF/views/common/fragments/gnb.html

@@ -39,7 +39,7 @@
 		<!-- 사용자,권한,로그아웃-->
 		<div class="header-info">
 			<i class="heart">&#10084;</i>
-			<a><strong th:text="${sessionInfo.userNm}">홍길동</strong></a>
+			<a><strong th:text="${sessionInfo.userNm + ' (' + sessionInfo.userId + ')'}">홍길동</strong></a>
 			<i class="dot">&bull;</i>
 			<a th:text="${sessionInfo.roleNm}">Director</a>
 			<i class="dot">&bull;</i>
@@ -53,7 +53,7 @@
 		<div class="header-info-sm">
 			<a class="tooltip">
 				<i class="fa fa-user"></i>
-				<span class="tooltiptext" th:text="${sessionInfo.userNm + '(' + sessionInfo.roleNm + ')'}">홍길동 (Director)</span>
+				<span class="tooltiptext" th:text="${sessionInfo.userNm + ' (' + sessionInfo.userId + ') / ' + sessionInfo.roleNm}">홍길동 (Director)</span>
 			</a>
 			<a href="#" th:href="@{/logout}" class="tooltip">
 				<i class="fa fa-chain-broken"></i>

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

@@ -81,7 +81,7 @@
 						<th>원산지<em class="required" title="필수"></em></th>
 						<td ><select name="originCd" id="originCd">
 								<option value="">[전체]</option>
-								<option th:if="${makOriginList}" th:each="oneData, status : ${makOriginList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+								<option th:if="${makOriginList}" th:each="oneData, status : ${makOriginList}" th:value="${oneData.cd}" th:selected="${oneData.cd == 'G076_021'}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 							</select>
 						</td>
 						<td colspan="2"></td>
@@ -232,6 +232,9 @@
 	
 	$(document).ready(function() {
 		gagaAgGrid.createGrid('gridGoodsDealList', gridGoodsDealOptions);
+		
+		// 기본값 설정
+		$("#makeYmd").val(_today.replaceAll("-", ""));
 
 	});
 	

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

@@ -83,6 +83,7 @@
 					<button type="button" class="btn btn-base btn-lg" id="btnGoodsExcelUpLoad">엑셀조회</button>
 					<button type="button" class="btn btn-success  btn-lg" id="btnGoodsResSellSave">예약판매등록</button>
 					<button type="button" class="btn btn-danger btn-lg" id="btnGoodsResSellDelete">예약판매삭제</button>
+					<button type="button" class="btn btn-success  btn-lg" id="btnGoodsResSellChange">출고예정일변경</button>
 				</li>
 				<li class="right">
 					검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>&nbsp;
@@ -135,9 +136,15 @@
 			valueParser: function (params) { return gagaAgGrid.lookupKey(goodsStatList, params.newValue); }
 		},
 		{headerName: "출고예정일", field: "delvResDt", width: 150, cellClass: 'text-center',
-			cellRenderer: function(params) {
-				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD") : '';
-			}
+			editable: function(params) {
+				if( _today.replaceAll("-", "") < params.data.delvResDt.replaceAll("-", "")){
+					return true;
+				}else{
+					return false
+				}
+			},
+			cellEditor: 'datePicker',
+			cellEditorParams: { maxlength: 10, required: true }
 		},
 /*		{headerName: "사용여부", field: "useYn", width: 140, cellClass: 'text-center'},*/
 		{headerName: "등록일시", field: "regDt", width: 150, cellClass: 'text-center',
@@ -160,6 +167,8 @@
 	// 중복 선택 가능
 	gridOptions.rowSelection = 'multiple';
 	gridOptions.suppressRowClickSelection = true;
+	gridOptions.stopEditingWhenGridLosesFocus = true;
+	//gridOptions.defaultColDef.editable = true;
 	//gridOptions.rowHeight = 60; //이미지가 있을경우 높이 지정해야함.
 
 	// Row Click
@@ -381,6 +390,47 @@
 		
 	});
 	
+	//출고예정일변경
+	$('#btnGoodsResSellChange').click(function(e) {
+		//상품선택여부 확인처리 추가
+		var selectedData = gridOptions.api.getSelectedRows();
+
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 행이 없습니다.');
+			return false;
+		}
+		
+		var arrGoods = [];
+		var chkFlag = false;
+		$.each(selectedData, function(idx, item) {
+			
+			if( item.delvResDt == _today){
+				chkFlag = true;
+				mcxDialog.alertC("당일로는 변경할 수 없습니다.", {
+					sureBtnText: "확인",
+					sureBtnClick: function(){
+						//$('#goodsResSellForm input[name=applyEdYMD]').focus();
+					}
+				});
+				return false;
+			}
+			arrGoods.push(item);
+		});
+
+		if (chkFlag){
+			return;
+		}
+		mcxDialog.confirm('촐고예정일을 변경하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				var jsonData = JSON.stringify(arrGoods);
+				gagajf.ajaxJsonSubmit('/goods/reserve/sell/change', jsonData, fnGoodsResSellDeleteCallBack);
+			}
+		});
+		
+	});
+	
 	var fnGoodsResSellDeleteCallBack = function(){
 		fnGoodsResSellRegistListSearch($("#goodsResSellListForm input[name=searchGb]").val());
 	}