|
|
@@ -390,15 +390,18 @@ public class TscOrderChangeService {
|
|
|
int sumDeliveryFee = obj.getDelvFee(); // 배송비합계
|
|
|
int spanTotDeliveryFee = obj.getAddDelvFee(); // 추가배송비합계
|
|
|
int spanRefundAmt = spanRealCnclRtnAmt;
|
|
|
+ int addDelvFee = 0;
|
|
|
|
|
|
// 마지막 취소일때 배송비 추가
|
|
|
if ("Y".equals(allLastCanYn)) {
|
|
|
- spanRefundAmt += sumDeliveryFee;
|
|
|
+ spanRefundAmt += sumDeliveryFee; // 환불금액 계산
|
|
|
+ addDelvFee = sumDeliveryFee; // 추가배송비 계산
|
|
|
}
|
|
|
|
|
|
// 고객사유일때 추가배송비 차감 후 환불처리
|
|
|
if ("G686_10".equals(chgReason)) {
|
|
|
- spanRefundAmt -= spanTotDeliveryFee;
|
|
|
+ spanRefundAmt -= spanTotDeliveryFee; // 환불금액 계산
|
|
|
+ addDelvFee -= spanTotDeliveryFee; // 추가배송비 계산
|
|
|
}
|
|
|
|
|
|
// 환불금액이 추가배송비 보다 적을 시
|
|
|
@@ -436,8 +439,8 @@ public class TscOrderChangeService {
|
|
|
refundOrder.setRfPrePntAmt(obj.getPrePntDcAmt());
|
|
|
refundOrder.setRfGfcdUseAmt(obj.getGfcdAmt());
|
|
|
refundOrder.setRfCnclAmt(obj.getCnclRtnAmt());
|
|
|
- refundOrder.setRfDeliveryFee(obj.getAddDelvFee());
|
|
|
- refundOrder.setRfRealCnclAmt(spanRefundAmt + obj.getAddDelvFee());
|
|
|
+ refundOrder.setRfDeliveryFee(addDelvFee);
|
|
|
+ refundOrder.setRfRealCnclAmt(spanRefundAmt - addDelvFee);
|
|
|
refundOrder.setRaNo(accountNo);
|
|
|
refundOrder.setRaNm(accountNm);
|
|
|
refundOrder.setRaBank(bankCd);
|
|
|
@@ -446,14 +449,14 @@ public class TscOrderChangeService {
|
|
|
orderChangeDao.createRefund(refundOrder);
|
|
|
|
|
|
// 3-6. 결제금액이 무료배송금액보다 작으면 배송비 신규 등록
|
|
|
- if (obj.getAddDelvFee() > 0) {
|
|
|
+ if (spanTotDeliveryFee > 0) {
|
|
|
Order delvFeeOrder = new Order();
|
|
|
delvFeeOrder.setPaySq(pg.getPaySq());
|
|
|
delvFeeOrder.setOrdNo(ordNo);
|
|
|
delvFeeOrder.setDelvFeeGb(TscConstants.DeliveryFeeGb.ORIGIN_DELIVERY_FEE.value());
|
|
|
delvFeeOrder.setDelvFeeCd(obj.getDelvFeeCd());
|
|
|
- delvFeeOrder.setDelvFee(obj.getAddDelvFee());
|
|
|
- delvFeeOrder.setRealDelvAmt(obj.getDelvFee());
|
|
|
+ delvFeeOrder.setDelvFee(spanTotDeliveryFee);
|
|
|
+ delvFeeOrder.setRealDelvAmt(spanTotDeliveryFee);
|
|
|
delvFeeOrder.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
delvFeeOrder.setSupplyCompCd(obj.getSupplyCompCd());
|
|
|
delvFeeOrder.setRegNo(userNo);
|
|
|
@@ -993,32 +996,27 @@ public class TscOrderChangeService {
|
|
|
if (obj.getCnclRtnAmt() > 0) {
|
|
|
// 3-1. 환불정보 설정
|
|
|
int spanRealCnclRtnAmt = obj.getRealOrdAmt(); // 취소금액합계
|
|
|
- int sumDeliveryFee = obj.getDelvFee(); // 배송비합계
|
|
|
+ // int sumDeliveryFee = obj.getDelvFee(); // 배송비합계
|
|
|
int spanTotDeliveryFee = obj.getAddDelvFee(); // 추가배송비합계
|
|
|
int spanTotRtnDelvFee = obj.getRtnDelvFee(); // 반품배송비합계
|
|
|
int addDelvFee = spanTotDeliveryFee + spanTotRtnDelvFee;
|
|
|
- int spanRefundAmt;
|
|
|
+ int spanRefundAmt = spanRealCnclRtnAmt;
|
|
|
|
|
|
- // 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
|
|
|
+ // 고객사유 : 환불금액계산 = 취소금액 - 추가배송비
|
|
|
if ("true".equals(isCustomer)) {
|
|
|
- int refundAmt = (spanRealCnclRtnAmt + sumDeliveryFee) - addDelvFee;
|
|
|
+ int refundAmt = spanRealCnclRtnAmt - addDelvFee;
|
|
|
if (refundAmt < 0) {
|
|
|
- spanRefundAmt = spanRealCnclRtnAmt + sumDeliveryFee;
|
|
|
+ chgStat = TscConstants.OrderChangeStat.RETURN_WAIT.value(); // 추가배송비 처리 상태값 설정
|
|
|
} else {
|
|
|
- spanRefundAmt = refundAmt;
|
|
|
- addDelvFee = 0;
|
|
|
+ spanRefundAmt = refundAmt; // 추가배송비 제외 환불금액 설정
|
|
|
}
|
|
|
}
|
|
|
- // 회사사유 : 환불금액계산 = (취소금액 + 배송비)
|
|
|
+ // 회사사유 : 환불금액계산 = 취소금액
|
|
|
else {
|
|
|
- spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee);
|
|
|
+ // 추가배송비 0 처리
|
|
|
spanTotDeliveryFee = 0;
|
|
|
spanTotRtnDelvFee = 0;
|
|
|
- }
|
|
|
-
|
|
|
- // 추가배송비 발생 시 반품대기 상태 처리
|
|
|
- if (addDelvFee > 0) {
|
|
|
- chgStat = TscConstants.OrderChangeStat.RETURN_WAIT.value();
|
|
|
+ addDelvFee = 0;
|
|
|
}
|
|
|
|
|
|
// 3-2. 주문변경정보 생성
|
|
|
@@ -1106,7 +1104,7 @@ public class TscOrderChangeService {
|
|
|
refundOrder.setRfGfcdUseAmt(obj.getGfcdAmt());
|
|
|
refundOrder.setRfCnclAmt(obj.getCnclRtnAmt());
|
|
|
refundOrder.setRfDeliveryFee(addDelvFee);
|
|
|
- refundOrder.setRfRealCnclAmt(spanRefundAmt + addDelvFee);
|
|
|
+ refundOrder.setRfRealCnclAmt(spanRefundAmt - addDelvFee);
|
|
|
refundOrder.setRaNo(accountNo);
|
|
|
refundOrder.setRaNm(accountNm);
|
|
|
refundOrder.setRaBank(bankCd);
|