Sfoglia il codice sorgente

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

card007 4 anni fa
parent
commit
8705cb85f1

+ 60 - 51
src/main/webapp/WEB-INF/views/order/CnclReqForm.html

@@ -1232,6 +1232,11 @@ var fnCnclReq = function (reqGbn) {
 	var accountNm 				= "";
 	var bankCd 					= "";
 	
+	// 취소신청 버튼 클릭 여부 체크
+	if (cnclChk) {
+		return false;
+	}
+	
 	// 취소완료, 취소승인
 	let chk = false;
 	if (reqGbn == "cnclReq" || reqGbn == "cnclReqComplete" || reqGbn == "cnclComplete") {
@@ -1384,61 +1389,65 @@ var fnCnclReq = function (reqGbn) {
 	var jsonData = JSON.stringify(jsonObj);
 
 	// 취소버튼 클릭 여부 확인
-	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');
+	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();
 								}
-							);
-						} else {
-							mcxDialog.alert('환불계좌가 유효하지 않습니다.');
-							return false;
-						}
-					});
-				} else {
-					// 취소버튼 클릭 여부 설정
-					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');
+							, function () {
+								cnclChk = false;
+							}
+						);
+					} else {
+						mcxDialog.alert('환불계좌가 유효하지 않습니다.');
+						return false;
+					}
+				});
+			} else {
+				// 취소버튼 클릭 여부 설정
+				cnclChk = true;
+				
+				gagajf.ajaxJsonSubmit(
+					cnclUrl
+					, jsonData
+					, function () {
+						// 2021.06.21 교환품절취소가 아닐때 주문상세화면 다시 로딩하지 않음
+						if (chgStat == 'G685_40') {
+							// 교환배송 취소대상목록 조회 실행
+							$('#btnSearch').trigger("click");
+						} else {
+							uifnPopupClose('popupOrderDetail');
+							fnReOpenOrderDetailPopup();
 						}
-					);
-				}
+						uifnPopupClose('popupCancelRequestForm');
+					}
+					, function () {
+						cnclChk = false;
+					}
+				);
 			}
-		});
-	}
+		}
+	});
 }
 
 // 환불계좌 등록

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

@@ -959,6 +959,9 @@ var fnExchange = function () {
 						uifnPopupClose('popupExchangeRequestForm');
 					}
 				}
+				, function() {
+					exchangeChk = false;
+				}
 			);
 		}
 	});

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

@@ -1557,6 +1557,9 @@ var fnCnclReq = function (reqGbn) {
 								fnReOpenOrderDetailPopup();
 								uifnPopupClose('popupReturnRequestForm');
 							}
+							, function () {
+								rtnChk = false;
+							}
 						);
 					} else {
 						mcxDialog.alert('환불계좌가 유효하지 않습니다.');
@@ -1576,6 +1579,9 @@ var fnCnclReq = function (reqGbn) {
 						fnReOpenOrderDetailPopup();
 						uifnPopupClose('popupReturnRequestForm');
 					}
+					, function () {
+						rtnChk = false;
+					}
 				);
 			}
 		}

+ 10 - 1
src/main/webapp/ux/plugins/gaga/gaga.validation.js

@@ -642,10 +642,11 @@ var gagajf = {
 	 * @param actionUrl - Request URL
 	 * @param jsonData - Data of json format
 	 * @param callbackFn - Callback function
+	 * @param errorCallbackFn - ErrorCallback function
 	 * @author gagamel
 	 * @since 2019. 4. 8
 	 */
-	ajaxJsonSubmit : function(actionUrl, jsonData, callbackFn) {
+	ajaxJsonSubmit : function(actionUrl, jsonData, callbackFn, errorCallbackFn) {
 		$.ajax({
 			type : 'POST',
 			url : actionUrl,
@@ -697,6 +698,10 @@ var gagajf = {
 					if (!gagajf.isNull(result.error.message)) {
 						mcxDialog.alert(result.error.message.replaceAll("&lt;", "<").replaceAll("&gt;", ">"));
 					}
+					
+					if (typeof(errorCallbackFn) == "function") {
+						errorCallbackFn.call(this, result);
+					}
 
 					return;
 				}
@@ -704,6 +709,10 @@ var gagajf = {
 			error : function(result) {
 				console.log(result);
 				mcxDialog.alert('오류로 인해 처리되지 않았습니다.');
+				
+				if (typeof(errorCallbackFn) == "function") {
+					errorCallbackFn.call(this, result);
+				}
 			}
 		});
 	},