浏览代码

개선 #998 [ADMIN][FRONT] 배송비 계산 처리 시 상품권 사용 금액 추가 처리 임시 커밋

card007 4 年之前
父节点
当前提交
a8e0bb9d87

+ 45 - 42
src/main/java/com/style24/admin/biz/service/TsaWithdrawService.java

@@ -3,8 +3,6 @@ package com.style24.admin.biz.service;
 import java.util.Collection;
 import java.util.List;
 
-import com.style24.core.biz.service.TscNaverPayService;
-import com.style24.core.support.env.TscConstants;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -13,15 +11,16 @@ import com.gagaframework.web.parameter.GagaMap;
 import com.style24.admin.biz.dao.TsaDeliveryDao;
 import com.style24.admin.biz.dao.TsaWithdrawDao;
 import com.style24.admin.support.security.session.TsaSession;
-import com.style24.admin.biz.service.TsaWmsWithdrawService;
 import com.style24.core.biz.dao.TscOrderChangeDao;
+import com.style24.core.biz.service.TscKakaotalkService;
+import com.style24.core.biz.service.TscNaverPayService;
 import com.style24.core.biz.service.TscOrderChangeService;
 import com.style24.core.biz.service.TscOrderRefundService;
+import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.env.TscConstants.OrderChangeGb;
 import com.style24.core.support.env.TscConstants.OrderChangeStat;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.core.support.util.CryptoUtils;
-import com.style24.core.biz.service.TscKakaotalkService;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
 import com.style24.persistence.domain.Withdraw;
@@ -408,38 +407,42 @@ public class TsaWithdrawService {
 		String allCanYn = params.getString("allCanYn");
 		
 		try {
+			OrderChange orderChange= new OrderChange();
+			orderChange.setOrdChgSq(params.getInt("ordChgSq"));
+			orderChange.setUserNo(params.getInt("custNo"));
+
+			GagaMap info = orderChangeService.refundConfirmPreInfo(orderChange);
+
+			info.set("chgReasonNm"		, params.getString("chgReasonNm"));							// 변경사유
+			info.set("chgReason"		, params.getString("chgReason"));							// 변경사유코드
+			info.set("accountNm"		, params.getString("accountNm"));							// 환불계좌이름
+			info.set("accountNo"		, CryptoUtils.decryptAES(params.getString("accountNo")));	// 환불계좌번호
+			info.set("bankCd"			, params.getString("bankCd"));								// 환불계좌은행코드
+			info.set("custNo"			, params.getInt("custNo"));									// 고객번호
+			info.set("ordNm"			, params.getString("ordNm"));								// 주문자명
+			info.set("delvAddrSq"		, params.getInt("delvAddrSq"));								// 배송지번호
+			info.set("delvExpnYn"		, params.getString("delvExpnYn"));							// 확정후반품,불량여부
+			info.set("addDeliveryFee"	, params.getInt("addDeliveryFee"));							// 추가배송비
+			info.set("addDeliveryFeeYn"	, params.getString("addDeliveryFeeYn"));					// 추가배송비여부
+			info.set("mallGb"			, params.getString("mallGb"));								// 몰구분
+			info.set("ordNo"			, params.getInt("ordNo"));									// 주문번호
+			info.set("ordChgSq"			, params.getInt("ordChgSq"));								// 변경요청번호
+			info.set("pgStat"			, params.getString("pgStat"));								// PG 상태
+			info.set("codFee"			, params.getInt("codFee"));									// 착불비
+			info.set("codFeeYn"			, params.getString("codFeeYn"));							// 착불비여부
+			info.set("enCloseFeeYn"		, params.getString("enCloseFeeYn"));						// 동봉비여부
+			info.set("enCloseFee"		, params.getInt("enCloseFee"));								// 동봉비
+			info.set("wdInvoiceNo"		, params.getInt("wdInvoiceNo"));							// 회수송장번호
+			info.set("wdGb"				, params.getString("wdGb"));								// 회수구분
+			info.set("addPayCost"		, params.getInt("addPayCost"));								// 추가배송비
+			info.set("allCanYn"			, allCanYn);												// 전체반품여부
+			info.set("delvExpnYn"		, params.getString("delvExpnYn"));							// 확정후 품절,불량 여부
+			info.set("delvFeeCd"		, params.getString("delvFeeCd"));							// 배송비정책코드
+
 			if ("Y".equals(allCanYn)) {
-				orderChangeService.allRefund(change);
+				// orderChangeService.allRefund(change);
+				orderChangeService.allRefund(info);
 			} else {
-				OrderChange orderChange= new OrderChange();
-				orderChange.setOrdChgSq(params.getInt("ordChgSq"));
-				orderChange.setUserNo(params.getInt("custNo"));
-
-				GagaMap info = orderChangeService.refundConfirmPreInfo(orderChange);
-
-				info.set("chgReasonNm"		, params.getString("chgReasonNm"));							// 변경사유
-				info.set("chgReason"		, params.getString("chgReason"));							// 변경사유코드
-				info.set("accountNm"		, params.getString("accountNm"));							// 환불계좌이름
-				info.set("accountNo"		, CryptoUtils.decryptAES(params.getString("accountNo")));	// 환불계좌번호
-				info.set("bankCd"			, params.getString("bankCd"));								// 환불계좌은행코드
-				info.set("custNo"			, params.getInt("custNo"));									// 고객번호
-				info.set("ordNm"			, params.getString("ordNm"));								// 주문자명
-				info.set("delvAddrSq"		, params.getInt("delvAddrSq"));								// 배송지번호
-				info.set("delvExpnYn"		, params.getString("delvExpnYn"));							// 확정후반품,불량여부
-				info.set("addDeliveryFee"	, params.getInt("addDeliveryFee"));							// 추가배송비
-				info.set("addDeliveryFeeYn"	, params.getString("addDeliveryFeeYn"));					// 추가배송비여부
-				info.set("mallGb"			, params.getString("mallGb"));								// 몰구분
-				info.set("ordNo"			, params.getInt("ordNo"));									// 주문번호
-				info.set("ordChgSq"			, params.getInt("ordChgSq"));								// 변경요청번호
-				info.set("pgStat"			, params.getString("pgStat"));								// PG 상태
-				info.set("codFee"			, params.getInt("codFee"));									// 착불비
-				info.set("codFeeYn"			, params.getString("codFeeYn"));							// 착불비여부
-				info.set("enCloseFeeYn"		, params.getString("enCloseFeeYn"));						// 동봉비여부
-				info.set("enCloseFee"		, params.getInt("enCloseFee"));								// 동봉비
-				info.set("wdInvoiceNo"		, params.getInt("wdInvoiceNo"));							// 회수송장번호
-				info.set("wdGb"				, params.getString("wdGb"));								// 회수구분
-				info.set("addPayCost"		, params.getInt("addPayCost"));								// 추가배송비
-
 				orderChangeService.partialRefund(info, userNo);
 			}
 
@@ -447,16 +450,16 @@ public class TsaWithdrawService {
 			
 			Withdraw refundOrdchgSq = new Withdraw();
 			refundOrdchgSq.setOrdChgSq(params.getInt("ordChgSq"));
-			Withdraw info = withdrawDao.getRefundInfo(refundOrdchgSq);
+			Withdraw refundInfo = withdrawDao.getRefundInfo(refundOrdchgSq);
 			
 			Order order = new Order();
-			order.setOrdNo(info.getOrdNo());
-			order.setCustNo(info.getCustNo());
-			order.setOrdNm(info.getOrdNm());
-			order.setOrdPhnno(info.getOrdPhnno());
-			order.setRefundAmt(info.getRefundAmt());
-			order.setGoodsCnt(info.getGoodsCnt()+"");
-			order.setGoodsNm(info.getGoodsNm());
+			order.setOrdNo(refundInfo.getOrdNo());
+			order.setCustNo(refundInfo.getCustNo());
+			order.setOrdNm(refundInfo.getOrdNm());
+			order.setOrdPhnno(refundInfo.getOrdPhnno());
+			order.setRefundAmt(refundInfo.getRefundAmt());
+			order.setGoodsCnt(refundInfo.getGoodsCnt()+"");
+			order.setGoodsNm(refundInfo.getGoodsNm());
 			
 			kakaotalkService.sendRefundComplete(order, userNo);
 			

+ 1 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaWithdraw.xml

@@ -703,6 +703,7 @@
 				, C.DELV_ADDR_SQ
 				, F.WD_INVOICE_NO 
 				, (SELECT R.REFUND_AMT FROM TB_REFUND R WHERE R.ORD_NO = E.ORD_NO AND R.ORD_CHG_SQ = A.ORD_CHG_SQ ) AS REFUND_AMT
+				, E.CUST_NO
 		  FROM TB_ORDER_CHANGE A
 		  JOIN TB_ORDER_CHANGE_DETAIL B ON B.ORD_CHG_SQ = A.ORD_CHG_SQ 
 		  JOIN TB_ORDER_DETAIL C ON C.ORD_DTL_NO = B.ORD_DTL_NO 

+ 85 - 66
src/main/webapp/WEB-INF/views/order/CnclCompleteView.html

@@ -30,10 +30,10 @@
 			<form id="cancelRequestFrm" name="cancelRequestFrm">
 				
 				<th:block th:if="${chgStat} == 'G720_30'">
-					<h4 id="orderInfoTitle">취소완료정보</h4>
+					<h4 th:id="orderInfoTitle">취소완료정보</h4>
 				</th:block>
 				<th:block th:if="${chgStat} == 'G720_50'">
-					<h4 id="orderInfoTitle">반품완료정보</h4>
+					<h4 th:id="orderInfoTitle">반품완료정보</h4>
 				</th:block>
 			
 				<div id="gridCnclRtnCompleteList" style="width:100%; height: 200px;" class="ag-theme-balham"></div>
@@ -451,13 +451,6 @@ $(document).ready(function() {
 		}
 	}
 	
-	// 4. 변경사유설정
-	$("#chgReasonNm").text(chgReasonNm);
-	$("#chgMemo").text(chgMemo);
-	$("#chgMemo").attr("disabled", "true");
-	cfnGetTextLength($('#chgMemo'), 1000, $('#chgMemoCount'));
-	fnChangeChgReason(chgReason);
-	
 	// 2021.08.04 AS-IS 데이타 처리
 	if (cnclRtnCompleteList != null) {
 		addPayCost				= cnclRtnCompleteList[0].addPayCost;		// 추가배송비
@@ -472,70 +465,89 @@ $(document).ready(function() {
 		raNm					= cnclRtnCompleteList[0].raNm;				// 환불계좌명
 		
 		// 5. 환불에정금액 
-		var spanOrdAmt 			= 0;
-		var spanCnclRtnAmt 		= 0;
-		var spanTotPntDcAmt		= 0;
-		var spanPntDcAmt		= 0;
-		var spanPrePntDcAmt		= 0;
-		var spanCpnDcAmt		= 0;
-		var spanCpn1DcAmt		= 0;
-		var spanGoodsCpnDcAmt	= 0;
-		var spanCartCpnDcAmt	= 0;
-		var spanTmtbDcAmt		= 0;
-		var spanTmtb1DcAmt		= 0;
-		var spanTmtb2DcAmt		= 0;
-		var spanGfcdUseAmt		= 0;
-		var spanRealCnclRtnAmt	= 0;
-		var spanTotDeliveryFee	= addPayCost;
-		var spanRefundAmt		= 0;
-		var spanRealDelvAmt		= realDelvAmt;
-		var spanSavePntAmt		= 0;
+		//var spanOrdAmt 			= 0;
+		//var spanCnclRtnAmt 		= 0;
+		//var spanTotPntDcAmt		= 0;
+		//var spanPntDcAmt		= 0;
+		//var spanPrePntDcAmt		= 0;
+		//var spanCpnDcAmt		= 0;
+		//var spanCpn1DcAmt		= 0;
+		//var spanGoodsCpnDcAmt	= 0;
+		//var spanCartCpnDcAmt	= 0;
+		//var spanTmtbDcAmt		= 0;
+		//var spanTmtb1DcAmt		= 0;
+		//var spanTmtb2DcAmt		= 0;
+		//var spanGfcdUseAmt		= 0;
+		//var spanRealCnclRtnAmt	= 0;
+		//var spanTotDeliveryFee	= addPayCost;
+		//var spanRefundAmt		= 0;
+		//var spanRealDelvAmt		= realDelvAmt;
+		//var spanSavePntAmt		= 0;
+		
+		// 2021.08.11 card007 환불금액 관련 계산 TB_REFUND 정보로 변경
+		//for (i=0 ; i<cnclRtnCompleteList.length ; i++) {
+		//	spanOrdAmt 				= spanOrdAmt 			+ cnclRtnCompleteList[i].ordAmt;
+		//	spanCnclRtnAmt 			= spanCnclRtnAmt 		+ cnclRtnCompleteList[i].cnclRtnAmt;
+		//	spanPntDcAmt			= spanPntDcAmt			+ cnclRtnCompleteList[i].pntDcAmt;
+		//	spanPrePntDcAmt			= spanPrePntDcAmt		+ cnclRtnCompleteList[i].prePntDcAmt;
+		//	spanCpn1DcAmt 			= spanCpn1DcAmt 		+ cnclRtnCompleteList[i].cpn1DcAmt;
+		//	spanGoodsCpnDcAmt 		= spanGoodsCpnDcAmt 	+ cnclRtnCompleteList[i].goodsCpnDcAmt;
+		//	spanCartCpnDcAmt 		= spanCartCpnDcAmt 		+ cnclRtnCompleteList[i].cartCpnDcAmt;
+		//	spanTmtb1DcAmt 			= spanTmtb1DcAmt 		+ cnclRtnCompleteList[i].tmtb1DcAmt;
+		//	spanTmtb2DcAmt 			= spanTmtb2DcAmt 		+ cnclRtnCompleteList[i].tmtb2DcAmt;
+		//	spanGfcdUseAmt 			= spanGfcdUseAmt 		+ cnclRtnCompleteList[i].gfcdUseAmt;
+		//	spanRealCnclRtnAmt 		= spanRealCnclRtnAmt 	+ cnclRtnCompleteList[i].realOrdAmt;
+		//	spanSavePntAmt			= spanSavePntAmt		+ cnclRtnCompleteList[i].savePntAmt;
+		//}
 		
+		var spanCnclRtnAmt 		= cnclRtnCompleteList[0].rfCnclAmt;			// 취소상품금액
+		var spanPntDcAmt		= cnclRtnCompleteList[0].rfPntAmt;			// 환불 포인트 사용 금액
+		var spanPrePntDcAmt		= cnclRtnCompleteList[0].rfPrePntAmt;		// 환불 선포인트 사용 금액
+		var spanCpn1DcAmt		= cnclRtnCompleteList[0].rfCpn1Amt;			// 환불 즉시할인쿠폰 사용 금액
+		var spanGoodsCpnDcAmt	= cnclRtnCompleteList[0].rfGoodsCpnAmt;		// 환불 상품쿠폰 사용 금액
+		var spanCartCpnDcAmt	= cnclRtnCompleteList[0].rfCartCpnAmt;		// 환불 장바구니쿠폰 사용 금액
+		var spanDelvCpnDcAmt	= cnclRtnCompleteList[0].rfDelvCpnAmt;		// 환불 배송비쿠폰 사용 금액
+		var spanTmtb1DcAmt		= cnclRtnCompleteList[0].rfTmtb1Amt;		// 환불 다다익선1 사용 금액
+		var spanTmtb2DcAmt		= cnclRtnCompleteList[0].rfTmtb2Amt;		// 환불 다다익선2 사용 금액
+		var spanGfcdUseAmt		= cnclRtnCompleteList[0].rfGfcdUseAmt;		// 환불 상품권 사용 금액
+		var spanDelvGfcdUseAmt	= cnclRtnCompleteList[0].rfDelvGfcdUseAmt;	// 환불 배송비 상품권 사용 금액
+		var spanDeliveryFee		= cnclRtnCompleteList[0].rfDeliveryFee;		// 환불 배송비 금액
+		var spanRefundAmt		= cnclRtnCompleteList[0].refundAmt;			// 환불금액
+		var spanSavePntAmt		= 0;										// 적립예정포인트환수 금액
 		for (i=0 ; i<cnclRtnCompleteList.length ; i++) {
-			spanOrdAmt 				= spanOrdAmt 			+ cnclRtnCompleteList[i].ordAmt;
-			spanCnclRtnAmt 			= spanCnclRtnAmt 		+ cnclRtnCompleteList[i].cnclRtnAmt;
-			spanPntDcAmt			= spanPntDcAmt			+ cnclRtnCompleteList[i].pntDcAmt;
-			spanPrePntDcAmt			= spanPrePntDcAmt		+ cnclRtnCompleteList[i].prePntDcAmt;
-			spanCpn1DcAmt 			= spanCpn1DcAmt 		+ cnclRtnCompleteList[i].cpn1DcAmt;
-			spanGoodsCpnDcAmt 		= spanGoodsCpnDcAmt 	+ cnclRtnCompleteList[i].goodsCpnDcAmt;
-			spanCartCpnDcAmt 		= spanCartCpnDcAmt 		+ cnclRtnCompleteList[i].cartCpnDcAmt;
-			spanTmtb1DcAmt 			= spanTmtb1DcAmt 		+ cnclRtnCompleteList[i].tmtb1DcAmt;
-			spanTmtb2DcAmt 			= spanTmtb2DcAmt 		+ cnclRtnCompleteList[i].tmtb2DcAmt;
-			spanGfcdUseAmt 			= spanGfcdUseAmt 		+ cnclRtnCompleteList[i].gfcdUseAmt;
-			spanRealCnclRtnAmt 		= spanRealCnclRtnAmt 	+ cnclRtnCompleteList[i].realOrdAmt;
 			spanSavePntAmt			= spanSavePntAmt		+ cnclRtnCompleteList[i].savePntAmt;
 		}
 		
-		spanTotPntDcAmt	= spanPntDcAmt + spanPrePntDcAmt;
-		spanCpnDcAmt	= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt + delvCpnDcAmt;
-		spanTmtbDcAmt	= spanTmtb1DcAmt + spanTmtb2DcAmt;
-		spanRefundAmt	= spanRealCnclRtnAmt + realDelvAmt;
-		
-		$(".spanCnclRtnAmt").text(spanCnclRtnAmt.addComma()+"원");
-		$(".spanCpn1DcAmt").text(spanCpn1DcAmt.addComma()+"원");
-		$(".spanGoodsCpnDcAmt").text(spanGoodsCpnDcAmt.addComma()+"원");
-		$(".spanCartCpnDcAmt").text(spanCartCpnDcAmt.addComma()+"원");
-		
-		var spanCpnDcAmt = spanCpn1DcAmt + spanGoodsCpnDcAmt + spanGoodsCpnDcAmt;
-		$(".spanCpnDcAmt").text(spanCpnDcAmt.addComma()+"원");
-		
-		$(".spanPrePntDcAmt").text(spanPrePntDcAmt.addComma()+"원");
-		$(".spanTmtbDcAmt").text(spanTmtbDcAmt.addComma()+"원");
-		
+		var spanCpnDcAmt	= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt;
+		var spanTmtbDcAmt	= spanTmtb1DcAmt + spanTmtb2DcAmt;
 		var goodsDcSumAmt = spanPrePntDcAmt + spanTmtbDcAmt;
-		$(".goodsDcSumAmt").text(goodsDcSumAmt.addComma()+"원");
+		var spanTotGfcdUseAmt = spanGfcdUseAmt + spanDelvGfcdUseAmt;
+		var totalRefundAmt = spanRefundAmt + spanTotGfcdUseAmt + spanPntDcAmt;
+		//spanRefundAmt	= spanRealCnclRtnAmt + realDelvAmt;
 		
-		$(".delvCpnAmt").text(delvCpnDcAmt.addComma()+"원");
-		$(".addDelvFee").text(addPayCost.addComma()+"원");
-		$(".spanRealDelvAmt").text(realDelvAmt.addComma()+"원");
-		
-		var totalRefundAmt = spanRefundAmt + spanGfcdUseAmt + spanPntDcAmt;
-		
-		$(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");
-		$(".spanRefundAmt").text(spanRefundAmt.addComma()+"원");
-		$(".spanGfcdUseAmt").text(spanGfcdUseAmt.addComma()+"원");
-		$(".spanPntDcAmt").text(spanPntDcAmt.addComma()+"원");
-		$(".spanSavePntAmt").text(spanSavePntAmt.addComma()+"P");
+		// 상품금액
+		$(".spanCnclRtnAmt").text(spanCnclRtnAmt.addComma()+"원");					// 취소상품금액
+
+		// 할인금액차감
+		$(".spanCpnDcAmt").text(spanCpnDcAmt.addComma()+"원");						// 쿠폰할인차감 > 합계
+		$(".spanCpn1DcAmt").text(spanCpn1DcAmt.addComma()+"원");						// 쿠폰할인차감 > 즉시할인쿠폰
+		$(".spanGoodsCpnDcAmt").text(spanGoodsCpnDcAmt.addComma()+"원");				// 쿠폰할인차감 > 주문서상품쿠폰
+		$(".spanCartCpnDcAmt").text(spanCartCpnDcAmt.addComma()+"원");				// 쿠폰할인차감 > 장바구니쿠폰
+		$(".goodsDcSumAmt").text(goodsDcSumAmt.addComma()+"원");						// 상품할인차감 > 합계
+		$(".spanPrePntDcAmt").text(spanPrePntDcAmt.addComma()+"원");					// 상품할인차감 > 선포인트할인
+		$(".spanTmtbDcAmt").text(spanTmtbDcAmt.addComma()+"원");						// 상품할인차감 > 다다익선할인
+
+		// 배송비
+		$(".spanRealDelvAmt").text(spanDeliveryFee.addComma()+"원");					// 환불배송비 > 합계
+		$(".addDelvFee").text(addPayCost.addComma()+"원");							// 환불배송비 > 추가금결제
+		$(".delvCpnAmt").text(spanDelvCpnDcAmt.addComma()+"원");						// 환불배송비 > 배송비쿠폰
+
+		// 환불금액
+		$(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");					// 총환불금액
+		$(".spanRefundAmt").text(spanRefundAmt.addComma()+"원");						// 결제수단환불
+		$(".spanGfcdUseAmt").text(spanTotGfcdUseAmt.addComma()+"원");				// 상품권환불
+		$(".spanPntDcAmt").text(spanPntDcAmt.addComma()+"원");						// 포인트환불
+		$(".spanSavePntAmt").text(spanSavePntAmt.addComma()+"P");					// 포인트환불 > 적립예정포인트환수
 		
 		var pgGbNm		= "";
 		var cardGbNm	= "";
@@ -588,6 +600,13 @@ $(document).ready(function() {
 	} else {
 		$("#gridCnclRtnCompleteList").hide();
 	}
+	
+	// 4. 변경사유설정
+	$("#chgReasonNm").text(chgReasonNm);
+	$("#chgMemo").text(chgMemo);
+	$("#chgMemo").attr("disabled", "true");
+	cfnGetTextLength($('#chgMemo'), 1000, $('#chgMemoCount'));
+	fnChangeChgReason(chgReason);
 
 });
 </script>

+ 1 - 1
src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -1238,7 +1238,7 @@ $(document).ready(function () {
 		delvGfcdUseAmt	+= parseInt(orderDeliveryFeeInfo[j].delvGfcdUseAmt);
 	}
 	
-	realDelvSumAmt	= delvSumAmt - delvCpnDcAmt;
+	realDelvSumAmt	= delvSumAmt - delvCpnDcAmt - delvGfcdUseAmt;
 	realOrdSumAmt	= realOrdSumAmt + realDelvSumAmt; 
 	//gfcdUseSumAmt	= gfcdUseSumAmt + delvGfcdUseAmt;
 	

+ 92 - 25
src/main/webapp/WEB-INF/views/withdraw/RefundDetailForm.html

@@ -385,6 +385,10 @@
 		reFundInfo.ordChgSq    = ordChgSq;			// 변경요청번호
 		reFundInfo.wdGb        = wdGb;				// 회수구분
 
+		if (reFundInfo.chgReason != 'G688_10') {
+			isCustomer = false;
+		}
+
 		// 환불컨펌 상세
 		$("#wdGbNm").text(data.wdGbNm); 										// 회수구분 
 		$("#arriValDt").text(data.arrivalDt); 									// arriValDt 도착일
@@ -403,8 +407,9 @@
 		// 2021.08.04 취소금액수정
 		var spanRealDelvAmt		= 0;
 		var addDelvFee			= 0;
-		
-		if (reFundInfo.spanRealCnclRtnAmt > 0) {
+
+		// 2021.08.10 card007 상품권 100% 결제 관련 로직 변경
+		//if (reFundInfo.spanRealCnclRtnAmt > 0) {
 			// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
 			if (isCustomer) {
 				reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + sumDeliveryFee) - reFundInfo.spanTotDeliveryFee;
@@ -419,9 +424,9 @@
 			else {
 				reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + sumDeliveryFee);
 			}
-		}
+		//}
 		
-		$("#spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma()+"원");				//환불 금액 합계
+		//$("#spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma()+"원");				//환불 금액 합계
 		
 		$(".spanCnclRtnAmt").text(reFundInfo.spanCnclRtnAmt.addComma()+"원");
 		$(".spanCpn1DcAmt").text(reFundInfo.spanCpn1DcAmt.addComma()+"원");
@@ -439,13 +444,10 @@
 		
 		$(".delvCpnAmt").text(reFundInfo.spanDelvCpnDcAmt.addComma()+"원");
 		$(".addDelvFee").text(addDelvFee.addComma()+"원");
-		$(".spanRealDelvAmt").text(spanSumDeliveryFee.addComma()+"원");
-		
-		var totalRefundAmt = reFundInfo.spanRefundAmt + reFundInfo.spanGfcdUseAmt + reFundInfo.spanPntDcAmt;
-		
-		$(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");
-		$(".spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma()+"원");
-		$(".spanGfcdUseAmt").text(reFundInfo.spanGfcdUseAmt.addComma()+"원");
+		//$(".spanRealDelvAmt").text(spanSumDeliveryFee.addComma()+"원");
+
+		//$(".spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma()+"원");
+		//$(".spanGfcdUseAmt").text((reFundInfo.spanGfcdUseAmt + reFundInfo.spanDelvGfcdUseAmt).addComma()+"원");
 		$(".spanPntDcAmt").text(reFundInfo.spanPntDcAmt.addComma()+"원");
 		$(".spanSavePntAmt").text(reFundInfo.spanSavePntAmt.addComma()+"P");
 		
@@ -563,6 +565,12 @@
 		var spanDelvCpnDcAmt	= reFundInfo.spanTotDeliveryFee; // 배송비쿠폰할인금액
 		var spanTotRtnDelvFee	= reFundInfo.spanTotRtnDelvFee;  // 반품배송비
 		
+		// 2021.08.10 card007 상품권 100% 결제 관련 로직 변경
+		var spanGfcdUseAmt		= reFundInfo.spanGfcdUseAmt;
+		var spanDelvGfcdUseAmt	= 0;
+		var delvFee				= 0;
+		var refundAmt;
+		
 		// 출고예외(확정후 품절,불량)일 경우
 		if (delvExpnYn == "Y") {
 			// 총 주문수량  =  반품수량 배송비가 있을시 환불해줌
@@ -573,18 +581,23 @@
 				}
 				//alert("총수량 출고예외");
 				// 환불금액  = 취소 상품 실결제 금액 + 배송비 
-				reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt);
+				refundAmt = (reFundInfo.spanRealCnclRtnAmt + reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt);
+				spanDelvGfcdUseAmt	= reFundInfo.spanDelvGfcdUseAmt;
 			} else { // 총 주문수량  <>  반품수량   
 				//alert("출고예외");
-				reFundInfo.spanRefundAmt = reFundInfo.spanRealCnclRtnAmt;
+				refundAmt = reFundInfo.spanRealCnclRtnAmt;
 			}
 		} 
 		// 반품일 경우
-		else {  
+		else {
+			var leftRefundAmt = 0;
+			var leftDelvFee = 0;
+			var leftGfcdUseAmt = spanGfcdUseAmt;
+
 			// 총 주문수량  =  반품수량
 			if (toTalOrdQty == ordChgQty) {
 				// 귀책사유고객
-				if (isCustomer) {  
+				if (isCustomer) {
 					// 회수요청
 					if (wdGb == "W") { 
 						// 환불금액  = 취소 상품 실결제 금액 + 배송비 - 추가배송비 - 반품배송비 
@@ -593,10 +606,17 @@
 						}
 						
 						// 환불비용 = (취소상품실결제금액 + 동봉비 + 추가결제비) - 반품배송비 - 착불비
-						reFundInfo.spanRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - spanTotRtnDelvFee - Number(codFee);
+						// 2021.08.10 card007 상품권 100% 결제 관련 로직 변경
+						leftRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost));
+						leftDelvFee = spanTotRtnDelvFee + Number(codFee);
+						delvFee = spanTotRtnDelvFee;
+						//reFundInfo.spanRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - spanTotRtnDelvFee - Number(codFee);
 					}
 					// 직접배송
 					else {
+						leftRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost));
+						leftDelvFee = Number(codFee);
+
 						if(Number(codFee) > 0){
 							codFeeAmt = Number(codFee);
 							codFeeYn  = "Y";
@@ -607,8 +627,23 @@
 						
 						// 2021.07.02 환불컨펌 환불금액계산
 						// 환불비용 = (취소상품실결제금액 + 동봉비 + 추가결제비) - 착불비
-						reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - Number(codFee);
+						//reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - Number(codFee);
+					}
+					
+					if (leftRefundAmt < leftDelvFee) {
+						leftDelvFee -= leftRefundAmt;
+						leftRefundAmt = 0;
+					} else {
+						leftRefundAmt -= leftDelvFee;
+						leftDelvFee = 0;
+					}
+					
+					if (leftDelvFee > 0) {
+						leftGfcdUseAmt -= leftDelvFee;
 					}
+					
+					refundAmt = leftRefundAmt;
+					spanGfcdUseAmt = leftGfcdUseAmt;
 				} 
 				// 회사귀책
 				else { 
@@ -619,7 +654,9 @@
 					
 					// 2021.07.02 환불컨펌 환불금액계산
 					// 환불비용 = (취소상품실결제금액) + (원주문배송비- 배송비쿠폰할인금액)
-					reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + (reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt));
+					refundAmt = (reFundInfo.spanRealCnclRtnAmt + (reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt));
+					delvFee = reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt;
+					spanDelvGfcdUseAmt	= reFundInfo.spanDelvGfcdUseAmt;
 				}
 			} 
 			// 총 주문수량  <>  반품수량
@@ -633,8 +670,12 @@
 						}
 						
 						// 2021.07.02 환불컨펌 환불금액계산
-						// 환불금액  = (취소상품실결제금액 + 동봉비 + 추가결제비) - (추가배송비 + 반품배송비)
-						reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - (spanTotDeliveryFee + spanTotRtnDelvFee);
+						// 환불금액  = (취소상품실결제금액 + 동봉비 + 추가결제비) - (추가배송비 + 반품배송비 + 착불비)
+						//reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - (spanTotDeliveryFee + spanTotRtnDelvFee);
+						
+						leftRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost));
+						leftDelvFee = spanTotDeliveryFee + spanTotRtnDelvFee + Number(codFee);
+						delvFee = spanTotDeliveryFee + spanTotRtnDelvFee;
 					} 
 					// 직접배송
 					else {
@@ -646,21 +687,47 @@
 							enCloseFeeYn = "Y";
 						}
 						// 2021.07.02 환불컨펌 환불금액계산
-						// 환불금액  = (취소상품실결제금액 + 동봉비 + 추가결제비) - (추가배송비)
-						reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) - Number(codFee)) - (spanTotDeliveryFee);
+						// 환불금액  = (취소상품실결제금액 + 동봉비 + 추가결제비) - (추가배송비 + 착불비)
+						//reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) - Number(addPaycose)) - (spanTotDeliveryFee + Number(codeFee);
+						
+						leftRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost));
+						leftDelvFee = spanTotDeliveryFee + Number(codFee);
+						delvFee = spanTotDeliveryFee;
 					}
+					
+					if (leftRefundAmt < leftDelvFee) {
+						leftDelvFee -= leftRefundAmt;
+						leftRefundAmt = 0;
+					} else {
+						leftRefundAmt -= leftDelvFee;
+						leftDelvFee = 0;
+					}
+					
+					if (leftDelvFee > 0) {
+						leftGfcdUseAmt -= leftDelvFee;
+					}
+					
+					refundAmt = leftRefundAmt;
+					spanGfcdUseAmt = leftGfcdUseAmt;
 				} 
 				// 회사귀책
 				else {
 					// 2021.07.02 환불컨펌 환불금액계산
 					// 환불금액  = (취소상품실결제금액)
-					reFundInfo.spanRefundAmt = reFundInfo.spanRealCnclRtnAmt;
+					refundAmt = reFundInfo.spanRealCnclRtnAmt;
 				}
 			}
 		}
 		
 		//$("#spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma());				//환불 금액 합계
-		$(".spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma());				//환불 금액 합계
+
+		var totalRefundAmt = refundAmt + spanGfcdUseAmt + reFundInfo.spanPntDcAmt + spanDelvGfcdUseAmt;
+		var totalGfcdUseAmt = spanGfcdUseAmt + spanDelvGfcdUseAmt;
+
+		$(".spanRefundAmt").text(refundAmt.addComma()+"원");					// 환불 금액 합계
+		$(".spanGfcdUseAmt").text(totalGfcdUseAmt.addComma()+"원");			// 환불 상품권 금액 합계
+		$(".spanRealDelvAmt").text(delvFee.addComma()+"원");					// 환불배송비 금액 합계
+		$(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");			// 총환불금액
 	}
 	
 	/*************************************************************************
@@ -702,7 +769,7 @@
 		if (mallGb == 'G011_10') {
 			
 			// 아웃바운드 필요. (동동 및 계좌이체로 받아야함)
-			if (reFundInfo.spanRefundAmt <= 0) { 
+			if (reFundInfo.spanRefundAmt < 0) { 
 				mcxDialog.alert('환불금액 부족합니다.');
 				return;
 			}