tsit05 il y a 5 ans
Parent
commit
17bf16da38

+ 21 - 0
src/main/java/com/style24/admin/biz/dao/TsaDeliveryDao.java

@@ -67,6 +67,17 @@ public interface TsaDeliveryDao {
 	 */
 	int saveChangeInvoice(Delivery delivery);
 	
+	/**
+	 * 송장번호 변경
+	 *
+	 * @param delivery 
+	 * @return int
+	 * @author moon
+	 * @since 2021. 06. 08
+	 */
+	int updateOrderDtlInvoice(Delivery delivery);
+	
+	
 	
 	/**
 	 * 주문 상태 값 변경
@@ -340,4 +351,14 @@ public interface TsaDeliveryDao {
 	 */
 	Collection<Delivery> getExchangeDelvFailList(Delivery delivery);
 	
+	/**
+	 * 수동 결품 
+	 *
+	 * @param delivery 
+	 * @return int
+	 * @author moon
+	 * @since 2021. 06. 08
+	 */
+	int updateSoldOut(Delivery delivery);
+	
 }

+ 13 - 2
src/main/java/com/style24/admin/biz/service/TsaDeliveryService.java

@@ -227,14 +227,16 @@ public class TsaDeliveryService {
 			oneDelivery.setRegNo(userId);
 			
 			// 송장번호 변경
-			deliveryDao.saveChangeInvoice(oneDelivery);
+			int rtn = deliveryDao.saveChangeInvoice(oneDelivery);
+			
+			deliveryDao.updateOrderDtlInvoice(oneDelivery);
 			
 			// 주문상세이력
 			Order order = new Order();
 			order.setOrdDtlNo(oneDelivery.getOrdDtlNo());
 			order.setUpdNo(userId);
 			order.setRegNo(userId);
-			orderDao.createOrderDetailHst(order);			
+			orderDao.createOrderDetailHst(order);
 		}
 	}	
 	
@@ -263,10 +265,19 @@ public class TsaDeliveryService {
 			param.setAccountNo(item.getAccountNo());
 			param.setOrdDtlNo(item.getOrdDtlNo());
 			param.setCnclRtnQty(item.getSaleQty());
+			param.setOrdPhnno(item.getOrdPhnno());
+			log.info("item.getOrdPhnno(): "+item.getOrdPhnno());
 			ordSoldoutList.add(param);
 			
 		}
 		coreDeliveryService.cancelSoldout(ordSoldoutList,userNo, "N"); 
+		
+		for(Delivery data : soldoutList) {
+			data.setSoldoutMemo("수동 품절처리");
+			data.setUpdNo(userNo);
+			deliveryDao.updateSoldOut(data);
+		}
+		
 	}	
 	
 	

+ 11 - 0
src/main/java/com/style24/persistence/domain/Delivery.java

@@ -1,5 +1,7 @@
 package com.style24.persistence.domain;
 
+import java.util.Collection;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 import com.style24.persistence.TscPageRequest;
@@ -72,6 +74,10 @@ public class Delivery extends TscBaseDomain {
 	private String termGb;
 	private String stDate;
 	private String edDate;
+	private String stDate2;
+	private String edDate2;
+	private String stDate3;
+	private String edDate3;
 	private String ordDt;       	// 주문일시
 	private String payDt;       	// 결제일시
 	private String extmallId;   	// 외부몰
@@ -105,6 +111,11 @@ public class Delivery extends TscBaseDomain {
 	private String bankCd;
 	private String accountNm;
 	private String accountNo;
+	private String invcTracking;
+	private String orgInvoiceNo;
+	private String soldoutMemo;
+	private String soldoutRegNo;
+	
 	
 	private Integer ordDtlNo;
 	private Integer ordNo;

+ 37 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsaDelivery.xml

@@ -73,6 +73,7 @@
 		    , (SELECT BD.BRAND_KNM FROM TB_BRAND BD WHERE BD.BRAND_CD = Z.BRAND_CD ) AS BRAND_NM
 		    , FN_GET_CODE_NM('G056', Z.GOODS_TYPE ) AS GOODS_TYPE_NM 
 		    , (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY S WHERE S.SUPPLY_COMP_CD = Z.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM 
+		    , IFNULL((SELECT SWT_TRC_SEND_YN FROM TB_ORDER_DETAIL_INVOICE V WHERE V.ORD_NO = Z.ORD_NO AND V.ORD_DTL_NO = Z.ORD_DTL_NO AND V.INVOICE_NO = Z.INVOICE_NO  ),'N') AS INVC_TRACKING 
 		FROM (
 		    SELECT A.*, ROW_NUMBER() OVER(ORDER BY  A.ORD_NO DESC, A.ORD_DTL_NO) RNUM 
 		    FROM (
@@ -128,6 +129,7 @@
 						    , A.BANK_CD 
 						    , A.ACCOUNT_NO 
 						    , A.ACCOUNT_NM 
+						    , A.ORD_PHNNO
 					  FROM (
 							SELECT 
 								  A.ORD_NO     -- 주문번호
@@ -175,6 +177,7 @@
 							    , T.BANK_CD 
 							    , T.ACCOUNT_NO 
 							    , T.ACCOUNT_NM 
+							    , A.ORD_PHNNO
 							FROM  TB_ORDER A 
 							      INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
 								  INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON B.ORD_DTL_NO   = ODI.ORD_DTL_NO
@@ -234,6 +237,7 @@
 							    , T.BANK_CD 
 							    , T.ACCOUNT_NO 
 							    , T.ACCOUNT_NM 
+							    , A.ORD_PHNNO
 							FROM  TB_ORDER A 
 							      INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
 							      INNER JOIN TB_GOODS C               ON B.GOODS_CD     = C.GOODS_CD
@@ -407,7 +411,18 @@
 		WHERE  ORD_DTL_NO   = #{ordDtlNo}
 	</update>
 		
-
+	<!-- 송장번호  변경 -->
+	<update id="updateOrderDtlInvoice" parameterType="Delivery" >
+		/* TsaDelivery.updateOrderDtlInvoice */
+		 UPDATE TB_ORDER_DETAIL_INVOICE SET
+			   INVOICE_NO      = #{invoiceNo}
+			 , SWT_TRC_SEND_YN = 'N'
+			 , UPD_NO          = #{updNo}
+			 , UPD_DT          = NOW()
+		 WHERE ORD_DTL_NO = #{ordDtlNo}
+		   AND INVOICE_NO = #{orgInvoiceNo}
+	</update>
+			
 	
 	<!-- 출고금지상품 목록 -->
 	<select id="getBangoodsList" parameterType="Delivery" resultType="Delivery">
@@ -425,6 +440,7 @@
 			, DBG.DELV_BAN_STDT 
 			, DBG.DELV_BAN_EDDT	
 			, DBG.DELV_BAN_GOODS_SQ
+			, DBG.REG_DT
 		FROM  TB_DELIVERY_BAN_GOODS DBG
 		INNER JOIN TB_GOODS        G    ON DBG.GOODS_CD = G.GOODS_CD
 		INNER JOIN TB_BRAND        B    ON G.BRAND_CD = B.BRAND_CD
@@ -452,6 +468,12 @@
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
 			AND DBG.REG_DT BETWEEN STR_TO_DATE(CONCAT(#{stDate},' 000000'),'%Y-%m-%d %H%i%S') AND STR_TO_DATE(CONCAT(#{edDate},' 235959'), '%Y-%m-%d %H%i%S')
 		</if>
+		<if test="stDate2 != null and stDate2 != '' and edDate2 != null and edDate2 != ''">
+			AND DBG.DELV_BAN_STDT BETWEEN STR_TO_DATE(CONCAT(#{stDate2},' 000000'),'%Y-%m-%d %H%i%S') AND STR_TO_DATE(CONCAT(#{edDate2},' 235959'), '%Y-%m-%d %H%i%S')
+		</if>
+		<if test="stDate3 != null and stDate3 != '' and edDate3 != null and edDate3 != ''">
+			AND DBG.DELV_BAN_EDDT BETWEEN STR_TO_DATE(CONCAT(#{stDate3},' 000000'),'%Y-%m-%d %H%i%S') AND STR_TO_DATE(CONCAT(#{edDate3},' 235959'), '%Y-%m-%d %H%i%S')
+		</if>				
 	</select>
 
 	<!-- 출고금지상품 삭제 -->
@@ -1187,5 +1209,18 @@
 		ORDER  BY EDF.REG_DT ASC
 	</select>
 		
-	
+	<!-- 수동 품절  -->
+	<update id="updateSoldOut" parameterType="Delivery" >
+		/* TsaDelivery.updateSoldOut */
+		 UPDATE TB_ORDER_DETAIL SET
+			   SOLDOUT_YN     = 'Y'
+			 , SOLDOUT_MEMO   = #{soldoutMemo}
+			 , SOLDOUT_REG_NO = #{updNo}
+			 , SOLDOUT_REG_DT = NOW()
+			 , UPD_NO         = #{updNo}
+			 , UPD_DT         = NOW()
+		 WHERE ORD_NO     = #{ordNo} 
+		   AND ORD_DTL_NO = #{ordDtlNo}
+	</update>
+		
 </mapper>

+ 22 - 4
src/main/webapp/WEB-INF/views/delivery/BangoodsListForm.html

@@ -39,9 +39,9 @@
 					<table class="frmStyle">
 						<colgroup>
 							<col style="width:8%;"/>
-							<col style="width:12%;"/>
+							<col style="width:30%;"/>
 							<col style="width:8%;"/>
-							<col style="width:12%;"/>
+							<col style="width:30%;"/>
 						</colgroup>
 						<tr>
 							<th class="dashR">업체/브랜드</th>
@@ -75,7 +75,8 @@
 							</td>
 							<th class="dashR">삭제여부</th>
 							<td class="dashR">
-								<select name="delYn" id="delYn">
+								<select name="delYn" id="delYn" class="w80">
+									<option value="">전체</option>
 									<option value="N">N</option>
 									<option value="Y">Y</option>
 								</select>
@@ -87,6 +88,16 @@
 								<span id="terms"></span>
 							</td>
 						</tr>
+						<tr>
+							<th class="dashR">출고금지시작일자</th>
+							<td colspan="" class="dashR">
+								<span id="terms2"></span>
+							</td>
+							<th class="dashR">출고금지종료일자</th>
+							<td colspan="" class="dashR">
+								<span id="terms3"></span>
+							</td>
+						</tr>			
 					</table>
 	
 					<ul class="panelBar">
@@ -162,7 +173,8 @@
 		{headerName: "옵션2",			field: "optCd2",		width: 80,	cellClass: 'text-center'},
 		{headerName: "상품상태",		field: "goodsStat",		width: 80,	cellClass: 'text-center'},
 		{headerName: "출고금지시작일자",	field: "delvBanStdt",	width: 150,	cellClass: 'text-center', cellRenderer: function (params) { return gagaAgGrid.toDateFormat(params.value); }},
-		{headerName: "출고금지종료일자",	field: "delvBanEddt",	width: 150,	cellClass: 'text-center', cellRenderer: function (params) { return gagaAgGrid.toDateFormat(params.value); }}
+		{headerName: "출고금지종료일자",	field: "delvBanEddt",	width: 150,	cellClass: 'text-center', cellRenderer: function (params) { return gagaAgGrid.toDateFormat(params.value); }},
+		{headerName: "등록일자",		field: "regDt",			width: 100,	cellClass: 'text-center', cellRenderer: function (params) { return gagaAgGrid.toDateFormat(params.value); }}
 		
 	];
 
@@ -314,7 +326,13 @@
 
 	$(document).ready(function() {
 		gagaAgGrid.createGrid('gridList', gridOptions);
+		var hideList = ["btnThisWeek", "btnYesterWeek", "btnRecentMonth", "btnThisMonth", "btnYesterMonth", "btnRecent3Month"];
+		
 		cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '출고금지상품관리');
+		cfnCreateCalendar('#terms2', 'stDate2', 'edDate2', true, '출고금지상품관리','',hideList);
+		cfnCreateCalendar('#terms3', 'stDate3', 'edDate3', true, '출고금지상품관리','',hideList);
+		
+		
 		//var hideList = ["btnThisWeek", "btnYesterWeek", "btnRecentMonth", "btnThisMonth", "btnYesterMonth", "btnRecent3Month"];
 		//cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '출고금지상품관리', '', hideList);
 		fnInitCalendar();

+ 7 - 4
src/main/webapp/WEB-INF/views/delivery/DeliveryListForm.html

@@ -69,8 +69,8 @@
 
 						<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>
+							<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnY" value="Y"  >자사</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>
@@ -281,13 +281,14 @@
 		{headerName: "몰구분", 		field: "mallGbNm", 		width: 70, cellClass: 'text-center'},
 		{headerName: "주문자", 		field: "ordNm", 		width: 100, cellClass: 'text-center',
 			cellRenderer: function (params) {
-				if (roleCd.indexOf("C") < 0 && !gagajf.isNull(params.value) && params.data.mallGb === 'G011_10') {
+				if (roleCd.indexOf("C") < 0 && !gagajf.isNull(params.value) && params.data.mallGb === 'G011_10' && params.data.custNo > 0) {
 					return '<a href="javascript:void(0);" onclick=\"cfnOpenCustDetailPopup(' + params.data.custNo + ');\">' + params.data.ordNm + '</a>';
 				} else {
 					return params.data.ordNm;
 				}
 			}
 		},
+		{headerName: "휴대번호", 		field: "ordPhnno", 		width: 100, cellClass: 'text-center'},
 		{headerName: "수령인", 		field: "recipNm", 		width: 100, cellClass: 'text-center'},
 		{headerName: "공급업체", 		field: "supplyCompNm", 	width: 150, cellClass: 'text-center'},
 		{headerName: "브랜드", 		field: "supplyCompNm", 	width: 150, cellClass: 'text-center'},
@@ -333,6 +334,7 @@
 		{headerName: "출고택배사", 	field: "shipCompCd", 	width: 170, cellClass: 'text-center'
 			, valueGetter: function (params) { return gagaAgGrid.lookupValue(shipCompanyList, params.data.shipCompCd); }
 		},
+		{headerName: "배송추적", 		field: "invcTracking", 	width: 80, cellClass: 'text-center'},
 		{headerName: "출고송장", 		field: "invoiceNo", 	width: 150, cellClass: 'text-left'},
 		{headerName: "송장등록수정", 	field: "invoiceNo", 	width: 120, cellClass: 'text-center'
 			, cellRenderer : function (params) {
@@ -591,7 +593,8 @@
 		$(".btnToday").trigger('click');
 		$('#searchForm select[name=mallGb]').trigger('change');
 		$("#searchForm input[name=selfYn]").trigger('click');
-		//uifnFitGrid('auto'); // TO-BE 지워야됨  
+		$("#searchForm input[name='selfYn']:radio[value='Y']").prop('checked',true);
+
 	});
 
 	/*]]>*/

+ 9 - 2
src/main/webapp/WEB-INF/views/delivery/SaveInvoiceForm.html

@@ -63,12 +63,17 @@
 /* 이벤트 바인딩 관련 */
 	var ordDtlNo = [[${ordDelivery.ordDtlNo}]];
 	var ordDtlStat = [[${ordDelivery.ordDtlStat}]];
-
+	var orgInvoiceNo  = [[${ordDelivery.invoiceNo}]];
+	var orgShipCompCd = [[${ordDelivery.shipCompCd}]];  
 	/* 환불계좌번호 저장 */
 	var fnSaveAccount = function(){
 		var shipCompCd = $("#saveInvoiceForm select[name=shipCompany]").val();
 		var invoiceNo = $("#saveInvoiceForm input[name=invoiceNo]").val();
-
+		
+		if(orgInvoiceNo == invoiceNo && orgShipCompCd == shipCompCd){
+			mcxDialog.alert('변경된 내역이 없습니다.');
+			return;
+		}
 
 		if(gagajf.isNull(shipCompCd)) {
 			mcxDialog.alert('택배사 선택을 해주세요.');
@@ -89,9 +94,11 @@
 					param.shipCompCd = shipCompCd;
 					param.invoiceNo  = invoiceNo;
 					param.ordDtlNo   = ordDtlNo;
+					param.orgInvoiceNo = orgInvoiceNo;
 
 				var jsonData = JSON.stringify([param]);
 				gagajf.ajaxJsonSubmit('/delivery/orderDetail/save', jsonData, function (result) {
+					$('#btnSearch').trigger('click');
 					uifnPopupClose('popupChangeInvoice');
 				});
 			}