소스 검색

반품TO반품 임시 커밋

card007 4 년 전
부모
커밋
230b396ea0

+ 99 - 16
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -325,20 +325,25 @@ public class TsaOrderChangeController extends TsaBaseController {
 		List<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);											// 교환정보
+			// 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 (exchangeInfoList != null && exchangeInfoList.size() > 0) {
-				for (Order tmp : exchangeInfoList) {
+			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();
+						}
 					}
 				}
 
@@ -354,13 +359,6 @@ public class TsaOrderChangeController extends TsaBaseController {
 				cancelRequestTargetList = tmpList;
 			}
 		}
-		
-		String chgStat = "";
-		for (Order tmp : cancelRequestTargetList) {
-			if (StringUtils.isNotBlank(tmp.getChgStat())) {
-				chgStat = tmp.getChgStat();
-			}
-		}
 
 		// 2021.01.26 취소요청 화면, 취소요청정보확인 화면 통합
 		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G688"));				// 취소사유
@@ -644,22 +642,25 @@ 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);								// 교환정보
-			mav.addObject("ordChgGb"				, StringUtils.isBlank(ordChgGb) ? "" : ordChgGb);	// 주문변경요쳥변경정보
-
 			// 교환상세 정보 설정
 			List<Integer> ordDtlNoList = new ArrayList<>();
 			List<Integer> chgQtyList = new ArrayList<>();
-			if (exchangeInfoList != null && exchangeInfoList.size() > 0) {
-				for (Order tmp : exchangeInfoList) {
+			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();
+						}
 					}
 				}
 
@@ -674,16 +675,27 @@ public class TsaOrderChangeController extends TsaBaseController {
 
 				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");
 
@@ -813,6 +825,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);								//배송금액
 				}
 			}
 			

+ 186 - 30
src/main/webapp/WEB-INF/views/order/ExchangeRequestForm.html

@@ -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 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;						// 회수방법
 	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. 주문정보(교환대상)
@@ -333,17 +348,25 @@ var columnExchangeReqList = [
 				, cellClass		: 'text-center'
 				, cellRenderer	: function (params) {
 					if (ordChgSq > 0 && ordChgGb != 'G681_20') {
-						$.each(exchangeInfoList, function(idx, item) {
-							if (params.data.itemCd == item.itemCd && params.data.optCd1 == item.optCd1) {
-								strVal = item.chgQty;
-							}
-						});
+						// 반품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);
 						}
@@ -352,7 +375,7 @@ var columnExchangeReqList = [
 						strVal += '<select class="ordCanChgQty ' + params.data.ordDtlNo + '" name="chgQty" ordDtlNo="' + params.data.ordDtlNo + '" onchange="fnChangeQty(this)">';
 						
 						for (i = 0; i <= ordCanChgQty; i++) {
-							if (i == params.data.ordCanChgQty) {
+							if (i == params.data.chgQty) {
 								strVal += "	<option value='" + i + "' selected>" + i + "</option>";
 							} else {
 								strVal += "	<option value='" + i + "'>" + i + "</option>";
@@ -639,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)) {
@@ -844,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];
 	}
@@ -875,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];
@@ -1009,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);			// 주문정보
@@ -1029,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);
 	}
@@ -1046,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 (ordChgGb != 'G681_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. 교환지정보 > 일반전화

+ 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,7 +1182,7 @@ var fnReturnRequest = function (paramData, ordChgSq) {
 	param += "&delvFeeCdGrp="	+ paramArr[3];
 	
 	param += "&ordChgSq=" 		+ ordChgSq;
-	param += "&ordChgGb=G681_30";
+	//param += "&ordChgGb=G681_30";
 	var actionUrl = "/orderChange/rtn/req/form?" + param;
 	cfnOpenModalPopup(actionUrl, 'popupReturnRequestForm');
 };
@@ -1201,7 +1201,7 @@ var fnExchangeRequest = function (paramData, ordChgSq) {
 	param += "&delvFeeCd="		+ paramArr[2];
 	param += "&delvFeeCdGrp="	+ paramArr[3];
 	param += "&ordChgSq=" 		+ ordChgSq;
-	param += "&ordChgGb=G681_20";
+	//param += "&ordChgGb=G681_20";
 	var actionUrl = "/orderChange/exchange/request/form?" + param;
 	cfnOpenModalPopup(actionUrl, 'popupExchangeRequestForm');
 };

+ 86 - 21
src/main/webapp/WEB-INF/views/order/RtnReqForm.html

@@ -41,7 +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="fnRtnToRtn();">반품변경</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>
 				
@@ -105,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>
@@ -139,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;" />
@@ -155,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>
@@ -325,8 +326,7 @@ var columnCancelReqList = [
 				//if (ordChgGb != 'G681_30') {
 					ordCanChgQty = ordQty - (cnclRtnQty + ordReqChgQty);
 				//}
-				console.log(ordChgGb);
-				console.log(params.data);
+
 				if (ordChgGb == 'G681_30') {
 					ordCanChgQty = params.data.chgQty;
 				}
@@ -902,7 +902,6 @@ var fnCalculateRefundAmt = function (obj) {
 			ordDtlNoArr.push(cancelRequestTargetList[i].ordDtlNo);
 			cnclRtnReqQtyArr.push(cancelRequestTargetList[i].ordCanChgQty);
 			chgQtyArr.push(cancelRequestTargetList[i].chgQty);
-			console.log(cancelRequestTargetList[i].chgQty);
 		}
 	}
 
@@ -946,9 +945,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());			//취소 상품 금액
@@ -961,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());			//수량할인
@@ -979,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);
 				}
 			}
 			
@@ -1143,7 +1145,7 @@ var fnCnclReq = function (reqGbn) {
 	// 2021.01.26 화면통합
 	// 5. 반품신청, 반품철회
 	// 반품신청
-	if (reqGbn == "rtnReq") {
+	if (reqGbn == "rtnReq" && ordChgGb != 'G681_30') {
 		confirmStr 		= "반품신청하시겠습니까?";
 		cnclUrl 		= '/orderChange/rtnReq/';
 	}
@@ -1245,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));
@@ -1271,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);
@@ -1296,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);			// 회수지정보 > 상세주소 비활성화
@@ -1351,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);			// 주문정보
@@ -1411,6 +1476,7 @@ $(document).ready(function() {
 		$("#rtnReqCompleteBtn").css("display", "none");
 		$("#rtnReqCancelBtn").css("display", "none");
 		$("#rtnToExcBtn").css("display", "none");
+		$("#rtnToRtnBtn").css("display", "none");
 	}
 	
 	// 6. 취소사유 선택
@@ -1420,7 +1486,6 @@ $(document).ready(function() {
 		$("#chgMemo").text(chgMemo);															// 변경사유메모
 		$("#chgMemo").attr('readOnly', true);													// 변경사유메모 비활성화
 		$('input:radio[name=wdGb]').attr('disabled', true);										// 회수방법 비활성화
-		console.log('chgReason');
 		fnChangeChgReason(chgReason);															// 귀책사유
 	}
 	
@@ -1431,7 +1496,7 @@ $(document).ready(function() {
 		$("#h4DelvCdList").css("display"					, "none");
 		$("#gridDelvCdList").css("display"					, "none");
 	}
-	console.log('refundAmt');
+	
 	// 7. 환불예상금액계산
 	fnCalculateRefundAmt(null);