Просмотр исходного кода

Merge branch 'develop' of
http://112.172.147.34:4936/style24/style24.admin.git into develop

Conflicts:
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

gagamel 5 лет назад
Родитель
Сommit
106f7864aa

+ 3 - 0
src/main/java/com/style24/admin/biz/dao/TsaCouponDao.java

@@ -3,6 +3,8 @@ package com.style24.admin.biz.dao;
 import java.util.ArrayList;
 import java.util.Collection;
 
+import org.springframework.stereotype.Component;
+
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.Coupon;
 
@@ -12,6 +14,7 @@ import com.style24.persistence.domain.Coupon;
  * @since  2021-01-11
  */
 @ShopDs
+@Component
 public interface TsaCouponDao {
 
 	/**

+ 38 - 66
src/main/java/com/style24/admin/biz/service/TsaCouponService.java

@@ -6,6 +6,9 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
 
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -34,6 +37,9 @@ public class TsaCouponService {
 	@Autowired
 	private TsaCommonService commonService;
 
+
+
+
 	/**
 	 * 쿠폰 저장
 	 * @param params
@@ -44,68 +50,34 @@ public class TsaCouponService {
 	public void couponSave(Coupon params) {
 		String cpnId = "";		// 쿠폰ID
 
-		params = applyTargetSetting(params);
-
 		params.setRegNo(TsaSession.getInfo().getUserNo());
 		params.setUpdNo(TsaSession.getInfo().getUserNo());
 
 		// 자동생성이면 시퀀스 가져오기
-		if (params.getCpnId() == null || params.getCpnId().equals("")) {
-			int sequence = commonService.getNextSequence("SEQ_COUPON");
-			cpnId = "CPN" + sequence;
+		/*if(StringUtils.isBlank(params.getCpnId())) {
+			Integer sequence = commonService.getNextSequence("SEQ_COUPON");
+			cpnId = "CPN"+sequence;
 		} else {
 			cpnId = params.getCpnId();
 		}
-
-		log.info(">>>> CPNID : {}", cpnId);
 		params.setCpnId(cpnId);
 
 		couponDao.couponInsert(params);
+		*/
+		Gson gson = new Gson();
 
-		//checkCpnValidation(params);
-
-	}
-
-	// 쿠폰 적용대상 세팅
-	public Coupon applyTargetSetting(Coupon params) {
-		Collection<Coupon> cpnSupplyCompList = null;
-		Collection<Coupon> cpnBrandList = null;
-		Collection<Coupon> cpnApplyGoodsList = null;
-		Collection<Coupon> cpnCateList = null;
-		Collection<Coupon> cpnBurdenList = null;
-		Collection<Coupon> cpnExcepGoodsList = null;
-		ObjectMapper mapper = new ObjectMapper();
-
-		try {
-			if (params.getSupplyCompList() != null) {
-				cpnSupplyCompList = mapper.readValue(params.getSupplyCompList(), new TypeReference<Collection<Coupon>>() {
-				});
-			}
-			if (params.getBrandList() != null) {
-				cpnBrandList = mapper.readValue(params.getBrandList(), new TypeReference<Collection<Coupon>>() {
-				});
-			}
-			if (params.getApplyGoodsList() != null) {
-				cpnApplyGoodsList = mapper.readValue(params.getApplyGoodsList(), new TypeReference<Collection<Coupon>>() {
-				});
-			}
-			if (params.getCateList() != null) {
-				cpnCateList = mapper.readValue(params.getCateList(), new TypeReference<Collection<Coupon>>() {
-				});
-			}
-			if (params.getBurdenList() != null) {
-				cpnBurdenList = mapper.readValue(params.getBurdenList(), new TypeReference<Collection<Coupon>>() {
-				});
-			}
-			if (params.getCateList() != null) {
-				cpnExcepGoodsList = mapper.readValue(params.getExceptGoodsList(), new TypeReference<Collection<Coupon>>() {
-				});
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
+		Collection<Coupon>	supplyCompList = gson.fromJson(params.getSupplyCompList() , new TypeToken<Collection<Coupon>>(){}.getType());
+		for(Coupon supplyComp : supplyCompList) {
+		//	couponDao.couponRefValInsert(supplyComp);
 		}
+		Collection<Coupon> brandList = gson.fromJson(params.getBrandList() , new TypeToken<Collection<Coupon>>(){}.getType());
+		Collection<Coupon> applyGoodsList = gson.fromJson(params.getApplyGoodsList() , new TypeToken<Collection<Coupon>>(){}.getType());
+		Collection<Coupon> cateList = gson.fromJson(params.getCateList() , new TypeToken<Collection<Coupon>>(){}.getType());
+		Collection<Coupon> exceptGoodsList = gson.fromJson(params.getExceptGoodsList() , new TypeToken<Collection<Coupon>>(){}.getType());
+		Collection<Coupon> burdenList = gson.fromJson(params.getBurdenList() , new TypeToken<Collection<Coupon>>(){}.getType());
+
+		//checkCpnValidation(params);
 
-		return params;
 	}
 
 	/**
@@ -139,25 +111,25 @@ public class TsaCouponService {
 	public void checkCpnValidation(Coupon params) {
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		// 할인율이면  100% 초과 체크하기
-		if (params.getDcWay() != null && params.getDcWay().equals("G240_11")) {
-			if (params.getDcAval() > 100) {
+		if(params.getDcWay() != null && params.getDcWay().equals("G240_11")) {
+			if(params.getDcAval() > 100) {
 				throw new IllegalStateException("모바일 앱 할인율은 100을 초과할수 없습니다.");
-			} else if (params.getDcPval() > 100) {
+			} else if(params.getDcPval() > 100) {
 				throw new IllegalStateException("PC할인율은 100을 초과할수 없습니다.");
-			} else if (params.getDcMval() > 100) {
+			} else if(params.getDcMval() > 100) {
 				throw new IllegalStateException("모바일 웹 100을 초과할수 없습니다.");
 			}
 		}
 
 		// 기간/일수구분이 일수인 경우 날짜 체크
-		if (params.getPdGb() != null && params.getPdGb().equals("D")) {
+		if(params.getPdGb() != null && params.getPdGb().equals("D")) {
 			try {
 				Date date1 = format.parse(params.getAvailStdt());
 				Date date2 = format.parse(params.getAvailEddt());
 
-				log.info("checkCpnValidation params.getAvailEddt() :  {}", params.getAvailEddt());
-				log.info("checkCpnValidation params.getAvailStdt :  {}", params.getAvailStdt());
-				if (date2.before(date1)) {
+				log.info("checkCpnValidation params.getAvailEddt() :  {}" , params.getAvailEddt());
+				log.info("checkCpnValidation params.getAvailStdt :  {}" , params.getAvailStdt());
+				if(date2.before(date1)) {
 					throw new IllegalStateException("유효기간 종료날짜가 시작날짜보다 작습니다.");
 				}
 			} catch (ParseException exception) {
@@ -165,14 +137,14 @@ public class TsaCouponService {
 		}
 
 		// 직접다운로드인 경우 기간 체크
-		if (params.getDnGb() != null && params.getDnGb().equals("G058_20")) {
+		if(params.getDnGb() != null && params.getDnGb().equals("G058_20")) {
 			try {
 				Date date1 = format.parse(params.getDownStdt());
 				Date date2 = format.parse(params.getDownEddt());
 
-				log.info("checkCpnValidation params.getDownStdt() :  {}", params.getDownStdt());
-				log.info("checkCpnValidation params.getDownEddt :  {}", params.getDownEddt());
-				if (date2.before(date1)) {
+				log.info("checkCpnValidation params.getDownStdt() :  {}" , params.getDownStdt());
+				log.info("checkCpnValidation params.getDownEddt :  {}" , params.getDownEddt());
+				if(date2.before(date1)) {
 					throw new IllegalStateException("다운로드 종료날짜가 시작날짜보다 작습니다.");
 				}
 			} catch (ParseException exception) {
@@ -180,14 +152,14 @@ public class TsaCouponService {
 		}
 
 		// 첫구매 적용하는 경우 날짜 체크
-		if (params.getFirstYn() != null && params.getFirstYn().equals("Y")) {
+		if(params.getFirstYn() != null && params.getFirstYn().equals("Y")) {
 			try {
 				Date date1 = format.parse(params.getBuyStdt());
 				Date date2 = format.parse(params.getBuyEddt());
 
-				log.info("checkCpnValidation params.getBuyStdt() :  {}", params.getBuyStdt());
-				log.info("checkCpnValidation params.getBuyEddt :  {}", params.getBuyEddt());
-				if (date2.before(date1)) {
+				log.info("checkCpnValidation params.getBuyStdt() :  {}" , params.getBuyStdt());
+				log.info("checkCpnValidation params.getBuyEddt :  {}" , params.getBuyEddt());
+				if(date2.before(date1)) {
 					throw new IllegalStateException("첫구매 종료날짜가 시작날짜보다 작습니다.");
 				}
 			} catch (ParseException exception) {
@@ -195,7 +167,7 @@ public class TsaCouponService {
 		}
 
 		// 신규회원여부 적용하는 경우 날짜 체크
-		if (params.getCustJoinYn() != null && params.getCustJoinYn().equals("Y")) {
+		if(params.getCustJoinYn() != null && params.getCustJoinYn().equals("Y")) {
 
 		}
 

+ 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;
+	}
+	
 	
 	
 	

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

@@ -612,7 +612,7 @@ public class TsaBusinessController extends TsaBaseController {
 		ModelAndView mav = new ModelAndView();
 
 		mav.addObject("params", brand);
-		mav.setViewName("business/BrandSearchForm");
+		mav.setViewName("business/BrandSearchPopupForm");
 		return mav;
 	}
 

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

@@ -3,6 +3,9 @@ package com.style24.admin.biz.web;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.io.InputStream;
+import java.lang.reflect.Array;
+import java.lang.reflect.Type;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,30 +19,22 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
-import com.style24.admin.biz.service.TsaBusinessService;
-import com.style24.admin.biz.service.TsaCommonService;
-import com.style24.admin.biz.service.TsaCouponService;
-import com.style24.admin.biz.service.TsaMarketingService;
-import com.style24.admin.biz.service.TsaMorebetterService;
-import com.style24.admin.biz.service.TsaRendererService;
-import com.style24.admin.biz.service.TsaSystemService;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.style24.admin.biz.service.*;
 import com.style24.admin.support.controller.TsaBaseController;
 import com.style24.admin.support.security.session.TsaSession;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.TsaPageRequest;
-import com.style24.persistence.domain.CommonCode;
-import com.style24.persistence.domain.Coupon;
-import com.style24.persistence.domain.FreeGoodsPromotion;
-import com.style24.persistence.domain.MoreBetter;
-import com.style24.persistence.domain.MoreBetterBurden;
-import com.style24.persistence.domain.MoreBetterGoods;
-import com.style24.persistence.domain.MoreBetterSection;
+import com.style24.persistence.domain.*;
 
 import lombok.extern.slf4j.Slf4j;
 
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.rest.server.GagaResponse;
-
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import com.google.gson.reflect.TypeToken;
 /**
  * 마케팅 Controller
  * @author xodud1202
@@ -112,6 +107,7 @@ public class TsaMarketingController extends TsaBaseController {
 		return result;
 	}
 
+
 	/**
 	 * 사은품 프로모션 등록 팝업창
 	 * @param param
@@ -132,6 +128,7 @@ public class TsaMarketingController extends TsaBaseController {
 		return mav;
 	}
 
+
 	/* // xodud1202 진행 */
 
 	/* JSM 진행 */
@@ -324,8 +321,8 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @since 2020. 12. 29
 	 */
 	@ResponseBody
-	@GetMapping("/morebetterRegPopup/form")
-	public ModelAndView morebetterRegForm(@RequestParam(value = "mode") String mode, @RequestParam(value = "tmtbSeq", required = false) Integer tmtbSeq, MoreBetter moreBetter) {
+	@GetMapping("/morebetterPopup/form")
+	public ModelAndView morebetterRegForm(@RequestParam(value = "mode") String mode, @RequestParam(value = "tmtbSeq", required = false) Integer tmtbSeq,MoreBetter moreBetter) {
 		ModelAndView mav = new ModelAndView();
 
 		// 상품상태 : 등록일때는 '대기'
@@ -350,8 +347,8 @@ public class TsaMarketingController extends TsaBaseController {
 
 		//tmtb sq 자동생성
 		Integer tmtbSq;
-		if ("N".equals(mode)) {
-			tmtbSq = commonService.getNextSequence("SEQ_TMTB");
+		if("N".equals(mode)){
+			tmtbSq =  commonService.getNextSequence("SEQ_TMTB");
 			moreBetter.setTmtbSq(tmtbSq);
 		}
 
@@ -378,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;
 	}
 
@@ -396,7 +393,6 @@ public class TsaMarketingController extends TsaBaseController {
 		morebetterService.saveMoreBetterDetail(moreBetter);
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
-
 	/**
 	 * 다다익선 공급업체 삭제
 	 *
@@ -518,7 +514,7 @@ public class TsaMarketingController extends TsaBaseController {
 		// 할인방식 목록
 		mav.addObject("dcWayList", rendererService.getAvailCommonCodeList("G240"));
 
-		mav.setViewName("marketing/CouponRetrievePopupForm");
+		mav.setViewName("marketing/CouponRetrieveForm");
 
 		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 - 12
src/main/java/com/style24/persistence/domain/Coupon.java

@@ -4,6 +4,7 @@ import com.style24.persistence.TsaPageRequest;
 import com.style24.persistence.TscBaseDomain;
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.Collection;
 
 /**
@@ -43,10 +44,6 @@ public class Coupon extends TscBaseDomain {
     private String  reissuance;				// 쿠폰재발급여부(공통코드G231)
     private String  cpnStat;				// 쿠폰상태(공통코드G232)
     private String  endAlimYn;				// 만료알림여부
-    private Integer regNo;					// 등록자번호
-    private String  regDt;					// 등록일시
-    private Integer updNo;					// 수정자번호
-    private String  updDt;					// 수정일시
     private String  firstYn;				// 첫구매여부 (Y:구매이력이없음 | N:구매이력있음)
     private String  downYn;					// 다운로드가능여부(마이페이지, 상품상세) --> EP쿠폰, 난수쿠폰
     private String  custJoinStdt;			// 회원가입일자(FROM) 20200101 (신규회원여부의 판단을 가입일자로 설정함)
@@ -57,7 +54,6 @@ public class Coupon extends TscBaseDomain {
     private Integer useCnt;					// 쿠폰사용개수
     private String  payType;                 // 결제수단
     private String  custJoinYn;             // 신규회원여부
-    private String  regNm;                  // 사용자명
 
     private String  supplyCompCd;            // 공급업체코드
     private int     burdenRate;                 // 업체분담율
@@ -81,13 +77,6 @@ public class Coupon extends TscBaseDomain {
     private String  burdenList;              // 업체 분담율 리스트
     private String  cateList;                // 카테고리 리스트
 
-    private Collection<Coupon> supplyCompListNew;          // 공급업체 리스트
-    private Collection<Coupon>  brandListNew;               // 브랜드 리스트
-    private Collection<Coupon>  applyGoodsListNew;          // 적용상품 리스트
-    private Collection<Coupon>  exceptGoodsListNew;         // 제외상품 리스트
-    private Collection<Coupon>  burdenListNew;              // 업체 분담율 리스트
-    private Collection<Coupon>  cateListNew;                // 카테고리 리스트
-
     // Pagination
     private TsaPageRequest pageable;
     private int pageNo = 1;

+ 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/business/BrandSearchForm.html → src/main/webapp/WEB-INF/views/business/BrandSearchPopupForm.html

@@ -3,7 +3,7 @@
 	xmlns:th="http://www.thymeleaf.org">
 <!--
  *******************************************************************************
- * @source  : BrandSearchForm.html
+ * @source  : BrandSearchPopupForm.html
  * @desc    : 브랜드 팝업 Page
  *============================================================================
  * STYLE24

+ 9 - 5
src/main/webapp/WEB-INF/views/marketing/CouponCreatePopupForm.html

@@ -662,7 +662,7 @@
 
 			// 중복되지 않은 데이터 리스트에 추가
 			if(addChk) {
-				gagaAgGrid.addRowData(brandGridOptions, {"brandCd" : result[i].brandCd, "brandEnm" : result[i].brandEnm, "supplyCompNm" : result[i].supplyCompNm, "targetGb" : "G260_12"});
+				gagaAgGrid.addRowData(brandGridOptions, {"brandCd" : result[i].brandCd, "brandEnm" : result[i].brandEnm, "supplyCompNm" : result[i].supplyCompNm});
 			}
 		}
 	};
@@ -691,7 +691,7 @@
 
 			// 중복되지 않은 데이터 리스트에 추가
 			if(addChk) {
-				gagaAgGrid.addRowData(supplyGridOptions, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm, "targetGb" : "G260_13"});
+				gagaAgGrid.addRowData(supplyGridOptions, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm});
 			}
 		}
 	};
@@ -720,7 +720,7 @@
 
 			// 중복되지 않은 데이터 리스트에 추가
 			if(addChk) {
-				gagaAgGrid.addRowData(cateGridOptions, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm, "targetGb" : "G260_13"});
+				gagaAgGrid.addRowData(cateGridOptions, {"supplyCompCd" : result[i].supplyCompCd, "supplyCompNm" : result[i].supplyCompNm});
 			}
 		}
 	}
@@ -772,7 +772,7 @@
 			// 중복되지 않은 데이터 리스트에 추가
 			if(addChk) {
 				//gagaAgGrid.addRowData(OriginGridListOption, result[i], "goodsCd");
-				gagaAgGrid.addRowData(OriginGridListOption, {"goodsGb": goodsGbVal, "goodsCd" : result[i].goodsCd, "goodsNm" : result[i].goodsNm, "targetGb" : "G260_10"});
+				gagaAgGrid.addRowData(OriginGridListOption, {"goodsGb": goodsGbVal, "goodsCd" : result[i].goodsCd, "goodsNm" : result[i].goodsNm});
 			}
 		}
 	}
@@ -892,7 +892,7 @@
 		// 적용대상 - 브랜드 그리드 전체값 세팅
 		var brandAllData = gagaAgGrid.getAllRowData(brandGridOptions);
 		var jsonBrandData = JSON.stringify(brandAllData);
-		$('#couponCreateForm #brandlist').val(jsonBrandData);
+		$('#couponCreateForm #brandList').val(jsonBrandData);
 		// // 적용대상 - 카테고리 그리드 전체값 세팅
 		var cateAllData = gagaAgGrid.getAllRowData(cateGridOptions);
 		var jsonCateData = JSON.stringify(cateAllData);
@@ -905,6 +905,10 @@
 		var exceptGoodsAllData = gagaAgGrid.getAllRowData(excepGoodsGridOptions);
 		var jsonExceptGoodsData = JSON.stringify(exceptGoodsAllData);
 		$('#couponCreateForm #excepGoodsList').val(jsonExceptGoodsData);
+		// 입점업체분담율 그리드 전체값 세팅
+		var inCompBurdenAllData = gagaAgGrid.getAllRowData(inComGridOptions);
+		var jsonInCompBurdenData = JSON.stringify(inCompBurdenAllData);
+		$('#couponCreateForm #burdenList').val(jsonInCompBurdenData);
 
 	}
 

+ 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>

+ 26 - 24
src/main/webapp/ux/css/admin.ui.css

@@ -80,8 +80,8 @@ html,body,#wrapper,#container {min-height:100%; height:100%;}
 
 /* 로그인 :alert */
 .alertBox {position:relative; padding:10px 40px 10px 10px; margin-bottom:10px; border:1px solid; border-radius:.25rem; line-height:22px;}
-.alertBox .alertClose {position:absolute; top:0; right:5px; padding:0 10px; height:40px; text-indent:-9999px; background:url('../../image/btn_sltClose.png') no-repeat 50% 50%;}
-.alertBox .alertClose:hover {background:url('../../image/btn_sltCloseOn.png') no-repeat 50% 50%;}
+.alertBox .alertClose {position:absolute; top:0; right:5px; padding:0 10px; height:40px; text-indent:-9999px; background:url('/image/btn_sltClose.png') no-repeat 50% 50%;}
+.alertBox .alertClose:hover {background:url('/image/btn_sltCloseOn.png') no-repeat 50% 50%;}
 .alert-success {color:#155724; background-color:#d4edda; border-color:#c3e6cb;}
 .alert-info {color:#0c5460; background-color:#d1ecf1; border-color:#bee5eb;}
 .alert-warning {color:#856404; background-color:#fff3cd; border-color:#ffeeba;}
@@ -122,8 +122,8 @@ header a, header button {color:#fff;}
 #lnb a {display:block; color:#a7b1c2;}
 #lnb a:hover {color:#fff;}
 #lnb a.on {color:#fff;}
-#lnb .dep2 {padding:14px 20px 14px 35px; background:url('../../image/icon_dep2.png') 10px 50% no-repeat, url('../../image/icon_depArr2.png') 222px 50% no-repeat; background-color:#233646; cursor:pointer;}
-#lnb .dep2.on {display:block; background:url('../../image/icon_dep2On.png') 10px 50% no-repeat, url('../../image/icon_depArr2On.png') 222px 50% no-repeat; background-color:#233646;}
+#lnb .dep2 {padding:14px 20px 14px 35px; background:url('/image/icon_dep2.png') 10px 50% no-repeat, url('/image/icon_depArr2.png') 222px 50% no-repeat; background-color:#233646; cursor:pointer;}
+#lnb .dep2.on {display:block; background:url('/image/icon_dep2On.png') 10px 50% no-repeat, url('/image/icon_depArr2On.png') 222px 50% no-repeat; background-color:#233646;}
 #lnb .dep3 {padding:5px 0 10px 10px; border-left:4px solid #8597eb; cursor:pointer;}
 #lnb .dep3 a {padding:10px; cursor:pointer;}
 #lnb .dep4 {padding:5px 0 10px 20px; cursor:pointer;}
@@ -153,7 +153,7 @@ header a, header button {color:#fff;}
 .panelStyle h2 {margin-right:10px; font-size:14px; font-weight:bold;}
 .panelStyle h3 {margin-right:10px; font-size:12px; font-weight:normal; line-height:25px;}
 .panelStyle h3 i {padding-right:5px}
-.panelStyle h4 {padding-left:23px; height:31px; line-height:31px; background:url('../../image/icon_h4.png') no-repeat 3px 50%; color:#666;}
+.panelStyle h4 {padding-left:23px; height:31px; line-height:31px; background:url('/image/icon_h4.png') no-repeat 3px 50%; color:#666;}
 .panelStyle .panelBar {display:table; width:100%; padding-bottom:10px;}
 .panelStyle .panelBar h4 {margin-bottom:0;}
 .panelStyle .panelBar > li {display:table-cell;}
@@ -261,7 +261,7 @@ input[type=radio] {position:absolute; top:50%; left:0; width:18px; height:18px;
 label.chkBox, label.rdoBtn {position:relative; display:inline-block; padding-left:26px; height:22px; line-height:22px; vertical-align:middle; cursor:pointer;}
 /* 체크박스 :전체선택 버튼--------------- */
 input[type=checkbox] {position:absolute; top:0; left:0; width:0; height:0;}
-input[type=button].chkBox {margin-left:-2px; padding-left:24px; height:22px; vertical-align:middle; background:url('../../image/icon_checkN.png') no-repeat 0 50%;}
+input[type=button].chkBox {margin-left:-2px; padding-left:24px; height:22px; vertical-align:middle; background:url('/image/icon_checkN.png') no-repeat 0 50%;}
 
 /* 체크박스--------------- */
 label.chkBox::before {position:absolute; top:2px; left:0; content:''; width:16px; height:16px; border:1px solid #dbdbdb; background:#fff;}
@@ -365,9 +365,11 @@ td[rowspan] {border-bottom:1px solid #eee;}
 .btn-pink {color:#fff; background-color:#feada6; border:1px solid #feada6;}
 .btn-warning {color:#fff; background-color:#f8ac59; border:1px solid #f8ac59;}
 .btn-danger {color:#fff; background-color:#ed5565; border:1px solid #ed5565;}
-.btn-dark {color:#fff; background-color:#6c757d; border:1px solid #6c757d;}
+.btn-dark, .btn.active {color:#fff; background-color:#6c757d; border:1px solid #6c757d;}
 .btn.icn {line-height:28px; height:28px; padding:0 8px; background-color:#eee; border:1px solid #dbdbdb;}
 .btn.icn i {padding-top:6px; width:12px; vertical-align:top; font-size:14px; text-align:center;}
+.btnGroup{display:inline-block;}
+.btnGroup .btn + .btn{margin:0;}
 
 /* 페이징 --------------- */
 .tablePaging {position:relative; 	display:inline-block; vertical-align:middle;}
@@ -382,8 +384,8 @@ td[rowspan] {border-bottom:1px solid #eee;}
 .mSelected li {float:left; margin:2px 5px 3px; line-height:24px; padding:0 7px; background:#dbedf9; -ms-user-select:none; -moz-user-select:-moz-none; -webkit-user-select:none; user-select:none;}
 .mSelected li.srchFld {margin:0; padding:0; background:none;}
 .mSelected .srchFld input {width:25px; margin:0; padding:0; border:none; outline:none;}
-.mSelected a {border:none !important; float:right; margin-left:3px; padding:0 3px; width:15px; line-height:22px; text-indent:-9999px; background:url('../../image/btn_sltClose.png') no-repeat 100% 50%;}
-.mSelected a:hover {background:url('../../image/btn_sltCloseOn.png') no-repeat 100% 50%;}
+.mSelected a {border:none !important; float:right; margin-left:3px; padding:0 3px; width:15px; line-height:22px; text-indent:-9999px; background:url('/image/btn_sltClose.png') no-repeat 100% 50%;}
+.mSelected a:hover {background:url('/image/btn_sltCloseOn.png') no-repeat 100% 50%;}
 .mSelecting {display:none; overflow-y:auto; overflow-x:hidden; position:absolute; top:100%; left:-1px; z-index:1; width:100%; max-height:156px; line-height:30px; border:1px solid #e5e6e7; background:#fff;}
 .mSelecting li {margin:0 10px; cursor:pointer;}
 
@@ -399,7 +401,7 @@ td[rowspan] {border-bottom:1px solid #eee;}
 .lrStyle .uFile {margin-top:2px;}
 .uFileInput {position:absolute; top:0; width:100%; margin:0 !important; padding:0 !important; line-height:28px; border:none !important;}
 .uFileLabel {position:absolute; top:0; right:0; left:0; z-index:1; margin:0; padding:0 7px; width:cals(100% - 7px); line-height:28px; height:28px; background-color:#fff; border-radius:1px; overflow:hidden; white-space:nowrap;}
-.uFileLabel::after {position:absolute; top:0; right:0; bottom:0; width:30px; z-index:3; line-height:28px; content:" "; border-left:1px solid #dbdbdb; background:#eee url('../../image/icon_upload.png') no-repeat 50% 50%;}
+.uFileLabel::after {position:absolute; top:0; right:0; bottom:0; width:30px; z-index:3; line-height:28px; content:" "; border-left:1px solid #dbdbdb; background:#eee url('/image/icon_upload.png') no-repeat 50% 50%;}
 
 /* badge --------------- */
 .badge {float:right; margin-top:2px; padding:0 5px; min-width:9px; line-height:18px; color:#fff; font-size:12px; font-weight:600; border-radius:3px; text-align:center; text-shadow:1px 1px 1px rgba(0,0,0,0.4); letter-spacing:-0.5px;}
@@ -443,8 +445,8 @@ footer .f-right {float:right; padding-right:20px; line-height:38px;}
 .imgCard img {margin-right:15px;}
 .imgCard li:nth-of-type(2) {padding-top:20px; max-width:150px; line-height:24px}
 .imgCard p {font-size:12px;}
-.imgCard .cardClose {position:absolute; top:0; right:0; width:24px; background:url('../../image/btn_sltClose.png') no-repeat 50% 50%; text-indent:-9999px;}
-.imgCard .cardClose:hover {background:#f1f1f1 url('../../image/btn_sltCloseOn.png') no-repeat 50% 50%;}
+.imgCard .cardClose {position:absolute; top:0; right:0; width:24px; background:url('/image/btn_sltClose.png') no-repeat 50% 50%; text-indent:-9999px;}
+.imgCard .cardClose:hover {background:#f1f1f1 url('/image/btn_sltCloseOn.png') no-repeat 50% 50%;}
 .verticalTop {vertical-align:top;}
 
 /* 조회용 이미지 카드 */
@@ -452,14 +454,14 @@ footer .f-right {float:right; padding-right:20px; line-height:38px;}
 .cardArea2 ul, .cardArea2 .box {vertical-align:top; position:relative; display:inline-block; margin:10px; border:1px solid #dbdbdb; max-width:300px;}
 .cardArea2 li {display:table-cell; line-height:26px; vertical-align:middle;}
 .cardArea2 li:nth-of-type(2) {padding:0 10px;}
-.cardArea2 .cardDel {position:absolute; top:0; right:0; background:url('../../image/btn_sltClose.png') no-repeat 50% 50%; text-indent:-9999px;}
-.cardArea2 .cardDel:hover {background:#f1f1f1 url('../../image/btn_sltCloseOn.png') no-repeat 50% 50%;}
+.cardArea2 .cardDel {position:absolute; top:0; right:0; background:url('/image/btn_sltClose.png') no-repeat 50% 50%; text-indent:-9999px;}
+.cardArea2 .cardDel:hover {background:#f1f1f1 url('/image/btn_sltCloseOn.png') no-repeat 50% 50%;}
 
 /* 테이블 외부 안내문구 */
 .panelStyle > .notice {margin:0 0 15px ;}
 .panelContent > .notice {margin:15px 0;}
 .notice em {color:red;}
-.notice li, p.dot {padding-left:20px; background:url('../../image/dot_bk.png') no-repeat 5px 10px; line-height:24px;}
+.notice li, p.dot {padding-left:20px; background:url('/image/dot_bk.png') no-repeat 5px 10px; line-height:24px;}
 p.dot .btn {margin-left:10px !important;}
 p.dot em {color:red;}
 
@@ -483,14 +485,14 @@ p.dot em {color:red;}
 
 /* 유의사항 안내 */
 .infoBox {margin:0 20px 20px; padding:7px 10px; border-top:2px solid #dfe2e3; border-bottom:2px solid #dfe2e3; background:#fff}
-.infoBox p {padding-left:25px; line-height:20px; font-size:12px; background:url('../../image/dot_bk.png') no-repeat 10px 50%; background-size:3px auto;}
+.infoBox p {padding-left:25px; line-height:20px; font-size:12px; background:url('/image/dot_bk.png') no-repeat 10px 50%; background-size:3px auto;}
 
 /* 검색결과 안내문 */
 .srchNotice {padding-bottom:7px; font-weight:normal; font-size:14px;}
 .srchNotice em {color:red;}
 
 /* 필수입력항목 */
-.required {display:inline-block; position:relative; top:-3px; width:12px; height:7px; background:url('../../image/icon_required.png') no-repeat 0 50%;}
+.required {display:inline-block; position:relative; top:-3px; width:12px; height:7px; background:url('/image/icon_required.png') no-repeat 0 50%;}
 
 
 /* COLOR DESIGN -------------------------------------*/
@@ -646,8 +648,8 @@ hr {border:0; padding-bottom:10px;}/* 기본 여백 :10px */
 /*-- 회원추가 --------------*/
 .memAddWrap {line-height:26px; padding:3px 0;}
 .memAdd {margin-right:15px; padding:2px 27px 2px 0; position:relative; line-height:24px; height:24px; white-space:nowrap;}
-.memAdd button {position:absolute; top:3px; right:0; bottom:0; width:18px; height:18px; border:1px solid #dbdbdb; border-radius:3px; text-indent:-9999px; background:#eee url('../../image/btn_sltClose.png') no-repeat 50% 50%;}
-.memAdd button:hover {background:#eee url('../../image/btn_sltCloseOn.png') no-repeat 50% 50%;}
+.memAdd button {position:absolute; top:3px; right:0; bottom:0; width:18px; height:18px; border:1px solid #dbdbdb; border-radius:3px; text-indent:-9999px; background:#eee url('/image/btn_sltClose.png') no-repeat 50% 50%;}
+.memAdd button:hover {background:#eee url('/image/btn_sltCloseOn.png') no-repeat 50% 50%;}
 
 /*-- Date Picker --------------*/ /* 20200521 수정 */
 table.mtz-monthpicker {border:1px solid #ddd; border-top:none;}
@@ -657,8 +659,8 @@ table.mtz-monthpicker {border:1px solid #ddd; border-top:none;}
 .ui-datepicker .ui-datepicker-today,
 .ui-datepicker .ui-state-highlight {background:#fff7cf !important;}
 .ui-datepicker .ui-state-active {border:1px solid red !important;}
-.ui-datepicker .ui-datepicker-prev {position:absolute; top:3px; left:3px; width:30px; line-height:30px; text-indent:-9999px; background:url('../../image/icon_prev.png') no-repeat 50% 50%;}
-.ui-datepicker .ui-datepicker-next {position:absolute; top:3px; right:3px; width:30px; line-height:30px; text-indent:-9999px; background:url('../../image/icon_next.png') no-repeat 50% 50%;}
+.ui-datepicker .ui-datepicker-prev {position:absolute; top:3px; left:3px; width:30px; line-height:30px; text-indent:-9999px; background:url('/image/icon_prev.png') no-repeat 50% 50%;}
+.ui-datepicker .ui-datepicker-next {position:absolute; top:3px; right:3px; width:30px; line-height:30px; text-indent:-9999px; background:url('/image/icon_next.png') no-repeat 50% 50%;}
 .ui-datepicker .ui-datepicker-calendar {padding:5px; border:1px solid #ddd; border-top:none; text-align:center;}
 .ui-datepicker .ui-datepicker-calendar th{padding:5px 0}
 .ui-datepicker-week-end {text-align:center;}
@@ -814,12 +816,12 @@ table.mtz-monthpicker {border:1px solid #ddd; border-top:none;}
 /* 카테고리 Sort */
 .categoryOrder {margin-bottom:15px; background:#fcfcfc;}
 .categoryOrder li {clear:both; padding-left:15px; line-height:40px; cursor:move; border-top:1px dashed red; }
-.categoryOrder li button.on {background-image:url(../../image/icon_cate_minus.png);}
-/* .categoryOrder li:after {content:''; position:absolute; top:8px; left:-10px; width:21px; height:21px; background:url(../../image/line_cate.png)} */
+.categoryOrder li button.on {background-image:url(/image/icon_cate_minus.png);}
+/* .categoryOrder li:after {content:''; position:absolute; top:8px; left:-10px; width:21px; height:21px; background:url(/image/line_cate.png)} */
 .categoryOrder li:before{position:relative; content:''; width:1px; height:100%; background:#ddd;}
 .categoryOrder li ol{display:none}
 /* .categoryOrder ol:last-child li {background-image:none !important} */
-.categoryOrder button{position:relative; z-index:200; padding:0 15px 0; margin:0; line-height:40px; cursor:pointer; background-image:url(../../image/icon_cate_plus.png); background-repeat:no-repeat; background-position:0 0;}
+.categoryOrder button{position:relative; z-index:200; padding:0 15px 0; margin:0; line-height:40px; cursor:pointer; background-image:url(/image/icon_cate_plus.png); background-repeat:no-repeat; background-position:0 0;}
 
 /* 메인 공지팝업 */
 .noticeWrap{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:800px;background-color:#fff;}

+ 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');