|
|
@@ -164,6 +164,11 @@ public class TscOrderChangeService {
|
|
|
List<Order> cancelOrderRefundList = (List<Order>) map.get("cancelOrderRefundList"); // 취소환불금액 목록 (주문상세단품 단위)
|
|
|
List<Order> cancelDelvRefundList = (List<Order>) map.get("cancelDelvRefundList"); // 취소환불배송금액 목록 (DELV_FEE_CD 단위)
|
|
|
|
|
|
+ // 2021.12.21 card007 취소 가능 수량 체크 로직 추가
|
|
|
+ if (!getClaimCanQtyYn(cancelOrderRefundList, "cancel")) {
|
|
|
+ throw new IllegalStateException("취소 가능 수량이 부족합니다.");
|
|
|
+ }
|
|
|
+
|
|
|
int ordNo = map.getInt("ordNo"); // 주문번호
|
|
|
Integer custNo = map.getInt("custNo"); // 고객번호
|
|
|
int ordChgSq = map.getInt("ordChgSq"); // 주문변경일련번호
|
|
|
@@ -816,6 +821,11 @@ public class TscOrderChangeService {
|
|
|
// 1. 변경정보목록 및 정보 설정
|
|
|
List<Order> cancelOrderRefundList = (List<Order>) map.get("cancelOrderRefundList"); // 취소환불금액 목록 (주문상세단품 단위)
|
|
|
List<Order> cancelDelvRefundList = (List<Order>) map.get("cancelDelvRefundList"); // 취소환불배송금액 목록 (DELV_FEE_CD 단위)
|
|
|
+
|
|
|
+ // 2021.12.21 card007 취소 가능 수량 체크 로직 추가
|
|
|
+ if (!getClaimCanQtyYn(cancelOrderRefundList, "return")) {
|
|
|
+ throw new IllegalStateException("반품 가능 수량이 부족합니다.");
|
|
|
+ }
|
|
|
|
|
|
int ordNo = map.getInt("ordNo"); // 주문번호
|
|
|
int custNo = map.getInt("custNo"); // 고객번호
|
|
|
@@ -1164,6 +1174,11 @@ public class TscOrderChangeService {
|
|
|
// 교환신청 목록 설정
|
|
|
Collection<Order> excReqList = excReq.getCancelReqList();
|
|
|
|
|
|
+ // 2021.12.21 card007 취소 가능 수량 체크 로직 추가
|
|
|
+ if (!getClaimCanQtyYn(excReqList, "exchange")) {
|
|
|
+ throw new IllegalStateException("교환 가능 수량이 부족합니다.");
|
|
|
+ }
|
|
|
+
|
|
|
// 추가배송비 관련 상태값 설정
|
|
|
String orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE.value();
|
|
|
String ordDtlStat = TscConstants.OrderDetailStat.REFUND_CONFIRM_WAIT.value();
|
|
|
@@ -5644,4 +5659,41 @@ public class TscOrderChangeService {
|
|
|
public Collection<Order> getAddDeliveryFeePayment (OrderChange orderChange) {
|
|
|
return orderChangeDao.getAddDeliveryFeePayment(orderChange);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 취/반/교 가능 수량 조회
|
|
|
+ *
|
|
|
+ * @param OrderChange
|
|
|
+ * @return Collection<OrderChange>
|
|
|
+ * @author card007
|
|
|
+ * @since 2021. 12. 21
|
|
|
+ */
|
|
|
+ public Boolean getClaimCanQtyYn(Collection<Order> dataList, String claim) {
|
|
|
+ Boolean result = true;
|
|
|
+
|
|
|
+ for (Order order : dataList) {
|
|
|
+ // 클레임진행수량 조회
|
|
|
+ OrderChange orderChange = orderChangeDao.getClaimCanQty(order);
|
|
|
+ int ordQty = orderChange.getOrdQty(); // 주문수량
|
|
|
+ int cnclRtnQty = orderChange.getCnclRtnQty(); // 취소수량
|
|
|
+ int ordReqChgQty = orderChange.getOrdReqChgQty(); // 클레임진행수량
|
|
|
+ int claimCanQty = ordQty - cnclRtnQty - ordReqChgQty; // 클레임가능수량
|
|
|
+ int chgQty = order.getOrdCanChgQty(); // 클레임요청수량
|
|
|
+ if ("exchange".equals(claim)) {
|
|
|
+ chgQty = order.getChgQty();
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("ordQty >>> {}", ordQty);
|
|
|
+ log.info("cnclRtnQty >>> {}", cnclRtnQty);
|
|
|
+ log.info("ordReqChgQty >>> {}", ordReqChgQty);
|
|
|
+ log.info("claimCanQty >>> {}", claimCanQty);
|
|
|
+ log.info("chgQty >>> {}", chgQty);
|
|
|
+
|
|
|
+ if (claimCanQty < chgQty) {
|
|
|
+ result = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|