|
|
@@ -200,6 +200,7 @@ public class TscOrderChangeService {
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Transactional("shopTxnManager")
|
|
|
public GagaMap partialCancel(GagaMap map, Integer userNo) {
|
|
|
+
|
|
|
// 1. 취소요청목록 및 정보 설정
|
|
|
List<Order> cancelOrderRefundList = (List<Order>) map.get("cancelOrderRefundList"); // 취소환불금액 목록 (주문상세단품 단위)
|
|
|
List<Order> cancelDelvRefundList = (List<Order>) map.get("cancelDelvRefundList"); // 취소환불배송금액 목록 (DELV_FEE_CD 단위)
|
|
|
@@ -1504,6 +1505,7 @@ public class TscOrderChangeService {
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Transactional("shopTxnManager")
|
|
|
public GagaMap returnRequest(GagaMap map) {
|
|
|
+
|
|
|
// 1. 변경정보목록 및 정보 설정
|
|
|
List<Order> cancelOrderRefundList = (List<Order>) map.get("cancelOrderRefundList"); // 취소환불금액 목록 (주문상세단품 단위)
|
|
|
List<Order> cancelDelvRefundList = (List<Order>) map.get("cancelDelvRefundList"); // 취소환불배송금액 목록 (DELV_FEE_CD 단위)
|
|
|
@@ -1551,12 +1553,9 @@ public class TscOrderChangeService {
|
|
|
if (obj.getCnclRtnAmt() > 0) {
|
|
|
// 3-1. 환불정보 설정
|
|
|
int spanRealCnclRtnAmt = obj.getRealOrdAmt(); // 취소금액합계
|
|
|
- // int sumDeliveryFee = obj.getDelvFee(); // 배송비합계
|
|
|
- // int spanTotDeliveryFee = obj.getAddDelvFee(); // 추가배송비합계 (추가배송비 처리는 환불컨펌에서 진행)
|
|
|
int spanTotRtnDelvFee = obj.getRtnDelvFee(); // 반품배송비합계
|
|
|
- // int addDelvFee = spanTotDeliveryFee + spanTotRtnDelvFee; // (추가배송비 처리는 환불컨펌에서 진행)
|
|
|
int addDelvFee = spanTotRtnDelvFee;
|
|
|
- int spanRefundAmt = spanRealCnclRtnAmt;
|
|
|
+ int spanRefundAmt = spanRealCnclRtnAmt;
|
|
|
|
|
|
// 고객사유 : 환불금액계산 = 취소금액 - 추가배송비
|
|
|
if ("true".equals(isCustomer)) {
|
|
|
@@ -1614,15 +1613,6 @@ public class TscOrderChangeService {
|
|
|
|
|
|
orderChangeDao.createDeliveryFee(deliveryFee);
|
|
|
|
|
|
- // 추가배송비 등록 (추가배송비 처리는 환불컨펌에서 진행)
|
|
|
- // if (spanTotDeliveryFee > 0) {
|
|
|
- // deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.ORIGIN_DELIVERY_FEE.value());
|
|
|
- // deliveryFee.setDelvFee(spanTotDeliveryFee);
|
|
|
- // deliveryFee.setRealDelvAmt(spanTotDeliveryFee);
|
|
|
- //
|
|
|
- // orderChangeDao.createDeliveryFee(deliveryFee);
|
|
|
- // }
|
|
|
-
|
|
|
// 3-4. 주문상세정보 수정
|
|
|
ordChgSq = orderChange.getOrdChgSq();
|
|
|
for (Order vo : cancelOrderDetailList) {
|
|
|
@@ -1645,7 +1635,7 @@ public class TscOrderChangeService {
|
|
|
|
|
|
// 3-2-3. 주문상세정보 이력 등록 (TB_ORDER_DETAIL_HST(등록))
|
|
|
vo.setOrdChgSq(ordChgSq);
|
|
|
- //orderChangeDao.createOrderDtlHstCancel(vo);
|
|
|
+ orderChangeDao.createOrderDtlHstCancel(vo);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1682,180 +1672,6 @@ public class TscOrderChangeService {
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 반품신청 (ADMIN, FRONT, NPAY, EXTMALL)
|
|
|
- * @param Order
|
|
|
- * @return Order
|
|
|
- * @author jsh77b
|
|
|
- * @since 2021. 01. 19
|
|
|
- */
|
|
|
- @SuppressWarnings("unchecked")
|
|
|
- @Transactional("shopTxnManager")
|
|
|
- public GagaMap rtnReq(GagaMap mav, int userNo) {
|
|
|
-
|
|
|
- // 1. 세션회원조회
|
|
|
- //userNo = userNo;
|
|
|
-
|
|
|
- // 2. 변경요정정보목록
|
|
|
- List<Order> cancelReqList = (List<Order>) mav.get("cnclRtnList"); // 변경요청 목록
|
|
|
- List<Order> cancelOrderRefundList = (List<Order>) mav.get("cancelOrderRefundList"); // 변경환불금액 목록 (주문상세단품 단위)
|
|
|
- List<Order> cancelDelvRefundList = (List<Order>) mav.get("cancelDelvRefundList"); // 변경환불배송금액 목록 (DELV_FEE_CD 단위)
|
|
|
-
|
|
|
- // 3. 변경신청정보
|
|
|
- int ordNo = Integer.parseInt(mav.getString("ordNo")); // 주문번호
|
|
|
- int ordChgSq = Integer.parseInt(mav.getString("ordChgSq")); // 주문변경번호
|
|
|
- String chgReason = mav.getString("chgReason"); // 변경사유
|
|
|
- String chgMemo = mav.getString("chgMemo"); // 변경메모
|
|
|
- String allCanYn = mav.getString("allCanYn"); // 무통장입금전 전체취소 여부
|
|
|
- String isCustomer = mav.getString("isCustomer"); // 귀책사유 (고객, 회사)
|
|
|
- String chgGb = TscConstants.OrderChangeGb.RETURN.value(); // 반품요청
|
|
|
- String wdGb = mav.getString("wdGb"); // 회수방법
|
|
|
- String wdInvoiceNo = mav.getString("wdInvoiceNo"); // 회수송장번호
|
|
|
-
|
|
|
- // 4. 주문상세단품정보등록,변경 (단품단위)
|
|
|
- List<Order> cancelOrderDetailList = new ArrayList<>();
|
|
|
-
|
|
|
- for (int i=0 ; i<cancelOrderRefundList.size() ; i++) {
|
|
|
- Order cancelOrderRefundPo = cancelOrderRefundList.get(i);
|
|
|
- cancelOrderRefundPo.setRegNo(userNo);
|
|
|
- cancelOrderRefundPo.setUpdNo(userNo);
|
|
|
-
|
|
|
- // 4.1 취소수량이 존재하면 주문상세단품정보 수정 및 주문상세단품이력정보 등록
|
|
|
- if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
|
|
|
- // 4.4 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
|
|
|
- Boolean temp = false;
|
|
|
- if (cancelOrderDetailList.size() > 0) {
|
|
|
- for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
|
|
|
- if (cancelOrderRefundPo.getOrdDtlNo() == cancelOrderDetailList.get(j).getOrdDtlNo()) {
|
|
|
- temp = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 4.5 주문상세단위 데이타 저장(주문상세 단위)
|
|
|
- if (!temp) {
|
|
|
- cancelOrderDetailList.add(cancelOrderRefundPo);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 2021.01.21 DELV_FEE 배송번호 단위로 TB_ORDER_CHANGE 생성
|
|
|
- // 4. 주문변경정보, 주문정보, 환불정보 (업체코드 & 배송정책코드)
|
|
|
- for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
|
|
|
-
|
|
|
- Order obj = cancelDelvRefundList.get(i);
|
|
|
-
|
|
|
- // 취소금액이 있을때 처리
|
|
|
- if (obj.getCnclRtnAmt() > 0) {
|
|
|
-
|
|
|
- // 5.1 주문변경 기본정보 등록
|
|
|
- OrderChange orderChange = new OrderChange();
|
|
|
- orderChange.setOrdNo(ordNo);
|
|
|
- orderChange.setChgGb(chgGb);
|
|
|
- orderChange.setChgReason(chgReason);
|
|
|
- orderChange.setChgMemo(chgMemo);
|
|
|
- orderChange.setAddPayCost(0);
|
|
|
- orderChange.setAddPayAmt(0);
|
|
|
- orderChange.setWdGb(wdGb);
|
|
|
- orderChange.setWdInvoiceNo(wdInvoiceNo);
|
|
|
- orderChange.setRegNo(userNo);
|
|
|
- orderChange.setUpdNo(userNo);
|
|
|
-
|
|
|
- // 5.2 주문변경 추가정보 등록
|
|
|
- String chgerNm = mav.getString("chgerNm"); // 변경자
|
|
|
- String chgerPhnno = mav.getString("chgerPhnno"); // 변경핸드폰번호
|
|
|
- String chgerTelno = mav.getString("chgerTelno"); // 변경전화번호
|
|
|
- String chgerEmail = mav.getString("chgerEmail"); // 변경이메일
|
|
|
- String chgerZipcode = mav.getString("chgerZipcode"); // 변경우편번호
|
|
|
- String chgerBaseAddr = mav.getString("chgerBaseAddr"); // 변경기본주소
|
|
|
- String chgerDtlAddr = mav.getString("chgerDtlAddr"); // 변경상세주소
|
|
|
- String chgerRtnMemo = mav.getString("chgerRtnMemo"); // 반품메모
|
|
|
-
|
|
|
- orderChange.setChgerNm(chgerNm);
|
|
|
- orderChange.setChgerPhnno(chgerPhnno);
|
|
|
- orderChange.setChgerTelno(chgerTelno);
|
|
|
- orderChange.setChgerEmail(chgerEmail);
|
|
|
- orderChange.setChgerRtnMemo(chgerRtnMemo);
|
|
|
- orderChange.setChgerZipcode(chgerZipcode);
|
|
|
- orderChange.setChgerBaseAddr(chgerBaseAddr);
|
|
|
- orderChange.setChgerDtlAddr(chgerDtlAddr);
|
|
|
-
|
|
|
- orderChangeDao.createOrderChange(orderChange);
|
|
|
-
|
|
|
- // 5.3 주문상세단위 취소정보
|
|
|
- for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
|
|
|
- Order vo = cancelOrderRefundList.get(j);
|
|
|
- vo.setRegNo(userNo);
|
|
|
- vo.setUpdNo(userNo);
|
|
|
- vo.setOrdDtlStat(TscConstants.OrderChangeStat.RETURN.value()); // 반품신청
|
|
|
-
|
|
|
- // 5.3.0 DEVL_FEE_CD 단위로 주문상세 정보 처리
|
|
|
- if (obj.getDelvFeeCd().equals(vo.getDelvFeeCd())) {
|
|
|
-
|
|
|
- // 5.3.1 주문변경상세정보 이력등록
|
|
|
- orderChangeDao.createOrderDetailHstCnclRtn(vo);
|
|
|
-
|
|
|
- // * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음 주문상세단위로 수정
|
|
|
- // 5.3 주문변경상세정보 등록
|
|
|
- OrderChange changeDetailPo = new OrderChange();
|
|
|
- changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
- changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
|
|
|
- changeDetailPo.setChgQty(vo.getOrdCanChgQty());
|
|
|
- changeDetailPo.setChgStat(TscConstants.OrderChangeStat.RETURN.value()); // 반품신청
|
|
|
- changeDetailPo.setRegNo(userNo);
|
|
|
- changeDetailPo.setUpdNo(userNo);
|
|
|
-
|
|
|
- orderChangeDao.createOrderChangeDetail(changeDetailPo);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 5.4 환불결제정보 등록 (업체별 & 배송정책별) 단위
|
|
|
- // 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
|
|
|
- int spanRealCnclRtnAmt = obj.getCnclRtnAmt(); // 취소금액합계
|
|
|
- int sumDeliveryFee = obj.getDelvFee(); // 배송비합계
|
|
|
- int spanTotDeliveryFee = obj.getAddDelvFee(); // 추가배송비합계
|
|
|
- int spanTotRtnDelvFee = obj.getRtnDelvFee(); // 반품배송비합계
|
|
|
- int spanRefundAmt = 0;
|
|
|
-
|
|
|
- // 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
|
|
|
- if ("true".equals(isCustomer)) {
|
|
|
- spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee) - spanTotDeliveryFee - spanTotRtnDelvFee;
|
|
|
- }
|
|
|
- // 회사사유 : 환불금액계산 = (취소금액 + 배송비)
|
|
|
- else {
|
|
|
- spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee);
|
|
|
- }
|
|
|
-
|
|
|
- // 5.4 환불금액 등록
|
|
|
- Order refundOrder = new Order();
|
|
|
- refundOrder.setOrdNo(ordNo);
|
|
|
- refundOrder.setPaySq(0);
|
|
|
- refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
- refundOrder.setRegNo(userNo);
|
|
|
-
|
|
|
- // 2021.01.25 TB_REFUND 정보 등록을 위해서 분리 작업
|
|
|
- refundOrder.setRefundAmt(spanRefundAmt);
|
|
|
- refundOrder.setRfCpn1Amt(obj.getCpn1DcAmt());
|
|
|
- refundOrder.setRfTmtb1Amt(obj.getTmtb1DcAmt());
|
|
|
- refundOrder.setRfTmtb2Amt(obj.getTmtb2DcAmt());
|
|
|
- refundOrder.setRfGoodsCpnAmt(obj.getGoodsCpnDcAmt());
|
|
|
- refundOrder.setRfCartCpnAmt(obj.getCartCpnDcAmt());
|
|
|
- refundOrder.setRfDelvCpnAmt(obj.getDelvCpnDcAmt());
|
|
|
- refundOrder.setRfPntAmt(obj.getPntAmt());
|
|
|
- refundOrder.setRfPrePntAmt(obj.getPrePntDcAmt());
|
|
|
- refundOrder.setRfGfcdUseAmt(obj.getGfcdUseAmt());
|
|
|
-
|
|
|
- refundOrder.setRaNo(mav.get("accountNo").toString());
|
|
|
- refundOrder.setRaNm(mav.get("accountNm").toString());
|
|
|
- refundOrder.setRaBank(mav.get("bankCd").toString());
|
|
|
-
|
|
|
- orderChangeDao.createRefund(refundOrder);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return mav;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 반품신청철회 (admin)
|
|
|
* @param Order
|
|
|
@@ -3092,7 +2908,7 @@ public class TscOrderChangeService {
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 취소/반품 환불 사전 정보 조회
|
|
|
*
|
|
|
@@ -3119,7 +2935,7 @@ public class TscOrderChangeService {
|
|
|
String allCanYn = "Y";
|
|
|
String allLastCanYn = "Y";
|
|
|
List<String> delvFeeCdList = new ArrayList<>();
|
|
|
-
|
|
|
+
|
|
|
for (Order order : cnclRtnList) {
|
|
|
int index = ordDtlNoList.indexOf(order.getOrdDtlNo());
|
|
|
int ordQty = order.getOrdQty();
|
|
|
@@ -3144,7 +2960,7 @@ public class TscOrderChangeService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
// 반품신청
|
|
|
else {
|
|
|
if (!delvFeeCd.equals(order.getDelvFeeCd())) {
|
|
|
@@ -3153,11 +2969,11 @@ public class TscOrderChangeService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 무통장입금전 전체취소여부 설정
|
|
|
String allCanYnBeforePayment = "N";
|
|
|
- if ("Y".equals(allCanYnBeforePayment)
|
|
|
- && TscConstants.PayMeans.BANK_DEPOSIT.value().equals(cnclRtn.getPayMeans())
|
|
|
+ if ("Y".equals(allCanYnBeforePayment)
|
|
|
+ && TscConstants.PayMeans.BANK_DEPOSIT.value().equals(cnclRtn.getPayMeans())
|
|
|
&& TscConstants.PaymentStat.DEPOSIT_BEFORE_BANKING.value().equals(cnclRtn.getPayStat())) {
|
|
|
allCanYnBeforePayment = "Y";
|
|
|
}
|
|
|
@@ -3210,10 +3026,10 @@ public class TscOrderChangeService {
|
|
|
GagaMap result = new GagaMap();
|
|
|
Integer ordChgSq = orderChange.getOrdChgSq();
|
|
|
Integer userNo = orderChange.getUserNo();
|
|
|
-
|
|
|
+
|
|
|
// 주문변경상세정보 조회
|
|
|
Collection<OrderChange> orderChangeList = orderChangeDao.getOrderChangeDetailInfo(orderChange);
|
|
|
-
|
|
|
+
|
|
|
if (orderChangeList.size() > 0) {
|
|
|
// 환불 사전 정보 설정
|
|
|
int index = 0;
|
|
|
@@ -3225,13 +3041,13 @@ public class TscOrderChangeService {
|
|
|
String ordPhnno = orderChangeList.iterator().next().getOrdPhnno();
|
|
|
int[] ordDtlNoArr = new int[size];
|
|
|
int[] cnclRtnReqQtyArr = new int[size];
|
|
|
-
|
|
|
+
|
|
|
for (OrderChange param : orderChangeList) {
|
|
|
ordDtlNoArr[index] = param.getOrdDtlNo();
|
|
|
cnclRtnReqQtyArr[index] = param.getChgQty();
|
|
|
index++;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 회원/비회원 정보 설정
|
|
|
if (custNo > 0) {
|
|
|
orderChange.setCustNo(custNo);
|
|
|
@@ -3331,9 +3147,9 @@ public class TscOrderChangeService {
|
|
|
&& TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payment.getPayMeans())
|
|
|
&& TscConstants.PaymentStat.PAYMENT_COMPLETE.value().equals(payment.getPayStat())) {
|
|
|
|
|
|
- modType = "STHD"; // KCP 무통장입금 전체취소
|
|
|
+ modType = "STHD"; // KCP 무통장입금 전체취소
|
|
|
} else {
|
|
|
- modType = "STSC"; // KCP 전체취소
|
|
|
+ modType = "STSC"; // KCP 전체취소
|
|
|
}
|
|
|
|
|
|
// 2. 사용포인트원복
|