Sfoglia il codice sorgente

Merge branch 'card007' into develop

card007 4 anni fa
parent
commit
7b2f445b18

+ 146 - 30
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -1,9 +1,9 @@
 package com.style24.admin.biz.web;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
 
-import com.style24.core.biz.service.*;
-import com.style24.persistence.domain.Payment;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -22,11 +22,19 @@ import com.style24.admin.biz.service.TsaOrderChangeService;
 import com.style24.admin.biz.service.TsaRendererService;
 import com.style24.admin.support.controller.TsaBaseController;
 import com.style24.admin.support.security.session.TsaSession;
+import com.style24.core.biz.service.TscKakaotalkService;
+import com.style24.core.biz.service.TscKcpService;
+import com.style24.core.biz.service.TscMailService;
+import com.style24.core.biz.service.TscNaverPayService;
+import com.style24.core.biz.service.TscOrderChangeService;
+import com.style24.core.biz.service.TscOrderRefundService;
+import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.domain.CustAccount;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
+import com.style24.persistence.domain.Payment;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -318,16 +326,38 @@ public class TsaOrderChangeController extends TsaBaseController {
 		List<Order> orderChangeDetailList 			= coreOrderChangeService.getOrderChangeDetailList(order);
 		Collection<Order> orderInfoList 			= coreOrderService.getOrderInfoList(order);
 
-		if (order.getOrdChgSq() > 0) {
-			Collection<Order> exchangeInfoList = coreOrderChangeService.getExchangeInfo(order);
-			mav.addObject("exchangeInfoList"		, exchangeInfoList);											// 교환정보
-			mav.addObject("ordChgGb"				, order.getOrdChgGb());											// 주문변경요쳥변경구분
-		}
-		
 		String chgStat = "";
-		for (Order tmp : cancelRequestTargetList) {
-			if (StringUtils.isNotBlank(tmp.getChgStat())) {
-				chgStat = tmp.getChgStat();
+		if (order.getOrdChgSq() > 0) {
+			String ordChgGb = order.getOrdChgGb();
+			// Collection<Order> exchangeInfoList = coreOrderChangeService.getExchangeInfo(order);
+			// mav.addObject("exchangeInfoList"		, exchangeInfoList);											// 교환정보
+			mav.addObject("ordChgGb"				, StringUtils.isBlank(ordChgGb) ? "" : ordChgGb);				// 주문변경요쳥변경구분
+
+			// 반품상세 정보 설정
+			List<Integer> ordDtlNoList = new ArrayList<>();
+			List<Integer> chgQtyList = new ArrayList<>();
+			if (orderChangeDetailList != null && orderChangeDetailList.size() > 0) {
+				for (Order tmp : orderChangeDetailList) {
+					if (tmp.getChgQty() > 0 && !ordDtlNoList.contains(tmp.getOrdDtlNo())) {
+						ordDtlNoList.add(tmp.getOrdDtlNo());
+						chgQtyList.add(tmp.getChgQty());
+
+						if (StringUtils.isNotBlank(tmp.getChgStat())) {
+							chgStat = tmp.getChgStat();
+						}
+					}
+				}
+
+				List<Order> tmpList = new ArrayList<>();
+				for (Order tmp : cancelRequestTargetList) {
+					if(ordDtlNoList.contains(tmp.getOrdDtlNo())) {
+						int chgQty = chgQtyList.get(ordDtlNoList.indexOf(tmp.getOrdDtlNo()));
+						tmp.setChgQty(chgQty);
+						tmpList.add(tmp);
+					}
+				}
+
+				cancelRequestTargetList = tmpList;
 			}
 		}
 
@@ -613,45 +643,60 @@ public class TsaOrderChangeController extends TsaBaseController {
 		order.setOrdDtlStatArr(ordDtlStatArr);
 
 		Collection<Order> cancelRequestTargetList = coreOrderChangeService.getCancelRequestTargetList(order);
+		Collection<Order> orderChangeDetailList = coreOrderChangeService.getOrderChangeDetailList(order);
 		Collection<Order> orderInfoList = coreOrderService.getOrderInfoList(order);
 
+		String chgStat = "";
 		if (order.getOrdChgSq() > 0) {
+			String ordChgGb = order.getOrdChgGb();
 			Collection<Order> exchangeInfoList = coreOrderChangeService.getExchangeInfo(order);
-			mav.addObject("exchangeInfoList"		, exchangeInfoList);								// 교환정보
-
-			// 반품TO교환 주문정보 설정
+			// 교환상세 정보 설정
 			List<Integer> ordDtlNoList = new ArrayList<>();
-			if (exchangeInfoList != null && exchangeInfoList.size() > 0) {
-				String chgGb = exchangeInfoList.iterator().next().getChgGb();
-				mav.addObject("chgGb", chgGb);
-
-				if (TscConstants.OrderChangeGb.RETURN.value().equals(chgGb)) {
-					for (Order tmp : exchangeInfoList) {
-						if (tmp.getChgQty() > 0 && !ordDtlNoList.contains(tmp.getOrdDtlNo())) {
-							ordDtlNoList.add(tmp.getOrdDtlNo());
+			List<Integer> chgQtyList = new ArrayList<>();
+			if (orderChangeDetailList != null && orderChangeDetailList.size() > 0) {
+				for (Order tmp : orderChangeDetailList) {
+					if (tmp.getChgQty() > 0 && !ordDtlNoList.contains(tmp.getOrdDtlNo())) {
+						ordDtlNoList.add(tmp.getOrdDtlNo());
+						chgQtyList.add(tmp.getChgQty());
+
+						if (StringUtils.isNotBlank(tmp.getChgStat())) {
+							chgStat = tmp.getChgStat();
 						}
 					}
+				}
 
-					Collection<Order> tmpList = new ArrayList<>();
-					for (Order tmp : cancelRequestTargetList) {
-						if(ordDtlNoList.contains(tmp.getOrdDtlNo())) {
-							tmpList.add(tmp);
-						}
+				Collection<Order> tmpList = new ArrayList<>();
+				for (Order tmp : cancelRequestTargetList) {
+					if(ordDtlNoList.contains(tmp.getOrdDtlNo())) {
+						int chgQty = chgQtyList.get(ordDtlNoList.indexOf(tmp.getOrdDtlNo()));
+						tmp.setChgQty(chgQty);
+						tmpList.add(tmp);
 					}
-
-					cancelRequestTargetList = tmpList;
 				}
+
+				cancelRequestTargetList = tmpList;
+			}
+
+			String chgOrdDtlStat = "";
+			if (exchangeInfoList != null && exchangeInfoList.size() > 0) {
+				chgOrdDtlStat = exchangeInfoList.iterator().next().getOrdDtlStat();
 			}
+
+			mav.addObject("exchangeInfoList"		, exchangeInfoList);								// 교환정보
+			mav.addObject("ordChgGb"				, StringUtils.isBlank(ordChgGb) ? "" : ordChgGb);	// 주문변경요쳥변경정보
+			mav.addObject("chgOrdDtlStat"			, chgOrdDtlStat);									// 교환상품상세상태
 		}
 
 		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G689"));	// 교환사유
 		mav.addObject("cancelRequestTargetList"		, cancelRequestTargetList);							// 교환요청대상 목록
+		mav.addObject("orderChangeDetailList"		, orderChangeDetailList);							// 변경신청목록 (취소/반품/교환)
 		mav.addObject("orderInfoList"				, orderInfoList);									// 주문정보
 		mav.addObject("ordNo"						, order.getOrdNo());								// 주문번호
 		mav.addObject("ordChgSq"					, order.getOrdChgSq());								// 주문변경번호
 		mav.addObject("orderDelvAddrInfo"			, coreOrderService.getDeliveryAddrList(order));		// 배송정보
 		mav.addObject("TelExcNoList"				, rendererService.getAvailCommonCodeList("G095"));	// 전화번호국번
 		mav.addObject("PhnExcNoList"				, rendererService.getAvailCommonCodeList("G096"));	// (휴대전화)번호국번
+		mav.addObject("chgStat"						, chgStat);											// 변경상태
 
 		mav.setViewName("order/ExchangeRequestForm");
 
@@ -781,6 +826,77 @@ public class TsaOrderChangeController extends TsaBaseController {
 
 		return super.ok();
 	}
+
+	/**
+	 * 반품TO반품 처리
+	 *
+	 * @param OrderChange
+	 * @return GagaResponse
+	 * @author card007
+	 * @since 2021. 06. 24
+	 */
+	@PostMapping("/return/to/return")
+	@ResponseBody
+	public GagaResponse returnToReturn(@RequestBody OrderChange orderChange) {
+		int userNo = TsaSession.getInfo().getUserNo();
+		orderChange.setUserNo(userNo);
+		orderChange.setRegNo(userNo);
+		orderChange.setUpdNo(userNo);
+
+		orderChangeService.returnToReturn(orderChange);
+
+		return super.ok();
+	}
+
+	/**
+	 * 교환TO교환 처리
+	 *
+	 * @param OrderChange
+	 * @return GagaResponse
+	 * @author card007
+	 * @since 2021. 06. 24
+	 */
+	@PostMapping("/exchange/to/exchange")
+	@ResponseBody
+	public GagaResponse exchangeToExchange(@RequestBody OrderChange orderChange) {
+		int userNo = TsaSession.getInfo().getUserNo();
+		orderChange.setUserNo(userNo);
+		orderChange.setRegNo(userNo);
+		orderChange.setUpdNo(userNo);
+
+		orderChangeService.exchangeToExchange(orderChange);
+
+		return super.ok();
+	}
+
+	/**
+	 * 회수지 정보 수정
+	 *
+	 * @param OrderChange
+	 * @return GagaMap
+	 * @author card007
+	 * @since 2021. 04. 13
+	 */
+	@PostMapping("/change/chger/addr")
+	@ResponseBody
+	public GagaMap changeChgerAddr(@RequestBody OrderChange orderChange) {
+		GagaMap result = new GagaMap();
+		result.set("status", GagaResponseStatus.SUCCESS.getCode());
+		result.set("message", message.getMessage("DELV_0003"));
+
+		try {
+			orderChange.setUpdNo(TsaSession.getInfo().getUserNo());
+			coreOrderChangeService.updateChgerAddr(orderChange);
+
+			// TODO
+			// WMS IF TABLE 내 정보 업데이트 처리 필요
+		} catch (Exception e) {
+			result.set("status", GagaResponseStatus.FAIL.getCode());
+			result.set("message", message.getMessage("FAIL_0002"));
+		}
+
+		return result;
+	}
 }
 
 

+ 96 - 73
src/main/resources/i18n/messages/message_ko_KR.properties

@@ -1,81 +1,104 @@
 ## -----------------------------------------------------------------------------
 ## Message properties
 ## -----------------------------------------------------------------------------
-SUCC_0001=\uc131\uacf5\uc801\uc73c\ub85c \uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-SUCC_0002=\uc131\uacf5\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-SUCC_0003=\uc131\uacf5\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-SUCC_0004=\uc131\uacf5\uc801\uc73c\ub85c \ucc98\ub9ac\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-SUCC_0005=\uc131\uacf5\uc801\uc73c\ub85c \ubc1c\uc1a1\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-SUCC_0006=\uc131\uacf5\uc801\uc73c\ub85c \ubc1c\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-SUCC_0007=\uc131\uacf5\uc801\uc73c\ub85c \uc5c5\ub85c\ub4dc \ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-#SUCC_0008=\uc131\uacf5\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-SUCC_0009=\uc131\uacf5\uc801\uc73c\ub85c \ubcc0\uacbd\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-SUCC_0010=\uc131\uacf5\uc801\uc73c\ub85c \uac31\uc2e0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+SUCC_0001=\uC131\uACF5\uC801\uC73C\uB85C \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+SUCC_0002=\uC131\uACF5\uC801\uC73C\uB85C \uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+SUCC_0003=\uC131\uACF5\uC801\uC73C\uB85C \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+SUCC_0004=\uC131\uACF5\uC801\uC73C\uB85C \uCC98\uB9AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+SUCC_0005=\uC131\uACF5\uC801\uC73C\uB85C \uBC1C\uC1A1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+SUCC_0006=\uC131\uACF5\uC801\uC73C\uB85C \uBC1C\uD589\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+SUCC_0007=\uC131\uACF5\uC801\uC73C\uB85C \uC5C5\uB85C\uB4DC \uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+#SUCC_0008=\uC131\uACF5\uC801\uC73C\uB85C \uB4F1\uB85D\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+SUCC_0009=\uC131\uACF5\uC801\uC73C\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+SUCC_0010=\uC131\uACF5\uC801\uC73C\uB85C \uAC31\uC2E0\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
 
-FAIL_0001=\uc624\ub958\ub85c \uc778\ud574 \uc800\uc7a5\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
-FAIL_0002=\uc624\ub958\ub85c \uc778\ud574 \uc218\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
-FAIL_0003=\uc624\ub958\ub85c \uc778\ud574 \uc0ad\uc81c\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
-FAIL_0004=\uc624\ub958\ub85c \uc778\ud574 \ucc98\ub9ac\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
-FAIL_0005=\uc624\ub958\ub85c \uc778\ud574 \ubc1c\uc1a1\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
-FAIL_0006=\uc624\ub958\ub85c \uc778\ud574 \ubc1c\ud589\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
-FAIL_0007=\uc624\ub958\ub85c \uc778\ud574 \uc5c5\ub85c\ub4dc \ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
-#FAIL_0008=\uc624\ub958\ub85c \uc778\ud574 \ub4f1\ub85d\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
-FAIL_0009=\uc624\ub958\ub85c \uc778\ud574 \ubcc0\uacbd\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
-FAIL_1001=\uc800\uc7a5\ud560 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
-FAIL_1002=\uc804\uc1a1\ud560 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
-FAIL_1003=\uc5d1\uc140\ub2e4\uc6b4\ub85c\ub4dc\ud560 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
-FAIL_1004=\uc0ad\uc81c\ud560 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
+FAIL_0001=\uC624\uB958\uB85C \uC778\uD574 \uC800\uC7A5\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+FAIL_0002=\uC624\uB958\uB85C \uC778\uD574 \uC218\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+FAIL_0003=\uC624\uB958\uB85C \uC778\uD574 \uC0AD\uC81C\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+FAIL_0004=\uC624\uB958\uB85C \uC778\uD574 \uCC98\uB9AC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+FAIL_0005=\uC624\uB958\uB85C \uC778\uD574 \uBC1C\uC1A1\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+FAIL_0006=\uC624\uB958\uB85C \uC778\uD574 \uBC1C\uD589\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+FAIL_0007=\uC624\uB958\uB85C \uC778\uD574 \uC5C5\uB85C\uB4DC \uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+#FAIL_0008=\uC624\uB958\uB85C \uC778\uD574 \uB4F1\uB85D\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+FAIL_0009=\uC624\uB958\uB85C \uC778\uD574 \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+FAIL_1001=\uC800\uC7A5\uD560 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
+FAIL_1002=\uC804\uC1A1\uD560 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
+FAIL_1003=\uC5D1\uC140\uB2E4\uC6B4\uB85C\uB4DC\uD560 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
+FAIL_1004=\uC0AD\uC81C\uD560 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
 
-LOGN_0001=\uc785\ub825\ud558\uc2e0 \uc815\ubcf4\ub85c \uac00\uc785\ub41c \ub0b4\uc5ed\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
-LOGN_0002=\ube44\ubc00\ubc88\ud638\uac00 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
-LOGN_0003=\ub85c\uadf8\uc778 \uc0c1\ud0dc\uac00 \uc544\ub2d9\ub2c8\ub2e4. \ub2e4\uc2dc \ub85c\uadf8\uc778 \ud574\uc8fc\uc138\uc694.
-LOGN_0004=\ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud55c \ub0a0\ub85c\ubd80\ud130 3\uac1c\uc6d4\uc774 \uacbd\uacfc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-LOGN_0005=\uc811\uc18d \uac00\ub2a5\ud55c IP\uc8fc\uc18c\uac00 \uc544\ub2d9\ub2c8\ub2e4.
+LOGN_0001=\uC785\uB825\uD558\uC2E0 \uC815\uBCF4\uB85C \uAC00\uC785\uB41C \uB0B4\uC5ED\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.
+LOGN_0002=\uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+LOGN_0003=\uB85C\uADF8\uC778 \uC0C1\uD0DC\uAC00 \uC544\uB2D9\uB2C8\uB2E4. \uB2E4\uC2DC \uB85C\uADF8\uC778 \uD574\uC8FC\uC138\uC694.
+LOGN_0004=\uBE44\uBC00\uBC88\uD638\uB97C \uBCC0\uACBD\uD55C \uB0A0\uB85C\uBD80\uD130 3\uAC1C\uC6D4\uC774 \uACBD\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+LOGN_0005=\uC811\uC18D \uAC00\uB2A5\uD55C IP\uC8FC\uC18C\uAC00 \uC544\uB2D9\uB2C8\uB2E4.
 
-##\uc8fc\ubb38
-ORDER_0001=\uc8fc\ubb38\uc815\ubcf4\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
-ORDER_0002=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\uacb0\uc81c\uc644\ub8cc][\ucd9c\uace0\uc644\ub8cc] \uc0c1\ud0dc\uc5d0\uc11c\ub9cc \uc0c1\ud488\uc900\ube44\uc911\uc73c\ub85c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-ORDER_0003=\ud574\ub2f9 \uc0c1\ud488 \ube0c\ub79c\ub4dc \uc218\uc815 \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
-ORDER_0004=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\uc0c1\ud488\uc900\ube44\uc911][\uad6c\ub9e4\ud655\uc815] \uc0c1\ud0dc\uc5d0\ub9cc \uc1a1\uc7a5\ubc88\ud638\ub97c \uc785\ub825\ud558\uc2e4\uc218 \uc788\uc2b5\ub2c8\ub2e4.
-ORDER_0005=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\ucd9c\uace0\uc644\ub8cc]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \uad6c\ub9e4\ud655\uc815 \uc0c1\ud0dc\ub85c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-ORDER_0006=\uad6c\ub9e4\ud655\uc815\uc744 \ud558\uc2e4\uc218 \uc788\ub294 \uc0c1\ud488\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. \n\ubc18\ud488\uc774\ub098 \uad50\ud658\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.
-ORDER_0007=\uc8fc\ubb38 \uc804\uccb4\ucde8\uc18c\ub97c \ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n\uad50\ud658,\ubc18\ud488,\ucde8\uc18c\uc911\uc778 \uc0c1\ud488\uc774 \uc788\ub294\uc9c0 \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
-ORDER_0008=\ud0c0 \uc5c5\uccb4\uc758 \uc0c1\ud488\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc804\uccb4 \ubc18\ud488\uc744 \uc9c4\ud589\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-ORDER_0009=\ud3ec\uc778\ud2b8 \uc6d0\ubcf5 \ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4.
-ORDER_0010=\uacb0\uc81c \ucde8\uc18c\ub97c \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
-ORDER_0011=\uce74\ub4dc \uacb0\uc81c\uc778 \uacbd\uc6b0\uc5d0\ub9cc \ubd80\ubd84\ucde8\uc18c\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0012=\ucde8\uc18c\uc218\ub7c9\uc744 \ud655\uc778\ud574\uc8fc\uc138\uc694. \ucde8\uc18c\uac00\ub2a5 \uc218\ub7c9\ubcf4\ub2e4 \ub9ce\uc2b5\ub2c8\ub2e4.
-ORDER_0013=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\uacb0\uc81c\uc644\ub8cc][\uc0c1\ud488\uc900\ube44\uc911]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \ubd80\ubd84\ucde8\uc18c\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0014=\ucd9c\uace0\uc644\ub8cc\ub97c \ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n\uc8fc\ubb38 \ucde8\uc18c\uc2e0\uccad\ub41c \uc8fc\ubb38\uc744 \uba3c\uc800 \ucc98\ub9ac\ud574\uc8fc\uc2dc\uae30\ubc14\ub78d\ub2c8\ub2e4.
-ORDER_0015=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\ucd9c\uace0\uc644\ub8cc]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \uc8fc\ubb38\uad50\ud658\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0016=\uad50\ud658\uc218\ub7c9\uc744 \ud655\uc778\ud574\uc8fc\uc138\uc694.\uad50\ud658\uac00\ub2a5 \uc218\ub7c9\ubcf4\ub2e4 \ub9ce\uc2b5\ub2c8\ub2e4.
-ORDER_0017=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\uad50\ud658\uc2e0\uccad]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \uad50\ud658\uc9c4\ud589\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0018=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\uad50\ud658\uc9c4\ud589]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \uad50\ud658\uc644\ub8cc\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0019=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\uad50\ud658\uc2e0\uccad]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \uad50\ud658\ubc18\ub824\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0020=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\ubc18\ud488\uc2e0\uccad]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \ubc18\ud488\uc9c4\ud589\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0021=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\ubc18\ud488\uc9c4\ud589]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \ubc18\ud488\uc644\ub8cc\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0022=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\ubc18\ud488\uc2e0\uccad]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \ubc18\ud488\ubc18\ub824\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0023=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\ucde8\uc18c\uc2e0\uccad]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \ucde8\uc18c\ubc18\ub824\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0024=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\ucde8\uc18c\uc2e0\uccad]\uc0c1\ud0dc\uc5d0\uc11c\ub9cc \ucde8\uc18c\uc644\ub8cc\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.
-ORDER_0025=\ubc18\ud488\uc218\ub7c9\uc744 \ud655\uc778\ud574\uc8fc\uc138\uc694. \ubc18\ud488\uac00\ub2a5 \uc218\ub7c9\ubcf4\ub2e4 \ub9ce\uc2b5\ub2c8\ub2e4.
-ORDER_0026=\uc8fc\ubb38 \uc804\uccb4\ubc18\ud488\uc744 \ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n\uad50\ud658,\ubc18\ud488,\ucde8\uc18c\uc911\uc778 \uc0c1\ud488\uc774 \uc788\ub294\uc9c0 \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
-ORDER_0027=\uc8fc\ubb38\uc0c1\ud0dc\ub97c \ud655\uc778\ud574\uc8fc\uc138\uc694.\n[\uc0c1\ud488\uc900\ube44\uc911] \uc0c1\ud0dc\uc5d0\uc11c\ub9cc \uacb0\uc81c\uc644\ub8cc \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-ORDER_0028=\uacb0\uc81c \uc644\ub8cc \uc0c1\ud0dc\ub85c \ubcc0\uacbd\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n\ucde8\uc18c,\ubc18\ud488\uc774 \uc644\ub8cc\ub41c \uc8fc\ubb38\uc785\ub2c8\ub2e4.
-ORDER_0029=\uc8fc\ubb38 \uc0c1\ud0dc\ub97c \ud655\uc778\ud574 \uc8fc\uc138\uc694. [\ucd9c\uace0\uc911][\uad6c\ub9e4\ud655\uc815]\uc0c1\ud0dc\uc778 \uc8fc\ubb38\uac74\uc774 \uc788\uc2b5\ub2c8\ub2e4.
-ORDER_0030=\ud544\uc218\uac12\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
-ORDER_0031=\uc8fc\ubb38\uc804\uccb4\ucde8\uc18c \ucc98\ub9ac\uac00 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+##\uC8FC\uBB38
+ORDER_0001=\uC8FC\uBB38\uC815\uBCF4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
+ORDER_0002=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uACB0\uC81C\uC644\uB8CC][\uCD9C\uACE0\uC644\uB8CC] \uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uC0C1\uD488\uC900\uBE44\uC911\uC73C\uB85C \uBCC0\uACBD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
+ORDER_0003=\uD574\uB2F9 \uC0C1\uD488 \uBE0C\uB79C\uB4DC \uC218\uC815 \uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.
+ORDER_0004=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uC0C1\uD488\uC900\uBE44\uC911][\uAD6C\uB9E4\uD655\uC815] \uC0C1\uD0DC\uC5D0\uB9CC \uC1A1\uC7A5\uBC88\uD638\uB97C \uC785\uB825\uD558\uC2E4\uC218 \uC788\uC2B5\uB2C8\uB2E4.
+ORDER_0005=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uCD9C\uACE0\uC644\uB8CC]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uAD6C\uB9E4\uD655\uC815 \uC0C1\uD0DC\uB85C \uBCC0\uACBD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
+ORDER_0006=\uAD6C\uB9E4\uD655\uC815\uC744 \uD558\uC2E4\uC218 \uC788\uB294 \uC0C1\uD488\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. \n\uBC18\uD488\uC774\uB098 \uAD50\uD658\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4.
+ORDER_0007=\uC8FC\uBB38 \uC804\uCCB4\uCDE8\uC18C\uB97C \uD558\uC2E4\uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n\uAD50\uD658,\uBC18\uD488,\uCDE8\uC18C\uC911\uC778 \uC0C1\uD488\uC774 \uC788\uB294\uC9C0 \uD655\uC778 \uBC14\uB78D\uB2C8\uB2E4.
+ORDER_0008=\uD0C0 \uC5C5\uCCB4\uC758 \uC0C1\uD488\uC774 \uC788\uC2B5\uB2C8\uB2E4. \uC804\uCCB4 \uBC18\uD488\uC744 \uC9C4\uD589\uD558\uC2E4\uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+ORDER_0009=\uD3EC\uC778\uD2B8 \uC6D0\uBCF5 \uCC98\uB9AC\uB97C \uC2E4\uD328\uD558\uC600\uC2B5\uB2C8\uB2E4.
+ORDER_0010=\uACB0\uC81C \uCDE8\uC18C\uB97C \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
+ORDER_0011=\uCE74\uB4DC \uACB0\uC81C\uC778 \uACBD\uC6B0\uC5D0\uB9CC \uBD80\uBD84\uCDE8\uC18C\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0012=\uCDE8\uC18C\uC218\uB7C9\uC744 \uD655\uC778\uD574\uC8FC\uC138\uC694. \uCDE8\uC18C\uAC00\uB2A5 \uC218\uB7C9\uBCF4\uB2E4 \uB9CE\uC2B5\uB2C8\uB2E4.
+ORDER_0013=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uACB0\uC81C\uC644\uB8CC][\uC0C1\uD488\uC900\uBE44\uC911]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uBD80\uBD84\uCDE8\uC18C\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0014=\uCD9C\uACE0\uC644\uB8CC\uB97C \uD558\uC2E4\uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n\uC8FC\uBB38 \uCDE8\uC18C\uC2E0\uCCAD\uB41C \uC8FC\uBB38\uC744 \uBA3C\uC800 \uCC98\uB9AC\uD574\uC8FC\uC2DC\uAE30\uBC14\uB78D\uB2C8\uB2E4.
+ORDER_0015=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uCD9C\uACE0\uC644\uB8CC]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uC8FC\uBB38\uAD50\uD658\uC774 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0016=\uAD50\uD658\uC218\uB7C9\uC744 \uD655\uC778\uD574\uC8FC\uC138\uC694.\uAD50\uD658\uAC00\uB2A5 \uC218\uB7C9\uBCF4\uB2E4 \uB9CE\uC2B5\uB2C8\uB2E4.
+ORDER_0017=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uAD50\uD658\uC2E0\uCCAD]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uAD50\uD658\uC9C4\uD589\uC774 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0018=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uAD50\uD658\uC9C4\uD589]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uAD50\uD658\uC644\uB8CC\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0019=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uAD50\uD658\uC2E0\uCCAD]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uAD50\uD658\uBC18\uB824\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0020=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uBC18\uD488\uC2E0\uCCAD]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uBC18\uD488\uC9C4\uD589\uC774 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0021=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uBC18\uD488\uC9C4\uD589]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uBC18\uD488\uC644\uB8CC\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0022=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uBC18\uD488\uC2E0\uCCAD]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uBC18\uD488\uBC18\uB824\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0023=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uCDE8\uC18C\uC2E0\uCCAD]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uCDE8\uC18C\uBC18\uB824\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0024=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uCDE8\uC18C\uC2E0\uCCAD]\uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uCDE8\uC18C\uC644\uB8CC\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
+ORDER_0025=\uBC18\uD488\uC218\uB7C9\uC744 \uD655\uC778\uD574\uC8FC\uC138\uC694. \uBC18\uD488\uAC00\uB2A5 \uC218\uB7C9\uBCF4\uB2E4 \uB9CE\uC2B5\uB2C8\uB2E4.
+ORDER_0026=\uC8FC\uBB38 \uC804\uCCB4\uBC18\uD488\uC744 \uD558\uC2E4\uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n\uAD50\uD658,\uBC18\uD488,\uCDE8\uC18C\uC911\uC778 \uC0C1\uD488\uC774 \uC788\uB294\uC9C0 \uD655\uC778 \uBC14\uB78D\uB2C8\uB2E4.
+ORDER_0027=\uC8FC\uBB38\uC0C1\uD0DC\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.\n[\uC0C1\uD488\uC900\uBE44\uC911] \uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uACB0\uC81C\uC644\uB8CC \uBCC0\uACBD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
+ORDER_0028=\uACB0\uC81C \uC644\uB8CC \uC0C1\uD0DC\uB85C \uBCC0\uACBD\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n\uCDE8\uC18C,\uBC18\uD488\uC774 \uC644\uB8CC\uB41C \uC8FC\uBB38\uC785\uB2C8\uB2E4.
+ORDER_0029=\uC8FC\uBB38 \uC0C1\uD0DC\uB97C \uD655\uC778\uD574 \uC8FC\uC138\uC694. [\uCD9C\uACE0\uC911][\uAD6C\uB9E4\uD655\uC815]\uC0C1\uD0DC\uC778 \uC8FC\uBB38\uAC74\uC774 \uC788\uC2B5\uB2C8\uB2E4.
+ORDER_0030=\uD544\uC218\uAC12\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.
+ORDER_0031=\uC8FC\uBB38\uC804\uCCB4\uCDE8\uC18C \uCC98\uB9AC\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
 
-#\uc0ac\ubc29\ub137
-SABANGNET_0001=\uc131\uacf5\uc801\uc73c\ub85c \uc0c1\ud488 \uc815\ubcf4\uac00 \uc804\uc1a1\ub418\uc5c8\uc2b5\ub2c8\ub2e4.(\ucd1d {0}\uac74 \uc911 {1}\uac74 \uc131\uacf5)
-SABANGNET_0002=\uc131\uacf5\uc801\uc73c\ub85c \uc1fc\ud551\ubab0\ubcc4 DATA \uac00 \uc804\uc1a1\ub418\uc5c8\uc2b5\ub2c8\ub2e4.(\ucd1d {0}\uac74 \uc911 {1}\uac74 \uc131\uacf5)
-SABANGNET_0003=\uc131\uacf5\uc801\uc73c\ub85c \uc0c1\ud488 \uc694\uc57d \uc815\ubcf4\uac00 \uc804\uc1a1\ub418\uc5c8\uc2b5\ub2c8\ub2e4.(\ucd1d {0}\uac74 \uc911 {1}\uac74 \uc131\uacf5)
-SABANGNET_0004=\uc8fc\ubb38\uc774 \uc218\uc9d1\ub418\uc5c8\uc2b5\ub2c8\ub2e4.(\ucd1d {0}\uac74 \uc911 {1}\uac74 \uc131\uacf5, \uc2e4\ud328: {2}\uac74)
-SABANGNET_0005=\uc131\uacf5\uc801\uc73c\ub85c \uc1a1\uc7a5\ubc88\ud638\uac00 \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-SABANGNET_0006=\ucde8\uc18c\uc8fc\ubb38\uc774 \uc218\uc9d1\ub418\uc5c8\uc2b5\ub2c8\ub2e4.(\ucd1d {0}\uac74 \uc911 {1}\uac74 \uc2e4\ud328 {2}\uac74 \uc131\uacf5)
-SABANGNET_0007=\uad50\ud658\uc8fc\ubb38\uc774 \uc218\uc9d1\ub418\uc5c8\uc2b5\ub2c8\ub2e4.(\ucd1d {0}\uac74 \uc911 {1}\uac74 \uc2e4\ud328 {2}\uac74 \uc131\uacf5)
-SABANGNET_0008=\ubc18\ud488\uc8fc\ubb38\uc774 \uc218\uc9d1\ub418\uc5c8\uc2b5\ub2c8\ub2e4.(\ucd1d {0}\uac74 \uc911 {1}\uac74 \uc2e4\ud328 {2}\uac74 \uc131\uacf5)
-SABANGNET_0009=\uc720\ud6a8\uc131 \uac80\uc99d \uc2e4\ud328\ub85c \ucc98\ub9ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-SABANGNET_0010=\ucd9c\uace0\ub97c \uc704\ud574 ERP\ub85c \uc804\uc1a1\ud558\uc600\uc2b5\ub2c8\ub2e4.(\uc131\uacf5: {0}\uac74, \uc2e4\ud328: {1}\uac74)
+#\uC0AC\uBC29\uB137
+SABANGNET_0001=\uC131\uACF5\uC801\uC73C\uB85C \uC0C1\uD488 \uC815\uBCF4\uAC00 \uC804\uC1A1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.(\uCD1D {0}\uAC74 \uC911 {1}\uAC74 \uC131\uACF5)
+SABANGNET_0002=\uC131\uACF5\uC801\uC73C\uB85C \uC1FC\uD551\uBAB0\uBCC4 DATA \uAC00 \uC804\uC1A1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.(\uCD1D {0}\uAC74 \uC911 {1}\uAC74 \uC131\uACF5)
+SABANGNET_0003=\uC131\uACF5\uC801\uC73C\uB85C \uC0C1\uD488 \uC694\uC57D \uC815\uBCF4\uAC00 \uC804\uC1A1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.(\uCD1D {0}\uAC74 \uC911 {1}\uAC74 \uC131\uACF5)
+SABANGNET_0004=\uC8FC\uBB38\uC774 \uC218\uC9D1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.(\uCD1D {0}\uAC74 \uC911 {1}\uAC74 \uC131\uACF5, \uC2E4\uD328: {2}\uAC74)
+SABANGNET_0005=\uC131\uACF5\uC801\uC73C\uB85C \uC1A1\uC7A5\uBC88\uD638\uAC00 \uB4F1\uB85D\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+SABANGNET_0006=\uCDE8\uC18C\uC8FC\uBB38\uC774 \uC218\uC9D1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.(\uCD1D {0}\uAC74 \uC911 {1}\uAC74 \uC2E4\uD328 {2}\uAC74 \uC131\uACF5)
+SABANGNET_0007=\uAD50\uD658\uC8FC\uBB38\uC774 \uC218\uC9D1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.(\uCD1D {0}\uAC74 \uC911 {1}\uAC74 \uC2E4\uD328 {2}\uAC74 \uC131\uACF5)
+SABANGNET_0008=\uBC18\uD488\uC8FC\uBB38\uC774 \uC218\uC9D1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.(\uCD1D {0}\uAC74 \uC911 {1}\uAC74 \uC2E4\uD328 {2}\uAC74 \uC131\uACF5)
+SABANGNET_0009=\uC720\uD6A8\uC131 \uAC80\uC99D \uC2E4\uD328\uB85C \uCC98\uB9AC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+SABANGNET_0010=\uCD9C\uACE0\uB97C \uC704\uD574 ERP\uB85C \uC804\uC1A1\uD558\uC600\uC2B5\uB2C8\uB2E4.(\uC131\uACF5: {0}\uAC74, \uC2E4\uD328: {1}\uAC74)
 
-#\ubc30\uc1a1
-DELIVERY_0001=\ub4f1\ub85d \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774\ubbf8 \ub4f1\ub85d\ub41c \ucd9c\uace0\uae08\uc9c0 \uc0c1\ud488\uc774 \uc788\uc2b5\ub2c8\ub2e4.
+#\uBC30\uC1A1
+DELIVERY_0001=\uB4F1\uB85D \uC2E4\uD328\uD558\uC600\uC2B5\uB2C8\uB2E4. \uC774\uBBF8 \uB4F1\uB85D\uB41C \uCD9C\uACE0\uAE08\uC9C0 \uC0C1\uD488\uC774 \uC788\uC2B5\uB2C8\uB2E4.
+
+#\uCFE0\uD3F0
+COUPON_0001=\uCD1D {0}\uC7A5\uC758 \uCFE0\uD3F0\uC744 \uB2E4\uC6B4\uB85C\uB4DC \uD558\uC600\uC2B5\uB2C8\uB2E4.
+COUPON_0002=\uC774\uBBF8 \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uC644\uB8CC \uD558\uC168\uC2B5\uB2C8\uB2E4.
+
+#\uAD50\uD658
+EXCHANGE_0001=\uAD50\uD658 \uC2E0\uCCAD\uC774 \uC811\uC218\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+EXCHANGE_0002=\uAD50\uD658 \uC2E0\uCCAD\uC774 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+EXCHANGE_0003=\uC7AC\uACE0\uAC00 \uBD80\uC871\uD558\uC5EC \uAD50\uD658 \uC2E0\uCCAD\uC774 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+
+#\uBC18\uD488
+RETURN_0001=\uBC18\uD488 \uC2E0\uCCAD\uC774 \uC811\uC218\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+RETURN_0002=\uBC18\uD488 \uC2E0\uCCAD\uC774 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+
+#\uCDE8\uC18C
+CANCEL_0001=\uC8FC\uBB38 \uCDE8\uC18C\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+CANCEL_0002=\uD658\uBD88\uAE08\uC561\uC774 \uCD94\uAC00\uBC30\uC1A1\uBE44 \uBCF4\uB2E4 \uC801\uC5B4 \uCDE8\uC18C \uCC98\uB9AC\uC5D0 \uC2E4\uD328 \uD558\uC600\uC2B5\uB2C8\uB2E4.
+
+#\uBC30\uC1A1
+DELV_0001=\uC815\uC0C1\uC801\uC73C\uB85C \uBC30\uC1A1\uC9C0\uAC00 \uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+DELV_0002=\uC815\uC0C1\uC801\uC73C\uB85C \uBC30\uC1A1\uBA54\uBAA8\uAC00 \uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+DELV_0003=\uC815\uC0C1\uC801\uC73C\uB85C \uD68C\uC218\uC9C0\uAC00 \uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+DELV_0004=\uC815\uC0C1\uC801\uC73C\uB85C \uBC18\uD488\uBA54\uBAA8\uAC00 \uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.

+ 8 - 5
src/main/webapp/WEB-INF/views/order/CnclReqForm.html

@@ -160,7 +160,7 @@
 						</tr>
 						<tr>
 							<th>쿠폰 취소 금액</th>
-							<td colspan="3"><span id="spanCpnDcAmt"></span>원 (즉시할인쿠폰 : <span id="spanCpn1DcAmt"></span>원 + 상품쿠폰 : <span id="spanGoodsCpnDcAmt"></span>원 + 장바구니쿠폰 : <span id="spanCartCpnDcAmt"></span>원)</td>
+							<td colspan="3"><span id="spanCpnDcAmt"></span>원 (즉시할인쿠폰 : <span id="spanCpn1DcAmt"></span>원 + 상품쿠폰 : <span id="spanGoodsCpnDcAmt"></span>원 + 장바구니쿠폰 : <span id="spanCartCpnDcAmt"></span>원 + 배송비쿠폰 : <span id="spanDelvCpnDcAmt"></span>원)</td>
 						</tr>
 						<tr>
 							<th>다다익선 취소 금액</th>
@@ -919,9 +919,11 @@ var fnCalculateRefundAmt = function (obj) {
 			gridOptionsCancelReqToBeList.api.setRowData(result.cancelOrderRefundList);
 			gridOptionsDelvCdList.api.setRowData(result.cancelDelvRefundList);
 			
+			let spanSumDeliveryFee = result.spanSumDeliveryFee - result.spanDelvCpnDcAmt;
+			
 			$("#spanPayAmt").text(result.spanPayAmt.addComma());					//총 결제 금액
 			$("#spanSumRealOrdAmt").text(result.spanSumRealOrdAmt.addComma());		//상품 실결제 금액
-			$("#spanSumDeliveryFee").text(result.spanSumDeliveryFee.addComma());	//주문 배송 금액
+			$("#spanSumDeliveryFee").text(spanSumDeliveryFee.addComma());			//주문 배송 금액
 			
 			$("#spanOrdAmt").text(result.spanOrdAmt.addComma());					//주문 상품 금액
 			$("#spanCnclRtnAmt").text(result.spanCnclRtnAmt.addComma());			//취소 상품 금액
@@ -934,6 +936,7 @@ var fnCalculateRefundAmt = function (obj) {
 			$("#spanCpn1DcAmt").text(result.spanCpn1DcAmt.addComma());				//즉시할인쿠폰
 			$("#spanGoodsCpnDcAmt").text(result.spanGoodsCpnDcAmt.addComma());		//상품쿠폰
 			$("#spanCartCpnDcAmt").text(result.spanCartCpnDcAmt.addComma());		//장바구니쿠폰
+			$("#spanDelvCpnDcAmt").text(result.spanDelvCpnDcAmt.addComma());		//배송비쿠폰
 			
 			$("#spanTmtbDcAmt").text(result.spanTmtbDcAmt.addComma());				//취소 다다익선 금액
 			$("#spanTmtb1DcAmt").text(result.spanTmtb1DcAmt.addComma());			//수량할인
@@ -950,14 +953,14 @@ var fnCalculateRefundAmt = function (obj) {
 			if (result.spanRealCnclRtnAmt > 0) {
 				// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
 				if (isCustomer) {
-					result.spanRefundAmt = (result.spanRealCnclRtnAmt + result.sumDeliveryFee) - result.spanTotDeliveryFee;
+					result.spanRefundAmt = (result.spanRealCnclRtnAmt + spanSumDeliveryFee) - result.spanTotDeliveryFee;
 				} 
 				// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
 				else {
-					result.spanRefundAmt = (result.spanRealCnclRtnAmt + result.sumDeliveryFee);
+					result.spanRefundAmt = (result.spanRealCnclRtnAmt + spanSumDeliveryFee);
 					
 					// 2021.05.13 추가배송비금액 수정
-					$("#spanTotDeliveryFee").text(0);	//배송금액
+					$("#spanTotDeliveryFee").text(0);								//배송금액
 				}
 			}
 			

+ 203 - 41
src/main/webapp/WEB-INF/views/order/ExchangeRequestForm.html

@@ -34,8 +34,8 @@
 				
 				<div style="text-align:right; padding-bottom:5px; padding-top:5px;">
 					<button type="button" class="btn btn-success" th:unless="${ordChgSq > 0}" id="fnExchangeRequestSubmit" onclick="fnExchange()">교환요청</button>
-					<button type="button" class="btn btn-success" th:if="${ordChgSq > 0 and chgGb == 'G680_40'}" id="fnExchangeCancelRequestSubmit" onclick="fnExchangeCancel()">교환철회</button>
-					<button type="button" class="btn btn-success" th:if="${ordChgSq > 0 and chgGb == 'G680_30'}" id="fnReturnToExchangeSubmit" onclick="fnExchange()">교환변경</button>
+					<button type="button" class="btn btn-success" th:if="${ordChgSq > 0 and ordChgGb == ''}" id="fnExchangeCancelRequestSubmit" onclick="fnExchangeCancel()">교환철회</button>
+					<button type="button" class="btn btn-success" th:if="${ordChgSq > 0 and (ordChgGb == 'G681_20' or ordChgGb == 'G681_40')}" id="fnReturnToExchangeSubmit" onclick="fnExchange()">교환변경</button>
 				</div>
 				
 				<table class="frmStyle">
@@ -48,13 +48,13 @@
 					<tbody>
 						<tr>
 							<th>교환사유 <i class="star"></i></th>
-							<td th:if="${ordChgSq <= 0 or chgGb == 'G680_30'}">
+							<td th:if="${ordChgSq <= 0 or ordChgGb == 'G681_40'}">
 								<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>
 								</select>
 							</td>
-							<td th:if="${ordChgSq > 0 and chgGb == 'G680_40'}" th:id="chgReason"></td>
+							<td th:if="${ordChgSq > 0 and ordChgGb != 'G681_40'}" th:id="chgReason"></td>
 							<th>귀책사유</th>
 							<td><span id="imputeReason"></span></td>
 						</tr>
@@ -77,6 +77,7 @@
 				</table>
 				
 				<h4 class="chger">회수지 정보</h4>
+				<button style="float: right" type="button" class="btn btn-success" th:if="${#strings.isEmpty(ordChgGb) and ordChgSq > 0 and (chgStat == 'G685_20' or chgStat == 'G685_21')}" onclick="fnChangeChgerInfo();">회수지 수정</button>
 				<table class="frmStyle chger">
 					<colgroup>
 						<col style="width:160px;" />
@@ -93,7 +94,7 @@
 							<th>회수지주소 <i class="star"></i></th>
 							<td colspan="3">
 								<input type="text" name ="chgerZipcode" class="w100" readonly="readonly"/>
-								<button type="button" class="btn btn-info" th:unless="${ordChgSq > 0}" onclick="fnOpenDaumAddr('withdraw');">우편번호찾기</button>
+								<button type="button" class="btn btn-info" th:if="${#strings.isEmpty(ordChgGb) and (ordChgSq == 0 or chgStat == 'G685_20' or chgStat == 'G685_21')}" onclick="fnOpenDaumAddr('withdraw');">우편번호찾기</button>
 								<input type="text" name ="chgerBaseAddr" class="w300"/>
 								<input type="text" name ="chgerDtlAddr" class="w300"/>
 							</td>
@@ -128,6 +129,7 @@
 				</table>
 
 				<h4>교환지 정보</h4>
+				<button style="float: right" type="button" class="btn btn-success" th:unless="${ordChgSq == 0 or !#strings.isEmpty(ordChgGb) or (chgStat == 'G685_40' and (chgOrdDtlStat != 'G013_20' or chgOrdDtlStat != 'G013_30' or chgOrdDtlStat != 'G013_35'))}" onclick="fnChangeRecipInfo();">교환지 수정</button>
 				<table class="frmStyle">
 					<colgroup>
 						<col style="width:160px;" />
@@ -144,7 +146,7 @@
 						<th>교환지주소 <i class="star"></i></th>
 						<td colspan="3">
 							<input type="text" name ="recipZipcode" class="w100" readonly="readonly"/>
-							<button type="button" class="btn btn-info" th:unless="${ordChgSq > 0}" onclick="fnOpenDaumAddr('exchange');">우편번호찾기</button>
+							<button type="button" class="btn btn-info" th:unless="${ordChgGb == 'G681_20' or (chgStat == 'G685_40' and (chgOrdDtlStat != 'G013_20' or chgOrdDtlStat != 'G013_30' or chgOrdDtlStat != 'G013_35'))}" onclick="fnOpenDaumAddr('exchange');">우편번호찾기</button>
 							<input type="text" name ="recipBaseAddr" class="w300"/>
 							<input type="text" name ="recipDtlAddr" class="w300"/>
 						</td>
@@ -188,6 +190,7 @@
 var cancelRequestTargetList = [[${cancelRequestTargetList}]];				// 교환대상목록
 var ordNo 					= [[${ordNo}]];									// 주문번호
 var ordChgSq 				= [[${ordChgSq}]];								// 주문변경번호
+var chgStat					= [[${chgStat}]];								// 변경상태
 var orderInfoList 			= [[${orderInfoList}]];							// 주문기본정보
 var payMeans 				= orderInfoList[0].payMeans;					// 결제수단
 var orderDelvAddrInfo		= [[${orderDelvAddrInfo}]];						// 회수지정보
@@ -196,23 +199,35 @@ var addDelvFeeList			= [];											// 추가배송비정보
 var exchangeRequestList		= [];											// 교환요청목록
 var exchangeInfoList;														// 교환정보
 var wdGb;																	// 회수방법
-var chgerRtnMemo;															// 반품메모
-var delvMemo;																// 배송메모
-var chgGb;																	// 변경구분
+var ordChgGb;																// 변경요청변경구분
+var orderChangeDetailList;													// 취소/반품/교환요청 정보
+var chgOrdDtlStat;															// 교환상품상세상태값
+var delvAddrSq;																// 교환상품배송지일련번호
 
 var temp1 = true;
 var temp2 = true;
 
 // 변경요청정보 승인, 철회
 if (ordChgSq > 0) {
+	orderChangeDetailList	= [[${orderChangeDetailList}]];					// 취소/반품/교환요청 정보
 	exchangeInfoList		= [[${exchangeInfoList}]];						// 교환정보
-	chgReason				= exchangeInfoList[0].chgReason;				// 변경사유코드
-	chgReasonNm				= exchangeInfoList[0].chgReasonNm;				// 변경사유코드명
-	chgMemo					= exchangeInfoList[0].chgMemo;					// 변경사유메모
-	chgerRtnMemo			= exchangeInfoList[0].chgerRtnMemo;				// 반품메모
-	delvMemo				= exchangeInfoList[0].delvMemo;					// 배송메모
-	wdGb					= exchangeInfoList[0].wdGb;						// 회수방법
-	chgGb					= exchangeInfoList[0].chgGb;					// 변경구분
+	ordChgGb				= [[${ordChgGb}]];								// 변경요청변경구분
+
+	if (ordChgGb == 'G681_40') {
+		chgReason			= orderChangeDetailList[0].chgReason;		// 변경사유코드
+		chgReasonNm			= orderChangeDetailList[0].chgReasonNm;		// 변경사유코드명
+		chgMemo				= orderChangeDetailList[0].chgMemo;			// 변경사유메모
+		wdGb				= orderChangeDetailList[0].wdGb;			// 회수방법
+		chgOrdDtlStat		= '';										// 교환상품상세상태값
+		delvAddrSq			= '';										// 교환상품배송지일련번호
+	} else {
+		chgReason			= exchangeInfoList[0].chgReason;			// 변경사유코드
+		chgReasonNm			= exchangeInfoList[0].chgReasonNm;			// 변경사유코드명
+		chgMemo				= exchangeInfoList[0].chgMemo;				// 변경사유메모
+		wdGb				= exchangeInfoList[0].wdGb;					// 회수방법
+		chgOrdDtlStat		= exchangeInfoList[0].ordDtlStat;			// 교환상품상세상태값
+		delvAddrSq			= exchangeInfoList[0].delvAddrSq;			// 교환상품배송지일련번호
+	}
 }
 
 // 1. 주문정보(교환대상)
@@ -295,7 +310,7 @@ var columnExchangeReqList = [
 				, width			: 100
 				, cellClass		: "text-center"
 				, cellRenderer	: function (params) {
-					if (chgGb == 'G680_40' && ordChgSq > 0) {
+					if (ordChgSq > 0 && ordChgGb != 'G681_40') {
 						$.each(exchangeInfoList, function(idx, item) {
 							if (params.data.itemCd == item.itemCd && params.data.optCd1 == item.optCd1) {
 								strVal = item.optCd2;
@@ -332,18 +347,30 @@ var columnExchangeReqList = [
 				, width			: 100
 				, cellClass		: 'text-center'
 				, cellRenderer	: function (params) {
-					if (ordChgSq > 0) {
-						$.each(exchangeInfoList, function(idx, item) {
-							if (params.data.itemCd == item.itemCd && params.data.optCd1 == item.optCd1) {
-								strVal = item.chgQty;
-							}
-						});
+					if (ordChgSq > 0 && ordChgGb != 'G681_20') {
+						// 반품TO교환
+						if (ordChgGb == 'G681_40') {
+							strVal = params.data.chgQty;
+						}
+						// 교환상세
+						else {
+							$.each(exchangeInfoList, function (idx, item) {
+								if (params.data.itemCd == item.itemCd && params.data.optCd1 == item.optCd1) {
+									strVal = item.chgQty;
+								}
+							});
+						}
 					} else {
 						var ordQty = parseInt(params.data.ordQty);
 						var cnclRtnQty = parseInt(params.data.cnclRtnQty);
 						var ordReqChgQty = parseInt(params.data.ordReqChgQty);
 						var ordCanChgQty = ordQty - (cnclRtnQty + ordReqChgQty);
 						
+						// 교환TO교환
+						if (ordChgGb == 'G681_20') {
+							ordCanChgQty = parseInt(params.data.ordCanChgQty);
+						}
+						
 						var strVal = "";
 						strVal += '<select class="ordCanChgQty ' + params.data.ordDtlNo + '" name="chgQty" ordDtlNo="' + params.data.ordDtlNo + '" onchange="fnChangeQty(this)">';
 						
@@ -602,7 +629,7 @@ var fnExchange = function () {
 	//	}
 	//});
 	// 반품TO교환 신청 수량 설정
-	if (chgGb == 'G680_30') {
+	if (ordChgGb == 'G681_40') {
 		exchangeRequestList = cancelRequestTargetList;
 		$.each(exchangeRequestList, function(idx, exchangeRequest) {
 			$.each(exchangeInfoList , function(idx2, exchangeInfo) {
@@ -635,6 +662,10 @@ var fnExchange = function () {
 
 	// 2. 교환사유 체크
 	var chgReason = $("#exchangeRequestFrm select[name=selectChgReason]").val();
+	
+	if (ordChgGb == 'G681_20') {
+		chgReason = $('#exchangeRequestFrm input[name=chgReason]').val();
+	}
 	//var chgReason = $('#exchangeRequestFrm input[name=chgReason]').val();
 
 	if (gagajf.isNull(chgReason)) {
@@ -762,12 +793,14 @@ var fnExchange = function () {
 	
 	// URL 설정
 	var url;
-	if (chgGb == 'G680_30') {
+	if (ordChgGb == 'G681_40') {
 		url = '/orderChange/return/to/exchange/';
+	} else if (ordChgGb == 'G681_20') {
+		url = '/orderChange/exchange/to/exchange/';
 	} else {
 		url = '/orderChange/exchangeRequest/';
 	}
-	console.log(jsonObj.ordChgSq);
+
 	mcxDialog.confirm('교환요청하시겠습니까?', {
 		cancelBtnText		: "반품",
 		sureBtnClick		: function(){
@@ -838,7 +871,13 @@ var fnSetChger = function(){
 	var data;
 	
 	if (ordChgSq > 0) {
-		data = exchangeInfoList[0];
+		data = orderChangeDetailList[0];
+		data.recipPhnno = data.chgerPhnno;
+		data.recipTelno = data.chgerTelno;
+		data.recipNm = data.chgerNm;
+		data.recipZipcode = data.chgerZipcode;
+		data.recipBaseAddr = data.chgerBaseAddr;
+		data.recipDtlAddr = data.chgerDtlAddr;
 	} else {
 		data = orderDelvAddrInfo[0];
 	}
@@ -869,7 +908,7 @@ var fnSetChger = function(){
 var fnSetExchangeAddr = function(){
 	var data;
 	
-	if (ordChgSq > 0) {
+	if (ordChgSq > 0 && ordChgGb != 'G681_40') {
 		data = exchangeInfoList[0];
 	} else {
 		data = orderDelvAddrInfo[0];
@@ -1003,6 +1042,123 @@ var fnChangeWdGb = function(param) {
 	fnChangeQty();
 }
 
+// 회수지 정보 수정
+var fnChangeChgerInfo = function() {
+	let url				= '/orderChange/change/chger/addr';
+	let chgerNm			= $("#exchangeRequestFrm input[name=chgerNm]").val();
+	let chgerZipcode	= $("#exchangeRequestFrm input[name=chgerZipcode]").val();
+	let chgerBaseAddr	= $("#exchangeRequestFrm input[name=chgerBaseAddr]").val();
+	let chgerDtlAddr	= $("#exchangeRequestFrm input[name=chgerDtlAddr]").val();
+	let chgerPhnno1		= $("#exchangeRequestFrm select[name=chgerPhnno1]").val();
+	let chgerPhnno2		= $("#exchangeRequestFrm input[name=chgerPhnno2]").val();
+	let chgerPhnno3		= $("#exchangeRequestFrm input[name=chgerPhnno3]").val();
+	let chgerTelno1		= $("#exchangeRequestFrm select[name=chgerTelno1]").val();
+	let chgerTelno2		= $("#exchangeRequestFrm input[name=chgerTelno2]").val();
+	let chgerTelno3		= $("#exchangeRequestFrm input[name=chgerTelno3]").val();
+	
+	if (gagajf.isNull(chgerZipcode)) {
+		mcxDialog.alert("회수지주소를 입력하세요."); return;
+	}
+	if (gagajf.isNull(chgerBaseAddr)) {
+		mcxDialog.alert("회수지주소를 입력하세요."); return;
+	}
+	if (gagajf.isNull(chgerDtlAddr)) {
+		mcxDialog.alert("회수지주소를 입력하세요."); return;
+	}
+	
+	if (gagajf.isNull(chgerPhnno1)) {
+		mcxDialog.alert("휴대전화를 입력하세요."); return;
+	}
+	if (gagajf.isNull(chgerPhnno2)) {
+		mcxDialog.alert("휴대전화를 입력하세요."); return;
+	}
+	if (gagajf.isNull(chgerPhnno3)) {
+		mcxDialog.alert("휴대전화를 입력하세요."); return;
+	}
+	
+	let chgerPhnno 		= chgerPhnno1 + '-' + chgerPhnno2 + '-' + chgerPhnno3;
+	let chgerRtnMemo	= $("#exchangeRequestFrm textarea[name=chgerRtnMemo]").val();
+	let chgerTelno 		= '';
+	
+	if (!gagajf.isNull(chgerTelno1) && !gagajf.isNull(chgerTelno2) && !gagajf.isNull(chgerTelno3)) {
+		chgerTelno = chgerTelno1 + '-' + chgerTelno2 + '-' + chgerTelno3;
+	}
+	
+	let data = {};
+	data.ordChgSq = ordChgSq;
+	data.chgerNm = chgerNm;
+	data.chgerPhnno = chgerPhnno;
+	data.chgerZipcode = chgerZipcode;
+	data.chgerBaseAddr = chgerBaseAddr;
+	data.chgerDtlAddr = chgerDtlAddr;
+	data.chgerRtnMemo = chgerRtnMemo;
+	
+	let jsonData = JSON.stringify(data);
+	
+	gagajf.ajaxJsonSubmit(url, jsonData, function(result){
+		
+	});
+}
+
+var fnChangeRecipInfo = function() {
+	let url				= '/order/deliver/addr/update';
+	var recipNm			= $("#exchangeRequestFrm input[name=recipNm]").val();
+	var recipZipcode	= $("#exchangeRequestFrm input[name=recipZipcode]").val();
+	var recipBaseAddr	= $("#exchangeRequestFrm input[name=recipBaseAddr]").val();
+	var recipDtlAddr	= $("#exchangeRequestFrm input[name=recipDtlAddr]").val();
+	var delvMemo		= $("#exchangeRequestFrm textarea[name=delvMemo]").val();
+	
+	var recipPhnno1		= $("#exchangeRequestFrm select[name=recipPhnno1]").val();
+	var recipPhnno2		= $("#exchangeRequestFrm input[name=recipPhnno2]").val();
+	var recipPhnno3		= $("#exchangeRequestFrm input[name=recipPhnno3]").val();
+	
+	var recipTelno1		= $("#exchangeRequestFrm select[name=recipTelno1]").val();
+	var recipTelno2		= $("#exchangeRequestFrm input[name=recipTelno2]").val();
+	var recipTelno3		= $("#exchangeRequestFrm input[name=recipTelno3]").val();
+	
+	if (gagajf.isNull(recipZipcode)) {
+		mcxDialog.alert("교환지주소를 입력하세요."); return;
+	}
+	if (gagajf.isNull(recipBaseAddr)) {
+		mcxDialog.alert("교환지주소를 입력하세요."); return;
+	}
+	if (gagajf.isNull(recipDtlAddr)) {
+		mcxDialog.alert("교환지주소를 입력하세요."); return;
+	}
+	
+	if (gagajf.isNull(recipPhnno1)) {
+		mcxDialog.alert("휴대전화를 입력하세요."); return;
+	}
+	if (gagajf.isNull(recipPhnno2)) {
+		mcxDialog.alert("휴대전화를 입력하세요."); return;
+	}
+	if (gagajf.isNull(recipPhnno3)) {
+		mcxDialog.alert("휴대전화를 입력하세요."); return;
+	}
+	
+	var recipPhnno 		= recipPhnno1 + '-' + recipPhnno2 + '-' + recipPhnno3;
+	var recipTelno;
+	if (gagajf.isNull(recipTelno1) && gagajf.isNull(recipTelno2) && gagajf.isNull(recipTelno3)) {
+		recipTelno 		= '';
+	} else {
+		recipTelno 		= recipTelno1 + '-' + recipTelno2 + '-' + recipTelno3;
+	}
+	
+	let data = {};
+	data.delvAddrSq = delvAddrSq;
+	data.recipNm = recipNm;
+	data.recipPhnno = recipPhnno;
+	data.recipZipcode = recipZipcode;
+	data.recipBaseAddr = recipBaseAddr;
+	data.recipDtlAddr = recipDtlAddr;
+	data.delvMemo = delvMemo;
+	
+	let jsonData = JSON.stringify(data);
+	
+	gagajf.ajaxJsonSubmit(url, jsonData, function(result){
+		
+	});
+}
 $(document).ready(function() {
 	// 1. 그리드생성
 	gagaAgGrid.createGrid('gridOrderCancelRequestList'		, gridOptionsExchangeReqList);			// 주문정보
@@ -1023,6 +1179,7 @@ $(document).ready(function() {
 	// 5. 회수방법 라디오 체크 처리
 	if (wdGb == 'D') {
 		$('input:radio[name="wdGb"]:radio[value="D"]').prop('checked', true);
+		$('.chger').css('display', 'none');
 	} else {
 		$('input:radio[name="wdGb"]:radio[value="W"]').prop('checked', true);
 	}
@@ -1040,21 +1197,26 @@ $(document).ready(function() {
 		
 		// 8. 데이터 Disabled 처리
 		$('input:radio[name=wdGb]').attr('disabled', true);				// 8-1. 회수방법
-		$('input[name=chgerNm]').attr('readOnly', true);				// 8-3. 회수지정보 > 보내는사람
 		$('input[name=chgerBaseAddr]').attr('readOnly', true);			// 8-4. 회수지정보 > 기본주소
-		$('input[name=chgerDtlAddr]').attr('readOnly', true);			// 8-5. 회수지정보 > 상세주소
-		$('select[name=chgerTelno1]').attr('disabled', true);			// 8-6. 회수지정보 > 일반전화
-		$('input[name=chgerTelno2]').attr('readOnly', true);			// 8-6. 회수지정보 > 일반전화
-		$('input[name=chgerTelno3]').attr('readOnly', true);			// 8-6. 회수지정보 > 일반전화
-		$('select[name=chgerPhnno1]').attr('disabled', true);			// 8-7. 회수지정보 > 휴대전화
-		$('input[name=chgerPhnno2]').attr('readOnly', true);			// 8-7. 회수지정보 > 휴대전화
-		$('input[name=chgerPhnno3]').attr('readOnly', true);			// 8-7. 회수지정보 > 휴대전화
-		$('#chgerRtnMemo').attr('readOnly', true);						// 8-8. 회수지정보 > 반품메모
+		$('input[name=recipBaseAddr]').attr('readOnly', true);			// 8-10. 교환지정보 > 기본주소
+		$('#chgMemo').attr('readOnly', true);							// 8-2. 요청메모
+		
+		// 2021.06.25 교환접수, 교환대기 상태에서는 회수지 정보 수정 가능
+		if (!gagajf.isNull(ordChgGb) || (chgStat != 'G685_20' && chgStat != 'G685_21')) {
+			$('input[name=chgerNm]').attr('readOnly', true);				// 8-3. 회수지정보 > 보내는사람
+			$('input[name=chgerDtlAddr]').attr('readOnly', true);			// 8-5. 회수지정보 > 상세주소
+			$('select[name=chgerTelno1]').attr('disabled', true);			// 8-6. 회수지정보 > 일반전화
+			$('input[name=chgerTelno2]').attr('readOnly', true);			// 8-6. 회수지정보 > 일반전화
+			$('input[name=chgerTelno3]').attr('readOnly', true);			// 8-6. 회수지정보 > 일반전화
+			$('select[name=chgerPhnno1]').attr('disabled', true);			// 8-7. 회수지정보 > 휴대전화
+			$('input[name=chgerPhnno2]').attr('readOnly', true);			// 8-7. 회수지정보 > 휴대전화
+			$('input[name=chgerPhnno3]').attr('readOnly', true);			// 8-7. 회수지정보 > 휴대전화
+			$('#chgerRtnMemo').attr('readOnly', true);						// 8-8. 회수지정보 > 반품메모
+		}
 		
-		if (chgGb == 'G680_40') {
-			$('#chgMemo').attr('readOnly', true);							// 8-2. 요청메모
+		// 2021.06.25 교환상품 배송중 상태 전까지 정보 수정 가능
+		if (ordChgGb == 'G681_20' || (chgStat == 'G685_40' && (chgOrdDtlStat != 'G013_20' && chgOrdDtlStat != 'G013_30' && chgOrdDtlStat != 'G013_35'))) {
 			$('input[name=recipNm]').attr('readOnly', true);				// 8-9. 교환지정보 > 받는사람
-			$('input[name=recipBaseAddr]').attr('readOnly', true);			// 8-10. 교환지정보 > 기본주소
 			$('input[name=recipDtlAddr]').attr('readOnly', true);			// 8-11. 교환지정보 > 상세주소
 			$('select[name=recipTelno1]').attr('disabled', true);			// 8-12. 교환지정보 > 일반전화
 			$('input[name=recipTelno2]').attr('readOnly', true);			// 8-12. 교환지정보 > 일반전화
@@ -1062,7 +1224,7 @@ $(document).ready(function() {
 			$('select[name=recipPhnno1]').attr('disabled', true);			// 8-13. 교환지정보 > 휴대전화
 			$('input[name=recipPhnno2]').attr('readOnly', true);			// 8-13. 교환지정보 > 휴대전화
 			$('input[name=recipPhnno3]').attr('readOnly', true);			// 8-13. 교환지정보 > 휴대전화
-			$('#delvMemo').prop('readOnly', true);							// 8-14. 교환지정보 > 배송메모
+			$('#delvMemo').attr('readOnly', true);							// 8-14. 교환지정보 > 배송메모
 		}
 	}
 });

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

@@ -724,13 +724,13 @@ var columnDefsOrderChangeInfo = [
 				rtnStr = '<a href="javascript:void(0);" onclick="fnCancelRequest(\'' + paramData + '\',\'' + params.value + '\');">' + params.value + '</a>';
 			} 
 			// 반품접수, 반품대기, 회수요청, 상품검수중, 결제대기, 반품진행중
-			else if (params.data.chgStat == 'G685_50' || params.data.chgStat == 'G685_51' 
-					|| params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_31' || params.data.chgStat == 'G685_32' || params.data.chgStat == 'G685_33') {
+			else if (params.data.chgGb == 'G680_30' && (params.data.chgStat == 'G685_50' || params.data.chgStat == 'G685_51' 
+					|| params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_31' || params.data.chgStat == 'G685_32' || params.data.chgStat == 'G685_33')) {
 				rtnStr = '<a href="javascript:void(0);" onclick="fnReturnRequest(\'' + paramData + '\',\'' + params.value + '\');">' + params.value + '</a>';
 			}
 			// 교환접수, 교환대기, 회수요청, 상품검수중, 결제대기, 교환진행중
-			else if (params.data.chgStat == 'G685_20' || params.data.chgStat == 'G685_21' 
-					|| params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_31' || params.data.chgStat == 'G685_32' || params.data.chgStat == 'G685_34') {
+			else if (params.data.chgGb == 'G680_40' && (params.data.chgStat == 'G685_20' || params.data.chgStat == 'G685_21' 
+					|| params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_31' || params.data.chgStat == 'G685_32' || params.data.chgStat == 'G685_34')) {
 				rtnStr = '<a href="javascript:void(0);" onclick="fnExchangeRequest(\'' + paramData + '\',\'' + params.value + '\');">' + params.value + '</a>';
 			} 
 			else {
@@ -1182,13 +1182,13 @@ var fnReturnRequest = function (paramData, ordChgSq) {
 	param += "&delvFeeCdGrp="	+ paramArr[3];
 	
 	param += "&ordChgSq=" 		+ ordChgSq;
+	//param += "&ordChgGb=G681_30";
 	var actionUrl = "/orderChange/rtn/req/form?" + param;
 	cfnOpenModalPopup(actionUrl, 'popupReturnRequestForm');
 };
 
 // 교환요청
 var fnExchangeRequest = function (paramData, ordChgSq) {
-	console.log(paramData);
 	// 취소요청 구분 (orChgSq null 이면 취소요청화면 있으면 취소요청정보화면)
 	if (ordChgSq == null) {
 		ordChgSq = 0;
@@ -1201,7 +1201,7 @@ var fnExchangeRequest = function (paramData, ordChgSq) {
 	param += "&delvFeeCd="		+ paramArr[2];
 	param += "&delvFeeCdGrp="	+ paramArr[3];
 	param += "&ordChgSq=" 		+ ordChgSq;
-	
+	//param += "&ordChgGb=G681_20";
 	var actionUrl = "/orderChange/exchange/request/form?" + param;
 	cfnOpenModalPopup(actionUrl, 'popupExchangeRequestForm');
 };

+ 141 - 37
src/main/webapp/WEB-INF/views/order/RtnReqForm.html

@@ -41,6 +41,7 @@
 				<div style="text-align:right; padding-bottom:5px; padding-top:5px;">
 					<button type="button" class="btn btn-success" id="rtnReqBtn" onclick="fnCnclReq('rtnReq');">반품신청</button>
 					<button type="button" class="btn btn-success" id="rtnReqCancelBtn" onclick="fnCnclReq('rtnReqCancel');">반품철회</button>
+					<button type="button" class="btn btn-success" id="rtnToRtnBtn" onclick="fnCnclReq('rtnReq');">반품변경</button>
 					<button type="button" class="btn btn-success" id="rtnToExcBtn" onclick="fnRtnToExc();">교환변경</button>
 				</div>
 				
@@ -104,7 +105,7 @@
 						</tr>
 						<tr>
 							<th>취소 사용 쿠폰금액</th>
-							<td colspan="3"><span id="spanCpnDcAmt"></span>원 (즉시할인쿠폰 : <span id="spanCpn1DcAmt"></span>원 + 상품쿠폰 : <span id="spanGoodsCpnDcAmt"></span>원 + 장바구니쿠폰 : <span id="spanCartCpnDcAmt"></span>원)</td>
+							<td colspan="3"><span id="spanCpnDcAmt"></span>원 (즉시할인쿠폰 : <span id="spanCpn1DcAmt"></span>원 + 상품쿠폰 : <span id="spanGoodsCpnDcAmt"></span>원 + 장바구니쿠폰 : <span id="spanCartCpnDcAmt"></span>원 + 배송비쿠폰 : <span id="spanDelvCpnDcAmt"></span>원)</td>
 						</tr>
 						<tr>
 							<th>취소 다다익선 금액</th>
@@ -138,6 +139,7 @@
 				<!--  회수지정보 -->
 				<div id="chgerAddress">
 					<h4>회수지 정보</h4>
+					<button style="float: right" type="button" class="btn btn-success" th:if="${ordChgSq > 0 and (chgStat == 'G685_50' or chgStat == 'G685_51')}" onclick="fnChangeChgerInfo();">회수지 수정</button>
 					<table class="frmStyle">
 						<colgroup>
 							<col style="width:160px;" />
@@ -154,8 +156,8 @@
 								<th>회수지주소 <i class="star"></i></th>
 								<td colspan="3">
 									<input type="text" name ="chgerZipcode" class="w100" readonly="readonly"/>
-									<button type="button" class="btn btn-info" th:unless="${ordChgSq > 0}" onclick="fnOpenDaumAddr('delvLoc');">우편번호찾기</button>
-									<input type="text" name ="chgerBaseAddr" class="w300"/>
+									<button type="button" class="btn btn-info" th:if="${ordChgSq == 0 or chgStat == 'G685_50' or chgStat == 'G685_51'}" onclick="fnOpenDaumAddr('delvLoc');">우편번호찾기</button>
+									<input type="text" name ="chgerBaseAddr" class="w300" readonly="readonly"/>
 									<input type="text" name ="chgerDtlAddr" class="w300"/>
 								</td>
 							</tr>
@@ -248,12 +250,18 @@ var pgGb					= orderInfoList[0].pgGb;						// PG구분
 var chgReason				= "";											// 변경사유코드
 var chgMemo					= "";											// 변경사유메모
 var wdGb					= "";											// 회수방법
+var ordChgGb				= "";											// 주문변경요쳥변경구분
 
 // 변경요청정보
 if (ordChgSq > 0) {
 	chgReason				= orderChangeDetailList[0].chgReason;			// 변경사유코드
 	chgMemo					= orderChangeDetailList[0].chgMemo;				// 변경사유메모
 	wdGb					= orderChangeDetailList[0].wdGb;				// 회수방법
+	ordChgGb				= [[${ordChgGb}]];								// 주문변경요쳥변경구분
+}
+
+if (gagajf.isNull(ordChgGb)) {
+	ordChgGb == '1';
 }
 
 var temp1 = true;
@@ -263,16 +271,16 @@ var temp3 = true;
 // 1. 주문정보(변경요청가능대상)
 var columnCancelReqList = [
 	{headerName: "주문번호"		, field: "ordNo"			, width: 80		, cellClass: 'text-center'	, hide: temp1},
-	{headerName: "주문상세"		, field: "ordDtlNo"			, width: 80		, cellClass: 'text-center'}	,
+	{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: "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"			
-		, width			: 80		
+		headerName		: "옵션금액"
+		, field			: "optAddPrice"
+		, width			: 80
 		, cellClass		: 'text-right'
 		, cellRenderer	: function (params) {
 			return params.value.addComma();
@@ -280,18 +288,18 @@ var columnCancelReqList = [
 		, hide			: temp1
 	},
 	{
-		headerName		: "주문"		
-		, field			: "ordQty"			
-		, width			: 80		
+		headerName		: "주문"
+		, field			: "ordQty"
+		, width			: 80
 		, cellClass		: 'text-center'
 		, cellRenderer	: function (params) {
 			return params.value.addComma();
 		}
 	},
 	{
-		headerName		: "취소/요청"		
-		, field			: "cnclRtnQty"			
-		, width			: 80		
+		headerName		: "취소/요청"
+		, field			: "cnclRtnQty"
+		, width			: 80
 		, cellClass		: 'text-center'
 		, cellRenderer	: function (params) {
 			var cnclRtnReqQty = parseInt(params.data.cnclRtnQty) + parseInt(params.data.ordReqChgQty);
@@ -299,9 +307,9 @@ var columnCancelReqList = [
 		}
 	},
 	{
-		headerName		: "취소/반품"		
-		, field			: "ordCanChgQty"			
-		, width			: 100		
+		headerName		: "취소/반품"
+		, field			: "ordCanChgQty"
+		, width			: 100
 		, cellClass		: 'text-center'
 		, cellRenderer	: function (params) {
 			var ordQty 			= parseInt(params.data.ordQty);
@@ -309,12 +317,19 @@ var columnCancelReqList = [
 			var ordReqChgQty 	= parseInt(params.data.ordReqChgQty);
 			var ordCanChgQty 	= parseInt(params.value);
 			var rtnStr 			= "";
-			
+
 			// 취소신청가능수량있으면 수량만 표시 (취소,반품,교환 신청정보 처리)
-			if (ordChgSq > 0) {
+			// 2021.06.22 반품TO반품 수량 처리
+			if (ordChgSq > 0 && ordChgGb != 'G681_30') {
 				rtnStr = ordCanChgQty;
 			} else {
-				ordCanChgQty 	= ordQty - (cnclRtnQty +  ordReqChgQty);
+				//if (ordChgGb != 'G681_30') {
+					ordCanChgQty = ordQty - (cnclRtnQty + ordReqChgQty);
+				//}
+
+				if (ordChgGb == 'G681_30') {
+					ordCanChgQty = params.data.chgQty;
+				}
 				
 				rtnStr += "<select class='ordCanChgQty' name='ordCanChgQty' ordDtlNo='"+params.data.ordDtlNo+"' onChange='fnCalculateRefundAmt(this);'>";
 				
@@ -328,7 +343,7 @@ var columnCancelReqList = [
 			
 				rtnStr += "</select>";
 			}
-			
+
 			return rtnStr;
 		}
 	},
@@ -878,6 +893,7 @@ var fnCalculateRefundAmt = function (obj) {
 	// 2021.05.25 수정
 	var ordDtlNoArr 		= [];
 	var cnclRtnReqQtyArr 	= [];
+	var chgQtyArr			= [];
 	
 	// 1. 반품신청수량 체크
 	for (i=0 ; i<cancelRequestTargetList.length ; i++) {
@@ -885,6 +901,7 @@ var fnCalculateRefundAmt = function (obj) {
 			// 반품신청값설정
 			ordDtlNoArr.push(cancelRequestTargetList[i].ordDtlNo);
 			cnclRtnReqQtyArr.push(cancelRequestTargetList[i].ordCanChgQty);
+			chgQtyArr.push(cancelRequestTargetList[i].chgQty);
 		}
 	}
 
@@ -917,12 +934,22 @@ var fnCalculateRefundAmt = function (obj) {
 		'/orderChange/cancel/refundAmt'
 		, jsonData
 		, function(result) {
+			
+			$.each(result.cancelOrderRefundList, function(idx, item) {
+				let index = ordDtlNoArr.indexOf(item.ordDtlNo);
+				if (index >= 0) {
+					item.chgQty = chgQtyArr[index];
+				}
+			});
+			
 			gridOptionsCancelReqToBeList.api.setRowData(result.cancelOrderRefundList);
 			gridOptionsDelvCdList.api.setRowData(result.cancelDelvRefundList);
 			
+			let spanSumDeliveryFee = result.spanSumDeliveryFee - result.spanDelvCpnDcAmt;
+			
 			$("#spanPayAmt").text(result.spanPayAmt.addComma());					//총 결제 금액
 			$("#spanSumRealOrdAmt").text(result.spanSumRealOrdAmt.addComma());		//상품 실결제 금액
-			$("#spanSumDeliveryFee").text(result.spanSumDeliveryFee.addComma());	//배송금액
+			$("#spanSumDeliveryFee").text(spanSumDeliveryFee.addComma());			//배송금액
 			
 			$("#spanOrdAmt").text(result.spanOrdAmt.addComma());					//주문 상품 금액
 			$("#spanCnclRtnAmt").text(result.spanCnclRtnAmt.addComma());			//취소 상품 금액
@@ -935,6 +962,7 @@ var fnCalculateRefundAmt = function (obj) {
 			$("#spanCpn1DcAmt").text(result.spanCpn1DcAmt.addComma());				//즉시할인쿠폰
 			$("#spanGoodsCpnDcAmt").text(result.spanGoodsCpnDcAmt.addComma());		//상품쿠폰
 			$("#spanCartCpnDcAmt").text(result.spanCartCpnDcAmt.addComma());		//장바구니쿠폰
+			$("#spanDelvCpnDcAmt").text(result.spanDelvCpnDcAmt.addComma());		//배송비쿠폰
 			
 			$("#spanTmtbDcAmt").text(result.spanTmtbDcAmt.addComma());				//취소 다다익선 금액
 			$("#spanTmtb1DcAmt").text(result.spanTmtb1DcAmt.addComma());			//수량할인
@@ -953,15 +981,15 @@ var fnCalculateRefundAmt = function (obj) {
 
 				// 고객사유(회수요청) : 환불금액게산 = (취소금액 + 배송비) - 추가배송비 - 반품배송비
 				if (isCustomer && wdGb == 'W') {
-					result.spanRefundAmt = (result.spanRealCnclRtnAmt + result.sumDeliveryFee) - result.spanTotDeliveryFee - result.spanTotRtnDelvFee;
+					result.spanRefundAmt = (result.spanRealCnclRtnAmt + spanSumDeliveryFee) - result.spanTotDeliveryFee - result.spanTotRtnDelvFee;
 				} 
 				// 고객사유(직접발송) : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
 				else if (isCustomer && wdGb == 'D') {
-					result.spanRefundAmt = (result.spanRealCnclRtnAmt + result.sumDeliveryFee) - result.spanTotDeliveryFee;
+					result.spanRefundAmt = (result.spanRealCnclRtnAmt + spanSumDeliveryFee) - result.spanTotDeliveryFee;
 				}
 				// 회사사유 : 환불금액게산 = (취소금액 + 배송비)
 				else {
-					result.spanRefundAmt = (result.spanRealCnclRtnAmt + result.sumDeliveryFee);
+					result.spanRefundAmt = (result.spanRealCnclRtnAmt + spanSumDeliveryFee);
 				}
 			}
 			
@@ -1033,7 +1061,7 @@ var fnCnclReq = function (reqGbn) {
 		var cnclRtnReqQtyArr 	= [];
 		
 		// 1. 반품신청수량 체크
-		for (i=0 ; i<cancelRequestTargetList.length ; i++) {		
+		for (i=0 ; i<cancelRequestTargetList.length ; i++) {
 			if (cancelRequestTargetList[i].ordCanChgQty > 0) {
 				// 반품신청값설정
 				ordDtlNoArr.push(cancelRequestTargetList[i].ordDtlNo);
@@ -1117,7 +1145,7 @@ var fnCnclReq = function (reqGbn) {
 	// 2021.01.26 화면통합
 	// 5. 반품신청, 반품철회
 	// 반품신청
-	if (reqGbn == "rtnReq") {
+	if (reqGbn == "rtnReq" && ordChgGb != 'G681_30') {
 		confirmStr 		= "반품신청하시겠습니까?";
 		cnclUrl 		= '/orderChange/rtnReq/';
 	}
@@ -1126,6 +1154,11 @@ var fnCnclReq = function (reqGbn) {
 		confirmStr 		= "요청번호 [" + ordChgSq + "] 에 대한 요청철회 처리를 하시겠습니까?";
 		cnclUrl 		= '/orderChange/rtnReqCancel/';
 	}
+	// 반품TO반품 신청
+	else if (ordChgGb == 'G681_30') {
+		confirmStr 		= "반품변경하시겠습니까?";
+		cnclUrl 		= '/orderChange/return/to/return/';
+	}
 	
 	// 7. 추가정보설정
 	var ordNm 		= orderInfoList[0].ordNm;
@@ -1159,7 +1192,6 @@ var fnCnclReq = function (reqGbn) {
 		,"custNo"					: custNo
 		,"ordNm"					: ordNm
 		,"ordPhnno"					: ordPhnno
-		,"delvFeeCd"				: delvFeeCd
 	}
 
 	// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌
@@ -1184,7 +1216,7 @@ var fnCnclReq = function (reqGbn) {
 }
 
 // 환불계좌 등록
-var fnCreateOrderRfAccount = function () {	
+var fnCreateOrderRfAccount = function () {
 	var actionUrl = "/orderChange/refund/account/create/form?ordNo=" + ordNo ;
 	cfnOpenModalPopup(actionUrl, 'popupCreateRefundAccount');
 };
@@ -1215,7 +1247,7 @@ var fnBindOrderRfAccountInfo = function () {
 // 우편번호 DAUM을 이용한 우편번호 팝업 레이어
 var fnOpenDaumAddr = function() {
 	let daumZip = new daum.Postcode({
-		oncomplete: function(data) {			
+		oncomplete: function(data) {
 			// 우편번호와 주소 정보를 해당 필드에 넣는다.
 			$('#cancelRequestFrm input[name=chgerZipcode]').val(data.zonecode);
 			$('#cancelRequestFrm input[name=chgerBaseAddr]').val(cfnGetDaumRoadAddr(data));
@@ -1241,11 +1273,16 @@ var fnSetChger = function(){
 		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);
+		// 회수지정보 히든 처리
+		if (wdGb == 'D') {
+			$('#chgerAddress').css('display', 'none');
+		} else {
+			$("#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);
@@ -1266,7 +1303,7 @@ var fnSetChger = function(){
 		$("#cancelRequestFrm input[name=chgerTelno3]").val(spRecipTelno[2]);
 	}
 	
-	if (ordChgSq > 0) {
+	if (ordChgSq > 0 && chgStat != 'G685_50' && chgStat != 'G685_51') {
 		$('input[name=chgerNm]').attr('readOnly', true);				// 회수지정보 > 보내는사람 비활성화
 		$('input[name=chgerBaseAddr]').attr('readOnly', true);			// 회수지정보 > 기본주소 비활성화
 		$('input[name=chgerDtlAddr]').attr('readOnly', true);			// 회수지정보 > 상세주소 비활성화
@@ -1312,6 +1349,7 @@ var fnRtnToExc = function() {
 	param += "&delvFeeCd="		+ delvFeeCd;
 	param += "&delvFeeCdGrp="	+ delvFeeCdGrp;
 	param += "&ordChgSq=" 		+ ordChgSq;
+	param += "&ordChgGb=G681_40";
 	
 	// 반품상세 팝업 닫기
 	uifnPopupClose('popupReturnRequestForm');
@@ -1320,6 +1358,64 @@ var fnRtnToExc = function() {
 	cfnOpenModalPopup(actionUrl, 'popupExchangeRequestForm');
 }
 
+// 회수지 정보 수정
+var fnChangeChgerInfo = function() {
+	let url				= '/orderChange/change/chger/addr';
+	let chgerNm			= $("#cancelRequestFrm input[name=chgerNm]").val();
+	let chgerZipcode	= $("#cancelRequestFrm input[name=chgerZipcode]").val();
+	let chgerBaseAddr	= $("#cancelRequestFrm input[name=chgerBaseAddr]").val();
+	let chgerDtlAddr	= $("#cancelRequestFrm input[name=chgerDtlAddr]").val();
+	let chgerPhnno1		= $("#cancelRequestFrm select[name=chgerPhnno1]").val();
+	let chgerPhnno2		= $("#cancelRequestFrm input[name=chgerPhnno2]").val();
+	let chgerPhnno3		= $("#cancelRequestFrm input[name=chgerPhnno3]").val();
+	let chgerTelno1		= $("#cancelRequestFrm select[name=chgerTelno1]").val();
+	let chgerTelno2		= $("#cancelRequestFrm input[name=chgerTelno2]").val();
+	let chgerTelno3		= $("#cancelRequestFrm input[name=chgerTelno3]").val();
+	
+	if (gagajf.isNull(chgerZipcode)) {
+		mcxDialog.alert("회수지주소를 입력하세요."); return;
+	}
+	if (gagajf.isNull(chgerBaseAddr)) {
+		mcxDialog.alert("회수지주소를 입력하세요."); return;
+	}
+	if (gagajf.isNull(chgerDtlAddr)) {
+		mcxDialog.alert("회수지주소를 입력하세요."); return;
+	}
+	
+	if (gagajf.isNull(chgerPhnno1)) {
+		mcxDialog.alert("휴대전화를 입력하세요."); return;
+	}
+	if (gagajf.isNull(chgerPhnno2)) {
+		mcxDialog.alert("휴대전화를 입력하세요."); return;
+	}
+	if (gagajf.isNull(chgerPhnno3)) {
+		mcxDialog.alert("휴대전화를 입력하세요."); return;
+	}
+	
+	let chgerPhnno 		= chgerPhnno1 + '-' + chgerPhnno2 + '-' + chgerPhnno3;
+	let chgerRtnMemo	= $("#cancelRequestFrm textarea[name=chgerRtnMemo]").val();
+	let chgerTelno 		= '';
+	
+	if (!gagajf.isNull(chgerTelno1) && !gagajf.isNull(chgerTelno2) && !gagajf.isNull(chgerTelno3)) {
+		chgerTelno = chgerTelno1 + '-' + chgerTelno2 + '-' + chgerTelno3;
+	}
+	
+	let data = {};
+	data.ordChgSq = ordChgSq;
+	data.chgerNm = chgerNm;
+	data.chgerPhnno = chgerPhnno;
+	data.chgerZipcode = chgerZipcode;
+	data.chgerBaseAddr = chgerBaseAddr;
+	data.chgerDtlAddr = chgerDtlAddr;
+	data.chgerRtnMemo = chgerRtnMemo;
+	
+	let jsonData = JSON.stringify(data);
+	
+	gagajf.ajaxJsonSubmit(url, jsonData, function(result){
+		
+	});
+}
+
 $(document).ready(function() {
 	// 1. 그리드생성
 	gagaAgGrid.createGrid('gridOrderCancelRequestList'		, gridOptionsCancelReqList);			// 주문정보
@@ -1364,6 +1460,14 @@ $(document).ready(function() {
 			$("#rtnToExcBtn").css("display", "none");
 		}
 		
+		// 반품TO반품 버튼
+		if (ordChgGb != 'G681_30') {
+			$("#rtnToRtnBtn").css("display", "none");
+		} else {
+			$("#rtnReqCancelBtn").css("display", "none");
+			$("#rtnToExcBtn").css("display", "none");
+		}
+		
 		// 직접발송일때 회수지정보 숨김처리
 		if (wdGb == "D") {
 			$("#chgerAddress").css("display", "none");
@@ -1372,6 +1476,7 @@ $(document).ready(function() {
 		$("#rtnReqCompleteBtn").css("display", "none");
 		$("#rtnReqCancelBtn").css("display", "none");
 		$("#rtnToExcBtn").css("display", "none");
+		$("#rtnToRtnBtn").css("display", "none");
 	}
 	
 	// 6. 취소사유 선택
@@ -1381,7 +1486,6 @@ $(document).ready(function() {
 		$("#chgMemo").text(chgMemo);															// 변경사유메모
 		$("#chgMemo").attr('readOnly', true);													// 변경사유메모 비활성화
 		$('input:radio[name=wdGb]').attr('disabled', true);										// 회수방법 비활성화
-		
 		fnChangeChgReason(chgReason);															// 귀책사유
 	}