Bladeren bron

취소통합작업 중간 COMMIT

jsh77b 5 jaren geleden
bovenliggende
commit
1203df6c46

+ 127 - 88
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -80,7 +80,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 			order.setOrdChgSq(ordChgSq);
 		}
 				
-		// 취소가능 주문상세상탭값 설정
+		// 1. 취소가능 주문상세상탭값 설정
 		String[] ordDtlStatArr = new String[4];
 		ordDtlStatArr[0] = TscConstants.OrderDetailStat.DEPOSIT_WAIT.value();
 		ordDtlStatArr[1] = TscConstants.OrderDetailStat.PAYMENT_COMPLETE.value();
@@ -88,88 +88,39 @@ public class TsaOrderChangeController extends TsaBaseController {
 		ordDtlStatArr[3] = TscConstants.OrderDetailStat.DELIVERY_PREPARE.value();
 		order.setOrdDtlStatArr(ordDtlStatArr);
 		
-		// 2021.01.26 취소요청 화면, 취소요청정보확인 화면 합 
+		// 2. 변경신청된 주문상세번호를 체크 후 있으면 해당 취소가능수량값 업데이트 
+		List<Order> cancelRequestTargetList 		= coreOrderChangeService.getCancelRequestTargetList(order);
+		List<Order> orderChangeDetailList 			= coreOrderChangeService.getOrderChangeDetailList(order);
+		Collection<Order> orderInfoList 			= orderService.getOrderInfoList(order);
+		
+		// 3. 화면으로 데이타 전송
+		// 2021.01.26 취소요청 화면, 취소요청정보확인 화면 통합
 		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G686"));				// 취소사유
-		mav.addObject("cancelRequestTargetList"		, coreOrderChangeService.getCancelRequestTargetList(order));	// 취소요청대상목록
-		mav.addObject("orderInfoList"				, orderService.getOrderInfoList(order));						// 주문정보
+		mav.addObject("cancelRequestTargetList"		, cancelRequestTargetList);										// 변경신청대상목록 (취소/반품/교환)
+		mav.addObject("orderInfoList"				, orderInfoList);												// 주문정보
 		mav.addObject("ordNo"						, ordNo);														// 주문번호
 		mav.addObject("ordChgSq"					, ordChgSq);													// 주문변경번호
-		mav.addObject("orderChangeList"				, orderService.getOrderChangeList(order));						// 취소/반품/교환 요청 정보
+		mav.addObject("orderChangeDetailList"		, orderChangeDetailList);										// 변경신청목록 (취소/반품/교환)
 		
 		String viewName = "";
 		
+		/*
 		if (ordChgSq > 0) {
-			viewName = "order/CnclReqViewForm";	// 변경요청정보화면 (취소요청정보화면)
+			viewName = "order/CnclReqViewForm";		// 변경요청확인화면 (취소요청정보화면)
 		} else {
 			viewName = "order/CnclReqForm";		// 변경요청화면 (취소요청화면)
 		}
+		*/
+		
+		viewName = "order/CnclReqForm";		// 변경요청화면, 변경요청확인화면 (취소요청화면) (통합)
 
 		mav.setViewName(viewName);
 		
 		return mav;
 	}
-	
-	/**
-	 * 취소요청 (ADMIN, NAPY, 외부몰) (배치) (사용안함)
-	 * 
-	 * @param OrderChange - 주문취소신청정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 01. 20
-	 */
-	@PostMapping("/cnclReq")
-	@ResponseBody
-	public GagaResponse cnclReq(@RequestBody OrderChange cnclReq) {
-		
-		GagaMap mav = new GagaMap();
-		
-		if (cnclReq== null) {
-			throw new IllegalStateException(message.getMessage("FAIL_1001"));
-		}
-		
-		List<Order> cnclReqList = cnclReq.getCancelReqList(); // 취소요청정보목록
-		
-		// To Do List
-		// @ 결품취소로직 추가
-		// @ 주문취소시 상태값 체크
-		// @ 취소, 반품시 배송비 체크 로직 (선결제 로직)
-		
-		// 1. 세션회원조회
-		int userNo = TsaSession.getInfo().getUserNo();
-		
-		// 2. 환불금액계산
-		// 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
-		mav = coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);
-		
-		// 3. 주문변경 기본정보 설정
-		mav.set("ordNo"			, cnclReq.getOrdNo());				// 주문번호
-		mav.set("chgReason"		, cnclReq.getChgReason());			// 변경사유
-		mav.set("chgMemo"		, cnclReq.getChgMemo());			// 변경메모
-		
-		mav.set("accountNo"		, cnclReq.getAccountNo());			// 환불계좌번호
-		mav.set("accountNm"		, cnclReq.getAccountNm());			// 환불계좌예금주명
-		mav.set("bankCd"		, cnclReq.getBankCd());				// 환불계좌은행코드
-		
-		mav.set("allCanYn"		, cnclReq.getAllCanYn());			// 무통장입금전 전체취소 여부
-		mav.set("isCustomer"	, cnclReq.getIsCustomer());			// 변경사유 (고객, 회사)
-		
-		// 4. 주문변경 회수지정보 추가
-		mav.set("chgerNm"		, cnclReq.getChgerNm());			// 변경자명
-		mav.set("chgerEmail"	, cnclReq.getChgerEmail());			// 변경자이메일주소
-		mav.set("chgerPhnno"	, cnclReq.getChgerPhnno());			// 변경자핸드폰번호
-		mav.set("chgerTelno"	, cnclReq.getChgerTelno());			// 변경자전화번호
-		
-		mav.set("reqGbn"		, cnclReq.getReqGbn());				// 신청구분
-						
-		// 5. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
-		//coreOrderChangeService.cnclReq(mav, userNo);
-		coreOrderChangeService.cnclComplete(mav, userNo);
-		
-		return super.ok("성공");
-	}
-	
+
 	/**
-	 * 취소요청철회 (NAPY, 외부몰) (관리자)
+	 * 취소요청철회 (관리자)
 	 * @param OrderChange - 주문취소신청정보
 	 * @return
 	 * @author jsh77b
@@ -197,25 +148,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 	}
 	
 	/**
-	 * 취소요청승인 (NAPY, 외부몰) (관리자)
-	 * @param OrderChange - 주문취소신청정보
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 01. 20
-	 */
-	@PostMapping("/cnclReqComplete")
-	@ResponseBody
-	public GagaResponse cnclReqComplete(@RequestBody OrderChange cnclReq) {
-		
-		if (cnclReq== null) {
-			throw new IllegalStateException(message.getMessage("FAIL_1001"));
-		}
-		
-		return super.ok("성공");
-	}
-	
-	/**
-	 * 취소 요청, 완료 통합 (관리자)
+	 * 취소요청, 취소요청완료, 취소완료 기능 통합 (관리자)
 	 * @param Collection<Order> - 주문취소신청목록
 	 * @return
 	 * @author jsh77b
@@ -233,7 +166,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		
 		List<Order> cnclReqList = cnclReq.getCancelReqList(); // 취소요청정보목록
 		
-		// To Do List
+		// TODO
 		// @ 결품취소로직 추가
 		// @ 주문취소시 상태값 체크
 		// @ 취소, 반품시 배송비 체크 로직 (선결제 로직)
@@ -464,7 +397,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		
 		String accountCheck = "Y";
 		
-		// To Do List
+		// TODO
 		// @ 환불계좌인증
 		
 		if ("Y".equals(accountCheck)) {
@@ -541,6 +474,112 @@ public class TsaOrderChangeController extends TsaBaseController {
 
 		return result;
 	}
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	/**
+	 * 취소요청 (ADMIN, NAPY, 외부몰) (배치) (사용안함)
+	 * 
+	 * @param OrderChange - 주문취소신청정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 01. 20
+	 */
+	@PostMapping("/cnclReq")
+	@ResponseBody
+	public GagaResponse cnclReq(@RequestBody OrderChange cnclReq) {
+		
+		GagaMap mav = new GagaMap();
+		
+		if (cnclReq== null) {
+			throw new IllegalStateException(message.getMessage("FAIL_1001"));
+		}
+		
+		List<Order> cnclReqList = cnclReq.getCancelReqList(); // 취소요청정보목록
+		
+		// TODO
+		// @ 결품취소로직 추가
+		// @ 주문취소시 상태값 체크
+		// @ 취소, 반품시 배송비 체크 로직 (선결제 로직)
+		
+		// 1. 세션회원조회
+		int userNo = TsaSession.getInfo().getUserNo();
+		
+		// 2. 환불금액계산
+		// 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
+		mav = coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);
+		
+		// 3. 주문변경 기본정보 설정
+		mav.set("ordNo"			, cnclReq.getOrdNo());				// 주문번호
+		mav.set("chgReason"		, cnclReq.getChgReason());			// 변경사유
+		mav.set("chgMemo"		, cnclReq.getChgMemo());			// 변경메모
+		
+		mav.set("accountNo"		, cnclReq.getAccountNo());			// 환불계좌번호
+		mav.set("accountNm"		, cnclReq.getAccountNm());			// 환불계좌예금주명
+		mav.set("bankCd"		, cnclReq.getBankCd());				// 환불계좌은행코드
+		
+		mav.set("allCanYn"		, cnclReq.getAllCanYn());			// 무통장입금전 전체취소 여부
+		mav.set("isCustomer"	, cnclReq.getIsCustomer());			// 변경사유 (고객, 회사)
+		
+		// 4. 주문변경 회수지정보 추가
+		mav.set("chgerNm"		, cnclReq.getChgerNm());			// 변경자명
+		mav.set("chgerEmail"	, cnclReq.getChgerEmail());			// 변경자이메일주소
+		mav.set("chgerPhnno"	, cnclReq.getChgerPhnno());			// 변경자핸드폰번호
+		mav.set("chgerTelno"	, cnclReq.getChgerTelno());			// 변경자전화번호
+		
+		mav.set("reqGbn"		, cnclReq.getReqGbn());				// 신청구분
+						
+		// 5. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
+		//coreOrderChangeService.cnclReq(mav, userNo);
+		coreOrderChangeService.cnclComplete(mav, userNo);
+		
+		return super.ok("성공");
+	}
+	
+	/**
+	 * 취소요청승인 (관리자)
+	 * @param OrderChange - 주문취소신청정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 01. 20
+	 */
+	@PostMapping("/cnclReqComplete")
+	@ResponseBody
+	public GagaResponse cnclReqComplete(@RequestBody OrderChange cnclReq) {
+		
+		if (cnclReq== null) {
+			throw new IllegalStateException(message.getMessage("FAIL_1001"));
+		}
+		
+		// 1. 세션회원조회
+		int userNo = TsaSession.getInfo().getUserNo();
+		
+		GagaMap mav = new GagaMap();
+		mav.set("ordNo"			, cnclReq.getOrdNo());
+		mav.set("ordChgSq"		, cnclReq.getOrdChgSq());
+		
+		// 2.취소요청철회 
+		mav = coreOrderChangeService.cnclComplete(mav, userNo);
+		
+		return super.ok("성공");
+	}
 }
 
 

+ 4 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsaOrder.xml

@@ -1333,7 +1333,10 @@
 		     , (SELECT Z.USER_ID
 		        FROM   TB_USER Z
 		        WHERE  Z.USER_NO = ODH.UPD_NO) 				AS UPD_ID
-		     , FN_GET_CODE_NM('G013', ODH.ORD_DTL_STAT)    	AS ORD_DTL_STAT_NM 
+		     , CASE WHEN SUBSTR(ORD_DTL_STAT, 1, 4) = 'G013'
+		            THEN FN_GET_CODE_NM('G013', ODH.ORD_DTL_STAT)
+		            ELSE FN_GET_CODE_NM('G685', ODH.ORD_DTL_STAT)
+		            END  ORD_DTL_STAT_NM
 		     , ODH.ORD_QTY
 		     , ODH.CNCL_RTN_QTY 
 		     , ODH.DELV_LOC_CD 

+ 142 - 93
src/main/webapp/WEB-INF/views/order/CnclReqForm.html

@@ -23,21 +23,24 @@
 		<div class="panelContent" style="height:90%; overflow-y:auto; padding:0px 20px !important; ">
 			<form id="cancelRequestFrm" name="cancelRequestFrm" action="/orderChange/cancel" method="post" target="hdFrameForOrderCancel">
 				<input type="hidden" name="ordNo" th:value="${ordNo}"/>
+				<input type="hidden" name="ordChgSq" th:value="${ordChgSq}"/>
 				<input type="hidden" name="chgReason" value=""/>
 				<input type="hidden" name="chgReasonDesc" value=""/>
 				
 				<h4>주문정보</h4>
 				<div id="gridOrderCancelRequestList" style="width:100%; height: 200px;" class="ag-theme-balham"></div>
 
-				<h4>취소정보</h4>
+				<h4 id="h4OrderCancelRequestToBeList">취소정보</h4>
 				<div id="gridOrderCancelRequestToBeList" style="width:100%; height: 200px;" class="ag-theme-balham"></div>
 				
-				<h4>배송비정보</h4>
+				<h4 id="h4DelvCdList" >배송비정보</h4>
 				<div id="gridDelvCdList" style="width:100%; height: 140px;" class="ag-theme-balham"></div>
 				
 				<div style="text-align:right; padding-bottom:5px; padding-top:5px;">
-					<button type="button" class="btn btn-success" onclick="fnCnclReq('cnclReq');">취소신청</button>
-					<button type="button" class="btn btn-success" onclick="fnCnclReq('cnclComplete');">취소완료</button>
+					<button type="button" class="btn btn-success" id="cnclReqBtn" onclick="fnCnclReq('cnclReq');">취소신청</button>
+					<button type="button" class="btn btn-success" id="cnclCompleteBtn" onclick="fnCnclReq('cnclComplete');">취소완료</button>
+					<button type="button" class="btn btn-success" id="cnclReqCancelBtn" onclick="fnCnclReq('cnclReqCancel');">취소철회</button>
+					<button type="button" class="btn btn-success" id="cnclReqCompleteBtn" onclick="fnCnclReq('cnclReqComplete');">취소승인</button>
 				</div>
 				
 				<table class="frmStyle">
@@ -53,7 +56,7 @@
 							<td>
 								<select name="selectChgReason" onchange="fnChangeChgReason($(this).val());">
 									<option value="">[선택하세요]</option>
-									<option th:if="${chgReasonList}" th:each="oneData, status : ${chgReasonList}" th:value="|${oneData.cd}:${oneData.cdNm}|" th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+									<option th:if="${chgReasonList}" th:each="oneData, status : ${chgReasonList}" th:value="|${oneData.cd}|" th:text="|${oneData.cdNm}|"></option>
 								</select>
 							</td>
 							<th>귀책사유</th>
@@ -135,8 +138,12 @@
 /*<![CDATA[*/
 var cancelRequestTargetList = [[${cancelRequestTargetList}]];				// 취소대상목록
 var ordNo 					= [[${ordNo}]];									// 주문번호
+var ordChgSq 				= [[${ordChgSq}]];								// 주문변경번호
 var orderInfoList 			= [[${orderInfoList}]];							// 주문기본정보
+var orderChangeDetailList 	= [[${orderChangeDetailList}]];					// 취소/반품/교환요청 정보
 var payMeans 				= orderInfoList[0].payMeans;					// 결제수단
+var chgReason				= orderChangeDetailList[0].chgReason;			// 변경사유코드
+var chgMemo					= orderChangeDetailList[0].chgMemo;				// 변경사유메모
 
 var temp1 = true;
 var temp2 = false;
@@ -223,21 +230,29 @@ var columnCancelReqList = [
 					var ordQty 			= parseInt(params.data.ordQty);
 					var cnclRtnQty 		= parseInt(params.data.cnclRtnQty);
 					var ordReqChgQty 	= parseInt(params.data.ordReqChgQty);
-					var ordCanChgQty 	= ordQty - (cnclRtnQty +  ordReqChgQty);
+					var ordCanChgQty 	= parseInt(params.value);
+					var rtnStr 			= "";
 					
-					var strVal 			= "";
-					strVal += "<select class='ordCanChgQty' name='ordCanChgQty' ordDtlNo='"+params.data.ordDtlNo+"' onChange='fnCalculateRefundAmt(this);'>";
-					
-					for (i=0 ; i<=ordCanChgQty ; i++) {
-						if (i == params.data.ordCanChgQty) {
-							strVal += "	<option value='"+i+"' selected>"+i+"</option>";
-						} else {
-							strVal += "	<option value='"+i+"'>"+i+"</option>";
+					// 취소신청가능수량있으면 수량만 표시 (취소,반품,교환 신청정보 처리)
+					if (ordChgSq > 0) {
+						rtnStr = ordCanChgQty;
+					} else {
+						ordCanChgQty 	= ordQty - (cnclRtnQty +  ordReqChgQty);
+						
+						rtnStr += "<select class='ordCanChgQty' name='ordCanChgQty' ordDtlNo='"+params.data.ordDtlNo+"' onChange='fnCalculateRefundAmt(this);'>";
+						
+						for (i=0 ; i<=ordCanChgQty ; i++) {
+							if (i == params.data.ordCanChgQty) {
+								rtnStr += "	<option value='"+i+"' selected>"+i+"</option>";
+							} else {
+								rtnStr += "	<option value='"+i+"'>"+i+"</option>";
+							}
 						}
+					
+						rtnStr += "</select>";
 					}
-				
-					strVal += "</select>";
-					return strVal;
+					
+					return rtnStr;
 				}
 			}
 		]
@@ -869,7 +884,7 @@ var fnChangeChgReason = function(reasonCd){
 	
 	// 취소, 반품, 교환 사유 판단
 	for (i=0 ; i<customerReasonArr.length ; i++) {
-		if (customerReasonArr[i] == arrReasonCd[0]) {
+		if (customerReasonArr[i] == reasonCd) {
 			isCustomer = true;
 		}
 	}
@@ -881,9 +896,7 @@ var fnChangeChgReason = function(reasonCd){
 		$("#imputeReason").text("회사");
 	}
 
-	$('#cancelRequestFrm input[name=chgReason]').val(arrReasonCd[0]);
-	$('#cancelRequestFrm input[name=chgReasonDesc]').val(arrReasonCd[1]);
-
+	$('#cancelRequestFrm input[name=chgReason]').val(reasonCd);
 	fnCalculateRefundAmt();			//환불예정금액 계산.
 }
 
@@ -891,57 +904,61 @@ var fnChangeChgReason = function(reasonCd){
 var fnCnclReq = function (reqGbn) {
 	
 	var temp 		= false;
-	var ordDtlStat	= cancelRequestTargetList[0].ordDtlStat; 
+	var ordDtlStat	= cancelRequestTargetList[0].ordDtlStat;
 	var allCanYn 	= "N";
 	
-	// 1. 취소수량 체크
-	for (i=0 ; i<cancelRequestTargetList.length ; i++) {		
-		if (cancelRequestTargetList[i].ordCanChgQty > 0) {
-			temp = true;
-		}
-	}
-	
-	if (temp == false) {
-		mcxDialog.alert('취소신청수량을 입력하세요.');
-		return;
-	}
-	
-	// 2. 입금대기건 & 전체취소 체크
-	if (ordDtlStat == "G013_10" && $("#spanPayAmt").text() != $("#spanRefundAmt").text()) {
-		alert("입금대기건은 전체 취소만 가능합니다.");
-		return;
-	}
-	
-	// 2.1 전체취소 여부 적용
-	if (ordDtlStat == "G013_10" && $("#spanPayAmt").text() == $("#spanRefundAmt").text()) {
-		allCanYn = "Y";	
-	}
-	
-	// 3. 취소사유 체크
-	var chgReason = $("#cancelRequestFrm select[name=selectChgReason]").val();
-	
-	if (gagajf.isNull(chgReason)) {
-		mcxDialog.alert("취소사유를 입력하세요."); 
-		return ;
-	}
-	
-	// 4. 환불계좌 체크
 	var accountNo 	= "";
 	var accountNm 	= "";
 	var bankCd 		= "";
 	
-	// 결제타입 무통장입금시 환불계좌 등록
-	if (payMeans == 'G014_20') {
-		var refundAccount = gridOptionsRefundAccountInfo.api.getSelectedRows();
+	if (reqGbn == "cnclReq" || reqGbn == "cnclComplete") {
+		// 1. 취소수량 체크
+		for (i=0 ; i<cancelRequestTargetList.length ; i++) {		
+			if (cancelRequestTargetList[i].ordCanChgQty > 0) {
+				temp = true;
+			}
+		}
+		
+		if (temp == false) {
+			mcxDialog.alert('취소신청수량을 입력하세요.');
+			return;
+		}
 		
-		if (refundAccount.length == 0) {
-			mcxDialog.alert('선택된 행이 없습니다.');
+		// 2. 입금대기건 & 전체취소 체크
+		if (ordDtlStat == "G013_10" && $("#spanPayAmt").text() != $("#spanRefundAmt").text()) {
+			alert("입금대기건은 전체 취소만 가능합니다.");
 			return;
 		}
 		
-		accountNo 	= refundAccount[0].accountNo;
-		accountNm 	= refundAccount[0].accountNm;
-		bankCd 		= refundAccount[0].bankCd;
+		// 2.1 전체취소 여부 적용
+		if (ordDtlStat == "G013_10" && $("#spanPayAmt").text() == $("#spanRefundAmt").text()) {
+			allCanYn = "Y";	
+		}
+		
+		// 3. 취소사유 체크
+		var chgReason = $("#cancelRequestFrm select[name=selectChgReason]").val();
+		
+		if (gagajf.isNull(chgReason)) {
+			mcxDialog.alert("취소사유를 입력하세요."); 
+			return ;
+		}
+		
+		// 4. 환불계좌 체크
+		// 결제타입 무통장입금시 환불계좌 등록
+		if (payMeans == 'G014_20') {
+			var refundAccount = gridOptionsRefundAccountInfo.api.getSelectedRows();
+			
+			if (refundAccount.length == 0) {
+				mcxDialog.alert('선택된 행이 없습니다.');
+				return;
+			}
+			
+			accountNo 	= refundAccount[0].accountNo;
+			accountNm 	= refundAccount[0].accountNm;
+			bankCd 		= refundAccount[0].bankCd;
+		}
+	} else {
+		
 	}
 	
 	// 5. 추가정보설정
@@ -950,49 +967,57 @@ var fnCnclReq = function (reqGbn) {
 	var chgerPhnno 	= orderInfoList[0].ordPhnno;
 	var chgerTelno 	= orderInfoList[0].ordTelno;
 
+	// 2021.01.26 화면통합
 	// 6. 취소신청, 취소완료 여부 체크
-	// 취소완료
-	if (reqGbn == "cnclComplete") {
-		cnclUrl = '/orderChange/cnclComplete/';
-	}
 	// 취소신청
-	else if (reqGbn == "cnclReq") {
-		cnclUrl = '/orderChange/cnclReq/';
+	if (reqGbn == "cnclReq") {
+		confirmStr 		= "취소신청하시겠습니까?";
+		cnclUrl 		= '/orderChange/cnclComplete/';
 	}
-	// 취소신청완료
+	// 취소완료
+	else if (reqGbn == "cnclComplete") {
+		confirmStr 		= "취소완료하시겠습니까?";
+		cnclUrl 		= '/orderChange/cnclComplete/';
+	}
+	// 취소신청승인
 	else if (reqGbn == "cnclReqComplete") {
-		cnclUrl = '/orderChange/cnclReqComplete/';
+		confirmStr 		= "요청번호 [" + ordChgSq + "] 에 대한 취소승인 처리를 하시겠습니까?";
+		cnclUrl 		= '/orderChange/cnclReqComplete/';
+	}
+	// 취소신청철회
+	else if (reqGbn == "cnclReqCancel") {
+		confirmStr 		= "요청번호 [" + ordChgSq + "] 에 대한 요청철회 처리를 하시겠습니까?";
+		cnclUrl 		= '/orderChange/cnclReqCancel/';
 	}
 
-	// 2021.01.26 화면통합
-	cnclUrl = '/orderChange/cnclComplete/';
-	
 	var jsonObj = {
-			"ordNo"				: $('#cancelRequestFrm input[name=ordNo]').val()
-			,"chgReason" 		: $('#cancelRequestFrm input[name=chgReason]').val()
-			,"chgMemo"			: $('#chgMemo').val()
-			,"cancelReqList" 	: cancelRequestTargetList
-			,"accountNo" 		: accountNo
-			,"accountNm" 		: accountNm
-			,"bankCd" 			: bankCd
-			,"allCanYn" 		: allCanYn
-			,"isCustomer" 		: isCustomer
-			,"chgerNm"			: chgerNm
-			,"chgerEmail"		: chgerEmail
-			,"chgerZipcode"		: ""
-			,"chgerBaseAddr"	: ""
-			,"chgerDtlAddr"		: ""
-			,"chgerPhnno"		: chgerPhnno
-			,"chgerTelno"		: chgerTelno
-			,"reqGbn"			: reqGbn
-		}
+		"ordNo"				: $('#cancelRequestFrm input[name=ordNo]').val()
+		,"chgReason" 		: $('#cancelRequestFrm input[name=chgReason]').val()
+		,"chgMemo"			: $('#chgMemo').val()
+		,"cancelReqList" 	: cancelRequestTargetList
+		,"accountNo" 		: accountNo
+		,"accountNm" 		: accountNm
+		,"bankCd" 			: bankCd
+		,"allCanYn" 		: allCanYn
+		,"isCustomer" 		: isCustomer
+		,"chgerNm"			: chgerNm
+		,"chgerEmail"		: chgerEmail
+		,"chgerZipcode"		: ""
+		,"chgerBaseAddr"	: ""
+		,"chgerDtlAddr"		: ""
+		,"chgerPhnno"		: chgerPhnno
+		,"chgerTelno"		: chgerTelno
+		,"reqGbn"			: reqGbn
+		,"ordChgSq"			: ordChgSq
+	}
 
 	// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌
 	var jsonData = JSON.stringify(jsonObj);
 	
-	mcxDialog.confirm('취소요청하시겠습니까?', {
+	mcxDialog.confirm(confirmStr, {
 		cancelBtnText		: "취소",
-		sureBtnClick		: function(){
+		sureBtnText			: "확인",
+		sureBtnClick		: function() {
 			gagajf.ajaxJsonSubmit(
 				cnclUrl
 				, jsonData
@@ -1047,6 +1072,30 @@ $(document).ready(function() {
 		$('#wrapRefundAccount').addClass("off");
 		fnBindOrderRfAccountInfo();
 	}
+	
+	// 5. 취소신청, 취소완료, 취소승인 버튼 제어
+	if (ordChgSq > 0) {
+		$("#cnclReqBtn").css("display", "none");
+		$("#cnclCompleteBtn").css("display", "none");
+	} else {
+		$("#cnclReqCompleteBtn").css("display", "none");
+		$("#cnclReqCancelBtn").css("display", "none");
+	}
+	
+	// 6. 취소사유 선택
+	if (ordChgSq > 0) {
+		$("select[name='selectChgReason']").val(orderChangeDetailList[0].chgReason);			// 변경사유코드
+		$("select[name='selectChgReason']").attr("disabled", "true");							// 변경사유 비활성화
+		$("#chgMemo").text(orderChangeDetailList[0].chgMemo);									// 변경사유메모
+		$("#chgMemo").attr("disabled", "true");													// 변경사유메모 비활성화
+		fnChangeChgReason(orderChangeDetailList[0].chgReason);									// 귀책사유
+	}
+	
+	// debug mode 해제
+	$("#h4OrderCancelRequestToBeList").css("display", "none");
+	$("#gridOrderCancelRequestToBeList").css("display", "none");
+	$("#h4DelvCdList").css("display", "none");
+	$("#gridDelvCdList").css("display", "none");
 });
 </script>
 </html>

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

@@ -623,12 +623,13 @@ var columnDefsOrderChangeInfo = [
 			return  rtnStr;
 		}
 	},
-	{headerName: "요청구분"		, field: "chgGbNm"		, width: 100	, cellClass: 'text-center'},
+	/*{headerName: "요청구분"		, field: "chgGbNm"		, width: 100	, cellClass: 'text-center'},*/
+	{headerName: "요청상태"		, field: "chgStatNm"	, width: 100	, cellClass: 'text-center'},
 	{headerName: "상품코드"		, field: "goodsCd"		, width: 100	, cellClass: 'text-center'},
 	{headerName: "옵션1"			, field: "optCd1"		, width: 100	, cellClass: 'text-center'},
 	{headerName: "옵션2"			, field: "optCd2"		, width: 100	, cellClass: 'text-center'},
 	{headerName: "수량"			, field: "chgQty"		, width: 100	, cellClass: 'text-center'},
-	{headerName: "요청상태"		, field: "chgStatNm"	, width: 100	, cellClass: 'text-center'},
+	/*{headerName: "요청상태"		, field: "chgStatNm"	, width: 100	, cellClass: 'text-center'},*/
 	{
 		headerName		: "요청일자"		
 		, field			: "regDt"