فهرست منبع

관리자 반품,취소 수정 개발

tsit14 5 سال پیش
والد
کامیت
4d9aa4b9f6

+ 75 - 112
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -163,61 +163,49 @@ public class TsaOrderChangeController extends TsaBaseController {
 		}
 		
 		GagaMap map = new GagaMap();
-		
-		List<Order> cnclReqList = cnclReq.getCancelReqList(); // 변경요청정보
-		int[] ordDtlNoArr 		= new int[cnclReqList.size()];
-		int[] cnclRtnReqQtyArr 	= new int[cnclReqList.size()];
-		
-		for (int i=0 ; i<cnclReqList.size() ; i++) {
-			Order vo = (Order)cnclReqList.get(i);
-			ordDtlNoArr[i] 			= vo.getOrdDtlNo();
-			cnclRtnReqQtyArr[i] 	= vo.getOrdCanChgQty();
-		}
 
 		// 1. 세션회원조회
 		int userNo = TsaSession.getInfo().getUserNo();
-				
-		cnclReq.setOrdDtlNoArr(ordDtlNoArr);
-		cnclReq.setCnclRtnReqQtyArr(cnclRtnReqQtyArr);
+
 		cnclReq.setIpAddress(TsaSession.getIpAddress());
 		cnclReq.setRegNo(userNo);
 		
 		// 2021.05.14 FRONT 정보 선주문정보조회
-		GagaMap refundPreInfo = orderChangeService.getRefundPreInfo(cnclReq);
-		cnclReqList = (List<Order>) refundPreInfo.get("cnclReqList");
+		GagaMap refundPreInfo = orderChangeService.getRefundPreInfo2(cnclReq);
+		List<Order> cnclReqList = (List<Order>) refundPreInfo.get("cnclReqList");
 		
 		// 2. 환불금액계산
 		// 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
-		map = orderRefundService.cnclRtnRefundAmt(cnclReqList);
+		map = orderRefundService.cnclRtnRefundAmt2(cnclReqList);
 		
 		// 3. 주문변경 기본정보 설정
-		map.set("ordNo"					, cnclReq.getOrdNo());						// 주문번호
-		map.set("ordChgSq"				, cnclReq.getOrdChgSq());					// 주문변경번호
-		map.set("chgReason"				, cnclReq.getChgReason());					// 변경사유
-		map.set("chgReasonNm"			, cnclReq.getChgReasonNm());				// 변경사유명 (2021.05.13 추가)
-		map.set("chgMemo"				, cnclReq.getChgMemo());					// 변경메모
-		map.set("accountNo"				, cnclReq.getAccountNo());					// 환불계좌번호
-		map.set("accountNm"				, cnclReq.getAccountNm());					// 환불계좌예금주명
-		map.set("bankCd"				, cnclReq.getBankCd());						// 환불계좌은행코드
-		map.set("allCanYnBeforePayment"	, cnclReq.getAllCanYnBeforePayment());		// 무통장입금전 전체취소 여부
-		map.set("allCanYn"				, cnclReq.getAllCanYn());					// 전체취소 여부
-		map.set("allLastCanYn"			, refundPreInfo.get("allLastCanYn"));		// 전체 마지막 취소 여부 (2021.05.13 추가)
-		map.set("isCustomer"			, cnclReq.getIsCustomer());					// 변경사유 (고객, 회사)
-		map.set("chgerNm"				, cnclReq.getChgerNm());					// 변경자명
-		map.set("chgerEmail"			, cnclReq.getChgerEmail());					// 변경자이메일주소
-		map.set("chgerPhnno"			, cnclReq.getChgerPhnno());					// 변경자핸드폰번호
-		map.set("chgerTelno"			, cnclReq.getChgerTelno());					// 변경자전화번호
-		map.set("reqGbn"				, cnclReq.getReqGbn());						// 신청구분
-		map.set("ipAddress"				, cnclReq.getIpAddress());					// IP주소 (2021.05.13 추가)
-		map.set("custNo"				, cnclReq.getCustNo());						// 고객번호 (2021.05.13 추가)
-		
-		map.set("pgTid"					, refundPreInfo.getString("pgTid"));		// PG거래ID
-		map.set("payMeans"				, refundPreInfo.getString("payMeans"));		// 결제수단
-		map.set("pgGb"					, refundPreInfo.getString("pgGb"));			// PG구분
-		map.set("cashAuthNo"			, refundPreInfo.getString("cashAuthNo"));	// 현금영수증 승인번호
-
-		// 5. 부분취소 처리 2021.05.13
-		orderChangeService.partialCancel(map, userNo);
+		map.set("ordNo"						, cnclReq.getOrdNo());						// 주문번호
+		map.set("ordChgSq"					, cnclReq.getOrdChgSq());					// 주문변경번호
+		map.set("chgReason"					, cnclReq.getChgReason());					// 변경사유
+		map.set("chgReasonNm"				, cnclReq.getChgReasonNm());				// 변경사유명 (2021.05.13 추가)
+		map.set("chgMemo"					, cnclReq.getChgMemo());					// 변경메모
+		map.set("accountNo"					, cnclReq.getAccountNo());					// 환불계좌번호
+		map.set("accountNm"					, cnclReq.getAccountNm());					// 환불계좌예금주명
+		map.set("bankCd"					, cnclReq.getBankCd());						// 환불계좌은행코드
+		map.set("allCanYnBeforePayment"		, cnclReq.getAllCanYnBeforePayment());		// 무통장입금전 전체취소 여부
+		map.set("allCanYn"					, cnclReq.getAllCanYn());					// 전체취소 여부
+		map.set("allLastCanYn"				, refundPreInfo.get("allLastCanYn"));		// 전체 마지막 취소 여부 (2021.05.13 추가)
+		map.set("isCustomer"				, cnclReq.getIsCustomer());					// 변경사유 (고객, 회사)
+		map.set("chgerNm"					, cnclReq.getChgerNm());					// 변경자명
+		map.set("chgerEmail"				, cnclReq.getChgerEmail());					// 변경자이메일주소
+		map.set("chgerPhnno"				, cnclReq.getChgerPhnno());					// 변경자핸드폰번호
+		map.set("chgerTelno"				, cnclReq.getChgerTelno());					// 변경자전화번호
+		map.set("reqGbn"					, cnclReq.getReqGbn());						// 신청구분
+		map.set("ipAddress"					, cnclReq.getIpAddress());					// IP주소 (2021.05.13 추가)
+		map.set("custNo"					, cnclReq.getCustNo());						// 고객번호 (2021.05.13 추가)
+		
+		map.set("pgTid"						, refundPreInfo.getString("pgTid"));		// PG거래ID
+		map.set("payMeans"					, refundPreInfo.getString("payMeans"));		// 결제수단
+		map.set("pgGb"						, refundPreInfo.getString("pgGb"));			// PG구분
+		map.set("cashAuthNo"				, refundPreInfo.getString("cashAuthNo"));	// 현금영수증 승인번호
+
+		// 4. 부분취소 처리 2021.05.13
+		orderChangeService.partialCancelTemp(map, userNo);
 		
 		return super.ok("성공");
 	}
@@ -236,7 +224,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 
 		ModelAndView mav = new ModelAndView();
 
-		// 반품가능 주문상세상탭값 설정
+		// 1. 반품가능 주문상세상탭값 설정
 		String[] ordDtlStatArr = new String[3];
 		ordDtlStatArr[0] = TscConstants.OrderDetailStat.SHIPPING.value();
 		ordDtlStatArr[1] = TscConstants.OrderDetailStat.SHIP_COMPLETE.value();
@@ -253,7 +241,8 @@ public class TsaOrderChangeController extends TsaBaseController {
 			mav.addObject("exchangeInfoList"		, exchangeInfoList);											// 교환정보
 		}
 		
-		// 3. 화면으로 데이타 전송
+		String chgStat = cancelRequestTargetList.get(0).getChgStat();
+
 		// 2021.01.26 취소요청 화면, 취소요청정보확인 화면 통합
 		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G688"));				// 취소사유
 		mav.addObject("cancelRequestTargetList"		, cancelRequestTargetList);										// 취소요청대상 목록
@@ -261,10 +250,10 @@ public class TsaOrderChangeController extends TsaBaseController {
 		mav.addObject("ordNo"						, order.getOrdNo());											// 주문번호
 		mav.addObject("ordChgSq"					, order.getOrdChgSq());											// 주문변경번호
 		mav.addObject("orderChangeDetailList"		, orderChangeDetailList);										// 변경신청목록 (취소/반품/교환)
-		
 		mav.addObject("orderDelvRtnAddrInfo"		, orderService.getDeliveryAddrList(order));						// 배송정보
 		mav.addObject("TelExcNoList"				, rendererService.getAvailCommonCodeList("G095"));				// 전화번호국번
 		mav.addObject("PhnExcNoList"				, rendererService.getAvailCommonCodeList("G096"));				// (휴대전화)번호국번
+		mav.addObject("chgStat"						, chgStat);														// 변경상태
 
 		mav.setViewName("order/RtnReqForm");
 		
@@ -283,69 +272,59 @@ public class TsaOrderChangeController extends TsaBaseController {
 	@ResponseBody
 	public GagaResponse rtnReq(@RequestBody OrderChange rtnReq) {
 		
-		GagaMap map = new GagaMap();
-		
+		// 1. 반품신청정보체크
 		if (rtnReq== null) {
 			throw new IllegalStateException(message.getMessage("FAIL_1001"));
 		}
 
-		List<Order> cnclReqList = rtnReq.getCancelReqList(); // 변경요청정보
-		int[] ordDtlNoArr 		= new int[cnclReqList.size()];
-		int[] cnclRtnReqQtyArr 	= new int[cnclReqList.size()];
-
-		for (int i=0 ; i<cnclReqList.size() ; i++) {
-			Order vo = (Order)cnclReqList.get(i);
-			ordDtlNoArr[i] 			= vo.getOrdDtlNo();
-			cnclRtnReqQtyArr[i] 	= vo.getOrdCanChgQty();
-		}
-
-		// 1. 세션회원조회
+		// 2. 관리자정보설정
 		int userNo = TsaSession.getInfo().getUserNo();
-
-		rtnReq.setOrdDtlNoArr(ordDtlNoArr);
-		rtnReq.setCnclRtnReqQtyArr(cnclRtnReqQtyArr);
-		rtnReq.setIpAddress(TsaSession.getIpAddress());
 		rtnReq.setRegNo(userNo);
+		rtnReq.setIpAddress(TsaSession.getIpAddress());
 
 		// 2021.05.14 FRONT 정보 선주문정보조회
-		GagaMap refundPreInfo = orderChangeService.getRefundPreInfo2(rtnReq);
-		cnclReqList = (List<Order>) refundPreInfo.get("cnclReqList");
+		GagaMap refundPreInfo 		= orderChangeService.getRefundPreInfo2(rtnReq);
+		List<Order> cnclReqList 	= (List<Order>) refundPreInfo.get("cnclReqList");
 		
-		// 2. 환불금액계산
+		GagaMap map = new GagaMap();
+		
+		// 3. 환불예상금액계산
 		map = orderRefundService.cnclRtnRefundAmt2(cnclReqList);
 		
-		// 3. 주문변경 기본정보 설정
-		map.set("ordNo"					, rtnReq.getOrdNo());						// 주문번호
-		map.set("ordChgSq"				, rtnReq.getOrdChgSq());					// 주문변경번호
-		map.set("chgReason"				, rtnReq.getChgReason());					// 변경사유
-		map.set("chgReasonNm"			, rtnReq.getChgReasonNm());					// 변경사유명 (2021.05.13 추가)
-		map.set("chgMemo"				, rtnReq.getChgMemo());						// 변경메모
-		map.set("accountNo"				, rtnReq.getAccountNo());					// 환불계좌번호
-		map.set("accountNm"				, rtnReq.getAccountNm());					// 환불계좌예금주명
-		map.set("bankCd"				, rtnReq.getBankCd());						// 환불계좌은행코드
-		map.set("allCanYnBeforePayment"	, rtnReq.getAllCanYnBeforePayment());		// 무통장입금전 전체취소 여부
-		map.set("allCanYn"				, rtnReq.getAllCanYn());					// 전체취소 여부
-		map.set("allLastCanYn"			, refundPreInfo.get("allLastCanYn"));		// 전체 마지막 취소 여부 (2021.05.13 추가)
-		map.set("isCustomer"			, rtnReq.getIsCustomer());					// 변경사유 (고객, 회사)
-		map.set("chgerNm"				, rtnReq.getChgerNm());						// 변경자명
-		map.set("chgerEmail"			, rtnReq.getChgerEmail());					// 변경자이메일주소
-		map.set("chgerPhnno"			, rtnReq.getChgerPhnno());					// 변경자핸드폰번호
-		map.set("chgerTelno"			, rtnReq.getChgerTelno());					// 변경자전화번호
-		map.set("reqGbn"				, rtnReq.getReqGbn());						// 신청구분
-		map.set("ipAddress"				, rtnReq.getIpAddress());					// IP주소 (2021.05.13 추가)
-		map.set("custNo"				, rtnReq.getCustNo());						// 고객번호 (2021.05.13 추가)
+		// 4. 주문변경기본정보설정
+		map.set("ordNo"						, rtnReq.getOrdNo());						// 주문번호
+		map.set("ordChgSq"					, rtnReq.getOrdChgSq());					// 주문변경번호
+		map.set("chgReason"					, rtnReq.getChgReason());					// 변경사유
+		map.set("chgReasonNm"				, rtnReq.getChgReasonNm());					// 변경사유명 (2021.05.13 추가)
+		map.set("chgMemo"					, rtnReq.getChgMemo());						// 변경메모
+		map.set("accountNo"					, rtnReq.getAccountNo());					// 환불계좌번호
+		map.set("accountNm"					, rtnReq.getAccountNm());					// 환불계좌예금주명
+		map.set("bankCd"					, rtnReq.getBankCd());						// 환불계좌은행코드
+		map.set("allCanYnBeforePayment"		, rtnReq.getAllCanYnBeforePayment());		// 무통장입금전 전체취소 여부
+		map.set("allCanYn"					, rtnReq.getAllCanYn());					// 전체취소 여부
+		map.set("allLastCanYn"				, refundPreInfo.get("allLastCanYn"));		// 전체 마지막 취소 여부 (2021.05.13 추가)
+		map.set("isCustomer"				, rtnReq.getIsCustomer());					// 변경사유 (고객, 회사)
+		map.set("chgerNm"					, rtnReq.getChgerNm());						// 변경자명
+		map.set("chgerEmail"				, rtnReq.getChgerEmail());					// 변경자이메일주소
+		map.set("chgerPhnno"				, rtnReq.getChgerPhnno());					// 변경자핸드폰번호
+		map.set("chgerTelno"				, rtnReq.getChgerTelno());					// 변경자전화번호
+		map.set("chgerRtnMemo"				, rtnReq.getChgerRtnMemo());				// 변경메모사항
+		map.set("reqGbn"					, rtnReq.getReqGbn());						// 신청구분
+		map.set("ipAddress"					, rtnReq.getIpAddress());					// IP주소 (2021.05.13 추가)
+		map.set("custNo"					, rtnReq.getCustNo());						// 고객번호 (2021.05.13 추가)
+		
 		// 2021.05.24 추가
-		map.set("chgerZipcode"			, rtnReq.getChgerZipcode());				// 회수지우편번호
-		map.set("chgerBaseAddr"			, rtnReq.getChgerBaseAddr());				// 회수지기본주소
-		map.set("chgerDtlAddr"			, rtnReq.getChgerDtlAddr());				// 회수지상세주소
-		map.set("wdGb"					, rtnReq.getWdGb());						// 회수구분
+		map.set("chgerZipcode"				, rtnReq.getChgerZipcode());				// 회수지우편번호
+		map.set("chgerBaseAddr"				, rtnReq.getChgerBaseAddr());				// 회수지기본주소
+		map.set("chgerDtlAddr"				, rtnReq.getChgerDtlAddr());				// 회수지상세주소
+		map.set("wdGb"						, rtnReq.getWdGb());						// 회수구분
 
-		map.set("pgTid"					, refundPreInfo.getString("pgTid"));		// PG거래ID
-		map.set("payMeans"				, refundPreInfo.getString("payMeans"));		// 결제수단
-		map.set("pgGb"					, refundPreInfo.getString("pgGb"));			// PG구분
-		map.set("cashAuthNo"			, refundPreInfo.getString("cashAuthNo"));	// 현금영수증 승인번호
+		map.set("pgTid"						, refundPreInfo.getString("pgTid"));		// PG거래ID
+		map.set("payMeans"					, refundPreInfo.getString("payMeans"));		// 결제수단
+		map.set("pgGb"						, refundPreInfo.getString("pgGb"));			// PG구분
+		map.set("cashAuthNo"				, refundPreInfo.getString("cashAuthNo"));	// 현금영수증 승인번호
 		
-		// 5. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
+		// 4. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
 		orderChangeService.returnRequest(map);
 		
 		return super.ok("성공");
@@ -393,29 +372,13 @@ public class TsaOrderChangeController extends TsaBaseController {
 		
 		GagaMap mav = new GagaMap();
 		
-		List<Order> cnclReqList = (List<Order>)cnclReq.getCancelReqList();
-		
-		if (cnclReqList == null || cnclReqList.isEmpty()) {
-			throw new IllegalStateException(message.getMessage("FAIL_1001"));
-		}
-
-		int[] ordDtlNoArr 		= new int[cnclReqList.size()];
-		int[] cnclRtnReqQtyArr 	= new int[cnclReqList.size()];
-		for (int i=0 ; i<cnclReqList.size() ; i++) {
-			Order vo = (Order)cnclReqList.get(i);
-			ordDtlNoArr[i] 			= vo.getOrdDtlNo();
-			cnclRtnReqQtyArr[i] 	= vo.getOrdCanChgQty();
-		}
-		
 		int userNo = TsaSession.getInfo().getUserNo();
-		cnclReq.setOrdDtlNoArr(ordDtlNoArr);
-		cnclReq.setCnclRtnReqQtyArr(cnclRtnReqQtyArr);
 		cnclReq.setIpAddress(TsaSession.getIpAddress());
 		cnclReq.setRegNo(userNo);
 
 		// 1. 환불 사전 정보 조회
 		GagaMap refundPreInfo = orderChangeService.getRefundPreInfo2(cnclReq);
-		cnclReqList = (List<Order>) refundPreInfo.get("cnclReqList");
+		List<Order> cnclReqList = (List<Order>) refundPreInfo.get("cnclReqList");
 		
 		// 2. 환불금액정보 계산 & 조회
 		mav = orderRefundService.cnclRtnRefundAmt2(cnclReqList);

+ 1 - 5
src/main/java/com/style24/admin/biz/web/TsaOrderController.java

@@ -648,16 +648,12 @@ public class TsaOrderController extends TsaBaseController {
 	@PostMapping("/change/info/addr/update")
 	@ResponseBody
 	public GagaResponse udpateChangeInfoAddr(@RequestBody Order order) {
+		order.setUpdNo(TsaSession.getInfo().getUserNo());
 		orderService.updateOrderChange(order);
 		return super.ok(message.getMessage("SUCC_0002"));
 	}
 
 
-
-
-
-
-
 	/* 주문 샘플 데이터 (추후 삭제 예정) */
 	@GetMapping("/sample/create/form")
 	@ResponseBody

+ 70 - 41
src/main/webapp/WEB-INF/views/order/CnclReqForm.html

@@ -143,22 +143,22 @@
 <!-- data -->
 <script th:inline="javascript">
 /*<![CDATA[*/
-var cancelRequestTargetList = [[${cancelRequestTargetList}]];				// 취소대상목록
-var ordNo 					= [[${ordNo}]];									// 주문번호
-var ordChgSq 				= [[${ordChgSq}]];								// 주문변경번호
-var delvFeeCd				= [[${delvFeeCd}]];								// 배송정책코드
-var orderInfoList 			= [[${orderInfoList}]];							// 주문기본정보
-var orderChangeDetailList 	= [[${orderChangeDetailList}]];					// 취소/반품/교환요청 정보
-var payGb 					= orderInfoList[0].payGb;						// 결제수단
-var payMeans 				= orderInfoList[0].payMeans;					// 결제방법
-var chgReason				= "";											// 변경사유코드
-var chgMemo					= "";											// 변경사유메모
-var cancelRequestTargetCnt 	= [[${cancelRequestTargetList.size()}]];		// 환불정보
+var cancelRequestTargetList 	= [[${cancelRequestTargetList}]];				// 취소대상목록
+var cancelRequestTargetCnt 		= [[${cancelRequestTargetList.size()}]];		// 취소대상건수
+var ordNo 						= [[${ordNo}]];									// 주문번호
+var ordChgSq 					= [[${ordChgSq}]];								// 주문변경번호
+var delvFeeCd					= [[${delvFeeCd}]];								// 배송정책코드
+var orderInfoList 				= [[${orderInfoList}]];							// 주문기본정보
+var orderChangeDetailList 		= [[${orderChangeDetailList}]];					// 취소/반품/교환요청 정보
+var payGb 						= orderInfoList[0].payGb;						// 결제수단
+var payMeans 					= orderInfoList[0].payMeans;					// 결제방법
+var chgReason					= "";											// 변경사유코드
+var chgMemo						= "";											// 변경사유메모
 
 // 변경요청정보 승인, 철회
 if (ordChgSq > 0) {
-	chgReason				= orderChangeDetailList[0].chgReason;			// 변경사유코드
-	chgMemo					= orderChangeDetailList[0].chgMemo;				// 변경사유메모
+	chgReason					= orderChangeDetailList[0].chgReason;			// 변경사유코드
+	chgMemo						= orderChangeDetailList[0].chgMemo;				// 변경사유메모
 }
 
 var temp1 = true;
@@ -167,13 +167,13 @@ var temp3 = true;
 
 // 1. 주문정보(변경요청가능대상)
 var columnCancelReqList = [
-	{headerName: "주문번호"		, field: "ordNo"			, width: 80		, cellClass: 'text-center', hide: temp1},
+	{headerName: "주문번호"		, field: "ordNo"			, width: 80		, cellClass: 'text-center'	, hide: temp1},
 	{headerName: "주문상세"		, field: "ordDtlNo"			, width: 80		, cellClass: 'text-center'},
-	{headerName: "주문상세"		, field: "ordDtlStat"		, width: 80		, cellClass: 'text-center', hide: temp1},
-	{headerName: "주문상세상태"		, field: "ordDtlStatNm"		, width: 100	, cellClass: 'text-center', hide: temp1},
-	{headerName: "상품코드"		, field: "goodsCd"			, width: 100	, cellClass: 'text-left', hide: temp2},
-	{headerName: "상품명"			, field: "goodsNm"			, width: 200	, cellClass: 'text-left', hide: temp2},
-	{headerName: "상품타입"		, field: "goodsTypeNm"		, width: 100	, cellClass: 'text-center', hide: temp2},
+	{headerName: "주문상세"		, field: "ordDtlStat"		, width: 80		, cellClass: 'text-center'	, hide: temp1},
+	{headerName: "주문상세상태"		, field: "ordDtlStatNm"		, width: 100	, cellClass: 'text-center'	, hide: temp1},
+	{headerName: "상품코드"		, field: "goodsCd"			, width: 100	, cellClass: 'text-left'	, hide: temp2},
+	{headerName: "상품명"			, field: "goodsNm"			, width: 200	, cellClass: 'text-left'	, hide: temp2},
+	{headerName: "상품타입"		, field: "goodsTypeNm"		, width: 100	, cellClass: 'text-center'	, hide: temp2},
 	{
 		headerName		: "옵션금액"		
 		, field			: "optAddPrice"			
@@ -310,8 +310,8 @@ var columnCancelReqList = [
 		}
 	},
 	{
-		headerName		: "선포인트"		
-		, field			: "prePntDcAmt"			
+		headerName		: "선포인트"
+		, field			: "prePntDcAmt"
 		, width			: 80		
 		, cellClass		: 'text-right'
 		, cellRenderer	: function (params) {
@@ -328,8 +328,8 @@ var columnCancelReqList = [
 		}
 	},
 	{
-		headerName		: "실결제금액"		
-		, field			: "realOrdAmt"			
+		headerName		: "실결제금액"
+		, field			: "realOrdAmt"
 		, width			: 100		
 		, cellClass		: 'text-right'
 		, cellRenderer	: function (params) {
@@ -768,7 +768,7 @@ var gridOptionsRefundAccountInfo = gagaAgGrid.getGridOptions(columnDefsRefundAcc
 // 현재 사유는 고객 입니다.
 var isCustomer = true;
 
-// 취소정보계산
+// 환불예상금액계산
 var fnCalculateRefundAmt = function (obj) {
 	// 변경신청목록
 	var cancelRequestTargetToBeList = [];
@@ -792,7 +792,20 @@ var fnCalculateRefundAmt = function (obj) {
 		return false;
 	}
 	
-	// 5. 추가정보설정
+	// 2021.05.25 수정
+	var ordDtlNoArr 		= [];
+	var cnclRtnReqQtyArr 	= [];
+	
+	// 1. 반품신청수량 체크
+	for (i=0 ; i<cancelRequestTargetList.length ; i++) {
+		if (cancelRequestTargetList[i].ordCanChgQty > 0) {
+			// 반품신청값설정
+			ordDtlNoArr.push(cancelRequestTargetList[i].ordDtlNo);
+			cnclRtnReqQtyArr.push(cancelRequestTargetList[i].ordCanChgQty);
+		}
+	}
+	
+	// 2. 추가정보설정
 	var chgerNm 	= orderInfoList[0].ordNm;
 	var chgerEmail 	= orderInfoList[0].ordEmail;
 	var chgerPhnno 	= orderInfoList[0].ordPhnno;
@@ -803,7 +816,8 @@ var fnCalculateRefundAmt = function (obj) {
 	// 환불금액계산호출
 	var jsonObj = {
 		"ordNo"					: ordNo
-		,"cancelReqList" 		: cancelRequestTargetList
+		,"ordDtlNoArr"			: ordDtlNoArr
+		,"cnclRtnReqQtyArr"		: cnclRtnReqQtyArr
 		,"isCustomer" 			: isCustomer
 		,"chgerNm"				: chgerNm
 		,"chgerEmail"			: chgerEmail
@@ -883,7 +897,7 @@ var fnChangeChgReason = function(reasonCd){
 		}
 	}
 	
-	// 귀책사유체크(회사,고객)
+	// 귀책사유설정
 	if (isCustomer) {
 		$("#imputeReason").text("고객");
 	} else {
@@ -892,13 +906,14 @@ var fnChangeChgReason = function(reasonCd){
 
 	$('#cancelRequestFrm input[name=chgReason]').val(reasonCd);
 	
-	//환불예정금액 계산
+	// 환불예상금액계산
 	fnCalculateRefundAmt();
 }
 
 // 취소신청/완료
 var fnCnclReq = function (reqGbn) {
 	var temp 					= false;
+	var custNo					= cancelRequestTargetList[0].custNo;
 	var ordDtlStat				= cancelRequestTargetList[0].ordDtlStat;
 	var allCanYn 				= "N";
 	var allCanYnBeforePayment	= "N";
@@ -907,24 +922,33 @@ var fnCnclReq = function (reqGbn) {
 	var accountNm 				= "";
 	var bankCd 					= "";
 	
+	// 취소완료, 취소승인
 	if (reqGbn == "cnclReq" || reqGbn == "cnclComplete") {
 		
-		// 1. 취소수량 체크
+		// 2021.05.25 수정
+		var ordDtlNoArr 		= [];
+		var cnclRtnReqQtyArr 	= [];
+		
+		// 1. 취소신청수량 체크
 		for (i=0 ; i<cancelRequestTargetList.length ; i++) {
 			if (cancelRequestTargetList[i].ordCanChgQty > 0) {
+				// 취소신청값설정
+				ordDtlNoArr.push(cancelRequestTargetList[i].ordDtlNo);
+				cnclRtnReqQtyArr.push(cancelRequestTargetList[i].ordCanChgQty);
+				
 				temp = true;
 			}
 		}
 		
 		if (temp == false) {
 			mcxDialog.alert('취소신청수량을 입력하세요.');
-			return;
+			return false;
 		}
 		
 		// 2. 입금대기건 & 전체취소 체크
 		if (ordDtlStat == "G013_10" && $("#spanPayAmt").text() != $("#spanRefundAmt").text()) {
 			alert("입금대기건은 전체 취소만 가능합니다.");
-			return;
+			return false;
 		}
 		
 		// 2.1 전체취소 여부 적용
@@ -940,25 +964,22 @@ var fnCnclReq = function (reqGbn) {
 		var chgReason = $("#cancelRequestFrm select[name=selectChgReason]").val();
 		if (gagajf.isNull(chgReason)) {
 			mcxDialog.alert("취소사유를 입력하세요."); 
-			return ;
+			return false;
 		}
 		
 		// 4. 환불계좌 체크
-		// 결제타입 무통장입금시 환불계좌 등록
+		// 결제타입이 무통장 입금일때 사용
 		if (payMeans == 'G014_20') {
 			var refundAccount = gridOptionsRefundAccountInfo.api.getSelectedRows();
-			
 			if (refundAccount.length == 0) {
 				mcxDialog.alert('선택된 행이 없습니다.');
-				return;
+				return false;
 			}
 			
 			accountNo 	= refundAccount[0].accountNo;
 			accountNm 	= refundAccount[0].accountNm;
 			bankCd 		= refundAccount[0].bankCd;
 		}
-	} else {
-		
 	}
 	
 	// 5. 추가정보설정
@@ -990,12 +1011,19 @@ var fnCnclReq = function (reqGbn) {
 		confirmStr 		= "요청번호 [" + ordChgSq + "] 에 대한 요청철회 처리를 하시겠습니까?";
 		cnclUrl 		= '/orderChange/cnclReqCancel/';
 	}
+	
+	// 7. 추가정보설정
+	var ordNm 		= orderInfoList[0].ordNm;
+	var ordPhnno 	= orderInfoList[0].ordPhnno;
+	var custNo		= orderInfoList[0].custNo;
+	var delvFeeCd	= orderInfoList[0].delvFeeCd;
 
 	var jsonObj = {
 		"ordNo"						: $('#cancelRequestFrm input[name=ordNo]').val()
 		,"chgReason" 				: $('#cancelRequestFrm input[name=chgReason]').val()
 		,"chgMemo"					: $('#chgMemo').val()
-		,"cancelReqList" 			: cancelRequestTargetList
+		,"ordDtlNoArr"				: ordDtlNoArr
+		,"cnclRtnReqQtyArr"			: cnclRtnReqQtyArr
 		,"accountNo" 				: accountNo
 		,"accountNm" 				: accountNm
 		,"bankCd" 					: bankCd
@@ -1009,11 +1037,12 @@ var fnCnclReq = function (reqGbn) {
 		,"chgerDtlAddr"				: ""
 		,"chgerPhnno"				: chgerPhnno
 		,"chgerTelno"				: chgerTelno
+		,"chgerRtnMemo"				: ""
 		,"reqGbn"					: reqGbn
 		,"ordChgSq"					: ordChgSq
 		,"custNo"					: custNo
-		,"ordNm"					: chgerNm
-		,"ordPhnno"					: chgerPhnno
+		,"ordNm"					: ordNm
+		,"ordPhnno"					: ordPhnno
 		,"delvFeeCd"				: delvFeeCd
 	}
 
@@ -1070,7 +1099,7 @@ $(document).ready(function() {
 	gagaAgGrid.hideStatusBar('gridDelvCdList');
 	gagaAgGrid.hideStatusBar('gridRefundAccountInfo');
 	
-	// 3. 환불정보계산
+	// 3. 환불예상금액계산
 	fnCalculateRefundAmt(null);
 	
 	// 4. 무통장입금아일때 환불계좌 그리드 숨김처리

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

@@ -734,7 +734,7 @@ var columnDefsOrderChangeInfo = [
 			return params.value == 'W' ? '회수요청' : '직접배송'; 
 		}
 	},
-	{headerName: "요청메모"		, field: "chgMemo"		, width: 150	, cellClass: 'text-center'},
+	{headerName: "요청메모"		, field: "chgMemo"		, width: 150	, cellClass: 'text-left'},
 	{headerName: "변경자명"		, field: "chgerNm"		, width: 100	, cellClass: 'text-center'},
 	{headerName: "변경자핸드폰"		, field: "chgerPhnno"	, width: 120	, cellClass: 'text-center', editable: true},
 	{

+ 81 - 35
src/main/webapp/WEB-INF/views/order/RtnReqForm.html

@@ -3,7 +3,7 @@
 <!--
  *******************************************************************************
  * @source  : RtnReqForm.html
- * @desc    : 반품청 화면
+ * @desc    : 반품청 화면
  *============================================================================
  * STYLE24
  * Copyright(C) 2019 TSIT, All rights reserved.
@@ -209,13 +209,14 @@ var delvFeeCd				= [[${delvFeeCd}]];								// 배송정책코드
 var orderInfoList 			= [[${orderInfoList}]];							// 주문기본정보
 var orderDelvRtnAddrInfo	= [[${orderDelvRtnAddrInfo}]];					// 회수지정보
 var orderChangeDetailList 	= [[${orderChangeDetailList}]];					// 취소/반품/교환요청 정보
+var chgStat					= [[${chgStat}]];								// 변경상태
 var payGb 					= orderInfoList[0].payGb;						// 결제수단
 var payMeans 				= orderInfoList[0].payMeans;					// 결제방법
 var chgReason				= "";											// 변경사유코드
 var chgMemo					= "";											// 변경사유메모
-var wdGb;																	// 회수방법
+var wdGb					= "";											// 회수방법
 
-// 변경요청정보 승인, 철회
+// 변경요청정보
 if (ordChgSq > 0) {
 	chgReason				= orderChangeDetailList[0].chgReason;			// 변경사유코드
 	chgMemo					= orderChangeDetailList[0].chgMemo;				// 변경사유메모
@@ -226,7 +227,7 @@ var temp1 = true;
 var temp2 = false;
 var temp3 = true;
 
-//1. 주문정보(변경요청가능대상)
+// 1. 주문정보(변경요청가능대상)
 var columnCancelReqList = [
 	{headerName: "주문번호"		, field: "ordNo"			, width: 80		, cellClass: 'text-center'	, hide: temp1},
 	{headerName: "주문상세"		, field: "ordDtlNo"			, width: 80		, cellClass: 'text-center'}	,
@@ -829,7 +830,7 @@ var gridOptionsRefundAccountInfo = gagaAgGrid.getGridOptions(columnDefsRefundAcc
 // 현재 사유는 고객 입니다.
 var isCustomer = true;
 
-// 환불금액게
+// 환불예상금액계
 var fnCalculateRefundAmt = function (obj) {
 	// 변경신청목록
 	var cancelRequestTargetToBeList = [];
@@ -852,8 +853,21 @@ var fnCalculateRefundAmt = function (obj) {
 		uifnPopupClose('popupReturnRequestForm');
 		return false;
 	}
+	
+	// 2021.05.25 수정
+	var ordDtlNoArr 		= [];
+	var cnclRtnReqQtyArr 	= [];
+	
+	// 1. 반품신청수량 체크
+	for (i=0 ; i<cancelRequestTargetList.length ; i++) {
+		if (cancelRequestTargetList[i].ordCanChgQty > 0) {
+			// 반품신청값설정
+			ordDtlNoArr.push(cancelRequestTargetList[i].ordDtlNo);
+			cnclRtnReqQtyArr.push(cancelRequestTargetList[i].ordCanChgQty);
+		}
+	}
 
-	// 5. 추가정보설정
+	// 2. 추가정보설정
 	var chgerNm 	= orderInfoList[0].ordNm;
 	var chgerEmail 	= orderInfoList[0].ordEmail;
 	var chgerPhnno 	= orderInfoList[0].ordPhnno;
@@ -864,7 +878,8 @@ var fnCalculateRefundAmt = function (obj) {
 	// 환불금액계산호출
 	var jsonObj = {
 		"ordNo"					: ordNo
-		,"cancelReqList" 		: cancelRequestTargetList
+		,"ordDtlNoArr"			: ordDtlNoArr
+		,"cnclRtnReqQtyArr"		: cnclRtnReqQtyArr
 		,"isCustomer" 			: isCustomer
 		,"chgerNm"				: chgerNm
 		,"chgerEmail"			: chgerEmail
@@ -934,7 +949,7 @@ var fnCalculateRefundAmt = function (obj) {
 	);
 }
 
-//  사유
+// 귀책사유설정
 var fnChangeChgReason = function(reasonCd){
 	var customerReasonArr = ['G688_10'];
 
@@ -947,7 +962,7 @@ var fnChangeChgReason = function(reasonCd){
 		}
 	}
 	
-	// 귀책사유체크(회사,고객)
+	// 귀책사유설정
 	if (isCustomer) {
 		$("#imputeReason").text("고객");
 	} else {
@@ -956,7 +971,7 @@ var fnChangeChgReason = function(reasonCd){
 
 	$('#cancelRequestFrm input[name=chgReason]').val(reasonCd);
 	
-	//환불예정금액 계산
+	// 환불예상금액계산
 	fnCalculateRefundAmt();
 }
 
@@ -989,13 +1004,24 @@ var fnCnclReq = function (reqGbn) {
 	var chgerEmail 		= "";
 	var chgerRtnMemo	= "";
 	
+	// 반품신청
 	if (reqGbn == "rtnReq") {
+		
+		// 2021.05.25 수정
+		var ordDtlNoArr 		= [];
+		var cnclRtnReqQtyArr 	= [];
+		
 		// 1. 반품신청수량 체크
 		for (i=0 ; i<cancelRequestTargetList.length ; i++) {		
 			if (cancelRequestTargetList[i].ordCanChgQty > 0) {
+				// 반품신청값설정
+				ordDtlNoArr.push(cancelRequestTargetList[i].ordDtlNo);
+				cnclRtnReqQtyArr.push(cancelRequestTargetList[i].ordCanChgQty);
+				
 				temp = true;
 			}
 		}
+		
 		if (temp == false) {
 			mcxDialog.alert('반품신청수량을 선택하세요.');
 			return false;
@@ -1066,20 +1092,14 @@ var fnCnclReq = function (reqGbn) {
 				chgerTelno = chgerTelno1 + '-' + chgerTelno2 + '-' + chgerTelno3;
 			}
 		}
-	} else {
-		
 	}
 	
 	// 2021.01.26 화면통합
-	// 6. 취소신청, 취소완료 여부 체크
+	// 5. 반품신청, 반품철회
 	// 반품신청
 	if (reqGbn == "rtnReq") {
 		confirmStr 		= "반품신청하시겠습니까?";
 		cnclUrl 		= '/orderChange/rtnReq/';
-	}
-	// 반품신청승인
-	else if (reqGbn == "rtnReqComplete") {
-
 	}
 	// 반품신청철회
 	else if (reqGbn == "rtnReqCancel") {
@@ -1097,7 +1117,8 @@ var fnCnclReq = function (reqGbn) {
 		"ordNo"						: $('#cancelRequestFrm input[name=ordNo]').val()
 		,"chgReason" 				: $('#cancelRequestFrm input[name=chgReason]').val()
 		,"chgMemo"					: $('#chgMemo').val()
-		,"cancelReqList" 			: cancelRequestTargetList
+		,"ordDtlNoArr"				: ordDtlNoArr
+		,"cnclRtnReqQtyArr"			: cnclRtnReqQtyArr
 		,"accountNo" 				: accountNo
 		,"accountNm" 				: accountNm
 		,"bankCd" 					: bankCd
@@ -1176,17 +1197,30 @@ var fnOpenDaumAddr = function() {
 	cfnOpenDaumAddr(daumZip);
 }
 
-// 회수지정보 셋팅
+// 회수지정보 설정
 var fnSetChger = function(){
-	var data = orderDelvRtnAddrInfo[0];
-	var spRecipPhnno = (data.recipPhnno != null) ? data.recipPhnno.split('-') : null;
-	var spRecipTelno = (data.recipTelno != null) ? data.recipTelno.split('-') : null;
+	var data 			= orderDelvRtnAddrInfo[0];
+	var spRecipPhnno 	= (data.recipPhnno != null) ? data.recipPhnno.split('-') : null;
+	var spRecipTelno 	= (data.recipTelno != null) ? data.recipTelno.split('-') : null;
 	
-	$("#cancelRequestFrm input[name=chgerNm]").val(data.recipNm);
-	$("#cancelRequestFrm input[name=chgerZipcode]").val(data.recipZipcode);
-	$("#cancelRequestFrm input[name=chgerBaseAddr]").val(data.recipBaseAddr);
-	$("#cancelRequestFrm input[name=chgerDtlAddr]").val(data.recipDtlAddr);
-	$("#cancelRequestFrm textarea[name=chgerRtnMemo]").val(data.chgerRtnmemo);
+	// 반품상세화면일때적용
+	if (ordChgSq > 0) {
+		data = orderChangeDetailList[0];
+		spRecipPhnno 	= (data.chgerPhnno != null) ? data.chgerPhnno.split('-') : null;
+		spRecipTelno 	= (data.chgerTelno != null) ? data.chgerTelno.split('-') : null;
+		
+		$("#cancelRequestFrm input[name=chgerNm]").val(data.chgerNm);
+		$("#cancelRequestFrm input[name=chgerZipcode]").val(data.chgerZipcode);
+		$("#cancelRequestFrm input[name=chgerBaseAddr]").val(data.chgerBaseAddr);
+		$("#cancelRequestFrm input[name=chgerDtlAddr]").val(data.chgerDtlAddr);
+		$("#cancelRequestFrm textarea[name=chgerRtnMemo]").val(data.chgerRtnMemo);
+	} else {
+		$("#cancelRequestFrm input[name=chgerNm]").val(data.recipNm);
+		$("#cancelRequestFrm input[name=chgerZipcode]").val(data.recipZipcode);
+		$("#cancelRequestFrm input[name=chgerBaseAddr]").val(data.recipBaseAddr);
+		$("#cancelRequestFrm input[name=chgerDtlAddr]").val(data.recipDtlAddr);
+		$("#cancelRequestFrm textarea[name=chgerRtnMemo]").val(data.chgerRtnMemo);
+	}
 	
 	if (spRecipPhnno) {
 		$("#cancelRequestFrm select[name=chgerPhnno1]").val(spRecipPhnno[0]);
@@ -1214,7 +1248,7 @@ var fnSetChger = function(){
 	}
 }
 
-// 회수방법 라디오 클릭 이벤트
+// 회수방법설청이벤트
 var fnChangeWdGb = function(param) {
 	let wdGb = $(param).val();
 	
@@ -1238,43 +1272,55 @@ $(document).ready(function() {
 	
 	gridOptionsCancelReqList.api.setRowData(cancelRequestTargetList);
 	
-	// 2.1 TOTAL ROWS 없애기
+	// 1.1 TOTAL ROWS 없애기
 	gagaAgGrid.hideStatusBar('gridOrderCancelRequestList');
 	gagaAgGrid.hideStatusBar('gridOrderCancelRequestToBeList');
 	gagaAgGrid.hideStatusBar('gridDelvCdList');
 	gagaAgGrid.hideStatusBar('gridRefundAccountInfo');
 	
+	// 2. 회수구분처리
 	if (wdGb == 'D') {
 		$('input:radio[name="wdGb"]:radio[value="D"]').prop('checked', true);
 	} else {
 		$('input:radio[name="wdGb"]:radio[value="W"]').prop('checked', true);
 	}
 	
-	// 4. 무통장입금아일때 환불계좌 그리드 숨김처리
+	// 3. 무통장입금아닐때 환불계좌 목록 숨김처리
 	if (payMeans !== 'G014_20') {
 		$('#wrapRefundAccount').addClass("off");
 		fnBindOrderRfAccountInfo();
 	}
 	
-	// 5. 회수지정보설정
+	// 4. 회수지정보설정
 	fnSetChger();
 	
-	// 6. 반품신청, 반품승인, 반품철회 버튼 제어
+	// 5. 반품신청, 반품철회 버튼 제어
 	if (ordChgSq > 0) {
 		$("#rtnReqBtn").css("display", "none");
+		
+		// 2021.05.25 반품접수, 반품대기 상태에서만 철회가능
+		if (chgStat != "G685_50" && chgStat != "G685_51") {
+			$("#rtnReqCancelBtn").css("display", "none");
+		}
+		
+		// 직접발송일때 회수지정보 숨김처리
+		if (wdGb == "D") {
+			$("#chgerAdress").css("display", "none");
+		}
 	} else {
 		$("#rtnReqCompleteBtn").css("display", "none");
 		$("#rtnReqCancelBtn").css("display", "none");
 	}
 	
-	// 7. 취소사유 선택
+	// 6. 취소사유 선택
 	if (ordChgSq > 0) {
 		$("select[name='selectChgReason']").val(chgReason);										// 변경사유코드
 		$("select[name='selectChgReason']").attr('disabled', true);								// 변경사유 비활성화
 		$("#chgMemo").text(chgMemo);															// 변경사유메모
 		$("#chgMemo").attr('readOnly', true);													// 변경사유메모 비활성화
-		fnChangeChgReason(chgReason);															// 귀책사유
 		$('input:radio[name=wdGb]').attr('disabled', true);										// 회수방법 비활성화
+		
+		fnChangeChgReason(chgReason);															// 귀책사유
 	}
 	
 	// debug mode 해제
@@ -1285,7 +1331,7 @@ $(document).ready(function() {
 		$("#gridDelvCdList").css("display", "none");
 	}
 	
-	// 3. 환불정보계산
+	// 7. 환불예상금액계산
 	fnCalculateRefundAmt(null);
 });
 </script>