浏览代码

Merge remote-tracking branch 'origin/xodud1202' into card007

# Conflicts:
#	src/main/java/com/style24/front/biz/service/TsfCustomerService.java
card007 5 年之前
父节点
当前提交
07f421eebc
共有 33 个文件被更改,包括 1837 次插入5106 次删除
  1. 10 0
      src/main/java/com/style24/front/biz/dao/TsfCartDao.java
  2. 21 0
      src/main/java/com/style24/front/biz/dao/TsfCommonDao.java
  3. 65 20
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  4. 30 0
      src/main/java/com/style24/front/biz/service/TsfCommonService.java
  5. 0 4
      src/main/java/com/style24/front/biz/service/TsfCouponService.java
  6. 26 0
      src/main/java/com/style24/front/biz/web/TsfCartController.java
  7. 225 4
      src/main/java/com/style24/front/biz/web/TsfCommonController.java
  8. 30 163
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  9. 0 2
      src/main/java/com/style24/front/biz/web/TsfPgController.java
  10. 1 0
      src/main/java/com/style24/persistence/domain/Cart.java
  11. 108 9
      src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml
  12. 27 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfCommon.xml
  13. 77 117
      src/main/webapp/WEB-INF/views/web/cart/CartChangeOptionPopupWeb.html
  14. 1 1
      src/main/webapp/WEB-INF/views/web/cart/CartChangeOptionPopupWeb_20210319.html
  15. 140 13
      src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html
  16. 48 0
      src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html
  17. 304 167
      src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb.html
  18. 259 0
      src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb_20210401.html
  19. 4 18
      src/main/webapp/WEB-INF/views/web/order/OrderDcAmtInfoWeb.html
  20. 32 24
      src/main/webapp/WEB-INF/views/web/order/OrderDeliveryAddrInfoWeb.html
  21. 221 111
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html
  22. 0 828
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb_20210216.html
  23. 0 1720
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb_20210304.html
  24. 0 1695
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb_20210306.html
  25. 9 19
      src/main/webapp/WEB-INF/views/web/order/OrderFreegiftInfoPopWeb.html
  26. 67 51
      src/main/webapp/WEB-INF/views/web/order/OrderFreegiftInfoWeb.html
  27. 5 0
      src/main/webapp/WEB-INF/views/web/order/OrderListInfoWeb.html
  28. 5 7
      src/main/webapp/WEB-INF/views/web/order/OrderNoMemberWeb.html
  29. 16 5
      src/main/webapp/WEB-INF/views/web/order/OrderPaymentInfoWeb.html
  30. 31 65
      src/main/webapp/WEB-INF/views/web/popup/DelvAddrAddPopWeb.html
  31. 39 28
      src/main/webapp/WEB-INF/views/web/popup/DelvAddrChangePopWeb.html
  32. 27 30
      src/main/webapp/WEB-INF/views/web/popup/DelvAddrModifyPopWeb.html
  33. 9 5
      src/main/webapp/WEB-INF/views/web/popup/DelvMemoChangePopWeb.html

+ 10 - 0
src/main/java/com/style24/front/biz/dao/TsfCartDao.java

@@ -281,4 +281,14 @@ public interface TsfCartDao {
 	 * @since 2021. 03. 26
 	 */
 	Collection<Cart> getAddCartInfoForMypage(Cart cart);
+
+	/**
+	 * 마이페이지 장바구니 담기 관련 정보 조회
+	 *
+	 * @param Cart
+	 * @return Collection<Cart>
+	 * @author card007
+	 * @since 2021. 03. 26
+	 */
+	Collection<Order> getCartDetailInfo(Order param);
 }

+ 21 - 0
src/main/java/com/style24/front/biz/dao/TsfCommonDao.java

@@ -4,6 +4,7 @@ import org.springframework.stereotype.Repository;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.InflowHst;
+import com.style24.persistence.domain.Order;
 
 /**
  * 공통 Dao
@@ -61,5 +62,25 @@ public interface TsfCommonDao {
 //	 * @since 2020. 08. 10
 //	 */
 //	void saveMobileDevice(TsfMobileDevice mobileDevice);
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	int updateDeliverAddr(Order order);
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	int updateDeliverAddrDelvMemo(Order order);
 
 }

+ 65 - 20
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -206,8 +206,6 @@ public class TsfCartService {
 
 				cartDao.insertCartDetailInfo(param);		// 장바구니 상세 저장
 				cartDao.insertCartDetailHst(param);         // 장바구니 상세 이력 저장
-
-				log.info("CHECK INFO PARAM :::: {}", param.toString());
 			}
 		}
 	}
@@ -314,7 +312,6 @@ public class TsfCartService {
 		if(cartSqs.size() > 0) {
 			// 다다익선 할인 상품 조회 (품절 상품 제외)
 			Collection<Order> moreBetterAmtList = new ArrayList<Order>();
-			log.info("CHECK CUST_NO :::: {}", order.getCustNo());
 			if(order.getCustNo() > 0) {
 				moreBetterAmtList = getMoreBetterAmtList(order);
 			}
@@ -397,14 +394,10 @@ public class TsfCartService {
 							applyInfo.setQtyDcWay(section.getDcWay());
 							applyInfo.setQtyDcVal(section.getDcVal());
 						}
-
-						log.info("CHECK getQtyTmtbSq, getApplyQtySectionYn ::::: 1 / {} / {}", applyInfo.getQtyTmtbSq(), applyInfo.getApplyQtySectionYn());
 					} else {
 						if (applyInfo.getQtySectionVal() < 1 && applyInfo.getQtyGoodsGb().equals(TscConstants.GoodsGb.BASE.value())) {
 							applyInfo.setApplyQtySectionYn("N");
 						}
-
-						log.info("CHECK getQtyTmtbSq, getApplyQtySectionYn ::::: 2 / {} / {}", applyInfo.getQtyTmtbSq(), applyInfo.getApplyQtySectionYn());
 					}
 				}
 
@@ -417,14 +410,10 @@ public class TsfCartService {
 							applyInfo.setAmtDcWay(section.getDcWay());
 							applyInfo.setAmtDcVal(section.getDcVal());
 						}
-
-						log.info("CHECK getAmtTmtbSq, getApplyAmtSectionYn ::::: 1 / {} / {}", applyInfo.getAmtTmtbSq(), applyInfo.getApplyAmtSectionYn());
 					} else {
 						if(applyInfo.getAmtSectionVal() < 1 && applyInfo.getAmtGoodsGb().equals(TscConstants.GoodsGb.BASE.value())) {
 							applyInfo.setApplyAmtSectionYn("N");
 						}
-
-						log.info("CHECK getAmtTmtbSq, getApplyAmtSectionYn ::::: 2 / {} / {}", applyInfo.getAmtTmtbSq(), applyInfo.getApplyAmtSectionYn());
 					}
 				}
 			}
@@ -466,8 +455,6 @@ public class TsfCartService {
 						
 						resultAmt.setTmtb1DcAmt(tempAmt - resultAmt.getTmtbDcAmt()); // tmtb1 할인금액
 					}
-
-					log.info("CHECK !!!!!!!!!!!!!!!!!! ::::: 1 {} / {}", resultAmt.getCartSq(), resultAmt.getTmtbDcAmt());
 				} else {                                                                // 할인 방식 할인율일 경우
 					tempAmt = resultAmt.getCurrPrice();
 					
@@ -475,8 +462,6 @@ public class TsfCartService {
 					resultAmt.setTmtbDcAmt(tempAmt);
 					
 					resultAmt.setTmtb1DcAmt((int) (tempAmt * (resultAmt.getQtyDcVal() / 100.0))); // tmtb1 할인금액
-
-					log.info("CHECK !!!!!!!!!!!!!!!!!! ::::: 2 {} / {}", resultAmt.getCartSq(), resultAmt.getTmtbDcAmt());
 				}
 			}
 
@@ -520,16 +505,12 @@ public class TsfCartService {
 						
 						resultAmt.setTmtb2DcAmt(tempAmt - resultAmt.getTmtbDcAmt()); // tmtb1 할인금액
 					}
-
-					log.info("CHECK !!!!!!!!!!!!!!!!!! ::::: 3 {} / {}", resultAmt.getCartSq(), resultAmt.getTmtbDcAmt());
 				} else {                                                                // 할인 방식 할인율일 경우
 					tempAmt = resultAmt.getCurrPrice();
 					tempAmt = (int) (tempAmt - (tempAmt * (resultAmt.getAmtDcVal() / 100.0)));
 					resultAmt.setTmtbDcAmt(tempAmt);
 					
 					resultAmt.setTmtb2DcAmt((int) (resultAmt.getCurrPrice() * (resultAmt.getAmtDcVal() / 100.0))); // tmtb1 할인금액
-
-					log.info("CHECK !!!!!!!!!!!!!!!!!! ::::: 4 {} / {}", resultAmt.getCartSq(), resultAmt.getTmtbDcAmt());
 				}
 			}
 		}
@@ -647,7 +628,6 @@ public class TsfCartService {
 					compCnt++;
 					if("N".equals(param.getSoldoutYn()) && "Y".equals(param.getOrdCanYn())) {
 						delv.setCompSumPrice(delv.getCompSumPrice() + param.getCurrPrice());
-						log.info("CHECK CURR_PRICE :::: {} / {}", param.getCartSq(), param.getCurrPrice());
 					}
 					if (compCnt == 1) {
 						param.setFirstCompYn("Y");
@@ -838,9 +818,23 @@ public class TsfCartService {
 						color.setSoldoutYn("N");
 					}
 
+					if(color.getCartDtlSq() > 0) {
+						comp.setCartDtlSq(color.getCartDtlSq());
+						comp.setColorNm(color.getCartColorNm());
+						comp.setOptCd1(color.getOptCd1());
+						comp.setGoodsCd(cart.getGoodsCd());
+					}
+
 					color.setCartSq(cart.getCartSq());
 					color.setCartImgList(cartDao.selectCartSelfGoodsOptionImgList(color));
 					color.setCartSizeList(cartDao.selectCartGoodsSizeList(color));
+
+					for(Cart size : color.getCartSizeList()) {
+						if(size.getCartDtlSq() > 0) {
+							comp.setOptCd(size.getCartOptCd());
+							comp.setOptCd2(size.getCartOptCd2());
+						}
+					}
 				}
 			}
 
@@ -1029,4 +1023,55 @@ public class TsfCartService {
 	public Collection<Cart> getAddCartInfoForMypage(Cart cart) {
 		return cartDao.getAddCartInfoForMypage(cart);
 	}
+
+	/**
+	 * 장바구니 주문하기 버튼 클릭시 재고 및 상태 체크
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author xodud1202
+	 * @since 2021. 04. 01
+	 */
+	public Collection<Order> getOrderListConditionCheck(Order param) {
+		log.info("CHECK LOGIN_INFO ::::: {}", param.getCustNo());
+		int custNo = 0;
+		if(TsfSession.isLogin()) {
+			custNo = TsfSession.getInfo().getCustNo();
+		}
+
+		if(param.getCustNo() > 0 && custNo == 0) {
+			return null;
+		}
+
+		Collection<Order> cartGoodsList = cartDao.getCartGoodsList(param);
+
+		for(Order order : cartGoodsList) {
+			if("Y".equals(order.getSoldoutYn())) {
+				if(order.getOrdCanQty() < order.getGoodsQty()) {
+					Collection<Order> conditionList = cartDao.getCartDetailInfo(order);
+					for(Order condition : conditionList) {
+						if("Y".equals(condition.getSoldoutYn())) {
+							order.setItemCd(condition.getItemCd());
+							order.setColorNm(condition.getColorNm());
+							order.setOptCd2(condition.getOptCd2());
+							order.setMaxOrdQty(condition.getMaxOrdQty());
+						}
+					}
+				}
+			}
+		}
+
+		return cartGoodsList;
+	}
+
+	/**
+	 * 장바구니 주문하기 버튼 클릭시 재고 및 상태 체크
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author xodud1202
+	 * @since 2021. 04. 02
+	 */
+	public Order updateCartGoodsQty(Order param) {
+		// TODO 장바구니 GOODS_QTY 변경
+		return null;
+	}
 }

+ 30 - 0
src/main/java/com/style24/front/biz/service/TsfCommonService.java

@@ -10,6 +10,7 @@ import com.style24.core.support.env.TscConstants;
 import com.style24.front.biz.dao.TsfCommonDao;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.InflowHst;
+import com.style24.persistence.domain.Order;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -83,5 +84,34 @@ public class TsfCommonService {
 //	public void saveMobileDevice(TsfMobileDevice mobileDevice) {
 //		commonDao.saveMobileDevice(mobileDevice);
 //	}
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	@Transactional("shopTxnManager")
+	public int updateDeliverAddr(Order order) {
+		return commonDao.updateDeliverAddr(order);
+	}
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	@Transactional("shopTxnManager")
+	public int updateDeliverAddrDelvMemo(Order order) {
+		return commonDao.updateDeliverAddrDelvMemo(order);
+	}
+	
+	
+	
 
 }

+ 0 - 4
src/main/java/com/style24/front/biz/service/TsfCouponService.java

@@ -196,7 +196,6 @@ public class TsfCouponService {
 				for (Order cpnInfo : serialGoodsList) {
 					if ("A".equals(cpnInfo.getApplyScope()) || param.getCartSqArr()[i] == cpnInfo.getCartSq()) {
 						cpnInfo.setCurrPrice(param.getCurrPrices()[i]);
-						log.info("CHECK CURR_PRICE ::::: {}", cpnInfo.getCurrPrice());
 					}
 				}
 			}
@@ -208,7 +207,6 @@ public class TsfCouponService {
 				buyLimitAmt = info.getBuyLimitAmt();								// 최대할인율과 최소주문금액은 한 쿠폰에 값이 동일
 				if (TscConstants.DcWay.RATE.value().equals(info.getDcWay())) {		// 할인방식이 할인율이면 각 상품별 할인금액을 따로 계산해야함
 					int dcAmt = (int)(info.getCurrPrice() * (info.getDcVal() / 100.0));		// 해당상품 할인금
-					log.info("CHECK TOT_DC_AMT ::::: {} / {} / {}", info.getCurrPrice(), info.getDcVal(), dcAmt);
 					totDcAmt = totDcAmt + dcAmt;									// 적용 상품 총 할인금액
 				} else {															// 할인 방식이 금액일 경우
 					totDcAmt = info.getDcVal();
@@ -230,8 +228,6 @@ public class TsfCouponService {
 			}
 		}
 
-		log.info("CHECK TOTAL_DC_AMT ::::: {}", totDcAmt);
-
 		return totDcAmt;
 	}
 

+ 26 - 0
src/main/java/com/style24/front/biz/web/TsfCartController.java

@@ -230,4 +230,30 @@ public class TsfCartController extends TsfBaseController {
 
 		return result;
 	}
+
+	/**
+	 * 장바구니 주문하기 시점 재고 및 상태 체크
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @since 2021. 04. 02
+	 */
+	@ResponseBody
+	@PostMapping("/order/list/check")
+	public Collection<Order> selectOrderListCheck(@RequestBody Order param) {
+		return cartService.getOrderListConditionCheck(param);
+	}
+
+	/**
+	 * 장바구니 최소 주문 수량으로 변경
+	 * @param param
+	 * @return
+	 * @author xodud1202
+	 * @since 2021. 04. 02
+	 */
+	@ResponseBody
+	@PostMapping("/update/goodsQty")
+	public Order updateCartGoodsQty(@RequestBody Order param) {
+		Order result = new Order();
+		return cartService.updateCartGoodsQty(param);}
 }

+ 225 - 4
src/main/java/com/style24/front/biz/web/TsfCommonController.java

@@ -15,20 +15,25 @@ import org.springframework.stereotype.Controller;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.ModelAndView;
 
+import com.gagaframework.web.util.GagaFileUploadUtil;
+import com.gagaframework.web.util.GagaFileUtil;
+import com.gagaframework.web.util.GagaUploadedFileInfo;
+import com.style24.core.biz.service.TscOrderService;
+import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.front.biz.service.TsfCommonService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.domain.Order;
 
 import lombok.extern.slf4j.Slf4j;
 
-import com.gagaframework.web.util.GagaFileUploadUtil;
-import com.gagaframework.web.util.GagaFileUtil;
-import com.gagaframework.web.util.GagaUploadedFileInfo;
-
 /**
  * 공통 Controller
  *
@@ -39,9 +44,18 @@ import com.gagaframework.web.util.GagaUploadedFileInfo;
 @RequestMapping("/common")
 @Slf4j
 public class TsfCommonController extends TsfBaseController {
+	
+	@Autowired
+	private TscMessageByLocale message;
 
 	@Autowired
 	private Environment env;
+	
+	@Autowired
+	private TscOrderService coreOrderService;
+	
+	@Autowired
+	private TsfCommonService commonService;
 
 	@Value("${upload.default.target.path}")
 	private String uploadTargetPath;
@@ -184,5 +198,212 @@ public class TsfCommonController extends TsfBaseController {
 	public boolean checkLogin() {
 		return TsfSession.isLogin();
 	}
+	
+	
+	/**
+	 * 배송지정보변경팝업
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@PostMapping(value = "/delvAddrChangePop")
+	public ModelAndView delvAddrChangePop(Order order) {
+		
+		ModelAndView mav = new ModelAndView();
+		
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setCustNo(0);
+		}
+		
+		// 1.0 주문고객 배송지정보조회
+		Collection<Order> deliveryAddrList = coreOrderService.getDeliveryAddrInfo(order);
+		
+		mav.addObject("deliveryAddrList", deliveryAddrList);	// 배송지정보
+		mav.setViewName(super.getDeviceViewName("popup/DelvAddrChangePop"));
+		
+		return mav;
+	}
+	
+	/**
+	 * 배송지정보수정팝업
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/delvAddrModifyPop")
+	public ModelAndView delvAddrModifyPop(@RequestBody Order order) {
+		
+		ModelAndView mav = new ModelAndView();
+		Order deliveryAddrInfo = new Order();
+		
+		// 2. 로그인체크 후 고객정보 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+			
+			// 2.1 주문고객 배송지정보조회
+			Collection<Order> deliveryAddrList = coreOrderService.getDeliveryAddrInfo(order);
+			
+			for (Order deliveryAddr : deliveryAddrList) {
+				// 회원 배송지 번호가 존재하면 실행
+				if (order.getCustDelvAddrSq() > 0) {
+					if (order.getCustDelvAddrSq() == deliveryAddr.getCustDelvAddrSq()) {
+						deliveryAddrInfo = deliveryAddr;
+					}
+				}
+			}
+		} 
+		
+		mav.addObject("deliveryAddrInfo", deliveryAddrInfo);						// 배송지정보
+		mav.setViewName(super.getDeviceViewName("popup/DelvAddrModifyPop"));
+		
+		return mav;
+	}
+	
+	/**
+	 * 배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@PostMapping(value = "/updateCustDeliveryAddr")
+	public String updateDeliveryAddr(@RequestBody Order order) {
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setCustNo(0);
+		}
+		
+		coreOrderService.updateCustDeliveryAddr(order);
+		
+		return message.getMessage("SUCC_0001");
+	}
+	
+	/**
+	 * 배송지정보추가팝업
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/delvAddrAddPop")
+	public ModelAndView delvAddrAddPop(Order order) {
+		
+		ModelAndView mav = new ModelAndView();
+		mav.addObject("isLogin"	, TsfSession.isLogin());					// 로그인여부
+		mav.setViewName(super.getDeviceViewName("popup/DelvAddrAddPop"));
+
+		return mav;
+	}
+	
+	/**
+	 * 배송지정보추가
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@PostMapping(value = "/createCustDeliveryAddr")
+	public int createDeliveryAddr(@RequestBody Order order) {
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setCustNo(0);
+		}
+		
+		coreOrderService.createCustDeliveryAddr(order);
+		
+		int custDelvAddrSq = order.getCustDelvAddrSq();
+		
+		return custDelvAddrSq;
+	}
+	
+	/**
+	 * 배송지메모변경팝업
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/delvMemoChangePop")
+	public ModelAndView delvMemoChangePop(@RequestBody Order order) {
+		
+		ModelAndView mav = new ModelAndView();
+
+		log.info("ordNo >>> {}", order.getOrdNo());
+		log.info("delvMemo >>> {}", order.getDelvMemo());
+		
+		mav.addObject("ordNo", order.getOrdNo() == null ? 0 : order.getOrdNo());
+		
+		mav.addObject("delvMemo"	, order.getDelvMemo());
+		mav.setViewName(super.getDeviceViewName("popup/DelvMemoChangePop"));
+		
+		return mav;
+	}
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	@ResponseBody
+	@PostMapping(value = "/updateDeliverAddr")
+	public int updateDeliverAddr(@RequestBody Order order) {
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setCustNo(0);
+		}
+		
+		int rtn = commonService.updateDeliverAddr(order);
+		
+		return rtn;
+	}
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	@ResponseBody
+	@PostMapping(value = "/updateDeliverAddrDelvMemo")
+	public int updateDeliverAddrDelvMemo(@RequestBody Order order) {
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setCustNo(0);
+		}
+		
+		int rtn = commonService.updateDeliverAddrDelvMemo(order);
+		
+		return rtn;
+	}
 
 }

+ 30 - 163
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -175,6 +175,8 @@ public class TsfOrderController extends TsfBaseController {
 		// 3.1 즉시할인, 다다익선 할인금액 정보 적용 정보
 		Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
 		
+		log.info("tmtbGoodsApplyList.size() ::: {} ", tmtbGoodsApplyList.size());
+		
 		// 3.2 배송정보조회(장바구니상품목록)
 		GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList, order);
 		
@@ -237,6 +239,7 @@ public class TsfOrderController extends TsfBaseController {
 		if (TsfSession.isLogin()) {
 			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
 		} else {
+			order.setCustNo(0); // 고객번호등록
 			order.setJsessionId(TsfSession.getSessionId());
 		}
 		
@@ -278,6 +281,7 @@ public class TsfOrderController extends TsfBaseController {
 		if (TsfSession.isLogin()) {
 			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
 		} else {
+			order.setCustNo(0); // 고객번호등록
 			order.setJsessionId(TsfSession.getSessionId());
 		}
 		
@@ -319,14 +323,28 @@ public class TsfOrderController extends TsfBaseController {
 				index++;
 			}
 		} else {
-			// 2.1 주문고객 정보조회
-			deliveryAddrInfo.setDelvAddrNm(deliveryAddrInfo.getCustNm());
-			deliveryAddrInfo.setRecipNm(order.getCustNm());
-			deliveryAddrInfo.setRecipPhnno(order.getCellPhnno());
+			// 2.2 비회원 주문고객 정보조회
+			if (order.getRecipNm() == null || "".equals(order.getRecipNm())) {
+				deliveryAddrInfo.setRecipNm(order.getCustNm());
+			} else {
+				deliveryAddrInfo.setRecipNm(order.getRecipNm());
+			}
+			
+			if (order.getRecipPhnno() == null || "".equals(order.getRecipPhnno())) {
+				deliveryAddrInfo.setRecipPhnno(order.getCellPhnno());
+			} else {
+				deliveryAddrInfo.setRecipPhnno(order.getRecipPhnno());
+			}
+			
 			deliveryAddrInfo.setRecipZipcode(order.getRecipZipcode());
 			deliveryAddrInfo.setRecipBaseAddr(order.getRecipBaseAddr());
 			deliveryAddrInfo.setRecipDtlAddr(order.getRecipDtlAddr());
-			deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
+			
+			if (order.getDelvMemo() == null || "".equals(order.getDelvMemo())) {
+				deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
+			} else {
+				deliveryAddrInfo.setDelvMemo(order.getDelvMemo());
+			}
 		}
 		
 		ModelAndView mav = new ModelAndView();
@@ -354,6 +372,7 @@ public class TsfOrderController extends TsfBaseController {
 		if (TsfSession.isLogin()) {
 			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
 		} else {
+			order.setCustNo(0); // 고객번호등록
 			order.setJsessionId(TsfSession.getSessionId());
 		}
 
@@ -391,6 +410,7 @@ public class TsfOrderController extends TsfBaseController {
 		if (TsfSession.isLogin()) {
 			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
 		} else {
+			order.setCustNo(0); // 고객번호등록
 			order.setJsessionId(TsfSession.getSessionId());
 		}
 		
@@ -440,6 +460,7 @@ public class TsfOrderController extends TsfBaseController {
 		if (TsfSession.isLogin()) {
 			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
 		} else {
+			order.setCustNo(0); // 고객번호등록
 			order.setJsessionId(TsfSession.getSessionId());
 		}
 		
@@ -519,6 +540,7 @@ public class TsfOrderController extends TsfBaseController {
 		if (TsfSession.isLogin()) {
 			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
 		} else {
+			order.setCustNo(0); // 고객번호등록
 			order.setJsessionId(TsfSession.getSessionId());
 		}
 		
@@ -566,6 +588,7 @@ public class TsfOrderController extends TsfBaseController {
 		// 3. 주문기본정보등록(주문접수)
 		coreOrderService.createPreOrder(order);
 		
+		log.info("order.getEntryNo()           ::: {}", order.getEntryNo());
 		log.info("order.getPgGb()              ::: {}", order.getPgGb());
 		log.info("order.getPayMeans()          ::: {}", order.getPayMeans());
 		log.info("order.getOrdNo()             ::: {}", order.getOrdNo());
@@ -692,6 +715,8 @@ public class TsfOrderController extends TsfBaseController {
 		mav.addObject("savePntSumAmt"		, resultMap.get("savePntSumAmt"));		// 적립예정포인트합계
 		mav.addObject("mileageDcAmt"		, resultMap.get("mileageDcAmt"));		// 마일리지사용합계
 		mav.addObject("allianceDcAmt"		, resultMap.get("allianceDcAmt"));		// 제휴할인합계
+		mav.addObject("isLogin"				, TsfSession.isLogin());				// 로그인여부
+		mav.addObject("delvAddrSq"			, resultMap.get("delvAddrSq"));			// 배송지번호
 		
 		// TODO 주문정보조회
 		mav.setViewName(super.getDeviceViewName("order/OrderComplete"));
@@ -712,167 +737,9 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// 1. 총알배송가능 지역, 총알배송 가능 시간 체크
 		int rtn = coreOrderService.getDailyDeliveryCheck(order);
-		
 		return rtn;
 	}
 	
-	/**
-	 * 배송지정보변경팝업
-	 *
-	 * @param
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 02. 17
-	 */
-	@ResponseBody
-	@PostMapping(value = "/delvAddrChangePop")
-	public ModelAndView delvAddrChangePop(Order order) {
-		
-		ModelAndView mav = new ModelAndView();
-		
-		// 1. 로그인체크 후 custNo 설정
-		if (TsfSession.isLogin()) {
-			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
-		} else {
-			order.setCustNo(0);
-		}
-		
-		// 1.0 주문고객 배송지정보조회
-		Collection<Order> deliveryAddrList = coreOrderService.getDeliveryAddrInfo(order);
-		
-		mav.addObject("deliveryAddrList", deliveryAddrList);	// 배송지정보
-		mav.setViewName(super.getDeviceViewName("order/OrderDelvAddrChangePop"));
-		
-		return mav;
-	}
-	
-	/**
-	 * 배송지정보수정팝업
-	 *
-	 * @param
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 02. 17
-	 */
-	@ResponseBody
-	@RequestMapping(value = "/delvAddrModifyPop")
-	public ModelAndView delvAddrModifyPop(@RequestBody Order order) {
-		
-		ModelAndView mav = new ModelAndView();
-		Order deliveryAddrInfo = new Order();
-		
-		// 2. 로그인체크 후 고객정보 설정
-		if (TsfSession.isLogin()) {
-			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
-			
-			// 2.1 주문고객 배송지정보조회
-			Collection<Order> deliveryAddrList = coreOrderService.getDeliveryAddrInfo(order);
-			
-			for (Order deliveryAddr : deliveryAddrList) {
-				// 회원 배송지 번호가 존재하면 실행
-				if (order.getCustDelvAddrSq() > 0) {
-					if (order.getCustDelvAddrSq() == deliveryAddr.getCustDelvAddrSq()) {
-						deliveryAddrInfo = deliveryAddr;
-					}
-				}
-			}
-		} 
-		
-		mav.addObject("deliveryAddrInfo", deliveryAddrInfo);						// 배송지정보
-		mav.setViewName(super.getDeviceViewName("order/OrderDelvAddrModifyPop"));
-		
-		return mav;
-	}
-	
-	/**
-	 * 배송지정보수정
-	 *
-	 * @param
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 02. 17
-	 */
-	@ResponseBody
-	@PostMapping(value = "/updateCustDeliveryAddr")
-	public String updateDeliveryAddr(@RequestBody Order order) {
-		// 1. 로그인체크 후 custNo 설정
-		if (TsfSession.isLogin()) {
-			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
-		} else {
-			order.setCustNo(0);
-		}
-		
-		coreOrderService.updateCustDeliveryAddr(order);
-		
-		return message.getMessage("SUCC_0001");
-	}
-	
-	/**
-	 * 배송지정보추가팝업
-	 *
-	 * @param
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 02. 17
-	 */
-	@ResponseBody
-	@RequestMapping(value = "/delvAddrAddPop")
-	public ModelAndView delvAddrAddPop(Order order) {
-		
-		ModelAndView mav = new ModelAndView();
-		mav.addObject("isLogin"	, TsfSession.isLogin());					// 로그인여부
-		mav.setViewName(super.getDeviceViewName("order/OrderDelvAddrAddPop"));
-
-		return mav;
-	}
-	
-	/**
-	 * 배송지정보추가
-	 *
-	 * @param
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 02. 17
-	 */
-	@ResponseBody
-	@PostMapping(value = "/createCustDeliveryAddr")
-	public String createDeliveryAddr(@RequestBody Order order) {
-		// 1. 로그인체크 후 custNo 설정
-		if (TsfSession.isLogin()) {
-			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
-		} else {
-			order.setCustNo(0);
-		}
-		
-		coreOrderService.createCustDeliveryAddr(order);
-		
-		return message.getMessage("SUCC_0001");
-	}
-	
-	/**
-	 * 배송지메모변경팝업
-	 *
-	 * @param
-	 * @return
-	 * @author jsh77b
-	 * @since 2021. 02. 17
-	 */
-	@ResponseBody
-	@RequestMapping(value = "/delvMemoChangePop")
-	public ModelAndView delvMemoChangePop(Order order) {
-		
-		ModelAndView mav = new ModelAndView();
-
-		log.info("ordNo >>> {}", order.getOrdNo());
-		mav.addObject("ordNo", order.getOrdNo() == null ? 0 : order.getOrdNo());
-
-		mav.setViewName(super.getDeviceViewName("order/OrderDelvMemoChangePop"));
-		
-		return mav;
-	}
-	
-	
-	
 	/**
 	 * 사은품안내팝업
 	 *

+ 0 - 2
src/main/java/com/style24/front/biz/web/TsfPgController.java

@@ -116,8 +116,6 @@ public class TsfPgController extends TsfBaseController {
 		pd.setSite_cd(request.getParameter("site_cd"));
 		pd.setEscw_used(request.getParameter("escw_used") == null ? "" : request.getParameter("escw_used"));
 
-		log.info("CHECK GOOD_NAME ::: {}", pd.getGood_name());
-
 		String responseType = request.getParameter("response_type");
 		if("JSON".equals(responseType) || "XML".equals(responseType)) {
 			pd.setResponse_type(responseType);

+ 1 - 0
src/main/java/com/style24/persistence/domain/Cart.java

@@ -36,6 +36,7 @@ public class Cart extends TscBaseDomain {
 	private String ithrCd;			// 유입경로(공통코드 G027)
 	private String contentsLoc;		// 컨텐츠위치(공통코드G028)
 	private String dealGoodsCd;		// 딜상품코드
+	private String cartOptCd2;		// 장바구니 사이즈 옵션
 	private String cartOptCd1;		// 장바구니 컬러 옵션
 	private String cartOptCd;		// 장바구니 옵션
 	private String cartColorNm;		// 장바구니 컬러명

+ 108 - 9
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -504,6 +504,7 @@
 			 , GROUP_CONCAT(Z.ITEM_QTY ORDER BY Z.CART_DTL_SQ) AS ITEM_QTYR
 			 , (SELECT COUNT(1) CNT FROM TB_WISHLIST WHERE CUST_NO = #{custNo} AND CUST_NO != 0 AND GOODS_CD = Z.GOODS_CD) AS WISH_CNT
 			 , Z.CART_SQ
+		     , Z.GOODS_STAT
 			 , Z.GOODS_CD
 			 , Z.GOODS_NM
 			 , Z.BRAND_ENM
@@ -517,6 +518,9 @@
 		     , Z.DELV_FEE
 			 , Z.CART_DELV_FEE_CD
 		     , Z.ORD_CAN_YN
+		     , Z.ORD_CAN_QTY
+		     , Z.MIN_ORD_QTY
+		     , Z.MAX_ORD_QTY
 			 , (Z.CURR_PRICE + SUM(Z.OPT_ADD_PRICE)) * Z.GOODS_QTY AS CURR_PRICE
 			 , (Z.LIST_PRICE + SUM(Z.OPT_ADD_PRICE)) * Z.GOODS_QTY AS LIST_PRICE
 			 , CASE WHEN Z.SOLDOUT_YN = 'N' AND Z.CUST_TODAY_ORD = 0 AND Z.NOCUST_TODAY_ORD = 0 THEN 'N' ELSE 'Y' END AS SOLDOUT_YN
@@ -534,11 +538,15 @@
 		             , O.OPT_CD1
 		             , O.OPT_CD2
 		             , G.GOODS_TYPE
+		             , G.GOODS_STAT
 		             , G.SUPPLY_COMP_CD
 		             , G.GOODS_NM
 		             , G.PNT_PRATE
 		             , G.PNT_MRATE
 		             , STOCK.SOLDOUT_YN
+		             , STOCK.ORD_CAN_QTY
+		             , G.MAX_ORD_QTY
+		             , G.MIN_ORD_QTY
 		             , FN_GET_APPLY_CPN1_PRICE(C.GOODS_CD, #{frontGb}) AS CURR_PRICE
 		             , G.LIST_PRICE
 		             , IFNULL(O.ADD_PRICE, 0) AS OPT_ADD_PRICE
@@ -559,7 +567,7 @@
 		                                                                   , CASE WHEN GOG.CUST_GRADE = CT.CUST_GRADE THEN 1
 		                                                                          ELSE 0 END AS CNT2
 		                                                              FROM   TB_GOODS_ORDER_GRADE GOG
-		                                                              WHERE  GOG.GOODS_CD = C.GOODS_CD) Z ) = 'Y' THEN 'Y'
+		                                                              WHERE  GOG.GOODS_CD = C.GOODS_CD) Z ) = 'Y' AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT THEN 'Y'
 		                    ELSE 'N' END AS ORD_CAN_YN
 		             , CASE WHEN C.CUST_NO > 0 AND (SELECT IFNULL(SUM(OD.ORD_QTY), 0)
 		                                            FROM   TB_ORDER_DETAIL OD
@@ -573,8 +581,8 @@
 		                                            AND    OD.GOODS_CD = C.GOODS_CD
 		                                            AND    DATE(ORD_DT) = CURRENT_DATE) + C.GOODS_QTY > G.DAY_MAX_ORD_QTY THEN 1 ELSE 0 END CUST_TODAY_ORD
 		             , CASE WHEN C.CUST_NO = 0 AND C.GOODS_QTY > G.DAY_MAX_ORD_QTY THEN 1 ELSE 0 END AS NOCUST_TODAY_ORD
-		             , CASE WHEN G.GOODS_TYPE != 'G056_S' AND G.SELF_GOODS_YN = 'Y' THEN (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = CD.OPT_CD1 AND DEFAULT_IMG_YN = 'Y' LIMIT 1)
-		            		ELSE (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y' LIMIT 1) END AS SYS_IMG_NM
+		             , CASE WHEN G.GOODS_TYPE != 'G056_S' AND G.SELF_GOODS_YN = 'Y' THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = CD.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
+		            		ELSE (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') END AS SYS_IMG_NM
 		        FROM   TB_CART C
 		        INNER  JOIN TB_CART_DETAIL CD
 		        ON     C.CART_SQ = CD.CART_SQ
@@ -592,11 +600,14 @@
 		        INNER  JOIN (   SELECT A.CART_SQ
 		                             , MAX(A.SOLDOUT_YN) AS SOLDOUT_YN
 		                             , MAX(A.ORD_CAN_YN) AS ORD_CAN_YN
+		                             , MIN(A.ORD_CAN_QTY) AS ORD_CAN_QTY
 		                        FROM   (SELECT C.CART_SQ
 		                                     , CASE WHEN VS.SOLDOUT_YN = 'N' AND VS.CURR_STOCK_QTY >= C.GOODS_QTY * GC.QTY AND COMP_GOODS.GOODS_STAT != 'G008_70' AND G.GOODS_STAT != 'G008_70' THEN 'N'
 		                                            ELSE 'Y' END AS SOLDOUT_YN
 		                                     , CASE WHEN G.GOODS_STAT != 'G008_90' AND G.GOODS_STAT != 'G008_70' AND COMP_GOODS.GOODS_STAT != 'G008_70' AND COMP_GOODS.GOODS_STAT != 'G008_90' THEN 'N'
 		                                            ELSE 'Y' END AS ORD_CAN_YN
+		                                     , CASE WHEN G.GOODS_STAT = 'G008_70' OR VS.SOLDOUT_YN = 'Y' OR VS.CURR_STOCK_QTY = 0 THEN 0
+		                                            ELSE TRUNCATE(VS.CURR_STOCK_QTY / GC.QTY, 0) END AS ORD_CAN_QTY
 		                                FROM   TB_CART C
 		                                INNER  JOIN TB_CART_DETAIL CD
 		                                ON     C.CART_SQ = CD.CART_SQ
@@ -626,6 +637,8 @@
 		                                            ELSE 'Y' END AS SOLDOUT_YN
 		                                     , CASE WHEN G.GOODS_STAT != 'G008_90' AND G.GOODS_STAT != 'G008_70' THEN 'N'
 		                                            ELSE 'Y' END AS ORD_CAN_YN
+		                                     , CASE WHEN G.GOODS_STAT = 'G008_70' OR VS.SOLDOUT_YN = 'Y' THEN 0
+		                                            ELSE VS.CURR_STOCK_QTY END AS ORD_CAN_QTY
 		                                FROM   TB_CART C
 		                                INNER  JOIN TB_CART_DETAIL CD
 		                                ON     C.CART_SQ = CD.CART_SQ
@@ -668,6 +681,7 @@
 		        ORDER BY G.SUPPLY_COMP_CD ) Z
 		WHERE  1=1
 		GROUP  BY Z.CART_SQ
+		     , Z.GOODS_STAT
 		     , Z.GOODS_CD
 		     , Z.GOODS_QTY
 		     , Z.GOODS_TYPE
@@ -683,6 +697,9 @@
 		     , Z.CART_DELV_FEE_CD
 		     , Z.CURR_PRICE
 		     , Z.ORD_CAN_YN
+		     , Z.ORD_CAN_QTY
+		     , Z.MIN_ORD_QTY
+		     , Z.MAX_ORD_QTY
 		     , Z.PNT_PRATE
 		     , Z.PNT_MRATE
 		     , SYS_IMG_NM
@@ -893,6 +910,8 @@
 			 , G.SELF_GOODS_YN
 			 , G.GOODS_NM
 		     , G.GOODS_STAT
+			 , CASE WHEN SELF_GOODS_YN = 'Y' THEN (SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = CD.OPT_CD1)
+					ELSE CD.OPT_CD1 END AS COLOR_NM
 		FROM   TB_CART CA
 		INNER  JOIN TB_CART_DETAIL CD
 		ON     CA.CART_SQ = CD.CART_SQ
@@ -923,6 +942,8 @@
 			 , MAX(CD.CART_DTL_SQ) AS CART_DTL_SQ
 			 , MAX(ST.DISP_ORD) AS DISP_ORD
 			 , MAX(CD.OPT_CD1) AS CART_OPT_CD1
+			 , MAX(CD.OPT_CD2) AS CART_OPT_CD2
+			 , MAX(CD.OPT_CD) AS CART_OPT_CD
 		     , MAX(ST.SOLDOUT_YN) AS SOLDOUT_YN
 			 , IFNULL(MAX( CASE WHEN SELF_GOODS_YN = 'Y' THEN (SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = CD.OPT_CD1)
 								ELSE CD.OPT_CD1 END), MAX(CD.OPT_CD1)) AS CART_COLOR_NM
@@ -947,13 +968,14 @@
 	<select id="selectCartGoodsSizeList" parameterType="Cart" resultType="Cart">
 		/* TsfCart.selectCartGoodsSizeList : 장바구니 상품 사이즈 정보 조회 */
 		SELECT ST.GOODS_CD
-			 , ST.OPT_CD
+		     , ST.OPT_CD
 		     , ST.OPT_CD1
-			 , ST.OPT_CD2
-			 , ST.CURR_STOCK_QTY
-			 , ST.SOLDOUT_YN
-			 , CD.OPT_CD AS CART_OPT_CD
-			 , CD.CART_DTL_SQ
+		     , ST.OPT_CD2
+		     , ST.CURR_STOCK_QTY
+		     , ST.SOLDOUT_YN
+		     , CD.CART_DTL_SQ
+		     , CD.OPT_CD AS CART_OPT_CD
+		     , CD.OPT_CD2 AS CART_OPT_CD2
 		FROM   TB_GOODS G
 		INNER  JOIN VW_STOCK ST
 		ON     G.GOODS_CD = ST.GOODS_CD
@@ -1018,4 +1040,81 @@
 		 WHERE OD.ORD_NO = #{ordNo}
 		   AND OD.ORD_DTL_NO = #{ordDtlNo}
 	</select>
+
+	<!-- 장바구니 상품 상세 조건 정보 조회 -->
+	<select id="getCartDetailInfo" parameterType="Order" resultType="Order">
+		/* TsfCart.getCartDetailInfo : 장바구니 상품 상세 조건 정보 조회*/
+		SELECT A.CART_SQ
+		     , A.GOODS_CD
+			 , A.GOODS_STAT
+		     , A.ITEM_CD
+		     , A.ITEM_NM
+		     , A.OPT_CD
+		     , A.OPT_CD1
+		     , A.OPT_CD2
+		     , A.COLOR_NM
+		     , A.SOLDOUT_YN
+		     , A.ORD_CAN_QTY
+		FROM   (SELECT C.CART_SQ
+		             , C.GOODS_CD
+		             , G.GOODS_STAT
+		             , COMP_GOODS.GOODS_NM AS ITEM_NM
+		             , CD.ITEM_CD
+		             , CD.OPT_CD
+		             , CD.OPT_CD1
+		             , CD.OPT_CD2
+		             , IFNULL((SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(CD.OPT_CD1,'') , G.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), CD.OPT_CD1) AS COLOR_NM
+		             , CASE WHEN VS.SOLDOUT_YN = 'N' AND COMP_GOODS.GOODS_STAT != 'G008_70' AND G.GOODS_STAT != 'G008_70' THEN 'N'
+		                    ELSE 'Y' END AS SOLDOUT_YN
+		             , CASE WHEN G.GOODS_STAT = 'G008_70' OR VS.SOLDOUT_YN = 'Y' OR VS.CURR_STOCK_QTY = 0 THEN 0
+		                    ELSE CASE WHEN G.MAX_ORD_QTY > TRUNCATE(VS.CURR_STOCK_QTY / GC.QTY, 0) THEN TRUNCATE(VS.CURR_STOCK_QTY / GC.QTY, 0)
+		                              ELSE G.MAX_ORD_QTY END
+		                    END AS ORD_CAN_QTY
+		        FROM   TB_CART C
+		        INNER  JOIN TB_CART_DETAIL CD
+		        ON     C.CART_SQ = CD.CART_SQ
+		        INNER  JOIN TB_GOODS G
+		        ON     C.GOODS_CD = G.GOODS_CD
+		        INNER  JOIN TB_GOODS COMP_GOODS
+		        ON     CD.ITEM_CD = COMP_GOODS.GOODS_CD
+		        INNER  JOIN TB_GOODS_COMPOSE GC
+		        ON     C.GOODS_CD = GC.GOODS_CD
+		        AND    CD.ITEM_CD = GC.COMPS_GOODS_CD
+		        INNER  JOIN VW_STOCK VS
+		        ON     CD.ITEM_CD = VS.GOODS_CD
+		        AND    CD.OPT_CD = VS.OPT_CD
+		        WHERE  1=1
+		        AND    C.CART_GB = 'G026_BC'
+		        AND    G.SELF_MALL_YN = 'Y'
+		        AND    C.CART_SQ =  #{cartSq}
+		        UNION ALL
+		        SELECT C.CART_SQ
+		             , C.GOODS_CD
+					 , G.GOODS_STAT
+		             , CD.ITEM_CD
+		             , G.GOODS_NM AS ITEM_NM
+		             , CD.OPT_CD
+		             , CD.OPT_CD1
+		             , CD.OPT_CD2
+		             , IFNULL((SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(CD.OPT_CD1,'') , G.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), CD.OPT_CD1) AS COLOR_NM
+		             , CASE WHEN VS.SOLDOUT_YN = 'N' AND G.GOODS_STAT != 'G008_70' THEN 'N'
+		                    ELSE 'Y' END AS SOLDOUT_YN
+		             , CASE WHEN G.GOODS_STAT = 'G008_70' OR VS.SOLDOUT_YN = 'Y' THEN 0
+		                    ELSE CASE WHEN G.MAX_ORD_QTY > VS.CURR_STOCK_QTY THEN CURR_STOCK_QTY
+		                              ELSE G.MAX_ORD_QTY END
+		                    END AS ORD_CAN_QTY
+		        FROM   TB_CART C
+		        INNER  JOIN TB_CART_DETAIL CD
+		        ON     C.CART_SQ = CD.CART_SQ
+		        INNER  JOIN TB_GOODS G
+		        ON     C.GOODS_CD = G.GOODS_CD
+		        INNER  JOIN VW_STOCK VS
+		        ON     C.GOODS_CD = VS.GOODS_CD
+		        AND    CD.OPT_CD = VS.OPT_CD
+		        WHERE  1=1
+		        AND    C.CART_GB = 'G026_BC'
+		        AND    G.SELF_MALL_YN = 'Y'
+		        AND    C.CART_SQ =  #{cartSq}
+		) A
+	</select>
 </mapper>

+ 27 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCommon.xml

@@ -51,5 +51,32 @@
 		FROM   TB_AF_LINK
 		WHERE  AF_LINK_CD = #{afLinkCd}
 	</select>
+	
+	<!-- 주문배송지정보수정 -->
+	<update id="updateDeliverAddr" parameterType="Order">
+		/* TsfCommon.updateDeliverAddr */
+		UPDATE TB_DELIVERY_ADDR
+		SET    RECIP_NM             = #{recipNm}
+		     , RECIP_PHNNO          = #{recipPhnno}
+		     , RECIP_ZIPCODE        = #{recipZipcode}
+		     , RECIP_BASE_ADDR      = #{recipBaseAddr}
+		     , RECIP_DTL_ADDR       = #{recipDtlAddr}
+		     , DELV_MEMO            = #{delvMemo}
+		     , UPD_NO               = #{custNo}
+		     , UPD_DT               = NOW()
+		WHERE  1=1
+		AND    DELV_ADDR_SQ         = #{delvAddrSq}
+	</update>
+	
+	<!-- 주문배송지메모정보수정 -->
+	<update id="updateDeliverAddrDelvMemo" parameterType="Order">
+		/* TsfCommon.updateDeliverAddrDelvMemo */
+		UPDATE TB_DELIVERY_ADDR
+		SET    DELV_MEMO            = #{delvMemo}
+		     , UPD_NO               = #{custNo}
+		     , UPD_DT               = NOW()
+		WHERE  1=1
+		AND    DELV_ADDR_SQ         = #{delvAddrSq}
+	</update>
 
 </mapper>

+ 77 - 117
src/main/webapp/WEB-INF/views/web/cart/CartChangeOptionPopupWeb.html

@@ -39,37 +39,30 @@
 					<th:block th:each="comp, status : ${cart.cartCompsList}">
 						<!-- 세트상품 옵션 -->
 						<th:block th:if="${setType.equals(cart.goodsType)}">
-							<div class="opt_select">
-								<!-- 컬러 변경시 만들어줄 size option -->
-								<span style="display:none;" th:each="color, index : ${comp.cartColorList}">
-									<span th:classappend="|color_${color.goodsCd}_${color.optCd1}|">
-										<th:block th:each="size, i : ${color.cartSizeList}">
-											<th:block th:if="${color.optCd1.equals(size.optCd1)}">
-												<li th:classappend="${i.index == 0} ? selected" th:data="${comp.cartDtlSq}" th:optCd="${size.optCd}" th:value="${size.optCd}" th:text="${size.optCd2}" th:aria-disabled="${color.soldoutYn.equals('Y') or size.soldoutYn.equals('Y') ? true : false}"></li>
-											</th:block>
-										</th:block>
-									</span>
-								</span>
+							<span class="hiddenData">
+								<input type="hidden" class="cartDtlSq" th:value="${comp.cartDtlSq}" />
+								<input type="hidden" class="itemCd" th:value="${comp.goodsCd}" />
+								<input type="hidden" class="optCd" th:classappend="|option_${comp.goodsCd}|" th:value="${comp.optCd}"/>
+								<input type="hidden" class="optCd1" th:classappend="|option1_${comp.goodsCd}|" th:value="${comp.optCd1}"/>
+								<input type="hidden" class="optCd2" th:classappend="|option2_${comp.goodsCd}|" th:value="${comp.optCd2}"/>
+							</span>
 
+							<div class="opt_select">
 								<div class="opt_header">
 									<span class="title" th:text="${comp.goodsNm}"></span>
 								</div>
 								<div class="opt_header">
 									<span class="title">옵션1</span>
-									<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
-										<span class="text" th:classappend="|chooseColorNm_${comp.goodsCd}|" th:text="${color.cartColorNm}"></span>
-									</th:block>
+									<span class="text" th:classappend="|chooseColorNm_${comp.goodsCd}|" th:text="${comp.colorNm}"></span>
 								</div>
 								<form class="form_wrap">
 									<div class="form_field">
-										<div class="select_custom item_opt1 setColorSelect">
+										<div class="select_custom item_opt1 colorList">
 											<div class="combo">
-												<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
-													<div class="select" th:text="${color.cartColorNm}"></div>
-												</th:block>
+												<div class="select" th:text="${comp.colorNm}"></div>
 												<ul class="list" th:data="${comp.goodsCd}">
 													<th:block th:each="color, index : ${comp.cartColorList}">
-														<li th:classappend="${color.cartColorNm != null} ? 'selected addNewScombo'" th:data="${color.optCd1}" th:text="${color.colorNm}" th:aria-disabled="${color.soldoutYn.equals('Y') ? true : false}"></li>
+														<li th:classappend="${color.cartColorNm != null} ? 'selected'" th:data="${color.optCd1}" th:text="${color.colorNm}" th:aria-disabled="${color.soldoutYn.equals('Y') ? true : false}"></li>
 													</th:block>
 												</ul>
 											</div>
@@ -80,31 +73,22 @@
 							<div class="opt_select">
 								<div class="opt_header">
 									<span class="title">옵션2</span>
-									<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
-										<th:block th:each="size, i : ${color.cartSizeList}" th:if="${size.cartOptCd != null}">
-											<span class="text" th:text="${size.optCd2}"></span>
-										</th:block>
-									</th:block>
+									<span class="text" th:classappend="|chooseSizeNm_${comp.goodsCd}|" th:text="${comp.optCd2}"></span>
 								</div>
 								<form class="form_wrap">
 									<div class="form_field">
-										<div class="select_custom item_opt2 setOption">
-											<div class="combo">
-												<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
-													<th:block th:each="size, i : ${color.cartSizeList}" th:if="${size.cartOptCd != null}">
-														<div class="select" th:classappend="|size_${comp.goodsCd}_size_nm addNewScombo|" th:text="${size.optCd2}" th:data="${color.goodsCd}"></div>
-													</th:block>
-													<ul class="list setSizeSelect" th:classappend="|size_${comp.goodsCd}|">
+										<th:block th:each="color, index : ${comp.cartColorList}">
+											<div class="select_custom item_opt2 sizeList" th:classappend="|${comp.goodsCd}_${color.optCd1} sizeList${comp.goodsCd}|" th:style="${color.cartColorNm != null ? 'display:block' : 'display:none'}">
+												<div class="combo">
+													<div class="select" th:classappend="|size_${comp.goodsCd}_size_nm|" th:text="${comp.optCd2}" th:data="${color.goodsCd}"></div>
+													<ul class="list setSizeSelect" th:classappend="|size_${comp.goodsCd}|" th:data="${comp.goodsCd}">
 														<th:block th:each="size, i : ${color.cartSizeList}" th:if="${color.optCd1.equals(size.optCd1)}">
-															<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가  -->
-															<li th:classappend="${size.cartOptCd != null} ? selected" th:data="${comp.cartDtlSq}" th:optCd="${size.optCd}" th:value="${size.optCd}" th:text="${size.optCd2}" th:aria-disabled="${color.soldoutYn.equals('Y') or size.soldoutYn.equals('Y') ? true : false}"></li>
-															<!--<li class="selected">블랙/95</li>
-															<li aria-disabled="true">블랙/105</li>-->
+															<li th:classappend="${size.cartOptCd != null} ? selected" th:optCd="${size.optCd}" th:value="${size.optCd}" th:text="${size.optCd2}" th:aria-disabled="${color.soldoutYn.equals('Y') or size.soldoutYn.equals('Y') ? true : false}"></li>
 														</th:block>
 													</ul>
-												</th:block>
+												</div>
 											</div>
-										</div>
+										</th:block>
 									</div>
 								</form>
 							</div>
@@ -150,34 +134,27 @@
 
 						<!-- 입점업체 -->
 						<th:block th:if="${!setType.equals(cart.goodsType) and 'N'.equals(cart.selfGoodsYn)}">
-							<div class="opt_select">
-								<!-- 컬러 변경시 만들어줄 size option -->
-								<span style="display:none;" th:each="color, index : ${comp.cartColorList}">
-									<span th:classappend="|color_${color.goodsCd}_${color.optCd1}|">
-										<th:block th:each="size, i : ${color.cartSizeList}">
-											<th:block th:if="${color.optCd1.equals(size.optCd1)}">
-												<li th:classappend="${i.index == 0} ? selected" th:data="${cart.cartDtlSq}" th:optCd="${size.optCd}" th:value="${size.optCd}" th:text="${size.optCd2}" th:aria-disabled="${color.soldoutYn.equals('Y') or size.soldoutYn.equals('Y') ? true : false}"></li>
-											</th:block>
-										</th:block>
-									</span>
-								</span>
+							<span class="hiddenData">
+								<input type="hidden" class="cartDtlSq" th:value="${comp.cartDtlSq}" />
+								<input type="hidden" class="itemCd" th:value="${comp.goodsCd}" />
+								<input type="hidden" class="optCd" th:classappend="|option_${comp.goodsCd}|" th:value="${comp.optCd}"/>
+								<input type="hidden" class="optCd1" th:classappend="|option1_${comp.goodsCd}|" th:value="${comp.optCd1}"/>
+								<input type="hidden" class="optCd2" th:classappend="|option2_${comp.goodsCd}|" th:value="${comp.optCd2}"/>
+							</span>
 
+							<div class="opt_select">
 								<div class="opt_header">
 									<span class="title">옵션1</span>
-									<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
-										<span class="text" th:classappend="|chooseColorNm_${cart.goodsCd}|" th:text="${color.cartColorNm}"></span>
-									</th:block>
+									<span class="text" th:classappend="|chooseColorNm_${comp.goodsCd}|" th:text="${comp.colorNm}"></span>
 								</div>
 								<form class="form_wrap">
 									<div class="form_field">
-										<div class="select_custom item_opt1 setColorSelect">
+										<div class="select_custom item_opt1 colorList">
 											<div class="combo">
-												<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
-													<div class="select" th:text="${color.cartColorNm}"></div>
-												</th:block>
-												<ul class="list" th:data="${cart.goodsCd}">
+												<div class="select" th:text="${comp.colorNm}"></div>
+												<ul class="list" th:data="${comp.goodsCd}">
 													<th:block th:each="color, index : ${comp.cartColorList}">
-														<li th:classappend="${color.cartColorNm != null} ? 'selected addNewScombo'" th:data="${color.optCd1}" th:text="${color.colorNm}" th:aria-disabled="${color.soldoutYn.equals('Y') ? true : false}"></li>
+														<li th:classappend="${color.cartColorNm != null} ? 'selected'" th:data="${color.optCd1}" th:text="${color.colorNm}" th:aria-disabled="${color.soldoutYn.equals('Y') ? true : false}"></li>
 													</th:block>
 												</ul>
 											</div>
@@ -188,29 +165,22 @@
 							<div class="opt_select">
 								<div class="opt_header">
 									<span class="title">옵션2</span>
-									<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
-										<th:block th:each="size, i : ${color.cartSizeList}" th:if="${size.cartOptCd != null}">
-											<span class="text" th:text="${size.optCd2}"></span>
-										</th:block>
-									</th:block>
+									<span class="text" th:classappend="|chooseSizeNm_${comp.goodsCd}|" th:text="${comp.optCd2}"></span>
 								</div>
 								<form class="form_wrap">
 									<div class="form_field">
-										<div class="select_custom item_opt2 setOption">
-											<div class="combo">
-												<th:block th:each="color, index : ${comp.cartColorList}" th:if="${color.cartColorNm != null}">
-													<th:block th:each="size, i : ${color.cartSizeList}" th:if="${size.cartOptCd != null}">
-														<div class="select" th:classappend="|size_${cart.goodsCd}_size_nm addNewScombo|" th:text="${size.optCd2}" th:data="${color.goodsCd}"></div>
-														<input type="hidden" th:if="${size.cartDtlSq > 0}" class="cartDtlSq" th:value="${size.cartDtlSq}" />
-													</th:block>
-													<ul class="list setSizeSelect" th:classappend="|size_${cart.goodsCd}|">
+										<th:block th:each="color, index : ${comp.cartColorList}">
+											<div class="select_custom item_opt2 sizeList" th:classappend="|${comp.goodsCd}_${color.optCd1} sizeList${comp.goodsCd}|" th:style="${color.cartColorNm != null ? 'display:block' : 'display:none'}">
+												<div class="combo">
+													<div class="select" th:classappend="|size_${comp.goodsCd}_size_nm|" th:text="${comp.optCd2}" th:data="${color.goodsCd}"></div>
+													<ul class="list setSizeSelect" th:classappend="|size_${comp.goodsCd}|" th:data="${comp.goodsCd}">
 														<th:block th:each="size, i : ${color.cartSizeList}" th:if="${color.optCd1.equals(size.optCd1)}">
-															<li th:classappend="${size.cartOptCd != null} ? selected" th:data="${size.cartDtlSq}" th:optCd="${size.optCd}" th:value="${size.optCd}" th:text="${size.optCd2}" th:aria-disabled="${color.soldoutYn.equals('Y') or size.soldoutYn.equals('Y') ? true : false}"></li>
+															<li th:classappend="${size.cartOptCd != null} ? selected" th:optCd="${size.optCd}" th:value="${size.optCd}" th:text="${size.optCd2}" th:aria-disabled="${color.soldoutYn.equals('Y') or size.soldoutYn.equals('Y') ? true : false}"></li>
 														</th:block>
 													</ul>
-												</th:block>
+												</div>
 											</div>
-										</div>
+										</th:block>
 									</div>
 								</form>
 							</div>
@@ -241,42 +211,41 @@
 			});
 		});
 
-		/* 옵션변경 > 수량조절 */
-		//수량1개 이하 감소버튼 비활성화
-		var valItemCount = $('.optModify_pop .number_count input').val();
-		if ( valItemCount == 1 ) {
-			$('.optModify_pop .number_count .minus').addClass('min_val');
-		}
-
 		// 세트상품, 입점업체 상품 컬러 변경시
-		$(".setColorSelect > .combo > .list li").on("click", function(e) {
+		$("#cartOptionModal .colorList > .combo > .list li").on("click", function(e) {
 			let goodsCd = $(this).parent().attr("data");
+			let optCd1 = $(this).attr("data");
 			let firstSize = "";
+			if(optCd1 != $(".option1_" + goodsCd).val()) {
+				let firstOptCd = $("#cartOptionModal ." + goodsCd + "_" + optCd1 + " li:first").attr("optcd");
+				let firstOptCd2 = $("#cartOptionModal ." + goodsCd + "_" + optCd1 + " li:first").text();
 
-			$(".chooseColorNm_" + goodsCd).text($(this).text());
-
-			$(".setOption .size_" + goodsCd).html("");
-			$(".setOption .size_" + goodsCd).html($(".color_" + goodsCd + "_" + $(this).attr("data")).html());
-
-			$(".setOption .size_" + goodsCd + " li").each(function() {
-				if($(this).hasClass("selected")) {
-					firstSize = $(this).text();
-				}
-			});
+				$("#cartOptionModal .chooseColorNm_" + goodsCd).text($(this).text());
+				$("#cartOptionModal .option_" + goodsCd).val(firstOptCd);
+				$("#cartOptionModal .option1_" + goodsCd).val(optCd1);
+				$("#cartOptionModal .option2_" + goodsCd).val(firstOptCd2);
 
-			$(".setOption .size_" + goodsCd + "_size_nm").text(firstSize);
-			$(".setOption .size_" + goodsCd + "_size_nm").parent().parent().parent().parent().parent().find(".opt_header .text").text(firstSize);
-			//if(!$(this).hasClass("addNewScombo")) {
-				//new sCombo($(".setOption .size_" + goodsCd).parent().parent());
-			//	$(this).addClass("addNewScombo");
-			//}
+				$("#cartOptionModal .sizeList" + goodsCd).hide();
+				$("#cartOptionModal ." + goodsCd + "_" + optCd1).show();
+				$("#cartOptionModal ." + goodsCd + "_" + optCd1 + " .select").text(firstOptCd2);
+				$("#cartOptionModal .chooseSizeNm_" + goodsCd).text(firstOptCd2);
+			}
 		});
 
 		// 세트상품, 입점업체 상품 사이즈 변경시
-		$(".setOption > .combo > .list li").on("click", function() {
+		$(".sizeList > .combo > .list li").on("click", function() {
 			$(this).parent().parent().parent().parent().parent().parent().find(".opt_header .text").text($(this).text());
+			$("#cartOptionModal .option_" + $(this).parent().attr("data")).val($(this).attr("optcd"));
+			$("#cartOptionModal .option2_" + $(this).parent().attr("data")).val($(this).text());
 		});
 
+		/* 옵션변경 > 수량조절 */
+		//수량1개 이하 감소버튼 비활성화
+		var valItemCount = $('.optModify_pop .number_count input').val();
+		if ( valItemCount == 1 ) {
+			$('.optModify_pop .number_count .minus').addClass('min_val');
+		}
+
 		// 자사 일반 상품 컬러 선택시
 		$(".selfGoodsColorSelect").on("click", function(e) {
 			let sizeHtml = "";
@@ -322,14 +291,10 @@
 			var data;
 
 			if(cart.goodsType == "G056_S") {
-				$(".setSizeSelect").each(function() {
-					$(this).find("li").each(function() {
-						if($(this).hasClass("selected")) {
-							optCds.push($(this).attr("optCd"));
-							cartDtlSqArr.push($(this).attr("data"));
-						}
-					});
-					itemCds.push($(this).parent().find("div.select").attr("data"));
+				$("#cartOptionModal .cartDtlSq").each(function() {
+					optCds.push($(this).parent().find(".optCd").val());
+					cartDtlSqArr.push($(this).parent().find(".cartDtlSq").val());
+					itemCds.push($(this).parent().find(".itemCd").val());
 				});
 
 				data = {
@@ -365,15 +330,10 @@
 					, goodsQty : $("input[name=goodsQty]").val()
 				}
 			} else {
-				// optCds.push($(".selfGoodsColor").val());
-				itemCds.push(cart.goodsCd);
-				$(".setSizeSelect").each(function() {
-					$(this).find("li").each(function() {
-						if($(this).hasClass("selected")) {
-							optCds.push($(this).attr("optCd"));
-							cartDtlSqArr.push($(this).attr("data"));
-						}
-					});
+				$("#cartOptionModal .cartDtlSq").each(function() {
+					optCds.push($(this).parent().find(".optCd").val());
+					cartDtlSqArr.push($(this).parent().find(".cartDtlSq").val());
+					itemCds.push($(this).parent().find(".itemCd").val());
 				});
 
 				data = {
@@ -386,7 +346,7 @@
 					, goodsQty : $("input[name=goodsQty]").val()
 				}
 			}
-			alert(JSON.stringify(data));
+
 			$.ajax( {
 				type: "POST",
 				url : '/cart/change/option',
@@ -394,7 +354,7 @@
 				dataType : 'json',
 				data : JSON.stringify(data),
 				error : function(e) {
-					alert(e.message);
+					mcxDialog.alert(e.message);
 				},
 				success : function(result) {
 					mcxDialog.alert(result.message);

+ 1 - 1
src/main/webapp/WEB-INF/views/web/cart/CartChangeOptionPopupWeb_20210319.html

@@ -256,7 +256,7 @@
 			dataType : 'json',
 			data : JSON.stringify(data),
 			success : function(result) {
-				alert(result.message);
+				mcxDialog.alert(result.message);
 				$(".closeCartOptionModal").trigger("click");
 				getCartList();
 			}

+ 140 - 13
src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html

@@ -141,7 +141,7 @@
 													<p th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N'}" class="notApplyTmtb"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
 													<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y'}" class="applyTmtb"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
 													<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N'}" class="notApplyTmtb"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
-													<p th:if="${cart.soldoutYn.equals('Y')}">품절된 상품입니다.</p>
+													<p th:if="${cart.soldoutYn.equals('Y') and cart.ordCanYn.equals('Y')}">품절된 상품입니다.</p>
 													<p th:if="${cart.ordCanYn.equals('N')}">해당 상품은 구매 불가능한 상품입니다.</p>
 												</div>
 											</div>
@@ -245,7 +245,7 @@
 														<p th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N'}" class="notApplyTmtb"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
 														<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y'}" class="applyTmtb"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
 														<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N'}" class="notApplyTmtb"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
-														<p th:if="${cart.soldoutYn.equals('Y')}">품절된 상품입니다.</p>
+														<p th:if="${cart.soldoutYn.equals('Y') and cart.ordCanYn.equals('Y')}">품절된 상품입니다.</p>
 														<p th:if="${cart.ordCanYn.equals('N')}">해당 상품은 구매 불가능한 상품입니다.</p>
 													</div>
 												</div>
@@ -360,7 +360,7 @@
 													<p th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N'}" class="notApplyTmtb"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
 													<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y'}" class="applyTmtb"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
 													<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N'}" class="notApplyTmtb"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
-													<p th:if="${cart.soldoutYn.equals('Y')}">품절된 상품입니다.</p>
+													<p th:if="${cart.soldoutYn.equals('Y') and cart.ordCanYn.equals('Y')}">품절된 상품입니다.</p>
 													<p th:if="${cart.ordCanYn.equals('N')}">해당 상품은 구매 불가능한 상품입니다.</p>
 												</div>
 											</div>
@@ -541,6 +541,7 @@
 	<script th:inline="javascript">
 		let sumRealPayAmt = [[${order.sumRealPayAmt + order.totDelvFee}]];
 		let totDcAmt = [[${order.totDcAmt}]];
+		let loginInfo = [[${loginInfo}]];
 
 		function NotApplyTmtbCartList() {
 			let tmtbSq = 0;
@@ -574,7 +575,6 @@
 
 			$("#cartListForm .area_salecoupon .coupon_box").hide();
 
-			let loginInfo = [[${loginInfo}]];
 			if(!loginInfo || loginInfo.custNo == null || loginInfo.custNo == 0) {
 				$("#cartListForm .area_salecoupon").hide();
 			}
@@ -879,7 +879,6 @@
 
 						$(".cartCpnInfoModal .availDt").html('<span>' + cpnInfo.availStdtTime + "</span> ~ <span>" + cpnInfo.availEddtTime + "</span>");
 						$(".cartCpnInfoModal .refVal").html(refValComment);
-						alert("1 :::: " + refValComment);
 					} else {
 						mcxDialog.alert(result.serialCpnInfo.result);
 					}
@@ -1221,14 +1220,143 @@
 
 		// 주문하기
 		function fnSubmitNoMember(cartSq) {
-			if(cartSq == "all") {
-				$("#cartListForm").submit();
-			} else {
-				let html	 = "<input type='hidden' name='cartSqArr' value='" + cartSq + "' />";
-				html		+= "<input type='hidden' name='shotDelvUseYn' value='" + $("input[name=shotDelvUseYn]:checked").val() + "' />";
-				$("#cartInfoForm").html(html);
-				$("#cartInfoForm").submit();
+			let cartSqArr = [];
+
+			if($("#cartListForm input[name=cartSqArr]:checked").length < 1) {
+				mcxDialog.alert("구매하실 상품을 선택해주세요.");
+				return false;
+			}
+
+			// 선택된 장바구니 번호
+			$("#cartListForm input[name=cartSqArr]:checked").each(function () {
+				cartSqArr.push($(this).val());
+			});
+
+			// 선택된 장바구니 정보 가공
+			let data = {	  cartSqArr : cartSqArr
+							, custNo : loginInfo.custNo
 			}
+			let jsonData = JSON.stringify(data);
+
+			$.ajax( {
+				type: "POST",
+				url : '/cart/order/list/check',
+				contentType: 'application/json',
+				dataType : 'json',
+				data : jsonData,
+				success : function(result) {
+					if(result == null || result.length == 0) {
+						mcxDialog.alert("주문 가능한 상품이 존재하지 않습니다. 새로고침 후 다시 시도해주세요.");
+					} else {
+						for(let i = 0 ; i < result.length ; i++) {
+							let removeCartSq = 0;
+							let updateCartSq = 0;
+							let goodsQty = 0;
+							if(result.ordCanYn == "N") {
+								mcxDialog.confirm(result.goodsNm + " 상품은 구매 할 수 없습니다. 제외하고 계속 주문하시겠습니까?", {
+									cancelBtnText: "취소",		//취소 또는 닫기 버튼명
+									sureBtnText: "확인", 		//처리문 버튼명
+									sureBtnClick: function(){
+										removeCartSq = result.cartSq;
+									}
+								});
+							}
+							if(result.soldoutYn == "Y") {
+								if(result.goodsStat == "G008_70" || result.ordCanQty < result.minOrdQty) {
+									mcxDialog.confirm(result.goodsNm + " 상품은 품절입니다. 제외하고 계속 주문하시겠습니까?", {
+										cancelBtnText: "취소",		//취소 또는 닫기 버튼명
+										sureBtnText: "확인", 		//처리문 버튼명
+										sureBtnClick: function(){
+											removeCartSq = result.cartSq;
+										}
+									});
+								} else if (result.ordCanQty == 0) {
+									mcxDialog.confirm(result.goodsNm + "의 " + result.colorNm + " 옵션이 품절되었습니다. 제외하고 계속 주문하시겠습니까?", {
+										cancelBtnText: "취소",		//취소 또는 닫기 버튼명
+										sureBtnText: "확인", 		//처리문 버튼명
+										sureBtnClick: function(){
+											removeCartSq = result.cartSq;
+										}
+									});
+								} else if (result.ordCanQty == 0) {
+									let message = "";
+									if("G056_S" == result.goodsType) {
+										message = result.goodsNm + " 의" + result.itemNm + "/" + result.colorNm + "/" + result.optCd2 + "의 수량이 부족합니다. 구매가능 수량은 " + result.minOrdQty + "개입니다. 구매가능 수량만큼 주문하시겠습니까?";
+									} else {
+										message = result.goodsNm + " 의" + result.colorNm + "/" + result.optCd2 + "의 수량이 부족합니다. 구매가능 수량은 " + result.minOrdQty + "개입니다. 구매가능 수량만큼 주문하시겠습니까?";
+									}
+									mcxDialog.confirm(message, {
+										cancelBtnText: "취소",		//취소 또는 닫기 버튼명
+										sureBtnText: "확인", 		//처리문 버튼명
+										sureBtnClick: function(){
+											updateCartSq = result.cartSq;
+											goodsQty = result.minOrdQty;
+										}
+									});
+								}
+							}
+
+							if(removeCartSq > 0) {
+								// 장바구니 선택된것 삭제 > cartSq 0으로 만들면 될듯함.
+								for(let i = 0 ; i < cartSqArr.length ; i++) {
+									if(cartSqArr[i] == removeCartSq) {
+										cartSqArr[i] = 0;
+									}
+								}
+							}
+							if(updateCartSq > 0) {
+								// 장바구니 goodsQty update
+								updateGoodsQty(updateCartSq, goodsQty);
+							}
+						}
+					}
+				}
+			});
+
+			/*if(loginInfo == null || loginInfo.custNo == null || loginInfo.custNo == 0) {
+				var btn = ["비회원 구매", "로그인 후 구매"];
+				mcxDialog.confirmC("로그인 후 구매 시 다양한 혜택을 받으실 수 있습니다.", { //내용
+					btn: btn,
+					btnClick: function(index){
+						if (index == 1){ //button1 일때 처리문
+							if(cartSq == "all") {
+								$("#cartListForm").submit();
+							} else {
+								let html	 = "<input type='hidden' name='cartSqArr' value='" + cartSq + "' />";
+								html		+= "<input type='hidden' name='shotDelvUseYn' value='" + $("input[name=shotDelvUseYn]:checked").val() + "' />";
+								$("#cartInfoForm").html(html);
+								$("#cartInfoForm").submit();
+							}
+						} else {	//button2 일때 처리문
+							location.href="/signin";
+						}
+					}
+				});
+			} else {
+				if(cartSq == "all") {
+					$("#cartListForm").submit();
+				} else {
+					let html	 = "<input type='hidden' name='cartSqArr' value='" + cartSq + "' />";
+					html		+= "<input type='hidden' name='shotDelvUseYn' value='" + $("input[name=shotDelvUseYn]:checked").val() + "' />";
+					$("#cartInfoForm").html(html);
+					$("#cartInfoForm").submit();
+				}
+			}*/
+		}
+
+		// 장바구니 구매 수량 변경
+		function updateGoodsQty(cartSq, goodsQty) {
+			$.ajax( {
+				type: "POST",
+				url : '/cart/update/goodsQty',
+				contentType: 'application/json',
+				dataType : 'json',
+				data : {cartSq : cartSq,
+						goodsQty : goodsQty},
+				success : function(result) {
+
+				}
+			});
 		}
 
 		function fnGoToGoodsDetail(goodsCd) {
@@ -1241,7 +1369,6 @@
 			} else {
 				$("input[name=cartSqArr]").prop("checked", false);
 			}
-
 		});
 	</script>
 </div>

+ 48 - 0
src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html

@@ -794,6 +794,7 @@
 	</div>
 	-->
 	
+	<!-- 2021.04.02 다음우편번호 공통화 작업 -->
 	<!-- 다음우편번호 팝업 -->
 	<div class="jquery-modal blocker current" id="daumZipcodePop" style="display:none; z-index:3000;">
 		<div class="modal fade rqstModify_pop" tabindex="-1" role="dialog" aria-labelledby="couponModifyLabel" aria-hidden="true" style="display: inline-block;">
@@ -812,6 +813,53 @@
 		</div>
 	</div>
 	<!-- //다음우편번호 팝업 -->
+	<!-- //2021.04.02 다음우편번호 공통화 작업 -->
+	
+	<!-- 2021.04.02 배송지변경팝업 공통화 작업 -->
+	<!-- 배송지변경 팝업 -->
+	<div class="modal fade adrsChange_pop" id="adrsChangePop" tabindex="-1" role="dialog" aria-labelledby="adrsChangeLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<!-- 배송지변경 팝업 내용 -->
+			</div>
+		</div>
+		<a href="#close-modal" rel="modal:close" id="adrsChangePop_close" class="close-modal">Close</a>
+	</div>
+	<!-- //배송지변경 팝업 -->
+	
+	<!-- 배송지추가 팝업 -->
+	<div class="modal fade adrsModify_pop" id="adrsAddPop" tabindex="-1" role="dialog" aria-labelledby="adrsAddLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<!-- 배송지추가 팝업 내용 -->
+			</div>
+		</div>
+		<a href="#close-modal" rel="modal:close" id="adrsAddPop_close" class="close-modal">Close</a>
+	</div>
+	<!-- //배송지추가 팝업 -->
+	
+	<!-- 배송지수정 팝업 -->
+	<div class="modal fade adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<!-- 배송지수정 팝업 내용 -->
+			</div>
+		</div>
+		<a href="#close-modal" rel="modal:close" id="adrsModifyPop_close" class="close-modal">Close</a>
+	</div>
+	<!-- //배송지수정 팝업 -->
+	
+	<!-- 배송요청사항수정 팝업 -->
+	<div class="modal fade rqstModify_pop" id="rqstModifyPop" tabindex="-1" role="dialog" aria-labelledby="rqstModifyLabel" aria-hidden="true">
+		<div class="modal-dialog" role="document">
+			<div class="modal-content">
+				<!-- 배송요청사항수정 팝업 내용 -->
+			</div>
+		</div>
+		<a href="#close-modal" rel="modal:close" id="rqstModifyPop_close" class="close-modal">Close</a>
+	</div>
+	<!-- //배송요청사항수정 팝업 -->
+	<!-- //2021.04.02 배송지변경팝업 공통화 작업 -->
 	
 <script th:inline="javascript">
 /*<![CDATA[*/

+ 304 - 167
src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb.html

@@ -15,6 +15,7 @@
  -->
 <body>
 <th:block layout:fragment="content">
+<!--  container -->
 <div id="container" class="container od">
 	<div class="wrap">
 		<div class="content completed">
@@ -22,9 +23,9 @@
 				<h2>주문완료</h2>
 				<div class="oder_steps">
 					<ul>
-						<li>01 쇼핑백</li>
-						<li>02 주문/결제</li>
-						<li class="on">03 주문완료</li>
+						<li><span>01</span>&nbsp;쇼핑백</li>
+						<li><span>02</span>&nbsp;주문/결제</li>
+						<li class="on"><span>03</span>&nbsp;주문완료</li>
 					</ul>
 				</div>
 			</div>
@@ -37,17 +38,17 @@
 							<dl class="report_box">
 								<div>
 									<dt>주문번호</dt>
-									<dd th:text="${orderInfo.ordNo}"></dd>
+									<dd><span th:text="${orderInfo.ordNo}"></span></dd>
 								</div>
 								<!-- 무통장입금 결제시 -->
 								<th:block th:if="${orderInfo.payMeans} == 'G014_20'">
 									<div>
 										<dt>무통장입금정보</dt>
-										<dd th:text="${orderInfo.cardNm}+${orderInfo.vaBank}"></dd>
+										<dd><span th:text="${orderInfo.cardNm}"></span>(<span th:text="${orderInfo.ordNm}"></span>)&nbsp;/&nbsp;<span th:text="${orderInfo.vaBank}"></span></dd>
 									</div>
 									<div class="closedate">
 										<dt>입금마감</dt>
-										<dd th:text="|${orderInfo.vaDeadline}까지|"></dd>
+										<dd><span  th:text="|${orderInfo.vaDeadline}"></span>까지</dd>
 									</div>
 								</th:block>
 								<!-- //무통장 입금 결제시 -->
@@ -56,29 +57,51 @@
 					</div>
 					<div class="sec_body">
 						<div class="area_payinfo">
-							<h3>주문고객</h3>
+							<h3>주문자 정보</h3>
 							<div class="tbl type1">
 								<table>
 									<colgroup>
+										<col width="210">
 										<col width="*">
 									</colgroup>   
 									<tbody>
 										<tr>
+											<th>주문 고객</th>
 											<td>
-												<span class="sr-only">주문자명</span>
-												<th:block th:text="${orderInfo.ordNm}"></th:block>
+												<div class="single_line">
+													<ul>
+														<li><span th:text="${orderInfo.ordNm}"></span></li>
+														<li><span th:text="${orderInfo.ordEmail}"></span></li>
+														<li><span th:text="${orderInfo.ordPhnno}"></span></li>
+													</ul>
+												</div>
 											</td>
 										</tr>
 										<tr>
+											<th>배송지 정보</th>
 											<td>
-												<span class="sr-only">이메일</span>
-												<th:block th:text="${orderInfo.ordEmail}"></th:block>
-											</td>
-										</tr>
-										<tr>
-											<td>
-												<span class="sr-only">휴대폰 번호</span>
-												<th:block th:text="${orderInfo.ordPhnno}"></th:block>
+												<div class="block_line">
+													<ul>
+														<li>
+															<span id="recipNm" th:text="${orderInfo.recipNm}"></span>
+															<!-- 
+															<span class="tag">STYLE24 일반배송</span>
+															<span class="tag primary_line">총알배송</span>
+															 -->
+														</li>
+														<li>
+															<span id="recipPhnno" th:text="${orderInfo.recipPhnno}"></span>
+														</li>
+														<li>
+															<span id="recipAddr" th:text="${orderInfo.recipBaseAddr} + '    ' + ${orderInfo.recipDtlAddr}"></span>
+															<button type="button" id="btn_adrsChange_pop" class="btn btn_default btn_sm"><span>배송지 변경</span></button>
+														</li>
+														<li>
+															배송요청 사항&nbsp;:&nbsp;<span id="delvMemo" th:text="${orderInfo.delvMemo}"></span>
+															<button type="button" id="btn_rqstModify_pop" class="btn_underline"><span>변경하기</span></button>
+														</li>
+													</ul>
+												</div>
 											</td>
 										</tr>
 									</tbody>
@@ -86,159 +109,132 @@
 							</div>
 						</div>
 						<div class="area_payinfo">
-							<h3>배송지 정보</h3>
-							<div class="tbl type1">
+							<h3>결제정보</h3>
+							<div class="tbl type6">
 								<table>
 									<colgroup>
-										<col width="*">
-									</colgroup>   
-									<tbody>
-										<tr>
-											<td>
-												<span class="sr-only">배송지명</span>
-												<th:block th:text="${orderInfo.recipNm}"></th:block>
-											</td>
-										</tr>
-										<tr>
-											<td>
-												<span class="sr-only">배송 주소</span>
-												<th:block th:text="${orderInfo.recipBaseAddr} + ${orderInfo.recipDtlAddr}"></th:block>
-											</td>
-										</tr>
-										<tr>
-											<td>
-												<span class="sr-only">휴대폰 번호</span>
-												<th:block th:text="${orderInfo.recipPhnno}"></th:block>
-											</td>
-										</tr>
-										<tr>
-											<td>
-												<span class="tit">배송요청 사항</span>
-												<th:block th:text="${orderInfo.delvMemo}"></th:block>
-												<button type="button" class="btn_popup" id="btn_rqstModify_pop">
-													<span>변경하기</span>
-												</button>
-											</td>
-										</tr>
-									</tbody>
-								</table>
-							</div>
-						</div>
-						<div class="area_payinfo">
-							<h3>결제정보</h3>
-							<div class="order_amount">
-								<div class="tbl type3">
-									<table>
-										<colgroup>
-											<col width="33.33%">
-											<col width="33.33%">
-											<col width="*">
-										</colgroup>
-										<thead>
-											<tr>
-												<th>
-													<dl>
-														<dt>총 주문금액</dt>
-														
-														<dd class="price" th:text="|${#numbers.formatInteger(ordSumAmt, 1, 'COMMA')}원|"></dd>
-													</dl>
-													<i class="ico_calc minus"></i>
-												</th>
-												<th>
-													<dl>
-														<dt>총 할인금액</dt>
-														<dd class="price" th:if="${dcSumAmt}>0" th:text="|- ${#numbers.formatInteger(dcSumAmt, 1, 'COMMA')}원|"></dd>
-														<dd class="price" th:if="${dcSumAmt}<1" th:text="|${#numbers.formatInteger(dcSumAmt, 1, 'COMMA')}원|"></dd>
-													</dl>
-													<i class="ico_calc result"></i>
-												</th>
-												<th>
-													<dl>
-														<dt>결제금액</dt>
-														<dd class="price" data-weight="price" data-font="lato">
-															<span class="oder_total_price" th:text="${#numbers.formatInteger(realOrdSumAmt, 1, 'COMMA')}"></span>원
-														</dd>
-													</dl>
-												</th>
-											</tr>
-										</thead>
-										<tbody>
-											<tr>
-												<td>
-													<dl>
-														<div>
-															<dt>상품금액</dt>
-															<dd th:text="|${#numbers.formatInteger(goodsSumAmt, 1, 'COMMA')}원|"></dd>
-														</div>
-														<div>
-															<dt>배송비</dt>
-															<dd th:text="|${#numbers.formatInteger(delvFeeSumAmt, 1, 'COMMA')}원|"></dd>
-														</div>
-													</dl>
-												</td>
-												<td>
-													<dl>
-														<div>
-															<dt>상품 할인(즉시 할인)</dt>
-															<dd th:if="${cpn1DcSumAmt}>0" th:text="|- ${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}원|"></dd>
-															<dd th:if="${cpn1DcSumAmt}<1" th:text="|${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}원|"></dd>
+										<col width="50%">
+										<col width="50%">
+									</colgroup>
+									<tr>
+										<td>
+											<dl>
+												<div>
+													<dt>상품금액</dt>
+													<dd><em th:text="${#numbers.formatInteger(goodsSumAmt, 1, 'COMMA')}"></em>원</dd>	
+												</div>
+												<div>
+													<dt>배송비</dt>
+													<dd><em th:text="${#numbers.formatInteger(delvFeeSumAmt, 1, 'COMMA')}"></em>원</dd>	
+												</div>
+												<div>
+													<dt>상품할인(즉시할인)</dt>
+													<th:block th:if="${cpn1DcSumAmt}>0">
+														<dd><em th:text="|- ${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}|"></em>원</dd>
+													</th:block>
+													<th:block th:if="${cpn1DcSumAmt}<1">
+														<dd><em>0</em>원</dd>
+													</th:block>
+												</div>
+												<div>
+													<dt>다다익선 할인</dt>
+													<th:block th:if="${tmtbSumAmt}>0">
+														<dd><em th:text="|- ${#numbers.formatInteger(tmtbSumAmt, 1, 'COMMA')}|"></em>원</dd>
+													</th:block>
+													<th:block th:if="${tmtbSumAmt}<1">
+														<dd><em>0</em>원</dd>
+													</th:block>
+												</div>
+												<div>
+													<dt>쿠폰할인</dt>
+													<th:block th:if="${cpnDcSumAmt}>0">
+														<dd><em th:text="|- ${#numbers.formatInteger(cpnDcSumAmt, 1, 'COMMA')}|"></em>원</dd>
+													</th:block>
+													<th:block th:if="${cpnDcSumAmt}<1">
+														<dd><em>0</em>원</dd>
+													</th:block>
+												</div>
+												<div>
+													<dt>선포인트 할인</dt>
+													<th:block th:if="${prePntDcSumAmt}>0">
+														<dd><em th:text="|- ${#numbers.formatInteger(prePntDcSumAmt, 1, 'COMMA')}|"></em>원</dd>
+													</th:block>
+													<th:block th:if="${prePntDcSumAmt}<1">
+														<dd><em>0</em>원</dd>
+													</th:block>
+												</div>
+												<div>
+													<dt>포인트 사용</dt>
+													<th:block th:if="${pntDcSumAmt}>0">
+														<dd><em th:text="|- ${#numbers.formatInteger(pntDcSumAmt, 1, 'COMMA')}|"></em>원</dd>
+													</th:block>
+													<th:block th:if="${pntDcSumAmt}<1">
+														<dd><em>0</em>원</dd>
+													</th:block>
+												</div>
+												<div>
+													<dt>상품권 사용</dt>
+													<th:block th:if="${gfcdUseSumAmt}>0">
+														<dd><em th:text="|- ${#numbers.formatInteger(gfcdUseSumAmt, 1, 'COMMA')}|"></em>원</dd>
+													</th:block>
+													<th:block th:if="${gfcdUseSumAmt}<1">
+														<dd><em>0</em>원</dd>
+													</th:block>
+												</div>
+												<div>
+													<dt>마일리지 사용</dt>
+													<th:block th:if="${mileageDcAmt}>0">
+														<dd><em th:text="|- ${#numbers.formatInteger(mileageDcAmt, 1, 'COMMA')}|"></em>원</dd>
+													</th:block>
+													<th:block th:if="${mileageDcAmt}<1">
+														<dd><em>0</em>원</dd>
+													</th:block>
+												</div>
+												<div>
+													<dt>제휴할인</dt>
+													<th:block th:if="${allianceDcAmt}>0">
+														<dd><em th:text="|- ${#numbers.formatInteger(allianceDcAmt, 1, 'COMMA')}|"></em>원</dd>
+													</th:block>
+													<th:block th:if="${allianceDcAmt}<1">
+														<dd><em>0</em>원</dd>
+													</th:block>
+												</div>
+											</dl>
+										</td>
+										<td>
+											<dl>
+												<div>
+													<dt>결제 금액</dt>
+													<dd>
+														<div class="price">
+															<span class="pay_total_price"><em th:text="${#numbers.formatInteger(realOrdSumAmt, 1, 'COMMA')}"></em>원</span>
 														</div>
-														<div>
-															<dt>다다익선 할인</dt>
-															<dd th:if="${tmtbSumAmt}>0" th:text="|- ${#numbers.formatInteger(tmtbSumAmt, 1, 'COMMA')}원|"></dd>
-															<dd th:if="${tmtbSumAmt}<1" th:text="|${#numbers.formatInteger(tmtbSumAmt, 1, 'COMMA')}원|"></dd>
-														</div>
-														<div>
-															<dt>쿠폰 할인</dt>
-															<dd th:if="${cpnDcSumAmt}>0" th:text="|- ${#numbers.formatInteger(cpnDcSumAmt, 1, 'COMMA')}원|"></dd>
-															<dd th:if="${cpnDcSumAmt}<1" th:text="|${#numbers.formatInteger(cpnDcSumAmt, 1, 'COMMA')}원|"></dd>
-														</div>
-														<div>
-															<dt>선 포인트 할인</dt>
-															<dd th:if="${prePntDcSumAmt}>0" th:text="|- ${#numbers.formatInteger(prePntDcSumAmt, 1, 'COMMA')}원|"></dd>
-															<dd th:if="${prePntDcSumAmt}<1" th:text="|${#numbers.formatInteger(prePntDcSumAmt, 1, 'COMMA')}원|"></dd>
-														</div>
-														<div>
-															<dt>포인트 사용</dt>
-															<dd th:if="${pntDcSumAmt}>0" th:text="|- ${#numbers.formatInteger(pntDcSumAmt, 1, 'COMMA')}원|"></dd>
-															<dd th:if="${pntDcSumAmt}<1" th:text="|${#numbers.formatInteger(pntDcSumAmt, 1, 'COMMA')}원|"></dd>
-														</div>
-														<div>
-															<dt>상품권 사용</dt>
-															<dd th:if="${gfcdUseSumAmt}>0" th:text="|- ${#numbers.formatInteger(gfcdUseSumAmt, 1, 'COMMA')}원|"></dd>
-															<dd th:if="${gfcdUseSumAmt}<1" th:text="|${#numbers.formatInteger(gfcdUseSumAmt, 1, 'COMMA')}원|"></dd>
-														</div>
-														<div>
-															<dt>마일리지 사용</dt>
-															<dd th:if="${mileageDcAmt}>0" th:text="|- ${#numbers.formatInteger(mileageDcAmt, 1, 'COMMA')}원|"></dd>
-															<dd th:if="${mileageDcAmt}<1" th:text="|${#numbers.formatInteger(mileageDcAmt, 1, 'COMMA')}원|"></dd>
-														</div>
-														<div>
-															<dt>제휴 할인</dt>
-															<dd th:if="${allianceDcAmt}>0" th:text="|- ${#numbers.formatInteger(allianceDcAmt, 1, 'COMMA')}원|"></dd>
-															<dd th:if="${allianceDcAmt}<1" th:text="|${#numbers.formatInteger(allianceDcAmt, 1, 'COMMA')}원|"></dd>
-														</div>
-													</dl>
-												</td>		
-												<td>
-													<dl>
-														<div>
-															<dt>적립 예정 포인트</dt>
-															<dd th:text="|${#numbers.formatInteger(savePntSumAmt, 1, 'COMMA')}원|"></dd>
-														</div>
-														<div>
-															<dt>결제방법</dt>
-															<dd>
-																<span class="paymethod" th:if="!${orderInfo.cardNm}" th:text="${orderInfo.payType}"></span>
-																<span class="paymethod" th:if="${orderInfo.cardNm}" th:text="${orderInfo.cardNm}"></span>
-															</dd>
-														</div>
-													</dl>
-												</td>
-											</tr>
-										</tbody>
-									</table>
-								</div>
+													</dd>
+												</div>
+												<!-- 신용카드 일때 -->
+												<div>
+													<dt class="sr-only">결제방법</dt>
+													<th:block th:if="${orderInfo.cardType} == 'Y'">
+														<dd th:if="!${orderInfo.cardNm}" th:text="|체크카드(${orderInfo.payType})|"></dd>
+													</th:block>
+													<th:block th:if="${orderInfo.cardType} == 'N'">
+														<dd th:if="!${orderInfo.cardNm}" th:text="|신용카드(${orderInfo.payType})|"></dd>
+													</th:block>
+													<dd th:if="${orderInfo.cardNm}" th:text="${orderInfo.cardNm}"></dd>
+												</div>
+												<!-- //신용카드 일때 -->
+											</dl>
+											<dl>
+												<div>
+													<dt>적립 예정 포인트</dt>
+													<dd>
+														<span class="save_point"><em th:text="|${#numbers.formatInteger(savePntSumAmt, 1, 'COMMA')}P|"></em></span>
+													</dd>
+												</div>
+											</dl>
+										</td>
+									</tr>
+								</table>
 							</div>
 						</div>
 					</div>
@@ -254,6 +250,147 @@
 		</div>
 	</div>
 </div>
+<!-- // container -->
+
+<script th:inline="javascript">
+// 배송관련정보 변수선언
+var ordNo			= [[${orderInfo.ordNo}]]		// 배송목록
+var isLogin			= [[${isLogin}]];				// 로그인여부
+var delvAddrSq		= [[${delvAddrSq}]];			// 배송지번호
+
+// 2.1 회원 배송지변경 팝업열기
+$('#btn_adrsChange_pop').on("click", function(){
+	// 회원인경우
+	if (isLogin == true) {
+		$.ajax( {
+			type		: "POST",
+			url 		: '/common/delvAddrChangePop',
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+				gagajf.showProgressbar(true);
+			},
+			success 	: function(result) {
+				$("#adrsChangePop .modal-dialog .modal-content").html(result);
+				$("#adrsChangePop").modal("show");
+			}
+		});
+	}
+	// 비회원인경우
+	else {
+		$.ajax( {
+			type		: "POST",
+			url 		: '/common/delvAddrAddPop',
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+				gagajf.showProgressbar(true);
+			},
+			success 	: function(result) {
+				$("#adrsAddPop .modal-dialog .modal-content").html(result);
+				$("#adrsAddPop").modal("show");
+			}
+		});	
+	}
+});
+
+// 2.2 배송요청사항 팝업열기
+$("#btn_rqstModify_pop").on("click", function(e){
+	var jsonObj = new Object();
+	jsonObj.delvMemo = $("#delvMemo").text();
+	
+	$.ajax({
+		type		: "POST",
+		url 		: "/common/delvMemoChangePop",
+		data		: JSON.stringify(jsonObj),
+		dataType 	: "html",
+		beforeSend 	: function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			if (result != null) {
+				$("#rqstModifyPop .modal-dialog .modal-content").html(result);
+				$("#rqstModifyPop").modal("show");
+			}
+		}
+	});
+	
+	return false;
+});
+
+// 1.18 배송지정보 설정
+var delvAddrSet = function(delvObj) {
+	
+	var rtnStr = "";
+	rtnStr += "| recipNm 			::: " + delvObj.recipNm;
+	rtnStr += "| recipPhnno 		::: " + delvObj.recipPhnno;
+	rtnStr += "| recipZipcode 		::: " + delvObj.recipZipcode;
+	rtnStr += "| recipBaseAddr 		::: " + delvObj.recipBaseAddr;
+	rtnStr += "| recipDtlAddr 		::: " + delvObj.recipDtlAddr;
+	rtnStr += "| delvMemo 			::: " + delvObj.delvMemo;
+	
+	$("#recipNm").text(delvObj.recipNm);
+	$("#recipPhnno").text(delvObj.recipPhnno);
+	$("#recipAddr").text(delvObj.recipBaseAddr + '    ' + delvObj.recipDtlAddr);
+	$("#delvMemo").text(delvObj.delvMemo);
+	
+	// 변수값 설정
+	var jsonObj = {
+		"delvAddrSq" 		: delvAddrSq
+		, "recipNm"			: delvObj.recipNm
+		, "recipPhnno"		: delvObj.recipPhnno
+		, "recipZipcode"	: delvObj.recipZipcode
+		, "recipBaseAddr"	: delvObj.recipBaseAddr
+		, "recipDtlAddr"	: delvObj.recipDtlAddr
+		, "delvMemo"		: delvObj.delvMemo
+	}
+	
+	gagajf.ajaxJsonSubmit(
+		"/common/updateDeliverAddr"
+		, JSON.stringify(jsonObj)
+		, function (result) {
+			mcxDialog.alert("수정되었습니다.");
+		}
+	)
+}
+
+// 1.19 배송메모설정
+var delvMemoSet = function(delvMemoObj) {
+	
+	var rtnStr = "";
+	rtnStr += "| delvMemo 			::: " + delvMemoObj.delvMemo;
+
+	// 변수값 설정
+	var jsonObj = {
+		"delvAddrSq" 		: delvAddrSq
+		, "delvMemo"		: delvMemoObj.delvMemo
+	}
+	
+	$("#delvMemo").text(delvMemoObj.delvMemo);
+	
+	gagajf.ajaxJsonSubmit(
+		"/common/updateDeliverAddrDelvMemo"
+		, JSON.stringify(jsonObj)
+		, function (result) {
+			mcxDialog.alert("수정되었습니다.");
+		}
+	)
+}
+
+
+
+</script>
+
+
+
+
 </th:block>
 </body>
 </html>

+ 259 - 0
src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb_20210401.html

@@ -0,0 +1,259 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="web/common/layout/DefaultLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : OrderCompleteWeb.html
+ * @desc    : 주문완료 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.16   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<div id="container" class="container od">
+	<div class="wrap">
+		<div class="content completed">
+			<div class="cont_head">
+				<h2>주문완료</h2>
+				<div class="oder_steps">
+					<ul>
+						<li>01 쇼핑백</li>
+						<li>02 주문/결제</li>
+						<li class="on">03 주문완료</li>
+					</ul>
+				</div>
+			</div>
+			<div class="cont_body">
+				<!-- CONT-BODY -->
+				<div class="od_cont">
+					<div class="sec_head">
+						<div class="info_complete">
+							<p class="txt_box">감사합니다. <span th:text="${orderInfo.ordNm}"></span> 고객님의 주문이 완료되었습니다.</p>
+							<dl class="report_box">
+								<div>
+									<dt>주문번호</dt>
+									<dd th:text="${orderInfo.ordNo}"></dd>
+								</div>
+								<!-- 무통장입금 결제시 -->
+								<th:block th:if="${orderInfo.payMeans} == 'G014_20'">
+									<div>
+										<dt>무통장입금정보</dt>
+										<dd th:text="${orderInfo.cardNm}+${orderInfo.vaBank}"></dd>
+									</div>
+									<div class="closedate">
+										<dt>입금마감</dt>
+										<dd th:text="|${orderInfo.vaDeadline}까지|"></dd>
+									</div>
+								</th:block>
+								<!-- //무통장 입금 결제시 -->
+							</dl>
+						</div>
+					</div>
+					<div class="sec_body">
+						<div class="area_payinfo">
+							<h3>주문고객</h3>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="*">
+									</colgroup>   
+									<tbody>
+										<tr>
+											<td>
+												<span class="sr-only">주문자명</span>
+												<th:block th:text="${orderInfo.ordNm}"></th:block>
+											</td>
+										</tr>
+										<tr>
+											<td>
+												<span class="sr-only">이메일</span>
+												<th:block th:text="${orderInfo.ordEmail}"></th:block>
+											</td>
+										</tr>
+										<tr>
+											<td>
+												<span class="sr-only">휴대폰 번호</span>
+												<th:block th:text="${orderInfo.ordPhnno}"></th:block>
+											</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>
+						<div class="area_payinfo">
+							<h3>배송지 정보</h3>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="*">
+									</colgroup>   
+									<tbody>
+										<tr>
+											<td>
+												<span class="sr-only">배송지명</span>
+												<th:block th:text="${orderInfo.recipNm}"></th:block>
+											</td>
+										</tr>
+										<tr>
+											<td>
+												<span class="sr-only">배송 주소</span>
+												<th:block th:text="${orderInfo.recipBaseAddr} + ${orderInfo.recipDtlAddr}"></th:block>
+											</td>
+										</tr>
+										<tr>
+											<td>
+												<span class="sr-only">휴대폰 번호</span>
+												<th:block th:text="${orderInfo.recipPhnno}"></th:block>
+											</td>
+										</tr>
+										<tr>
+											<td>
+												<span class="tit">배송요청 사항</span>
+												<th:block th:text="${orderInfo.delvMemo}"></th:block>
+												<button type="button" class="btn_popup" id="btn_rqstModify_pop">
+													<span>변경하기</span>
+												</button>
+											</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>
+						<div class="area_payinfo">
+							<h3>결제정보</h3>
+							<div class="order_amount">
+								<div class="tbl type3">
+									<table>
+										<colgroup>
+											<col width="33.33%">
+											<col width="33.33%">
+											<col width="*">
+										</colgroup>
+										<thead>
+											<tr>
+												<th>
+													<dl>
+														<dt>총 주문금액</dt>
+														
+														<dd class="price" th:text="|${#numbers.formatInteger(ordSumAmt, 1, 'COMMA')}원|"></dd>
+													</dl>
+													<i class="ico_calc minus"></i>
+												</th>
+												<th>
+													<dl>
+														<dt>총 할인금액</dt>
+														<dd class="price" th:if="${dcSumAmt}>0" th:text="|- ${#numbers.formatInteger(dcSumAmt, 1, 'COMMA')}원|"></dd>
+														<dd class="price" th:if="${dcSumAmt}<1" th:text="|${#numbers.formatInteger(dcSumAmt, 1, 'COMMA')}원|"></dd>
+													</dl>
+													<i class="ico_calc result"></i>
+												</th>
+												<th>
+													<dl>
+														<dt>결제금액</dt>
+														<dd class="price" data-weight="price" data-font="lato">
+															<span class="oder_total_price" th:text="${#numbers.formatInteger(realOrdSumAmt, 1, 'COMMA')}"></span>원
+														</dd>
+													</dl>
+												</th>
+											</tr>
+										</thead>
+										<tbody>
+											<tr>
+												<td>
+													<dl>
+														<div>
+															<dt>상품금액</dt>
+															<dd th:text="|${#numbers.formatInteger(goodsSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>배송비</dt>
+															<dd th:text="|${#numbers.formatInteger(delvFeeSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+													</dl>
+												</td>
+												<td>
+													<dl>
+														<div>
+															<dt>상품 할인(즉시 할인)</dt>
+															<dd th:if="${cpn1DcSumAmt}>0" th:text="|- ${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${cpn1DcSumAmt}<1" th:text="|${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>다다익선 할인</dt>
+															<dd th:if="${tmtbSumAmt}>0" th:text="|- ${#numbers.formatInteger(tmtbSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${tmtbSumAmt}<1" th:text="|${#numbers.formatInteger(tmtbSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>쿠폰 할인</dt>
+															<dd th:if="${cpnDcSumAmt}>0" th:text="|- ${#numbers.formatInteger(cpnDcSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${cpnDcSumAmt}<1" th:text="|${#numbers.formatInteger(cpnDcSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>선 포인트 할인</dt>
+															<dd th:if="${prePntDcSumAmt}>0" th:text="|- ${#numbers.formatInteger(prePntDcSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${prePntDcSumAmt}<1" th:text="|${#numbers.formatInteger(prePntDcSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>포인트 사용</dt>
+															<dd th:if="${pntDcSumAmt}>0" th:text="|- ${#numbers.formatInteger(pntDcSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${pntDcSumAmt}<1" th:text="|${#numbers.formatInteger(pntDcSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>상품권 사용</dt>
+															<dd th:if="${gfcdUseSumAmt}>0" th:text="|- ${#numbers.formatInteger(gfcdUseSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${gfcdUseSumAmt}<1" th:text="|${#numbers.formatInteger(gfcdUseSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>마일리지 사용</dt>
+															<dd th:if="${mileageDcAmt}>0" th:text="|- ${#numbers.formatInteger(mileageDcAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${mileageDcAmt}<1" th:text="|${#numbers.formatInteger(mileageDcAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>제휴 할인</dt>
+															<dd th:if="${allianceDcAmt}>0" th:text="|- ${#numbers.formatInteger(allianceDcAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${allianceDcAmt}<1" th:text="|${#numbers.formatInteger(allianceDcAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+													</dl>
+												</td>		
+												<td>
+													<dl>
+														<div>
+															<dt>적립 예정 포인트</dt>
+															<dd th:text="|${#numbers.formatInteger(savePntSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>결제방법</dt>
+															<dd>
+																<span class="paymethod" th:if="!${orderInfo.cardNm}" th:text="${orderInfo.payType}"></span>
+																<span class="paymethod" th:if="${orderInfo.cardNm}" th:text="${orderInfo.cardNm}"></span>
+															</dd>
+														</div>
+													</dl>
+												</td>
+											</tr>
+										</tbody>
+									</table>
+								</div>
+							</div>
+						</div>
+					</div>
+					<div class="sec_foot">
+						<div class="btn_group_md">
+							<button type="button" class="btn btn_default btn_md"><span>주문 상세보기</span></button>
+							<button type="button" class="btn btn_dark btn_md"><span>쇼핑 계속하기</span></button>
+						</div>
+					</div>
+				</div>
+				<!-- //CONT-BODY -->
+			</div>
+		</div>
+	</div>
+</div>
+</th:block>
+</body>
+</html>

+ 4 - 18
src/main/webapp/WEB-INF/views/web/order/OrderDcAmtInfoWeb.html

@@ -115,11 +115,11 @@
 							<div class="form_field">
 								<input type="hidden" name="rmPrePntAmt" th:value="${prePntDcAmt}"/>
 								<div>
-									<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint1"value="N" checked=""> 
+									<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint1"value="N"> 
 									<label for="rdi-beforpoint1"><span>사용 안함</span></label>
 								</div>
 								<div>
-									<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint2" value="Y"> 
+									<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint2" value="Y" checked> 
 									<label for="rdi-beforpoint2"><span>사용함</span></label> 
 									<span class="useable_point">(<em th:text="${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')}"></em>&nbsp;사용 가능)</span>
 								</div>
@@ -207,24 +207,10 @@ $(document).ready( function() {
 	// 화면펼침
 	if (dispYn == "Y") {
 		$("#dcAmtInfo .fold_head").addClass("on");
-		$("#dcAmtInfo .fold_cont").css("display", "block");
-
-		$("#dcAmtInfo .fold_cont .btn_coupon_toggle").addClass("on");
-		$("#dcAmtInfo .fold_cont .coupon_list").css("display", "block");
-		
-		// 2021.03.15 보유쿠폰존재하면 할인쿠폰 영역 노출
-		var custCpnCnt  = 0;
-		$("#custCpnInfo .coupon").each(function(){
-			custCpnCnt++;
-		});
-		
-		if (custCpnCnt > 0) {
-			$("#custCpnInfo").show();
-		}
-		
+		$("#dcAmtInfo .fold_cont").show();
 	}
 	
-	//할인쿠폰(배송비) 선택           
+	//할인쿠폰(배송비) 선택
     var od_dlvrfee_coupon_selecter = new sCombo('.od .odPayment .dlvr_fee_box .select_custom.coupon_list');
 });
 </script>

+ 32 - 24
src/main/webapp/WEB-INF/views/web/order/OrderDeliveryAddrInfoWeb.html

@@ -56,20 +56,9 @@
 				</dt>
 				<dd>
 					<th:block th:text="${deliveryAddrInfo.recipBaseAddr} + '    ' + ${deliveryAddrInfo.recipDtlAddr}"></th:block>
-					<!-- 회원 -->
-					<th:block th:if="${isLogin}">
-						<button type="button" class="btn btn_default btn_sm" id="btn_adrsChange_pop">
-							<span>배송지 변경</span>
-						</button><!-- 비회원 -->
-					</th:block>
-					<!-- //회원 -->
-					<!-- 비회원 -->
-					<th:block th:if="!${isLogin}">
-						<button type="button" class="btn btn_default btn_sm" id="btn_adrsAdd_pop_noMember">
-							<span>배송지 변경</span>
-						</button>
-					</th:block>
-					<!-- //비회원 -->
+					<button type="button" class="btn btn_default btn_sm" id="btn_adrsChange_pop">
+						<span>배송지 변경</span>
+					</button>
 				</dd>
 			</div>
 			<div>
@@ -99,22 +88,22 @@
 					<dd>
 						<div class="form_field">
 							<div>
-								<input type="radio" name="rdi-overseas" id="rdi-overs1" value="" checked=""> 
+								<input type="radio" name="rdi-overseas" id="rdi-overs1" value="Y"> 
 								<label for="rdi-overs1"><span>받는사람 개인통관고유부호</span></label>
 							</div>
 							<div>
-								<input type="radio" name="rdi-overseas" id="rdi-overs2" value=""> 
+								<input type="radio" name="rdi-overseas" id="rdi-overs2" value="N" checked> 
 								<label for="rdi-overs2"><span>입력 안 함</span></label>
 							</div>
-							<div class="info_box overs1">
+							<div class="info_box overs1" style="display:none;">
 								<div class="input_wrap">
-									<input type="text" class="form_control err" maxlength="13" placeholder="P로 시작하는 13자리">
+									<input type="text" name="entryNo" class="form_control" maxlength="13" placeholder="P로 시작하는 13자리">
 									<!-- 유효하지 않은 개인통관고유부호 일때 class명 'err' 추가 -->
 								</div>
-								<div class="t_err">개인통관고유부호가 유효하지 않습니다.</div>
+								<div class="t_err" style="display:none;">개인통관고유부호가 유효하지 않습니다.</div>
 								<!-- 유효하지 않은 개인통관고유부호 일때 노출 -->
 								<div class="agree_overs">
-									<input id="chk-overs-agr" type="checkbox" checked="">
+									<input id="chk-overs-agr" type="checkbox">
 									<label for="chk-overs-agr">
 										<span>위 정보는 원활한 통관을 위해 수집 및 판매자에게 제공하며,계속 사용하도록 안전하게 STYLE24에서 저장 / 관리 합니다.&nbsp;&nbsp;<em class="tmark_required">(필수)</em></span>
 									</label>
@@ -142,7 +131,7 @@
 		<div class="area_customitem">
 			<div class="form_field">
 				<div class="agree_custom">
-					<input id="chk-custom-agr1" type="checkbox" checked="">
+					<input id="chk-custom-agr1" type="checkbox">
 					<label for="chk-custom-agr1">
 						<span>고객님께서 주문하신 상품에는 주문제작상품이 포함되어 있습니다.<br>주문제작상품에 대한 안내를 확인하였으며 배송에 동의합니다.&nbsp;&nbsp;
 							<em class="tmark_required">(필수)</em>
@@ -164,12 +153,31 @@
 <script th:inline="javascript">
 var dispYn = [[${order.dispYn}]]; // 노출여부
 
+//화면노출
+var deliveryAddrInfoDispYn = function(temp) {
+	if (temp == "Y") {
+		$("#deliveryAddrInfo .fold_head").addClass("on");
+		$("#deliveryAddrInfo .fold_cont").show();
+	} else {
+		$("#deliveryAddrInfo .fold_head").removeClass("on");
+		$("#deliveryAddrInfo .fold_cont").hide();
+	}
+}
+
 //컨텐츠 호출
 $(document).ready( function() {
 	// 화면펼침
-	if (dispYn == "Y") {
-		$("#deliveryAddrInfo .fold_head").addClass("on");
-		$("#deliveryAddrInfo .fold_cont").css("display", "block");
+	deliveryAddrInfoDispYn(dispYn);
+});
+
+// 개인통관부호 유효성체크
+$("#orderForm input[name=entryNo]").on("change", function(){
+	if ($(this).val().length > 0 && $(this).val().length < 13) {
+		$(this).parent().parent().find(".t_err").show();
+		$(this).addClass("err");
+	} else {
+		$(this).parent().parent().find(".t_err").hide();
+		$(this).removeClass("err");
 	}
 });
 </script>

+ 221 - 111
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -441,55 +441,18 @@
 </div>
 </form>
 
-<!-- 배송지변경 팝업 -->
-<div class="modal fade adrsChange_pop" id="adrsChangePop" tabindex="-1" role="dialog" aria-labelledby="adrsChangeLabel" aria-hidden="true">
-	<div class="modal-dialog" role="document">
-		<div class="modal-content">
-			<!-- 배송지변경 팝업 내용 -->
-		</div>
-	</div>
-	<a href="#close-modal" rel="modal:close" id="adrsChangePop_close" class="close-modal">Close</a>
-</div>
-<!-- //배송지변경 팝업 -->
-
-<!-- 배송지추가 팝업 -->
-<div class="modal fade adrsModify_pop" id="adrsAddPop" tabindex="-1" role="dialog" aria-labelledby="adrsAddLabel" aria-hidden="true">
-	<div class="modal-dialog" role="document">
-		<div class="modal-content">
-			<!-- 배송지추가 팝업 내용 -->
-		</div>
-	</div>
-	<a href="#close-modal" rel="modal:close" id="adrsAddPop_close" class="close-modal">Close</a>
-</div>
-<!-- //배송지추가 팝업 -->
-
-<!-- 배송지수정 팝업 -->
-<div class="modal fade adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" aria-hidden="true">
-	<div class="modal-dialog" role="document">
-		<div class="modal-content">
-			<!-- 배송지수정 팝업 내용 -->
-		</div>
-	</div>
-	<a href="#close-modal" rel="modal:close" id="adrsModifyPop_close" class="close-modal">Close</a>
-</div>
-<!-- //배송지수정 팝업 -->
-
-<!-- 배송요청사항수정 팝업 -->
-<div class="modal fade rqstModify_pop" id="rqstModifyPop" tabindex="-1" role="dialog" aria-labelledby="rqstModifyLabel" aria-hidden="true">
-	<div class="modal-dialog" role="document">
-		<div class="modal-content">
-			<!-- 배송요청사항수정 팝업 내용 -->
-		</div>
-	</div>
-	<a href="#close-modal" rel="modal:close" id="rqstModifyPop_close" class="close-modal">Close</a>
-</div>
-<!-- //배송요청사항수정 팝업 -->
-
 <!-- 사은품지급안내 팝업 -->
 <div class="modal fade infoGift_pop" id="infoGiftPop" tabindex="-1" role="dialog" aria-labelledby="infoGiftLabel" aria-hidden="true">
 	<div class="modal-dialog" role="document">
 		<div class="modal-content">   
-			<!-- 사은품지급안내 팝업 내용 -->
+			<div class="modal-header"><h5 class="modal-title" id="infoGiftLabel">STYLE24 사은품 지급 안내</h5></div>
+			<div class="modal-body">
+				<div class="pop_cont">
+					<div class="cont_box">
+						사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.
+					</div>
+				</div>
+			</div>
 		</div>
 	</div>
 	<a href="#close-modal" rel="modal:close" id="infoGiftPop_close" class="close-modal">Close</a>
@@ -527,6 +490,7 @@ var recipDtlAddr		= [[${order.recipDtlAddr}]];	// 상세주소
 var cartSqArr			= [[${order.cartSqArr}]];		// 장바구니시퀀스 목록
 var shotDelvUseYn		= [[${order.shotDelvUseYn}]];	// 총알배송사용여부(장바구니)
 var shotDelvYn			= [[${order.shotDelvUseYn}]];	// 총알배송사용여부(장바구니)
+var foreignBuyYn		= [[${order.foreignBuyYn}]];	// 해외구매대행
 
 var foreignBuyYn		= [[${foreignBuyYn}]];			// 해외구매대행여부
 var orderMadeYn			= [[${orderMadeYn}]];			// 주문제작상품여부
@@ -614,17 +578,17 @@ var custemerInfoSet = function() {
 				$(".cellPhnno").text($("input[name='cellPhnno']").val());
 			}
 			// 1.2 배송정보로드
-			deliveryAddrInfoSet(true);
+			deliveryAddrInfoSet(jsonObj, true);
 		}
 	});
 }
 
 // 1.2 배송정보로드
-var deliveryAddrInfoSet = function(temp) {
+var deliveryAddrInfoSet = function(delvObj, temp) {
 	$.ajax( {
 		type		: "POST",
 		url 		: '/order/deliveryAddrInfo',
-		data		: JSON.stringify(jsonObj),
+		data		: JSON.stringify(delvObj),
 		dataType 	: 'html',
 		beforeSend : function(xhr, settings) {
 			xhr.setRequestHeader("AJAX"			, "true");
@@ -643,60 +607,66 @@ var deliveryAddrInfoSet = function(temp) {
 			$(".recipBaseAddr").text($("#orderForm input[name='recipBaseAddr']").val());
 			$(".recipDtlAddr").text($("#orderForm input[name='recipDtlAddr']").val());
 			$(".delvMemo").text($("#orderForm input[name='delvMemo']").val());
-			$(".foreignBuyYn").text($("#orderForm input[name='foreignBuyYn']").val());
-			$(".orderMadeYn").text($("#orderForm input[name='orderMadeYn']").val());
 			
 			// 2. 버튼기능구현
 			// 2.1 회원 배송지변경 팝업열기
 			$('#btn_adrsChange_pop').on("click", function(){
-				$.ajax( {
-					type		: "POST",
-					url 		: '/order/delvAddrChangePop',
-					data		: JSON.stringify(jsonObj),
-					dataType 	: 'html',
-					beforeSend : function(xhr, settings) {
-						xhr.setRequestHeader("AJAX"			, "true");
-						xhr.setRequestHeader('Accept'		, 'application/json');
-						xhr.setRequestHeader('Content-Type'	, 'application/json');
-						gagajf.showProgressbar(true);
-					},
-					success 	: function(result) {
-						$("#adrsChangePop .modal-dialog .modal-content").html(result);
-						$("#adrsChangePop").modal("show");
-					}
-				});	
-			});
-			
-			// 2.1 비회원 배송지추가 팝업열기
-			$('#btn_adrsAdd_pop_noMember').on("click", function(){
-				$.ajax( {
-					type		: "POST",
-					url 		: '/order/delvAddrAddPop',
-					data		: JSON.stringify(jsonObj),
-					dataType 	: 'html',
-					beforeSend : function(xhr, settings) {
-						xhr.setRequestHeader("AJAX"			, "true");
-						xhr.setRequestHeader('Accept'		, 'application/json');
-						xhr.setRequestHeader('Content-Type'	, 'application/json');
-						gagajf.showProgressbar(true);
-					},
-					success 	: function(result) {
-						$("#adrsAddPop .modal-dialog .modal-content").html(result);
-						$("#adrsAddPop").modal("show");
-					}
-				});	
+				// 회원인경우
+				if (isLogin == true) {
+					$.ajax( {
+						type		: "POST",
+						url 		: '/common/delvAddrChangePop',
+						data		: JSON.stringify(jsonObj),
+						dataType 	: 'html',
+						beforeSend : function(xhr, settings) {
+							xhr.setRequestHeader("AJAX"			, "true");
+							xhr.setRequestHeader('Accept'		, 'application/json');
+							xhr.setRequestHeader('Content-Type'	, 'application/json');
+							gagajf.showProgressbar(true);
+						},
+						success 	: function(result) {
+							$("#adrsChangePop .modal-dialog .modal-content").html(result);
+							$("#adrsChangePop").modal("show");
+						}
+					});
+				}
+				// 비회원인경우
+				else {
+					$.ajax( {
+						type		: "POST",
+						url 		: '/common/delvAddrAddPop',
+						data		: JSON.stringify(jsonObj),
+						dataType 	: 'html',
+						beforeSend : function(xhr, settings) {
+							xhr.setRequestHeader("AJAX"			, "true");
+							xhr.setRequestHeader('Accept'		, 'application/json');
+							xhr.setRequestHeader('Content-Type'	, 'application/json');
+							gagajf.showProgressbar(true);
+						},
+						success 	: function(result) {
+							$("#adrsAddPop .modal-dialog .modal-content").html(result);
+							$("#adrsAddPop").modal("show");
+						}
+					});	
+				}
 			});
 			
-			// 배송요청사항 팝업열기
+			// 2.2 배송요청사항 팝업열기
 			$("#btn_rqstModify_pop").on("click", function(e){
 				var jsonObj = new Object();
 				jsonObj.delvMemo = $("#orderForm input[name=delvMemo]").val();
-				
+
 				$.ajax({
 					type		: "POST",
-					url 		: "/order/delvMemoChangePop",
+					url 		: "/common/delvMemoChangePop",
 					data		: JSON.stringify(jsonObj),
 					dataType 	: "html",
+					beforeSend 	: function(xhr, settings) {
+						xhr.setRequestHeader("AJAX"			, "true");
+						xhr.setRequestHeader('Accept'		, 'application/json');
+						xhr.setRequestHeader('Content-Type'	, 'application/json');
+						gagajf.showProgressbar(true);
+					},
 					success 	: function(result) {
 						if (result != null) {
 							$("#rqstModifyPop .modal-dialog .modal-content").html(result);
@@ -795,7 +765,6 @@ var orderListInfoSet = function(orderListJsonData, temp) {
 				} else {
 					$(".shotDelv").hide();
 				}
-				
 			}
 			
 			// 1.5 사은품정보로드
@@ -908,9 +877,70 @@ var paymentInfoSet = function() {
 					var delvFeeCdList		= [];
 					var ordGoodsQty			= 0;
 					var goodsNm				= "";
+					var orgEntryNo 			= "";
+					var entryNo 			= "";
+					
+					// TODO 개인통관번호 동의 체크시 통관번호 등록
+					if (foreignBuyYn == "Y") {
+						if ($("#orderForm input[name=rdi-overseas]:checked").val() == "Y") {
+							if (gagajf.isNull($("#orderForm input[name=entryNo]").val())) {
+								mcxDialog.alert("개인통관고유부호를 입력해주세요.");
+								$('#orderForm input[name=entryNo]').focus();
+								
+								// 배송정보화면노출
+								deliveryAddrInfoDispYn("Y");
+								return false;
+							}
+							
+							orgEntryNo = $("#orderForm input[name=entryNo]").val();
+							
+							if (orgEntryNo.length < 13) {
+								mcxDialog.alert("개인통관고유부호가 유효하지 않습니다.");
+								$('#orderForm input[name=entryNo]').focus();
+								
+								// 배송정보화면노출
+								deliveryAddrInfoDispYn("Y");
+								return false;
+							}
+							
+							if (!$("#chk-overs-agr").is(":checked")) {
+								mcxDialog.alert("개인통관정보고유부호 정보 동의/저장항목을 체크해주세요.");
+								
+								// 배송정보화면노출
+								deliveryAddrInfoDispYn("Y");
+								return false;
+							}
+						}
+					}
+					
+					// 주문제작상품일때 주문제작정보동의
+					if (orderMadeYn == "Y") {
+						if (!$("#chk-custom-agr1").is(":checked")) {
+							mcxDialog.alert("주문제작상품 정보 동의를 체크해주세요.");
+							
+							// 배송정보화면노출
+							deliveryAddrInfoDispYn("Y");
+							return false;
+						}
+					}
+					
+					// 사은품지급할 경우 체크
+					if ($(".freegiftValArr").text().length > 0) {
+						if (!$("#chk-agree_gift").is(":checked")) {
+							mcxDialog.alert("사은품 지급 정보 동의를 체크해주세요.");
+							
+							// 배송정보화면노출
+							freegiftInfoDispYn("Y");
+							return false;
+						}
+					}
 					
-					if (paynormal == null || paynormal == '') {
-						alert("결제수단을 선택해 주세요.");
+					// 결재수단
+					if (gagajf.isNull(paynormal)) {
+						mcxDialog.alert("결제수단을 선택해 주세요.");
+						
+						// 결제수단정보노출
+						paymentInfoDispYn("Y");
 						return false;
 					}
 					
@@ -920,6 +950,21 @@ var paymentInfoSet = function() {
 
 					// 주문상세데이타 생성
 					$("#orderDetailInfo .cartSq").each(function(){
+						// 주문상세단위 총알배송여부 변경
+						var orderDetailShotDelvYn = $(this).parent().find(".shotDelvYn").text();
+						if (orderDetailShotDelvYn == "Y") {
+							if (shotDelvYn == "N") {
+								orderDetailShotDelvYn = "N";
+							}
+						}
+						
+						// 개인통관번호
+						if ($(this).parent().find(".foreignBuyYn").text() == "Y") {
+							entryNo = orgEntryNo;
+						} else {
+							entryNo = "";
+						}
+						
 						var orderDetailData = {
 							"cartSq"			: $(this).text()
 							,"currPrice"		: $(this).parent().find(".orgCurrPrice").text()
@@ -941,8 +986,8 @@ var paymentInfoSet = function() {
 							,"gfcdUseAmt"		: $(this).parent().find(".gfcdUseAmt1").text()
 							,"realOrdAmt"		: $(this).parent().find(".realOrdAmt1").text()
 							,"savePntAmt"		: $(this).parent().find(".savePntAmt1").text()
-							,"shotDelvYn"		: $(this).parent().find(".shotDelvYn").text()
-							,"foreignBuyYn"		: $(this).parent().find(".foreignYn").text()
+							,"shotDelvYn"		: orderDetailShotDelvYn
+							,"foreignBuyYn"		: $(this).parent().find(".foreignBuyYn").text()
 							,"makeGoodsYn"		: $(this).parent().find(".orderMadeYn").text()
 							,"delvFeeCd"		: $(this).parent().find(".delvFeeCd").text()
 							,"goodsCd"			: $(this).parent().find(".goodsCd").text()
@@ -950,6 +995,7 @@ var paymentInfoSet = function() {
 							,"optCdArr"			: $(this).parent().find(".optCd").text().split(",")
 							,"itemQtyArr"		: $(this).parent().find(".itemQtyr").text().split(",")
 							,"goodsType"		: $(this).parent().find(".goodsType").text()
+							,"entryNo"			: entryNo
 						}
 						
 						// 상품수
@@ -985,7 +1031,7 @@ var paymentInfoSet = function() {
 						,"orderDetailList"		: orderDetailList
 						,"delvFeeCdList"		: delvFeeCdList
 						,"shotDelvYn"			: shotDelvYn
-						,"entryNo"				: $("input[name='entryNo']").val()
+						,"entryNo"				: entryNo
 						,"pgGb"					: pgGb
 						,"payMeans"				: payMeans // 네이버페이, 카카오페이
 						,"payAmt"				: $(".realOrdSumAmt").text()
@@ -1029,7 +1075,7 @@ var paymentInfoSet = function() {
 
 				// 1.8 할인영역 설정 (로그인여부일때 동작)
 				if (isLogin == true) {
-					dcAmtInfoSet(jsonData);
+					dcAmtInfoSet();
 				} else {
 					// 금액계산초기화
 					custCpnSumAmtCal();
@@ -1041,6 +1087,13 @@ var paymentInfoSet = function() {
 
 // 1.7 프로모션 쿠폰 적용 함수
 var serialCpnApply = function(){
+	
+	if (gagajf.isNull($("#serialCpnNm").val())) {
+		mcxDialog.alert("할인코드를 입력해주세요.");
+		$('#serialCpnNm').focus();
+		return false;
+	}
+	
 	let data = {
 		rdCpnNm : $("#serialCpnNm").val()
 	}
@@ -1052,16 +1105,17 @@ var serialCpnApply = function(){
 		dataType 		: 'json',
 		data 			: JSON.stringify(data),
 		success 		: function(result) {
-			var jsonObj 	= {"cartSqArr" : cartSqArr,"dispYn" : "Y"};
-			var jsonData 	= JSON.stringify(jsonObj);
+			// 프로모션쿠폰적용 후 할인영역 노출
+			jsonObj.dispYn = "Y";
 
 			// 성공일때는 쿠폰정보 및 포인트 정보 reset
 			if (result.serialCpnInfo.result == "SUCCESS") {
-				alert("쿠폰 등록이 되었습니다.");
+				mcxDialog.alert("쿠폰 등록이 되었습니다.");
 				// 1.8 할인영역 재로드
 				dcAmtInfoSet(jsonData);
 			} else {
-				alert(result.serialCpnInfo.result);
+				mcxDialog.alert(result.serialCpnInfo.result);
+				$("#serialCpnNm").val("");
 			}
 		}
 	});
@@ -1101,6 +1155,9 @@ var dcAmtInfoSet = function() {
 					success 	: function(result) {
 						$("#couponModifyPop").html(result);
 						
+						// 1.8.1 선포인트기능초기환
+						prePntDcAmtReset();
+						
 						// 1.8.2 쿠폰적용초기화(할인율최고)(상품,장바구니)
 						custGoodsCpnInit();
 						
@@ -1153,17 +1210,23 @@ var dcAmtInfoSet = function() {
 				
 				// 1.8.7 포인트 적용버튼 기능
 				$("#btn_point_apply").on("click", function(){
-					var rmPntAmt 			= parseInt($("input[name='rmPntAmt']").val());
+					var rmPntAmt 			= parseInt($("#orderForm input[name='rmPntAmt']").val());
 					var freegiftUsePnt 		= parseInt($(".freegiftUsePnt").text());
-					var pntDcAmt 			= parseInt($("input[name='pntDcAmtStr']").val());
+					var pntDcAmt 			= parseInt($("#orderForm input[name='pntDcAmtStr']").val());
 					var realOrdAmt 			= parseInt($(".realOrdSumAmt").text());
 					var applyPntDcAmt 		= (realOrdAmt * 40) / 100;
 					
 					rmPntAmt				= rmPntAmt - freegiftUsePnt;
 					
+					if (gagajf.isNull($("#orderForm input[name=pntDcAmtStr]").val())) {
+						mcxDialog.alert("사용할 포인트를 입력해주세요.");
+						$('#orderForm input[name=pntDcAmtStr]').focus();
+						return false;
+					}
+					
 					// 입력여부체크
 					if (pntDcAmt < 1) {
-						alert("사용할 포인트를 입력해주세요");
+						mcxDialog.alert("사용할 포인트를 입력해주세요");
 						// 포인트리셋기능
 						pntDcAmtReset();
 						return false;
@@ -1171,7 +1234,7 @@ var dcAmtInfoSet = function() {
 					
 					// 보유포인트보다 초과 사용 불가
 					if (pntDcAmt > rmPntAmt) {
-						alert("보유포인트 보다 초과 사용 할 수 없습니다.");
+						mcxDialog.alert("보유포인트 보다 초과 사용 할 수 없습니다.");
 						// 포인트리셋기능
 						pntDcAmtReset();
 						return false;
@@ -1179,7 +1242,7 @@ var dcAmtInfoSet = function() {
 
 					// TODO 포인트 사용금액 1000P 이상 사용
 					if (pntDcAmt < 1000) {
-						alert("포인트는 최소 1,000P이상 사용해야 합니다.");
+						mcxDialog.alert("포인트는 최소 1,000P이상 사용해야 합니다.");
 						// 포인트리셋기능
 						pntDcAmtReset();
 						return false;
@@ -1187,7 +1250,7 @@ var dcAmtInfoSet = function() {
 					
 					// 실결제금액보다 크게 적용 되었을때 적용 불가능
 					if (pntDcAmt > applyPntDcAmt) {
-						alert("결제금액의 최대 40%를 초과 사용 할 수 없습니다.");
+						mcxDialog.alert("결제금액의 최대 40%를 초과 사용 할 수 없습니다.");
 						// 포인트리셋기능
 						pntDcAmtReset();
 						return false;
@@ -1203,12 +1266,18 @@ var dcAmtInfoSet = function() {
 				
 				// 1.8.8 상품권 적용버튼 기능
 				$("#btn_gfcd_apply").on("click", function(){
-					var rmGfcdAmt 		= parseInt($("input[name='rmGfcdAmt']").val());
-					var gfcdUseAmt 		= parseInt($("input[name='gfcdUseAmtStr']").val());
+					var rmGfcdAmt 		= parseInt($("#orderForm input[name='rmGfcdAmt']").val());
+					var gfcdUseAmt 		= parseInt($("#orderForm input[name='gfcdUseAmtStr']").val());
+					
+					if (gagajf.isNull($("#orderForm input[name=gfcdUseAmtStr]").val())) {
+						mcxDialog.alert("사용할 금액을 입력해주세요.");
+						$('#orderForm input[name=gfcdUseAmtStr]').focus();
+						return false;
+					}
 					
 					// 입력여부체크
 					if (gfcdUseAmt < 1 || $("input[name='gfcdUseAmtStr']").val() == "") {
-						alert("사용할 금액을 입력해주세요");
+						mcxDialog.alert("사용할 금액을 입력해주세요");
 						// 상품권리셋기능
 						gfcdUseAmtReset();
 						return false;
@@ -1216,7 +1285,7 @@ var dcAmtInfoSet = function() {
 					
 					// 보유금액보다 초과 사용 불가
 					if (gfcdUseAmt > rmGfcdAmt) {
-						alert("보유금액 보다 초과 사용 할 수 없습니다.");
+						mcxDialog.alert("보유금액 보다 초과 사용 할 수 없습니다.");
 						// 상품권리셋기능
 						gfcdUseAmtReset();
 						return false;
@@ -1224,7 +1293,7 @@ var dcAmtInfoSet = function() {
 
 					// TODO 포인트 사용금액 1000원 이상 사용
 					if (gfcdUseAmt < 1000) {
-						alert("상품권 사용금액은 최소 1,000원 이상 사용해야 합니다.");
+						mcxDialog.alert("상품권 사용금액은 최소 1,000원 이상 사용해야 합니다.");
 						
 						// 상품권리셋기능
 						gfcdUseAmtReset();
@@ -1690,6 +1759,21 @@ var prePntDcAmtReset = function() {
 		if ($(this).val() == "Y") {
 			$(this).attr("checked", true);
 		}
+		
+		// 버튼기능 구현
+		$(this).on("click", function(){
+			var rmPrePntAmt 		= parseInt($("input[name='rmPrePntAmt']").val());
+			
+			// 선포인트적용
+			if ($(this).val() == "Y") {
+				$("#prePntDcAmt").text("-"+rmPrePntAmt.addComma()+"원");
+			} else {
+				$("#prePntDcAmt").text("0원");
+			}
+			
+			// 쿠폰할인금액 SUM
+			custCpnSumAmtCal();
+		});
 	});
 
 	$("#prePntDcAmt").text("-"+rmPrePntAmt.addComma()+"원");
@@ -1925,6 +2009,32 @@ var custCpnSumAmtCal = function() {
 	$(".freegiftValArr").text(freegiftValArr);				// 사은품시퀀스배열
 	$(".freegiftUsePointArr").text(freegiftUsePointArr);	// 사은품사용포인트배열
 };
+
+// 1.18 배송지정보 설정
+var delvAddrSet = function(delvObj) {
+	
+	var rtnStr = "";
+	rtnStr += "| recipNm 			::: " + delvObj.recipNm;
+	rtnStr += "| recipPhnno 		::: " + delvObj.recipPhnno;
+	rtnStr += "| recipZipcode 		::: " + delvObj.recipZipcode;
+	rtnStr += "| recipBaseAddr 		::: " + delvObj.recipBaseAddr;
+	rtnStr += "| recipDtlAddr 		::: " + delvObj.recipDtlAddr;
+	rtnStr += "| delvMemo 			::: " + delvObj.delvMemo;
+	
+	// 배송지정보로드실행
+	deliveryAddrInfoSet(delvObj, false);
+}
+
+// 1.19 배송메모설정
+var delvMemoSet = function(delvMemoObj) {
+	
+	var rtnStr = "";
+	rtnStr += "| delvMemo 			::: " + delvMemoObj.delvMemo;
+	
+	$("#orderForm input[name=delvMemo]").val(delvMemoObj.delvMemo);		// input 값에 설정
+	$("#delvMemo").text(delvMemoObj.delvMemo);							// 메모 text 설정
+	$(".delvMemo").text(delvMemoObj.delvMemo);							// 메모 text 설정
+}
 </script>
 
 <script th:inline="javascript">

+ 0 - 828
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb_20210216.html

@@ -1,828 +0,0 @@
-<!DOCTYPE html>
-<html lang="ko"
-	  xmlns:th="http://www.thymeleaf.org"
-	  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
-	  layout:decorator="web/common/layout/DefaultLayoutWeb">
-<!--
- *******************************************************************************
- * @source  : OrderFormWeb.html
- * @desc    : 주문/결제 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.02.01   jsh77b     최초 작성
- *******************************************************************************
- -->
-<body>
-<th:block layout:fragment="content">
-
-	<!--  container -->
-	<div id="container" class="container od">
-		<div class="breadcrumb">
-			<ul>
-				<li class="bread_home"><a href="index.html">홈</a></li>
-				<li class="bread_2depth">쇼핑백</li>
-				<li class="bread_3depth">주문/결제</li>
-			</ul>
-		</div>
-		<div class="wrap">
-			<div class="content odPayment"> <!-- 페이지특정 클래스 = mbPayment -->
-				<div class="cont_head">
-					<h2 class="t_c mb60">주문&#47;결제</h2>
-				</div>
-
-				<div class="cont_body">
-					<!-- CONT-BODY -->
-					<section class="od_cont fl">
-						<div class="sec_head">
-							<div class="tbl type4">
-								<table>
-									<colgroup>
-										<col width="240">
-										<col width="*">
-									</colgroup>
-									<tbody>
-									<tr>
-										<th>총 <span class="c_primary bold" th:text="${delvTotCnt}"></span> 건으로 나뉘어 배송 예정</th>
-										<td class="t_l">
-											<span>총알배송<em class="c_primary bold" th:text="${wmsCnt}" id="shotDelv"></em>건</span>
-											<span>STYLE24<em class="c_primary bold" th:text="${wmsCnt}" id="wmsDelv"></em>건</span>
-											<span>업체직배송<em class="c_primary bold" th:text="${delvCnt}"></em>건</span>
-											<span>예약배송<em class="c_primary bold" th:text="${resCnt}"></em>건</span>
-										</td>
-									</tr>
-									</tbody>
-								</table>
-							</div>
-						</div>
-
-						<div class="sec_body">
-							<div class="t_r mb15">
-								<a href="/cart/list/form" class="btn_link">쇼핑백 바로가기</a>
-							</div>
-
-							<div class="foldGroup">
-								<ul>
-									<li>
-										<!-- 주문고객정보 -->
-										<div class="fold_head">
-											<a href="javascript:void(0)">
-												<div>
-													<div class="fold_tit">
-														<span>주문고객</span>
-													</div>
-													<div class="data">
-														<span th:text="${custemerInfo.custNm}"></span>
-														<span th:text="${custemerInfo.email}"></span>
-														<span th:text="${custemerInfo.cellPhnno}"></span>
-													</div>
-												</div>
-											</a>
-										</div>
-
-										<div class="fold_cont" style="display: none;">
-											<div class="area_default">
-												<dl>
-													<div>
-														<dt>주문자명</dt>
-														<dd th:text="${custemerInfo.custNm}"></dd>
-													</div>
-													<div>
-														<dt>이메일</dt>
-														<dd th:text="${custemerInfo.email}"></dd>
-													</div>
-													<div>
-														<dt>휴대폰 번호</dt>
-														<dd th:text="${custemerInfo.cellPhnno}"><button type="button" class="btn_popup" id=""><span>본인인증하기</span></button></dd>
-													</div>
-												</dl>
-											</div>
-										</div>
-										<!-- //주문고객정보 -->
-									</li>
-									<li>
-										<!-- 배송지정보 -->
-										<div class="fold_head">
-											<a href="javascript:void(0)">
-												<div>
-													<div class="fold_tit">
-														<span>배송지 정보</span>
-													</div>
-													<div class="data" th:text="${deliveryAddrInfo.recipBaseAddr} + ${deliveryAddrInfo.recipDtlAddr}"></div>
-												</div>
-											</a>
-										</div>
-										<div class="fold_cont" style="display: none;">
-											<div class="area_default">
-												<dl>
-													<div>
-														<dt>배송지명</dt>
-														<dd th:text="${deliveryAddrInfo.delvAddrNm}">
-															<span class="icon_tag">
-																<em class="tag_stype1">기본 배송지</em>
-																<em class="tag_stype2">총알배송</em>
-															</span>
-														</dd>
-													</div>
-													<div>
-														<dt>배송주소</dt>
-														<dd th:text="${deliveryAddrInfo.recipBaseAddr} + ${deliveryAddrInfo.recipDtlAddr}">
-															<button type="button" class="btn_popup" id=""><span>배송지 선택</span></button>
-														</dd>
-													</div>
-													<div>
-														<dt>휴대폰 번호</dt>
-														<dd th:text="${custemerInfo.cellPhnno}"></dd>
-													</div>
-													<div>
-														<dt>배송요청 사항</dt>
-														<dd>
-															직접받고 부재 시 문앞
-															<button type="button" class="btn_popup" id=""><span>변경하기</span></button>
-														</dd>
-													</div>
-												</dl>
-											</div>
-											<!-- 해외배송상품일 경우 노출 -->
-											<div class="area_overseas">
-												<dl>
-													<div>
-														<dt>개인통관고유부호</dt>
-														<dd>
-															<div class="form_field">
-																<div>
-																	<input type="radio" name="rdi-overseas" id="rdi-overs1" value="" checked="">
-																	<label for="rdi-overs1"><span>받는사람 개인통관고유부호</span></label>
-																	<div class="info_box pb10">
-																		<div class="input_wrap">
-																			<input type="text" class="form_control" maxlength="13" placeholder="P로 시작하는 13자리">
-																			<button type="button" class="btn btn_dark"><span>적용</span></button>
-																		</div>
-																	</div>
-																</div>
-																<div class="mt20">
-																	<input type="radio" name="rdi-overseas" id="rdi-overs2" value="">
-																	<label for="rdi-overs2"><span>입력 안 함</span></label>
-																	<div class="info_box" style="display:none;">
-																		<p>
-																			개인통관고유부호를 입력하지 않아도 관세사무소에서 개인정보 확인을 위해 별도 연락을 드릴 예정입니다.
-																		</p>
-																	</div>
-																</div>
-															</div>
-														</dd>
-													</div>
-												</dl>
-												<div class="com_info_txt">
-													<p class="tit">해외 배송 안내</p>
-													<ul>
-														<li>물품가액이 $150초과할 경우 관/부과세가 발생 할 수 있습니다.</li>
-														<li>물품 종류와 해외공급자 관계없이 같은 날 입항하게 되면 합산과세 대상이 됩니다.</li>
-													</ul>
-												</div>
-												<div class="form_field mt30">
-													<div>
-														<input id="chk-overs-agr" type="checkbox" checked="">
-														<label for="chk-overs-agr"><span>위 정보는 원활한 통관을 위해 수집 및 판매자에게 제공하며,계속 사용하도록 안전하게 STYLE24에서 저장 &#47; 관리 합니다.&nbsp;&nbsp;<em class="c_primary bold f_size12">(필수)</em></span></label>
-													</div>
-												</div>
-											</div>
-											<!-- //해외배송상품일 경우 노출 -->
-											<!-- 주문제작상품일 경우 노출 -->
-											<div class="area_customitem">
-												<div class="txt_box mb30">
-													<p class="c_primary normal">현재 주문제작 상품을 포함하여 주문을 진행중 입니다.</p>
-												</div>
-												<div class="com_info_txt">
-													<p class="tit">주문 제작 상품 안내</p>
-													<ul>
-														<li>주문 제작 상품은 주문 후 제작이 진행되며, 제작 완료 후 배송이 시작됩니다.</li>
-														<li>주문 제작 상품의 특성상 주문 완료 후 취소/교환이 불가능합니다. (상품 하자에 한해 가능)</li>
-													</ul>
-												</div>
-												<div class="form_field mt30">
-													<div>
-														<input id="chk-custom-agr1" type="checkbox" checked="">
-														<label for="chk-custom-agr1"><span>주문 제작 상품에 대한 안내를 확인하였으며 배송에 동의합니다.&nbsp;&nbsp;<em class="c_primary bold f_size12">(필수)</em></span></label>
-													</div>
-												</div>
-											</div>
-											<!-- //주문제작상품일 경우 노출 -->
-										</div>
-										<!-- //배송지정보 -->
-									</li>
-									<li>
-										<!-- 사은품선택 -->
-										<div class="fold_head">
-											<a href="javascript:void(0)">
-												<div>
-													<div class="fold_tit">
-														<span>사은품 선택</span>
-													</div>
-													<div class="data">
-														<span>사은품 총 <em class="c_primary normal">2</em>개 선택</span>
-														<span><em class="c_primary normal">0</em>P 차감</span>
-													</div>
-												</div>
-											</a>
-										</div>
-										<div class="fold_cont" style="display:none;">
-											<div class="area_default">
-												<th:block th:each="freegift, i : ${freegiftList}">
-													<!-- 2021.02.15 css 수정되면 삭제예정 -->
-													<th:block th:if="${i.count} > 1">
-														<br>
-														<br>
-													</th:block>
-													<p class="txt" th:text="'사은품선택' + ${i.count} + ' > ' + ${freegift.freegiftNm}"></p>
-													<div class="form_field">
-														<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
-															<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
-																<div class="gift" >
-																	<input type="radio" th:name="'chk-gift'+${i.count}" th:id="'chk-gift'+${i.count}+${k.count}" class="chk_img" value="">
-																	<label th:for="'chk-gift'+${i.count}+${k.count}">
-																		<span class="thumb"><img src="http://codepartners.co.kr/project/style24/pc/ux/images/thumb/tmp_gift1.jpg" width="" alt=""></span>
-																		<span class="name" th:text="${freegiftGoods.goodsNm}"></span>
-																		<span th:if="${freegiftGoods.usePoint} < 1" class="deduct" th:text="무료"></span>
-																		<span th:if="${freegiftGoods.usePoint} > 0" class="deduct" th:text="|- ${freegiftGoods.usePoint} P|"></span>
-																	</label>
-																</div>
-															</th:block>
-														</th:block>
-														<div class="gift">
-															<input type="radio" th:name="'chk-gift'+${i.count}" th:id="${i.count}+'0'" class="chk_img" value="">
-															<label th:for="${i.count}+'0'">
-																<span class="thumb"></span>
-																<span class="name">사은품 수령안함</span>
-																<span class="deduct">수령거부</span>
-															</label>
-														</div>
-													</div>
-												</th:block>
-												
-												<br>
-												<div class="form_field">
-													<div class="gift_agree">
-														<p><input id="chk-gift_agree" type="checkbox"><label for="chk-gift_agree"><span>동의합니다</span></label></p>
-														<p class="mt20">
-															사은품 지급에 대한 내용을 확인하였으며, 이에 동의합니다.
-															<button type="button" class="btn_popup" id=""><span>안내 보기</span></button>
-														</p>
-													</div>
-												</div>
-											</div>
-										</div>
-										<!-- //사은품선택 -->
-									</li>
-									<li>
-										<!-- 할인/혜택 사용 -->
-										<div class="fold_head">
-											<a href="javascript:void(0)">
-												<div>
-													<div class="fold_tit">
-														<span>할인/혜택 사용</span>
-													</div>
-													<div class="data">
-														<div class="form_field">
-															<!--<input id="chk-maxdisc" type="checkbox" checked="">-->
-															<label for="chk-maxdisc"><span>최대 할인혜택을 바로 적용하세요 (<em class="c_primary normal">-3,000원</em>)</span></label>
-														</div>
-													</div>
-												</div>
-											</a>
-										</div>
-										<div class="fold_cont" style="display: none;">
-											<div class="area_default">
-												<div class="maxdisc">
-													<div class="form_field">
-														<input id="chk-maxdisc" type="checkbox">
-														<label for="chk-maxdisc">
-															<span>최대 할인혜택을 바로 적용하세요!</span>
-														</label>
-													</div>
-												</div>
-												<br>
-												<dl>
-													<div>
-														<dt>할인코드</dt>
-														<dd>
-															<div class="input_wrap">
-																<input type="text" class="form_control" maxlength="13" placeholder="할인코드를 입력해주세요.">
-																<button type="submit" class="btn btn_dark">적용</button>
-															</div>
-														</dd>
-													</div>
-													<div>
-														<dt>할인쿠폰</dt>
-														<dd><a href="" class="btn_coupon_toggle">할인쿠폰 <span class="c_primary" th:text="|${#lists.size(cartCpnList)} 장|"></span> 적용 <i class="ico ico_ft_arrow_b"></i></a></dd>
-													</div>
-												</dl>
-												<div class="coupon_list">
-													<ul>
-														<th:block th:each="goods, i : ${goodsApplyCpnList}">
-															<li>
-																<div class="coupon">
-																	<div class="item_gd">
-																		<figure>
-																			<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-																			<figcaption>
-																				<div class="brand" th:text="${goods.brandEnm}+' '+${goods.brandKnm}"></div>
-																				<div class="name" th:text="${goods.goodsNm}"></div>
-																				<div class="price">
-																					<span class="selling_price" th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></span>
-																				</div>
-																			</figcaption>
-																		</figure>
-																	</div>
-																	<div class="form_field">
-																		<select id="" class="select_hidden">
-																			<th:block th:eath="goodsCpn, k : ${goodsCpnList}">
-																				<option th:value="${gooods.cpnId}" th:text="${gooods.cpnNm}"></option>
-																			</th:block>
-																		</select>
-																	</div>
-																	<button type="button" class="btn_del_coupon" id=""><span>쿠폰적용해제</span></button>
-																</div>
-															</li>
-														</th:block>
-															
-														<th:block th:if="${cartCpnList != null && #lists.size(cartCpnList) > 0}">
-															<li>
-																<div class="coupon">
-																	<div class="form_field">
-																		<label for="">장바구니 할인쿠폰</label>
-																		<select id="" class="select_hidden">
-																			<th:block th:eath="cartCpn, k : ${cartCpnList}">
-																				<option th:value="${gooods.cpnId}" th:text="${gooods.cpnNm}"></option>
-																			</th:block>
-																		</select>
-																	</div>
-																	<button type="button" class="btn_del_coupon" id=""><span>쿠폰적용해제</span></button>
-																</div>
-															</li>
-														</th:block>
-														
-														<th:block th:if="${delvCpnList != null && #lists.size(delvCpnList) > 0}">
-															<li>
-																<div class="coupon">
-																	<div class="form_field">
-																		<label for="">배송비 할인쿠폰</label>
-																		<select id="" class="select_hidden">
-																			<th:block th:eath="delvCpn, k : ${delvCpnList}">
-																				<option th:value="${delvCpn.cpnId}" th:text="${delvCpn.cpnNm}"></option>
-																			</th:block>
-																		</select>
-																	</div>
-																	<button type="button" class="btn_del_coupon" id=""><span>쿠폰적용해제</span></button>
-																</div>
-															</li>
-														</th:block>
-													</ul>
-												</div>
-											</div>
-											<br>
-											<div class="area_point">
-												<dl>
-													<div>
-														<dt>선포인트</dt>
-														<dd>
-															<div class="form_field">
-																<div>
-																	<input type="radio" name="rdi-codeuse" id="rdi-codeuse1" value="">
-																	<label for="rdi-codeuse1"><span>사용 안함</span></label>
-																</div>
-																<div>
-																	<input type="radio" name="rdi-codeuse" id="rdi-codeuse2" value="">
-																	<label for="rdi-codeuse2"><span>사용함</span></label>
-																	<span>사용가능 포인트&nbsp;:&nbsp;<em th:text="${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')}"></em>&nbsp;P</span>
-																</div>
-															</div>
-														</dd>
-													</div>
-												</dl>
-											</div>
-
-											<div class="point_code">
-												<div class="form_field">
-													<label class="ui_col_3 input_label">스타일 포인트</label>
-													<div class="ui_col_9">
-														<div class="input_wrap">
-															<input type="text" class="form_control" maxlength="13" placeholder="사용할 포인트를 입력해주세요.">
-															<button type="submit" class="btn btn_dark">적용</button>
-														</div>
-														<div class="save_point">
-															<p>보유 : <span th:text="|${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')} P|"></span></p>
-														</div>
-													</div>
-												</div>
-												<br>
-												<div class="form_field">
-													<label class="ui_col_3 input_label">상품권</label>
-													<div class="ui_col_9">
-														<div class="input_wrap">
-															<input type="text" class="form_control" maxlength="13" placeholder="사용할 상품권금액 입력해주세요.">
-															<button type="submit" class="btn btn_dark">적용</button>
-														</div>
-														<div class="save_point">
-															<p>보유 : <span th:text="|${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')} 원|"></span></p>
-														</div>
-													</div>
-												</div>
-											</div>
-
-										</div>
-										<!-- //할인/혜택 사용 -->
-									</li>
-									<li>
-										<!-- 결제수단 선택 -->
-										<div class="fold_head">
-											<a href="javascript:void(0)">
-												<div>
-													<div class="fold_tit">
-														<span>결제수단 선택</span>
-													</div>
-												</div>
-											</a>
-										</div>
-										<div class="fold_cont" style="display: none;">
-											<div class="paymethod_list">
-												<div class="paymethod on">
-													<div class="paymethod_wrap">
-														<input type="radio" name="radio_card" id="rdi-card-1" value="1" checked>
-														<label for="rdi-card-1" data="0">
-															STYLE24 간편결제
-														</label>
-														<div class="paymethod_body">
-															<div class="add_card">
-																<div class="plus_card">
-																	<div class="cross_wrap">
-																		<button>
-																			<div class="cross"></div>
-																		</button>
-																	</div>
-																	<div class="enrollment">
-																		<p>결제수단 등록</p>
-																	</div>
-																</div>
-															</div>
-															<div class="paymethod_text">
-																<p>&#183; 결제수단 등록 한번으로 간편하게 결제하실 수 있습니다.</p>
-																<p>&#183; 국내 8개 카드에 대해 이용 가능합니다. (법인카드,기프트카드,해외카드 제외)</p>
-																<p>&#183; 일반 신용카드의 할인혜택은 적용되지 않습니다.</p>
-															</div>
-														</div>
-													</div>
-												</div>
-												<div class="paymethod">
-													<div class="paymethod_wrap">
-														<input type="radio" name="radio_card" id="rdi-card-2" value="2">
-														<label for="rdi-card-2"  data="1">
-															일반 결제
-														</label>
-														<div class="paymethod_body">
-															<div class="form_field">
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-8" value="8"><label for="rdi-8"> <span>신용카드</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-9" value="9"><label for="rdi-9"> <span>실시간계좌이체</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-10" value="10"><label for="rdi-10"> <span>무통장입금</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-11" value="11"><label for="rdi-11"> <span>휴대폰 결제</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-12" value="12"><label for="rdi-12"> <span>카카오페이</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-13" value="13"><label for="rdi-13"> <span>네이버엔페이</span> </label>
-																</div>
-																<div>
-																	<input type="radio" name="payMeansClass" id="rdi-14" value="14"><label for="rdi-14"> <span>페이코</span> </label>
-																</div>
-															</div>
-														</div>
-													</div>
-												</div>
-											</div>
-											<!-- case1,2 간편결제,일반결제 결과-->
-											<div class="payment type01 active">
-												<div class="form_field">
-													<div>
-														<input id="chk-3" type="checkbox"><label for="chk-3"> <span>선택한 결제수단으로 향후 결제 이용에 동의합니다. <a href="#none">(선택)</a></span> </label>
-													</div>
-												</div>
-												<div class="privacy_consent">
-													<p>개인정보 제공에 대한 동의</p>
-													<span>개인정보를 제공받는 자 : 업체명,업체명,업체명</span>
-													<span>개인정보를 제공받는 자의 개인정보 이용 목적 : 주문상품의 배송,고객상당 및 불만처리</span>
-													<span>제공하는 개인정보의 항목:성명,주소,연락처</span>
-													<span>개인정보 제공받는 자의 개인정보 보유 및 이용기간 : 이용목적 달성 시 까지</span>
-													<div class="form_field">
-														<div>
-															<input id="chk-4" type="checkbox"><label for="chk-4"> <span>동의합니다.</span> </label>
-														</div>
-													</div>
-												</div>
-												<div class="form_field">
-													<div>
-														<input id="chk-5" type="checkbox"><label for="chk-5"> <span>주문하실 상품,가격,배송정보,할인정보 등을 확인하였으며,구매에 동의하시겠습니까? (전자상거래법 제8조 2항)</span> </label>
-													</div>
-												</div>
-												<div class="ui_row">
-													<div class="ui_col_12">
-														<button class="btn btn_dark btn_block"><span>123,456,789</span>원 결제하기</button>
-													</div>
-												</div>
-											</div>
-											<div class="payment type02">
-												<div class="form_field">
-													<div>
-														<input id="chk-3" type="checkbox"><label for="chk-3"> <span>소비자 피해 보상보험 신청 <a href="#none">(선택)</a></span> <button class="faq">FAQ확인</button> </label>
-													</div>
-													<div>
-														<p>&#145;전자상거래 등에서의 소비자보호에 관한 법률&#146;에 따라 현금 결제 시 서울보증보험(주)가 제공하는 소비자 피해보상보험을<br>신청할 수 있도록 해드리고 있습니다. (2013.11.28부터 시행)</p>
-													</div>
-												</div>
-												<div class="privacy_consent">
-													<p>개인정보 제공에 대한 동의</p>
-													<span>개인정보를 제공받는 자 : 업체명,업체명,업체명</span>
-													<span>개인정보를 제공받는 자의 개인정보 이용 목적 : 주문상품의 배송,고객상당 및 불만처리</span>
-													<span>제공하는 개인정보의 항목:성명,주소,연락처</span>
-													<span>개인정보 제공받는 자의 개인정보 보유 및 이용기간 : 이용목적 달성 시 까지</span>
-													<div class="form_field">
-														<div>
-															<input id="chk-4" type="checkbox"><label for="chk-4"> <span>동의합니다.</span> </label>
-														</div>
-													</div>
-												</div>
-												<div class="form_field">
-													<div>
-														<input id="chk-5" type="checkbox"><label for="chk-5"> <span>주문하실 상품,가격,배송정보,할인정보 등을 확인하였으며,구매에 동의하시겠습니까? (전자상거래법 제8조 2항)</span> </label>
-													</div>
-												</div>
-												<div class="ui_row">
-													<div class="ui_col_12">
-														<button class="btn btn_dark btn_block"><span>123,456,789</span>원 결제하기</button>
-													</div>
-												</div>
-											</div>
-											<!-- //case1,2 간편결제,일반결제 결과-->
-										</div>
-									</li>
-								</ul>
-							</div>
-						</div>
-					</section>
-
-					<section class="od_side fr">
-						<div class="area_order">
-							<div class="tit_box">
-								<h3 class="subH2">주문내역</h3>
-								<span>
-									<em class="c_primary bold" th:text="${delvTotCnt}"></em> 개의 상품
-								</span>
-							</div>
-							<div class="od_item_box">
-								<!-- 총알배송, 일반배송 -->
-								<div class="part_dlvr" id="wmsDelvArea" style="display:none;">
-									<h4 class="subH3 mb20" id="shotDelvTitle">STYLE24 총알배송<span>오늘 자정까지 도착</span></h4>
-									<h4 class="subH3 mb20" id="wmsDelvTitle">STYLE24 일반배송</h4>
-									<div class="gd_list">
-
-										<th:block th:each="goods, i : ${wmsCartList}">
-											<div class="item_gd">
-												<figure>
-													<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-													<figcaption>
-														<div class="brand" th:text="${goods.brandEnm}"></div>
-														<div class="name" th:text="${goods.goodsNm}"></div>
-														<div class="option" th:each="opt, index : ${goods.itemNmArr}">
-															<span class="option">옵션:<em th:text="${goods.optCdArr[index.index]}"></em></span>
-														</div>
-														<br/>
-														<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
-														<div class="price">
-															<span class="selling_price" th:text="|${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')} 원|"></span>
-														</div>
-													</figcaption>
-												</figure>
-											</div>
-										</th:block>
-										
-										
-										
-									</div>
-									
-									
-								</div>
-								<!-- //총알배송, 일반배송 -->
-
-								<!-- 업체직배송 -->
-								<div class="part_dlvr" id="delvDelvArea" style="display:none;">
-									<h4 class="subH3 mb20">업체직배송</h4>
-									<div class="gd_list">
-										<div class="item_gd">
-											<th:block th:each="goods, i : ${delvCartList}">
-												<div class="item_gd">
-													<figure>
-														<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-														<figcaption>
-															<div class="brand" th:text="${goods.brandEnm}"></div>
-															<div class="name" th:text="${goods.goodsNm}"></div>
-															<div class="option">
-																<span th:text="${goods.optCd}"></span>
-																<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
-															</div>
-															<div class="price">
-																<span class="selling_price" th:text="${goods.currPrice}"></span>
-															</div>
-														</figcaption>
-													</figure>
-												</div>
-											</th:block>
-										</div>
-									</div>
-								</div>
-								<!-- //업체직배송 -->
-
-								<!-- 예약배송 -->
-								<div class="part_dlvr" id="resDelvArea" style="display:none;">
-									<h4 class="subH3 mb20">예약배송</h4>
-									<div class="gd_list">
-										<div class="item_gd">
-											<th:block th:each="goods, i : ${resCartList}">
-												<div class="item_gd">
-													<figure>
-														<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-														<figcaption>
-															<div class="brand" th:text="${goods.brandEnm}"></div>
-															<div class="name" th:text="${goods.goodsNm}"></div>
-															<div class="option">
-																<span th:text="${goods.optCd}"></span>
-																<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
-															</div>
-															<div class="price">
-																<span class="selling_price" th:text="${goods.currPrice}"></span>
-															</div>
-														</figcaption>
-													</figure>
-												</div>
-											</th:block>
-										</div>
-									</div>
-								</div>
-								<!-- //예약배송 -->
-							</div>
-
-							<div class="od_amount_box">
-								<dl>
-									<div>
-										<dt>상품금액</dt>
-										<dd>1,590,000 원</dd>
-									</div>
-									<div>
-										<dt>배송비</dt>
-										<dd>0원</dd>
-									</div>
-									<div>
-										<dt>할인금액</dt>
-										<dd class="c_primary">-1,746,500원</dd>
-									</div>
-									<div>
-										<dt>다다익선할인금액</dt>
-										<dd class="c_primary">25,000원</dd>
-									</div>
-									<div>
-										<dt>쿠폰할인금액</dt>
-										<dd class="c_primary">3,000원</dd>
-									</div>
-									<div>
-										<dt>선포인트 사용</dt>
-										<dd class="c_primary">-1,500P</dd>
-									</div>
-									<div>
-										<dt>포인트 사용</dt>
-										<dd class="c_primary">-5,500P</dd>
-									</div>
-									<div>
-										<dt>상품권 사용</dt>
-										<dd class="c_primary">-50,000원</dd>
-									</div>
-								</dl>
-							</div>
-
-
-							<div class="totalprice_box">
-								<dl>
-									<dt>총 결제 예정 금액</dt>
-									<dd data-weight="price" data-font="lato"><span>3,546,200</span>원</dd>
-								</dl>
-								<p class="info_point">
-									스타일 포인트 <span class="c_primary">3,500 P</span> 적립예정
-								</p>
-							</div>
-
-
-						</div>
-					</section>
-					<div class="clear"></div>
-					<!-- // CONT-BODY -->
-				</div>
-			</div>
-		</div>
-	</div>
-	<!-- // container -->
-
-	<script th:inline="javascript">
-		// 배송관련정보 변수선언
-		var wmsCnt 				= [[${wmsCnt}]];				// 자사 일반,촐알 배송건수
-		var resCnt 				= [[${resCnt}]];				// 자사 예약 배송건수
-		var delvCnt 			= [[${delvCnt}]];				// 입전 일반 배송건수
-		var shotDelvYn			= [[${shotDelvYn}]];			// 총알배송여부
-		
-		// 할인관련정보 변수선언
-		var freegiftList		= [[${freegiftList}]];			// 사은품 프로모션 목록
-		var freegiftGoodsList	= [[${freegiftGoodsList}]];		// 사은품 프로모션 상품 목록
-
-		// 총알배송가능 지역, 총알배송 가능 시간 체크
-		var fnGetDailyDeliveryCheck = function () {
-			// TODO
-			var jsonObj 	= {"zipNo" : 12345};
-			var jsonData 	= JSON.stringify(jsonObj);
-
-			gagajf.ajaxJsonSubmit(
-				"/order/getDailyDeliveryCheck"
-				, jsonData
-				, function (result) {
-					// 자사몰 일반배송
-					$("#shotDelv").text(0);
-					$("#wmsDelv").text(wmsCnt);
-					$("#wmsDelvTitle").css("display", "block");
-					$("#shotDelvTitle").css("display", "none");
-
-					// 자사몰 총알배송
-					if (shotDelvYn == "Y") {
-						if (parseInt(result) > 0) {
-							$("#shotDelv").text(wmsCnt);
-							$("#wmsDelv").text(0);
-							
-							$("#wmsDelvTitle").css("display", "none");
-							$("#shotDelvTitle").css("display", "block");
-						}
-					}
-				}
-			)
-		}
-	</script>
-
-	<script type="text/javascript">
-		// 컨텐츠 호출
-		$(document).ready( function() {
-			// 1. 총알배송가능 지역, 총알배송 가능 시간 체크
-			fnGetDailyDeliveryCheck();
-			
-			// 2. 배송목록 화면 노출, 비노출 처리
-			// 2.1 자사일반배송노출
-			if (wmsCnt > 0) {
-				$("#wmsDelvArea").css("display", "block");
-			}
-			
-			// 2.2 입점업체일반배송노출
-			if (delvCnt > 0) {
-				$("#delvDelvArea").css("display", "block");
-			}
-			
-			// 2.3 자사예약배송노출
-			if (resCnt > 0) {
-				$("#resDelvArea").css("display", "block");
-			}
-		});
-
-		$(function(){
-			$('.od .od_cont').on('click','.area_overseas input',function(e){
-				//해외배송 입력
-				e.preventDefault();
-				$(this).parent('div').find('.info_box').show();
-				$(this).parent('div').siblings('div').find('.info_box').hide();
-			}).on('click','.btn_coupon_toggle',function(e){
-				//할인쿠폰 확인
-				e.preventDefault();
-				$('.coupon_list').toggle();
-				$(this).toggleClass('on');
-			});
-		});
-	</script>
-</th:block>
-
-
-
-
-
-</body>
-</html>

+ 0 - 1720
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb_20210304.html

@@ -1,1720 +0,0 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org"
-	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
-	layout:decorator="web/common/layout/DefaultLayoutWeb">
-<!--
- *******************************************************************************
- * @source  : OrderFormWeb.html
- * @desc    : 주문/결제 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.02.01   jsh77b     최초 작성
- *******************************************************************************
- -->
-<body>
-<th:block layout:fragment="content">
-
-<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css">
-<script type="text/javascript" src="/ux/pc/js/swiper.min.js"></script>
-<script type="text/javascript" src="/ux/pc/js/slick.min.js"></script>
-<script type="text/javascript" src="/ux/pc/js/jquery-ui.js"></script>
-
-<!-- xodud1202 -->
-
-<!-- // xodud1202 -->
-
-
-<!-- card007 -->
-
-<!-- // card007 -->
-
-
-
-
-
-
-<!--  container -->
-<form id="payForm" name="payForm">
-	<input type="hidden" name="delvMemo" th:value="${deliveryAddrInfo.delvMemo}">
-		
-	<div id="container" class="container od">
-		<div class="wrap">
-			<div class="content odPayment">
-				<!-- 페이지특정 클래스 = odPayment -->
-				<div class="cont_head">
-					<h2>주문&#47;결제</h2>
-					<div class="oder_steps">
-						<ul>
-							<li>01 쇼핑백</li>
-							<li class="on">02 주문/결제</li>
-							<li>03 주문완료</li>
-						</ul>
-					</div>
-				</div>
-				<div class="cont_body">
-					<!-- CONT-BODY -->
-					<form class="form_wrap">
-						<div class="od_cont">
-							<div class="sec_head">
-								<div class="tbl type4">
-									<table>
-										<colgroup>
-											<col width="240">
-											<col width="*">
-										</colgroup>
-										<tbody>
-											<tr>
-												<th>총 <span class="c_primary bold" th:text="${delvFeeTotCnt}"></span> 건으로 나뉘어 배송 예정</th>
-												<td class="t_l">
-													<span>총알배송<em class="c_primary bold" th:text="${wmsCnt}" id="shotDelv"></em>건</span>
-													<span>STYLE24<em class="c_primary bold" th:text="${wmsCnt}" id="wmsDelv"></em>건</span>
-													<span>업체직배송<em class="c_primary bold" th:text="${delvCnt}"></em>건</span>
-													<span>예약배송<em class="c_primary bold" th:text="${resCnt}"></em>건</span>
-												</td>
-											</tr>
-										</tbody>
-									</table>
-								</div>
-							</div>
-							<div class="sec_body">
-								<!-- -->
-								<div class="foldGroup">
-									<ul>
-									
-										
-										<li class="fold_mbinfo" id="custemerInfo">
-											<!-- 주문고객정보 -->
-											<div class="fold_head">
-												<a href="javascript:void(0)">
-													<div>
-														<div class="fold_tit">
-															<span>주문고객</span>
-														</div>
-														<div class="data">
-															<span th:text="${custemerInfo.custNm}"></span>
-															<span th:text="${custemerInfo.email}"></span>
-															<span th:text="${custemerInfo.cellPhnno}"></span>
-														</div>
-													</div>
-												</a>
-											</div>
-											<div class="fold_cont" style="display: none;">
-												<div class="area_mbinfo">
-													<dl>
-														<div>
-															<dt>
-																<span class="sr-only">주문자명</span>
-															</dt>
-															<dd th:text="${custemerInfo.custNm}"></dd>
-														</div>
-														<div>
-															<dt>
-																<span class="sr-only">이메일</span>
-															</dt>
-															<dd th:text="${custemerInfo.email}">/dd>
-														</div>
-														<div>
-															<dt>
-																<span class="sr-only">휴대폰 번호</span>
-															</dt>
-															<dd>
-																<span th:text="${custemerInfo.cellPhnno}"></span>
-																<th:block th:if="${custemerInfo.ci} == null or ${custemerInfo.ci} == ''">
-																	<button type="button" class="btn_popup" id="">
-																		<span>본인인증하기</span>
-																	</button>
-																</th:block>
-															</dd>
-														</div>
-													</dl>
-												</div>
-											</div> <!-- //주문고객정보 -->
-										</li>
-									
-										<li class="fold_mbinfo" id="deliveryAddrInfo">
-											<!-- 배송지정보 -->
-											<div class="fold_head">
-												<a href="javascript:void(0)">
-													<div>
-														<div class="fold_tit">
-															<span>배송지 정보</span>
-														</div>
-														<div class="data" th:text="${deliveryAddrInfo.recipBaseAddr} + ${deliveryAddrInfo.recipDtlAddr}"></div>
-													</div>
-												</a>
-											</div>
-											<div class="fold_cont" style="display: none;">
-												<div class="area_mbinfo">
-													<dl>
-														<div>
-															<dt><span class="sr-only">배송지명</span></dt>
-															<dd>
-																<span th:text="${deliveryAddrInfo.delvAddrNm}"></span>
-																<span class="icon_tag">
-																	<em class="tag_stype1">기본 배송지</em> 
-																	<em class="tag_stype2">총알배송</em>
-																</span>
-															</dd>
-														</div>
-														<div>
-															<dt>
-																<span class="sr-only">배송주소</span>
-															</dt>
-															<dd>
-																<span th:text="${deliveryAddrInfo.recipBaseAddr} + ${deliveryAddrInfo.recipDtlAddr}"></span>
-																<button type="button" class="btn_popup" id="btn_adrsChange_pop">
-																	<span>배송지 선택</span>
-																</button>
-															</dd>
-														</div>
-														<div>
-															<dt>
-																<span class="sr-only">휴대폰 번호</span>
-															</dt>
-															<dd th:text="${custemerInfo.cellPhnno}"></dd>
-														</div>
-														<div>
-															<dt>배송요청 사항</dt>
-															<dd>
-																<span th:text="${deliveryAddrInfo.delvMemo}" id="delvMemo"></span>
-																<button type="button" class="btn_popup" id="btn_rqstModify_pop">
-																	<span>변경하기</span>
-																</button>
-															</dd>
-														</div>
-													</dl>
-												</div>
-												
-												<!-- 해외배송상품일 경우 노출 -->
-												<div class="area_overseas">
-													<dl>
-														<div>
-															<dt>개인통관고유부호</dt>
-															<dd>
-																<div class="form_field">
-																	<div>
-																		<input type="radio" name="rdi-overseas" id="rdi-overs1" checked> 
-																		<label for="rdi-overs1"><span>받는사람 개인통관고유부호</span></label>
-																	</div>
-																	<div>
-																		<input type="radio" name="rdi-overseas" id="rdi-overs2">
-																		<label for="rdi-overs2"><span>입력 안 함</span></label>
-																	</div>
-																	<div class="info_box overs1">
-																		<div class="input_wrap">
-																			<input type="text" class="form_control err" maxlength="13" placeholder="P로 시작하는 13자리">
-																			<!-- 유효하지 않은 개인통관고유부호 일때 class명 'err' 추가 -->
-																		</div>
-																		<div class="t_err">개인통관고유부호가 유효하지 않습니다.</div>
-																		<!-- 유효하지 않은 개인통관고유부호 일때 노출 -->
-																		<div class="agree_overs">
-																			<input id="chk-overs-agr" type="checkbox" checked="">
-																			<label for="chk-overs-agr">
-																				<span>
-																					위 정보는 원활한 통관을 위해 수집 및 판매자에게 제공하며,계속 사용하도록 안전하게 STYLE24에서 저장 &#47; 관리 합니다.&nbsp;&nbsp;
-																					<em class="tmark_required">(필수)</em>
-																				</span>
-																			</label>
-																		</div>
-																	</div>
-																	<div class="info_box overs2" style="display: none;">
-																		<p>개인통관고유부호를 입력하지 않아도 관세사무소에서 개인정보 확인을 위해 별도 연락을 드릴 예정입니다.</p>
-																	</div>
-																</div>
-																<div class="info_txt">
-																	<ul>
-																		<li>물품가액이 $150초과할 경우 관/부과세가 발생 할 수 있습니다.</li>
-																		<li>물품 종류와 해외공급자 관계없이 같은 날 입항하게 되면 합산과세 대상이 됩니다.</li>
-																	</ul>
-																</div>
-															</dd>
-														</div>
-													</dl>
-												</div>
-												<!-- //해외배송상품일 경우 노출 -->
-												
-												<!-- 주문제작상품일 경우 노출 -->
-												<div class="area_customitem">
-													<div class="form_field">
-														<div class="agree_custom">
-															<input id="chk-custom-agr1" type="checkbox" checked="">
-															<label for="chk-custom-agr1">
-																<span>고객님께서 주문하신 상품에는 주문제작상품이 포함되어 있습니다.<br>주문제작상품에 대한 안내를 확인하였으며 배송에 동의합니다.&nbsp;&nbsp;
-																	<em class="tmark_required">(필수)</em>
-																</span>
-															</label>
-														</div>
-													</div>
-													<div class="info_txt">
-														<ul>
-															<li>주문 제작 상품은 주문 후 제작이 진행되며, 제작 완료 후 배송이 시작됩니다.</li>
-															<li>주문 제작 상품의 특성상 주문 완료 후 취소/교환이 불가능합니다. (상품 하자에 한해 가능)</li>
-														</ul>
-													</div>
-												</div>
-												<!-- //주문제작상품일 경우 노출 -->
-											</div> <!-- //배송지정보 -->
-										</li>
-										
-										<!-- 사은품선택 -->
-										<th:block th:if="${freegiftList != null && #lists.size(freegiftList) > 0}">
-											<li>
-												<div class="fold_head">
-													<a href="javascript:void(0)">
-														<div>
-															<div class="fold_tit">
-																<span>사은품 선택</span>
-															</div>
-															<div class="data">
-																<span>사은품 총 <em class="total_gift">0</em>&nbsp;개 선택</span> 
-																<span><em class="total_deduct">0</em>&nbsp;P 차감</span>
-															</div>
-														</div>
-													</a>
-												</div>
-												<div class="fold_cont" style="display: none;">
-													<div class="area_selgift">
-														<th:block th:each="freegift, i : ${freegiftList}">
-															<div class="gift_box">
-																<p class="txt">
-																	<span th:text="'사은품선택' + ${i.count} + '' + ${freegift.freegiftNm}"></span>
-																</p>
-																<div class="form_field">
-																	<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
-																		<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
-																			<div class="gift">
-																				<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" th:usepoint="${freegiftGoods.usePoint}"> 
-																				<label th:for="'rdi-gift'+${i.count}+${k.count}"> 
-																					<span class="thumb"><img src="http://ts5000.ipdisk.co.kr:89/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
-																					<span class="name" th:text="${freegiftGoods.goodsNm}"></span> 
-																					<span th:if="${freegiftGoods.usePoint} < 1" class="deduct" th:text="무료"></span>
-																					<span th:if="${freegiftGoods.usePoint} > 0" class="deduct" th:text="|- ${freegiftGoods.usePoint} P|"></span>
-																				</label>
-																			</div>
-																		</th:block>
-																	</th:block>
-																	<div class="gift">
-																		<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="${i.count}+'0'" class="chk_img freegiftRdo" value="noSel" usepoint="0"> 
-																		<label th:for="${i.count}+'0'">
-																			<span class="thumb"><img src="/images/pc/thumb/tmp_gift_empty.jpg" width=""alt=""></span> 
-																			<span class="name">사은품 수령안함</span>
-																			<span class="deduct">수령거부</span>
-																		</label>
-																	</div>
-																</div>
-															</div>
-														</th:block>
-														<div class="form_field">
-															<div class="agree_gift">
-																<p>
-																	<input id="chk-agree_gift" type="checkbox">
-																	<label for="chk-agree_gift"><span>동의합니다</span></label>
-																</p>
-																<p class="txt">
-																	사은품 지금에 대한 내용을 확인하였으며, 이에 동의합니다.
-																	<button type="button" class="btn_link_popup" id="btn_infoGift_pop">
-																		<span>보기</span>
-																	</button>
-																</p>
-															</div>
-														</div>
-													</div>
-												</div> <!-- //사은품선택 -->
-											</li>
-										</th:block>
-										
-										
-										<li>
-											<!-- 할인/혜택 사용 -->
-											<div class="fold_head">
-												<a href="javascript:void(0)">
-													<div>
-														<div class="fold_tit">
-															<span>할인/혜택 사용</span>
-														</div>
-														<div class="data maxdisc">
-															<div class="form_field">
-																<input id="chk-maxdisc" type="checkbox" checked="">
-																<label for="chk-maxdisc">
-																	<span>최대 할인혜택을 바로 적용하세요 <em class="maxdisc_amount"></em></span>
-																</label>
-															</div>
-														</div>
-													</div>
-												</a>
-											</div>
-											<div class="fold_cont" style="display: none;">
-												<div class="area_seldiscount">
-													<dl>
-														<div>
-															<dt><span class="mid">할인코드</span></dt>
-															<dd>
-																<div class="form_field">
-																	<div class="input_wrap">
-																		<input type="text" id="serialCpnNm" class="form_control" maxlength="13" placeholder="할인코드를 입력해주세요.">
-																		<button type="button" class="btn btn_dark" onclick="serialCpnApply()">적용</button>
-																	</div>
-																</div>
-															</dd>
-														</div>
-														<div>
-															<dt>할인쿠폰</dt>
-															<dd>
-																<a href="javascript:void(0);" class="btn_coupon_toggle">할인쿠폰 <span id="cpnApplyCnt"></span>적용</a>
-																<div class="coupon_list">
-																	<ul>
-																		<!--  상품쿠폰 -->
-																		<th:block th:each="goods, i : ${goodsApplyCpnList}">
-																			<th:block th:if="${goods.goodsCpnList.size() > 0}">
-																				<li>
-																					<div class="coupon">
-																						<div class="item_gd">
-																							<figure>
-																								<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-																								<figcaption>
-																									<div class="brand" th:text="${goods.brandEnm}+' '+${goods.brandKnm}"></div>
-																									<div class="name" th:text="${goods.goodsNm}"></div>
-																									<div class="price">
-																										<th:block th:if="${goods.tmtbDcAmt} > 0">
-																											<span class="selling_price"  th:text="${#numbers.formatInteger(goods.tmtbDcAmt, 1, 'COMMA')}"></span>
-																										</th:block>
-																										<th:block th:if="${goods.tmtbDcAmt} < 1">
-																											<span class="selling_price"  th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></span>
-																										</th:block>
-																									</div>
-																								</figcaption>
-																							</figure>
-																						</div>
-																						 
-																						<div class="form_field">
-																							<div class="select_custom type1">
-																								<div class="combo">
-																									<input type="hidden" name="cpnType" value="goodsCpn"/>
-																									<input type="hidden" name="cpnCartSq" th:value="${goods.cartSq}"/>
-																									<input type="hidden" name="custCpnSq" value="0"/>
-																									<input type="hidden" name="cpnDcAmt" value="0"/>
-																									
-																									<div class="select">선택없음</div>
-																									<ul class="list">
-																										<li value="0">선택없음</li>
-																										<th:block th:each="goodsCpn, k : ${goods.goodsCpnList}">
-																											<li th:value="${goodsCpn.custCpnSq}" th:data="${goodsCpn.cpnDcAmt}" th:text="${goodsCpn.cpnNm}"></li>
-																										</th:block>
-																									</ul>
-																								</div>
-																							</div>
-																						</div>
-																						<div class="cp_discount" style="display:none;">
-																							<span class="cp_amount"></span>
-																							<button type="button" class="btn_del_coupon"><span>쿠폰적용해제</span></button>
-																						</div>
-																					</div>
-																				</li>
-																			</th:block>
-																		</th:block>
-																		<!--  상품쿠폰 -->
-
-																		<!--  장바구니쿠폰 -->
-																		<th:block th:if="${cartCpnList.size() > 0}">
-																			<li>
-																				<div class="coupon">
-																					<div class="form_field">
-																						<div class="select_custom type1">
-																							<div class="combo">
-																								<input type="hidden" name="cpnType" value="cartCpn"/>
-																								<input type="hidden" name="custCpnSq" value="0"/>
-																								<input type="hidden" name="cpnDcAmt" value="0"/>
-																								
-																								<div class="select">선택없음</div>
-																								<ul class="list">
-																									<li value="0">선택없음</li>
-																									<th:block th:each="cartCpn, k : ${cartCpnList}">
-																										<li th:value="${cartCpn.custCpnSq}" th:data="${cartCpn.cpnDcAmt}">
-																											<th:block th:text="${cartCpn.cpnNm}"></th:block>
-																											<input type="hidden" name="dcWay" th:value="${cartCpn.dcWay}"/>
-																											<input type="hidden" name="dcVal" th:value="${cartCpn.dcVal}"/>
-																											<th:block th:each="cartCpnCartSq, kokok : ${cartCpn.cartCpnCartSqArr}"> 
-																												<input type="hidden" name="cartCpnCartSq" th:value="${cartCpnCartSq}" />
-																											</th:block>
-																										</li>
-																									</th:block>
-																								</ul>
-																							</div>
-																						</div>
-																					</div>
-																					<div class="cp_discount">
-																						<span class="cp_amount"></span>
-																						<button type="button" class="btn_del_coupon"><span>쿠폰적용해제</span></button>
-																					</div>
-																				</div>
-																			</li>
-																		</th:block>
-																		<!--  장바구니쿠폰 -->
-																		
-																		<!--  배송비쿠폰 -->
-																		<th:block th:if="${delvCpnList.size() > 0}">
-																			<li>
-																				<div class="coupon">
-																					<div class="form_field">
-																						<div class="select_custom type1">
-																							<div class="combo">
-																								<input type="hidden" name="cpnType" value="delvCpn"/>
-																								<input type="hidden" name="custCpnSq" value="0"/>
-																								<input type="hidden" name="cpnDcAmt" value="0"/>
-																								<input type="hidden" name="delvFeeCd" value="0"/>
-																								
-																								<div class="select" value="0">선택없음</div>
-																								<ul class="list">
-																									<li value="0">선택없음</li>
-																									<th:block th:each="delvCpn, k : ${delvCpnList}">
-																										<li th:value="${delvCpn.custCpnSq}" th:data="${delvCpn.cpnDcAmt}" th:delvfeecd="${delvCpn.delvFeeCd}" th:text="${delvCpn.cpnNm}"></li>
-																									</th:block>
-																								</ul>
-																							</div>
-																						</div>
-																					</div>
-																					<div class="cp_discount">
-																						<span class="cp_amount"></span>
-																						<button type="button" class="btn_del_coupon"><span>쿠폰적용해제</span></button>
-																					</div>
-																				</div>
-																			</li>
-																		</th:block>
-																		<!--  배송비쿠폰 -->
-																	</ul>
-																</div>
-															</dd>
-														</div>
-													</dl>
-												</div>
-												
-												<!-- 선포인트금액, 포인트금액, 상품권금액 0보다 클때 적용 -->
-												<th:block th:if="${prePntDcAmt} > 0 or ${rmPntAmt} > 0 or ${rmGfcdAmt} > 0">
-													<div class="area_selpoint">
-														<dl>
-															<th:block th:if="${prePntDcAmt} > 0">
-																<div>
-																	<dt>선 포인트 사용</dt>
-																	<dd>
-																		<div class="form_field">
-																			<div>
-																				<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint1"> 
-																				<label for="rdi-beforpoint1"><span>사용 안함</span></label>
-																			</div>
-																			<div>
-																				<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint2"> 
-																				<label for="rdi-beforpoint2"><span>사용함</span></label> 
-																				<span class="remain_point" th:text="|사용가능 포인트 : ${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')} P|"></span>
-																			</div>
-																		</div>
-																	</dd>
-																</div>
-															</th:block>
-															<th:block th:if="${rmPntAmt} > 0">
-																<div>
-																	<dt>
-																		<span class="mid">스타일 포인트</span>
-																	</dt>
-																	<dd>
-																		<div class="form_field">
-																			<!-- 스타일 포인트 3만원 이상 결제시 노출 -->
-																			<th:block th:if="${orgGoodsSumAmt} >= 30000">
-																				<div class="input_wrap">
-																					<input type="text" class="form_control" maxlength="" placeholder="사용할 포인트를 입력해주세요.">
-																					<button type="button" class="btn btn_dark">적용</button>
-																				</div>
-																				<!-- //스타일 포인트 3만원 미만 결제시 노출 -->
-																				<p><span class="remain_point" th:text="|보유 : ${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')} P|"></span>(결제금액의 최대 40%까지 사용가능)</p>
-																			</th:block>
-																			<!-- 스타일 포인트 3만원 이상 결제시 노출 -->
-																			
-																			<!-- 스타일 포인트 3만원 미만 결제시 노출 -->
-																			<th:block th:if="${orgGoodsSumAmt} < 30000">
-																				<div class="input_wrap">
-																					<input type="text" class="form_control" maxlength="" placeholder="3만원 이상 결제시에만 포인트 사용이 가능합니다." disabled>
-																				</div>
-																			</th:block>
-																		</div>
-																	</dd>
-																</div>
-															</th:block>
-															<th:block th:if="${rmGfcdAmt} > 0">
-																<div>
-																	<dt>
-																		<span class="mid">상품권</span>
-																	</dt>
-																	<dd>
-																		<div class="form_field">
-																			<div class="input_wrap">
-																				<input type="text" class="form_control" maxlength="" placeholder="사용할 금액을 입력해주세요.">
-																				<button type="button" class="btn btn_dark">적용</button>
-																			</div>
-																			<p><span class="remain_point" th:text="|보유 : ${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')} 원|"></span></p>
-																			<div class="agree_receipt">
-																				<input id="chk-receipt" type="checkbox"> 
-																				<label for="chk-receipt"><span>상품권 현금영수증 신청</span></label>
-																				<div class="info_box">
-																					<div class="input_wrap">
-																						<input type="text" class="form_control" maxlength="11" placeholder="">
-																					</div>
-																				</div>
-																			</div>
-																		</div>
-																	</dd>
-																</div>
-															</th:block>
-														</dl>
-													</div>
-												</th:block>
-											</div> <!-- //할인/혜택 사용 -->
-										</li>
-										<li class="fold_paymethod">
-											<!-- 결제수단 선택 -->
-											<div class="fold_head">
-												<a href="javascript:void(0)">
-													<div>
-														<div class="fold_tit"><span>결제수단 선택</span></div>
-														<div class="data"><span>STYLE24 간편결제</span></div>
-													</div>
-												</a>
-											</div>
-											<div class="fold_cont" style="display: none;">
-												<div class="area_paymethod">
-													<div class="form_field">
-														<div class="radio_blk">
-															<div class="paymethod_radio">
-																<input type="radio" name="rdi-paymethod" id="rdi-paymethod-quick" value=""> 
-																<label for="rdi-paymethod-quick"><span>STYLE24 간편결제</span></label>
-																<div class="quickpay_bnr">
-																	<span>3초면 결제 끝! 추가 혜택 할인과 함께 만나는 STYLE24 간편결제! 지금 바로 등록하세요!</span>
-																	<button type="button" class="btn_close_bnr">
-																		<span class="sr-only">닫기</span>
-																	</button>
-																</div>
-															</div>
-															<div class="paymethod_box" style="display: none;">
-																<div class="card_quickpay">
-																	<!-- 등록카드 없을때 -->
-																	<div class="empty">
-																		<button type="button" class="btn_addcard">
-																			<span>결제수단 등록</span>
-																		</button>
-																	</div>
-																	<!-- //등록카드 없을때 -->
-																	
-																	<!-- 등록카드 있을때 -->
-																	<div class="list_card swiper-container">
-																		<div class="swiper-wrapper">
-																			<div class="swiper-slide">
-																				<!-- 등록된 카드 -->
-																				<div class="card">
-																					<span class="logo_samsung">삼성카드</span>
-																					<p class="number">
-																						<span>9410</span> <span>09**</span> <span>****</span>
-																						<span>1287</span>
-																					</p>
-																					<p class="name">삼성개인특별카드</p>
-																					<select name="" id="" class="select_month">
-																						<option value="">일시불</option>
-																						<option value="">2개월 무이자</option>
-																						<option value="">3개월 무이자</option>
-																						<option value="">4개월 무이자</option>
-																						<option value="">5개월 무이자</option>
-																						<option value="">6개월 무이자</option>
-																						<option value="">7개월</option>
-																						<option value="">8개월</option>
-																						<option value="">9개월</option>
-																						<option value="">10개월</option>
-																						<option value="">11개월</option>
-																						<option value="">12개월</option>
-																					</select>
-																					<div class="etc">
-																						<button type="button" class="btn_favorcard">
-																							<span><i class="ico ico_star"></i><em class="sr-only">즐겨찾기</em></span>
-																						</button>
-																						<button type="button" class="btn_delcard">
-																							<span><i class="ico ico_trash_wh"></i><em class="sr-only">카드삭제</em></span>
-																						</button>
-																					</div>
-																				</div>
-																				<!-- //등록된 카드 -->
-																			</div>
-																			<div class="swiper-slide">
-																				<!-- 등록된 카드 -->
-																				<div class="card">
-																					<span class="logo_hyundai">현대카드</span>
-																					<p class="number">
-																						<span>9410</span> <span>09**</span> <span>****</span>
-																						<span>1287</span>
-																					</p>
-																					<p class="name">현대 M3 카드</p>
-																					<select name="" id="" class="select_month">
-																						<option value="">일시불</option>
-																						<option value="">2개월 무이자</option>
-																						<option value="">3개월 무이자</option>
-																						<option value="">4개월 무이자</option>
-																						<option value="">5개월 무이자</option>
-																						<option value="">6개월 무이자</option>
-																						<option value="">7개월</option>
-																						<option value="">8개월</option>
-																						<option value="">9개월</option>
-																						<option value="">10개월</option>
-																						<option value="">11개월</option>
-																						<option value="">12개월</option>
-																					</select>
-																					<div class="etc">
-																						<button type="button" class="btn_favorcard active">
-																							<span><i class="ico ico_star"></i><em class="sr-only">즐겨찾기</em></span>
-																						</button>
-																						<button type="button" class="btn_delcard">
-																							<span><i class="ico ico_trash_wh"></i><em class="sr-only">카드삭제</em></span>
-																						</button>
-																					</div>
-																				</div>
-																				<!-- //등록된 카드 -->
-																			</div>
-																			<div class="swiper-slide">
-																				<!-- 카드추가버튼 -->
-																				<button type="button" class="btn_addcard">
-																					<span>결제수단 등록</span>
-																				</button>
-																				<!-- //카드추가버튼 -->
-																			</div>
-																		</div>
-																		<div class="swiper-button-next"></div>
-																		<div class="swiper-button-prev"></div>
-																	</div>
-																	<!-- //등록카드 있을때 -->
-																</div>
-																<ul class="info_quick">
-																	<li>결제수단 등록 한번으로 간편하게 결제하실 수 있습니다.</li>
-																	<li>국내 8개 카드에 대해 이용 가능합니다. (법인카드,기프트카드,해외카드 제외)</li>
-																	<li>일반 신용카드의 할인혜택은 적용되지 않습니다.</li>
-																</ul>
-															</div>
-														</div>
-														<div class="radio_blk">
-															<div class="paymethod_radio">
-																<input type="radio" name="rdi-paymethod" id="rdi-paymethod-normal" value=""> 
-																<label for="rdi-paymethod-normal"><span>일반 결제</span></label>
-															</div>
-															<div class="paymethod_box" style="display: none;">
-																<ul class="sel_method">
-																	<li>
-																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal1" value=""> 
-																		<label for="rdi-paynormal1"><span>신용카드</span></label>
-																	</li>
-																	<li>
-																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal2" value=""> 
-																		<label for="rdi-paynormal2"><span>실시간계좌이체</span></label>
-																	</li>
-																	<li>
-																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal3" value=""> 
-																		<label for="rdi-paynormal3"><span>무통장입금</span></label>
-																	</li>
-																	<li>
-																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal4" value=""> 
-																		<label for="rdi-paynormal4"><span>휴대폰 결제</span></label>
-																	</li>
-																	<li>
-																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal5" value=""> 
-																		<label for="rdi-paynormal5">
-																			<span>
-																				<em class="sr-only">카카오페이 결제</em>
-																				<em class="payimg kakao"></em>
-																			</span>
-																		</label>
-																	</li>
-																	<li>
-																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal6" value=""> 
-																		<label for="rdi-paynormal6">
-																			<span>
-																				<em class="sr-only">네이버페이 결제</em>
-																				<em class="payimg naver"></em>
-																			</span>
-																		</label>
-																	</li>
-																	<li>
-																		<input type="radio" name="rdi-paynormal" id="rdi-paynormal7" value=""> 
-																		<label for="rdi-paynormal7">
-																			<span>
-																				<em class="sr-only">페이코 결제</em>
-																				<em class="payimg payco"></em>
-																			</span>
-																		</label>
-																	</li>
-																</ul>
-																<div class="agree_insurance">
-																	<input id="chk-insurance" type="checkbox"> 
-																	<label for="chk-insurance"> 
-																		<span>소비자 피해 보상보험 신청&nbsp;&nbsp;<em class="tmark_optional">(선택)</em></span>
-																		<button type="button" class="btn_link_popup" id="">
-																			<span>FAQ확인</span>
-																		</button>
-																	</label>
-																	<p>
-																		‘전자상거래 등에서의 소비자보호에 관한 법률‘에 따라 현금 결제 시 서울보증보험㈜가 제공하는
-																		소비자 피해보상보험을<br>신청할 수 있도록 해드리고 있습니다.
-																		(2013.11.28부터 시행)
-																	</p>
-																</div>
-															</div>
-														</div>
-													</div>
-													<div class="form_field">
-														<div class="agree_paymethod">
-															<input id="chk-agree_paymethod" type="checkbox">
-															<label for="chk-agree_paymethod"> 
-																<span>선택한 결제수단으로 향후 결제 이용에 동의합니다.&nbsp;&nbsp;<em class="tmark_optional">(선택)</em>
-															</span>
-															</label>
-														</div>
-													</div>
-												</div>
-												<div class="area_paymentinfo">
-													<div class="paymentinfo">
-														<div class="payinfo_blk on">
-															<a href=""> 개인정보 제공에 대한 동의 <span>닫기</span>
-															</a>
-															<div class="infotxt">개인정보제공에 대한 동의 내용입니다.개인정보제공에
-																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
-																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
-																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
-																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
-																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
-																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
-																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
-																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
-																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
-																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
-																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
-																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에
-																대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
-																내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.</div>
-														</div>
-														<div class="payinfo_blk">
-															<a href=""> 결제대행 서비스 약관 동의 <span>보기</span>
-															</a>
-															<div class="infotxt">결제대행서비스 약관 동의 내용입니다.결제대행서비스
-																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
-																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
-																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
-																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
-																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
-																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
-																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
-																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
-																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
-																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
-																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
-																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스
-																약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
-																내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.</div>
-														</div>
-													</div>
-
-													<div class="agree_payment">위 주문내역을 확인 하였으며, 회원 본인은 결제에 동의합니다.</div>
-												</div>
-												<div class="area_paybtn">
-													<div class="form_field">
-														<button type="button" class="btn btn_primary btn_block">동의 후 123,456,789원 결제하기</button>
-													</div>
-												</div>
-											</div> <!-- //결제수단 선택 -->
-										</li>
-									</ul>
-								</div>
-							</div>
-						</div>
-						<div class="od_side">
-							<div class="area_order">
-								<div class="tit_box">
-									<h3 class="subH2">주문내역</h3>
-									<span> <em class="number" th:text="${delvTotCnt}"></em>개의 상품</span>
-								</div>
-								<div class="od_item_box">
-								
-									<!-- 전체배송목록 sort --> 
-									<th:block th:each="delvAllCart, i : ${delvAllCartList}">
-										<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-											<div class="part_dlvr">
-												<th:block th:if="${i.index} == 0">
-													<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-														<h4 class="subH3 mb20">STYLE24 총알배송<span>오늘 자정까지 도착</span></h4>
-													</th:block>
-												</th:block>
-												<th:block th:if="${i.index} == 1">
-													<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-														<h4 class="subH3 mb20" id="wmsDelvTitle">STYLE24 일반배송</h4>
-													</th:block>
-												</th:block>
-												<th:block th:if="${i.index} == 2">
-													<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-														<h4 class="subH3 mb20">업체직배송</h4>
-													</th:block>
-												</th:block>
-												<th:block th:if="${i.index} == 3">
-													<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-														<h4 class="subH3 mb20">예약배송</h4>
-													</th:block>
-												</th:block>
-												
-												<div class="gd_list">
-													<th:block th:each="goods, i : ${delvAllCart}">
-														<div class="item_gd">
-															<input type="hidden" name="cartSq" 			th:value="${goods.cartSq}"/>
-															<input type="hidden" name="currPrice"		th:value="${goods.currPrice}"/>
-															
-															<input type="hidden" name="cpn1CpnSq" 		th:value="${goods.cpn1CpnSq}"/>
-															<input type="hidden" name="cpn1DcAmt" 		th:value="${goods.orgCurrPrice} - ${goods.currPrice}"/>
-															
-															<th:block th:if="${goods.applyQtySectionYn} == 'Y' and ${goods.qtyTmtbSq} > 0">
-																<input type="hidden" name="tmtb1Sq" 	th:value="${goods.qtyTmtbSq}"/>
-																<input type="hidden" name="tmtb1DcAmt" 	th:value="${goods.tmtb1DcAmt}"/>
-															</th:block>
-															<th:block th:if="${goods.applyQtySectionYn} != 'Y'">
-																<input type="hidden" name="tmtb1Sq" 	value="0"/>
-																<input type="hidden" name="tmtb1DcAmt" 	value="0"/>
-															</th:block>
-															
-															<th:block th:if="${goods.applyAmtSectionYn} == 'Y' and ${goods.amtTmtbSq} > 0">
-																<input type="hidden" name="tmtb2Sq" 	th:value="${goods.amtTmtbSq}"/>
-																<input type="hidden" name="tmtb2DcAmt" 	th:value="${goods.tmtb2DcAmt}"/>
-															</th:block>
-															<th:block th:if="${goods.applyAmtSectionYn} != 'Y'">
-																<input type="hidden" name="tmtb2Sq" 	value="0"/>
-																<input type="hidden" name="tmtb2DcAmt" 	value="0"/>
-															</th:block>
-															
-															<input type="hidden" name="goodsCpnSq" 		value=""/>
-															<input type="hidden" name="goodsCpnDcAmt" 	value=""/>
-															<input type="hidden" name="cartCpnSq" 		value=""/>
-															<input type="hidden" name="cartCpnDcAmt" 	value=""/>
-															
-															<figure>
-																<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-																<figcaption>
-																	<div class="brand" th:text="${goods.brandEnm} + ' ' + ${goods.brandKnm}"></div>
-																	<div class="name" th:text="${goods.goodsNm}"></div>
-																	<div class="option" th:each="opt, index : ${goods.itemNmArr}">
-																		<span th:text="${goods.optCdArr[index.index]}"></span> 
-																		<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
-																	</div>
-																	<div class="price">
-																		<th:block th:if="${goods.tmtbDcAmt} > 0">
-																			<span class="selling_price"  th:text="${#numbers.formatInteger(goods.tmtbDcAmt, 1, 'COMMA')}"></span>
-																		</th:block>
-																		<th:block th:if="${goods.tmtbDcAmt} < 1">
-																			<span class="selling_price"  th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></span>
-																		</th:block>
-																	</div>
-																</figcaption>
-															</figure>
-														</div>
-													</th:block>
-												</div>
-											</div>
-										</th:block>
-									</th:block>
-									<!-- //전체배송목록 sort -->
-								</div>
-								
-								<div class="od_amount_box">
-									<dl>
-										<div>
-											<input type="hidden" name="goodsSumAmt" th:value="${orgGoodsSumAmt}"/>
-											<dt>상품금액</dt>
-											<dd id="goodsSumAmt" th:text="|${#numbers.formatInteger(orgGoodsSumAmt, 1, 'COMMA')}원|"></dd>
-										</div>
-										<div>
-											<input type="hidden" name="delvSumAmt" th:value="${sumDelvFee}"/>
-											<dt>배송비</dt>
-											<dd id="delvSumAmt" th:text="|${#numbers.formatInteger(sumDelvFee, 1, 'COMMA')}원|"></dd>
-										</div>
-										<div>
-											<input type="hidden" name="cpn1DcSumAmt" th:value="${cpn1DcSumAmt}"/>
-											<dt>할인금액</dt>
-											<th:block th:if="${cpn1DcSumAmt} > 0">
-												<dd><span class="disc_amount" id="cpn1DcSumAmt" th:text="|-${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-											<th:block th:if="${cpn1DcSumAmt} < 1">
-												<dd><span class="disc_amount" id="cpn1DcSumAmt" th:text="|${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-										</div>
-										<div>
-											<input type="hidden" name="tmtbDcSumAmt" th:value="${tmtbDcSumAmt}"/>
-											<dt>다다익선할인금액</dt>
-											<th:block th:if="${tmtbDcSumAmt} > 0">
-												<dd><span class="disc_amount" id="tmtbDcSumAmt" th:text="|-${#numbers.formatInteger(tmtbDcSumAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-											<th:block th:if="${tmtbDcSumAmt} < 1">
-												<dd><span class="disc_amount" id="tmtbDcSumAmt" th:text="|${#numbers.formatInteger(tmtbDcSumAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-										</div>
-										<div>
-											<input type="hidden" name="couponDcSumAmt" value="0"/>
-											<dt>쿠폰할인금액</dt>
-											<dd><span class="disc_amount" id="couponDcSumAmt"></span></dd>
-										</div>
-										<div>
-											<input type="hidden" name="prePntDcAmt" th:value="${prePntDcAmt}"/>
-											<dt>선포인트 사용</dt>
-											<th:block th:if="${prePntDcAmt} > 0">
-												<dd><span class="disc_amount" id="prePntDcSumAmt" th:text="|-${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-											<th:block th:if="${prePntDcAmt} < 1">
-												<dd><span class="disc_amount" id="prePntDcSumAmt" th:text="|${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-										</div>
-										<div>
-											<input type="hidden" name="pntDcAmt" value="0"/>
-											<dt>포인트 사용</dt>
-											<dd><span class="disc_amount" id="pntDcAmt">0원</span></dd>
-										</div>
-										<div>
-											<input type="hidden" name="gfcdUseAmt" value="0"/>
-											<dt>상품권 사용</dt>
-											<dd><span class="disc_amount" id="gfcdUseSumAmt">0원</span></dd>
-										</div>
-									</dl>
-								</div>
-								<div class="totalprice_box">
-									<dl>
-										<dt>총 결제 예정 금액</dt>
-										<dd data-weight="price" data-font="lato">
-											<span id="realOrdAmt"></span>원
-										</dd>
-									</dl>
-									<p class="info_point">스타일 포인트 
-										<input type="hidden" name="savePntSumAmt" th:value="${savePntSumAmt}"/>
-										<span class="save_point" id="savePntSumAmt" th:text="|${#numbers.formatInteger(savePntSumAmt, 1, 'COMMA')}P|"></span> 적립예정
-									</p>
-								</div>
-							</div>
-						</div>
-					</form>
-					<!-- // CONT-BODY -->
-				</div>
-			</div>
-		</div>
-	</div>
-</form>
-
-<!-- // container -->
-<footer id="footer"></footer>
-
-<!-- 배송지변경팝업 -->
-<div class="modal fade od_pop adrsChange_pop" id="adrsChangePop" tabindex="-1" role="dialog" aria-labelledby="adrsChangeLabel" aria-hidden="true"></div>
-
-<!-- 배송지수정팝업 -->
-<div class="modal fade od_pop adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" aria-hidden="true"></div>
-
-<!-- 배송지추가팝업 -->
-<div class="modal fade od_pop adrsAdd_pop" id="adrsAddPop" tabindex="-1" role="dialog" aria-labelledby="adrsAddLabel" aria-hidden="true"></div>
-
-<!-- 배송요청사항수정 팝업 -->
-<div class="modal fade od_pop rqstModify_pop" id="rqstModifyPop" tabindex="-1" role="dialog" aria-labelledby="rqstModifyLabel" aria-hidden="true"></div>
-
-<!-- 사은품지급안내 팝업 -->
-<div class="modal fade od_pop infoGift_pop" id="infoGiftPop" tabindex="-1" role="dialog" aria-labelledby="infoGiftLabel" aria-hidden="true"></div>
-
-<script th:inline="javascript">
-
-$(document).ready( function() {
-	
-	// 배송지변경 팝업열기
-	$(document).on('click','#btn_adrsChange_pop',function(e){
-		$.ajax( {
-			type		: "POST",
-			url 		: '/order/delvAddrChangePop',
-			dataType 	: 'html',
-			success 	: function(result) {
-				if (result != null) {
-					$("#adrsChangePop").html(result);
-					$("#adrsChangePop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 배송지추가 팝업열기
-	$(document).on('click','#btn_addrAdd_pop',function(e){
-		$.ajax( {
-			type		: "POST",
-			url 		: '/order/delvAddrAddPop',
-			dataType 	: 'html',
-			success 	: function(result) {
-				if (result != null) {
-					$("#adrsAddPop").html(result);
-					$("#adrsAddPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 배송지수정 팝업열기
-	$("#btn_addrModify_pop").on("click", function(e){
-		$.ajax( {
-			type		: "POST",
-			url 		: '/order/delvAddrModifyPop',
-			dataType 	: 'html',
-			success 	: function(result) {
-				if (result != null) {
-					$("#adrsModifyPop").html(result);
-					$("#adrsModifyPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 배송요청사항 팝업열기
-	$("#btn_rqstModify_pop").on("click", function(e){
-		var jsonObj = new Object();
-		jsonObj.delvMemo = $("input[name='delvMemo']").val();
-		
-		$.ajax({
-			type		: "POST",
-			url 		: "/order/delvMemoChangePop",
-			data		: jsonObj,
-			dataType 	: "html",
-			success 	: function(result) {
-				if (result != null) {
-					$("#rqstModifyPop").html(result);
-					$("#rqstModifyPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-		
-	// 해외배송 입력
-	$(document).on('change','.odPayment .area_overseas #rdi-overs1', function(e){
-		$('.info_box.overs2').hide();
-		$('.info_box.overs1').show();
-		return false;
-	}).on('change','.odPayment .area_overseas #rdi-overs2', function(e){
-		$('.info_box.overs1').hide();
-		$('.info_box.overs2').show();
-		return false;
-	});
-	
-	// 사은품지급안내 팝업열기
-	$("#btn_infoGift_pop").on("click",function(e){
-		$.ajax({
-			type		: "POST",
-			url 		: "/order/freegiftInfoPop",
-			dataType 	: "html",
-			success 	: function(result) {
-				if (result != null) {
-					$("#infoGiftPop").html(result);
-					$("#infoGiftPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 할인쿠폰 확인
-	$(document).on('click','.odPayment .area_seldiscount .btn_coupon_toggle',function(e){
-		$('.coupon_list').toggle();
-		$(this).toggleClass('on');
-		return false;
-	});
-
-	// 결제수단 선택
-	$(document).on('change','.odPayment .area_paymethod .paymethod_radio input',function(e){
-		$('.radio_blk').removeClass('on');
-		$(this).parents('.radio_blk').addClass('on');
-		$(this).parents('.radio_blk').find('.paymethod_box').show();
-		$(this).parents('.radio_blk').siblings('div').find('.paymethod_box').hide();
-
-		var paymethodlabel =  $(this).prop('labels');
-		$(this).parents('li').find('.fold_head .data span').text($(paymethodlabel).text());
-
-		// 간편결제 카드추가 슬라이드
-		var swiper = new Swiper('.paymethod_box .card_quickpay .list_card', {
-			slidesPerView: 'auto',
-			spaceBetween: 160,
-			centeredSlides: true,
-			navigation: {
-				nextEl: '.list_card .swiper-button-next',
-				prevEl: '.list_card .swiper-button-prev',
-			},
-		});
-		return false;
-	});
-
-	// STYLE24 간편결제 배너닫기
-	$(document).on('click','.odPayment .area_paymethod .quickpay_bnr .btn_close_bnr',function(e){
-		$('.quickpay_bnr').hide();
-	});
-
-	// 결제수단 선택 > 즐겨찾기 추가시 
-	$(document).on('click','.odPayment .area_paymethod .paymethod_box .card .etc .btn_favorcard',function(e){
-		$(this).toggleClass('active');
-		return false;
-	});
-
-	// 결제수단 > 일반결제> 실시간계좌이체 선택시            
-	$(document).on('change','.odPayment input:radio[name=rdi-paynormal]',function(e){
-		var paynormalValue = $(this).attr('id');
-		
-		if (paynormalValue == 'rdi-paynormal2') {
-			$('.area_paymethod .agree_insurance').show();
-		} else {
-			$('.area_paymethod .agree_insurance').hide();
-		}
-		return false;
-	});
-
-	// 개인정보동의 열고닫기
-	$(document).on('click','.area_paymentinfo .payinfo_blk a',function(e){		
-		e.preventDefault();
-		$(this).parents('.payinfo_blk').toggleClass('on');
-		var privacyToggle = $(this).find('span');
-		$(privacyToggle).text($(privacyToggle).text() == '보기' ? '닫기' : '보기');
-		return false;
-	});
-
-	// 간편결제등록 > STEP1.이용약관 팝업열기
-	$(document).on('click','.btn_addcard',function(e){
-		$("#qPayAgree_pop").modal("show");
-		return false;
-	});
-
-	// 간편결제등록 > STEP1.이용약관 체크
-	$(document).on('click','.area_QpayCk .agr_select button',function(e){
-		$(this).parents('.area_QpayCk').find('.info_agrQpay').toggle();
-		var payagrToggle = $(this).find('span');
-		$(payagrToggle).text($(payagrToggle).text() == '약관열기' ? '약관닫기' : '약관열기');
-		return false;
-	});
-
-	// 간편결제등록 > STEP1.이용약관 체크박스 전체선택
-	$(document).on('click','#chk-Qpay-agrAll',function(e){
-		$(this).parents(".qPayAgree_pop").find('.agree_Qpay input').prop("checked", $(this).is(":checked"));
-	});
-
-	// 간편결제등록 > STEP1.이용약관 체크박스 개별선택
-	$(document).on("click", ".agree_Qpay input",function(e){
-		var is_checked = true;
-		$(".agree_Qpay input").each(function(){
-			is_checked = is_checked && $(this).is(":checked");
-		});
-		$("#chk-Qpay-agrAll").prop("checked", is_checked);
-	});
-
-	// 간편결제등록 > 본인인증 팝업열기
-	$(document).on('click','#btn_qPayidConfirm_pop',function(e){
-		$("#qPayidConfirm_pop").modal("show");
-		return false;
-	});
-
-});
-</script>
-
-<script th:inline="javascript">
-	// 배송관련정보 변수선언
-	var cartGoodsList		= [[${cartGoodsList}]]			// 배송목록
-	var wmsCnt 				= [[${wmsCnt}]];				// 자사 일반,촐알 배송건수
-	var resCnt 				= [[${resCnt}]];				// 자사 예약 배송건수
-	var delvCnt 			= [[${delvCnt}]];				// 입전 일반 배송건수
-	var shotDelvYn			= [[${shotDelvYn}]];			// 총알배송여부
-	var orgSumDelvFee		= [[${sumDelvFee}]];			// 최초배송비합계
-	var prePntDcAmt			= [[${prePntDcAmt}]];			// 선포인트사용가능금액
-	
-	// 할인관련정보 변수선언
-	var freegiftList		= [[${freegiftList}]];			// 사은품 프로모션 목록
-	var freegiftGoodsList	= [[${freegiftGoodsList}]];		// 사은품 프로모션 상품 목록
-
-	// 총알배송가능 지역, 총알배송 가능 시간 체크
-	var fnGetDailyDeliveryCheck = function () {
-		// TODO
-		var jsonObj 	= {"zipNo" : 12345};
-		var jsonData 	= JSON.stringify(jsonObj);
-
-		gagajf.ajaxJsonSubmit(
-			"/order/getDailyDeliveryCheck"
-			, jsonData
-			, function (result) {
-				// 자사몰 일반배송
-				$("#shotDelv").text(0);
-				$("#wmsDelv").text(wmsCnt);
-				$("#wmsDelvTitle").css("display", "block");
-				$("#shotDelvTitle").css("display", "none");
-				$(".tag_stype2").css("display", "none");
-
-				// 자사몰 총알배송
-				if (shotDelvYn == "Y") {
-					if (parseInt(result) > 0) {
-						$("#shotDelv").text(wmsCnt);
-						$("#wmsDelv").text(0);
-						
-						$("#wmsDelvTitle").css("display", "none");
-						$("#shotDelvTitle").css("display", "block");
-						$(".tag_stype2").css("display", "block");
-					}
-				}
-			}
-		)
-	}
-
-</script>
-
-<script th:inline="javascript">
-	var custCpnSq 		= 0;
-	var cpnIndex		= 0;
-	var cpnApplyTemp	= false;
-	
-	// 컨텐츠 호출
-	$(document).ready( function() {
-		// 1. 총알배송가능 지역, 총알배송 가능 시간 체크
-		fnGetDailyDeliveryCheck();
-		
-		// 2. 쿠폰 SELECT BOX 기능 설정(js적용)
-		$('.select_custom.type1').each(function(index){
-			var selecter01 	= new sCombo($(this));
-			
-			// 선택박스 버튼기능 구현
-			$(this).find("ul li").each(function(i){
-				
-				// SELECT BOX 버튼 기능 설정
-				$(this).on("click", function(){
-					// 쿠폰 선택없음
-					if ($(this).prop("value") == 0) {
-						// 쿠폰 선택없음
-						cpnApplyDel($(this));
-					}
-					// 쿠폰선택
-					else {
-						// 쿠폰중복체크 후 적용
-						if (custCpnDuplicationCheck($(this).prop("value"), index)) {
-							// 쿠폰적용
-							custCpnApply($(this));
-						} else {
-							alert("이미 적용된 쿠폰 입니다.");
-							
-							// 쿠폰적용불가
-							custCpnNotApply($(this));
-						}
-						
-						// 쿠폰할인금액 SUM
-						custCpnSumAmtCal();
-						
-						// 최대할인혜택적용 체크해제
-						if ($("#chk-maxdisc").is(":checked")) {
-							$("#chk-maxdisc").attr("checked", false);
-						}
-					}
-				});
-			});
-		});
-		
-		
-		// 4 쿠폰적용초기화(할인율최고)
-		custCpnInit();
-	});
-	
-	// 사은품선택 라디오 버튼 기능
-	$(".freegiftRdo").on("click", function() {
-		var total_gift 		= 0;
-		var total_deduct 	= 0;
-		
-		$(".freegiftRdo").each(function(){
-			// 라디오버튼 사은품 체크
-			if ($(this).is(":checked")) {
-				// 수령거부가 아닐때 체크
-				if ($(this).val() != "noSel") {
-					total_gift 		+= 1;
-					total_deduct 	+= parseInt($(this).attr("usepoint"));
-				}
-			}
-		});
-		
-		$(".total_gift").text(total_gift);			// 사은품총선택개수
-		$(".total_deduct").text(total_deduct);		// 사은품총사용포인트
-	});
-	
-	// 프로모션 쿠폰 적용 함수
-	function serialCpnApply() {
-		let data = {
-			cartSq	: $().val(),
-			rdCpnNm : $("#payForm #serialCpnNm").val()
-		}
-
-		let jsonData = JSON.stringify(data);
-
-		$.ajax( {
-			type			: "POST",
-			url 			: '/cart/list/serialCpnApply',
-			contentType		: 'application/json',
-			dataType 		: 'json',
-			data 			: jsonData,
-			success 		: function(result) {
-				// SUCCESS
-				// 성공일때는 쿠폰정보 및 포인트 정보 reset
-				if (result.serialCpnInfo.result == "SUCCESS") {
-					
-				} else {
-					alert(result.serialCpnInfo.result);
-				}
-			}
-		});
-	}
-	
-	// 쿠폰 최대할인금액 초기화 버튼 설정
-	$("#chk-maxdisc").on("click", function(){
-		if ($(this).is(":checked")) {
-			custCpnInit();
-		}
-	});
-	
-	// 쿠폰할인적용 삭제 버튼
-	$(".btn_del_coupon").on("click", function(){
-		//선택없음선택
-		$(this).parent().parent().find("ul li").each(function(i){
-			if (i == 0) {
-				// 쿠폰 선택없음
-				cpnApplyDel($(this));
-			}
-		});
-	});
-	
-	// 쿠폰 최대할인율 쿠폰적용
-	var custCpnInit = function() {
-		
-		// 쿠폰적용없음적용
-		$(".select_custom.type1").each(function(index){
-			// select box 쿠폰 적용
-			var cpnCartSq = $(this).find("input[name='cpnCartSq']").val();
-			
-			// 장바구니시퀀스 체크
-			$("input[name='cartSq']").each(function(){
-				if (cpnCartSq == $(this).val()) {
-					$(this).parent().find("input[name='goodsCpnSq']").val("0");			// 상품쿠폰시퀀스
-					$(this).parent().find("input[name='goodsCpnDcAmt']").val("0");		// 상품쿠폰할인금액
-				}
-			});
-			
-			$(this).find("input[name='custCpnSq']").val("0");
-			$(this).find("input[name='cpnDcAmt']").val("0");
-			
-			$(this).find(".select").text("선택없음");
-			$(this).find(".cp_discount").css("display", "none");
-		});
-		
-		// 최대할인율 쿠폰적용
-		$('.select_custom.type1').each(function(index){
-			cpnIndex 		= 0;
-			cpnApplyTemp 	= false;
-			
-			// select 박스 반복문 실행
-			$(this).find("ul li").each(function(i){
-				cpnIndex++;
-				
-				// 1이상부터 중복 체크
-				if (cpnApplyTemp == false) {
-					if (cpnIndex > 1) {
-						if (custCpnDuplicationCheck($(this).prop("value"), index)) {
-							// 쿠폰적용
-							custCpnApply($(this));
-							// 쿠폰할인적용
-							cpnApplyTemp = true;
-						}
-					}
-				}
-			});
-		});
-		
-		// 쿠폰할인금액 SUM
-		custCpnSumAmtCal();
-	}
-	
-	// 쿠폰중복사용체크
-	var custCpnDuplicationCheck = function(custCpnSq, index) {
-		var selCustSq 	= 0;
-		var cnt 		= 0;
-
-		// 쿠폰중본사용체크
-		$("input[name='custCpnSq']").each(function(i){
-			if (index != i) {
-				selCustSq = $(this).val();
-				if (selCustSq == custCpnSq) {
-					cnt++;
-				}
-			}
-		});
-		
-		// 쿠폰적용불가
-		if (cnt > 0) {
-			return false;
-		}
-		// 쿠폰적용가능
-		else {
-			return true;
-		}
-	}
-	
-	// 쿠폰중복체크 후 적용가능
-	var custCpnApply = function(obj) {
-		// select box 쿠폰 적용
-		var cpnType 	= obj.parent().parent().find("input[name='cpnType']").val();
-		
-		// 상품쿠폰적용
-		if (cpnType == "goodsCpn") {
-			// 적용된 할인금액 text 설정 
-			var dcAmtStr = "- " + parseInt(obj.attr("data")).addComma() + " 원 할인적용";
-			obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
-			
-			var cpnCartSq 	= obj.parent().parent().find("input[name='cpnCartSq']").val();
-			
-			// 장바구니상품시퀀스 체크
-			$("input[name='cartSq']").each(function(){
-				if (cpnCartSq == $(this).val()) {
-					$(this).parent().find("input[name='goodsCpnSq']").val(obj.prop("value"));		// 상품쿠폰시퀀스
-					$(this).parent().find("input[name='goodsCpnDcAmt']").val(obj.attr("data"));		// 상품쿠폰할인금액
-				}
-			});
-			
-			obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
-		} 
-		// 장바구니쿠폰적용
-		else if (cpnType == "cartCpn") {
-			var dcWay 				= obj.parent().find("input[name='dcWay']").val();
-			var dcVal 				= obj.parent().find("input[name='dcVal']").val();
-			var cartCpnDcSumAmt		= 0;
-			var tempSumAmt			= 0;
-			var applyGoodsCnt		= 0;
-			var leftAmt				= 0;
-			var index				= 0;
-			
-			// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
-			obj.find("input[name='cartCpnCartSq']").each(function(){
-				var cartCpnCartSq 		= $(this).val();
-				var cartCpnDcAmt		= 0;
-				
-				// 장바구니시퀀스 체크
-				$("input[name='cartSq']").each(function(){
-					if (cartCpnCartSq == $(this).val()) {
-						var currPrice 		= parseInt($(this).parent().find("input[name='currPrice']").val());
-						var tmtb1DcAmt 		= parseInt($(this).parent().find("input[name='tmtb1DcAmt']").val());
-						var tmtb2DcAmt 		= parseInt($(this).parent().find("input[name='tmtb2DcAmt']").val());
-						var goodsCpnDcAmt 	= parseInt($(this).parent().find("input[name='goodsCpnDcAmt']").val());
-						
-						var tempAmt 		= currPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
-						tempSumAmt			= tempSumAmt + tempAmt; 
-						
-						// 할인율일때 할인금액 
-						if (dcWay == "G240_20") {
-							cartCpnDcAmt = (tempAmt * dcVal) / 100;
-							cartCpnDcSumAmt = cartCpnDcSumAmt + cartCpnDcAmt;
-							
-							$(this).parent().find("input[name='cartCpnSq']").val(obj.prop("value"));
-							$(this).parent().find("input[name='cartCpnDcAmt']").val(cartCpnDcAmt);
-						}
-						
-						applyGoodsCnt++;
-					}
-				});
-			});
-			
-			// 금액일때 할인금액 적용
-			if (dcWay == "G240_10") {
-				cartCpnDcSumAmt = dcVal;
-				leftAmt			= dcVal;
-				index			= 0;
-				
-				// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
-				obj.find("input[name='cartCpnCartSq']").each(function(){
-					var cartCpnCartSq 		= $(this).val();
-					var cartCpnDcAmt		= 0;
-										
-					// 장바구니시퀀스 체크
-					$("input[name='cartSq']").each(function(){
-						if (cartCpnCartSq == $(this).val()) {
-							index++;
-							
-							var currPrice 		= parseInt($(this).parent().find("input[name='currPrice']").val());
-							var tmtb1DcAmt 		= parseInt($(this).parent().find("input[name='tmtb1DcAmt']").val());
-							var tmtb2DcAmt 		= parseInt($(this).parent().find("input[name='tmtb2DcAmt']").val());
-							var goodsCpnDcAmt 	= parseInt($(this).parent().find("input[name='goodsCpnDcAmt']").val());
-							
-							var tempAmt 		= currPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
-							var tempDiv 		= parseInt((tempAmt / tempSumAmt) * 100);
-							var cartCpnDcAmt	= 0;
-					
-							if (index == applyGoodsCnt) {
-								cartCpnDcAmt 	= leftAmt;
-							} else {
-								cartCpnDcAmt	= parseInt((cartCpnDcSumAmt * tempDiv) / 100);
-								leftAmt 		= leftAmt - cartCpnDcAmt;
-							}
-							
-							$(this).parent().find("input[name='cartCpnSq']").val(obj.prop("value"));
-							$(this).parent().find("input[name='cartCpnDcAmt']").val(cartCpnDcAmt);
-						}
-					});
-				});
-			} 
-			
-			obj.parent().parent().find("input[name='cpnDcAmt']").val(cartCpnDcSumAmt);
-			
-			var dcAmtStr = "- " + cartCpnDcSumAmt.addComma() + " 원 할인적용";
-			obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
-		}
-		// 배송비쿠폰적용
-		else if (cpnType == "delvCpn") {
-			// 적용된 할인금액 text 설정 
-			var dcAmtStr = "- " + parseInt(obj.attr("data")).addComma() + " 원 할인적용";
-			obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
-			
-			var cpnCartSq 	= obj.parent().parent().find("input[name='cpnCartSq']").val();
-			
-			obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
-			obj.parent().parent().find("input[name='delvFeeCd']").val(obj.attr("delvfeecd"));
-		}
-		
-		// select box 쿠폰 적용 (공통적용)
-		obj.parent().parent().find("input[name='custCpnSq']").val(obj.prop("value"));
-		obj.parent().parent().find(".select").text(obj.text());
-		
-		// 선택된 할인금액 노출
-		obj.parent().parent().parent().parent().parent().find(".cp_discount").css("display", "block");
-	}
-	
-	// 쿠폰중복체크 후 적용불가
-	var custCpnNotApply = function(obj) {
-		// 이전에 등록된 쿠폰시퀀스  
-		var custCpnSq = obj.parent().parent().find("input[name='custCpnSq']").val();
-
-		// 이전에 등록된 쿠폰시퀀스 비교후 데이타 원복
-		obj.parent().find("li").each(function(){
-			if ($(this).prop("value") == custCpnSq) {
-				$(this).parent().parent().find(".select").text($(this).text());
-				
-				if (custCpnSq == 0) {
-					$(this).parent().parent().parent().parent().parent().find(".cp_discount").css("display", "none");
-				} else {
-					$(this).parent().parent().parent().parent().parent().find(".cp_discount").css("display", "block");
-				}
-			}
-		});
-	}
-	
-	// 쿠폰 선택없음 기능 구현
-	var cpnApplyDel = function(obj) {
-		// 쿠폰타입(상품쿠폰, 장바구니쿠폰, 배송비쿠폰)
-		var cpnType = obj.parent().parent().find("input[name='cpnType']").val();
-		
-		// 상품쿠폰적용
-		if (cpnType == "goodsCpn") {
-			// select box 쿠폰 적용
-			var cpnCartSq = obj.parent().parent().find("input[name='cpnCartSq']").val();
-			
-			// 장바구니시퀀스 체크
-			$("input[name='cartSq']").each(function(){
-				if (cpnCartSq == $(this).val()) {
-					$(this).parent().find("input[name='goodsCpnSq']").val("0");			// 상품쿠폰시퀀스
-					$(this).parent().find("input[name='goodsCpnDcAmt']").val("0");		// 상품쿠폰할인금액
-				}
-			});
-		}
-		// 장바구니쿠폰적용
-		else if (cpnType == "cartCpn") {
-			// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
-			$("input[name='cartSq']").each(function(){
-				$(this).parent().find("input[name='cartCpnSq']").val("0");
-				$(this).parent().find("input[name='cartCpnDcAmt']").val("0");
-			});
-		}
-		// 배송비쿠폰적용
-		else if (cpnType == "delvCpn") {
-			// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
-			$("input[name='cartSq']").each(function(){
-				$(this).parent().find("input[name='delvFeeCd']").val("0");
-			});
-		}
-		
-		obj.parent().parent().find("input[name='custCpnSq']").val("0");
-		obj.parent().parent().find("input[name='cpnDcAmt']").val("0");
-
-		obj.parent().parent().find(".select").text("선택없음");
-		obj.parent().parent().parent().parent().parent().find(".cp_discount").css("display", "none");
-		
-		// 쿠폰할인금액 SUM
-		custCpnSumAmtCal();
-		
-		// 최대할인혜택적용 체크해제
-		if ($("#chk-maxdisc").is(":checked")) {
-			$("#chk-maxdisc").attr("checked", false);
-		}
-	}
-	
-	// 쿠폰할인금액합계설정
-	var custCpnSumAmtCal = function() {
-		var cpnDcSumAmt = 0;
-		var cpnApplyCnt = 0;
-		
-		$("input[name='cpnDcAmt']").each(function(){
-			cpnDcSumAmt = cpnDcSumAmt + parseInt($(this).val());
-			
-			// 적용된 쿠폰 수량
-			if (parseInt($(this).val()) > 0) {
-				cpnApplyCnt++;
-			}
-		});
-		
-		// 쿠폰영역
-		$(".maxdisc_amount").text("(-" + cpnDcSumAmt.addComma() + "원)"); // 쿠폰할인금액합계
-		$("#cpnApplyCnt").text(cpnApplyCnt + "장");
-		
-		// 상품목록영역
-		$("#couponDcSumAmt").text("-" + cpnDcSumAmt.addComma() + "원"); // 쿠폰할인금액합계
-		$("input[name='couponDcSumAmt']").val(cpnDcSumAmt);
-		
-		// 배송비할인적용
-		$("input[name='cpnType']").each(function(){
-			if ($(this).val() == "delvCpn") {
-				sumDelvFee = parseInt(orgSumDelvFee) - parseInt($(this).parent().find("input[name='cpnDcAmt']").val());
-				
-				// 최종배송비
-				$("#delvSumAmt").text(sumDelvFee.addComma() + "원");
-				$("input[name='delvSumAmt']").val(sumDelvFee);
-			}
-		});
-		
-		var goodsSumAmt 		= parseInt($("input[name='goodsSumAmt']").val());
-		var delvSumAmt 			= parseInt($("input[name='delvSumAmt']").val());
-		var cpn1DcSumAmt 		= parseInt($("input[name='cpn1DcSumAmt']").val());
-		var tmtbDcSumAmt 		= parseInt($("input[name='tmtbDcSumAmt']").val());
-		var couponDcSumAmt 		= parseInt($("input[name='couponDcSumAmt']").val());
-		var prePntDcAmt 		= parseInt($("input[name='prePntDcAmt']").val());
-		var pntDcAmt 			= parseInt($("input[name='pntDcAmt']").val());
-		var gfcdUseAmt 			= parseInt($("input[name='gfcdUseAmt']").val());
-		
-		// 실결제금액(PG)
-		var realOrdAmt			= (goodsSumAmt + delvSumAmt) - (cpn1DcSumAmt + tmtbDcSumAmt + couponDcSumAmt + prePntDcAmt) - (pntDcAmt + gfcdUseAmt);
-		$("#realOrdAmt").text(realOrdAmt.addComma());
-		
-		// 적립예정포인트
-		var savePntSumAmt		= parseInt($("input[name='savePntSumAmt']").val());
-		var tempSavePnt			= savePntSumAmt - prePntDcAmt;
-		
-		$("#savePntSumAmt").text(tempSavePnt.addComma()+"P");
-	};
-</script>
-</th:block>
-</body>
-</html>

+ 0 - 1695
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb_20210306.html

@@ -1,1695 +0,0 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org"
-	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
-	layout:decorator="web/common/layout/DefaultLayoutWeb">
-<!--
- *******************************************************************************
- * @source  : OrderFormWeb.html
- * @desc    : 주문/결제 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.02.01   jsh77b     최초 작성
- *******************************************************************************
- -->
-<body>
-<th:block layout:fragment="content">
-
-<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css">
-<script type="text/javascript" src="/ux/pc/js/swiper.min.js"></script>
-<script type="text/javascript" src="/ux/pc/js/slick.min.js"></script>
-<script type="text/javascript" src="/ux/pc/js/jquery-ui.js"></script>
-
-<!-- xodud1202 -->
-	<script type="text/javascript">
-		/****************************************************************/
-		/* m_Completepayment  설명                                      */
-		/****************************************************************/
-		/* 인증완료시 재귀 함수                                         */
-		/* 해당 함수명은 절대 변경하면 안됩니다.                        */
-		/* 해당 함수의 위치는 payplus.js 보다먼저 선언되어여 합니다.    */
-		/* Web 방식의 경우 리턴 값이 form 으로 넘어옴                   */
-		/****************************************************************/
-		function m_Completepayment( FormOrJson, closeEvent )
-		{
-			var frm = document.order_info;
-
-			/********************************************************************/
-			/* FormOrJson은 가맹점 임의 활용 금지                               */
-			/* frm 값에 FormOrJson 값이 설정 됨 frm 값으로 활용 하셔야 됩니다.  */
-			/* FormOrJson 값을 활용 하시려면 기술지원팀으로 문의바랍니다.       */
-			/********************************************************************/
-			GetField( frm, FormOrJson );
-
-
-			if( frm.res_cd.value == "0000" )
-			{
-				alert("결제 승인 요청 전,\n\n반드시 결제창에서 고객님이 결제 인증 완료 후\n\n리턴 받은 ordr_chk 와 업체 측 주문정보를\n\n다시 한번 검증 후 결제 승인 요청하시기 바랍니다."); //업체 연동 시 필수 확인 사항.
-				/*
-					가맹점 리턴값 처리 영역
-				*/
-
-				frm.submit();
-			} else {
-				alert( "[" + frm.res_cd.value + "] " + frm.res_msg.value );
-				closeEvent();
-			}
-		}
-	</script>
-
-	<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
-
-	<script type="text/javascript">
-		/* 표준웹 실행 */
-		function jsf__pay( form ) {
-			try {
-				KCP_Pay_Execute( form );
-			} catch (e) {
-				/* IE 에서 결제 정상종료시 throw로 스크립트 종료 */
-			}
-		}
-
-		$(document).on("click", "#buyBtn", function() {
-			$.ajax( {
-				type: "POST",
-				url : '/order/create/order',
-				dataType : 'html',
-				data : {cartSq : 8},
-				success : function(result) {
-					$("#order_info").html(result);
-					jsf__pay(document.order_info);
-				}
-			});
-		});
-	</script>
-
-	<form id="order_info" name="order_info" method="post" action="/order/pay/result/response" >
-		<input type="button" id="buyBtn" value="테스트버튼" style="width:200px; height:200px;"/>
-	</form>
-
-<!-- // xodud1202 -->
-
-
-<!-- card007 -->
-
-<!-- // card007 -->
-
-
-<!--  container -->
-<form id="payForm" name="payForm">
-	<th:block th:each="delvAllCart, i : ${delvAllCartList}">
-		<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-			<th:block th:each="goods, i : ${delvAllCart}">
-				<div>
-					<input type="hidden" name="cartSq" 			th:value="${goods.cartSq}"/>
-					<input type="hidden" name="orgCurrPrice"	th:value="${goods.orgCurrPrice}"/>
-					<input type="hidden" name="cpn1CpnSq" 		th:value="${goods.cpn1CpnSq}"/>
-					<input type="hidden" name="cpn1DcAmt" 		th:value="${goods.orgCurrPrice} - ${goods.currPrice}"/>
-					
-					<th:block th:if="${goods.applyQtySectionYn} == 'Y' and ${goods.qtyTmtbSq} > 0">
-						<input type="hidden" name="tmtb1Sq" 	th:value="${goods.qtyTmtbSq}"/>
-						<input type="hidden" name="tmtb1DcAmt" 	th:value="${goods.tmtb1DcAmt}"/>
-					</th:block>
-					<th:block th:if="${goods.applyQtySectionYn} != 'Y'">
-						<input type="hidden" name="tmtb1Sq" 	value="0"/>
-						<input type="hidden" name="tmtb1DcAmt" 	value="0"/>
-					</th:block>
-					
-					<th:block th:if="${goods.applyAmtSectionYn} == 'Y' and ${goods.amtTmtbSq} > 0">
-						<input type="hidden" name="tmtb2Sq" 	th:value="${goods.amtTmtbSq}"/>
-						<input type="hidden" name="tmtb2DcAmt" 	th:value="${goods.tmtb2DcAmt}"/>
-					</th:block>
-					<th:block th:if="${goods.applyAmtSectionYn} != 'Y'">
-						<input type="hidden" name="tmtb2Sq" 	value="0"/>
-						<input type="hidden" name="tmtb2DcAmt" 	value="0"/>
-					</th:block>
-					
-					<input type="hidden" name="goodsCpnSq" 		value=""/>
-					<input type="hidden" name="goodsCpnDcAmt" 	value=""/>
-					<input type="hidden" name="cartCpnSq" 		value=""/>
-					<input type="hidden" name="cartCpnDcAmt"	value=""/>
-					
-					<input type="hidden" name="prePntDcAmt1" 	th:value="${goods.prePntDcAmt}"/>
-					<input type="hidden" name="pntDcAmt1" 		value="0"/>
-					<input type="hidden" name="gfcdUseAmt1" 	value="0"/>
-				</div>
-				<br>
-			</th:block>
-		</th:block>
-	</th:block>
-	
-	<input type="hidden" name="goodsSumAmt" 		th:value="${orgGoodsSumAmt}"/>
-	<input type="hidden" name="delvSumAmt" 			th:value="${sumDelvFee}"/>
-	<input type="hidden" name="freegiftUsePoint" 	value="0"/>
-	<input type="hidden" name="cpn1DcSumAmt" 		th:value="${cpn1DcSumAmt}"/>
-	<input type="hidden" name="tmtbDcSumAmt" 		th:value="${tmtbDcSumAmt}"/>
-	<input type="hidden" name="couponDcSumAmt" 		value="0"/>
-	<input type="hidden" name="prePntDcAmt" 		th:value="${prePntDcAmt}"/>
-	<input type="hidden" name="pntDcAmt" 			value="0"/>
-	<input type="hidden" name="gfcdUseAmt" 			value="0"/>
-	<input type="hidden" name="realOrdAmt" 			value="0"/>
-	<input type="hidden" name="savePntSumAmt" 		th:value="${savePntSumAmt}"/>
-	
-	<table border="1" style="font-size:10px; text-align:center;">
-		<tr style="height:30px;">
-			<th>cartSq</th>
-			<th>orgCurrPrice</th>
-			<th>cpn1DcSq</th>
-			<th>cpn1DcAmt</th>
-			<th>optAddPrice</th>
-			<th>goodsQty</th>
-			<th>ordAmt</th>
-			<th>tmtb1Sq</th>
-			<th>tmtb1DcAmt</th>
-			<th>tmtb2Sq</th>
-			<th>tmtb2DcAmt</th>
-			<th>goodsCpnSq</th>
-			<th>goodsCpnDcAmt</th>
-			<th>cartCpnSq</th>
-			<th>cartCpnDcAmt</th>
-			<th>prePntDcAmt1</th>
-			<th>dcSumAmt</th>
-			<th>pntDcAmt1</th>
-			<th>gfcdUseAmt1</th>
-			<th>realOrdAmt1</th>
-			<th>savePntAmt1</th>
-		</tr>
-		<th:block th:each="delvAllCart, i : ${delvAllCartList}">
-			<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-				<th:block th:each="goods, i : ${delvAllCart}">
-					<tr style="height:30px;">
-						<td class="cartSq" 			th:text="${goods.cartSq}"></td>
-						<td class="orgCurrPrice" 	th:text="${goods.orgCurrPrice}"></td>
-						<td class="cpn1CpnSq" 		th:text="${goods.cpn1CpnSq}"></td>
-						<td class="cpn1DcAmt" 		th:text="${goods.orgCurrPrice} - ${goods.currPrice}"></td>
-						<td class="optAddPrice" 	th:text="${goods.optAddPrice}"></td>
-						<td class="goodsQty" 		th:text="${goods.goodsQty}"></td>
-						<td class="ordAmt">0</td>
-						<th:block th:if="${goods.applyQtySectionYn} == 'Y' and ${goods.qtyTmtbSq} > 0">
-							<td class="tmtb1Sq" 	th:text="${goods.qtyTmtbSq}"></td>
-							<td class="tmtb1DcAmt" 	th:text="${goods.tmtb1DcAmt}"></td>
-						</th:block>
-						<th:block th:if="${goods.applyQtySectionYn} != 'Y'">
-							<td class="tmtb1Sq">0</td>
-							<td class="tmtb1DcAmt">0</td>
-						</th:block>
-						<th:block th:if="${goods.applyAmtSectionYn} == 'Y' and ${goods.amtTmtbSq} > 0">
-							<td class="tmtb2Sq" 	th:text="${goods.amtTmtbSq}"></td>
-							<td class="tmtb2DcAmt" 	th:text="${goods.tmtb2DcAmt}"></td>
-						</th:block>
-						<th:block th:if="${goods.applyAmtSectionYn} != 'Y'">
-							<td class="tmtb2Sq" >0</td>
-							<td class="tmtb2DcAmt" >0</td>
-						</th:block>
-						<td class="goodsCpnSq">0</td>
-						<td class="goodsCpnDcAmt">0</td>
-						<td class="cartCpnSq">0</td>
-						<td class="cartCpnDcAmt">0</td>
-						<td class="prePntDcAmt1" 	th:text="${goods.prePntDcAmt}"></td>
-						<td class="dcSumAmt">0</td>
-						<td class="pntDcAmt1">0</td>
-						<td class="gfcdUseAmt1">0</td>
-						<td class="realOrdAmt1">0</td>
-						<td class="savePntAmt1" 	th:text="${goods.savePntAmt}"></td>
-					</tr>
-				</th:block>
-			</th:block>
-		</th:block>
-	</table>
-	
-	<br>
-	
-	<table border="1" style="font-size:10px; text-align:center;">
-		<tr style="height:30px;">
-			<th>orgGoodsSumAmt</th>
-			<th>delvSumAmt</th>
-			<th>freegiftUsePoint</th>
-			<th>cpn1DcSumAmt</th>
-			<th>ordSumAmt</th>
-			<th>tmtb1DcSumAmt</th>
-			<th>tmtb2DcSumAmt</th>
-			<th>tmtbDcSumAmt</th>
-			<th>goodsCpnDcSumAmt</th>
-			<th>cartCpnDcSumAmt</th>
-			<th>delvCpnDcSumAmt</th>
-			<th>cpnDcSumAmt</th>
-			<th>prePntDcAmt</th>
-			<th>pntDcSumAmt</th>
-			<th>gfcdUseSumAmt</th>
-			<th>realOrdSumAmt</th>
-			<th>savePntSumAmt</th>
-		</tr>
-		<tr style="height:30px;">
-			<td class="orgGoodsSumAmt">0</td>
-			<td class="delvSumAmt" th:text="${sumDelvFee}"></td>
-			<td class="freegiftUsePoint">0</td>
-			<td class="cpn1DcSumAmt">0</td>
-			<td class="ordSumAmt">0</td>
-			<td class="tmtb1DcSumAmt">0</td>
-			<td class="tmtb2DcSumAmt">0</td>
-			<td class="tmtbDcSumAmt">0</td>
-			<td class="goodsCpnDcSumAmt">0</td>
-			<td class="cartCpnDcSumAmt">0</td>
-			<td class="delvCpnDcSumAmt">0</td>
-			<td class="cpnDcSumAmt">0</td>
-			<td class="prePntDcSumAmt">0</td>
-			<td class="pntDcSumAmt">0</td>
-			<td class="gfcdUseSumAmt">0</td>
-			<td class="realOrdSumAmt">0</td>
-			<td class="savePntSumAmt">0</td>
-		</tr>
-	</table>
-
-	<div id="container" class="container od">
-		<div class="wrap">
-			<div class="content odPayment">
-				<!-- 페이지특정 클래스 = odPayment -->
-				<div class="cont_head">
-					<h2>주문&#47;결제</h2>
-					<div class="oder_steps">
-						<ul>
-							<li>01 쇼핑백</li>
-							<li class="on">02 주문/결제</li>
-							<li>03 주문완료</li>
-						</ul>
-					</div>
-				</div>
-				
-				<div class="cont_body">
-					<!-- CONT-BODY -->
-					<form class="form_wrap">
-						<div class="od_cont">
-							<div class="sec_head">
-								<div class="tbl type4">
-									<table>
-										<colgroup>
-											<col width="240">
-											<col width="*">
-										</colgroup>
-										<tbody>
-											<tr>
-												<th>총 <span class="c_primary bold" th:text="${delvFeeTotCnt}"></span> 건으로 나뉘어 배송 예정</th>
-												<td class="t_l">
-													<span>총알배송<em class="c_primary bold" th:text="${wmsCnt}" id="shotDelv"></em>건</span>
-													<span>STYLE24<em class="c_primary bold" th:text="${wmsCnt}" id="wmsDelv"></em>건</span>
-													<span>업체직배송<em class="c_primary bold" th:text="${delvCnt}"></em>건</span>
-													<span>예약배송<em class="c_primary bold" th:text="${resCnt}"></em>건</span>
-												</td>
-											</tr>
-										</tbody>
-									</table>
-								</div>
-							</div>
-							
-							<div class="sec_body">
-								<div class="foldGroup">
-									<ul>
-										<!-- 주문고객정보 -->
-										<li class="fold_mbinfo" id="custemerInfo" style="display:none"></li>
-										<!-- //주문고객정보 -->
-										
-										<!-- 배송지정보 -->
-										<li class="fold_mbinfo" id="deliveryAddrInfo" style="display:none"></li>
-										<!-- //배송지정보 -->
-										
-										<!-- 사은품선택 -->
-										<li id="freegiftInfo" style="display:none"></li>
-										<!-- //사은품선택 -->
-										
-										<!-- 할인/혜택 사용 -->
-										<li id="dcAmtInfo" style="display:none"></li>
-										<!-- //할인/혜택 사용 -->
-										
-										<!-- 결제수단 선택 -->
-										<li class="fold_paymethod" id="paymentInfo" style="display:none"></li>
-										<!-- //결제수단 선택 -->
-									</ul>
-								</div>
-							</div>
-						</div>
-						
-						
-						<div class="od_side">
-							<div class="area_order">
-								<div class="tit_box">
-									<h3 class="subH2">주문내역</h3>
-									<span> <em class="number" th:text="${delvTotCnt}"></em>개의 상품</span>
-								</div>
-								<div class="od_item_box">
-								
-									<!-- 전체배송목록 sort --> 
-									<th:block th:each="delvAllCart, i : ${delvAllCartList}">
-										<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-											<div class="part_dlvr">
-												<th:block th:if="${i.index} == 0">
-													<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-														<h4 class="subH3 mb20">STYLE24 총알배송<span>오늘 자정까지 도착</span></h4>
-													</th:block>
-												</th:block>
-												<th:block th:if="${i.index} == 1">
-													<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-														<h4 class="subH3 mb20" id="wmsDelvTitle">STYLE24 일반배송</h4>
-													</th:block>
-												</th:block>
-												<th:block th:if="${i.index} == 2">
-													<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-														<h4 class="subH3 mb20">업체직배송</h4>
-													</th:block>
-												</th:block>
-												<th:block th:if="${i.index} == 3">
-													<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-														<h4 class="subH3 mb20">예약배송</h4>
-													</th:block>
-												</th:block>
-												
-												<div class="gd_list">
-													<th:block th:each="goods, i : ${delvAllCart}">
-														<div class="item_gd">
-															<figure>
-																<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-																<figcaption>
-																	<div class="brand" th:text="${goods.brandEnm} + ' ' + ${goods.brandKnm}"></div>
-																	<div class="name" th:text="${goods.goodsNm}"></div>
-																	<div class="option" th:each="opt, index : ${goods.itemNmArr}">
-																		<span th:text="${goods.optCdArr[index.index]}"></span> 
-																		<span>수량:<em th:text="${goods.goodsQty}"></em>개</span>
-																	</div>
-																	<div class="price">
-																		<th:block th:if="${goods.tmtbDcAmt} > 0">
-																			<span class="selling_price"  th:text="${#numbers.formatInteger(goods.tmtbDcAmt, 1, 'COMMA')}"></span>
-																		</th:block>
-																		<th:block th:if="${goods.tmtbDcAmt} < 1">
-																			<span class="selling_price"  th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></span>
-																		</th:block>
-																	</div>
-																</figcaption>
-															</figure>
-														</div>
-													</th:block>
-												</div>
-											</div>
-										</th:block>
-									</th:block>
-									<!-- //전체배송목록 sort -->
-								</div>
-								
-								<div class="od_amount_box">
-									<dl>
-										<div>
-											<dt>상품금액</dt>
-											<dd id="goodsSumAmt" th:text="|${#numbers.formatInteger(orgGoodsSumAmt, 1, 'COMMA')}원|"></dd>
-										</div>
-										<div>
-											<dt>배송비</dt>
-											<dd id="delvSumAmt" th:text="|${#numbers.formatInteger(sumDelvFee, 1, 'COMMA')}원|"></dd>
-										</div>
-										<div>
-											<dt>할인금액</dt>
-											<th:block th:if="${cpn1DcSumAmt} > 0">
-												<dd><span class="disc_amount" id="cpn1DcSumAmt" th:text="|-${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-											<th:block th:if="${cpn1DcSumAmt} < 1">
-												<dd><span class="disc_amount" id="cpn1DcSumAmt" th:text="|${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-										</div>
-										<div>
-											<dt>다다익선할인금액</dt>
-											<th:block th:if="${tmtbDcSumAmt} > 0">
-												<dd><span class="disc_amount" id="tmtbDcSumAmt" th:text="|-${#numbers.formatInteger(tmtbDcSumAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-											<th:block th:if="${tmtbDcSumAmt} < 1">
-												<dd><span class="disc_amount" id="tmtbDcSumAmt" th:text="|${#numbers.formatInteger(tmtbDcSumAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-										</div>
-										<div>
-											<dt>쿠폰할인금액</dt>
-											<dd><span class="disc_amount" id="couponDcSumAmt"></span></dd>
-										</div>
-										<div>
-											<dt>선포인트 사용</dt>
-											<th:block th:if="${prePntDcAmt} > 0">
-												<dd><span class="disc_amount" id="prePntDcAmt" th:text="|-${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-											<th:block th:if="${prePntDcAmt} < 1">
-												<dd><span class="disc_amount" id="prePntDcAmt" th:text="|${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')}원|"></span></dd>
-											</th:block>
-										</div>
-										<div>
-											
-											<dt>포인트 사용</dt>
-											<dd><span class="disc_amount" id="pntDcAmt">0원</span></dd>
-										</div>
-										<div>
-											
-											<dt>상품권 사용</dt>
-											<dd><span class="disc_amount" id="gfcdUseAmt">0원</span></dd>
-										</div>
-									</dl>
-								</div>
-								
-								<div class="totalprice_box">
-									<dl>
-										<dt>총 결제 예정 금액</dt>
-										<dd data-weight="price" data-font="lato">
-											<span id="realOrdAmt"></span>원
-										</dd>
-									</dl>
-									<p class="info_point">스타일 포인트 
-										<span class="save_point" id="savePntSumAmt" th:text="|${#numbers.formatInteger(savePntSumAmt, 1, 'COMMA')}P|"></span> 적립예정
-									</p>
-								</div>
-								
-							</div>
-						</div>
-					</form>
-					<!-- // CONT-BODY -->
-				</div>
-			</div>
-		</div>
-	</div>
-</form>
-
-<!-- // container -->
-<footer id="footer"></footer>
-
-<!-- 배송지변경팝업 -->
-<div class="modal fade od_pop adrsChange_pop" id="adrsChangePop" tabindex="-1" role="dialog" aria-labelledby="adrsChangeLabel" aria-hidden="true"></div>
-
-<!-- 배송지수정팝업 -->
-<div class="modal fade od_pop adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" aria-hidden="true"></div>
-
-<!-- 배송지추가팝업 -->
-<div class="modal fade od_pop adrsAdd_pop" id="adrsAddPop" tabindex="-1" role="dialog" aria-labelledby="adrsAddLabel" aria-hidden="true"></div>
-
-<!-- 배송요청사항수정 팝업 -->
-<div class="modal fade od_pop rqstModify_pop" id="rqstModifyPop" tabindex="-1" role="dialog" aria-labelledby="rqstModifyLabel" aria-hidden="true"></div>
-
-<!-- 사은품지급안내 팝업 -->
-<div class="modal fade od_pop infoGift_pop" id="infoGiftPop" tabindex="-1" role="dialog" aria-labelledby="infoGiftLabel" aria-hidden="true"></div>
-
-<script th:inline="javascript">
-// 배송관련정보 변수선언
-var cartGoodsList		= [[${cartGoodsList}]]			// 배송목록
-var wmsCnt 				= [[${wmsCnt}]];				// 자사 일반,촐알 배송건수
-var resCnt 				= [[${resCnt}]];				// 자사 예약 배송건수
-var delvCnt 			= [[${delvCnt}]];				// 입전 일반 배송건수
-var shotDelvYn			= [[${shotDelvYn}]];			// 총알배송여부
-var orgSumDelvFee		= [[${sumDelvFee}]];			// 최초배송비합계
-var prePntDcAmt			= [[${prePntDcAmt}]];			// 선포인트사용가능금액
-
-var custNm				= [[${order.custNm}]];			// 주문자명
-var cellPhnno			= [[${order.cellPhnno}]];		// 핸드폰번호
-var email				= [[${order.email}]];			// 이메일
-var recipZipcode		= [[${order.recipZipcode}]];	// 우편번호
-var recipBaseAddr		= [[${order.recipBaseAddr}]];	// 기본주소
-var recipDtlAddr		= [[${order.recipDtlAddr}]];	// 상세주소
-var cartSqArr			= [[${order.cartSqArr}]];		// 장바구니시퀀스 목록
-
-var custCpnSq 			= 0;
-var cpnIndex			= 0;
-var cpnApplyTemp		= false;
-var jsonData			= null;
-
-// 컨텐츠 호출
-$(document).ready( function() {
-	
-	// 장바구니시퀀스 배열 변환
-	cartSqArr = String(cartSqArr).split(",");
-	
-	// 1. 각각의 컨텐츠 AJAX 로드
-	var jsonObj = {
-		"custNm" 			: custNm
-		, "cellPhnno" 		: cellPhnno
-		, "email" 			: email
-		, "recipZipcode" 	: recipZipcode
-		, "recipBaseAddr" 	: recipBaseAddr
-		, "recipDtlAddr" 	: recipDtlAddr
-		, "cartSqArr"		: cartSqArr
-		, "dispYn"			: "N"
-	}
-	
-	
-	var jsonData = JSON.stringify(jsonObj);
-	
-	// 1.1 고객정보로드
-	custemerInfoSet(jsonData);
-	
-	// 2. 각각의 기능 구현
-	// 2.1 총알배송가능 지역, 총알배송 가능 시간 체크
-	fnGetDailyDeliveryCheck();
-});
-
-// 3. 함수기능 정의
-// 3.1 프로모션 쿠폰 적용 함수
-function serialCpnApply() {
-	let data = {
-		cartSq	: $().val(),
-		rdCpnNm : $("#payForm #serialCpnNm").val()
-	}
-
-	let jsonData = JSON.stringify(data);
-
-	$.ajax( {
-		type			: "POST",
-		url 			: '/cart/list/serialCpnApply',
-		contentType		: 'application/json',
-		dataType 		: 'json',
-		data 			: jsonData,
-		success 		: function(result) {
-			var jsonObj 	= {"cartSqArr" : cartSqArr,"dispYn" : "Y"};
-			var jsonData 	= JSON.stringify(jsonObj);
-			
-			// SUCCESS
-			// 성공일때는 쿠폰정보 및 포인트 정보 reset
-			if (result.serialCpnInfo.result == "SUCCESS") {
-				dcAmtInfoSet(jsonData);
-			} else {
-				alert(result.serialCpnInfo.result);
-			}
-		}
-	});
-}
-
-// 1.1 고객정보로드
-var custemerInfoSet = function(jsonData) {
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/custemerInfo',
-		data		: jsonData,
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-			gagajf.showProgressbar(true);
-		},
-		success 	: function(result) {
-			if (result != null) {
-				$("#custemerInfo").css("display", "block");
-				$("#custemerInfo").html(result);
-			}
-			// 1.2 배송정보로드
-			deliveryAddrInfoSet(jsonData);
-		}
-	});
-}
-
-// 1.2 배송정보로드
-var deliveryAddrInfoSet = function(jsonData) {
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/deliveryAddrInfo',
-		data		: jsonData,
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-			gagajf.showProgressbar(true);
-		},
-		success 	: function(result) {
-			if (result != null) {
-				$("#deliveryAddrInfo").css("display", "block");
-				$("#deliveryAddrInfo").html(result);
-			}
-			// 1.2 배송정보로드
-			freegiftInfoSet(jsonData);
-		}
-	});
-}
-
-// 1.3 사은품정보로드
-var freegiftInfoSet = function(jsonData) {
-	
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/freegiftInfo',
-		data		: jsonData,
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-			gagajf.showProgressbar(true);
-		},
-		success 	: function(result) {
-			if (result != null) {
-				$("#freegiftInfo").html(result);
-				
-				// 2.2 사은품선택 라디오 버튼 기능
-				$(".freegiftRdo").on("click", function() {
-					var total_gift 		= 0;
-					var total_deduct 	= 0;
-					
-					$(".freegiftRdo").each(function(){
-						// 라디오버튼 사은품 체크
-						if ($(this).is(":checked")) {
-							// 수령거부가 아닐때 체크
-							if ($(this).val() != "noSel") {
-								total_gift 		+= 1;
-								total_deduct 	+= parseInt($(this).attr("usepoint"));
-							}
-						}
-					});
-					
-					$(".total_gift").text(total_gift);							// 사은품총선택개수
-					$(".total_deduct").text(total_deduct.addComma());			// 사은품총사용포인트
-					$("input[name='freegiftUsePoint']").val(total_deduct);		// 사은품총사용포인트
-					
-					var rmPntAmt 			= parseInt($("input[name='rmPntAmt']").val());
-					var freegiftUsePoint 	= parseInt($("input[name='freegiftUsePoint']").val());
-					rmPntAmt 				= rmPntAmt - freegiftUsePoint; 
-					$(".remain_point").text("보유 : " + rmPntAmt.addComma() + "P");
-					
-					// 쿠폰초기화기능
-					custCpnInit();
-				});
-			}
-			
-			// 1.5 결제타입로드
-			paymentInfoSet(jsonData);
-		}
-	});
-}
-
-// 1.5 결제타입로드
-var paymentInfoSet = function(jsonData) {
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/paymentInfo',
-		data		: jsonData,
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-			gagajf.showProgressbar(true);
-		},
-		success 	: function(result) {
-			if (result != null) {
-				$("#paymentInfo").css("display", "block");
-				$("#paymentInfo").html(result);
-				
-				// 3.2 할인영역 설정
-				dcAmtInfoSet(jsonData);
-			}
-		}
-	});
-}
-
-// 3.2 할인영역 설정
-var dcAmtInfoSet = function(jsonData) {
-	// 3.2.1 할인정보로드
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/dcAmtInfo',
-		data		: jsonData,
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-			gagajf.showProgressbar(true);
-		},
-		success 	: function(result) {
-			if (result != null) {
-				$("#dcAmtInfo").css("display", "block");
-				$("#dcAmtInfo").html(result);
-				
-				// 3.2.2 쿠폰적용초기화(할인율최고)
-				custCpnInit();
-				
-				// 3.2.3 쿠폰 SELECT BOX 기능 설정(js적용)
-				$('.select_custom.type1').each(function(index){
-					var selecter01 	= new sCombo($(this));
-					
-					// 선택박스 버튼기능 구현
-					$(this).find("ul li").each(function(i){
-						
-						// SELECT BOX 버튼 기능 설정
-						$(this).on("click", function(){
-							// 쿠폰 선택없음
-							if ($(this).prop("value") == 0) {
-								// 쿠폰 선택없음
-								cpnApplyDel($(this));
-							}
-							// 쿠폰선택
-							else {
-								// 쿠폰중복체크 후 적용
-								if (custCpnDuplicationCheck($(this).prop("value"), index)) {
-									// 쿠폰적용
-									custCpnApply($(this));
-								} else {
-									alert("이미 적용된 쿠폰 입니다.");
-									
-									// 쿠폰적용불가
-									custCpnNotApply($(this));
-								}
-								
-								// 쿠폰할인금액 SUM
-								custCpnSumAmtCal();
-								
-								// 최대할인혜택적용 체크해제
-								if ($("#chk-maxdisc").is(":checked")) {
-									$("#chk-maxdisc").attr("checked", false);
-								}
-							}
-						});
-					});
-				});
-				
-				// 3.2.4 쿠폰 최대할인금액 초기화 버튼 설정
-				$("#chk-maxdisc").on("click", function(){
-					if ($(this).is(":checked")) {
-						custCpnInit();
-					}
-				});
-
-				// 3.2.5 쿠폰할인적용 삭제 버튼
-				$(".btn_del_coupon").on("click", function(){
-					//선택없음선택
-					$(this).parent().parent().find("ul li").each(function(i){
-						if (i == 0) {
-							cpnApplyDel($(this)); // 쿠폰 선택없음
-						}
-					});
-				});
-				
-				// 3.2.6 선포인트 적용 버튼 기능
-				$("input[name='rdi-beforpoint']").each(function(){
-					// 선포인트 초기 설정 사용함
-					if ($(this).val() == "Y") {
-						$(this).attr("checked", true);
-					}
-					
-					// 버튼기능 구현
-					$(this).on("click", function(){
-						var rmPrePntAmt 		= parseInt($("input[name='rmPrePntAmt']").val());
-						
-						// 선포인트적용
-						if ($(this).val() == "Y") {
-							$("input[name='prePntDcAmt']").val(rmPrePntAmt);
-							$("#prePntDcAmt").text("-"+rmPrePntAmt.addComma()+"원");
-						} else {
-							$("input[name='prePntDcAmt']").val(0);
-							$("#prePntDcAmt").text("0원");
-						}
-						
-						// 포인트기능 리렛
-						pntDcAmtReset();
-					});
-				});
-				
-				// 3.2.6 포인트 적용버튼 기능
-				$("#btn_point_apply").on("click", function(){
-					var rmPntAmt 			= parseInt($("input[name='rmPntAmt']").val());
-					var freegiftUsePoint 	= parseInt($("input[name='freegiftUsePoint']").val());
-					var pntDcAmt 			= parseInt($("input[name='pntDcAmtStr']").val());
-					var realOrdAmt 			= parseInt($("input[name='realOrdAmt']").val());
-					var applyPntDcAmt 		= (realOrdAmt * 40) / 100;
-					
-					rmPntAmt				= rmPntAmt - freegiftUsePoint;
-					
-					// 입력여부체크
-					if (pntDcAmt < 1) {
-						alert("사용할 포인트를 입력해주세요");
-						// 포인트리셋기능
-						pntDcAmtReset();
-						return false;
-					}
-					
-					// 보유포인트보다 초과 사용 불가
-					if (pntDcAmt > rmPntAmt) {
-						alert("보유포인트 보다 초과 사용 할 수 없습니다.");
-						// 포인트리셋기능
-						pntDcAmtReset();
-						return false;
-					}
-
-					// TODO 포인트 사용금액 1000P 이상 사용
-					if (pntDcAmt < 1000) {
-						alert("포인트는 최소 1,000P이상 사용해야 합니다.");
-						// 포인트리셋기능
-						pntDcAmtReset();
-						return false;
-					}
-					
-					// 실결제금액보다 크게 적용 되었을때 적용 불가능
-					if (pntDcAmt > applyPntDcAmt) {
-						alert("결제금액의 최대 40%를 초과 사용 할 수 없습니다.");
-						// 포인트리셋기능
-						pntDcAmtReset();
-						return false;
-					}
-					
-					// 포인트 적용
-					$("input[name='pntDcAmt']").val(pntDcAmt);
-					$("#pntDcAmt").text("-"+pntDcAmt.addComma()+"원");
-					
-					// 상품권리렛기능
-					gfcdUseAmtReset();
-				});
-				
-				// 3.2.7 상품권 적용버튼 기능
-				$("#btn_gfcd_apply").on("click", function(){
-					var rmGfcdAmt 		= parseInt($("input[name='rmGfcdAmt']").val());
-					var gfcdUseAmt 		= parseInt($("input[name='gfcdUseAmtStr']").val());
-					
-					// 입력여부체크
-					if (gfcdUseAmt < 1 || $("input[name='gfcdUseAmtStr']").val() == "") {
-						alert("사용할 금액을 입력해주세요");
-						// 상품권리셋기능
-						gfcdUseAmtReset();
-						return false;
-					}
-					
-					// 보유금액보다 초과 사용 불가
-					if (gfcdUseAmt > rmGfcdAmt) {
-						alert("보유금액 보다 초과 사용 할 수 없습니다.");
-						// 상품권리셋기능
-						gfcdUseAmtReset();
-						return false;
-					}
-
-					// TODO 포인트 사용금액 1000원 이상 사용
-					if (gfcdUseAmt < 1000) {
-						alert("상품권 사용금액은 최소 1,000원 이상 사용해야 합니다.");
-						// 상품권리셋기능
-						gfcdUseAmtReset();
-						return false;
-					}
-					
-					// 상품권 적용
-					$("input[name='gfcdUseAmt']").val(gfcdUseAmt);
-					$("#gfcdUseAmt").text("-"+gfcdUseAmt.addComma()+"원");
-					
-					// 금액전체계산
-					custCpnSumAmtCal();
-				});
-			}
-		}
-	});
-}
-
-// 3.3 쿠폰 최대할인율 쿠폰적용
-var custCpnInit = function() {
-	
-	// 쿠폰적용없음적용
-	$(".select_custom.type1").each(function(index){
-		// select box 쿠폰 적용
-		var cpnCartSq = $(this).find("input[name='cpnCartSq']").val();
-		
-		// 장바구니시퀀스 체크
-		$("input[name='cartSq']").each(function(){
-			if (cpnCartSq == $(this).val()) {
-				$(this).parent().find("input[name='goodsCpnSq']").val("0");			// 상품쿠폰시퀀스
-				$(this).parent().find("input[name='goodsCpnDcAmt']").val("0");		// 상품쿠폰할인금액
-			}
-		});
-		
-		// 장바구니시퀀스 체크
-		$(".cartSq").each(function(){
-			if (cpnCartSq == $(this).text()) {
-				$(this).parent().find(".goodsCpnSq").text("0");			// 상품쿠폰시퀀스
-				$(this).parent().find(".goodsCpnDcAmt").text("0");		// 상품쿠폰할인금액
-			}
-		});
-		
-		$(this).find("input[name='custCpnSq']").val("0");
-		$(this).find("input[name='cpnDcAmt']").val("0");
-		
-		$(this).find(".select").text("선택없음");
-		$(this).find(".cp_discount").css("display", "none");
-	});
-	
-	// 최대할인율 쿠폰적용
-	$('.select_custom.type1').each(function(index){
-		cpnIndex 		= 0;
-		cpnApplyTemp 	= false;
-		
-		// select 박스 반복문 실행
-		$(this).find("ul li").each(function(i){
-			cpnIndex++;
-			
-			// 1이상부터 중복 체크
-			if (cpnApplyTemp == false) {
-				if (cpnIndex > 1) {
-					if (custCpnDuplicationCheck($(this).prop("value"), index)) {
-						// 쿠폰적용
-						custCpnApply($(this));
-						// 쿠폰할인적용
-						cpnApplyTemp = true;
-					}
-				}
-			}
-		});
-	});
-	
-	// 선포인트기능리셋
-	prePntDcAmtReset();
-}
-
-// 3.4 쿠폰중복사용체크
-var custCpnDuplicationCheck = function(custCpnSq, index) {
-	var selCustSq 	= 0;
-	var cnt 		= 0;
-
-	// 쿠폰중본사용체크
-	$("input[name='custCpnSq']").each(function(i){
-		if (index != i) {
-			selCustSq = $(this).val();
-			if (selCustSq == custCpnSq) {
-				cnt++;
-			}
-		}
-	});
-	
-	// 쿠폰적용불가
-	if (cnt > 0) {
-		return false;
-	}
-	// 쿠폰적용가능
-	else {
-		return true;
-	}
-}
-
-// 3.5 쿠폰중복체크 후 적용가능
-var custCpnApply = function(obj) {
-	// select box 쿠폰 적용
-	var cpnType 	= obj.parent().parent().find("input[name='cpnType']").val();
-	
-	// 상품쿠폰적용
-	if (cpnType == "goodsCpn") {
-		// 적용된 할인금액 text 설정 
-		var dcAmtStr = "- " + parseInt(obj.attr("data")).addComma() + " 원 할인적용";
-		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
-		
-		var cpnCartSq 	= obj.parent().parent().find("input[name='cpnCartSq']").val();
-		
-		// 장바구니상품시퀀스 체크
-		$("input[name='cartSq']").each(function(){
-			if (cpnCartSq == $(this).val()) {
-				$(this).parent().find("input[name='goodsCpnSq']").val(obj.prop("value"));		// 상품쿠폰시퀀스
-				$(this).parent().find("input[name='goodsCpnDcAmt']").val(obj.attr("data"));		// 상품쿠폰할인금액
-			}
-		});
-		
-		// 장바구니시퀀스 체크
-		$(".cartSq").each(function(){
-			if (cpnCartSq == $(this).text()) {
-				$(this).parent().find(".goodsCpnSq").text(obj.prop("value"));			// 상품쿠폰시퀀스
-				$(this).parent().find(".goodsCpnDcAmt").text(obj.attr("data"));			// 상품쿠폰할인금액
-			}
-		});
-		
-		obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
-	} 
-	// 장바구니쿠폰적용
-	else if (cpnType == "cartCpn") {
-		var dcWay 				= obj.parent().find("input[name='dcWay']").val();
-		var dcVal 				= obj.parent().find("input[name='dcVal']").val();
-		var cartCpnDcSumAmt		= 0;
-		var tempSumAmt			= 0;
-		var applyGoodsCnt		= 0;
-		var leftAmt				= 0;
-		var index				= 0;
-		
-		// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
-		obj.find("input[name='cartCpnCartSq']").each(function(){
-			var cartCpnCartSq 		= $(this).val();
-			var cartCpnDcAmt		= 0;
-			
-			// 장바구니시퀀스 체크
-			$("input[name='cartSq']").each(function(){
-				if (cartCpnCartSq == $(this).val()) {
-					var orgCurrPrice 	= parseInt($(this).parent().find("input[name='orgCurrPrice']").val());
-					var tmtb1DcAmt 		= parseInt($(this).parent().find("input[name='tmtb1DcAmt']").val());
-					var tmtb2DcAmt 		= parseInt($(this).parent().find("input[name='tmtb2DcAmt']").val());
-					var goodsCpnDcAmt 	= parseInt($(this).parent().find("input[name='goodsCpnDcAmt']").val());
-					
-					var tempAmt 		= orgCurrPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
-					tempSumAmt			= tempSumAmt + tempAmt; 
-					
-					// 할인율일때 할인금액 
-					if (dcWay == "G240_20") {
-						cartCpnDcAmt = (tempAmt * dcVal) / 100;
-						cartCpnDcSumAmt = cartCpnDcSumAmt + cartCpnDcAmt;
-						
-						$(this).parent().find("input[name='cartCpnSq']").val(obj.prop("value"));
-						$(this).parent().find("input[name='cartCpnDcAmt']").val(cartCpnDcAmt);
-					}
-					
-					applyGoodsCnt++;
-				}
-			});
-			
-			
-			// 장바구니시퀀스 체크
-			$(".cartSq").each(function(){
-				if (cartCpnCartSq == $(this).text()) {
-					var orgCurrPrice 	= parseInt($(this).parent().find(".orgCurrPrice").text());
-					var tmtb1DcAmt 		= parseInt($(this).parent().find(".tmtb1DcAmt").text());
-					var tmtb2DcAmt 		= parseInt($(this).parent().find(".tmtb2DcAmt").text());
-					var goodsCpnDcAmt 	= parseInt($(this).parent().find(".goodsCpnDcAmt").text());
-					
-					var tempAmt 		= orgCurrPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
-					tempSumAmt			= tempSumAmt + tempAmt; 
-					
-					// 할인율일때 할인금액 
-					if (dcWay == "G240_20") {
-						cartCpnDcAmt = (tempAmt * dcVal) / 100;
-						cartCpnDcSumAmt = cartCpnDcSumAmt + cartCpnDcAmt;
-						
-						$(this).parent().find(".cartCpnSq").val(obj.prop("value"));
-						$(this).parent().find(".cartCpnDcAmt").val(cartCpnDcAmt);
-					}
-				}
-			});
-		});
-		
-		// 금액일때 할인금액 적용
-		if (dcWay == "G240_10") {
-			cartCpnDcSumAmt = dcVal;
-			leftAmt			= dcVal;
-			index			= 0;
-			
-			// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
-			obj.find("input[name='cartCpnCartSq']").each(function(){
-				var cartCpnCartSq 		= $(this).val();
-				var cartCpnDcAmt		= 0;
-									
-				// 장바구니시퀀스 체크
-				$("input[name='cartSq']").each(function(){
-					if (cartCpnCartSq == $(this).val()) {
-						index++;
-						
-						var orgCurrPrice 	= parseInt($(this).parent().find("input[name='orgCurrPrice']").val());
-						var tmtb1DcAmt 		= parseInt($(this).parent().find("input[name='tmtb1DcAmt']").val());
-						var tmtb2DcAmt 		= parseInt($(this).parent().find("input[name='tmtb2DcAmt']").val());
-						var goodsCpnDcAmt 	= parseInt($(this).parent().find("input[name='goodsCpnDcAmt']").val());
-						
-						var tempAmt 		= orgCurrPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
-						var tempDiv 		= parseInt((tempAmt / tempSumAmt) * 100);
-						var cartCpnDcAmt	= 0;
-				
-						if (index == applyGoodsCnt) {
-							cartCpnDcAmt 	= leftAmt;
-						} else {
-							cartCpnDcAmt	= parseInt((cartCpnDcSumAmt * tempDiv) / 100);
-							leftAmt 		= leftAmt - cartCpnDcAmt;
-						}
-						
-						$(this).parent().find("input[name='cartCpnSq']").val(obj.prop("value"));
-						$(this).parent().find("input[name='cartCpnDcAmt']").val(cartCpnDcAmt);
-					}
-				});
-			});
-			
-			cartCpnDcSumAmt = dcVal;
-			leftAmt			= dcVal;
-			index = 0;
-			
-			// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
-			obj.find("input[name='cartCpnCartSq']").each(function(){
-				var cartCpnCartSq 		= $(this).val();
-				var cartCpnDcAmt		= 0;
-									
-				// 장바구니시퀀스 체크
-				$(".cartSq").each(function(){
-					if (cartCpnCartSq == $(this).text()) {
-						index++;
-						
-						var orgCurrPrice 	= parseInt($(this).parent().find(".orgCurrPrice").text());
-						var tmtb1DcAmt 		= parseInt($(this).parent().find(".tmtb1DcAmt").text());
-						var tmtb2DcAmt 		= parseInt($(this).parent().find(".tmtb2DcAmt").text());
-						var goodsCpnDcAmt 	= parseInt($(this).parent().find(".goodsCpnDcAmt").text());
-						
-						var tempAmt 		= orgCurrPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
-						var tempDiv 		= parseInt((tempAmt / tempSumAmt) * 100);
-						var cartCpnDcAmt	= 0;
-				
-						if (index == applyGoodsCnt) {
-							cartCpnDcAmt 	= leftAmt;
-						} else {
-							cartCpnDcAmt	= parseInt((cartCpnDcSumAmt * tempDiv) / 100);
-							leftAmt 		= leftAmt - cartCpnDcAmt;
-						}
-						
-						$(this).parent().find(".cartCpnSq").text(obj.prop("value"));
-						$(this).parent().find(".cartCpnDcAmt").text(cartCpnDcAmt);
-					}
-				});
-			});
-		} 
-		
-		obj.parent().parent().find("input[name='cpnDcAmt']").val(cartCpnDcSumAmt);
-		
-		var dcAmtStr = "- " + cartCpnDcSumAmt.addComma() + " 원 할인적용";
-		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
-	}
-	// 배송비쿠폰적용
-	else if (cpnType == "delvCpn") {
-		// 적용된 할인금액 text 설정 
-		var dcAmtStr = "- " + parseInt(obj.attr("data")).addComma() + " 원 할인적용";
-		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
-		
-		var cpnCartSq 	= obj.parent().parent().find("input[name='cpnCartSq']").val();
-		
-		obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
-		obj.parent().parent().find("input[name='delvFeeCd']").val(obj.attr("delvfeecd"));
-	}
-	
-	// select box 쿠폰 적용 (공통적용)
-	obj.parent().parent().find("input[name='custCpnSq']").val(obj.prop("value"));
-	obj.parent().parent().find(".select").text(obj.text());
-	
-	// 선택된 할인금액 노출
-	obj.parent().parent().parent().parent().parent().find(".cp_discount").css("display", "block");
-	
-	// 선포인트기능리셋
-	prePntDcAmtReset();
-}
-
-// 3.6 쿠폰중복체크 후 적용불가
-var custCpnNotApply = function(obj) {
-	// 이전에 등록된 쿠폰시퀀스  
-	var custCpnSq = obj.parent().parent().find("input[name='custCpnSq']").val();
-
-	// 이전에 등록된 쿠폰시퀀스 비교후 데이타 원복
-	obj.parent().find("li").each(function(){
-		if ($(this).prop("value") == custCpnSq) {
-			$(this).parent().parent().find(".select").text($(this).text());
-			
-			if (custCpnSq == 0) {
-				$(this).parent().parent().parent().parent().parent().find(".cp_discount").css("display", "none");
-			} else {
-				$(this).parent().parent().parent().parent().parent().find(".cp_discount").css("display", "block");
-			}
-		}
-	});
-	
-	// 선포인트기능리셋
-	prePntDcAmtReset();
-}
-
-// 3.7 쿠폰 선택없음 기능 구현
-var cpnApplyDel = function(obj) {
-	// 쿠폰타입(상품쿠폰, 장바구니쿠폰, 배송비쿠폰)
-	var cpnType = obj.parent().parent().find("input[name='cpnType']").val();
-	
-	// 상품쿠폰적용
-	if (cpnType == "goodsCpn") {
-		// select box 쿠폰 적용
-		var cpnCartSq = obj.parent().parent().find("input[name='cpnCartSq']").val();
-		
-		// 장바구니시퀀스 체크
-		$("input[name='cartSq']").each(function(){
-			if (cpnCartSq == $(this).val()) {
-				$(this).parent().find("input[name='goodsCpnSq']").val("0");			// 상품쿠폰시퀀스
-				$(this).parent().find("input[name='goodsCpnDcAmt']").val("0");		// 상품쿠폰할인금액
-			}
-		});
-	}
-	// 장바구니쿠폰적용
-	else if (cpnType == "cartCpn") {
-		// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
-		$("input[name='cartSq']").each(function(){
-			$(this).parent().find("input[name='cartCpnSq']").val("0");
-			$(this).parent().find("input[name='cartCpnDcAmt']").val("0");
-		});
-	}
-	// 배송비쿠폰적용
-	else if (cpnType == "delvCpn") {
-		// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
-		$("input[name='cartSq']").each(function(){
-			$(this).parent().find("input[name='delvFeeCd']").val("0");
-		});
-	}
-	
-	obj.parent().parent().find("input[name='custCpnSq']").val("0");
-	obj.parent().parent().find("input[name='cpnDcAmt']").val("0");
-
-	obj.parent().parent().find(".select").text("선택없음");
-	obj.parent().parent().parent().parent().parent().find(".cp_discount").css("display", "none");
-	
-	// 선포인트기능리셋
-	prePntDcAmtReset();
-	
-	// 최대할인혜택적용 체크해제
-	if ($("#chk-maxdisc").is(":checked")) {
-		$("#chk-maxdisc").attr("checked", false);
-	}
-}
-
-// 3.9 선포인트리셋기능
-var prePntDcAmtReset = function() {
-	var rmPrePntAmt = parseInt($("input[name='rmPrePntAmt']").val());
-	$("input[name='prePntDcAmt']").val(rmPrePntAmt);
-	
-	$("input[name='rdi-beforpoint']").each(function(){
-		// 선포인트 초기 설정 사용함
-		if ($(this).val() == "Y") {
-			$(this).attr("checked", true);
-		}
-	});
-	
-	$("#prePntDcAmt").text("-"+rmPrePntAmt.addComma()+"원");
-	
-	// 포인트기능 리렛
-	pntDcAmtReset();
-}
-
-// 3.10 포인트리셋기능
-var pntDcAmtReset = function() {
-	$("input[name='pntDcAmt']").val("0");
-	$("input[name='pntDcAmtStr']").val("");
-	$("#pntDcAmt").text("0원");
-	
-	// 상품권리셋기능
-	gfcdUseAmtReset();
-}
-
-// 3.11 상품권리셋기능
-var gfcdUseAmtReset = function() {
-	$("input[name='gfcdUseAmt']").val("0");
-	$("input[name='gfcdUseAmtStr']").val("");
-	$("#gfcdUseAmt").text("0원");
-	
-	// 금액전체계산
-	custCpnSumAmtCal();
-}
-
-// 3.12 쿠폰할인금액합계설정(금액전체계산)
-var custCpnSumAmtCal = function() {
-	var cpnDcSumAmt = 0;
-	var cpnApplyCnt = 0;
-	
-	$("input[name='cpnDcAmt']").each(function(){
-		cpnDcSumAmt = cpnDcSumAmt + parseInt($(this).val());
-		
-		// 적용된 쿠폰 수량
-		if (parseInt($(this).val()) > 0) {
-			cpnApplyCnt++;
-		}
-	});
-	
-	// 쿠폰영역
-	$(".maxdisc_amount").text("(-" + cpnDcSumAmt.addComma() + "원)"); // 쿠폰할인금액합계
-	$("#cpnApplyCnt").text(cpnApplyCnt + "장");
-	
-	// 상품목록영역
-	$("#couponDcSumAmt").text("-" + cpnDcSumAmt.addComma() + "원"); // 쿠폰할인금액합계
-	$("input[name='couponDcSumAmt']").val(cpnDcSumAmt);
-	
-	// 배송비할인적용
-	$("input[name='cpnType']").each(function(){
-		if ($(this).val() == "delvCpn") {
-			sumDelvFee = parseInt(orgSumDelvFee) - parseInt($(this).parent().find("input[name='cpnDcAmt']").val());
-			
-			// 최종배송비
-			$("#delvSumAmt").text(sumDelvFee.addComma() + "원");
-			$("input[name='delvSumAmt']").val(sumDelvFee);
-		}
-	});
-	
-	var goodsSumAmt 		= parseInt($("input[name='goodsSumAmt']").val());
-	var delvSumAmt 			= parseInt($("input[name='delvSumAmt']").val());
-	var cpn1DcSumAmt 		= parseInt($("input[name='cpn1DcSumAmt']").val());
-	var tmtbDcSumAmt 		= parseInt($("input[name='tmtbDcSumAmt']").val());
-	var couponDcSumAmt 		= parseInt($("input[name='couponDcSumAmt']").val());
-	var prePntDcAmt 		= parseInt($("input[name='prePntDcAmt']").val());
-	var pntDcAmt 			= parseInt($("input[name='pntDcAmt']").val());
-	var gfcdUseAmt 			= parseInt($("input[name='gfcdUseAmt']").val());
-	
-	// 실결제금액(PG)
-	var realOrdAmt			= (goodsSumAmt + delvSumAmt) - (cpn1DcSumAmt + tmtbDcSumAmt + couponDcSumAmt + prePntDcAmt) - (pntDcAmt + gfcdUseAmt);
-	$("#realOrdAmt").text(realOrdAmt.addComma());
-	$("input[name='realOrdAmt']").val(realOrdAmt);
-	
-	$("#btn_payment").text("동의 후 "+realOrdAmt.addComma()+"원 결제하기");
-	
-	// 적립예정포인트
-	var savePntSumAmt		= parseInt($("input[name='savePntSumAmt']").val());
-	var tempSavePnt			= savePntSumAmt - prePntDcAmt;
-	
-	
-	
-	
-	
-	
-	
-	// 2021.03.06 주문상세 테이블 적용
-	// 포인트금액 상품상세에 포인트금액 분배 작업
-	var prePntDcAmtYn 		= $("input[name='rdi-beforpoint']:checked").val();
-	var leftPntAmt			= pntDcAmt;
-	var leftGfcdAmt			= gfcdUseAmt;
-	var cartSqLenght		= $(".cartSq").length; 
-	var index				= 1;
-	
-	var orgGoodsSumAmt		= 0;
-	var cpn1DcSumAmt		= 0;
-	var ordSumAmt			= 0;
-	var tmtb1DcSumAmt		= 0;
-	var tmtb2DcSumAmt		= 0;
-	var tmtbDcSumAmt		= 0;
-	var goodsCpnDcSumAmt	= 0;
-	var cartCpnDcSumAmt		= 0;
-	var delvCpnDcSumAmt		= 0;
-	var cpnDcSumAmt			= 0;
-	var prePntDcSumAmt		= 0;
-	var realOrdSumAmt		= 0;
-	
-	$(".cartSq").each(function(){
-		var orgCurrPrice 	= parseInt($(this).parent().find(".orgCurrPrice").text());
-		var cpn1DcAmt		= parseInt($(this).parent().find(".cpn1DcAmt").text());
-		var optAddPrice 	= parseInt($(this).parent().find(".optAddPrice").text());
-		var goodsQty 		= parseInt($(this).parent().find(".goodsQty").text());
-		var tmtb1DcAmt		= parseInt($(this).parent().find(".tmtb1DcAmt").text());
-		var tmtb2DcAmt		= parseInt($(this).parent().find(".tmtb2DcAmt").text());
-		var goodsCpnDcAmt	= parseInt($(this).parent().find(".goodsCpnDcAmt").text());
-		var cartCpnDcAmt	= parseInt($(this).parent().find(".cartCpnDcAmt").text());
-		var prePntDcAmt1	= parseInt($(this).parent().find(".prePntDcAmt1").text());
-		var dcSumAmt		= 0;
-		
-		// 주문금액 = ((판매가 - 즉시할인가) + 옵션추가금액) * 장바구니수량
-		orgGoodsSumAmt		= orgGoodsSumAmt + (orgCurrPrice + optAddPrice) * goodsQty;
-		cpn1DcSumAmt		= cpn1DcSumAmt + cpn1DcAmt;
-		tmtb1DcSumAmt		= tmtb1DcSumAmt + tmtb1DcAmt;
-		tmtb2DcSumAmt		= tmtb2DcSumAmt + tmtb2DcAmt;
-		tmtbDcSumAmt		= tmtbDcSumAmt + (tmtb1DcAmt + tmtb2DcAmt);
-		goodsCpnDcSumAmt	= goodsCpnDcSumAmt + goodsCpnDcAmt;
-		cartCpnDcSumAmt		= cartCpnDcSumAmt + cartCpnDcAmt;
-		cpnDcSumAmt			= cpnDcSumAmt + (goodsCpnDcAmt + cartCpnDcAmt);
-		prePntDcSumAmt		= prePntDcSumAmt + prePntDcAmt1;
-		
-		var ordAmt			= ((orgCurrPrice - cpn1DcAmt) + optAddPrice) * goodsQty;
-		ordSumAmt			= ordSumAmt + ordAmt;
-		
-		// 선포인트사용여부
-		// 할인금액합계 = 다다익선수량금액 + 다다익선금액금액 + 상품쿠폰금액 + 장바구니금액 + 선포인트금액
-		if (prePntDcAmtYn == "Y") {
-			dcSumAmt		= tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt + prePntDcAmt1;
-		} else {
-			dcSumAmt		= tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt;
-		}
-		
-		// 주문금액설정
-		$(this).parent().find(".ordAmt").text(ordAmt);
-		$(this).parent().find(".dcSumAmt").text(dcSumAmt);
-	});
-	
-	// 포인트, 상품권 금액 분배
-	$(".cartSq").each(function(){
-		var ordAmt 			= parseInt($(this).parent().find(".ordAmt").text());
-		var dcSumAmt		= parseInt($(this).parent().find(".dcSumAmt").text()); 
-		var tempDiv 		= parseInt((ordAmt / ordSumAmt) * 100);
-		var pntDcAmt1 		= 0;
-		var gfcdUseAmt1		= 0;
-		
-		if (index == cartSqLenght) {
-			pntDcAmt1 		= leftPntAmt;
-			gfcdUseAmt1		= leftGfcdAmt;
-		} else {
-			pntDcAmt1 		= parseInt((pntDcAmt * tempDiv) / 100);
-			gfcdUseAmt1		= parseInt((gfcdUseAmt * tempDiv) / 100);
-			leftPntAmt		= leftPntAmt - pntDcAmt1;
-			leftGfcdAmt		= leftGfcdAmt - gfcdUseAmt1;
-		}
-		
-		var realOrdAmt1		= ordAmt - dcSumAmt - (pntDcAmt1 - gfcdUseAmt1);
-		realOrdSumAmt		= realOrdSumAmt + realOrdAmt1;
-		
-		$(this).parent().find(".pntDcAmt1").text(pntDcAmt1);
-		$(this).parent().find(".gfcdUseAmt1").text(gfcdUseAmt1);
-		$(this).parent().find(".realOrdAmt1").text(realOrdAmt1);
-		
-		index++;
-	});
-	
-	$(".orgGoodsSumAmt").text(orgGoodsSumAmt);
-	$(".cpn1DcSumAmt").text(cpn1DcSumAmt);
-	$(".ordSumAmt").text(ordSumAmt);
-	$(".tmtb1DcSumAmt").text(tmtb1DcSumAmt);
-	$(".tmtb2DcSumAmt").text(tmtb2DcSumAmt);
-	$(".tmtbDcSumAmt").text(tmtbDcSumAmt);
-	$(".goodsCpnDcSumAmt").text(goodsCpnDcSumAmt);
-	$(".cartCpnDcSumAmt").text(cartCpnDcSumAmt);
-	$(".cpnDcSumAmt").text(cpnDcSumAmt);
-	$(".prePntDcSumAmt").text(prePntDcSumAmt);
-	$(".pntDcSumAmt").text(pntDcAmt);
-	$(".gfcdUseSumAmt").text(gfcdUseAmt);
-	$(".realOrdSumAmt").text(realOrdSumAmt);
-	
-	$("#savePntSumAmt").text(tempSavePnt.addComma()+"P");
-};
-
-// 3.20 총알배송가능 지역, 총알배송 가능 시간 체크
-var fnGetDailyDeliveryCheck = function () {
-	// TODO
-	var jsonObj 	= {"zipNo" : 12345};
-	var jsonData 	= JSON.stringify(jsonObj);
-
-	gagajf.ajaxJsonSubmit(
-		"/order/getDailyDeliveryCheck"
-		, jsonData
-		, function (result) {
-			// 자사몰 일반배송
-			$("#shotDelv").text(0);
-			$("#wmsDelv").text(wmsCnt);
-			$("#wmsDelvTitle").css("display", "block");
-			$("#shotDelvTitle").css("display", "none");
-			$(".tag_stype2").css("display", "none");
-
-			// 자사몰 총알배송
-			if (shotDelvYn == "Y") {
-				if (parseInt(result) > 0) {
-					$("#shotDelv").text(wmsCnt);
-					$("#wmsDelv").text(0);
-					
-					$("#wmsDelvTitle").css("display", "none");
-					$("#shotDelvTitle").css("display", "block");
-					$(".tag_stype2").css("display", "block");
-				}
-			}
-		}
-	)
-}
-</script>
-
-
-
-
-
-
-
-
-
-
-<script th:inline="javascript">
-// 화면준비상태
-$(document).ready( function() {
-	// 배송지변경 팝업열기
-	$(document).on('click','#btn_adrsChange_pop',function(e){
-		$.ajax( {
-			type		: "POST",
-			url 		: '/order/delvAddrChangePop',
-			dataType 	: 'html',
-			success 	: function(result) {
-				if (result != null) {
-					$("#adrsChangePop").html(result);
-					$("#adrsChangePop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 배송지추가 팝업열기
-	$(document).on('click','#btn_addrAdd_pop',function(e){
-		$.ajax( {
-			type		: "POST",
-			url 		: '/order/delvAddrAddPop',
-			dataType 	: 'html',
-			success 	: function(result) {
-				if (result != null) {
-					$("#adrsAddPop").html(result);
-					$("#adrsAddPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 배송지수정 팝업열기
-	$("#btn_addrModify_pop").on("click", function(e){
-		$.ajax( {
-			type		: "POST",
-			url 		: '/order/delvAddrModifyPop',
-			dataType 	: 'html',
-			success 	: function(result) {
-				if (result != null) {
-					$("#adrsModifyPop").html(result);
-					$("#adrsModifyPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 배송요청사항 팝업열기
-	$("#btn_rqstModify_pop").on("click", function(e){
-		var jsonObj = new Object();
-		jsonObj.delvMemo = $("input[name='delvMemo']").val();
-		
-		$.ajax({
-			type		: "POST",
-			url 		: "/order/delvMemoChangePop",
-			data		: jsonObj,
-			dataType 	: "html",
-			success 	: function(result) {
-				if (result != null) {
-					$("#rqstModifyPop").html(result);
-					$("#rqstModifyPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-	
-	// 해외배송 입력
-	$(document).on('change','.odPayment .area_overseas #rdi-overs1', function(e){
-		$('.info_box.overs2').hide();
-		$('.info_box.overs1').show();
-		return false;
-	}).on('change','.odPayment .area_overseas #rdi-overs2', function(e){
-		$('.info_box.overs1').hide();
-		$('.info_box.overs2').show();
-		return false;
-	});
-
-	// 사은품지급안내 팝업열기
-	$("#btn_infoGift_pop").on("click",function(e){
-		$.ajax({
-			type		: "POST",
-			url 		: "/order/freegiftInfoPop",
-			dataType 	: "html",
-			success 	: function(result) {
-				if (result != null) {
-					$("#infoGiftPop").html(result);
-					$("#infoGiftPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 할인쿠폰 확인
-	$(document).on('click','.odPayment .area_seldiscount .btn_coupon_toggle',function(e){
-		$('.coupon_list').toggle();
-		$(this).toggleClass('on');
-		return false;
-	});
-
-	// 결제수단 선택
-	$(document).on('change','.odPayment .area_paymethod .paymethod_radio input',function(e){
-		$('.radio_blk').removeClass('on');
-		$(this).parents('.radio_blk').addClass('on');
-		$(this).parents('.radio_blk').find('.paymethod_box').show();
-		$(this).parents('.radio_blk').siblings('div').find('.paymethod_box').hide();
-	
-		var paymethodlabel =  $(this).prop('labels');
-		$(this).parents('li').find('.fold_head .data span').text($(paymethodlabel).text());
-	
-		// 간편결제 카드추가 슬라이드
-		var swiper = new Swiper('.paymethod_box .card_quickpay .list_card', {
-			slidesPerView: 'auto',
-			spaceBetween: 160,
-			centeredSlides: true,
-			navigation: {
-				nextEl: '.list_card .swiper-button-next',
-				prevEl: '.list_card .swiper-button-prev',
-			},
-		});
-		return false;
-	});
-
-	// STYLE24 간편결제 배너닫기
-	$(document).on('click','.odPayment .area_paymethod .quickpay_bnr .btn_close_bnr',function(e){
-		$('.quickpay_bnr').hide();
-	});
-
-	// 결제수단 선택 > 즐겨찾기 추가시 
-	$(document).on('click','.odPayment .area_paymethod .paymethod_box .card .etc .btn_favorcard',function(e){
-		$(this).toggleClass('active');
-		return false;
-	});
-
-	// 결제수단 > 일반결제> 실시간계좌이체 선택시            
-	$(document).on('change','.odPayment input:radio[name=rdi-paynormal]',function(e){
-		var paynormalValue = $(this).attr('id');
-		
-		if (paynormalValue == 'rdi-paynormal2') {
-			$('.area_paymethod .agree_insurance').show();
-		} else {
-			$('.area_paymethod .agree_insurance').hide();
-		}
-		return false;
-	});
-
-	// 개인정보동의 열고닫기
-	$(document).on('click','.area_paymentinfo .payinfo_blk a',function(e){		
-		e.preventDefault();
-		$(this).parents('.payinfo_blk').toggleClass('on');
-		var privacyToggle = $(this).find('span');
-		$(privacyToggle).text($(privacyToggle).text() == '보기' ? '닫기' : '보기');
-		return false;
-	});
-
-	// 간편결제등록 > STEP1.이용약관 팝업열기
-	$(document).on('click','.btn_addcard',function(e){
-		$("#qPayAgree_pop").modal("show");
-		return false;
-	});
-
-	// 간편결제등록 > STEP1.이용약관 체크
-	$(document).on('click','.area_QpayCk .agr_select button',function(e){
-		$(this).parents('.area_QpayCk').find('.info_agrQpay').toggle();
-		var payagrToggle = $(this).find('span');
-		$(payagrToggle).text($(payagrToggle).text() == '약관열기' ? '약관닫기' : '약관열기');
-		return false;
-	});
-
-	// 간편결제등록 > STEP1.이용약관 체크박스 전체선택
-	$(document).on('click','#chk-Qpay-agrAll',function(e){
-		$(this).parents(".qPayAgree_pop").find('.agree_Qpay input').prop("checked", $(this).is(":checked"));
-	});
-
-	// 간편결제등록 > STEP1.이용약관 체크박스 개별선택
-	$(document).on("click", ".agree_Qpay input",function(e){
-		var is_checked = true;
-		$(".agree_Qpay input").each(function(){
-			is_checked = is_checked && $(this).is(":checked");
-		});
-		$("#chk-Qpay-agrAll").prop("checked", is_checked);
-	});
-
-	// 간편결제등록 > 본인인증 팝업열기
-	$(document).on('click','#btn_qPayidConfirm_pop',function(e){
-		$("#qPayidConfirm_pop").modal("show");
-		return false;
-	});
-});
-</script>
-
-</th:block>
-</body>
-</html>

+ 9 - 19
src/main/webapp/WEB-INF/views/web/order/OrderFreegiftInfoPopWeb.html

@@ -1,22 +1,12 @@
 <!-- 사은품지급안내 팝업 -->
-<div class="modal-dialog" role="document">
-	<div class="modal-content">
-		<div class="modal-header">
-			<h5 class="modal-title" id="infoGiftLabel">STYLE24 사은품 지급 안내</h5>
-		</div>
-		<div class="modal-body">
-			<div class="pop_cont">사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내
-				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내
-				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다. 사은품지급안내
-				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내
-				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.
-				사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내
-				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.
-				사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내
-				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.
-				사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내
-				내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.</div>
-		</div>
-	</div>
+<div class="modal-header">
+    <h5 class="modal-title" id="infoGiftLabel">STYLE24 사은품 지급 안내</h5>
+</div>
+<div class="modal-body">
+    <div class="pop_cont">
+        <div class="cont_box">
+            사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다. 사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.사은품지급안내 내용입니다.
+        </div>
+    </div>
 </div>
 <!-- //사은품지급안내 팝업 -->

+ 67 - 51
src/main/webapp/WEB-INF/views/web/order/OrderFreegiftInfoWeb.html

@@ -23,66 +23,69 @@
 				<span>사은품 선택</span>
 			</div>
 			<div class="data">
-				<span>사은품 총 <em class="total_gift">0</em>개 선택</span> 
-				<span><em class="total_deduct">0</em>P 차감</span>
+				<span>사은품 총 <em class="total_gift">0</em> 개 선택</span> 
+				<span><em class="total_deduct">0</em> P 차감</span>
 			</div>
 		</div>
 	</a>
 </div>
 <div class="fold_cont" style="display: none;">
 	<div class="area_selgift">
-		<div class="gift_box">
-			<p class="txt">
-				<th:block th:if="${freegift.allYn} == 'Y'">
-					<span th:text="'사은품필수' + ${i.count} + ' ' + ${freegift.freegiftNm}"></span>
-				</th:block>
-				<th:block th:if="${freegift.allYn} == 'N'">
-					<span th:text="'사은품선택' + ${i.count} + ' ' + ${freegift.freegiftNm}"></span>
-				</th:block>
-			</p>
-			<div class="form_field">
-				<!-- 전체지급 사음품(필수) -->
-				<th:block th:if="${freegift.allYn} == 'Y'">
-					<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
-						<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
-							<div class="gift">
-								<input type="hidden" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" usepoint="0" allYn="Y">
-								<label th:for="'rdi-gift'+${i.count}+${k.count}"> 
-									<span class="thumb"><img src="http://ts5000.ipdisk.co.kr:89/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
-									<span class="name" th:text="${freegiftGoods.goodsNm}"></span> 
-									<span class="deduct">무료</span>
-								</label>
-							</div>
+		<th:block th:each="freegift, i : ${freegiftList}">
+			<div class="gift_box">
+				<p class="txt">
+					<th:block th:if="${freegift.allYn} == 'Y'">
+						<span th:text="'사은품필수' + ${i.count} + ' ' + ${freegift.freegiftNm}"></span>
+					</th:block>
+					<th:block th:if="${freegift.allYn} == 'N'">
+						<span th:text="'사은품선택' + ${i.count} + ' ' + ${freegift.freegiftNm}"></span>
+					</th:block>
+				</p>
+				<div class="form_field">
+					<!-- 전체지급 사음품(필수) -->
+					<th:block th:if="${freegift.allYn} == 'Y'">
+						<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
+							<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
+								<div class="gift">
+									<input type="hidden" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" usepoint="0" allYn="Y">
+									<input type="checkbox" name="chk-gift-required" id="chk-gift-required1" class="chk_img" value="" checked="" onclick="return(false);">
+									<label for="rdi-gift'+${i.count}+${k.count}">
+										<span class="thumb"><img src="http://ts5000.ipdisk.co.kr:89/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
+										<span class="name" th:text="${freegiftGoods.goodsNm}"></span>
+										<span class="deduct">무료</span>
+									</label>
+								</div>
+							</th:block>
 						</th:block>
 					</th:block>
-				</th:block>
-				
-				<!-- 선택지급 사음품(선택) -->
-				<th:block th:if="${freegift.allYn} == 'N'">
-					<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
-						<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
-							<div class="gift">
-								<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" th:usepoint="${freegiftGoods.usePoint}"  allYn="N"> 
-								<label th:for="'rdi-gift'+${i.count}+${k.count}"> 
-									<span class="thumb"><img src="http://ts5000.ipdisk.co.kr:89/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
-									<span class="name" th:text="${freegiftGoods.goodsNm}"></span> 
-									<span th:if="${freegiftGoods.usePoint} < 1" class="deduct" th:text="무료"></span>
-									<span th:if="${freegiftGoods.usePoint} > 0" class="deduct" th:text="|- ${freegiftGoods.usePoint} P|"></span>
-								</label>
-							</div>
+					
+					<!-- 선택지급 사음품(선택) -->
+					<th:block th:if="${freegift.allYn} == 'N'">
+						<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
+							<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
+								<div class="gift">
+									<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" th:usepoint="${freegiftGoods.usePoint}"  allYn="N"> 
+									<label th:for="'rdi-gift'+${i.count}+${k.count}"> 
+										<span class="thumb"><img src="http://ts5000.ipdisk.co.kr:89/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
+										<span class="name" th:text="${freegiftGoods.goodsNm}"></span> 
+										<span th:if="${freegiftGoods.usePoint} < 1" class="deduct" th:text="무료"></span>
+										<span th:if="${freegiftGoods.usePoint} > 0" class="deduct" th:text="|${#numbers.formatInteger(freegiftGoods.usePoint, 1, 'COMMA')} P|"></span>
+									</label>
+								</div>
+							</th:block>
 						</th:block>
+						<div class="gift">
+							<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="${i.count}+'0'" class="chk_img freegiftRdo" value="noSel" usepoint="0" allYn="N"> 
+							<label th:for="${i.count}+'0'">
+								<span class="thumb"><img src="/images/pc/thumb/tmp_gift_empty.jpg" width=""alt=""></span> 
+								<span class="name">사은품 수령안함</span>
+								<span class="deduct">수령거부</span>
+							</label>
+						</div>
 					</th:block>
-					<div class="gift">
-						<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="${i.count}+'0'" class="chk_img freegiftRdo" value="noSel" usepoint="0" allYn="N"> 
-						<label th:for="${i.count}+'0'">
-							<span class="thumb"><img src="/images/pc/thumb/tmp_gift_empty.jpg" width=""alt=""></span> 
-							<span class="name">사은품 수령안함</span>
-							<span class="deduct">수령거부</span>
-						</label>
-					</div>
-				</th:block>
+				</div>
 			</div>
-		</div>
+		</th:block>
 		
 		<div class="form_field">
 			<div class="agree_gift">
@@ -91,8 +94,7 @@
 				</p>
 				<p class="txt">
 					사은품 지금에 대한 내용을 확인하였으며, 이에 동의합니다.
-					<button type="button" class="btn_underline"
-						id="btn_infoGift_pop">
+					<button type="button" class="btn_underline" id="btn_infoGift_pop">
 						<span>보기</span>
 					</button>
 				</p>
@@ -106,6 +108,17 @@
 var freegiftApplyAmtList	= [[${freegiftApplyAmtList}]];		// 사은품장바구니목록
 var freegiftList			= [[${freegiftList}]];				// 사은품 프로모션 목록
 var freegiftGoodsList		= [[${freegiftGoodsList}]];			// 사은품 프로모션 상품 목록
+var dispYn 					= [[${order.dispYn}]]; 				// 노출여부
+
+var freegiftInfoDispYn = function(temp) {
+	if (temp == "Y") {
+		$("#freegiftInfo .fold_head").addClass("on");
+		$("#freegiftInfo .fold_cont").show();
+	} else {
+		$("#freegiftInfo .fold_head").removeClass("on");
+		$("#freegiftInfo .fold_cont").hide();
+	}
+}
 
 //컨텐츠 호출
 $(document).ready( function() {
@@ -116,6 +129,9 @@ $(document).ready( function() {
 		$("#freegiftInfo").css("display", "block");
 	}
 	
+	//사은품노출여부
+	freegiftInfoDispYn(dispYn);
+	
 	// 사은품시퀀스배열, 
 	var freegiftSqArr 		= [];
 	var freegiftGoodsArr 	= [];

+ 5 - 0
src/main/webapp/WEB-INF/views/web/order/OrderListInfoWeb.html

@@ -66,6 +66,11 @@
 										</th:block>
 									</div>
 								</figcaption>
+								<th:block th:if="${goods.delvResDt}">
+									<p class="info_reserv">
+										<i class="ico ico_calender"></i><span th:text="${goods.delvResDt}"></span> 배송예정상품
+									</p>
+								</th:block>
 							</figure>
 						</div>
 					</th:block>

+ 5 - 7
src/main/webapp/WEB-INF/views/web/order/OrderNoMemberWeb.html

@@ -54,7 +54,7 @@
 						<div class="form_field">
 							<label class="input_label sr-only">이름(주문자명)</label>
 							<div class="input_wrap"> 
-								<input type="text" class="form_control" name="custNm" placeholder="이름(주문자명)" value="홍길동">
+								<input type="text" class="form_control" name="custNm" placeholder="이름(주문자명)" value="">
 							</div>
 						</div>	
 						
@@ -63,7 +63,7 @@
 							<label class="input_label sr-only">휴대폰 번호</label>
 							<div class="ui_col_9">
 								<div class="input_wrap"> 
-									<input type="text" class="form_control" name="cellPhnno" placeholder="휴대폰 인증을 해주세요" readonly="readonly" onfocus="this.blur();" value="010-2345-5678">
+									<input type="text" class="form_control" name="cellPhnno" placeholder="휴대폰 인증을 해주세요" readonly="readonly" onfocus="this.blur();" value="">
 								</div>
 							</div>
 							
@@ -90,8 +90,8 @@
 							<label class="input_label sr-only">배송주소</label>
 							<div class="ui_col_9">
 								<div class="input_wrap">
-									<input type="hidden" class="form_control" name="recipZipcode" placeholder="우편번호" readonly="readonly" value="12345">
-									<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소" readonly="readonly" value="인천광역시 서구 마전동 101">
+									<input type="hidden" class="form_control" name="recipZipcode" placeholder="우편번호" readonly="readonly" value="">
+									<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소" readonly="readonly" value="">
 									<input type="text" class="form_control" name="recipAddr" placeholder="상세주소" readonly="readonly">
 								</div>
 							</div>
@@ -102,7 +102,7 @@
 						<div class="form_field">
 							<label class="input_label sr-only">상세주소</label>
 							<div class="input_wrap"> 
-								<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소" value="아파트 202동 202호">
+								<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소" value="">
 							</div>
 						</div>
 			
@@ -158,7 +158,6 @@ $(document).ready( function() {
 	
 // 주문하기버튼
 $("#btn_order").on("click", function() {
-	/*
 	// TODO 유효성 체크 추가
 	if (gagajf.isNull($("#orderForm input[name=custNm]").val())) {
 		mcxDialog.alert("이름을 입력해주세요.");
@@ -206,7 +205,6 @@ $("#btn_order").on("click", function() {
 		mcxDialog.alert("비회원 개인정보 수집 이용에 동의해주세요.");
 		return false;
 	}
-	*/
 	
 	// 주문서전송
 	$("#orderForm").submit();

+ 16 - 5
src/main/webapp/WEB-INF/views/web/order/OrderPaymentInfoWeb.html

@@ -77,6 +77,7 @@
 				</ul>
 			</div>
 		</div>
+		<!-- 
 		<div class="form_field">
 			<div class="agree_paymethod">
 				<input id="chk-agree_paymethod" type="checkbox">
@@ -87,6 +88,7 @@
 				</label>
 			</div>
 		</div>
+		 -->
 		<div class="form_field">
 			<div class="agree_insurance">
 				<input id="chk-insurance" type="checkbox"> 
@@ -107,15 +109,24 @@
 <script th:inline="javascript">
 var dispYn = [[${order.dispYn}]]; // 노출여부
 
+//화면노출
+var paymentInfoDispYn = function(temp) {
+	if (temp == "Y") {
+		$("#paymentInfo .fold_head").addClass("on");
+		$("#paymentInfo .fold_cont").show();
+	} else {
+		$("#paymentInfo .fold_head").removeClass("on");
+		$("#paymentInfo .fold_cont").hide();
+	}
+}
+
 //컨텐츠 호출
 $(document).ready( function() {
 	// 화면펼침
-	if (dispYn == "Y") {
-		$("#paymentInfo .fold_head").addClass("on");
-		$("#paymentInfo .fold_cont").css("display", "block");
-		$("#rdi-paymethod-normal").attr("checked", "checked");
-	}
+	paymentInfoDispYn(dispYn);
 });
+
+
 </script>
 
 </html>

+ 31 - 65
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrAddPopWeb.html → src/main/webapp/WEB-INF/views/web/popup/DelvAddrAddPopWeb.html

@@ -56,7 +56,7 @@
 						<label for="rdi-request11"><span>문앞</span></label>
 					</div>
 					<div>
-						<input type="radio" name="rdi-request1" id="rdi-request12" value="직접받고 부재시 문 앞">
+						<input type="radio" name="rdi-request1" id="rdi-request12" value="직접받고 부재시 문 앞" checked>
 						<label for="rdi-request12"><span>직접받고 부재시 문 앞</span></label>
 					</div>
 					<div>
@@ -72,7 +72,7 @@
 						<label for="rdi-request15"><span>기타사항</span></label>
 						<div class="info_box">
 							<div class="input_wrap">
-								<input type="text" class="form_control" maxlength="30" placeholder="보관장소만 입력 (필수)">
+								<input type="text" name="delvMemoText" class="form_control" maxlength="30" placeholder="보관장소만 입력 (필수)">
 								<p>보관 장소 외 다른 내용 입력시 통보없이 삭제 될 수 있습니다.</p>
 							</div>
 						</div>
@@ -83,25 +83,18 @@
 	</div>
 </div>
 <div class="modal-footer">
-	<!-- 회원 -->
-	<th:block th:if="${isLogin}">
-		<button type="button" class="btn btn_dark" id="btn_delivery_addr_save"><span>배송지 등록</span></button>
-	</th:block>
-	<!-- //회원 -->
-	
-	<!-- 비회원 -->
-	<th:block th:if="!${isLogin}">
-		<button type="button" class="btn btn_dark" id="btn_sel_delvAddr_noMember"><span>배송지 등록</span></button>
-	</th:block>
-	<!-- //비회원 -->
+	<button type="button" class="btn btn_dark" id="btn_delivery_addr_save"><span>배송지 등록</span></button>
 </div>
 
 <script th:inline="javascript">
+var isLogin				= [[${isLogin}]];				// 로그인여부
+
 //컨텐츠 호출
 $(document).ready( function() {
 	// 배송요청사항 버튼기능
 	$("#deliveryAddForm input[name=rdi-request1]").each(function(){
-		// 버튼기능
+		
+		// 기타기능 버튼기능
 		$(this).on("click", function(){
 			var temp = $(this).parent().find('span').text();
 			$("#deliveryAddForm input[name=delvMemoText]").val("");
@@ -149,9 +142,11 @@ $("#btn_delivery_addr_save").on("click", function(){
 		delvMemo = $("input[name=delvMemoText]").val();
 	}
 	
-	// 배송지정보설정
-	var jsonObj = {
-		"defaultYn"			: defaultYn
+	// custDelvAddrSq 부모창으로 전달
+	var delvObj = {
+		"custDelvAddrSq"	: 0
+		, "dispYn"			: "Y"
+		, "defaultYn"		: defaultYn
 		, "recipNm"			: $("#deliveryAddForm input[name=recipNm]").val()
 		, "recipPhnno"		: $("#deliveryAddForm input[name=recipPhnno]").val()
 		, "recipZipcode"	: $("#deliveryAddForm input[name=recipZipcode]").val()
@@ -160,11 +155,20 @@ $("#btn_delivery_addr_save").on("click", function(){
 		, "delvMemo"		: delvMemo
 	}
 	
-	var jsonData = JSON.stringify(jsonObj);jsonObj
+	// 비회원
+	if (isLogin == false) {
+		// 부모장으로 값 전닫
+		delvAddrSet(delvObj);
+		// 팝업닫기
+		$(".close-modal").trigger("click");
+		return false;
+	}
+	
+	var jsonData = JSON.stringify(delvObj);
 	
 	$.ajax( {
 		type		: "POST",
-		url 		: '/order/createCustDeliveryAddr',
+		url 		: '/common/createCustDeliveryAddr',
 		data		: jsonData,
 		dataType 	: 'html',
 		beforeSend : function(xhr, settings) {
@@ -174,57 +178,19 @@ $("#btn_delivery_addr_save").on("click", function(){
 			gagajf.showProgressbar(true);
 		},
 		success 	: function(result) {
+			if (result != null) {
+				delvObj.custDelvAddrSq = result;
+				
+				// 부모장으로 값 전닫
+				delvAddrSet(delvObj);
+			}
 			
-			// 배송지변경팝업호출
-			$.ajax( {
-				type		: "POST",
-				url 		: '/order/delvAddrChangePop',
-				data		: jsonData,
-				dataType 	: 'html',
-				beforeSend : function(xhr, settings) {
-					xhr.setRequestHeader("AJAX"			, "true");
-					xhr.setRequestHeader('Accept'		, 'application/json');
-					xhr.setRequestHeader('Content-Type'	, 'application/json');
-					gagajf.showProgressbar(true);
-				},
-				success 	: function(result) {
-					$("#adrsChangePop .modal-dialog .modal-content").html(result);
-					$("#adrsChangePop").modal("show");
-				}
-			});	
+			// 팝업닫기
+			$(".close-modal").trigger("click");
 		}
 	});
 });
 
-// 2.2 배송지등록버튼
-$("#btn_sel_delvAddr_noMember").on("click", function(){
-	
-	// 유효성체크
-	if (!deliveryAddFormCheck()){
-		return false;
-	}
-	
-	// 배송지정보 새로고침
-	// 기타사항일때 텍스트 등록
-	var delvMemo = $("#deliveryAddForm input[name=rdi-request1]:checked").parent().find('span').text();
-	if ("기타사항" == delvMemo) {
-		delvMemo = $("input[name=delvMemoText]").val();
-	}
-	
-	jsonObj.custNm 			= $("#deliveryAddForm input[name=recipNm]").val();
-	jsonObj.cellPhnno 		= $("#deliveryAddForm input[name=recipPhnno]").val();
-	jsonObj.recipZipcode 	= $("#deliveryAddForm input[name=recipZipcode]").val();
-	jsonObj.recipBaseAddr 	= $("#deliveryAddForm input[name=recipBaseAddr]").val();
-	jsonObj.recipDtlAddr 	= $("#deliveryAddForm input[name=recipDtlAddr]").val();
-	jsonObj.delvMemo 		= delvMemo;
-	
-	// 배송지정보로드실행
-	deliveryAddrInfoSet(false);
-	
-	// 팝업닫기
-	$(".close-modal").trigger("click");
-});
-
 // 유효성체크 함수
 var deliveryAddFormCheck = function() {
 	// TODO 유효성 체크 추가

+ 39 - 28
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrChangePopWeb.html → src/main/webapp/WEB-INF/views/web/popup/DelvAddrChangePopWeb.html

@@ -64,40 +64,29 @@ $(document).ready( function() {
 });
 
 // 2. 버튼기능구현
-// 2.1 배송지추가 팝업열기
-$('#btn_adrsAdd_pop').on("click", function(){
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/delvAddrAddPop',
-		data		: JSON.stringify(jsonObj),
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-			gagajf.showProgressbar(true);
-		},
-		success 	: function(result) {
-			$("#adrsAddPop .modal-dialog .modal-content").html(result);
-			$("#adrsAddPop").modal("show");
-		}
-	});	
-});
-
-// 2.2 배송지선택버튼
+// 2.1 배송지선택버튼
 $(".btn_sel_delvAddr").on("click", function(){
-	// 배송지정보 새로고침
-	jsonObj.custDelvAddrSq = $(this).attr("value");
-	jsonObj.dispYn = "Y";
 	
-	// 배송지정보로드실행
-	deliveryAddrInfoSet(false);
+	// custDelvAddrSq 부모창으로 전달
+	var delvObj = {
+		"custDelvAddrSq"	: $(this).attr("value")
+		, "dispYn"			: "Y"
+		, "recipNm"			: $(this).parent().find("input[name=recipNm]").val()
+		, "recipPhnno"		: $(this).parent().find("input[name=recipPhnno]").val()
+		, "recipZipcode"	: $(this).parent().find("input[name=recipZipcode]").val()
+		, "recipBaseAddr"	: $(this).parent().find("input[name=recipBaseAddr]").val()
+		, "recipDtlAddr"	: $(this).parent().find("input[name=recipDtlAddr]").val()
+		, "delvMemo"		: $(this).parent().find("input[name=delvMemo]").val()
+	}
+	
+	// 부모장으로 값 전닫
+	delvAddrSet(delvObj);
 	
 	// 팝업닫기
 	$(".close-modal").trigger("click");
 });
 
-// 2.3 배송지수정버튼
+// 2.2 배송지수정버튼
 $(".btn_addrModify_pop").on("click", function(){
 		
 	var obj = {
@@ -106,7 +95,7 @@ $(".btn_addrModify_pop").on("click", function(){
 	
 	$.ajax( {
 		type		: "POST",
-		url 		: '/order/delvAddrModifyPop',
+		url 		: '/common/delvAddrModifyPop',
 		data		: JSON.stringify(obj),
 		dataType 	: 'html',
 		beforeSend : function(xhr, settings) {
@@ -123,6 +112,28 @@ $(".btn_addrModify_pop").on("click", function(){
 });
 
 
+// 2.3 배송지추가 팝업열기
+$('#btn_adrsAdd_pop').on("click", function(){
+	$.ajax( {
+		type		: "POST",
+		url 		: '/common/delvAddrAddPop',
+		data		: JSON.stringify(jsonObj),
+		dataType 	: 'html',
+		beforeSend : function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			$("#adrsAddPop .modal-dialog .modal-content").html(result);
+			$("#adrsAddPop").modal("show");
+		}
+	});	
+});
+
+
+
 
 
 

+ 27 - 30
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrModifyPopWeb.html → src/main/webapp/WEB-INF/views/web/popup/DelvAddrModifyPopWeb.html

@@ -27,7 +27,6 @@
 						</div>
 					</div>
 				</div>	
-				<!-- 
 				<div class="form_field">
 					<label class="input_label sr-only">휴대폰 번호</label>
 					<div class="ui_col_12">
@@ -36,7 +35,6 @@
 						</div>
 					</div>
 				</div>
-				 -->
 				<div class="form_field">
 					<label class="input_label sr-only">배송주소</label>
 					<div class="ui_col_12">
@@ -188,11 +186,11 @@ $("#btn_delivery_addr_save").on("click", function(){
 		, "delvMemo"		: delvMemo
 	}
 	
-	var jsonData = JSON.stringify(jsonObj);jsonObj
+	var jsonData = JSON.stringify(jsonObj);
 	
 	$.ajax( {
 		type		: "POST",
-		url 		: '/order/updateCustDeliveryAddr',
+		url 		: '/common/updateCustDeliveryAddr',
 		data		: jsonData,
 		dataType 	: 'html',
 		beforeSend : function(xhr, settings) {
@@ -202,52 +200,51 @@ $("#btn_delivery_addr_save").on("click", function(){
 			gagajf.showProgressbar(true);
 		},
 		success 	: function(result) {
+			// custDelvAddrSq 부모창으로 전달
+			var delvObj = {
+				"custDelvAddrSq"	: parseInt($("#deliveryModifyForm input[name=custDelvAddrSq]").val())
+				, "dispYn"			: "Y"
+				, "recipNm"			: $("#deliveryModifyForm input[name=recipNm]").val()
+				, "recipPhnno"		: $("#deliveryModifyForm input[name=recipPhnno]").val()
+				, "recipZipcode"	: $("#deliveryModifyForm input[name=recipZipcode]").val()
+				, "recipBaseAddr"	: $("#deliveryModifyForm input[name=recipBaseAddr]").val()
+				, "recipDtlAddr"	: $("#deliveryModifyForm input[name=recipDtlAddr]").val()
+				, "delvMemo"		: delvMemo
+			}
+			
+			// 부모장으로 값 전닫
+			delvAddrSet(delvObj);
 			
-			// 배송지변경팝업호출
-			$.ajax( {
-				type		: "POST",
-				url 		: '/order/delvAddrChangePop',
-				data		: jsonData,
-				dataType 	: 'html',
-				beforeSend : function(xhr, settings) {
-					xhr.setRequestHeader("AJAX"			, "true");
-					xhr.setRequestHeader('Accept'		, 'application/json');
-					xhr.setRequestHeader('Content-Type'	, 'application/json');
-					gagajf.showProgressbar(true);
-				},
-				success 	: function(result) {
-					$("#adrsChangePop .modal-dialog .modal-content").html(result);
-					$("#adrsChangePop").modal("show");
-				}
-			});	
+			// 팝업닫기
+			$(".close-modal").trigger("click");
 		}
 	});
 });
 
-//유효성체크 함수
+// 유효성체크 함수
 var deliveryAddFormCheck = function() {
 	// TODO 유효성 체크 추가
-	if (gagajf.isNull($("#deliveryAddForm input[name=recipNm]").val())) {
+	if (gagajf.isNull($("#deliveryModifyForm input[name=recipNm]").val())) {
 		mcxDialog.alert("이름을 입력해주세요.");
-		$('#deliveryAddForm input[name=custNm]').focus();
+		$('#deliveryModifyForm input[name=custNm]').focus();
 		return false;
 	}
 	
-	if (gagajf.isNull($("#deliveryAddForm input[name=recipZipcode]").val())) {
+	if (gagajf.isNull($("#deliveryModifyForm input[name=recipZipcode]").val())) {
 		mcxDialog.alert("배송주소를 입력해주세요.");
-		$('#deliveryAddForm input[name=recipAddr]').focus();
+		$('#deliveryModifyForm input[name=recipAddr]').focus();
 		return false;
 	}
 	
-	if (gagajf.isNull($("#deliveryAddForm input[name=recipBaseAddr]").val())) {
+	if (gagajf.isNull($("#deliveryModifyForm input[name=recipBaseAddr]").val())) {
 		mcxDialog.alert("배송주소를 입력해주세요.");
-		$('#deliveryAddForm input[name=recipAddr]').focus();
+		$('#deliveryModifyForm input[name=recipAddr]').focus();
 		return false;
 	}
 	
-	if (gagajf.isNull($("#deliveryAddForm input[name=recipDtlAddr]").val())) {
+	if (gagajf.isNull($("#deliveryModifyForm input[name=recipDtlAddr]").val())) {
 		mcxDialog.alert("상세주소를 입력해주세요.");
-		$('#deliveryAddForm input[name=recipDtlAddr]').focus();
+		$('#deliveryModifyForm input[name=recipDtlAddr]').focus();
 		return false;
 	}
 	

+ 9 - 5
src/main/webapp/WEB-INF/views/web/order/OrderDelvMemoChangePopWeb.html → src/main/webapp/WEB-INF/views/web/popup/DelvMemoChangePopWeb.html

@@ -42,10 +42,11 @@
     <button type="button" id="btn_delvMemoChange" class="btn btn_dark"><span>등록</span></button>
 </div>
 
-<script type="text/javascript">
+<script th:inline="javascript">
+var delvMemo				= [[${delvMemo}]];				// 로그인여부
+
 // 초기배송메모설정
 $(document).ready( function() {
-	var delvMemo = $("#orderForm input[name=delvMemo]").val();
 	var delvMemoArr = ["문앞", "직접받고 부재시 문 앞", "경비실", "택배함"];
 	var tempMemo = true;
 	
@@ -94,10 +95,13 @@ $(document).ready( function() {
 		if (typeof fnChangeDelvMemo === 'function') {
 			fnChangeDelvMemo(rtnTxt);
 		}
+		
+		var delvMemoObj = {
+			"delvMemo" : rtnTxt
+		}
+		
+		delvMemoSet(delvMemoObj);
 
-		$("#orderForm input[name=delvMemo]").val(rtnTxt);		// input 값에 설정
-		$("#delvMemo").text(rtnTxt);							// 메모 text 설정
-		$(".delvMemo").text(rtnTxt);							// 메모 text 설정
 		$(".close-modal").trigger("click");						// 팝업닫기
 	});
 });