Browse Source

Merge branch 'develop' into eskim

eskim 5 years ago
parent
commit
526c21c70e

+ 246 - 1
src/main/java/com/style24/admin/biz/service/TsaOrderChangeService.java

@@ -352,7 +352,7 @@ public class TsaOrderChangeService {
 		String chgMemo 		= mav.getString("chgMemo").toString();
 		String allCanYn		= mav.getString("allCanYn").toString();
 		String isCustomer	= mav.getString("isCustomer").toString();
-		String chgGb		= "G680_20";
+		String chgGb		= "G680_20"; // 취소요청
 		
 		// 4.1 주문변경 기본정보 등록
 		OrderChange orderChange = new OrderChange();
@@ -365,6 +365,19 @@ public class TsaOrderChangeService {
 		orderChange.setRegNo(userNo);
 		orderChange.setUpdNo(userNo);
 		
+		// 4.2 주문변경 추가정조 등록하기
+		// 4.2 반품회수지 정보 등록
+		String chgerNm 			= mav.getString("chgerNm").toString();
+		String chgerPhnno 		= mav.getString("chgerPhnno").toString();
+		String chgerTelno 		= mav.getString("chgerTelno").toString();
+		String chgerEmail 		= mav.getString("chgerEmail").toString();
+		
+		orderChange.setChgerNm(chgerNm);
+		orderChange.setChgerPhnno(chgerPhnno);
+		orderChange.setChgerTelno(chgerTelno);
+		orderChange.setChgerEmail(chgerEmail);
+		orderChange.setChgerRtnMemo("");
+		
 		orderChangeDao.createOrderChange(orderChange);
 		
 		List<Order> cancelOrderDetailList = new ArrayList<Order>();
@@ -542,6 +555,238 @@ public class TsaOrderChangeService {
 		//int a = 100/0;
 	}
 	
+	/**
+	 * 주문상세 > 주문취소신청 > 주문반품신청
+	 * @param Order
+	 * @return Order
+	 * @author jsh77b
+	 * @since 2021. 01. 14
+	 */
+	@Transactional("shopTxnManager")
+	public void orderReturn(GagaMap mav) {
+		
+		// 1. 세션회원조회
+		int userNo = TsaSession.getInfo().getUserNo();
+		
+		// 2. 취소요정정보목록
+		List<Order> cancelReqList		 	= (List<Order>) mav.get("cancelReqList");			//주문 취소 신청 목록
+		List<Order> cancelOrderRefundList 	= (List<Order>) mav.get("cancelOrderRefundList");	//주문 환불 금액 목록
+		List<Order> cancelDelvRefundList 	= (List<Order>) mav.get("cancelDelvRefundList");	//주문 환불 배송 금액 목록
+				
+		// 3. 취소신청정보
+		int ordNo 			= Integer.parseInt(mav.getString("ordNo").toString());
+		String chgReason 	= mav.getString("chgReason").toString();
+		String chgMemo 		= mav.getString("chgMemo").toString();
+		String allCanYn		= mav.getString("allCanYn").toString();
+		String isCustomer	= mav.getString("isCustomer").toString();
+		String chgGb		= "G680_30"; //반품요청
+		
+		// 4.1 주문변경 기본정보 등록
+		OrderChange orderChange = new OrderChange();
+		orderChange.setOrdNo(ordNo);
+		orderChange.setChgGb(chgGb);
+		orderChange.setChgReason(chgReason);
+		orderChange.setChgMemo(chgMemo);
+		orderChange.setAddPayCost(0);
+		orderChange.setAddPayAmt(0);
+		orderChange.setRegNo(userNo);
+		orderChange.setUpdNo(userNo);
+		
+		// 4.2 반품추가정보, 반품회수지 정보 등록
+		String chgerNm 			= mav.getString("chgerNm").toString();
+		String chgerPhnno 		= mav.getString("chgerPhnno").toString();
+		String chgerTelno 		= mav.getString("chgerTelno").toString();
+		String chgerEmail 		= mav.getString("chgerEmail").toString();
+		String chgerZipNo 		= mav.getString("chgerZipNo").toString();
+		String chgerBaseAddr 	= mav.getString("chgerBaseAddr").toString();
+		String chgerDtlAddr 	= mav.getString("chgerDtlAddr").toString();
+		
+		orderChange.setChgerNm(chgerNm);
+		orderChange.setChgerPhnno(chgerPhnno);
+		orderChange.setChgerTelno(chgerTelno);
+		orderChange.setChgerEmail(chgerEmail);
+		orderChange.setChgerZipNo(chgerZipNo);
+		orderChange.setChgerBaseAddr(chgerBaseAddr);
+		orderChange.setChgerDtlAddr(chgerDtlAddr);
+		orderChange.setChgerRtnMemo("");
+		
+		orderChangeDao.createOrderChange(orderChange);
+		
+		List<Order> cancelOrderDetailList = new ArrayList<Order>();
+		
+		// 4.2 주문변경 상세 단품 정보 등록 (단품단위)
+		for (int i=0 ; i<cancelOrderRefundList.size() ; i++) {
+			Order cancelOrderRefundPo = cancelOrderRefundList.get(i);
+			cancelOrderRefundPo.setRegNo(userNo);
+			cancelOrderRefundPo.setUpdNo(userNo);
+			
+			// 2020.01.05 추후 무통장입금전 전체 취소시 분기로직 추가 예정
+			if ("Y".equals(allCanYn)) {
+				cancelOrderRefundPo.setOrdDtlStat("G013_98"); // 결제전주문취소 : 공통코드로관리예정
+			} else {
+				cancelOrderRefundPo.setOrdDtlStat("G013_99"); // 결제후주문취소 : 공통코드로관리예정
+			}
+
+			// 4.2.1 취소수량이 존재하면 주문정보 수정 및 주문변경정보 등록
+			if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
+				// 4.2.3 주문상세단품정보 수정
+				//orderChangeDao.updateOrderDetailItem(cancelOrderRefundPo);
+				
+				// 4.2.4 주문상세단품정보 이력 등록
+				//orderChangeDao.createOrderDetailItemHst(cancelOrderRefundPo);
+				
+				// 4.3 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
+				Boolean temp = false;
+				
+				if (cancelOrderDetailList.size() > 0) {
+					for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
+						if (cancelOrderRefundPo.getOrdDtlNo() == cancelOrderDetailList.get(j).getOrdDtlNo()) {
+							temp = true;
+						}
+					}
+				}
+				
+				// 4.4 주문상세단위 데이타 저장
+				if (!temp) {
+					cancelOrderDetailList.add(cancelOrderRefundPo);
+				}
+				
+				// 4.5 상품옵션 재고 원복
+				//orderChangeDao.updateOptionQty(cancelOrderRefundPo);
+			}
+		}
+		
+		// 5. 주문상세단위 취소 데이타 처리
+		for (int i=0 ; i<cancelOrderDetailList.size() ; i++) {			
+			Order vo = cancelOrderRefundList.get(i);
+			vo.setRegNo(userNo);
+			vo.setUpdNo(userNo);
+			
+			// 2020.01.05 추후 무통장입금전 전체 취소시 분기로직 추가 예정
+			if ("Y".equals(allCanYn)) {
+				vo.setOrdDtlStat("G013_98"); // 결제전주문취소 : 공통코드로관리예정
+			} else {
+				vo.setOrdDtlStat("G013_99"); // 결제후주문취소 : 공통코드로관리예정
+			}
+			
+			// 5.1 주문변경상세정보 이력 등록
+			orderChangeDao.createOrderDetailHstCnclRtn(vo);
+			
+			// 4.2 주문변경상세정보 수정
+			//orderChangeDao.updateOrderDetail(vo);
+			
+			// * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음
+			// 5.3 주문변경상세정보 등록
+			OrderChange changeDetailPo = new OrderChange();
+			changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
+			changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
+			changeDetailPo.setChgQty(vo.getOrdCanChgQty());
+			changeDetailPo.setChgStat("G685_40"); // 반품요청 : 공통코드로관리예정
+			changeDetailPo.setRegNo(userNo);
+			changeDetailPo.setUpdNo(userNo);
+			
+			orderChangeDao.createOrderChangeDetail(changeDetailPo);
+		}
+		
+		// To Do List
+		// 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
+		int spanRealCnclRtnAmt 		= Integer.parseInt(mav.get("spanRealCnclRtnAmt").toString());		// 취소금액합계
+		int sumDeliveryFee 			= Integer.parseInt(mav.get("sumDeliveryFee").toString());			// 배송비합계
+		int spanTotDeliveryFee 		= Integer.parseInt(mav.get("spanTotDeliveryFee").toString());		// 추가배송비합계
+		int spanTotRtnDelvFee 		= Integer.parseInt(mav.get("spanTotRtnDelvFee").toString());		// 반품배송비합계
+		int spanRefundAmt			= 0;
+		
+		// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
+		if ("true".equals(isCustomer)) {
+			spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee) - spanTotDeliveryFee - spanTotRtnDelvFee;
+			//Integer.parseInt(mav.get("spanRefundAmt").toString());
+		}
+		// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
+		else {
+			spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee);
+		}
+		mav.set("spanRefundAmt", spanRefundAmt);
+		
+		// 6. 환불결제 정보 등록
+		Order paymentOrder = new Order();
+		paymentOrder.setOrdNo(ordNo);
+		paymentOrder.setPayAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()) * -1);
+		paymentOrder.setPayStat("G016_99");
+		paymentOrder.setOrdChgSq(orderChange.getOrdChgSq());
+		paymentOrder.setRegNo(userNo);
+		paymentOrder.setUpdNo(userNo);
+		
+		//orderChangeDao.createPayment(paymentOrder);
+		
+		// 7. 환불금액 등록
+		Order refundOrder = new Order();
+		refundOrder.setOrdNo(ordNo);
+		refundOrder.setPaySq(paymentOrder.getPaySq());
+		refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
+		refundOrder.setRegNo(userNo);
+		
+		refundOrder.setRefundAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()));
+		refundOrder.setRfCpn1Amt(Integer.parseInt(mav.get("spanCpn1DcAmt").toString()));
+		refundOrder.setRfTmtb1Amt(Integer.parseInt(mav.get("spanTmtb1DcAmt").toString()));
+		refundOrder.setRfTmtb2Amt(Integer.parseInt(mav.get("spanTmtb2DcAmt").toString()));
+		refundOrder.setRfGoodsCpnAmt(Integer.parseInt(mav.get("spanGoodsCpnDcAmt").toString()));
+		refundOrder.setRfCartCpnAmt(Integer.parseInt(mav.get("spanCartCpnDcAmt").toString()));
+		refundOrder.setRfPntAmt(Integer.parseInt(mav.get("spanPntDcAmt").toString()));
+		refundOrder.setRfPrePntAmt(Integer.parseInt(mav.get("spanPrePntDcAmt").toString()));
+		refundOrder.setRfGfcdUseAmt(Integer.parseInt(mav.get("spanGfcdUseAmt").toString()));
+		
+		refundOrder.setRaNo(mav.get("accountNo").toString());
+		refundOrder.setRaNm(mav.get("accountNm").toString());
+		refundOrder.setRaBank(mav.get("bankCd").toString());
+		
+		//orderChangeDao.createRefund(refundOrder);
+		
+		// 8. 결제금액이 무료배송금액보다 작으면 배송비 신규 등록
+		for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
+			Order vo = cancelDelvRefundList.get(i);
+			
+			if (vo.getAddDelvFee() > 0) {
+				Order delvFeeOrder = new Order();
+				
+				delvFeeOrder.setPaySq(paymentOrder.getPaySq());
+				delvFeeOrder.setOrdNo(ordNo);
+				delvFeeOrder.setDelvFeeGb("G018_10");
+				delvFeeOrder.setDelvFeeCd(vo.getDelvFeeCd());
+				delvFeeOrder.setDelvFee(vo.getAddDelvFee());
+				delvFeeOrder.setRealDelvAmt(vo.getDelvFee());
+				delvFeeOrder.setOrdChgSq(orderChange.getOrdChgSq());
+				delvFeeOrder.setSupplyCompCd(vo.getSupplyCompCd());
+				delvFeeOrder.setRegNo(userNo);
+				delvFeeOrder.setUpdNo(userNo);
+				
+				//orderChangeDao.createDeliveryFee(delvFeeOrder);
+			}
+		}
+		
+		// To Do List
+		// 9. 포인트원복 (사용포인트, 주문상세단위)
+		
+		// To Do List
+		// 10. 쿠폰원복 (상품쿠폰, 주문상세단위) (전체취소시 장바구니쿠폰, 배송비쿠폰)
+		
+		// To Do List
+		// 11. 상품권원복
+		
+		// 12. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
+		Order freegiftOrder = new Order();
+		freegiftOrder.setOrdNo(ordNo);
+		freegiftOrder.setUpdNo(userNo);
+		//orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
+		
+		// To Do List
+		// 13. PG 연동
+		
+		// To Do List
+		// 14. 취소 완료 알림톡 발송 에정
+		
+		//int a = 100/0;
+	}
+	
 	
 	
 	

+ 2 - 2
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -321,7 +321,7 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @since 2020. 12. 29
 	 */
 	@ResponseBody
-	@GetMapping("/morebetterRegPopup/form")
+	@GetMapping("/morebetterPopup/form")
 	public ModelAndView morebetterRegForm(@RequestParam(value = "mode") String mode, @RequestParam(value = "tmtbSeq", required = false) Integer tmtbSeq,MoreBetter moreBetter) {
 		ModelAndView mav = new ModelAndView();
 
@@ -375,7 +375,7 @@ public class TsaMarketingController extends TsaBaseController {
 		mav.addObject("tmtbSeq", tmtbSeq);
 		mav.addObject("params", moreBetter);
 		log.info("CHECK param tmtbSq::{}", moreBetter.getTmtbSq());
-		mav.setViewName("marketing/MorebetterRegForm");
+		mav.setViewName("marketing/MorebetterPopupForm");
 		return mav;
 	}
 

+ 66 - 18
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -76,15 +76,12 @@ public class TsaOrderChangeController extends TsaBaseController {
 		ordDtlStatArr[1] = "G013_20";
 		ordDtlStatArr[2] = "G013_30";
 		ordDtlStatArr[3] = "G013_40";
-		
-		Collection<Order> cancelRequestTargetList = orderChangeService.getCancelRequestTargetList(order);
-
-		Collection<Order> orderInfoList = orderService.getOrderInfoList(order);
+		order.setOrdDtlStatArr(ordDtlStatArr);
 
-		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G686"));	// 취소사유
-		mav.addObject("cancelRequestTargetList"		, cancelRequestTargetList);							// 취소요청대상 목록
-		mav.addObject("orderInfoList"				, orderInfoList);									// 주문정보
-		mav.addObject("ordNo"						, ordNo);
+		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G686"));			// 취소사유
+		mav.addObject("cancelRequestTargetList"		, orderChangeService.getCancelRequestTargetList(order));	// 취소요청대상 목록
+		mav.addObject("orderInfoList"				, orderService.getOrderInfoList(order));					// 주문정보
+		mav.addObject("ordNo"						, ordNo);													// 주문번호
 
 		mav.setViewName("order/CancelRequestForm");
 		
@@ -183,21 +180,73 @@ public class TsaOrderChangeController extends TsaBaseController {
 		ordDtlStatArr[2] = "G013_60";
 		order.setOrdDtlStatArr(ordDtlStatArr);
 		
-		Collection<Order> cancelRequestTargetList = orderChangeService.getCancelRequestTargetList(order);
-
-		Collection<Order> orderInfoList = orderService.getOrderInfoList(order);
-
-		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G686"));	// 반품사유
-		mav.addObject("cancelRequestTargetList"		, cancelRequestTargetList);							// 반품요청대상 목록
-		mav.addObject("orderInfoList"				, orderInfoList);									// 주문정보
-		mav.addObject("ordNo"						, ordNo);
-		mav.addObject("orderDelvRtnAddrInfo"		, orderService.getDeliveryAddrList(order));			// 배송정보
+		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G688"));			// 취소사유
+		mav.addObject("cancelRequestTargetList"		, orderChangeService.getCancelRequestTargetList(order));	// 취소요청대상 목록
+		mav.addObject("orderInfoList"				, orderService.getOrderInfoList(order));					// 주문정보
+		mav.addObject("ordNo"						, ordNo);													// 주문번호
+		
+		mav.addObject("orderDelvRtnAddrInfo"		, orderService.getDeliveryAddrList(order));					// 배송정보
+		mav.addObject("TelExcNoList"				, rendererService.getAvailCommonCodeList("G095"));			// 전화번호국번
+		mav.addObject("PhnExcNoList"				, rendererService.getAvailCommonCodeList("G096"));			// (휴대전화)번호국번
 
 		mav.setViewName("order/ReturnRequestForm");
 		
 		return mav;
 	}
 	
+	/**
+	 * 주문반품신청
+	 * @param Collection<Order> - 주문취소신청목록
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 29
+	 */
+	@PostMapping("/returnRequest")
+	@ResponseBody
+	public GagaResponse orderReturnRequest(@RequestBody OrderChange cancelReq) {
+		
+		GagaMap mav = new GagaMap();
+		
+		if (cancelReq== null) {
+			throw new IllegalStateException(message.getMessage("FAIL_1001"));
+		}
+
+		List<Order> cancelReqList = cancelReq.getCancelReqList(); // 취소요청정보
+		
+		// To Do List
+		// @ 결품취소로직 현재는 일반취소로직만존재
+		// @ 주문취소 취소시 상태값 체크
+		// @ 취소, 반품시 배송비 체크 로직 
+		
+		// 1. 환불금액정보 계산 & 조회
+		mav = orderChangeService.orderCancelRefundAmt(cancelReqList);
+		
+		// 2. 주문변경기본정보 설정
+		mav.set("ordNo"			, cancelReq.getOrdNo());
+		mav.set("chgReason"		, cancelReq.getChgReason());
+		mav.set("chgMemo"		, cancelReq.getChgMemo());
+		
+		mav.set("accountNo"		, cancelReq.getAccountNo());
+		mav.set("accountNm"		, cancelReq.getAccountNm());
+		mav.set("bankCd"		, cancelReq.getBankCd());
+		
+		mav.set("allCanYn"		, cancelReq.getAllCanYn());
+		mav.set("isCustomer"	, cancelReq.getIsCustomer());
+		
+		//3. 회수지정보추가
+		mav.set("chgerNm"		, cancelReq.getChgerNm());
+		mav.set("chgerZipNo"	, cancelReq.getChgerZipNo());
+		mav.set("chgerBaseAddr"	, cancelReq.getChgerBaseAddr());
+		mav.set("chgerDtlAddr"	, cancelReq.getChgerDtlAddr());
+		mav.set("chgerPhnno"	, cancelReq.getChgerPhnno());
+		mav.set("chgerTelno"	, cancelReq.getChgerTelno());
+		
+		// 4. 주문변경 DB 등록 (주문정보, 배송정보)
+		orderChangeService.orderReturn(mav);
+		
+		return super.ok("성공");
+	}
+	
 	
 	
 	/**
@@ -268,7 +317,6 @@ public class TsaOrderChangeController extends TsaBaseController {
 		// To Do List
 		// @ 환불계좌인증
 		
-		
 		if ("Y".equals(accountCheck)) {
 			orderChangeService.saveRefundAccount(order);
 		} else {

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

@@ -404,6 +404,7 @@
 		     , O.ORD_NO
 		     , O.ORD_EMAIL
 		     , O.ORD_PHNNO
+		     , O.ORD_TELNO
 		     , C.CUST_GB 
 		     , CASE WHEN C.CUST_GB IS NULL 
 		            THEN '비회원'

+ 7 - 8
src/main/java/com/style24/persistence/mybatis/shop/TsaOrderChange.xml

@@ -125,14 +125,14 @@
 			, REG_DT
 			, UPD_NO
 			, UPD_DT
-		) 
-		SELECT #{chgGb}
+		) values (
+			#{chgGb}
 			 , #{chgReason}
 			 , #{chgMemo}
-			 , ORD_NM
-			 , ORD_PHNNO
-			 , ORD_TELNO
-			 , ORD_EMAIL
+			 , #{chgerNm}
+			 , #{chgerPhnno}
+			 , #{chgerTelno}
+			 , #{chgerEmail}
 			 , #{chgerZipNo}
 			 , #{chgerBaseAddr}
 			 , #{chgerDtlAddr}
@@ -143,8 +143,7 @@
 			 , SYSDATE()
 			 , #{updNo}
 			 , SYSDATE()
-		FROM   TB_ORDER  
-		WHERE  ORD_NO = #{ordNo}
+		)
 	</insert>
 
 	<!-- 주문상세 > 주문취소신청 > 주문상세단품정보 수정 -->

+ 1 - 1
src/main/webapp/WEB-INF/views/marketing/MorebetterRegForm.html → src/main/webapp/WEB-INF/views/marketing/MorebetterPopupForm.html

@@ -3,7 +3,7 @@
 	  xmlns:th="http://www.thymeleaf.org">
 <!--
  *******************************************************************************
- * @source  : MorebetterRegForm.html
+ * @source  : MorebetterPopupForm.html
  * @desc    : 다다익선 등록 화면
  *============================================================================
  * STYLE24

+ 31 - 14
src/main/webapp/WEB-INF/views/order/CancelRequestForm.html

@@ -899,19 +899,27 @@ var fnCalculateRefundAmt = function (obj) {
 
 //  사유
 var fnChangeChgReason = function(reasonCd){
-	var arrREasonCd = reasonCd.split(":");
+	var arrReasonCd = reasonCd.split(":");
+	var customerReasonArr = ['G686_10'];
+
+	isCustomer = false;
 	
 	// 취소, 반품, 교환 사유 판단
-	if (arrREasonCd[0] == 'G686_10') {
+	for (i=0 ; i<customerReasonArr.length ; i++) {
+		if (customerReasonArr[i] == arrReasonCd[0]) {
+			isCustomer = true;
+		}
+	}
+	
+	// 귀책사유설정 회사, 고객
+	if (isCustomer) {
 		$("#imputeReason").text("고객");
-		isCustomer = true;
 	} else {
 		$("#imputeReason").text("회사");
-		isCustomer = false;
 	}
 
-	$('#cancelRequestFrm input[name=chgReason]').val(arrREasonCd[0]);
-	$('#cancelRequestFrm input[name=chgReasonDesc]').val(arrREasonCd[1]);
+	$('#cancelRequestFrm input[name=chgReason]').val(arrReasonCd[0]);
+	$('#cancelRequestFrm input[name=chgReasonDesc]').val(arrReasonCd[1]);
 
 	fnCalculateRefundAmt();			//환불예정금액 계산.
 }
@@ -971,6 +979,12 @@ var fnCancelRequestPartOk = function () {
 		bankCd 		= refundAccount[0].bankCd;
 	}
 	
+	// 5. 추가정보설정
+	var chgerNm 	= orderInfoList[0].ordNm;
+	var chgerEmail 	= orderInfoList[0].ordEmail;
+	var chgerPhnno 	= orderInfoList[0].ordPhnno;
+	var chgerTelno 	= orderInfoList[0].ordTelno;
+	
 	var jsonObj = {
 		"ordNo"				: $('#cancelRequestFrm input[name=ordNo]').val()
 		,"chgReason" 		: $('#cancelRequestFrm input[name=chgReason]').val()
@@ -981,6 +995,13 @@ var fnCancelRequestPartOk = function () {
 		,"bankCd" 			: bankCd
 		,"allCanYn" 		: allCanYn
 		,"isCustomer" 		: isCustomer
+		,"chgerNm"			: chgerNm
+		,"chgerEmail"		: chgerEmail
+		,"chgerZipNo"		: ""
+		,"chgerBaseAddr"	: ""
+		,"chgerDtlAddr"		: ""
+		,"chgerPhnno"		: chgerPhnno
+		,"chgerTelno"		: chgerTelno
 	}
 
 	// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌
@@ -1021,26 +1042,22 @@ var fnBindOrderRfAccountInfo = function () {
 };
 
 $(document).ready(function() {
-	// 1. Create a agGrid
+	// 1. 그리드생성
 	gagaAgGrid.createGrid('gridOrderCancelRequestList'		, gridOptionsCancelReqList);			// 주문정보
 	gridOptionsCancelReqList.api.setRowData(cancelRequestTargetList);
 	
 	gagaAgGrid.createGrid('gridOrderCancelRequestToBeList'	, gridOptionsCancelReqToBeList);		// 취소정보
 	
-	gagaAgGrid.createGrid('gridDelvCdList'					, gridOptionsDelvCdList);				// 배송비 정보
+	gagaAgGrid.createGrid('gridDelvCdList'					, gridOptionsDelvCdList);				// 배송비정보
 	
 	gagaAgGrid.createGrid('gridRefundAccountInfo'			, gridOptionsRefundAccountInfo);		// 환불계좌정보
 	
-	// 취소정보계산
+	// 2. 환불정보계산
 	fnCalculateRefundAmt(null);
 	
-	// 그리드 숨김처리
+	// 3. 무통장입금아일때 환불계좌 그리드 숨김처리
 	if (payMeans !== 'G014_20') {
 		$('#wrapRefundAccount').addClass("off");
-	}
-	
-	if (payMeans === 'G014_20' && mallGb === 'G011_10' ) {
-		// 환불계좌정보
 		fnBindOrderRfAccountInfo();
 	}
 });

+ 103 - 24
src/main/webapp/WEB-INF/views/order/ReturnRequestForm.html

@@ -136,15 +136,15 @@
 					<tbody>
 						<tr>
 							<th>보내는사람 <i class="star"></i></th>
-							<td colspan="3"><input type="text" name ="chgerNm" class="" /></td>
+							<td colspan="3"><input type="text" name ="chgerNm" class=""/></td>
 						</tr>
 						<tr>
 							<th>회수지주소 <i class="star"></i></th>
 							<td colspan="3">
-								<input type="text" name ="chgerZipNo" class="w100" readonly="readonly" />
+								<input type="text" name ="chgerZipNo" class="w100" readonly="readonly"/>
 								<button type="button" class="btn btn-info" onclick="fnOpenDaumAddr('delvLoc');">우편번호찾기</button>
-								<input type="text" name ="chgerBaseAddr" class="w300" />
-								<input type="text" name ="chgerDtlAddr" class="w300" />
+								<input type="text" name ="chgerBaseAddr" class="w300"/>
+								<input type="text" name ="chgerDtlAddr" class="w300"/>
 							</td>
 						</tr>
 						<tr>
@@ -188,6 +188,7 @@ var cancelRequestTargetList = [[${cancelRequestTargetList}]];				// 취소대상
 var ordNo 					= [[${ordNo}]];									// 주문번호
 var orderInfoList 			= [[${orderInfoList}]];							// 주문기본정보
 var payMeans 				= orderInfoList[0].payMeans;					// 결제수단
+var orderDelvRtnAddrInfo	= [[${orderDelvRtnAddrInfo}]];					// 회수지정보
 
 var temp1 = true;
 var temp2 = false;
@@ -951,19 +952,27 @@ var fnCalculateRefundAmt = function (obj) {
 
 //  사유
 var fnChangeChgReason = function(reasonCd){
-	var arrREasonCd = reasonCd.split(":");
+	var arrReasonCd = reasonCd.split(":");
+	var customerReasonArr = ['G688_10', 'G688_11', 'G688_12', 'G688_13', 'G688_15' , 'G688_21', 'G688_30'];
+
+	isCustomer = false;
 	
 	// 취소, 반품, 교환 사유 판단
-	if (arrREasonCd[0] == 'G686_10') {
+	for (i=0 ; i<customerReasonArr.length ; i++) {
+		if (customerReasonArr[i] == arrReasonCd[0]) {
+			isCustomer = true;
+		}
+	}
+	
+	// 귀책사유설정 회사, 고객
+	if (isCustomer) {
 		$("#imputeReason").text("고객");
-		isCustomer = true;
 	} else {
 		$("#imputeReason").text("회사");
-		isCustomer = false;
 	}
 
-	$('#cancelRequestFrm input[name=chgReason]').val(arrREasonCd[0]);
-	$('#cancelRequestFrm input[name=chgReasonDesc]').val(arrREasonCd[1]);
+	$('#cancelRequestFrm input[name=chgReason]').val(arrReasonCd[0]);
+	$('#cancelRequestFrm input[name=chgReasonDesc]').val(arrReasonCd[1]);
 	
 	//환불예정금액 계산.
 	fnCalculateRefundAmt();			
@@ -1002,7 +1011,8 @@ var fnCancelRequestPartOk = function () {
 	var chgReason = $("#cancelRequestFrm select[name=selectChgReason]").val();
 	
 	if (gagajf.isNull(chgReason)) {
-		mcxDialog.alert("취소사유를 입력하세요."); return ;
+		mcxDialog.alert("취소사유를 입력하세요."); 
+		return ;
 	}
 	
 	// 4. 환불계좌 체크
@@ -1010,6 +1020,7 @@ var fnCancelRequestPartOk = function () {
 	var accountNm 	= "";
 	var bankCd 		= "";
 	
+	// 결제타입이 무통장 입금일때 사용
 	if (payMeans == 'G014_20') {
 		var refundAccount = gridOptionsRefundAccountInfo.api.getSelectedRows();
 		
@@ -1023,6 +1034,44 @@ var fnCancelRequestPartOk = function () {
 		bankCd 		= refundAccount[0].bankCd;
 	}
 	
+	// 5. 회수지정보설정
+	var chgerNm			= $("#cancelRequestFrm input[name=chgerNm]").val();
+	var chgerZipNo		= $("#cancelRequestFrm input[name=chgerZipNo]").val();
+	var chgerBaseAddr	= $("#cancelRequestFrm input[name=chgerBaseAddr]").val();
+	var chgerDtlAddr	= $("#cancelRequestFrm input[name=chgerDtlAddr]").val();
+	
+	var chgerPhnno1		= $("#cancelRequestFrm select[name=chgerPhnno1]").val();
+	var chgerPhnno2		= $("#cancelRequestFrm input[name=chgerPhnno2]").val();
+	var chgerPhnno3		= $("#cancelRequestFrm input[name=chgerPhnno3]").val();
+	
+	var chgerTelno1		= $("#cancelRequestFrm select[name=chgerTelno1]").val();
+	var chgerTelno2		= $("#cancelRequestFrm input[name=chgerTelno2]").val();
+	var chgerTelno3		= $("#cancelRequestFrm input[name=chgerTelno3]").val();
+
+	if (gagajf.isNull(chgerZipNo)) {
+		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;
+	}
+	
+	var chgerPhnno 		= chgerPhnno1 + chgerPhnno2 + chgerPhnno3;
+	var chgerTelno 		= chgerTelno1 + chgerTelno2 + chgerTelno3;
+	var chgerEmail 		= orderInfoList[0].ordEmail;
+	
 	var jsonObj = {
 		"ordNo"				: $('#cancelRequestFrm input[name=ordNo]').val()
 		,"chgReason" 		: $('#cancelRequestFrm input[name=chgReason]').val()
@@ -1033,6 +1082,13 @@ var fnCancelRequestPartOk = function () {
 		,"bankCd" 			: bankCd
 		,"allCanYn" 		: allCanYn
 		,"isCustomer"		: isCustomer
+		,"chgerNm"			: chgerNm
+		,"chgerEmail"		: chgerEmail
+		,"chgerZipNo"		: chgerZipNo
+		,"chgerBaseAddr"	: chgerBaseAddr
+		,"chgerDtlAddr"		: chgerDtlAddr
+		,"chgerPhnno"		: chgerPhnno
+		,"chgerTelno"		: chgerTelno
 	}
 
 	// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌
@@ -1043,7 +1099,7 @@ var fnCancelRequestPartOk = function () {
 		sureBtnClick		: function(){
 			// 취소 실행
 			gagajf.ajaxJsonSubmit(
-				'/orderChange/return/'
+				'/orderChange/returnRequest/'
 				, jsonData
 				, function() {
 					uifnPopupClose('popupOrderDetail');
@@ -1075,11 +1131,11 @@ var fnBindOrderRfAccountInfo = function () {
 // 우편번호 DAUM을 이용한 우편번호 팝업 레이어
 var fnOpenDaumAddr = function() {
 	let daumZip = new daum.Postcode({
-		oncomplete: function(data) {
+		oncomplete: function(data) {			
 			// 우편번호와 주소 정보를 해당 필드에 넣는다.
-			$('#detailForm input[name=chgerZipNo]').val(data.zonecode);
-			$('#detailForm input[name=chgerBaseAddr]').val(cfnGetDaumRoadAddr(data));
-			$('#detailForm input[name=chgerDtlAddr]').focus();
+			$('#cancelRequestFrm input[name=chgerZipNo]').val(data.zonecode);
+			$('#cancelRequestFrm input[name=chgerBaseAddr]').val(cfnGetDaumRoadAddr(data));
+			$('#cancelRequestFrm input[name=chgerDtlAddr]').focus();
 			
 			cfnCloseDaumAddr();
 		},
@@ -1089,29 +1145,52 @@ var fnOpenDaumAddr = function() {
 	cfnOpenDaumAddr(daumZip);
 }
 
+// 회수지정보 셋팅
+var fnSetChger = function(){
+	var data = orderDelvRtnAddrInfo[0];
+	var spRecipPhnno = (data.recipPhnno != null) ? data.recipPhnno.split('-') : null;
+	var spRecipTelno = (data.recipTelno != null) ? data.recipTelno.split('-') : null;
+	
+	$("#cancelRequestFrm input[name=chgerNm]").val(data.recipNm);
+	$("#cancelRequestFrm input[name=chgerZipNo]").val(data.recipZipNo);
+	$("#cancelRequestFrm input[name=chgerBaseAddr]").val(data.recipBaseAddr);
+	$("#cancelRequestFrm input[name=chgerDtlAddr]").val(data.recipDtlAddr);
+	
+	if (spRecipPhnno) {
+		$("#cancelRequestFrm select[name=chgerPhnno1]").val(spRecipPhnno[0]);
+		$("#cancelRequestFrm input[name=chgerPhnno2]").val(spRecipPhnno[1]);
+		$("#cancelRequestFrm input[name=chgerPhnno3]").val(spRecipPhnno[2]);
+	}
+	
+	if (spRecipTelno) {
+		$("#cancelRequestFrm select[name=chgerTelno1]").val(spRecipTelno[0]);
+		$("#cancelRequestFrm input[name=chgerTelno2]").val(spRecipTelno[1]);
+		$("#cancelRequestFrm input[name=chgerTelno3]").val(spRecipTelno[2]);
+	}
+}
+
 $(document).ready(function() {
-	// 1. Create a agGrid
+	// 1. 그리드생성
 	gagaAgGrid.createGrid('gridOrderCancelRequestList'		, gridOptionsCancelReqList);			// 주문정보
 	gridOptionsCancelReqList.api.setRowData(cancelRequestTargetList);
 	
 	gagaAgGrid.createGrid('gridOrderCancelRequestToBeList'	, gridOptionsCancelReqToBeList);		// 취소정보
 	
-	gagaAgGrid.createGrid('gridDelvCdList'					, gridOptionsDelvCdList);				// 배송비 정보
+	gagaAgGrid.createGrid('gridDelvCdList'					, gridOptionsDelvCdList);				// 배송비정보
 	
 	gagaAgGrid.createGrid('gridRefundAccountInfo'			, gridOptionsRefundAccountInfo);		// 환불계좌정보
 	
-	// 취소정보계산
+	// 2. 환불정보계산
 	fnCalculateRefundAmt(null);
 	
-	// 그리드 숨김처리
+	// 3. 무통장입금아일때 환불계좌 그리드 숨김처리
 	if (payMeans !== 'G014_20') {
 		$('#wrapRefundAccount').addClass("off");
-	}
-	
-	if (payMeans === 'G014_20' && mallGb === 'G011_10' ) {
-		// 환불계좌정보
 		fnBindOrderRfAccountInfo();
 	}
+	
+	// 4. 회수지정보설정
+	fnSetChger();
 });
 </script>
 </html>

+ 1 - 1
src/main/webapp/ux/js/admin.popup.js

@@ -752,7 +752,7 @@ var cfnOpenCompanyListPopup = function(callbackfn) {
  * @author : bin2107
  */
 var cfnOpenMorebetterSetPopup = function(mode ,tmtbSeq) {
-	var actionUrl = "/marketing/morebetterRegPopup/form?mode="+mode;
+	var actionUrl = "/marketing/morebetterPopup/form?mode="+mode;
 	if (typeof(tmtbSeq) != 'undefined') actionUrl += "&tmtbSeq=" + tmtbSeq;
 	uifnPopupClose('popupMorebetterReg');
 	cfnOpenModalPopup(actionUrl, 'popupMorebetterReg');