Selaa lähdekoodia

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

card007 4 vuotta sitten
vanhempi
commit
6fab4a169b

+ 6 - 5
src/main/java/com/style24/persistence/domain/Withdraw.java

@@ -1,12 +1,11 @@
 package com.style24.persistence.domain;
 
-import lombok.Data;
-
-import com.style24.persistence.TscBaseDomain;
-import com.style24.persistence.TscPageRequest;
 import com.style24.core.support.session.TscSession;
-import com.style24.core.support.util.CryptoUtils;
 import com.style24.core.support.util.MaskingUtils;
+import com.style24.persistence.TscBaseDomain;
+import com.style24.persistence.TscPageRequest;
+
+import lombok.Data;
 
 /**
  * 회수 Domain
@@ -81,6 +80,8 @@ public class Withdraw extends TscBaseDomain {
 	private String addDeliveryFeeYn;
 	private String pgTid;					// PG거래 ID
 	private String payMeans;				// 결제수단(공통코드G014)
+	private String payMeansNm;				// 결제수단명
+	private String cardNm;					// 카드명
 	private String pgGb;					// PG구분
 	private String delvExpnYn;		// 확정후 품절,불량 여부
 	private String accountNm;

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

@@ -705,12 +705,16 @@
 				, 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
+				, P.PG_GB
+				, FN_GET_CODE_NM('G014', P.PAY_MEANS) AS PAY_MEANS_NM
+				, P.CARD_NM
 		  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 
 		  JOIN TB_ORDER_DETAIL_ITEM D ON D.ORD_NO = C.ORD_NO AND D.ORD_DTL_NO = C.ORD_DTL_NO 
 		  JOIN TB_ORDER E             ON E.ORD_NO = C.ORD_NO 
-		  JOIN TB_WITHDRAW F ON F.ORD_CHG_SQ = A.ORD_CHG_SQ 
+		  JOIN TB_WITHDRAW F ON F.ORD_CHG_SQ = A.ORD_CHG_SQ
+		  JOIN TB_PAYMENT P ON E.ORD_NO = P.ORD_NO AND P.PAY_GB = 'O' AND P.PAY_STAT = 'G016_30'
 		  LEFT OUTER JOIN TB_WITHDRAW_DETAIL G ON G.WD_INVOICE_NO = F.WD_INVOICE_NO AND G.ORD_CHG_SQ = F.ORD_CHG_SQ AND D.ITEM_CD = G.GOODS_CD AND D.OPT_CD1 = G.OPT_CD1  AND D.OPT_CD2 = G.OPT_CD2 
 		  LEFT OUTER JOIN TB_REFUND CA ON CA.ORD_NO = E.ORD_NO AND CA.ORD_CHG_SQ = A.ORD_CHG_SQ
 		 WHERE A.ORD_CHG_SQ  = #{ordChgSq}

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

@@ -530,21 +530,21 @@ $(document).ready(function() {
 
 		// 할인금액차감
 		$(".spanCpnDcAmt").text(spanCpnDcAmt.addComma()+"원");						// 쿠폰할인차감 > 합계
-		$(".spanCpn1DcAmt").text(spanCpn1DcAmt.addComma()+"원");						// 쿠폰할인차감 > 즉시할인쿠폰
-		$(".spanGoodsCpnDcAmt").text(spanGoodsCpnDcAmt.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()+"원");						// 상품할인차감 > 다다익선할인
+		$(".goodsDcSumAmt").text(goodsDcSumAmt.addComma()+"원");					// 상품할인차감 > 합계
+		$(".spanPrePntDcAmt").text(spanPrePntDcAmt.addComma()+"원");				// 상품할인차감 > 선포인트할인
+		$(".spanTmtbDcAmt").text(spanTmtbDcAmt.addComma()+"원");					// 상품할인차감 > 다다익선할인
 
 		// 배송비
-		$(".spanRealDelvAmt").text(spanDeliveryFee.addComma()+"원");					// 환불배송비 > 합계
+		$(".spanRealDelvAmt").text(spanDeliveryFee.addComma()+"원");				// 환불배송비 > 합계
 		$(".addDelvFee").text(addPayCost.addComma()+"원");							// 환불배송비 > 추가금결제
-		$(".delvCpnAmt").text(spanDelvCpnDcAmt.addComma()+"원");						// 환불배송비 > 배송비쿠폰
+		$(".delvCpnAmt").text(spanDelvCpnDcAmt.addComma()+"원");					// 환불배송비 > 배송비쿠폰
 
 		// 환불금액
 		$(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");					// 총환불금액
-		$(".spanRefundAmt").text(spanRefundAmt.addComma()+"원");						// 결제수단환불
+		$(".spanRefundAmt").text(spanRefundAmt.addComma()+"원");					// 결제수단환불
 		$(".spanGfcdUseAmt").text(spanTotGfcdUseAmt.addComma()+"원");				// 상품권환불
 		$(".spanPntDcAmt").text(spanPntDcAmt.addComma()+"원");						// 포인트환불
 		$(".spanSavePntAmt").text(spanSavePntAmt.addComma()+"P");					// 포인트환불 > 적립예정포인트환수

+ 111 - 84
src/main/webapp/WEB-INF/views/order/CnclReqForm.html

@@ -937,6 +937,7 @@ var pgGb 			= orderInfoList[0].pgGb;
 var payMeans 		= orderInfoList[0].payMeans;
 var payMeansNm		= orderInfoList[0].payMeansNm;
 var cardNm			= orderInfoList[0].cardNm;
+var addDelvFee		= 0;
 
 //0원이하이면 '-' 처리 삭제 함수
 var getZeroMinusDelAmt = function(tempAmt) {
@@ -1020,19 +1021,120 @@ var fnCalculateRefundAmt = function (obj) {
 			gridOptionsCancelReqToBeList.api.setRowData(result.cancelOrderRefundList);
 			gridOptionsDelvCdList.api.setRowData(result.cancelDelvRefundList);
 			
+			let spanPntDcAmt 		= Number(result.spanPntDcAmt);							// 환불 포인트 금액
+			let spanSavePntAmt 		= Number(result.spanSavePntAmt);						// 적립 예정 포인트 환수 금액
+			let spanGfcdUseAmt 		= Number(result.spanGfcdUseAmt);						// 환불 상품권 금액
+			let spanDelvGfcdUseAmt 	= Number(result.spanDelvGfcdUseAmt);					// 환불 배송비 상품권 금액
+			let spanCnclRtnAmt 		= Number(result.spanCnclRtnAmt);						// 환불 상품 금액
+			let spanCpn1DcAmt 		= Number(result.spanCpn1DcAmt);							// 즉시할인 쿠폰 차감 금액
+			let spanGoodsCpnDcAmt	= Number(result.spanGoodsCpnDcAmt);						// 상품 쿠폰 차감 금액
+			let spanCartCpnDcAmt	= Number(result.spanCartCpnDcAmt);						// 장바구니 쿠폰 차감 금액
+			let spanDelvCpnDcAmt	= Number(result.spanDelvCpnDcAmt);						// 배송비 쿠폰 차감 금액
+			let spanTmtbDcAmt 		= Number(result.spanTmtbDcAmt);							// 다다익선 할인 차감 금액
+			let spanPrePntDcAmt 	= Number(result.spanPrePntDcAmt);						// 선포인트 할인 차감 금액
+			let sumDeliveryFee 		= Number(result.sumDeliveryFee);						// 원주문배송비
+			let spanTotDeliveryFee 	= Number(result.spanTotDeliveryFee);					// 추가배송비 (무료배송비 허들 깨져서 발생한 배송비)
+			let spanRealCnclRtnAmt 	= Number(result.spanRealCnclRtnAmt);					// 환불 상품 실결제 금액 (환불상품금액 - 할인차감금액)
+			let goodsCancelAmt 		= spanCnclRtnAmt + spanCpn1DcAmt;						// 상품취소금액
+			let spanRefundAmt 		= spanRealCnclRtnAmt + sumDeliveryFee;					// 환불예정금액 (환불상품실결제금액 + 원주문배송비)
+			let goodsDcSumAmt		= spanPrePntDcAmt + spanTmtbDcAmt;						// 상품 할인 차감 금액
+			let spanCpnDcAmt		= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt;	// 쿠폰 할인 차감 금액
+
+			// 결제방식
+			let pgGbNm		= "";
+			let cardGbNm	= "";
+			
+			if (pgGb == 'KCP') {
+				pgGbNm	= payMeansNm;
+				cardGbNm	= "(" + cardNm + ")";
+			} else if (pgGb == 'NAVER') {
+				pgGbNm	= "네이버페이";
+			} else if (pgGb == 'NAVER_ORDER') {
+				pgGbNm	= "네이버페이주문형";
+			} else if (pgGb == 'KAKAO') {
+				pgGbNm	= "카카오페이";
+			} else if (pgGb == 'PAYCO') {
+				pgGbNm	= "페이코";
+			} else if (pgGb == 'ISTYLE') {
+				pgGbNm	= "상품권";
+			} else {
+				pgGbNm	= "외부몰입금";
+			}
+
+			// 2021.08.10 card007 상품권100% 결제 로직 수정
+			// 회사사유 시 추가배송비 0
+			if (!isCustomer) {
+				spanTotDeliveryFee = 0;
+			}
+
+			let refundAmt = spanRefundAmt + spanGfcdUseAmt;
+			let leftAddDelvFee = spanTotDeliveryFee;
+
+			if (refundAmt < spanTotDeliveryFee) {
+				addDelvFee = spanTotDeliveryFee;
+			} else {
+				if (leftAddDelvFee > spanRefundAmt) {
+					leftAddDelvFee -= spanRefundAmt;
+					spanRefundAmt = 0;
+				} else {
+					spanRefundAmt -= leftAddDelvFee;
+					leftAddDelvFee = 0;
+				}
+				
+				if (leftAddDelvFee > 0) {
+					spanGfcdUseAmt -= leftAddDelvFee;
+					leftAddDelvFee = 0;
+				}
+				
+				addDelvFee = 0;
+			}
+
+			let refundPayAmt		= spanRefundAmt - spanDelvGfcdUseAmt - leftAddDelvFee;	// 결제금액 환불 (환불예정금액 - 환불 배송비 상품권 금액 - 추가배송비)
+			let deliveryFee 		= sumDeliveryFee - spanTotDeliveryFee;					// 배송비 (마지막 취소 시 돌려줘야할 원주문 배송비 - 추가배송비)
+			let spanTotGfcdUseAmt	= spanGfcdUseAmt + spanDelvGfcdUseAmt;					// 환불 상품권 금액 합계
+			let totalRefundAmt		= spanRefundAmt + spanTotGfcdUseAmt + spanPntDcAmt;		// 총 환불 금액
+
+			// 상품금액
+			$(".spanCnclRtnAmt").text(goodsCancelAmt.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(deliveryFee.addComma()+"원");						// 환불배송비 > 합계
+			$(".addDelvFee").text(addDelvFee.addComma()+"원");								// 환불배송비 > 추가금결제
+			$(".delvCpnAmt").text(spanDelvCpnDcAmt.addComma()+"원");						// 환불배송비 > 배송비쿠폰
+
+			// 환불금액
+			$(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");						// 총환불금액
+			$(".spanRefundAmt").text(refundPayAmt.addComma()+"원");							// 결제수단환불
+			$(".pgGbNm").text(pgGbNm);														// 결제수단환불 > 결제수단
+			$(".cardNm").text(cardGbNm);													// 결제수단환불 > 카드명
+			$(".spanGfcdUseAmt").text(spanTotGfcdUseAmt.addComma()+"원");					// 상품권환불
+			$(".spanPntDcAmt").text(spanPntDcAmt.addComma()+"원");							// 포인트환불
+			$(".spanSavePntAmt").text(spanSavePntAmt.addComma()+"P");						// 포인트환불 > 적립예정포인트환수
+
+			/*
+			// 2021.08.10 card007 상품권100% 결제 로직 수정 기존 소스 백업
 			// 2021.07.01 배송비 수정(마지막취소에만 배송비 환불)
 			let spanSumDeliveryFee 	= result.spanSumDeliveryFee - result.spanDelvCpnDcAmt;
 			let sumDeliveryFee 		= result.sumDeliveryFee - result.spanRefundDelvCpnAmt;
-			
+
 			// 2021.08.04 취소금액수정
 			var spanRealDelvAmt		= 0;
 			var addDelvFee			= 0;
-			
+
 			if (result.spanRealCnclRtnAmt > 0) {
 				// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
 				if (isCustomer) {
 					result.spanRefundAmt = (result.spanRealCnclRtnAmt + sumDeliveryFee) - result.spanTotDeliveryFee;
-					
+
 					// 2021.07.01 
 					// @ 마이너스금액이면 허들깨지면서 배송비 발생
 					// @ 플러스금액이면 마지막취소시 배송금액 환불
@@ -1049,102 +1151,27 @@ var fnCalculateRefundAmt = function (obj) {
 			$(".spanCpn1DcAmt").text(result.spanCpn1DcAmt.addComma()+"원");
 			$(".spanGoodsCpnDcAmt").text(result.spanGoodsCpnDcAmt.addComma()+"원");
 			$(".spanCartCpnDcAmt").text(result.spanCartCpnDcAmt.addComma()+"원");
-			
+
 			var spanCpnDcAmt = result.spanCpn1DcAmt + result.spanGoodsCpnDcAmt + result.spanGoodsCpnDcAmt;
 			$(".spanCpnDcAmt").text(spanCpnDcAmt.addComma()+"원");
-			
+
 			$(".spanPrePntDcAmt").text(result.spanPrePntDcAmt.addComma()+"원");
 			$(".spanTmtbDcAmt").text(result.spanTmtbDcAmt.addComma()+"원");
-			
+
 			var goodsDcSumAmt = result.spanPrePntDcAmt + result.spanTmtbDcAmt;
 			$(".goodsDcSumAmt").text(goodsDcSumAmt.addComma()+"원");
-			
+
 			$(".delvCpnAmt").text(result.spanDelvCpnDcAmt.addComma()+"원");
 			$(".addDelvFee").text(addDelvFee.addComma()+"원");
 			$(".spanRealDelvAmt").text(spanSumDeliveryFee.addComma()+"원");
-			
+
 			var totalRefundAmt = result.spanRefundAmt + result.spanGfcdUseAmt + result.spanPntDcAmt;
-			
+
 			$(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");
 			$(".spanRefundAmt").text(result.spanRefundAmt.addComma()+"원");
 			$(".spanGfcdUseAmt").text(result.spanGfcdUseAmt.addComma()+"원");
 			$(".spanPntDcAmt").text(result.spanPntDcAmt.addComma()+"원");
 			$(".spanSavePntAmt").text(result.spanSavePntAmt.addComma()+"P");
-			
-			var pgGbNm		= "";
-			var cardGbNm	= "";
-			
-			if (pgGb == 'KCP') {
-				pgGbNm	= payMeansNm;
-				cardGbNm	= "(" + cardNm + ")";
-			} else if (pgGb == 'NAVER') {
-				pgGbNm	= "네이버페이";
-			} else if (pgGb == 'NAVER_ORDER') {
-				pgGbNm	= "네이버페이주문형";
-			} else if (pgGb == 'KAKAO') {
-				pgGbNm	= "카카오페이";
-			} else if (pgGb == 'PAYCO') {
-				pgGbNm	= "페이코";
-			} else if (pgGb == 'ISTYLE') {
-				pgGbNm	= "상품권";
-			} else {
-				pgGbNm	= "외부몰입금";
-			}
-			
-			$(".pgGbNm").text(pgGbNm);
-			$(".cardNm").text(cardGbNm);
-			
-			/*
-			$("#spanPayAmt").text(result.spanPayAmt.addComma());					//총 결제 금액
-			$("#spanSumRealOrdAmt").text(result.spanSumRealOrdAmt.addComma());		//상품 실결제 금액
-			$("#spanSumDeliveryFee").text(spanSumDeliveryFee.addComma());			//주문 배송 금액
-			
-			$("#spanOrdAmt").text(result.spanOrdAmt.addComma());					//주문 상품 금액
-			$("#spanCnclRtnAmt").text(result.spanCnclRtnAmt.addComma());			//취소 상품 금액
-			
-			$("#spanTotPntDcAmt").text(result.spanTotPntDcAmt.addComma());			//취소 사용 포인트
-			$("#spanPntDcAmt").text(result.spanPntDcAmt.addComma());				//고객 포인트
-			$("#spanPrePntDcAmt").text(result.spanPrePntDcAmt.addComma());			//상품 선포인트
-			
-			$("#spanCpnDcAmt").text(result.spanCpnDcAmt.addComma());				//취소 사용 쿠폰금액
-			$("#spanCpn1DcAmt").text(result.spanCpn1DcAmt.addComma());				//즉시할인쿠폰
-			$("#spanGoodsCpnDcAmt").text(result.spanGoodsCpnDcAmt.addComma());		//상품쿠폰
-			$("#spanCartCpnDcAmt").text(result.spanCartCpnDcAmt.addComma());		//장바구니쿠폰
-			$("#spanDelvCpnDcAmt").text(result.spanRefundDelvCpnAmt.addComma());	//배송비쿠폰
-			
-			$("#spanTmtbDcAmt").text(result.spanTmtbDcAmt.addComma());				//취소 다다익선 금액
-			$("#spanTmtb1DcAmt").text(result.spanTmtb1DcAmt.addComma());			//수량할인
-			$("#spanTmtb2DcAmt").text(result.spanTmtb2DcAmt.addComma());			//금액할인
-			
-			$("#spanGfcdUseAmt").text(result.spanGfcdUseAmt.addComma());			//취소 고객 상품권 금액
-			
-			$("#spanRealCnclRtnAmt").text(result.spanRealCnclRtnAmt.addComma());	//취소 상품 실결제 금액
-			//$("#spanTotDeliveryFee").text(result.spanTotDeliveryFee.addComma());	//취소 환불 배송 금액
-			
-			$("#spanTotRtnDelvFee").text(result.spanTotRtnDelvFee.addComma());		//반품 환불 배송 금액
-			$("#spanTotExcDelvFee").text(result.spanTotExcDelvFee.addComma());		//교환 환불 배송 금액
-			
-			if (result.spanRealCnclRtnAmt > 0) {
-				// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
-				if (isCustomer) {
-					result.spanRefundAmt = (result.spanRealCnclRtnAmt + sumDeliveryFee) - result.spanTotDeliveryFee;
-					
-					// 2021.07.01 
-					// @ 마이너스금액이면 허들깨지면서 배송비 발생
-					// @ 플러스금액이면 마지막취소시 배송금액 환불
-					var spanRealDelvAmt = sumDeliveryFee - result.spanTotDeliveryFee;
-					$("#spanRealDelvAmt").text(spanRealDelvAmt.addComma());			//환불배송비금액
-				} 
-				// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
-				else {
-					result.spanRefundAmt = (result.spanRealCnclRtnAmt + sumDeliveryFee);
-					
-					// 2021.05.13 추가배송비금액 수정
-					$("#spanRealDelvAmt").text(spanSumDeliveryFee.addComma());		//환불배송비금액
-				}
-			}
-			
-			$("#spanRefundAmt").text(result.spanRefundAmt.addComma());				//환불 금액 합계
 			*/
 		}
 	);

+ 104 - 2
src/main/webapp/WEB-INF/views/order/RtnReqForm.html

@@ -977,7 +977,7 @@ var gridOptionsDelvCdList = gagaAgGrid.getGridOptions(columnDelvCdList);
 
 <script>
 // 현재 사유는 고객 입니다.
-var isCustomer = true;
+var isCustomer = false;
 
 // 환불예상금액계산
 var fnCalculateRefundAmt = function (obj) {
@@ -1059,6 +1059,108 @@ var fnCalculateRefundAmt = function (obj) {
 			gridOptionsCancelReqToBeList.api.setRowData(result.cancelOrderRefundList);
 			gridOptionsDelvInfoList.api.setRowData(result.cancelDelvRefundList);
 			
+			let spanPntDcAmt 		= Number(result.spanPntDcAmt);							// 환불 포인트 금액
+			let spanSavePntAmt 		= Number(result.spanSavePntAmt);						// 적립 예정 포인트 환수 금액
+			let spanGfcdUseAmt 		= Number(result.spanGfcdUseAmt);						// 환불 상품권 금액
+			let spanDelvGfcdUseAmt 	= Number(result.spanDelvGfcdUseAmt);					// 환불 배송비 상품권 금액
+			let spanCnclRtnAmt 		= Number(result.spanCnclRtnAmt);						// 환불 상품 금액
+			let spanCpn1DcAmt 		= Number(result.spanCpn1DcAmt);							// 즉시할인 쿠폰 차감 금액
+			let spanGoodsCpnDcAmt	= Number(result.spanGoodsCpnDcAmt);						// 상품 쿠폰 차감 금액
+			let spanCartCpnDcAmt	= Number(result.spanCartCpnDcAmt);						// 장바구니 쿠폰 차감 금액
+			let spanDelvCpnDcAmt	= Number(result.spanDelvCpnDcAmt);						// 배송비 쿠폰 차감 금액
+			let spanTmtbDcAmt 		= Number(result.spanTmtbDcAmt);							// 다다익선 할인 차감 금액
+			let spanPrePntDcAmt 	= Number(result.spanPrePntDcAmt);						// 선포인트 할인 차감 금액
+			//let sumDeliveryFee 		= Number(result.sumDeliveryFee);						// 원주문배송비
+			//let spanTotDeliveryFee 	= Number(result.spanTotDeliveryFee);					// 추가배송비 (무료배송비 허들 깨져서 발생한 배송비)
+			let spanTotRtnDelvFee 	= Number(result.spanTotRtnDelvFee);						// 반품배송비
+			let spanRealCnclRtnAmt 	= Number(result.spanRealCnclRtnAmt);					// 환불 상품 실결제 금액 (환불상품금액 - 할인차감금액)
+			let goodsCancelAmt 		= spanCnclRtnAmt + spanCpn1DcAmt;						// 상품취소금액
+			let spanRefundAmt 		= spanRealCnclRtnAmt;									// 환불예정금액 (환불상품실결제금액)
+			let goodsDcSumAmt		= spanPrePntDcAmt + spanTmtbDcAmt;						// 상품 할인 차감 금액
+			let spanCpnDcAmt		= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt;	// 쿠폰 할인 차감 금액
+			
+			// 결제방식
+			let pgGbNm		= "";
+			let cardGbNm	= "";
+			
+			if (pgGb == 'KCP') {
+				pgGbNm	= payMeansNm;
+				cardGbNm	= "(" + cardNm + ")";
+			} else if (pgGb == 'NAVER') {
+				pgGbNm	= "네이버페이";
+			} else if (pgGb == 'NAVER_ORDER') {
+				pgGbNm	= "네이버페이주문형";
+			} else if (pgGb == 'KAKAO') {
+				pgGbNm	= "카카오페이";
+			} else if (pgGb == 'PAYCO') {
+				pgGbNm	= "페이코";
+			} else if (pgGb == 'ISTYLE') {
+				pgGbNm	= "상품권";
+			} else {
+				pgGbNm	= "외부몰입금";
+			}
+
+			// 회사사유거나 고객사유(직접발송) 시 반품배송비 0
+			if (!isCustomer || $('#wdGb:checked').val() == 'D') {
+				spanTotRtnDelvFee = 0;
+			}
+
+			// 2021.08.10 card007 상품권100% 결제 로직 수정
+			let refundAmt = spanRefundAmt + spanGfcdUseAmt;
+			let leftAddDelvFee = spanTotRtnDelvFee;
+
+			if (refundAmt < spanTotRtnDelvFee) {
+				addDelvFee = spanTotRtnDelvFee;
+			} else {
+				if (leftAddDelvFee > spanRefundAmt) {
+					leftAddDelvFee -= spanRefundAmt;
+					spanRefundAmt = 0;
+				} else {
+					spanRefundAmt -= leftAddDelvFee;
+					leftAddDelvFee = 0;
+				}
+
+				if (leftAddDelvFee > 0) {
+					spanGfcdUseAmt -= leftAddDelvFee;
+					leftAddDelvFee = 0;
+				}
+
+				addDelvFee = 0;
+			}
+
+			let refundPayAmt		= spanRefundAmt - spanDelvGfcdUseAmt - leftAddDelvFee;	// 결제금액 환불 (환불예정금액 - 환불 배송비 상품권 금액 - 추가배송비)
+			let deliveryFee 		= 0 - spanTotRtnDelvFee;								// 환불배송비
+			let spanTotGfcdUseAmt	= spanGfcdUseAmt + spanDelvGfcdUseAmt;					// 환불 상품권 금액 합계
+			let totalRefundAmt		= spanRefundAmt + spanTotGfcdUseAmt + spanPntDcAmt;		// 총 환불 금액
+
+			// 상품금액
+			$(".spanCnclRtnAmt").text(goodsCancelAmt.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(deliveryFee.addComma()+"원");						// 환불배송비 > 합계
+			$(".addDelvFee").text(addDelvFee.addComma()+"원");								// 환불배송비 > 추가금결제
+			$(".delvCpnAmt").text(spanDelvCpnDcAmt.addComma()+"원");						// 환불배송비 > 배송비쿠폰
+
+			// 환불금액
+			$(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");						// 총환불금액
+			$(".spanRefundAmt").text(refundPayAmt.addComma()+"원");							// 결제수단환불
+			$(".pgGbNm").text(pgGbNm);														// 결제수단환불 > 결제수단
+			$(".cardNm").text(cardGbNm);													// 결제수단환불 > 카드명
+			$(".spanGfcdUseAmt").text(spanTotGfcdUseAmt.addComma()+"원");					// 상품권환불
+			$(".spanPntDcAmt").text(spanPntDcAmt.addComma()+"원");							// 포인트환불
+			$(".spanSavePntAmt").text(spanSavePntAmt.addComma()+"P");						// 포인트환불 > 적립예정포인트환수
+
+			/*
+			// 2021.08.10 card007 상품권100% 결제 로직 수정 기존 소스 백업
 			let spanSumDeliveryFee = result.spanSumDeliveryFee - result.spanDelvCpnDcAmt;
 			let sumDeliveryFee = result.sumDeliveryFee - result.spanRefundDelvCpnAmt;
 			
@@ -1133,7 +1235,7 @@ var fnCalculateRefundAmt = function (obj) {
 			
 			$(".pgGbNm").text(pgGbNm);
 			$(".cardNm").text(cardGbNm);
-			
+			*/
 			/*
 			$("#spanPayAmt").text(result.spanPayAmt.addComma());					//총 결제 금액
 			$("#spanSumRealOrdAmt").text(result.spanSumRealOrdAmt.addComma());		//상품 실결제 금액

+ 107 - 164
src/main/webapp/WEB-INF/views/withdraw/RefundDetailForm.html

@@ -389,139 +389,41 @@
 			isCustomer = false;
 		}
 
-		// 환불컨펌 상세
-		$("#wdGbNm").text(data.wdGbNm); 										// 회수구분 
-		$("#arriValDt").text(data.arrivalDt); 									// arriValDt 도착일
-		$("#chgReasonNm").text(data.chgReasonNm); 								// 최종요청사유 
-		$("#chgReasonText").text(data.chgReasonText); 							// 귀책사유 
-		$("#withdrawDetailForm input[name=encloseFee]").val(data.encloseFee); 	// 동봉비 
-		$("#withdrawDetailForm input[name=codFee]").val(data.codFee); 			// 착불비 
-		$("#withdrawDetailForm input[name=addPayCost]").val(data.addPayCost); 	// 추가결제비 
-		$("#chgMemo").text(data.chgMemo); 										// 클레임메모 
-		$("#wdMemo").text(data.wdMemo); 										// 회수메모
-		
-		// 2021.07.01 배송비 수정(마지막취소에만 배송비 환불)
-		let spanSumDeliveryFee 	= reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt;
-		let sumDeliveryFee 		= reFundInfo.sumDeliveryFee - reFundInfo.spanRefundDelvCpnAmt;
-		
-		// 2021.08.04 취소금액수정
-		var spanRealDelvAmt		= 0;
-		var addDelvFee			= 0;
-
-		// 2021.08.10 card007 상품권 100% 결제 관련 로직 변경
-		//if (reFundInfo.spanRealCnclRtnAmt > 0) {
-			// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
-			if (isCustomer) {
-				reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + sumDeliveryFee) - reFundInfo.spanTotDeliveryFee;
-				
-				// 2021.07.01 
-				// @ 마이너스금액이면 허들깨지면서 배송비 발생
-				// @ 플러스금액이면 마지막취소시 배송금액 환불
-				spanRealDelvAmt = sumDeliveryFee - reFundInfo.spanTotDeliveryFee;
-				addDelvFee		= reFundInfo.spanTotDeliveryFee;
-			} 
-			// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
-			else {
-				reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + sumDeliveryFee);
-			}
-		//}
-		
-		//$("#spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma()+"원");				//환불 금액 합계
-		
-		$(".spanCnclRtnAmt").text(reFundInfo.spanCnclRtnAmt.addComma()+"원");
-		$(".spanCpn1DcAmt").text(reFundInfo.spanCpn1DcAmt.addComma()+"원");
-		$(".spanGoodsCpnDcAmt").text(reFundInfo.spanGoodsCpnDcAmt.addComma()+"원");
-		$(".spanCartCpnDcAmt").text(reFundInfo.spanCartCpnDcAmt.addComma()+"원");
-		
-		var spanCpnDcAmt = reFundInfo.spanCpn1DcAmt + reFundInfo.spanGoodsCpnDcAmt + reFundInfo.spanGoodsCpnDcAmt;
-		$(".spanCpnDcAmt").text(spanCpnDcAmt.addComma()+"원");
-		
-		$(".spanPrePntDcAmt").text(reFundInfo.spanPrePntDcAmt.addComma()+"원");
-		$(".spanTmtbDcAmt").text(reFundInfo.spanTmtbDcAmt.addComma()+"원");
-		
-		var goodsDcSumAmt = reFundInfo.spanPrePntDcAmt + reFundInfo.spanTmtbDcAmt;
-		$(".goodsDcSumAmt").text(goodsDcSumAmt.addComma()+"원");
-		
-		$(".delvCpnAmt").text(reFundInfo.spanDelvCpnDcAmt.addComma()+"원");
-		$(".addDelvFee").text(addDelvFee.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");
-		
-		/*
-		var pgGbNm		= "";
-		var cardGbNm	= "";
-		
-		if (pgGb == 'KCP') {
-			pgGbNm	= payMeansNm;
-			cardGbNm	= "(" + cardNm + ")";
-		} else if (pgGb == 'NAVER') {
+		// 결제방식
+		let pgGbNm		= "";
+		let cardGbNm	= "";
+		
+		if (data.pgGb == 'KCP') {
+			pgGbNm	= data.payMeansNm;
+			cardGbNm	= "(" + data.cardNm + ")";
+		} else if (data.pgGb == 'NAVER') {
 			pgGbNm	= "네이버페이";
-		} else if (pgGb == 'NAVER_ORDER') {
+		} else if (data.pgGb == 'NAVER_ORDER') {
 			pgGbNm	= "네이버페이주문형";
-		} else if (pgGb == 'KAKAO') {
+		} else if (data.pgGb == 'KAKAO') {
 			pgGbNm	= "카카오페이";
-		} else if (pgGb == 'PAYCO') {
+		} else if (data.pgGb == 'PAYCO') {
 			pgGbNm	= "페이코";
-		} else if (pgGb == 'ISTYLE') {
+		} else if (data.pgGb == 'ISTYLE') {
 			pgGbNm	= "상품권";
 		} else {
 			pgGbNm	= "외부몰입금";
 		}
-		
-		$(".pgGbNm").text(pgGbNm);
-		$(".cardNm").text(cardGbNm);
-		*/
 
-		// 환불예정금액
-		/*
-		$("#spanPayAmt").text(reFundInfo.spanPayAmt.addComma());					//총 결제 금액
-		$("#spanSumRealOrdAmt").text(reFundInfo.spanSumRealOrdAmt.addComma());		//상품 실결제 금액
-		$("#spanSumDeliveryFee").text(reFundInfo.spanSumDeliveryFee.addComma());	//배송금액
-		$("#spanDelvCpnDcAmt").text(reFundInfo.spanDelvCpnDcAmt.addComma());		//배송비쿠폰할인금액
-		
-		$("#spanOrdAmt").text(reFundInfo.spanOrdAmt.addComma());					//주문 상품 금액
-		$("#spanCnclRtnAmt").text(reFundInfo.spanCnclRtnAmt.addComma());			//취소 상품 금액
-		
-		$("#spanTotPntDcAmt").text(reFundInfo.spanTotPntDcAmt.addComma());			//취소 사용 포인트
-		$("#spanPntDcAmt").text(reFundInfo.spanPntDcAmt.addComma());				//고객 포인트
-		$("#spanPrePntDcAmt").text(reFundInfo.spanPrePntDcAmt.addComma());			//상품 선포인트
-		
-		$("#spanCpnDcAmt").text(reFundInfo.spanCpnDcAmt.addComma());				//취소 사용 쿠폰금액
-		$("#spanCpn1DcAmt").text(reFundInfo.spanCpn1DcAmt.addComma());				//즉시할인쿠폰
-		$("#spanGoodsCpnDcAmt").text(reFundInfo.spanGoodsCpnDcAmt.addComma());		//상품쿠폰
-		$("#spanCartCpnDcAmt").text(reFundInfo.spanCartCpnDcAmt.addComma());		//장바구니쿠폰
-		
-		$("#spanTmtbDcAmt").text(reFundInfo.spanTmtbDcAmt.addComma());				//취소 다다익선 금액
-		$("#spanTmtb1DcAmt").text(reFundInfo.spanTmtb1DcAmt.addComma());			//수량할인
-		$("#spanTmtb2DcAmt").text(reFundInfo.spanTmtb2DcAmt.addComma());			//금액할인
-		
-		$("#spanGfcdUseAmt").text(reFundInfo.spanGfcdUseAmt.addComma());			//취소 고객 상품권 금액
-		
-		$("#spanRealCnclRtnAmt").text(reFundInfo.spanRealCnclRtnAmt.addComma());	//취소 상품 실결제 금액
-		$("#spanTotDeliveryFee").text(reFundInfo.spanTotDeliveryFee.addComma());	//취소 환불 배송 금액
-		
-		$("#spanTotRtnDelvFee").text(reFundInfo.spanTotRtnDelvFee.addComma());		//반품 환불 배송 금액
-		$("#spanTotExcDelvFee").text(reFundInfo.spanTotExcDelvFee.addComma());		//교환 환불 배송 금액
-		
-		// 귀책사유 고객
-		if (data.chgReason == "G688_10") {
-			isCustomer = true;
-		} 
-		// 귀책사유 회사
-		else {
-			isCustomer = false;
-		}
-		
-		$("#refundAmt").text(data.refundAmt.addComma());
-		*/
-		$("#refundAmt").text(data.refundAmt.addComma());
-		//$("#refundAmt").text(reFundInfo.spanRefundAmt.addComma());
-		//reFundInfo.spanRefundAmt.addComma()+"원"
-		
+		reFundInfo.pgGbNm = pgGbNm;
+		reFundInfo.cardGbNm = cardGbNm;
+
+		// 환불컨펌 상세
+		$("#wdGbNm").text(data.wdGbNm); 													// 회수구분 
+		$("#arriValDt").text(data.arrivalDt); 												// arriValDt 도착일
+		$("#chgReasonNm").text(data.chgReasonNm); 											// 최종요청사유 
+		$("#chgReasonText").text(data.chgReasonText); 										// 귀책사유 
+		$("#withdrawDetailForm input[name=encloseFee]").val(data.encloseFee); 				// 동봉비 
+		$("#withdrawDetailForm input[name=codFee]").val(data.codFee); 						// 착불비 
+		$("#withdrawDetailForm input[name=addPayCost]").val(data.addPayCost); 				// 추가결제비 
+		$("#chgMemo").text(data.chgMemo); 													// 클레임메모 
+		$("#wdMemo").text(data.wdMemo); 													// 회수메모
+
 		if(delvExpnYn == "Y"){
 			$('#withdrawDetailForm input[name=codFee]').attr('readonly', 'readonly');
 			$('#withdrawDetailForm input[name=encloseFee]').attr('readonly', 'readonly');
@@ -548,44 +450,60 @@
 	*  환불 금액 계산
 	**************************************************************************/		
 	var fnSetTotRefundData = function() {
-		var enCloseFee 		= $("#withdrawDetailForm input[name=encloseFee]").val(); 	//동봉비 
-		var codFee     		= $("#withdrawDetailForm input[name=codFee]").val(); 		//착불비 
-		var addPaycost	 	= $("#withdrawDetailForm input[name=addPayCost]").val(); 	//추가결제비
-		
-		addDeliveryFee   	= 0;
-		addDeliveryFeeYn 	= "N";
-		codFeeAmt        	= 0;
-		codFeeYn         	= "N";
-		enCloseFeeAmt    	= Number(enCloseFee);
-		enCloseFeeYn     	= "N";
+		var enCloseFee			= $("#withdrawDetailForm input[name=encloseFee]").val(); 	//동봉비 
+		var codFee				= $("#withdrawDetailForm input[name=codFee]").val(); 		//착불비 
+		var addPaycost			= $("#withdrawDetailForm input[name=addPayCost]").val(); 	//추가결제비
+
+		addDeliveryFee			= 0;
+		addDeliveryFeeYn		= "N";
+		codFeeAmt				= 0;
+		codFeeYn				= "N";
+		enCloseFeeAmt			= Number(enCloseFee);
+		enCloseFeeYn			= "N";
 		
 		// 2021.07.02 환불컨펌 환불금액계산
-		var spanRealCnclRtnAmt 	= reFundInfo.spanRealCnclRtnAmt; // 취소상품실결제금액
-		var spanTotDeliveryFee 	= reFundInfo.spanTotDeliveryFee; // 배송비
-		var spanDelvCpnDcAmt	= reFundInfo.spanTotDeliveryFee; // 배송비쿠폰할인금액
-		var spanTotRtnDelvFee	= reFundInfo.spanTotRtnDelvFee;  // 반품배송비
-		
+		let spanPntDcAmt 		= Number(reFundInfo.spanPntDcAmt);							// 환불 포인트 금액
+		let spanSavePntAmt 		= Number(reFundInfo.spanSavePntAmt);						// 적립 예정 포인트 환수 금액
+		let spanGfcdUseAmt 		= Number(reFundInfo.spanGfcdUseAmt);						// 환불 상품권 금액
+		let spanDelvGfcdUseAmt 	= Number(reFundInfo.spanDelvGfcdUseAmt);					// 환불 배송비 상품권 금액
+		let spanCnclRtnAmt 		= Number(reFundInfo.spanCnclRtnAmt);						// 환불 상품 금액
+		let spanCpn1DcAmt 		= Number(reFundInfo.spanCpn1DcAmt);							// 즉시할인 쿠폰 차감 금액
+		let spanGoodsCpnDcAmt	= Number(reFundInfo.spanGoodsCpnDcAmt);						// 상품 쿠폰 차감 금액
+		let spanCartCpnDcAmt	= Number(reFundInfo.spanCartCpnDcAmt);						// 장바구니 쿠폰 차감 금액
+		let spanDelvCpnDcAmt	= Number(reFundInfo.spanDelvCpnDcAmt);						// 배송비 쿠폰 차감 금액
+		let spanTmtbDcAmt 		= Number(reFundInfo.spanTmtbDcAmt);							// 다다익선 할인 차감 금액
+		let spanPrePntDcAmt 	= Number(reFundInfo.spanPrePntDcAmt);						// 선포인트 할인 차감 금액
+		let spanSumDeliveryFee 	= Number(reFundInfo.spanSumDeliveryFee);					// 원주문배송비
+		let spanTotDeliveryFee 	= Number(reFundInfo.spanTotDeliveryFee);					// 추가배송비 (무료배송비 허들 깨져서 발생한 배송비)
+		let spanTotRtnDelvFee 	= Number(reFundInfo.spanTotRtnDelvFee);						// 반품배송비
+		let spanRealCnclRtnAmt 	= Number(reFundInfo.spanRealCnclRtnAmt);					// 환불 상품 실결제 금액 (환불상품금액 - 할인차감금액)
+		let goodsCancelAmt 		= spanCnclRtnAmt + spanCpn1DcAmt;							// 상품취소금액
+		let goodsDcSumAmt		= spanPrePntDcAmt + spanTmtbDcAmt;							// 상품 할인 차감 금액
+		let spanCpnDcAmt		= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt;		// 쿠폰 할인 차감 금액
+		let pgGbNm				= reFundInfo.pgGbNm;										// 결제수단
+		let cardGbNm			= reFundInfo.cardGbNm;										// 카드명
+
 		// 2021.08.10 card007 상품권 100% 결제 관련 로직 변경
-		var spanGfcdUseAmt		= reFundInfo.spanGfcdUseAmt;
-		var spanDelvGfcdUseAmt	= 0;
-		var delvFee				= 0;
-		var refundAmt;
+		let delvGfcdUseAmt		= 0;
+		let delvFee				= 0;
+		let addDelvFee			= 0;
+		let refundAmt;
 		
 		// 출고예외(확정후 품절,불량)일 경우
 		if (delvExpnYn == "Y") {
 			// 총 주문수량  =  반품수량 배송비가 있을시 환불해줌
 			if (toTalOrdQty == ordChgQty) {
-				if (reFundInfo.spanSumDeliveryFee > 0) {
-					addDeliveryFee = reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt;
+				if (spanSumDeliveryFee > 0) {
+					addDeliveryFee = spanSumDeliveryFee - spanDelvCpnDcAmt;
 					addDeliveryFeeYn = "Y";
 				}
 				//alert("총수량 출고예외");
 				// 환불금액  = 취소 상품 실결제 금액 + 배송비 
-				refundAmt = (reFundInfo.spanRealCnclRtnAmt + reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt);
-				spanDelvGfcdUseAmt	= reFundInfo.spanDelvGfcdUseAmt;
+				refundAmt = spanRealCnclRtnAmt + spanSumDeliveryFee - spanDelvCpnDcAmt;
+				delvGfcdUseAmt	= spanDelvGfcdUseAmt;
 			} else { // 총 주문수량  <>  반품수량   
 				//alert("출고예외");
-				refundAmt = reFundInfo.spanRealCnclRtnAmt;
+				refundAmt = spanRealCnclRtnAmt;
 			}
 		} 
 		// 반품일 경우
@@ -609,7 +527,7 @@
 						// 2021.08.10 card007 상품권 100% 결제 관련 로직 변경
 						leftRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost));
 						leftDelvFee = spanTotRtnDelvFee + Number(codFee);
-						delvFee = spanTotRtnDelvFee;
+						delvFee = 0 - spanTotRtnDelvFee;
 						//reFundInfo.spanRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - spanTotRtnDelvFee - Number(codFee);
 					}
 					// 직접배송
@@ -640,23 +558,25 @@
 					
 					if (leftDelvFee > 0) {
 						leftGfcdUseAmt -= leftDelvFee;
+						leftDelvFee = 0;
 					}
 					
 					refundAmt = leftRefundAmt;
 					spanGfcdUseAmt = leftGfcdUseAmt;
+					addDelvFee = leftDelvFee;
 				} 
 				// 회사귀책
 				else { 
-					if (reFundInfo.spanSumDeliveryFee > 0) {
-						addDeliveryFee = reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt;
+					if (spanSumDeliveryFee > 0) {
+						addDeliveryFee = spanSumDeliveryFee - spanDelvCpnDcAmt;
 						addDeliveryFeeYn = "Y";
 					}
 					
 					// 2021.07.02 환불컨펌 환불금액계산
 					// 환불비용 = (취소상품실결제금액) + (원주문배송비- 배송비쿠폰할인금액)
-					refundAmt = (reFundInfo.spanRealCnclRtnAmt + (reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt));
-					delvFee = reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt;
-					spanDelvGfcdUseAmt	= reFundInfo.spanDelvGfcdUseAmt;
+					refundAmt = spanRealCnclRtnAmt + spanSumDeliveryFee - spanDelvCpnDcAmt;
+					delvFee = spanSumDeliveryFee - spanDelvCpnDcAmt;
+					delvGfcdUseAmt	= spanDelvGfcdUseAmt;
 				}
 			} 
 			// 총 주문수량  <>  반품수량
@@ -675,7 +595,7 @@
 						
 						leftRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost));
 						leftDelvFee = spanTotDeliveryFee + spanTotRtnDelvFee + Number(codFee);
-						delvFee = spanTotDeliveryFee + spanTotRtnDelvFee;
+						delvFee = 0 - spanTotDeliveryFee - spanTotRtnDelvFee;
 					} 
 					// 직접배송
 					else {
@@ -692,7 +612,7 @@
 						
 						leftRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost));
 						leftDelvFee = spanTotDeliveryFee + Number(codFee);
-						delvFee = spanTotDeliveryFee;
+						delvFee = 0 - spanTotDeliveryFee;
 					}
 					
 					if (leftRefundAmt < leftDelvFee) {
@@ -705,31 +625,54 @@
 					
 					if (leftDelvFee > 0) {
 						leftGfcdUseAmt -= leftDelvFee;
+						leftDelvFee = 0;
 					}
 					
 					refundAmt = leftRefundAmt;
 					spanGfcdUseAmt = leftGfcdUseAmt;
+					addDelvFee = leftDelvFee;
 				} 
 				// 회사귀책
 				else {
 					// 2021.07.02 환불컨펌 환불금액계산
 					// 환불금액  = (취소상품실결제금액)
-					refundAmt = reFundInfo.spanRealCnclRtnAmt;
+					refundAmt = spanRealCnclRtnAmt;
 				}
 			}
 		}
 		
 		//$("#spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma());				//환불 금액 합계
 
-		var totalRefundAmt = refundAmt + spanGfcdUseAmt + reFundInfo.spanPntDcAmt + spanDelvGfcdUseAmt;
-		var totalGfcdUseAmt = spanGfcdUseAmt + spanDelvGfcdUseAmt;
+		var totalRefundAmt = refundAmt + spanGfcdUseAmt + spanPntDcAmt + delvGfcdUseAmt;
+		var totalGfcdUseAmt = spanGfcdUseAmt + delvGfcdUseAmt;
 		
 		reFundInfo.totalRefundAmt = totalRefundAmt;
-
-		$(".spanRefundAmt").text(refundAmt.addComma()+"원");					// 환불 금액 합계
-		$(".spanGfcdUseAmt").text(totalGfcdUseAmt.addComma()+"원");			// 환불 상품권 금액 합계
-		$(".spanRealDelvAmt").text(delvFee.addComma()+"원");					// 환불배송비 금액 합계
-		$(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");			// 총환불금액
+		
+		// 상품금액
+		$(".spanCnclRtnAmt").text(goodsCancelAmt.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(delvFee.addComma()+"원");							// 환불배송비 > 합계
+		$(".addDelvFee").text(addDelvFee.addComma()+"원");								// 환불배송비 > 추가금결제
+		$(".delvCpnAmt").text(spanDelvCpnDcAmt.addComma()+"원");						// 환불배송비 > 배송비쿠폰
+		
+		// 환불금액
+		$(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");						// 총환불금액
+		$(".spanRefundAmt").text(refundAmt.addComma()+"원");							// 결제수단환불
+		$(".pgGbNm").text(pgGbNm);														// 결제수단환불 > 결제수단
+		$(".cardNm").text(cardGbNm);													// 결제수단환불 > 카드명
+		$(".spanGfcdUseAmt").text(totalGfcdUseAmt.addComma()+"원");						// 상품권환불
+		$(".spanPntDcAmt").text(spanPntDcAmt.addComma()+"원");							// 포인트환불
+		$(".spanSavePntAmt").text(spanSavePntAmt.addComma()+"P");						// 포인트환불 > 적립예정포인트환수
 	}
 	
 	/*************************************************************************