Pārlūkot izejas kodu

Merge branch 'develop' into bin2107

bin2107 5 gadi atpakaļ
vecāks
revīzija
df1f924a89

+ 71 - 15
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaOrderChangeDao.java

@@ -18,7 +18,7 @@ import com.style24.persistence.domain.OrderChange;
 public interface TsaOrderChangeDao {
 	
 	/**
-	 * 주문상세 > 주문취소신청 > 주문취소대상목록
+	 * 주문상세 > 주문취소신청 > 주문취소,반품,교환 대상목록
 	 *
 	 * @param Order - 주문 정보
 	 * @return
@@ -26,49 +26,79 @@ public interface TsaOrderChangeDao {
 	 * @since 2020. 12. 16
 	 */
 	Collection<Order> getCancelRequestTargetList(Order order);
+		
+	/**
+	 * 주문상세 > 주문취소신청 > 주문변경정보 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 22
+	 */
+	int createOrderChange(OrderChange orderChange);
 	
 	/**
-	 * 주문상세 > 주문취소신청 > 주문반품대상목록
+	 * 주문상세 > 주문취소신청 > 주문상세단품정보 수정
 	 *
 	 * @param Order - 주문 정보
 	 * @return
 	 * @author jsh77b
-	 * @since 2020. 12. 16
+	 * @since 2020. 12. 22
 	 */
-	Collection<Order> getReturnRequestTargetList(Order order);
+	int updateOrderDetailItem(Order order);
 	
 	/**
-	 * 주문상세 > 주문취소신청 > 주문변경정보 등록
+	 * 주문상세 > 주문취소신청 > 주문상세단품정보 이력 등록
 	 *
 	 * @param Order - 주문 정보
 	 * @return
 	 * @author jsh77b
 	 * @since 2020. 12. 22
 	 */
-	int createOrderChange(OrderChange orderChange);
+	int createOrderDetailItemHst(Order order);
 	
 	/**
-	 * 주문상세 > 주문취소신청 > 주문사은품전체취소
+	 * 주문상세 > 주문취소신청 > 상품옵션 재고 원복
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 01. 08
+	 */
+	int updateOptionQty(Order order);
+	
+	/**
+	 * 주문상세 > 주문취소신청 > 주문상세정보(취소,반품) 이력 등록
 	 *
 	 * @param Order - 주문 정보
 	 * @return
 	 * @author jsh77b
 	 * @since 2020. 12. 22
 	 */
-	int updateOrdFreegiftDel(Order order);
+	int createOrderDetailHstCnclRtn(Order order);
 	
 	/**
-	 * 주문상세 > 주문취소신청 > 주문 환불 정보 등록
+	 * 주문상세 > 주문취소신청 > 주문상세정보 수정
 	 *
 	 * @param Order - 주문 정보
 	 * @return
 	 * @author jsh77b
 	 * @since 2020. 12. 22
 	 */
-	int createRefund(Order order);
+	int updateOrderDetail(Order order);
 	
 	/**
-	 * 주문상세 > 주문취소신청 > 주문 환불 금액 정보 등록
+	 * 주문상세 > 주문취소신청 > 주문변경정보상세 등록
+	 *
+	 * @param OrderChange - 주문 변경 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 22
+	 */
+	int createOrderChangeDetail(OrderChange orderChange);
+	
+	/**
+	 * 주문상세 > 주문취소신청 > 주문환불금액정보 등록
 	 *
 	 * @param Order - 주문 정보
 	 * @return
@@ -78,7 +108,17 @@ public interface TsaOrderChangeDao {
 	int createPayment(Order order);
 	
 	/**
-	 * 주문상세 > 주문취소신청 > 주문 추가 배송 금액 등록
+	 * 주문상세 > 주문취소신청 > 주문환불정보 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 22
+	 */
+	int createRefund(Order order);
+	
+	/**
+	 * 주문상세 > 주문취소신청 > 주문추가배송금액 등록
 	 *
 	 * @param Order - 주문 정보
 	 * @return
@@ -88,7 +128,23 @@ public interface TsaOrderChangeDao {
 	int createDeliveryFee(Order order);
 	
 	/**
-	 * 고객환불계좌 정보 조회
+	 * 주문상세 > 주문취소신청 > 주문사은품전체취소
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 22
+	 */
+	int updateOrdFreegiftDel(Order order);
+	
+
+	
+
+	
+
+	
+	/**
+	 * 주문상세 > 주문취소 > 고객환불계좌정보 조회
 	 *
 	 * @param order - 주문 정보
 	 * @return
@@ -98,7 +154,7 @@ public interface TsaOrderChangeDao {
 	Collection<Order> getRefundAccount(Order order);
 	
 	/**
-	 * 환불계좌 존재 유무 체크
+	 * 주문상세 > 주문취소 > 고객환불계좌정보 중복체크
 	 *
 	 * @param order
 	 * @return int
@@ -108,7 +164,7 @@ public interface TsaOrderChangeDao {
 	int getRefundAccountCheck(Order order);
 	
 	/**
-	 * 환불계좌 저정
+	 * 주문상세 > 주문취소 > 고객환불계좌정보 등록
 	 *
 	 * @param order
 	 * @return int

+ 5 - 57
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaOrderDao.java

@@ -330,65 +330,13 @@ public interface TsaOrderDao {
 	 */
 	int changedOrdDtlStat(Order order);
 
-	/**
-	 * 주문상세 > 주문취소신청 > 주문변경정보 상세 등록
-	 *
-	 * @param OrderChange - 주문 변경 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 22
-	 */
-	int createOrderChangeDetail(OrderChange orderChange);
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 상품옵션 재고 원복
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 01. 08
-	 */
-	int updateOptionQty(Order order);
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문상세단품정보 수정
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 22
-	 */
-	int updateOrderDetailItem(Order order);
-	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문상세단품정보 이력 등록
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 22
-	 */
-	int createOrderDetailItemHst(Order order);
+
 	
-	/**
-	 * 주문상세 > 주문취소신청 > 주문상세정보(취소,반품) 이력 등록
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 22
-	 */
-	int createOrderDetailHstCnclRtn(Order order);
 
-	/**
-	 * 주문상세 > 주문취소신청 > 주문상세정보 수정
-	 *
-	 * @param Order - 주문 정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2020. 12. 22
-	 */
-	int updateOrderDetail(Order order);
+			
+
+
+
 	
 	
 	

+ 48 - 24
style24.admin/src/main/java/com/style24/admin/biz/service/TsaOrderChangeService.java

@@ -47,7 +47,7 @@ public class TsaOrderChangeService {
 	private ObjectMapper mapper;
 	
 	/**
-	 * 주문상세 > 주문취소대상목록
+	 * 주문상세 > 주문취소신청 > 주문취소,반품,교환 대상목록
 	 * @param Order
 	 * @return Order
 	 * @author jsh77b
@@ -58,18 +58,7 @@ public class TsaOrderChangeService {
 	}
 	
 	/**
-	 * 주문상세 > 주문반품대상목록
-	 * @param Order
-	 * @return Order
-	 * @author jsh77b
-	 * @since 2020. 12. 16
-	 */
-	public Collection<Order> getReturnRequestTargetList(Order order) {
-		return orderChangeDao.getReturnRequestTargetList(order);
-	}
-	
-	/**
-	 * 주문상세 > 주문취소 환불 금액 계산
+	 * 주문상세 > 주문취소신청 > 주문취소, 반품 환불 금액 계산
 	 * @param Order
 	 * @return Order
 	 * @author jsh77b
@@ -220,7 +209,7 @@ public class TsaOrderChangeService {
 				delvObj.setRealOrdAmt(orderObj.getRealOrdAmt());
 				
 				delvObj.setDelvFee(orderObj.getDelvFee());
-				delvObj.setMinOrdAmt(orderObj.getMinOrdAmt());			
+				delvObj.setMinOrdAmt(orderObj.getMinOrdAmt());		
 				delvObj.setOrgDelvFee(orderObj.getOrgDelvFee());
 				delvObj.setRtnDelvFee(orderObj.getRtnDelvFee());
 				delvObj.setExcDelvFee(orderObj.getExcDelvFee());
@@ -231,7 +220,7 @@ public class TsaOrderChangeService {
 				cancelDelvRefundList.add(delvObj);
 			}
 			
-			// 3.9 FRONT 화면에서 용 하는 변수 값 설정 & 계산
+			// 3.9 FRONT 화면에서 용 하는 변수 값 설정 & 계산
 			spanSumRealOrdAmt	+= oneData.getRealOrdAmt();
 			spanPntDcAmt		+= orderObj.getPntDcAmt();
 			spanPrePntDcAmt		+= orderObj.getPrePntDcAmt();
@@ -330,6 +319,7 @@ public class TsaOrderChangeService {
 		mav.set("spanTmtb2DcAmt"		, spanTmtb2DcAmt);			//금액할인
 		mav.set("spanGfcdUseAmt"		, spanGfcdUseAmt);			//취소 고객 상품권 금액
 		mav.set("spanRealCnclRtnAmt"	, spanRealCnclRtnAmt);		//취소 상품 실결제 금액
+		mav.set("sumDeliveryFee"		, sumDeliveryFee);			//배송비 합계 금액
 		mav.set("spanTotDeliveryFee"	, spanTotDeliveryFee);		//추가 배송 금액
 		mav.set("spanTotRtnDelvFee"		, spanRtnSumDeliveryFee);	//추가 반품 배송 금액
 		mav.set("spanTotExcDelvFee"		, spanExcSumDeliveryFee);	//추가 교환 배송 금액
@@ -339,7 +329,7 @@ public class TsaOrderChangeService {
 	}
 	
 	/**
-	 * 주문상세 > 주문취소
+	 * 주문상세 > 주문취소신청 > 주문취소
 	 * @param Order
 	 * @return Order
 	 * @author jsh77b
@@ -361,6 +351,7 @@ public class TsaOrderChangeService {
 		String chgReason 	= mav.getString("chgReason").toString();
 		String chgMemo 		= mav.getString("chgMemo").toString();
 		String allCanYn		= mav.getString("allCanYn").toString();
+		String isCustomer	= mav.getString("isCustomer").toString();
 		String chgGb		= "G680_20";
 		
 		// 4.1 주문변경 기본정보 등록
@@ -394,10 +385,10 @@ public class TsaOrderChangeService {
 			// 4.2.1 취소수량이 존재하면 주문정보 수정 및 주문변경정보 등록
 			if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
 				// 4.2.3 주문상세단품정보 수정
-				orderDao.updateOrderDetailItem(cancelOrderRefundPo);
+				orderChangeDao.updateOrderDetailItem(cancelOrderRefundPo);
 				
 				// 4.2.4 주문상세단품정보 이력 등록
-				orderDao.createOrderDetailItemHst(cancelOrderRefundPo);
+				orderChangeDao.createOrderDetailItemHst(cancelOrderRefundPo);
 				
 				// 4.3 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
 				Boolean temp = false;
@@ -416,7 +407,7 @@ public class TsaOrderChangeService {
 				}
 				
 				// 4.5 상품옵션 재고 원복
-				orderDao.updateOptionQty(cancelOrderRefundPo);
+				orderChangeDao.updateOptionQty(cancelOrderRefundPo);
 			}
 		}
 		
@@ -434,10 +425,10 @@ public class TsaOrderChangeService {
 			}
 			
 			// 5.1 주문변경상세정보 이력 등록
-			orderDao.createOrderDetailHstCnclRtn(vo);
+			orderChangeDao.createOrderDetailHstCnclRtn(vo);
 			
 			// 4.2 주문변경상세정보 수정
-			orderDao.updateOrderDetail(vo);
+			orderChangeDao.updateOrderDetail(vo);
 			
 			// * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음
 			// 5.3 주문변경상세정보 등록
@@ -449,9 +440,28 @@ public class TsaOrderChangeService {
 			changeDetailPo.setRegNo(userNo);
 			changeDetailPo.setUpdNo(userNo);
 			
-			orderDao.createOrderChangeDetail(changeDetailPo);
+			orderChangeDao.createOrderChangeDetail(changeDetailPo);
 		}
 		
+		// To Do List
+		// 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
+		int spanRealCnclRtnAmt 		= Integer.parseInt(mav.get("spanRealCnclRtnAmt").toString());		// 취소금액합계
+		int sumDeliveryFee 			= Integer.parseInt(mav.get("sumDeliveryFee").toString());			// 배송비합계
+		int spanTotDeliveryFee 		= Integer.parseInt(mav.get("spanTotDeliveryFee").toString());		// 추가배송비합계
+		int spanTotRtnDelvFee 		= Integer.parseInt(mav.get("spanTotRtnDelvFee").toString());		// 반품배송비합계
+		int spanRefundAmt			= 0;
+		
+		// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
+		if ("true".equals(isCustomer)) {
+			spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee) - spanTotDeliveryFee - spanTotRtnDelvFee;
+			//Integer.parseInt(mav.get("spanRefundAmt").toString());
+		}
+		// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
+		else {
+			spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee);
+		}
+		mav.set("spanRefundAmt", spanRefundAmt);
+		
 		// 6. 환불결제 정보 등록
 		Order paymentOrder = new Order();
 		paymentOrder.setOrdNo(ordNo);
@@ -507,22 +517,36 @@ public class TsaOrderChangeService {
 				orderChangeDao.createDeliveryFee(delvFeeOrder);
 			}
 		}
-
+		
+		// To Do List
 		// 9. 포인트원복 (사용포인트, 주문상세단위)
 		
+		// To Do List
 		// 10. 쿠폰원복 (상품쿠폰, 주문상세단위) (전체취소시 장바구니쿠폰, 배송비쿠폰)
 		
-		// 11. 사은품 전체 취소 (전체취소시 적용)
+		// To Do List
+		// 11. 상품권원복
+		
+		// 12. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
 		Order freegiftOrder = new Order();
 		freegiftOrder.setOrdNo(ordNo);
 		freegiftOrder.setUpdNo(userNo);
 		orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
 		
+		// To Do List
 		// 13. PG 연동
 		
+		// To Do List
+		// 14. 취소 완료 알림톡 발송 에정
+		
 		//int a = 100/0;
 	}
 	
+	
+	
+	
+	
+	
 	/**
 	 * 주문 환불계좌
 	 *

+ 18 - 3
style24.admin/src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -70,6 +70,13 @@ public class TsaOrderChangeController extends TsaBaseController {
 		
 		order.setOrdNo(ordNo);
 		
+		// 취소가능 주문상세상탭값 설정
+		String[] ordDtlStatArr = new String[4];
+		ordDtlStatArr[0] = "G013_10";
+		ordDtlStatArr[1] = "G013_20";
+		ordDtlStatArr[2] = "G013_30";
+		ordDtlStatArr[3] = "G013_40";
+		
 		Collection<Order> cancelRequestTargetList = orderChangeService.getCancelRequestTargetList(order);
 
 		Collection<Order> orderInfoList = orderService.getOrderInfoList(order);
@@ -104,7 +111,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		List<Order> cancelReqList = cancelReq.getCancelReqList(); // 취소요청정보
 		
 		// To Do List
-		// @ 결품취소로직
+		// @ 결품취소로직 현재는 일반취소로직만존재
 		// @ 주문취소 취소시 상태값 체크
 		// @ 취소, 반품시 배송비 체크 로직 
 		
@@ -121,6 +128,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		mav.set("bankCd"		, cancelReq.getBankCd());
 		
 		mav.set("allCanYn"		, cancelReq.getAllCanYn());
+		mav.set("isCustomer"	, cancelReq.getIsCustomer());
 		
 		// 3. 주문변경 DB 등록 (주문정보, 배송정보)
 		orderChangeService.orderCancel(mav);
@@ -152,7 +160,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 	}
 	
 	/**
-	 * 취소요청 화면
+	 * 반품요청 화면
 	 * 
 	 * @param ordNo - 주문번호
 	 * @param cncWait - 취소대기요청 구분
@@ -168,7 +176,14 @@ public class TsaOrderChangeController extends TsaBaseController {
 		
 		order.setOrdNo(ordNo);
 		
-		Collection<Order> cancelRequestTargetList = orderChangeService.getReturnRequestTargetList(order);
+		// 취소가능 주문상세상탭값 설정
+		String[] ordDtlStatArr = new String[3];
+		ordDtlStatArr[0] = "G013_50";
+		ordDtlStatArr[1] = "G013_55";
+		ordDtlStatArr[2] = "G013_60";
+		order.setOrdDtlStatArr(ordDtlStatArr);
+		
+		Collection<Order> cancelRequestTargetList = orderChangeService.getCancelRequestTargetList(order);
 
 		Collection<Order> orderInfoList = orderService.getOrderInfoList(order);
 

+ 2 - 0
style24.admin/src/main/java/com/style24/persistence/domain/Order.java

@@ -357,6 +357,8 @@ public class Order extends TscBaseDomain {
 	private int chgQty;
 	private int rtnDelvFee;
 	private int excDelvFee;
+	
+	private String[] ordDtlStatArr;
 }
 
 

+ 2 - 0
style24.admin/src/main/java/com/style24/persistence/domain/OrderChange.java

@@ -52,6 +52,8 @@ public class OrderChange extends TscBaseDomain {
 	
 	private String allCanYn;
 	
+	private String isCustomer;
+	
 
 }
 

+ 2 - 361
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaOrder.xml

@@ -1518,372 +1518,13 @@
 	
 	
 	
-	<!-- 주문상세 > 주문취소신청 > 주문변경정보 등록-->
-	<insert id="createOrderChangeDetail" parameterType="OrderChange">
-		/* Order.createOrderChangeDetail */
-		INSERT INTO TB_ORDER_CHANGE_DETAIL (
-			ORD_CHG_SQ
-			, ORD_DTL_NO
-			, CHG_QTY
-			, CHG_STAT
-			, COMPLETE_DT
-			, REG_NO
-			, REG_DT
-			, UPD_NO
-			, UPD_DT
-		) VALUES (
-			#{ordChgSq}
-			, #{ordDtlNo}
-			, #{chgQty}
-			, #{chgStat}
-			, SYSDATE()
-			, #{regNo}
-			, SYSDATE()
-			, #{updNo}
-			, SYSDATE()
-		)
-	</insert>
 	
-	<!-- 주문상세 > 주문취소신청 > 주문상세단품정보 수정 -->
-	<update id="updateOptionQty" parameterType="OrderChange">
-		/* Order.updateOptionQty */
-		UPDATE TB_OPTION OP
-		INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
-		ON     OP.GOODS_CD = ODI.ITEM_CD
-		AND    OP.OPT_CD1 = ODI.OPT_CD1
-		AND    OP.OPT_CD2 = ODI.OPT_CD2
-		SET    OP.CURR_STOCK_QTY = OP.CURR_STOCK_QTY + (ODI.ITEM_QTY * #{ordCanChgQty})
-		     , OP.UPD_NO = 1
-		     , OP.UPD_DT = SYSDATE()
-		WHERE  1=1
-		AND    ODI.ORD_NO 			= #{ordNo} 
-		AND    ODI.ORD_DTL_NO 		= #{ordDtlNo} 
-		AND    ODI.ORD_DTL_ITEM_SQ 	= #{ordDtlItemSq}
-	</update>
 	
-	<!-- 주문상세 > 주문취소신청 > 주문상세단품정보 수정 -->
-	<update id="updateOrderDetailItem" parameterType="Order">
-		/* Order.updateOrderDetailItem */
-		UPDATE TB_ORDER_DETAIL_ITEM ODI
-		INNER  JOIN TB_ORDER_DETAIL OD
-		ON     OD.ORD_DTL_NO = OD.ORD_DTL_NO
-		SET    ODI.ORD_DTL_STAT		= CASE WHEN OD.ORD_QTY > (OD.CNCL_RTN_QTY + #{ordCanChgQty})
-		                                   THEN ODI.ORD_DTL_STAT
-		                                   ELSE #{ordDtlStat}
-		                                    END
-		     , ODI.ORD_AMT 			= ODI.ORD_AMT 				- #{cnclRtnAmt}
-		     , ODI.CNCL_RTN_AMT 	= ODI.CNCL_RTN_AMT 			+ #{cnclRtnAmt}
-		     , ODI.CPN1_DC_AMT 		= ODI.CPN1_DC_AMT 			- #{cpn1DcAmt}
-		     , ODI.TMTB1_DC_AMT 	= ODI.TMTB1_DC_AMT 			- #{tmtb1DcAmt}
-		     , ODI.TMTB2_DC_AMT 	= ODI.TMTB1_DC_AMT 			- #{tmtb2DcAmt}
-		     , ODI.GOODS_CPN_DC_AMT = ODI.GOODS_CPN_DC_AMT 		- #{goodsCpnDcAmt}
-		     , ODI.CART_CPN_DC_AMT 	= ODI.CART_CPN_DC_AMT 		- #{cartCpnDcAmt}
-		     , ODI.PNT_DC_AMT 		= ODI.PNT_DC_AMT 			- #{pntDcAmt}
-		     , ODI.PRE_PNT_DC_AMT 	= ODI.PRE_PNT_DC_AMT 		- #{prePntDcAmt}
-		     , ODI.SAVE_PNT_AMT 	= ODI.SAVE_PNT_AMT 			- #{savePntAmt}
-		     , ODI.REAL_ORD_AMT 	= ODI.REAL_ORD_AMT 			- #{realOrdAmt}
-		     , ODI.GFCD_USE_AMT 	= ODI.GFCD_USE_AMT 			- #{gfcdUseAmt}
-		     , ODI.UPD_NO 			= #{updNo}
-		     , ODI.UPD_DT 			= SYSDATE()
-		WHERE  1=1
-		AND    ODI.ORD_NO 			= #{ordNo} 
-		AND    ODI.ORD_DTL_NO 		= #{ordDtlNo} 
-		AND    ODI.ORD_DTL_ITEM_SQ 	= #{ordDtlItemSq}
-	</update>
+
 	
-	<!-- 주문상세 > 주문취소신청 > 주문상세단품정보 이력 등록 -->
-	<insert id="createOrderDetailItemHst" parameterType="Order">
-		/* Order.createOrderDetailItemHst */
-		INSERT INTO TB_ORDER_DETAIL_ITEM_HST (
-			ORD_DTL_ITEM_SQ
-			, ORD_DTL_NO
-			, ORD_NO
-			, ORD_DTL_STAT
-			, ITEM_CD
-			, OPT_CD
-			, OPT_CD1
-			, OPT_CD2
-			, SKU_MODEL_NO
-			, PRODUCT_NO
-			, PRODUCT_CODE
-			, ITEM_QTY
-			, ITEM_PRICE
-			, OPT_ADD_PRICE
-			, DISP_ORD
-			, ORD_AMT
-			, CNCL_RTN_AMT
-			, CPN1_DC_AMT
-			, TMTB1_DC_AMT
-			, TMTB2_DC_AMT
-			, GOODS_CPN_DC_AMT
-			, CART_CPN_DC_AMT
-			, PNT_DC_AMT
-			, PRE_PNT_DC_AMT
-			, SAVE_PNT_AMT
-			, REAL_ORD_AMT
-			, GFCD_USE_AMT
-			, REG_NO
-			, REG_DT
-			, UPD_NO
-			, UPD_DT
-		) 
-		SELECT ORD_DTL_ITEM_SQ
-			 , ORD_DTL_NO
-			 , ORD_NO
-			 , #{ordDtlStat}
-			 , ITEM_CD
-			 , OPT_CD
-			 , OPT_CD1
-			 , OPT_CD2
-			 , SKU_MODEL_NO
-			 , PRODUCT_NO
-			 , PRODUCT_CODE
-			 , ITEM_QTY
-			 , ITEM_PRICE
-			 , OPT_ADD_PRICE
-			 , DISP_ORD
-			 , #{ordAmt}
-			 , #{cnclRtnAmt}
-			 , #{cpn1DcAmt}
-			 , #{tmtb1DcAmt}
-			 , #{tmtb2DcAmt}
-			 , #{goodsCpnDcAmt}
-			 , #{cartCpnDcAmt}
-			 , #{pntDcAmt}
-			 , #{prePntDcAmt}
-			 , #{savePntAmt}
-			 , #{realOrdAmt}
-			 , #{gfcdUseAmt}
-			 , REG_NO
-			 , REG_DT
-			 , UPD_NO
-			 , UPD_DT
-		FROM   TB_ORDER_DETAIL_ITEM
-		WHERE  1=1
-		AND    ORD_NO = #{ordNo} 
-		AND    ORD_DTL_NO = #{ordDtlNo} 
-		AND    ORD_DTL_ITEM_SQ = #{ordDtlItemSq}
-	</insert>
+
 	
-	<!-- 주문상세 > 주문취소 > 주문상세이력 생성-->
-	<insert id="createOrderDetailHstCnclRtn" parameterType="Order">
-		/* Order.createOrderDetailHstCnclRtn */
-		INSERT INTO TB_ORDER_DETAIL_HST (
-				ORD_DTL_NO
-				, ORD_NO
-				, ORD_EXCH_GB
-				, ORD_DTL_STAT
-				, ORG_ORD_DTL_NO
-				, SUPPLY_COMP_CD
-				, GOODS_CD
-				, PRODUCT_NO
-				, PRODUCT_CODE
-				, FORMAL_GB
-				, GOODS_TYPE
-				, LIST_PRICE
-				, CURR_PRICE
-				, DC_RATE
-				, OPT_ADD_PRICE
-				, ORD_QTY
-				, ORD_AMT
-				, CNCL_RTN_QTY
-				, CNCL_RTN_AMT
-				, CPN1_CPN_SQ
-				, CPN1_DC_AMT
-				, TMTB1_SQ
-				, TMTB1_DC_AMT
-				, TMTB2_SQ
-				, TMTB2_DC_AMT
-				, GOODS_CPN_SQ
-				, GOODS_CPN_DC_AMT
-				, CART_CPN_SQ
-				, CART_CPN_DC_AMT
-				, BURDEN_RATE
-				, PNT_DC_AMT
-				, PRE_PNT_DC_AMT
-				, SAVE_PNT_AMT
-				, REAL_ORD_AMT
-				, GFCD_USE_AMT
-				, VENDOR_ID
-				, EXTMALL_ID
-				, AGENT_ORDER_ID
-				, EXTMALL_ORDER_ID
-				, CHANGABLE_YN
-				, CHANGE_FEE_FREE_YN
-				, RETURNABLE_YN
-				, RETURN_FEE_FREE_YN
-				, SOLDOUT_YN
-				, SOLDOUT_MEMO
-				, SOLDOUT_REG_NO
-				, SOLDOUT_REG_DT
-				, DELV_ADDR_SQ
-				, DELV_FEE_CD
-				, SHOT_DELV_YN
-				, GIFT_PACK_YN
-				, MAKE_GOODS_YN
-				, ENTRY_NO
-				, DELV_LOC_CD
-				, DELV_ASSIGN_DT
-				, DELV_ASSIGN_STAT
-				, DSTRBT_NOTE
-				, DELV_STDT
-				, DELV_EDDT
-				, SHIP_COMP_CD
-				, INVOICE_NO
-				, INVOICE_SEND_YN
-				, SELL_STORE_CD
-				, SELL_FEE_RATE
-				, AF_LINK_CD
-				, ITHR_CD
-				, CONTENTS_LOC
-				, PLAN_DTL_SQ
-				, SOCIAL_SQ
-				, REG_NO
-				, REG_DT
-				, UPD_NO
-				, UPD_DT
-		)
-		SELECT OD.ORD_DTL_NO
-			 , OD.ORD_NO
-			 , OD.ORD_EXCH_GB
-			 , #{ordDtlStat}
-			 , OD.ORG_ORD_DTL_NO
-			 , OD.SUPPLY_COMP_CD
-			 , OD.GOODS_CD
-			 , OD.PRODUCT_NO
-			 , OD.PRODUCT_CODE
-			 , OD.FORMAL_GB
-			 , OD.GOODS_TYPE
-			 , OD.LIST_PRICE
-			 , OD.CURR_PRICE
-			 , OD.DC_RATE
-			 , OD.OPT_ADD_PRICE
-			 , OD.ORD_QTY
-			 , Z.ORD_AMT
-			 , #{ordCanChgQty}
-			 , OD.ORD_AMT
-			 , OD.CPN1_CPN_SQ
-			 , OD.CPN1_DC_AMT - Z.CPN1_DC_AMT
-			 , OD.TMTB1_SQ
-			 , OD.TMTB1_DC_AMT - Z.TMTB1_DC_AMT
-			 , OD.TMTB2_SQ
-			 , OD.TMTB2_DC_AMT - Z.TMTB2_DC_AMT
-			 , OD.GOODS_CPN_SQ
-			 , OD.GOODS_CPN_DC_AMT - Z.GOODS_CPN_DC_AMT
-			 , OD.CART_CPN_SQ
-			 , OD.CART_CPN_DC_AMT - Z.CART_CPN_DC_AMT
-			 , OD.BURDEN_RATE
-			 , OD.PNT_DC_AMT - Z.PNT_DC_AMT
-			 , OD.PRE_PNT_DC_AMT - Z.PRE_PNT_DC_AMT
-			 , OD.SAVE_PNT_AMT - Z.SAVE_PNT_AMT
-			 , Z.REAL_ORD_AMT
-			 , OD.GFCD_USE_AMT - Z.GFCD_USE_AMT
-			 , OD.VENDOR_ID
-			 , OD.EXTMALL_ID
-			 , OD.AGENT_ORDER_ID
-			 , OD.EXTMALL_ORDER_ID
-			 , OD.CHANGABLE_YN
-			 , OD.CHANGE_FEE_FREE_YN
-			 , OD.RETURNABLE_YN
-			 , OD.RETURN_FEE_FREE_YN
-			 , OD.SOLDOUT_YN
-			 , OD.SOLDOUT_MEMO
-			 , OD.SOLDOUT_REG_NO
-			 , OD.SOLDOUT_REG_DT
-			 , OD.DELV_ADDR_SQ
-			 , OD.DELV_FEE_CD
-			 , OD.SHOT_DELV_YN
-			 , OD.GIFT_PACK_YN
-			 , OD.MAKE_GOODS_YN
-			 , OD.ENTRY_NO
-			 , OD.DELV_LOC_CD
-			 , OD.DELV_ASSIGN_DT
-			 , OD.DELV_ASSIGN_STAT
-			 , OD.DSTRBT_NOTE
-			 , OD.DELV_STDT
-			 , OD.DELV_EDDT
-			 , OD.SHIP_COMP_CD
-			 , OD.INVOICE_NO
-			 , OD.INVOICE_SEND_YN
-			 , OD.SELL_STORE_CD
-			 , OD.SELL_FEE_RATE
-			 , OD.AF_LINK_CD
-			 , OD.ITHR_CD
-			 , OD.CONTENTS_LOC
-			 , OD.PLAN_DTL_SQ
-			 , OD.SOCIAL_SQ
-			 , #{regNo} AS REG_ID
-			 , CURRENT_TIMESTAMP() AS REG_DT
-			 , #{regNo} AS REG_ID
-			 , CURRENT_TIMESTAMP() AS UPD_DT
-		FROM   TB_ORDER_DETAIL OD
-		INNER  JOIN (
-		SELECT ODI.ORD_DTL_NO
-		     , SUM(ODI.ORD_AMT) AS ORD_AMT
-		     , SUM(ODI.CNCL_RTN_AMT) AS CNCL_RTN_AMT
-		     , SUM(ODI.CPN1_DC_AMT) AS CPN1_DC_AMT
-		     , SUM(ODI.TMTB1_DC_AMT) AS TMTB1_DC_AMT
-		     , SUM(ODI.TMTB2_DC_AMT) AS TMTB2_DC_AMT
-		     , SUM(ODI.GOODS_CPN_DC_AMT) AS GOODS_CPN_DC_AMT
-		     , SUM(ODI.CART_CPN_DC_AMT) AS CART_CPN_DC_AMT
-		     , SUM(ODI.PNT_DC_AMT) AS PNT_DC_AMT
-		     , SUM(ODI.PRE_PNT_DC_AMT) AS PRE_PNT_DC_AMT
-		     , SUM(ODI.SAVE_PNT_AMT) AS SAVE_PNT_AMT
-		     , SUM(ODI.REAL_ORD_AMT) AS REAL_ORD_AMT
-		     , SUM(ODI.GFCD_USE_AMT) AS GFCD_USE_AMT
-		FROM   TB_ORDER_DETAIL_ITEM ODI
-		WHERE  ODI.ORD_DTL_NO = #{ordDtlNo}
-		GROUP  BY ODI.ORD_DTL_NO
-		) Z
-		ON    OD.ORD_DTL_NO = Z.ORD_DTL_NO
-		AND   OD.ORD_DTL_NO = #{ordDtlNo}
-	</insert>
 	
-	<!-- 주문상세 > 주문취소신청 > 주문상세정보 수정 -->
-	<update id="updateOrderDetail" parameterType="Order">
-		/* Order.updateOrderDetail */
-		UPDATE TB_ORDER_DETAIL OD
-		INNER  JOIN (
-		SELECT ODI.ORD_DTL_NO
-		     , SUM(ODI.ORD_AMT) 			AS ORD_AMT
-		     , SUM(ODI.CNCL_RTN_AMT) 		AS CNCL_RTN_AMT
-		     , SUM(ODI.CPN1_DC_AMT) 		AS CPN1_DC_AMT
-		     , SUM(ODI.TMTB1_DC_AMT) 		AS TMTB1_DC_AMT
-		     , SUM(ODI.TMTB2_DC_AMT) 		AS TMTB2_DC_AMT 
-		     , SUM(ODI.GOODS_CPN_DC_AMT) 	AS GOODS_CPN_DC_AMT
-		     , SUM(ODI.CART_CPN_DC_AMT) 	AS CART_CPN_DC_AMT 
-		     , SUM(ODI.PNT_DC_AMT) 			AS PNT_DC_AMT 
-		     , SUM(ODI.PRE_PNT_DC_AMT) 		AS PRE_PNT_DC_AMT
-		     , SUM(ODI.SAVE_PNT_AMT) 		AS SAVE_PNT_AMT 
-		     , SUM(ODI.REAL_ORD_AMT) 		AS REAL_ORD_AMT 
-		     , SUM(ODI.GFCD_USE_AMT) 		AS GFCD_USE_AMT 
-		FROM   TB_ORDER_DETAIL_ITEM ODI
-		WHERE  ODI.ORD_NO = #{ordNo} 
-		AND    ODI.ORD_DTL_NO = #{ordDtlNo}
-		GROUP  BY ODI.ORD_DTL_NO
-		) Z
-		ON     OD.ORD_DTL_NO 			= Z.ORD_DTL_NO
-		SET    OD.ORD_DTL_STAT			= CASE WHEN OD.ORD_QTY > (OD.CNCL_RTN_QTY + #{ordCanChgQty})
-		                                       THEN OD.ORD_DTL_STAT
-		                                       ELSE #{ordDtlStat}
-		                                        END
-		     , OD.CNCL_RTN_QTY			= OD.CNCL_RTN_QTY + #{ordCanChgQty}
-		     , OD.ORD_AMT 				= Z.ORD_AMT
-		     , OD.CNCL_RTN_AMT  		= Z.CNCL_RTN_AMT
-		     , OD.CPN1_DC_AMT 			= Z.CPN1_DC_AMT
-		     , OD.TMTB1_DC_AMT 			= Z.TMTB1_DC_AMT
-		     , OD.TMTB2_DC_AMT 			= Z.TMTB2_DC_AMT
-		     , OD.GOODS_CPN_DC_AMT 		= Z.GOODS_CPN_DC_AMT
-		     , OD.CART_CPN_DC_AMT 		= Z.CART_CPN_DC_AMT
-		     , OD.PNT_DC_AMT 			= Z.PNT_DC_AMT
-		     , OD.PRE_PNT_DC_AMT 		= Z.PRE_PNT_DC_AMT
-		     , OD.SAVE_PNT_AMT 			= Z.SAVE_PNT_AMT
-		     , OD.REAL_ORD_AMT 			= Z.REAL_ORD_AMT
-		     , OD.GFCD_USE_AMT 			= Z.GFCD_USE_AMT
-		WHERE  1=1
-		AND    OD.ORD_NO = #{ordNo}
-		AND    OD.ORD_DTL_NO = #{ordDtlNo}
-	</update>
 
 </mapper>
 

+ 429 - 159
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaOrderChange.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.style24.admin.biz.dao.TsaOrderChangeDao">
 
-	<!-- 주문상세 > 주문취소 > 주문취소대상목록 -->
+	<!-- 주문상세 > 주문취소신청 > 주문취소,반품,교환 대상목록 -->
 	<select id="getCancelRequestTargetList" parameterType="Order" resultType="Order">
 		/* order.getCancelRequestTargetList */
 		SELECT OD.ORD_NO
@@ -91,17 +91,20 @@
 		AND    DF.DELV_FEE_CD = DFP.DELV_FEE_CD 
 		AND    DFP.USE_YN = 'Y'
 		WHERE  1=1
-		AND    OD.ORD_DTL_STAT IN (
-			'G013_10', 'G013_20', 'G013_30', 'G013_40'
-		)
+		<if test="ordDtlStatArr != null and ordDtlStatArr != ''">
+        AND    OD.ORD_DTL_STAT IN
+			<foreach collection="ordDtlStatArr" item="item" index="index"  open="(" close=")" separator=",">
+        		#{item}
+            </foreach>
+        </if> 
 		AND    OD.ORD_NO = #{ordNo}
 		GROUP  BY OD.ORD_NO
 		     , OD.ORD_DTL_NO
 	    ORDER  BY OD.ORD_NO
 	         , OD.ORD_DTL_NO
 	</select>
-	
-	<!-- 주문상세 > 주문취소 > 주문변경정보 등록-->
+		
+	<!-- 주문상세 > 주문취소신청 > 주문변경정보 등록-->
 	<insert id="createOrderChange" parameterType="OrderChange" keyProperty="ordChgSq">
 		/* Order.createOrderChange */
 		INSERT INTO TB_ORDER_CHANGE (
@@ -143,73 +146,372 @@
 		FROM   TB_ORDER  
 		WHERE  ORD_NO = #{ordNo}
 	</insert>
+
+	<!-- 주문상세 > 주문취소신청 > 주문상세단품정보 수정 -->
+	<update id="updateOrderDetailItem" parameterType="Order">
+		/* Order.updateOrderDetailItem */
+		UPDATE TB_ORDER_DETAIL_ITEM ODI
+		INNER  JOIN TB_ORDER_DETAIL OD
+		ON     OD.ORD_DTL_NO = OD.ORD_DTL_NO
+		SET    ODI.ORD_DTL_STAT		= CASE WHEN OD.ORD_QTY > (OD.CNCL_RTN_QTY + #{ordCanChgQty})
+		                                   THEN ODI.ORD_DTL_STAT
+		                                   ELSE #{ordDtlStat}
+		                                    END
+		     , ODI.CNCL_RTN_AMT 	= ODI.CNCL_RTN_AMT 			+ #{cnclRtnAmt}
+		     , ODI.CPN1_DC_AMT 		= ODI.CPN1_DC_AMT 			- #{cpn1DcAmt}
+		     , ODI.TMTB1_DC_AMT 	= ODI.TMTB1_DC_AMT 			- #{tmtb1DcAmt}
+		     , ODI.TMTB2_DC_AMT 	= ODI.TMTB1_DC_AMT 			- #{tmtb2DcAmt}
+		     , ODI.GOODS_CPN_DC_AMT = ODI.GOODS_CPN_DC_AMT 		- #{goodsCpnDcAmt}
+		     , ODI.CART_CPN_DC_AMT 	= ODI.CART_CPN_DC_AMT 		- #{cartCpnDcAmt}
+		     , ODI.PNT_DC_AMT 		= ODI.PNT_DC_AMT 			- #{pntDcAmt}
+		     , ODI.PRE_PNT_DC_AMT 	= ODI.PRE_PNT_DC_AMT 		- #{prePntDcAmt}
+		     , ODI.SAVE_PNT_AMT 	= ODI.SAVE_PNT_AMT 			- #{savePntAmt}
+		     , ODI.REAL_ORD_AMT 	= ODI.REAL_ORD_AMT 			- #{realOrdAmt}
+		     , ODI.GFCD_USE_AMT 	= ODI.GFCD_USE_AMT 			- #{gfcdUseAmt}
+		     , ODI.UPD_NO 			= #{updNo}
+		     , ODI.UPD_DT 			= SYSDATE()
+		WHERE  1=1
+		AND    ODI.ORD_NO 			= #{ordNo} 
+		AND    ODI.ORD_DTL_NO 		= #{ordDtlNo} 
+		AND    ODI.ORD_DTL_ITEM_SQ 	= #{ordDtlItemSq}
+	</update>
 	
-	<!-- 주문상세 > 주문취소 > 주문사은품취소 -->
-	<update id="updateOrdFreegiftDel" parameterType="Order">
-		/* Order.updateOrdFreegiftDel */
-		UPDATE TB_ORD_FREEGIFT_VAL
-		SET    DEL_YN= 'N'
-		     , UPD_NO = #{updNo}
-		     , UPD_DT = SYSDATE()
-		WHERE  FREEGIFT_VAL_SQ IN (
-			SELECT OFRV.FREEGIFT_VAL_SQ 
-			FROM   TB_ORD_FREEGIFT OFR
-			INNER  JOIN TB_ORD_FREEGIFT_VAL OFRV
-			ON     OFR.ORD_FREEGIFT_SQ  = OFRV.ORD_FREEGIFT_SQ 
-			WHERE  1=1
-			AND    OFR.ORD_NO = (SELECT CASE WHEN SUM(X.ORD_QTY) > SUM(X.CNCL_RTN_QTY)
-								             THEN 0
-								             ELSE X.ORD_NO
-								             END 
-								 FROM   TB_ORDER_DETAIL X
-								 WHERE  1=1
-								 AND    X.ORD_NO = #{ordNo})
+	<!-- 주문상세 > 주문취소신청 > 주문상세단품정보 이력 등록 -->
+	<insert id="createOrderDetailItemHst" parameterType="Order">
+		/* Order.createOrderDetailItemHst */
+		INSERT INTO TB_ORDER_DETAIL_ITEM_HST (
+			ORD_DTL_ITEM_SQ
+			, ORD_DTL_NO
+			, ORD_NO
+			, ORD_DTL_STAT
+			, ITEM_CD
+			, OPT_CD
+			, OPT_CD1
+			, OPT_CD2
+			, SKU_MODEL_NO
+			, PRODUCT_NO
+			, PRODUCT_CODE
+			, ITEM_QTY
+			, ITEM_PRICE
+			, OPT_ADD_PRICE
+			, DISP_ORD
+			, ORD_AMT
+			, CNCL_RTN_AMT
+			, CPN1_DC_AMT
+			, TMTB1_DC_AMT
+			, TMTB2_DC_AMT
+			, GOODS_CPN_DC_AMT
+			, CART_CPN_DC_AMT
+			, PNT_DC_AMT
+			, PRE_PNT_DC_AMT
+			, SAVE_PNT_AMT
+			, REAL_ORD_AMT
+			, GFCD_USE_AMT
+			, REG_NO
+			, REG_DT
+			, UPD_NO
+			, UPD_DT
+		) 
+		SELECT ORD_DTL_ITEM_SQ
+			 , ORD_DTL_NO
+			 , ORD_NO
+			 , #{ordDtlStat}
+			 , ITEM_CD
+			 , OPT_CD
+			 , OPT_CD1
+			 , OPT_CD2
+			 , SKU_MODEL_NO
+			 , PRODUCT_NO
+			 , PRODUCT_CODE
+			 , ITEM_QTY
+			 , ITEM_PRICE
+			 , OPT_ADD_PRICE
+			 , DISP_ORD
+			 , ORD_AMT
+			 , #{cnclRtnAmt}
+			 , #{cpn1DcAmt}
+			 , #{tmtb1DcAmt}
+			 , #{tmtb2DcAmt}
+			 , #{goodsCpnDcAmt}
+			 , #{cartCpnDcAmt}
+			 , #{pntDcAmt}
+			 , #{prePntDcAmt}
+			 , #{savePntAmt}
+			 , #{realOrdAmt}
+			 , #{gfcdUseAmt}
+			 , REG_NO
+			 , REG_DT
+			 , UPD_NO
+			 , UPD_DT
+		FROM   TB_ORDER_DETAIL_ITEM
+		WHERE  1=1
+		AND    ORD_NO = #{ordNo} 
+		AND    ORD_DTL_NO = #{ordDtlNo} 
+		AND    ORD_DTL_ITEM_SQ = #{ordDtlItemSq}
+	</insert>
+	
+	<!-- 주문상세 > 주문취소신청 > 주문상세단품정보 수정 (재고수정) -->
+	<update id="updateOptionQty" parameterType="OrderChange">
+		/* Order.updateOptionQty */
+		UPDATE TB_OPTION OP
+		INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
+		ON     OP.GOODS_CD = ODI.ITEM_CD
+		AND    OP.OPT_CD1 = ODI.OPT_CD1
+		AND    OP.OPT_CD2 = ODI.OPT_CD2
+		SET    OP.CURR_STOCK_QTY = OP.CURR_STOCK_QTY + (ODI.ITEM_QTY * #{ordCanChgQty})
+		     , OP.UPD_NO = #{updNo}
+		     , OP.UPD_DT = SYSDATE()
+		WHERE  1=1
+		AND    ODI.ORD_NO 			= #{ordNo} 
+		AND    ODI.ORD_DTL_NO 		= #{ordDtlNo} 
+		AND    ODI.ORD_DTL_ITEM_SQ 	= #{ordDtlItemSq}
+	</update>
+	
+	<!-- 주문상세 > 주문취소 > 주문상세정보(취소,반품) 이력 등록-->
+	<insert id="createOrderDetailHstCnclRtn" parameterType="Order">
+		/* Order.createOrderDetailHstCnclRtn */
+		INSERT INTO TB_ORDER_DETAIL_HST (
+				ORD_DTL_NO
+				, ORD_NO
+				, ORD_EXCH_GB
+				, ORD_DTL_STAT
+				, ORG_ORD_DTL_NO
+				, SUPPLY_COMP_CD
+				, GOODS_CD
+				, PRODUCT_NO
+				, PRODUCT_CODE
+				, FORMAL_GB
+				, GOODS_TYPE
+				, LIST_PRICE
+				, CURR_PRICE
+				, DC_RATE
+				, OPT_ADD_PRICE
+				, ORD_QTY
+				, ORD_AMT
+				, CNCL_RTN_QTY
+				, CNCL_RTN_AMT
+				, CPN1_CPN_SQ
+				, CPN1_DC_AMT
+				, TMTB1_SQ
+				, TMTB1_DC_AMT
+				, TMTB2_SQ
+				, TMTB2_DC_AMT
+				, GOODS_CPN_SQ
+				, GOODS_CPN_DC_AMT
+				, CART_CPN_SQ
+				, CART_CPN_DC_AMT
+				, BURDEN_RATE
+				, PNT_DC_AMT
+				, PRE_PNT_DC_AMT
+				, SAVE_PNT_AMT
+				, REAL_ORD_AMT
+				, GFCD_USE_AMT
+				, VENDOR_ID
+				, EXTMALL_ID
+				, AGENT_ORDER_ID
+				, EXTMALL_ORDER_ID
+				, CHANGABLE_YN
+				, CHANGE_FEE_FREE_YN
+				, RETURNABLE_YN
+				, RETURN_FEE_FREE_YN
+				, SOLDOUT_YN
+				, SOLDOUT_MEMO
+				, SOLDOUT_REG_NO
+				, SOLDOUT_REG_DT
+				, DELV_ADDR_SQ
+				, DELV_FEE_CD
+				, SHOT_DELV_YN
+				, GIFT_PACK_YN
+				, MAKE_GOODS_YN
+				, ENTRY_NO
+				, DELV_LOC_CD
+				, DELV_ASSIGN_DT
+				, DELV_ASSIGN_STAT
+				, DSTRBT_NOTE
+				, DELV_STDT
+				, DELV_EDDT
+				, SHIP_COMP_CD
+				, INVOICE_NO
+				, INVOICE_SEND_YN
+				, SELL_STORE_CD
+				, SELL_FEE_RATE
+				, AF_LINK_CD
+				, ITHR_CD
+				, CONTENTS_LOC
+				, PLAN_DTL_SQ
+				, SOCIAL_SQ
+				, REG_NO
+				, REG_DT
+				, UPD_NO
+				, UPD_DT
 		)
+		SELECT OD.ORD_DTL_NO
+			 , OD.ORD_NO
+			 , OD.ORD_EXCH_GB
+			 , #{ordDtlStat}
+			 , OD.ORG_ORD_DTL_NO
+			 , OD.SUPPLY_COMP_CD
+			 , OD.GOODS_CD
+			 , OD.PRODUCT_NO
+			 , OD.PRODUCT_CODE
+			 , OD.FORMAL_GB
+			 , OD.GOODS_TYPE
+			 , OD.LIST_PRICE
+			 , OD.CURR_PRICE
+			 , OD.DC_RATE
+			 , OD.OPT_ADD_PRICE
+			 , OD.ORD_QTY
+			 , Z.ORD_AMT
+			 , #{ordCanChgQty}
+			 , OD.ORD_AMT
+			 , OD.CPN1_CPN_SQ
+			 , OD.CPN1_DC_AMT - Z.CPN1_DC_AMT
+			 , OD.TMTB1_SQ
+			 , OD.TMTB1_DC_AMT - Z.TMTB1_DC_AMT
+			 , OD.TMTB2_SQ
+			 , OD.TMTB2_DC_AMT - Z.TMTB2_DC_AMT
+			 , OD.GOODS_CPN_SQ
+			 , OD.GOODS_CPN_DC_AMT - Z.GOODS_CPN_DC_AMT
+			 , OD.CART_CPN_SQ
+			 , OD.CART_CPN_DC_AMT - Z.CART_CPN_DC_AMT
+			 , OD.BURDEN_RATE
+			 , OD.PNT_DC_AMT - Z.PNT_DC_AMT
+			 , OD.PRE_PNT_DC_AMT - Z.PRE_PNT_DC_AMT
+			 , OD.SAVE_PNT_AMT - Z.SAVE_PNT_AMT
+			 , Z.REAL_ORD_AMT
+			 , OD.GFCD_USE_AMT - Z.GFCD_USE_AMT
+			 , OD.VENDOR_ID
+			 , OD.EXTMALL_ID
+			 , OD.AGENT_ORDER_ID
+			 , OD.EXTMALL_ORDER_ID
+			 , OD.CHANGABLE_YN
+			 , OD.CHANGE_FEE_FREE_YN
+			 , OD.RETURNABLE_YN
+			 , OD.RETURN_FEE_FREE_YN
+			 , OD.SOLDOUT_YN
+			 , OD.SOLDOUT_MEMO
+			 , OD.SOLDOUT_REG_NO
+			 , OD.SOLDOUT_REG_DT
+			 , OD.DELV_ADDR_SQ
+			 , OD.DELV_FEE_CD
+			 , OD.SHOT_DELV_YN
+			 , OD.GIFT_PACK_YN
+			 , OD.MAKE_GOODS_YN
+			 , OD.ENTRY_NO
+			 , OD.DELV_LOC_CD
+			 , OD.DELV_ASSIGN_DT
+			 , OD.DELV_ASSIGN_STAT
+			 , OD.DSTRBT_NOTE
+			 , OD.DELV_STDT
+			 , OD.DELV_EDDT
+			 , OD.SHIP_COMP_CD
+			 , OD.INVOICE_NO
+			 , OD.INVOICE_SEND_YN
+			 , OD.SELL_STORE_CD
+			 , OD.SELL_FEE_RATE
+			 , OD.AF_LINK_CD
+			 , OD.ITHR_CD
+			 , OD.CONTENTS_LOC
+			 , OD.PLAN_DTL_SQ
+			 , OD.SOCIAL_SQ
+			 , #{regNo} AS REG_ID
+			 , CURRENT_TIMESTAMP() AS REG_DT
+			 , #{regNo} AS REG_ID
+			 , CURRENT_TIMESTAMP() AS UPD_DT
+		FROM   TB_ORDER_DETAIL OD
+		INNER  JOIN (
+		SELECT ODI.ORD_DTL_NO
+		     , SUM(ODI.ORD_AMT) AS ORD_AMT
+		     , SUM(ODI.CNCL_RTN_AMT) AS CNCL_RTN_AMT
+		     , SUM(ODI.CPN1_DC_AMT) AS CPN1_DC_AMT
+		     , SUM(ODI.TMTB1_DC_AMT) AS TMTB1_DC_AMT
+		     , SUM(ODI.TMTB2_DC_AMT) AS TMTB2_DC_AMT
+		     , SUM(ODI.GOODS_CPN_DC_AMT) AS GOODS_CPN_DC_AMT
+		     , SUM(ODI.CART_CPN_DC_AMT) AS CART_CPN_DC_AMT
+		     , SUM(ODI.PNT_DC_AMT) AS PNT_DC_AMT
+		     , SUM(ODI.PRE_PNT_DC_AMT) AS PRE_PNT_DC_AMT
+		     , SUM(ODI.SAVE_PNT_AMT) AS SAVE_PNT_AMT
+		     , SUM(ODI.REAL_ORD_AMT) AS REAL_ORD_AMT
+		     , SUM(ODI.GFCD_USE_AMT) AS GFCD_USE_AMT
+		FROM   TB_ORDER_DETAIL_ITEM ODI
+		WHERE  ODI.ORD_DTL_NO = #{ordDtlNo}
+		GROUP  BY ODI.ORD_DTL_NO
+		) Z
+		ON    OD.ORD_DTL_NO = Z.ORD_DTL_NO
+		AND   OD.ORD_DTL_NO = #{ordDtlNo}
+	</insert>
+	
+	<!-- 주문상세 > 주문취소신청 > 주문상세정보 수정 -->
+	<update id="updateOrderDetail" parameterType="Order">
+		/* Order.updateOrderDetail */
+		UPDATE TB_ORDER_DETAIL OD
+		INNER  JOIN (
+		SELECT ODI.ORD_DTL_NO
+		     , SUM(ODI.CNCL_RTN_AMT) 		AS CNCL_RTN_AMT
+		     , SUM(ODI.CPN1_DC_AMT) 		AS CPN1_DC_AMT
+		     , SUM(ODI.TMTB1_DC_AMT) 		AS TMTB1_DC_AMT
+		     , SUM(ODI.TMTB2_DC_AMT) 		AS TMTB2_DC_AMT 
+		     , SUM(ODI.GOODS_CPN_DC_AMT) 	AS GOODS_CPN_DC_AMT
+		     , SUM(ODI.CART_CPN_DC_AMT) 	AS CART_CPN_DC_AMT 
+		     , SUM(ODI.PNT_DC_AMT) 			AS PNT_DC_AMT 
+		     , SUM(ODI.PRE_PNT_DC_AMT) 		AS PRE_PNT_DC_AMT
+		     , SUM(ODI.SAVE_PNT_AMT) 		AS SAVE_PNT_AMT 
+		     , SUM(ODI.REAL_ORD_AMT) 		AS REAL_ORD_AMT 
+		     , SUM(ODI.GFCD_USE_AMT) 		AS GFCD_USE_AMT 
+		FROM   TB_ORDER_DETAIL_ITEM ODI
+		WHERE  ODI.ORD_NO = #{ordNo} 
+		AND    ODI.ORD_DTL_NO = #{ordDtlNo}
+		GROUP  BY ODI.ORD_DTL_NO
+		) Z
+		ON     OD.ORD_DTL_NO 			= Z.ORD_DTL_NO
+		SET    OD.ORD_DTL_STAT			= CASE WHEN OD.ORD_QTY > (OD.CNCL_RTN_QTY + #{ordCanChgQty})
+		                                       THEN OD.ORD_DTL_STAT
+		                                       ELSE #{ordDtlStat}
+		                                        END
+		     , OD.CNCL_RTN_QTY			= OD.CNCL_RTN_QTY + #{ordCanChgQty}
+		     , OD.CNCL_RTN_AMT  		= Z.CNCL_RTN_AMT
+		     , OD.CPN1_DC_AMT 			= Z.CPN1_DC_AMT
+		     , OD.TMTB1_DC_AMT 			= Z.TMTB1_DC_AMT
+		     , OD.TMTB2_DC_AMT 			= Z.TMTB2_DC_AMT
+		     , OD.GOODS_CPN_DC_AMT 		= Z.GOODS_CPN_DC_AMT
+		     , OD.CART_CPN_DC_AMT 		= Z.CART_CPN_DC_AMT
+		     , OD.PNT_DC_AMT 			= Z.PNT_DC_AMT
+		     , OD.PRE_PNT_DC_AMT 		= Z.PRE_PNT_DC_AMT
+		     , OD.SAVE_PNT_AMT 			= Z.SAVE_PNT_AMT
+		     , OD.REAL_ORD_AMT 			= Z.REAL_ORD_AMT
+		     , OD.GFCD_USE_AMT 			= Z.GFCD_USE_AMT
+		WHERE  1=1
+		AND    OD.ORD_NO = #{ordNo}
+		AND    OD.ORD_DTL_NO = #{ordDtlNo}
 	</update>
 	
-	<!-- 주문상세 > 주문취소 > 주문환불 금액 정보 등록 -->
-	<insert id="createRefund" parameterType="Order">
-		/* Order.createRefund */
-		INSERT INTO TB_REFUND (
-			ORD_NO
-			, PAY_SQ
-			, ORD_CHG_SQ
-			, REFUND_AMT
-			, RA_NO
-			, RA_BANK
-			, RA_NM
-			, RF_CPN1_AMT
-			, RF_TMTB1_AMT
-			, RF_TMTB2_AMT
-			, RF_GOODS_CPN_AMT
-			, RF_CART_CPN_AMT
-			, RF_PNT_AMT
-			, RF_PRE_PNT_AMT
-			, RF_GFCD_USE_AMT
+	<!-- 주문상세 > 주문취소신청 > 주문변경정보상세 등록-->
+	<insert id="createOrderChangeDetail" parameterType="OrderChange">
+		/* Order.createOrderChangeDetail */
+		INSERT INTO TB_ORDER_CHANGE_DETAIL (
+			ORD_CHG_SQ
+			, ORD_DTL_NO
+			, CHG_QTY
+			, CHG_STAT
+			, COMPLETE_DT
 			, REG_NO
 			, REG_DT
+			, UPD_NO
+			, UPD_DT
 		) VALUES (
-			#{ordNo}
-			, #{paySq}
-			, #{ordChgSq}
-			, #{refundAmt}
-			, #{raNo}
-			, #{raBank}
-			, #{raNm}
-			, #{rfCpn1Amt}
-			, #{rfTmtb1Amt}
-			, #{rfTmtb2Amt}
-			, #{rfGoodsCpnAmt}
-			, #{rfCartCpnAmt}
-			, #{rfPntAmt}
-			, #{rfPrePntAmt}
-			, #{rfGfcdUseAmt}
+			#{ordChgSq}
+			, #{ordDtlNo}
+			, #{chgQty}
+			, #{chgStat}
+			, SYSDATE()
 			, #{regNo}
 			, SYSDATE()
+			, #{updNo}
+			, SYSDATE()
 		)
 	</insert>
 	
-	<!-- 주문상세 > 주문취소 > 주문환불 결제 정보 등록 -->
+	<!-- 주문상세 > 주문취소신청 > 주문환불금액정보 등록 -->
 	<insert id="createPayment" parameterType="Order" keyProperty="paySq">
 		/* Order.createPayment */
 		INSERT INTO TB_PAYMENT (
@@ -279,7 +581,49 @@
 		AND    PAY_STAT = 'G016_30'
 	</insert>
 	
-	<!-- 주문상세 > 주문취소 > 주문추가배송금액등록-->
+	<!-- 주문상세 > 주문취소신청 > 주문환불정보 등록 -->
+	<insert id="createRefund" parameterType="Order">
+		/* Order.createRefund */
+		INSERT INTO TB_REFUND (
+			ORD_NO
+			, PAY_SQ
+			, ORD_CHG_SQ
+			, REFUND_AMT
+			, RA_NO
+			, RA_BANK
+			, RA_NM
+			, RF_CPN1_AMT
+			, RF_TMTB1_AMT
+			, RF_TMTB2_AMT
+			, RF_GOODS_CPN_AMT
+			, RF_CART_CPN_AMT
+			, RF_PNT_AMT
+			, RF_PRE_PNT_AMT
+			, RF_GFCD_USE_AMT
+			, REG_NO
+			, REG_DT
+		) VALUES (
+			#{ordNo}
+			, #{paySq}
+			, #{ordChgSq}
+			, #{refundAmt}
+			, #{raNo}
+			, #{raBank}
+			, #{raNm}
+			, #{rfCpn1Amt}
+			, #{rfTmtb1Amt}
+			, #{rfTmtb2Amt}
+			, #{rfGoodsCpnAmt}
+			, #{rfCartCpnAmt}
+			, #{rfPntAmt}
+			, #{rfPrePntAmt}
+			, #{rfGfcdUseAmt}
+			, #{regNo}
+			, SYSDATE()
+		)
+	</insert>
+
+	<!-- 주문상세 > 주문취소신청 > 주문추가배송금액등록-->
 	<insert id="createDeliveryFee" parameterType="Order">
 		/* Order.createDeliveryFee */
 		INSERT INTO TB_DELIVERY_FEE ( 
@@ -319,104 +663,30 @@
 		)
 	</insert>
 	
-	<!-- 주문상세 > 주문반품 > 주문반품대상목록 -->
-	<select id="getReturnRequestTargetList" parameterType="Order" resultType="Order">
-		/* order.getReturnRequestTargetList */
-		SELECT OD.ORD_NO
-		     , OD.ORD_DTL_NO
-		     , OD.ORD_DTL_STAT
-		     , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT) AS ORD_DTL_STAT_NM
-		     , CASE WHEN OD.ORD_DTL_STAT IN ('G013_20', 'G013_30', 'G013_40')
-		            THEN 'Y'
-		            ELSE 'N'
-		             END ALL_CAN_YN
-		     , G1.GOODS_CD
-		     , G1.GOODS_NM
-		     , G1.GOODS_TYPE
-		     , FN_GET_CODE_NM('G056', G1.GOODS_TYPE) AS GOODS_TYPE_NM
-		     , ODI.ORD_DTL_ITEM_SQ
-		     , G2.GOODS_CD AS ITEM_CD
-		     , G2.GOODS_NM AS ITEM_NM
-		     , ODI.OPT_CD
-		     , ODI.OPT_CD1
-		     , ODI.OPT_CD2
-		     , ODI.ITEM_QTY
-		     , OD.ORD_QTY
-             , OD.CNCL_RTN_QTY 
-		     , CASE WHEN OCD.ORD_REQ_CHG_QTY IS NULL
-		            THEN 0
-		            ELSE OCD.ORD_REQ_CHG_QTY * ODI.ITEM_QTY
-		            END  ORD_REQ_CHG_QTY
-		     , ODI.ITEM_PRICE
-		     , ODI.OPT_ADD_PRICE
-		     , ODI.ORD_AMT
-		     , ODI.CNCL_RTN_AMT
-		     , ODI.CPN1_DC_AMT 
-		     , ODI.TMTB1_DC_AMT 
-		     , ODI.TMTB2_DC_AMT 
-		     , ODI.GOODS_CPN_DC_AMT 
-		     , ODI.CART_CPN_DC_AMT
-		     , ODI.PNT_DC_AMT 
-		     , ODI.PRE_PNT_DC_AMT 
-		     , ODI.GFCD_USE_AMT
-		     , ODI.REAL_ORD_AMT
-		     , DF.DELV_FEE
-		     , DF.SUPPLY_COMP_CD
-		     , DF.DELV_FEE_CD 
-		     , DFP.MIN_ORD_AMT 
-		     , DFP.DELV_FEE AS ORG_DELV_FEE
-		     , DFP.RTN_DELV_FEE
-		     , DFP.DELV_FEE + DFP.RTN_DELV_FEE AS EXC_DELV_FEE
-		     , 0			AS ORD_CAN_CHG_QTY
-		FROM   TB_ORDER_DETAIL OD
-		INNER  JOIN TB_GOODS G1
-		ON     OD.GOODS_CD = G1.GOODS_CD
-		INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
-		ON     OD.ORD_NO = ODI.ORD_NO
-		AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		INNER  JOIN TB_GOODS G2
-		ON     ODI.ITEM_CD = G2.GOODS_CD
-		LEFT   OUTER JOIN (
-			SELECT OD.ORD_DTL_NO
-			     , SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
-			FROM   TB_ORDER_CHANGE_DETAIL OCD
-			INNER  JOIN TB_ORDER_DETAIL OD
-			ON     OCD.ORD_DTL_NO = OD.ORD_DTL_NO
-			WHERE  1=1
-			AND    OD.ORD_NO = #{ordNo}
-			AND    OCD.CHG_STAT IN (
-				'G685_20', 'G685_30', 'G685_40'
-			)
-			GROUP  BY OCD.ORD_DTL_NO
-		) OCD
-		ON     OD.ORD_DTL_NO = OCD.ORD_DTL_NO
-		INNER  JOIN (
-			SELECT X.SUPPLY_COMP_CD
-			     , X.DELV_FEE_CD
-			     , SUM(X.DELV_FEE) AS DELV_FEE
-			FROM   TB_DELIVERY_FEE X
+	<!-- 주문상세 > 주문취소신청 > 주문사은품취소 -->
+	<update id="updateOrdFreegiftDel" parameterType="Order">
+		/* Order.updateOrdFreegiftDel */
+		UPDATE TB_ORD_FREEGIFT_VAL
+		SET    DEL_YN= 'N'
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = SYSDATE()
+		WHERE  FREEGIFT_VAL_SQ IN (
+			SELECT OFRV.FREEGIFT_VAL_SQ 
+			FROM   TB_ORD_FREEGIFT OFR
+			INNER  JOIN TB_ORD_FREEGIFT_VAL OFRV
+			ON     OFR.ORD_FREEGIFT_SQ  = OFRV.ORD_FREEGIFT_SQ 
 			WHERE  1=1
-			AND    X.ORD_NO = #{ordNo}
-			AND    X.DELV_FEE_GB = 'G018_10'
-			GROUP  BY X.SUPPLY_COMP_CD
-			        , X.DELV_FEE_CD
-		) DF
-		ON     OD.SUPPLY_COMP_CD = DF.SUPPLY_COMP_CD 
-		AND    OD.DELV_FEE_CD = DF.DELV_FEE_CD 
-		INNER  JOIN TB_DELV_FEE_POLICY DFP
-		ON     DF.SUPPLY_COMP_CD  = DFP.SUPPLY_COMP_CD 
-		AND    DF.DELV_FEE_CD = DFP.DELV_FEE_CD 
-		AND    DFP.USE_YN = 'Y'
-		WHERE  1=1
-		AND    OD.ORD_DTL_STAT IN (
-			'G013_50', 'G013_55', 'G013_60'
+			AND    OFR.ORD_NO = (SELECT CASE WHEN SUM(X.ORD_QTY) > SUM(X.CNCL_RTN_QTY)
+								             THEN 0
+								             ELSE X.ORD_NO
+								             END 
+								 FROM   TB_ORDER_DETAIL X
+								 WHERE  1=1
+								 AND    X.ORD_NO = #{ordNo})
 		)
-		AND    OD.ORD_NO = #{ordNo}
-		GROUP  BY OD.ORD_NO
-		     , OD.ORD_DTL_NO
-	    ORDER  BY OD.ORD_NO
-	         , OD.ORD_DTL_NO
-	</select>
+	</update>
+	
+	
 	
 	<!-- 주문상세 > 주문취소 > 고객환불계좌정보 조회 -->
 	<select id="getRefundAccount" parameterType="Order" resultType="Order">
@@ -447,7 +717,7 @@
 		) Z
 	</select>
 	
-	<!-- 주문상세 > 주문취소 > 고객환불계좌정보 체크 -->
+	<!-- 주문상세 > 주문취소 > 고객환불계좌정보 중복체크 -->
 	<select id="getRefundAccountCheck" parameterType="Order" resultType="int">
 		/* Order.getRefundAccountCheck */
 		SELECT COUNT(1)

+ 19 - 14
style24.admin/src/main/webapp/WEB-INF/views/order/CancelRequestForm.html

@@ -817,6 +817,9 @@ var orderAgGrid = {
 </script>
 
 <script>
+// 현재 사유는 고객 입니다.
+var isCustomer = true;
+
 // 취소정보계산
 var fnCalculateRefundAmt = function (obj) {
 	// 취소정보담은목록
@@ -873,10 +876,19 @@ var fnCalculateRefundAmt = function (obj) {
 			$("#spanGfcdUseAmt").text(result.spanGfcdUseAmt.addComma());			//취소 고객 상품권 금액
 			
 			$("#spanRealCnclRtnAmt").text(result.spanRealCnclRtnAmt.addComma());	//취소 상품 실결제 금액
-			$("#spanTotDeliveryFee").text(result.spanTotDeliveryFee.addComma());	//환불 배송 금액
+			$("#spanTotDeliveryFee").text(result.spanTotDeliveryFee.addComma());	//취소 환불 배송 금액
+			
+			$("#spanTotRtnDelvFee").text(result.spanTotRtnDelvFee.addComma());		//반품 환불 배송 금액
+			$("#spanTotExcDelvFee").text(result.spanTotExcDelvFee.addComma());		//교환 환불 배송 금액
 			
-			$("#spanTotRtnDelvFee").text(result.spanTotRtnDelvFee.addComma());		//환불 배송 금액
-			$("#spanTotExcDelvFee").text(result.spanTotExcDelvFee.addComma());		//환불 배송 금액
+			// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
+			if (isCustomer) {
+				result.spanRefundAmt = (result.spanRealCnclRtnAmt + result.sumDeliveryFee) - result.spanTotDeliveryFee;
+			} 
+			// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
+			else {
+				result.spanRefundAmt = (result.spanRealCnclRtnAmt + result.sumDeliveryFee);
+			}
 			
 			$("#spanRefundAmt").text(result.spanRefundAmt.addComma());				//환불 금액 합계
 		}
@@ -890,16 +902,16 @@ var fnChangeChgReason = function(reasonCd){
 	// 취소, 반품, 교환 사유 판단
 	if (arrREasonCd[0] == 'G686_10') {
 		$("#imputeReason").text("고객");
-		isImputationCustomers = true;
+		isCustomer = true;
 	} else {
 		$("#imputeReason").text("회사");
-		isImputationCustomers = false;
+		isCustomer = false;
 	}
 
 	$('#cancelRequestFrm input[name=chgReason]').val(arrREasonCd[0]);
 	$('#cancelRequestFrm input[name=chgReasonDesc]').val(arrREasonCd[1]);
 
-	//fnCalculateRefundAmt();			//환불예정금액 계산.
+	fnCalculateRefundAmt();			//환불예정금액 계산.
 }
 
 // 취소요청
@@ -956,14 +968,6 @@ var fnCancelRequestPartOk = function () {
 		accountNm 	= refundAccount[0].accountNm;
 		bankCd 		= refundAccount[0].bankCd;
 	}
-
-	// 5. PG 전송 여부
-	var pgStat = "N";
-	if ($('#cancelRequestFrm input:checkbox[name=pgStats]').is(":checked")) {
-		pgStat = "Y";
-	}
-	
-	$("#cancelRequestFrm input[name=pgStat]").val(pgStat);
 	
 	var jsonObj = {
 		"ordNo"				: $('#cancelRequestFrm input[name=ordNo]').val()
@@ -974,6 +978,7 @@ var fnCancelRequestPartOk = function () {
 		,"accountNm" 		: accountNm
 		,"bankCd" 			: bankCd
 		,"allCanYn" 		: allCanYn
+		,"isCustomer" 		: isCustomer
 	}
 
 	// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌

+ 26 - 13
style24.admin/src/main/webapp/WEB-INF/views/order/ReturnRequestForm.html

@@ -850,6 +850,9 @@ var orderAgGrid = {
 </script>
 
 <script>
+//현재 사유는 고객 입니다.
+var isCustomer = true;
+
 // 취소정보계산
 var fnCalculateRefundAmt = function (obj) {
 	// 취소정보담은목록
@@ -906,10 +909,19 @@ var fnCalculateRefundAmt = function (obj) {
 			$("#spanGfcdUseAmt").text(result.spanGfcdUseAmt.addComma());			//취소 고객 상품권 금액
 			
 			$("#spanRealCnclRtnAmt").text(result.spanRealCnclRtnAmt.addComma());	//취소 상품 실결제 금액
-			$("#spanTotDeliveryFee").text(result.spanTotDeliveryFee.addComma());	//환불 배송 금액
+			$("#spanTotDeliveryFee").text(result.spanTotDeliveryFee.addComma());	//취소 환불 배송 금액
 			
-			$("#spanTotRtnDelvFee").text(result.spanTotRtnDelvFee.addComma());		//환불 배송 금액
-			$("#spanTotExcDelvFee").text(result.spanTotExcDelvFee.addComma());		//환불 배송 금액
+			$("#spanTotRtnDelvFee").text(result.spanTotRtnDelvFee.addComma());		//반품 환불 배송 금액
+			$("#spanTotExcDelvFee").text(result.spanTotExcDelvFee.addComma());		//교환 환불 배송 금액
+						
+			// 고객사유 : 환불금액게산 = (취소금액 + 배송비) - 추가배송비 - 반품배송비
+			if (isCustomer) {
+				result.spanRefundAmt = (result.spanRealCnclRtnAmt + result.sumDeliveryFee) - result.spanTotDeliveryFee - result.spanTotRtnDelvFee;
+			} 
+			// 회사사유 : 환불금액게산 = (취소금액 + 배송비)
+			else {
+				result.spanRefundAmt = (result.spanRealCnclRtnAmt + result.sumDeliveryFee);
+			}
 			
 			$("#spanRefundAmt").text(result.spanRefundAmt.addComma());				//환불 금액 합계
 		}
@@ -923,21 +935,21 @@ var fnChangeChgReason = function(reasonCd){
 	// 취소, 반품, 교환 사유 판단
 	if (arrREasonCd[0] == 'G686_10') {
 		$("#imputeReason").text("고객");
-		isImputationCustomers = true;
+		isCustomer = true;
 	} else {
 		$("#imputeReason").text("회사");
-		isImputationCustomers = false;
+		isCustomer = false;
 	}
 
 	$('#cancelRequestFrm input[name=chgReason]').val(arrREasonCd[0]);
 	$('#cancelRequestFrm input[name=chgReasonDesc]').val(arrREasonCd[1]);
-
-	//fnCalculateRefundAmt();			//환불예정금액 계산.
+	
+	//환불예정금액 계산.
+	fnCalculateRefundAmt();			
 }
 
-// 취소요청
+// 반품요청
 var fnCancelRequestPartOk = function () {
-	
 	var temp 		= false;
 	var ordDtlStat	= cancelRequestTargetList[0].ordDtlStat; 
 	var allCanYn 	= "N";
@@ -999,22 +1011,23 @@ var fnCancelRequestPartOk = function () {
 		,"accountNm" 		: accountNm
 		,"bankCd" 			: bankCd
 		,"allCanYn" 		: allCanYn
+		,"isCustomer"		: isCustomer
 	}
 
 	// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌
 	var jsonData = JSON.stringify(jsonObj);
 	
-	mcxDialog.confirm('취소요청하시겠습니까?', {
-		cancelBtnText		: "취소",
+	mcxDialog.confirm('반품요청하시겠습니까?', {
+		cancelBtnText		: "반품",
 		sureBtnClick		: function(){
 			// 취소 실행
 			gagajf.ajaxJsonSubmit(
-				'/orderChange/cancel/'
+				'/orderChange/return/'
 				, jsonData
 				, function() {
 					uifnPopupClose('popupOrderDetail');
 					fnReOpenOrderDetailPopup();
-					uifnPopupClose('popupCancelRequestForm');
+					uifnPopupClose('popupReturnRequestForm');
 				}
 			);
 		}