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

[결함][BOS] 20059451 반품배송비 환불오류

card007 4 лет назад
Родитель
Сommit
b3986606df

+ 20 - 5
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -3194,7 +3194,8 @@ public class TscOrderChangeService {
 				// 4-6. 원주문배송비 환불 처리
 				int orgRefundDelvFee = refundInfo.getOrgRefundDelvFee();
 				if (orgRefundDelvFee > 0) {
-					rfDeliveryFee += orgRefundDelvFee;
+					// 2021.12.03 card007 배송비 처리 수정
+					// rfDeliveryFee += orgRefundDelvFee;
 
 					// 원주문 배송비 환불
 					OrderChange ordDelvFee = new OrderChange();
@@ -3685,7 +3686,9 @@ public class TscOrderChangeService {
 		chgRefund.setRfDelvGfcdUseAmt(refundInfo.getRfDelvGfcdUseAmt());
 
 		if(refundInfo.getOrgRefundDelvFee() > 0 || refundInfo.getRfDeliveryFee() != 0) {
-			int rfDeliveryFee = refundInfo.getOrgRefundDelvFee() + refundInfo.getRfDeliveryFee();
+			// 2021.12.03 card007 배송비 처리 수정
+			// int rfDeliveryFee = refundInfo.getOrgRefundDelvFee() + refundInfo.getRfDeliveryFee();
+			int rfDeliveryFee = refundInfo.getRfDeliveryFee();
 
 			// 원주문 배송비 환불
 			if (refundInfo.getOrgRefundDelvFee() > 0) {
@@ -5507,9 +5510,21 @@ public class TscOrderChangeService {
 				// 회사귀책사유
 				else {
 					// 배송비정책 단위 부분반품
-					if ("G688".equals(chgGb) && !"Y".equals(allDelvCanYn)) {
-						// 환불금액 = 취소/반품 상품 실결제 금액
-						refundAmt = spanRealCnclRtnAmt;
+					// 2021.12.03 card007 배송비 처리 수정
+					if ("G688".equals(chgGb)) {
+						if ("Y".equals(allDelvCanYn)) {
+							// 환불금액 = 취소/반품 상품 실결제 금액 + (원주문배송비 - 원주문배송비 쿠폰 사용 금액 - 원주문배송비 상품권 사용 금액)
+							refundAmt = spanRealCnclRtnAmt + spanSumDeliveryFee - spanRefundDelvCpnAmt - spanDelvGfcdUseAmt;
+
+							// 환불 원주문 배송비 = 원주문배송비 - 원주문배송비 쿠폰 사용 금액 - 원주문배송비 상품권 사용 금액
+							orgRefundDelvFee = spanSumDeliveryFee - spanRefundDelvCpnAmt - spanDelvGfcdUseAmt;
+
+							// 환불 배송비 상품권 = 원주문배송비 상품권 사용 금액
+							rfDelvGfcdUseAmt = spanDelvGfcdUseAmt;
+						} else {
+							// 환불금액 = 취소/반품 상품 실결제 금액
+							refundAmt = spanRealCnclRtnAmt;
+						}
 					}
 					// 배송비정책 단위 전체반품 및 취소
 					else {