Explorar o código

ST24PRJ-683 [결함] 주문취소 중복 처리

card007 %!s(int64=4) %!d(string=hai) anos
pai
achega
56d2ecd7b2

+ 54 - 44
src/main/webapp/WEB-INF/views/order/CnclReqForm.html

@@ -932,6 +932,7 @@ var payMeans 		= orderInfoList[0].payMeans;
 var payMeansNm		= orderInfoList[0].payMeansNm;
 var cardNm			= orderInfoList[0].cardNm;
 var addDelvFee		= 0;
+var cnclChk			= false;
 
 //0원이하이면 '-' 처리 삭제 함수
 var getZeroMinusDelAmt = function(tempAmt) {
@@ -1381,54 +1382,63 @@ var fnCnclReq = function (reqGbn) {
 
 	// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌
 	var jsonData = JSON.stringify(jsonObj);
-	
-	mcxDialog.confirm(confirmStr, {
-		cancelBtnText		: "취소",
-		sureBtnText			: "확인",
-		sureBtnClick		: function() {
-			if (chk && jsonObj.pgStat == 'N') {
-				// 환불계좌 유효성 체크
-				gagajf.ajaxJsonSubmit('/business/account/check', jsonData, function(result) {
-					if (result.isValid) { // 유효하면 true
-						gagajf.ajaxJsonSubmit(
-							cnclUrl
-							, jsonData
-							, function() {
-								// 2021.06.21 교환품절취소가 아닐때 주문상세화면 다시 로딩하지 않음
-								if (chgStat == 'G685_40') {
-									// 교환배송 취소대상목록 조회 실행
-									$('#btnSearch').trigger("click");
-								} else {
-									uifnPopupClose('popupOrderDetail');
-									fnReOpenOrderDetailPopup();
+
+	// 취소버튼 클릭 여부 확인
+	if (!cnclChk) {
+		mcxDialog.confirm(confirmStr, {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function () {
+				if (chk && jsonObj.pgStat == 'N') {
+					// 환불계좌 유효성 체크
+					gagajf.ajaxJsonSubmit('/business/account/check', jsonData, function (result) {
+						if (result.isValid) { // 유효하면 true
+							// 취소버튼 클릭 여부 설정
+							cnclChk = true;
+							
+							gagajf.ajaxJsonSubmit(
+								cnclUrl
+								, jsonData
+								, function () {
+									// 2021.06.21 교환품절취소가 아닐때 주문상세화면 다시 로딩하지 않음
+									if (chgStat == 'G685_40') {
+										// 교환배송 취소대상목록 조회 실행
+										$('#btnSearch').trigger("click");
+									} else {
+										uifnPopupClose('popupOrderDetail');
+										fnReOpenOrderDetailPopup();
+									}
+									uifnPopupClose('popupCancelRequestForm');
 								}
-								uifnPopupClose('popupCancelRequestForm');
-							}
-						);
-					} else {
-						mcxDialog.alert('환불계좌가 유효하지 않습니다.');
-						return false;
-					}
-				});
-			} else {
-				gagajf.ajaxJsonSubmit(
-					cnclUrl
-					, jsonData
-					, function() {
-						// 2021.06.21 교환품절취소가 아닐때 주문상세화면 다시 로딩하지 않음
-						if (chgStat == 'G685_40') {
-							// 교환배송 취소대상목록 조회 실행
-							$('#btnSearch').trigger("click");
+							);
 						} else {
-							uifnPopupClose('popupOrderDetail');
-							fnReOpenOrderDetailPopup();
+							mcxDialog.alert('환불계좌가 유효하지 않습니다.');
+							return false;
 						}
-						uifnPopupClose('popupCancelRequestForm');
-					}
-				);
+					});
+				} else {
+					// 취소버튼 클릭 여부 설정
+					cnclChk = true;
+					
+					gagajf.ajaxJsonSubmit(
+						cnclUrl
+						, jsonData
+						, function () {
+							// 2021.06.21 교환품절취소가 아닐때 주문상세화면 다시 로딩하지 않음
+							if (chgStat == 'G685_40') {
+								// 교환배송 취소대상목록 조회 실행
+								$('#btnSearch').trigger("click");
+							} else {
+								uifnPopupClose('popupOrderDetail');
+								fnReOpenOrderDetailPopup();
+							}
+							uifnPopupClose('popupCancelRequestForm');
+						}
+					);
+				}
 			}
-		}
-	});
+		});
+	}
 }
 
 // 환불계좌 등록

+ 9 - 0
src/main/webapp/WEB-INF/views/order/ExchangeRequestForm.html

@@ -661,6 +661,7 @@ var gridOptionsDelvCdList = gagaAgGrid.getGridOptions(columnDelvCdList);
 <script>
 //현재 사유는 회사 입니다.
 var isCustomer = false;
+var exchangeChk = false;
 
 //  사유 변경
 var fnChangeChgReason = function(reasonCd){
@@ -706,6 +707,11 @@ var fnExchange = function () {
 	var opt		= true;
 	var wdGb	= $('#wdGb:checked').val();
 	
+	// 교환신청 버튼 클릭 여부 체크
+	if (exchangeChk) {
+		return false;
+	}
+	
 	if (ordChgGb == 'G681_50') {
 		wdGb = 'D';
 	}
@@ -933,6 +939,9 @@ var fnExchange = function () {
 		url = '/orderChange/exchange/request/';
 	}
 
+	// 교환신청 버튼 클릭 여부 설정
+	exchangeChk = true;
+
 	mcxDialog.confirm('교환요청하시겠습니까?', {
 		cancelBtnText		: "취소",
 		sureBtnClick		: function(){

+ 12 - 0
src/main/webapp/WEB-INF/views/order/RtnReqForm.html

@@ -966,6 +966,7 @@ var gridOptionsDelvCdList = gagaAgGrid.getGridOptions(columnDelvCdList);
 <script>
 // 현재 사유는 고객 입니다.
 var isCustomer = false;
+var rtnChk = false;
 
 // 환불예상금액계산
 var fnCalculateRefundAmt = function (obj) {
@@ -1376,6 +1377,11 @@ var fnCnclReq = function (reqGbn) {
 	var chgerEmail 		= "";
 	var chgerRtnMemo	= "";
 	
+	// 반품신청 버튼 클릭 여부 체크
+	if (rtnChk) {
+		return false;
+	}
+	
 	// 반품신청
 	let chk = false;
 	if (reqGbn == "rtnReq") {
@@ -1539,6 +1545,9 @@ var fnCnclReq = function (reqGbn) {
 				// 환불계좌 유효성 체크
 				gagajf.ajaxJsonSubmit('/business/account/check', jsonData, function(result) {
 					if (result.isValid) { // 유효하면 true
+						// 반품신청 버튼 클릭 여부 설정
+						rtnChk = true;
+
 						// 취소 실행
 						gagajf.ajaxJsonSubmit(
 							cnclUrl
@@ -1555,6 +1564,9 @@ var fnCnclReq = function (reqGbn) {
 					}
 				});
 			} else {
+				// 반품신청 버튼 클릭 여부 설정
+				rtnChk = true;
+
 				// 취소 실행
 				gagajf.ajaxJsonSubmit(
 					cnclUrl