Просмотр исходного кода

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

card007 4 лет назад
Родитель
Сommit
45cc23bf6c

+ 26 - 11
src/main/webapp/WEB-INF/views/mob/mypage/MypageCancelFormMob.html

@@ -456,30 +456,45 @@ var fnChangeCancelQty = function(param) {
 		let spanGfcdUseAmt 		= Number(result.spanGfcdUseAmt);						// 환불 상품권 금액
 		let spanDelvGfcdUseAmt 	= Number(result.spanDelvGfcdUseAmt);					// 환불 배송비 상품권 금액
 		let spanCnclRtnAmt 		= Number(result.spanCnclRtnAmt);						// 환불 상품 금액
-		let spanCpnDcAmt 		= Number(result.spanCpnDcAmt);							// 쿠폰 할인 차감 금액
+		let spanCpnDcAmt 		= Number(result.spanCpnDcAmt);							// 쿠폰 할인 차감 금액 (즉시할인쿠폰 + 상품쿠폰 + 장바구니쿠폰 + 배송비쿠폰)
 		let spanCpn1DcAmt 		= Number(result.spanCpn1DcAmt);							// 즉시할인 쿠폰 차감 금액
 		let spanTmtbDcAmt 		= Number(result.spanTmtbDcAmt);							// 다다익선 할인 차감 금액
 		let spanPrePntDcAmt 	= Number(result.spanPrePntDcAmt);						// 선포인트 할인 차감 금액
 		let sumDeliveryFee 		= Number(result.sumDeliveryFee);						// 원주문배송비
 		let spanTotDeliveryFee 	= Number(result.spanTotDeliveryFee);					// 추가배송비 (무료배송비 허들 깨져서 발생한 배송비)
-		let spanRefundAmt 		= Number(result.spanRefundAmt);							// 환불 예정 금액 ((취소 상품 실결제 금액 + 원주문 배송비) - 배송비쿠폰 - 추가배송비)
+		let spanRealCnclRtnAmt 	= Number(result.spanRealCnclRtnAmt);					// 환불 상품 실결제 금액 (환불상품금액 - 할인차감금액)
 		let goodsCancelAmt 		= spanCnclRtnAmt + spanCpn1DcAmt;						// 상품취소금액
-		let deliveryFee 		= sumDeliveryFee - spanTotDeliveryFee;					// 배송비 (마지막 취소 시 돌려줘야할 원주문 배송비 - 추가배송비)
 		let deductDcAmt 		= 0 - spanCpnDcAmt - spanTmtbDcAmt - spanPrePntDcAmt;	// 할인금액 차감 (쿠폰+다다익선+선포인트)
-		let refundGiftCard 		= spanGfcdUseAmt + spanDelvGfcdUseAmt;					// 환불 품권 금액 합계
-		let refundPayAmt		= spanRefundAmt - spanDelvGfcdUseAmt;					// 결제금액 환불 (환불예정금액 - 환불 배송비 상품권 금액)
-		let returnAmt 			= refundPayAmt + refundPoint + refundGiftCard;			// 환불예정금액
+		let refundGiftCard		= spanGfcdUseAmt + spanDelvGfcdUseAmt;					// 환불 품권 금액 합계
+		let spanRefundAmt 		= spanRealCnclRtnAmt + sumDeliveryFee;					// 환불예정금액 (환불상품실결제금액 + 원주문배송비)
+		let deliveryFee 		= sumDeliveryFee - spanTotDeliveryFee;					// 배송비 (마지막 취소 시 돌려줘야할 원주문 배송비 - 추가배송비)
 
-		// 추가배송비 영역 설
-		if (refundPayAmt < 0) {
-			//refundPayAmt = spanRefundAmt;
-			//$('#addDeliveryFee').css('display', '');
-			//$('#addPayCost').text(spanTotDeliveryFee.addComma() + '원');
+		// 2021.08.10 card007 상품권100% 결제 로직 수
+		let refundAmt = spanRefundAmt + spanGfcdUseAmt;
+		let leftAddDelvFee = spanTotDeliveryFee;
+
+		if (refundAmt < spanTotDeliveryFee) {
 			addPayCost = spanTotDeliveryFee;
 		} else {
+			if (leftAddDelvFee > spanRefundAmt) {
+				leftAddDelvFee -= spanRefundAmt;
+				spanRefundAmt = 0;
+			} else {
+				spanRefundAmt -= leftAddDelvFee;
+				leftAddDelvFee = 0;
+			}
+
+			if (leftAddDelvFee > 0) {
+				refundGiftCard -= leftAddDelvFee;
+				leftAddDelvFee = 0;
+			}
+
 			addPayCost = 0;
 		}
 
+		let refundPayAmt		= spanRefundAmt - spanDelvGfcdUseAmt - leftAddDelvFee;	// 결제금액 환불 (환불예정금액 - 환불 배송비 상품권 금액)
+		let returnAmt 			= refundPayAmt + refundPoint + refundGiftCard;			// 환불예정금액
+
 		// 금액 설정
 		$('#returnAmt').text(returnAmt.addComma());
 		$('#goodsCancelAmt').text(goodsCancelAmt.addComma());

+ 43 - 40
src/main/webapp/WEB-INF/views/mob/mypage/MypageReturnFormMob.html

@@ -661,62 +661,65 @@ var fnChangeReturnQty = function(param) {
 		let jsonData = JSON.stringify(data);
 		
 		gagajf.ajaxJsonSubmit(url, jsonData, function (result) {
-			let refundPoint 		= Number(result.spanPntDcAmt);				// 환불 포인트 금액
-			let spanGfcdUseAmt 		= Number(result.spanGfcdUseAmt);			// 환불 상품권 금액
-			let spanDelvGfcdUseAmt 	= Number(result.spanDelvGfcdUseAmt);		// 환불 배송비 상품권 금액 (반품에서는 안돌려줘서 항상 0일듯)
-			let spanCnclRtnAmt 		= Number(result.spanCnclRtnAmt);			// 환불 상품 금액
-			let spanCpnDcAmt 		= Number(result.spanCpnDcAmt);				// 쿠폰 할인 차감 금액
-			let spanCpn1DcAmt 		= Number(result.spanCpn1DcAmt);				// 즉시할인 쿠폰 차감 금액
-			let spanTmtbDcAmt 		= Number(result.spanTmtbDcAmt);				// 다다익선 할인 차감 금액
-			let spanPrePntDcAmt 	= Number(result.spanPrePntDcAmt);			// 선포인트 할인 차감 금액
-			let sumDeliveryFee 		= Number(result.sumDeliveryFee);			// 원주문배송비 (반품에서는 안돌려줘서 항상 0일듯)
-			//let spanTotDeliveryFee = Number(result.spanTotDeliveryFee);		// 추가배송비 (무료배송비 허들 깨져서 발생한 배송비) - 추가배송비는 환불컨펌에서 처리
-			let spanTotDeliveryFee 	= 0;
-			let spanTotRtnDelvFee 	= Number(result.spanTotRtnDelvFee);			// 반품배송비 (회수요청으로 인한 반품 배송비)
-			let spanRealCnclRtnAmt 	= Number(result.spanRealCnclRtnAmt);		// 환불 상품 실결제 금액 (환불상품금액 - 할인차감금액)
-			let refundGiftCard 		= spanGfcdUseAmt + spanDelvGfcdUseAmt;		// 환불 상품권 금액 합계
-			let spanRefundAmt 		= spanRealCnclRtnAmt + sumDeliveryFee;		// 환불예정금액 (환불상품실결제금액 - 원주문배송비)
+			let refundPoint 		= Number(result.spanPntDcAmt);							// 환불 포인트 금액
+			let spanGfcdUseAmt 		= Number(result.spanGfcdUseAmt);						// 환불 상품권 금액
+			let spanDelvGfcdUseAmt 	= Number(result.spanDelvGfcdUseAmt);					// 환불 배송비 상품권 금액 (반품에서는 안돌려줘서 항상 0일듯)
+			let spanCnclRtnAmt 		= Number(result.spanCnclRtnAmt);						// 환불 상품 금액
+			let spanCpnDcAmt 		= Number(result.spanCpnDcAmt);							// 쿠폰 할인 차감 금액
+			let spanCpn1DcAmt 		= Number(result.spanCpn1DcAmt);							// 즉시할인 쿠폰 차감 금액
+			let spanTmtbDcAmt 		= Number(result.spanTmtbDcAmt);							// 다다익선 할인 차감 금액
+			let spanPrePntDcAmt 	= Number(result.spanPrePntDcAmt);						// 선포인트 할인 차감 금액
+			let spanTotRtnDelvFee 	= Number(result.spanTotRtnDelvFee);						// 반품배송비 (회수요청으로 인한 반품 배송비)
+			let spanRealCnclRtnAmt 	= Number(result.spanRealCnclRtnAmt);					// 환불 상품 실결제 금액 (환불상품금액 - 할인차감금액)
+			let goodsCancelAmt 		= spanCnclRtnAmt + spanCpn1DcAmt;						// 상품취소금액
+			let deductDcAmt 		= 0 - spanCpnDcAmt - spanTmtbDcAmt - spanPrePntDcAmt;	// 할인금액 차감 (쿠폰+다다익선+선포인트)
+			let refundGiftCard 		= spanGfcdUseAmt + spanDelvGfcdUseAmt;					// 환불 상품권 금액 합계
+			let spanRefundAmt 		= spanRealCnclRtnAmt;									// 환불예정금액 (환불상품실결제금액)
 
 			// 반품 사유 및 반품 방식 배송비 계산
-			if (result.spanRealCnclRtnAmt > 0) {
-				let wdGb = $('#returnForm input[name=wdGb]:radio:checked').val();
-				// 회사사유 : 추가배송비 0, 반품배송비 0
-				if (!isCustomer) {
-					spanTotRtnDelvFee = 0;
-					//spanTotDeliveryFee = 0;									// 추가배송비는 환불컨펌에서 처리
-				}
-				// 고객사유(직접발송) : 반품배송비 0
-				else if (wdGb == 'D') {
-					spanTotRtnDelvFee = 0;
-				}
-			} else {
+			let wdGb = $('#returnForm input[name=wdGb]:radio:checked').val();
+
+			// 2021.08.10 card007 상품권 100% 결제 관련 로직 변경
+			// 회사귀책이거나 직접배송일때 반품배송비 0
+			if (!isCustomer || wdGb == 'D') {
 				spanTotRtnDelvFee = 0;
-				//spanTotDeliveryFee = 0;										// 추가배송비는 환불컨펌에서 처리
 			}
 
-			let goodsCancelAmt = spanCnclRtnAmt + spanCpn1DcAmt;				// 상품취소금액
-			let addDelvFee = spanTotRtnDelvFee + spanTotDeliveryFee;			// 추가배송비
-			let deductDcAmt = spanCpnDcAmt + spanTmtbDcAmt + spanPrePntDcAmt;	// 할인금액 차감(쿠폰+다다익선+선포인트)
-			let refundPayAmt = spanRefundAmt - addDelvFee;						// 결제금액 환불
-
 			// 추가배송비 영역 설정
-			if (refundPayAmt < 0) {
-				refundPayAmt += addDelvFee;
+			// 2021.08.10 card007 상품권100% 결제 로직 수정
+			let refundAmt 			= spanRefundAmt + spanGfcdUseAmt;
+			let leftAddDelvFee 		= spanTotRtnDelvFee;
+
+			if (refundAmt < spanTotRtnDelvFee) {
 				$('#addDeliveryFee').css('display', '');
-				$('#addPayCost').text(addDelvFee.addComma() + '원');
-				$('#returnForm input[name=addPayCost]').val(addDelvFee);
+				$('#addPayCost').text(spanTotRtnDelvFee.addComma() + '원');
+				$('#returnForm input[name=addPayCost]').val(spanTotRtnDelvFee);
 			} else {
+				if (leftAddDelvFee > spanRefundAmt) {
+					leftAddDelvFee -= spanRefundAmt;
+					spanRefundAmt = 0;
+				} else {
+					spanRefundAmt -= leftAddDelvFee;
+					leftAddDelvFee = 0;
+				}
+				
+				if (leftAddDelvFee > 0) {
+					refundGiftCard -= leftAddDelvFee;
+					leftAddDelvFee = 0;
+				}
+
 				$('#addDeliveryFee').css('display', 'none');
 				$('#returnForm input[name=addPayCost]').val(0);
 			}
 
-			let returnAmt = refundPayAmt + refundPoint + refundGiftCard;		// 환불예정금액
+			let refundPayAmt 		= spanRefundAmt - leftAddDelvFee;					// 결제금액 환불
+			let returnAmt 			= refundPayAmt + refundPoint + refundGiftCard;		// 환불예정금액
 
 			// 금액 설정
 			$('#returnAmt').text(returnAmt.addComma());
 			$('#goodsCancelAmt').text(goodsCancelAmt.addComma());
-			$('#deliveryFee').text((0 - addDelvFee).addComma());
-			$('#deductDcAmt').text((0 - deductDcAmt).addComma());
+			$('#deliveryFee').text((0 - spanTotRtnDelvFee).addComma());
+			$('#deductDcAmt').text(deductDcAmt.addComma());
 			$('#refundPayAmt').text(refundPayAmt.addComma());
 			$('#refundPoint').text(refundPoint.addComma());
 			$('#refundGiftCard').text(refundGiftCard.addComma());

+ 2 - 2
src/main/webapp/WEB-INF/views/web/mypage/MypageCancelFormWeb.html

@@ -366,8 +366,8 @@
 			let deliveryFee 		= sumDeliveryFee - spanTotDeliveryFee;					// 배송비 (마지막 취소 시 돌려줘야할 원주문 배송비 - 추가배송비)
 
 			// 2021.08.10 card007 상품권100% 결제 로직 수정
-			let refundAmt = spanRefundAmt + refundGiftCard;
-			let leftAddDelvFee = spanTotDeliveryFee;
+			let refundAmt 			= spanRefundAmt + spanGfcdUseAmt;
+			let leftAddDelvFee 		= spanTotDeliveryFee;
 
 			if (refundAmt < spanTotDeliveryFee) {
 				addPayCost = spanTotDeliveryFee;

+ 26 - 55
src/main/webapp/WEB-INF/views/web/mypage/MypageReturnFormWeb.html

@@ -508,59 +508,39 @@
 			let jsonData = JSON.stringify(data);
 			
 			gagajf.ajaxJsonSubmit(url, jsonData, function (result) {
-				let refundPoint 		= Number(result.spanPntDcAmt);				// 환불 포인트 금액
-				let spanGfcdUseAmt 		= Number(result.spanGfcdUseAmt);			// 환불 상품권 금액
-				let spanDelvGfcdUseAmt 	= Number(result.spanDelvGfcdUseAmt);		// 환불 배송비 상품권 금액 (반품에서는 안돌려줘서 항상 0일듯)
-				let spanCnclRtnAmt 		= Number(result.spanCnclRtnAmt);			// 환불 상품 금액
-				let spanCpnDcAmt 		= Number(result.spanCpnDcAmt);				// 쿠폰 할인 차감 금액
-				let spanCpn1DcAmt 		= Number(result.spanCpn1DcAmt);				// 즉시할인 쿠폰 차감 금액
-				let spanTmtbDcAmt 		= Number(result.spanTmtbDcAmt);				// 다다익선 할인 차감 금액
-				let spanPrePntDcAmt 	= Number(result.spanPrePntDcAmt);			// 선포인트 할인 차감 금액
-				let sumDeliveryFee 		= Number(result.sumDeliveryFee);			// 원주문배송비 (반품에서는 안돌려줘서 항상 0일듯)
-				//let spanTotDeliveryFee = Number(result.spanTotDeliveryFee);		// 추가배송비 (무료배송비 허들 깨져서 발생한 배송비) - 추가배송비는 환불컨펌에서 처리
-				let spanTotDeliveryFee 	= 0;
-				let spanTotRtnDelvFee 	= Number(result.spanTotRtnDelvFee);			// 반품배송비 (회수요청으로 인한 반품 배송비)
-				let spanRealCnclRtnAmt 	= Number(result.spanRealCnclRtnAmt);		// 환불 상품 실결제 금액 (환불상품금액 - 할인차감금액)
-				let refundGiftCard 		= spanGfcdUseAmt + spanDelvGfcdUseAmt;		// 환불 상품권 금액 합계
-				let spanRefundAmt 		= spanRealCnclRtnAmt + sumDeliveryFee;		// 환불예정금액 (환불상품실결제금액 + 원주문배송비)
+				let refundPoint 		= Number(result.spanPntDcAmt);							// 환불 포인트 금액
+				let spanGfcdUseAmt 		= Number(result.spanGfcdUseAmt);						// 환불 상품권 금액
+				let spanDelvGfcdUseAmt 	= Number(result.spanDelvGfcdUseAmt);					// 환불 배송비 상품권 금액 (반품에서는 안돌려줘서 항상 0일듯)
+				let spanCnclRtnAmt 		= Number(result.spanCnclRtnAmt);						// 환불 상품 금액
+				let spanCpnDcAmt 		= Number(result.spanCpnDcAmt);							// 쿠폰 할인 차감 금액
+				let spanCpn1DcAmt 		= Number(result.spanCpn1DcAmt);							// 즉시할인 쿠폰 차감 금액
+				let spanTmtbDcAmt 		= Number(result.spanTmtbDcAmt);							// 다다익선 할인 차감 금액
+				let spanPrePntDcAmt 	= Number(result.spanPrePntDcAmt);						// 선포인트 할인 차감 금액
+				let spanTotRtnDelvFee 	= Number(result.spanTotRtnDelvFee);						// 반품배송비 (회수요청으로 인한 반품 배송비)
+				let spanRealCnclRtnAmt 	= Number(result.spanRealCnclRtnAmt);					// 환불 상품 실결제 금액 (환불상품금액 - 할인차감금액)
+				let goodsCancelAmt 		= spanCnclRtnAmt + spanCpn1DcAmt;						// 상품취소금액
+				let deductDcAmt 		= 0 - spanCpnDcAmt - spanTmtbDcAmt - spanPrePntDcAmt;	// 할인금액 차감 (쿠폰+다다익선+선포인트)
+				let refundGiftCard 		= spanGfcdUseAmt + spanDelvGfcdUseAmt;					// 환불 상품권 금액 합계
+				let spanRefundAmt 		= spanRealCnclRtnAmt;									// 환불예정금액 (환불상품실결제금액)
 
 				// 반품 사유 및 반품 방식 배송비 계산
 				let wdGb = $('#returnForm input[name=wdGb]:radio:checked').val();
 
 				// 2021.08.10 card007 상품권 100% 결제 관련 로직 변경
-				//if (result.spanRealCnclRtnAmt > 0) {
-					// 회사사유 : 추가배송비 0, 반품배송비 0
-					//if (!isCustomer) {
-					//	spanTotRtnDelvFee = 0;
-						//spanTotDeliveryFee = 0;									// 추가배송비는 환불컨펌에서 처리
-					//}
-					// 고객사유(직접발송) : 반품배송비 0
-					//else if (wdGb == 'D') {
-					//	spanTotRtnDelvFee = 0;
-					//}
-				//} else {
-				//	spanTotRtnDelvFee = 0;
-				//	//spanTotDeliveryFee = 0;										// 추가배송비는 환불컨펌에서 처리
-				//}
-
 				// 회사귀책이거나 직접배송일때 반품배송비 0
 				if (!isCustomer || wdGb == 'D') {
 					spanTotRtnDelvFee = 0;
 				}
 
-				let goodsCancelAmt = spanCnclRtnAmt + spanCpn1DcAmt;				// 상품취소금액
-				let addDelvFee = spanTotRtnDelvFee + spanTotDeliveryFee;			// 추가배송비
-				let deductDcAmt = spanCpnDcAmt + spanTmtbDcAmt + spanPrePntDcAmt;	// 할인금액 차감(쿠폰+다다익선+선포인트)
-				//let refundPayAmt = spanRefundAmt - addDelvFee;						// 결제금액 환불
-
 				// 추가배송비 영역 설정
 				// 2021.08.10 card007 상품권100% 결제 로직 수정
-				let refundAmt = spanRefundAmt + refundGiftCard;
-				let leftAddDelvFee = addDelvFee;
-				if (refundAmt < addDelvFee) {
+				let refundAmt 			= spanRefundAmt + spanGfcdUseAmt;
+				let leftAddDelvFee 		= spanTotRtnDelvFee;
+
+				if (refundAmt < spanTotRtnDelvFee) {
 					$('#addDeliveryFee').css('display', '');
-					$('#addPayCost').text(addDelvFee.addComma() + '원');
-					$('#returnForm input[name=addPayCost]').val(addDelvFee);
+					$('#addPayCost').text(spanTotRtnDelvFee.addComma() + '원');
+					$('#returnForm input[name=addPayCost]').val(spanTotRtnDelvFee);
 				} else {
 					if (leftAddDelvFee > spanRefundAmt) {
 						leftAddDelvFee -= spanRefundAmt;
@@ -569,33 +549,24 @@
 						spanRefundAmt -= leftAddDelvFee;
 						leftAddDelvFee = 0;
 					}
+
 					if (leftAddDelvFee > 0) {
 						refundGiftCard -= leftAddDelvFee;
 						leftAddDelvFee = 0;
 					}
+
 					$('#addDeliveryFee').css('display', 'none');
 					$('#returnForm input[name=addPayCost]').val(0);
 				}
-				//if (refundPayAmt < 0) {
-				//	refundPayAmt += addDelvFee;
-				//	$('#addDeliveryFee').css('display', '');
-				//	$('#addPayCost').text(addDelvFee.addComma() + '원');
-				//	$('#returnForm input[name=addPayCost]').val(addDelvFee);
-				//} else {
-				//	$('#addDeliveryFee').css('display', 'none');
-				//	$('#returnForm input[name=addPayCost]').val(0);
-				//}
-
-				//let returnAmt = refundPayAmt + refundPoint + refundGiftCard;		// 환불예정금액
 				
-				let refundPayAmt = spanRefundAmt - leftAddDelvFee;					// 결제금액 환불
-				let returnAmt = spanRefundAmt + refundPoint + refundGiftCard;		// 환불예정금액
+				let refundPayAmt 		= spanRefundAmt - leftAddDelvFee;					// 결제금액 환불
+				let returnAmt 			= refundPayAmt + refundPoint + refundGiftCard;		// 환불예정금액
 
 				// 금액 설정
 				$('#returnAmt').text(returnAmt.addComma());
 				$('#goodsCancelAmt').text(goodsCancelAmt.addComma());
-				$('#deliveryFee').text((0 - addDelvFee).addComma());
-				$('#deductDcAmt').text((0 - deductDcAmt).addComma());
+				$('#deliveryFee').text((0 - spanTotRtnDelvFee).addComma());
+				$('#deductDcAmt').text(deductDcAmt.addComma());
 				$('#refundPayAmt').text(refundPayAmt.addComma());
 				$('#refundPoint').text(refundPoint.addComma());
 				$('#refundGiftCard').text(refundGiftCard.addComma());