فهرست منبع

주문서개발중

jsh77b 5 سال پیش
والد
کامیت
0d5cee24ab

+ 281 - 94
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -1,5 +1,6 @@
 package com.style24.front.biz.web;
 
+import java.util.ArrayList;
 import java.util.Collection;
 
 import javax.servlet.http.HttpServletRequest;
@@ -8,6 +9,7 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 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.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
@@ -105,18 +107,12 @@ public class TsfOrderController extends TsfBaseController {
 		// TODO
 		// 1.비회주문, 회원 주문 판단 로직,  고객정보 세션 판단
 		// 세션고객정보가 존재하면 회원주문 없으면 비회원 주문
-		
-		// 임시 jsessionId
-		String jsessionId 	= "aaec62cc-5f91-47bb-ba65-ebc9a61385cf";
-		Boolean noMember 	= true;
 
-		// TODO 로그인체크 로직 추가
-		// 1.0 회원, 비회원 여부 판단
-		if (TsfSession.getInfo().getCustNo() == null) {
-			order.setJsessionId(jsessionId);
-		} else {
-			noMember = false;
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
 			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setJsessionId(TsfSession.getSessionId());
 		}
 		
 		// TODO
@@ -126,121 +122,312 @@ public class TsfOrderController extends TsfBaseController {
 			return mav;
 		}
 		
-		Order custemerInfo = new Order();
-		Order deliveryAddrInfo = new Order();
+		// 2. 로그인정보 체크 후 비회원 고객정보 설정 (화면에서 오류 발생에 대비해서 정리)
+		if (TsfSession.isLogin()) {
+			order.setCustNm("");
+			order.setCellPhnno("");
+			order.setEmail("");
+			
+			order.setDelvAddrNm("");
+			order.setRecipZipcode("");
+			order.setRecipBaseAddr("");
+			order.setRecipDtlAddr("");
+		}
+
+		// TODO 임시 장바구니
+		// 2. 장바구니시퀀스 배열 등록 (장바구니 상품 정보 조회)		
+		// 2.1 배송단위별 상품 목록 조회 (장바구니)
+		Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
+		
+		// 2.2 상품금액, 선포인트, 다다익선할인금액
+		GagaMap goodsDcAmtMap = coreOrderService.getGoodsDcAmt(tmtbGoodsApplyList);
+		
+		// 2.3 배송단위별 장바구니 상품 건수 조회 (장바구니상품)
+		GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList);
+		
+		// 2.4 고객 보유 포인트 정보 조회
+		//int rmPntAmt = coreOrderService.getCustPointInfo(order);
+		
+		// 2.5 고객 보유 상품권 정보 조회
+		//int rmGfcdAmt = coreOrderService.getGiftcardInfo(order);
+
+		// 101. 상품정보
+		mav.addObject("cartGoodsList"			, tmtbGoodsApplyList);						// 장바구니상품목록 (즉시할인쿠폰적용)
+		mav.addObject("delvTotCnt" 				, delvOrderMap.get("delvTotCnt"));			// 총상품건수
+		mav.addObject("delvFeeTotCnt"			, delvOrderMap.get("delvFeeTotCnt"));		// 총배송타입건수
+		mav.addObject("wmsCnt" 					, delvOrderMap.get("wmsCnt"));				// 자사상품건수
+		mav.addObject("resCnt" 					, delvOrderMap.get("resCnt"));				// 자사예약상품건수
+		mav.addObject("delvCnt" 				, delvOrderMap.get("delvCnt"));				// 입점업체상품건수
+		
+		mav.addObject("shotCartList" 			, delvOrderMap.get("shotCartList"));		// 자사총알배송상품목록
+		mav.addObject("wmsCartList" 			, delvOrderMap.get("wmsCartList"));			// 자사일반배송상품목록
+		mav.addObject("delvCartList" 			, delvOrderMap.get("delvCartList"));		// 입점업체상품목록
+		mav.addObject("resCartList" 			, delvOrderMap.get("resCartList"));			// 자사예약배송상품목록
+		mav.addObject("delvAllCartList" 		, delvOrderMap.get("delvAllCartList"));		// 전체배송목록
+		mav.addObject("sumDelvFee" 				, delvOrderMap.get("sumDelvFee"));			// 배송비합계
+		
+		// 102. 주문정보
+		mav.addObject("order" 					, order);									// 주문정보
 
-		// TODO 로그인체크 로직 추가
-		if (noMember) {
-			// 1.1 주문고객 정보조회
+		// 103. 할인정보
+		mav.addObject("tmtbGoodsApplyList"		, tmtbGoodsApplyList);						// 다다익선상품 적용목록
+		mav.addObject("orgGoodsSumAmt"			, goodsDcAmtMap.get("orgGoodsSumAmt"));		// 상품금액합계
+		mav.addObject("cpn1DcSumAmt"			, goodsDcAmtMap.get("cpn1DcSumAmt"));		// 즉시할인금액합계
+		mav.addObject("tmtbDcSumAmt"			, goodsDcAmtMap.get("tmtbDcSumAmt"));		// 다다익선할인금액합계
+		
+		mav.addObject("prePntDcAmt"				, goodsDcAmtMap.get("prePntDcAmt"));		// 선포인트사용가능금액		
+		mav.addObject("savePntSumAmt"			, goodsDcAmtMap.get("savePntSumAmt"));		// 적립예정포인트합계
+		
+		mav.setViewName(super.getDeviceViewName("order/OrderForm"));
+		
+		return mav;
+	}
+	
+	/**
+	 * 고객정보조회
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@PostMapping("/custemerInfo")
+	public ModelAndView custemerInfo(@RequestBody Order order) {
+		
+		Order custemerInfo = new Order();
+		
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setJsessionId(TsfSession.getSessionId());
+		}
+		
+		// 2. 로그인체크 후 고객정보 설정
+		if (TsfSession.isLogin()) {
+			// 2.1 주문고객 정보조회
+			custemerInfo = coreOrderService.getCustemerInfo(order);
+		} else {
+			// 2.1 주문고객 정보조회
 			custemerInfo.setCustNm(order.getCustNm());
 			custemerInfo.setCellPhnno(order.getCellPhnno());
 			custemerInfo.setEmail(order.getEmail());
-			
-			// 1.2 배송지 정보조회 (기본배송지)
-			deliveryAddrInfo.setDelvAddrNm(order.getCustNm());
-			deliveryAddrInfo.setRecipZipcode(order.getRecipZipcode());
-			deliveryAddrInfo.setRecipBaseAddr(order.getRecipBaseAddr());
-			deliveryAddrInfo.setRecipDtlAddr(order.getRecipDtlAddr());
-			deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
+		}
+		
+		ModelAndView mav = new ModelAndView();
+		mav.addObject("custemerInfo"	, custemerInfo); 	// 고객정보
+		mav.addObject("order"			, order);			// 파라미터
+		mav.setViewName(super.getDeviceViewName("order/OrderCustemerInfo"));
+		
+		return mav;
+	}
+	
+	/**
+	 * 배송정보조회
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@PostMapping("/deliveryAddrInfo")
+	public ModelAndView deliveryAddrInfo(@RequestBody Order order) {
+
+		Order deliveryAddrInfo = new Order();
+		
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
 		} else {
-			// 1.1 주문고객 정보조회
-			custemerInfo = coreOrderService.getCustemerInfo(order);
-			
-			// 1.2 배송지 정보조회 (기본배송지)
+			order.setJsessionId(TsfSession.getSessionId());
+		}
+		
+		// 2. 로그인체크 후 고객정보 설정
+		if (TsfSession.isLogin()) {
+			// 2.1 주문고객 정보조회
 			deliveryAddrInfo = coreOrderService.getDeliveryAddrInfo(order);
 			
 			if (deliveryAddrInfo == null) {
 				deliveryAddrInfo = new Order();
-				deliveryAddrInfo.setDelvAddrNm(custemerInfo.getCustNm());
+				deliveryAddrInfo.setDelvAddrNm(deliveryAddrInfo.getCustNm());
 				deliveryAddrInfo.setRecipZipcode("");
 				deliveryAddrInfo.setRecipBaseAddr("");
 				deliveryAddrInfo.setRecipDtlAddr("");
 				deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
 			}
+		} else {
+			// 2.1 주문고객 정보조회			
+			deliveryAddrInfo.setDelvAddrNm(order.getCustNm());
+			deliveryAddrInfo.setRecipZipcode(order.getRecipZipcode());
+			deliveryAddrInfo.setRecipBaseAddr(order.getRecipBaseAddr());
+			deliveryAddrInfo.setRecipDtlAddr(order.getRecipDtlAddr());
+			deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
 		}
-
-		// TODO 임시 장바구니
-		// 2. 장바구니시퀀스 배열 등록 (장바구니 상품 정보 조회)		
-		// 2.1 배송단위별 상품 목록 조회 (장바구니)
-		Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
 		
-		// 2.1.0 상품금액, 선포인트, 다다익선할인금액
-		GagaMap goodsDcAmtMap = coreOrderService.getGoodsDcAmt(tmtbGoodsApplyList);
+		ModelAndView mav = new ModelAndView();
+		mav.addObject("deliveryAddrInfo", deliveryAddrInfo);						// 배송지정보
+		mav.addObject("order"			, order);									// 파라미터
+		mav.setViewName(super.getDeviceViewName("order/OrderDeliveryAddrInfo"));
 		
-		// 2.2 배송단위별 장바구니 상품 건수 조회 (장바구니상품)
-		GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList);
+		return mav;
+	}
+	
+	/**
+	 * 사은품정보조회
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@PostMapping("/freegiftInfo")
+	public ModelAndView freegiftInfo(@RequestBody Order order) {
 
-		// 3. 할인구간정보조회
-		// 3.2 상품쿠폰, 장바구니쿠폰 목록 조회
-		GagaMap goodsCartCpnMap = coreOrderService.getGoodsCartCpnApplyGoodsList(order);
+		GagaMap resultMap = new GagaMap();
 		
-		Collection<Order> goodsCpnList 	= (Collection<Order>) goodsCartCpnMap.get("goodsCpnList");
-		Collection<Order> cartCpnList 	= (Collection<Order>) goodsCartCpnMap.get("cartCpnList");
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setJsessionId(TsfSession.getSessionId());
+		}
 		
-		// 3.2.1 상품기준 ---> 상품쿠폰 적용된 상품 목록
-		Collection<Order> goodsApplyCpnList = coreOrderService.getGoodsCpnApplyList(tmtbGoodsApplyList, goodsCpnList);
+		// 2. 로그인체크 후 정보 설정
+		if (TsfSession.isLogin()) {
+			// 4. 사은품 정보 (장바구니상품 사음품 적용 정보 조회)
+			resultMap = coreFreegiftService.getOrderFreegift(order);
+		} 
 		
-		// 3.2.2 장바구니쿠폰기준 ---> 상품목록
-		cartCpnList = coreOrderService.getCartCpnApplyList(tmtbGoodsApplyList, cartCpnList);
+		ModelAndView mav = new ModelAndView();
+		mav.addObject("freegiftGoodsList"	, resultMap.get("freegiftGoodsList"));		// 사은품상품정보 목록
+		mav.addObject("freegiftList"		, resultMap.get("freegiftList"));			// 사은품정보 목록
+		mav.addObject("order"				, order);									// 파라미터
 		
-		// 3.3 배송비쿠폰목록 조회
-		Collection<Order> delvCpnList = coreOrderService.getDelvCpnList(order);
+		mav.setViewName(super.getDeviceViewName("order/OrderFreegiftInfo"));
 		
-		Collection<Order> delvFeeCdList = (Collection<Order>) delvOrderMap.get("delvFeeCdList");
+		return mav;
+	}
+	
+	/**
+	 * 할인정보조회
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@SuppressWarnings("unchecked")
+	@ResponseBody
+	@PostMapping("/dcAmtInfo")
+	public ModelAndView dcAmtInfo(@RequestBody Order order) {
+
+		GagaMap goodsDcAmtMap = new GagaMap();
 		
-		// 3.3.1 배소업체기준 ---> 배송비쿠폰
-		delvCpnList = coreOrderService.getDelvCpnApplyList(delvFeeCdList, delvCpnList);
+		Collection<Order> goodsApplyCpnList 	= new ArrayList<Order>();
+		Collection<Order> goodsCpnList			= new ArrayList<Order>();
+		Collection<Order> cartCpnList 			= new ArrayList<Order>();
+		Collection<Order> delvCpnList 			= new ArrayList<Order>();
+		Collection<Order> delvFeeCdList 		= new ArrayList<Order>();
 		
-		// 3.4 고객 보유 포인트 정보 조회
-		int rmPntAmt = coreOrderService.getCustPointInfo(order);
+		int rmPntAmt 	= 0;
+		int rmGfcdAmt 	= 0;
 		
-		// 3.5 고객 보유 상품권 정보 조회
-		int rmGfcdAmt = coreOrderService.getGiftcardInfo(order);
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setJsessionId(TsfSession.getSessionId());
+		}
 		
-		// 4. 사은품 정보
-		// 4.1 장바구니상품 사음품 적용 정보 조회
-		GagaMap  resultMap = coreFreegiftService.getOrderFreegift(order);
+		// 2. 로그인체크 후 정보 설정 (할인구간정보조회)
+		if (TsfSession.isLogin()) {
+			
+			// 2.1 배송단위별 상품 목록 조회 (장바구니)
+			Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
+			
+			// 2.2 상품금액, 선포인트, 다다익선할인금액
+			goodsDcAmtMap = coreOrderService.getGoodsDcAmt(tmtbGoodsApplyList);
+			
+			// 2.3 배송단위별 장바구니 상품 건수 조회 (장바구니상품)
+			GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList);
+			
+			// 2.4 상품쿠폰, 장바구니쿠폰 목록 조회
+			GagaMap goodsCartCpnMap = coreOrderService.getGoodsCartCpnApplyGoodsList(order);
+			
+			goodsCpnList 	= (Collection<Order>) goodsCartCpnMap.get("goodsCpnList");
+			cartCpnList 	= (Collection<Order>) goodsCartCpnMap.get("cartCpnList");
+			
+			// 2.5 상품쿠폰 적용된 상품 목록(상품기준)
+			goodsApplyCpnList = coreOrderService.getGoodsCpnApplyList(tmtbGoodsApplyList, goodsCpnList);
+			
+			// 2.6 장바구니쿠폰(장바구니기준 상품목록)
+			cartCpnList = coreOrderService.getCartCpnApplyList(tmtbGoodsApplyList, cartCpnList);
+			
+			// 2.7 배송비쿠폰목록 조회
+			delvCpnList = coreOrderService.getDelvCpnList(order);
+			
+			delvFeeCdList = (Collection<Order>) delvOrderMap.get("delvFeeCdList");
+			
+			// 2.8 배송비쿠폰(배송업체기준)
+			delvCpnList = coreOrderService.getDelvCpnApplyList(delvFeeCdList, delvCpnList);
+			
+			// 2.9 고객 보유 포인트 정보 조회
+			rmPntAmt = coreOrderService.getCustPointInfo(order);
+			
+			// 2.10 고객 보유 상품권 정보 조회
+			rmGfcdAmt = coreOrderService.getGiftcardInfo(order);
+		} 
 
-		// 101. 상품정보
-		mav.addObject("cartGoodsList"					, tmtbGoodsApplyList);						// 장바구니상품목록 (즉시할인쿠폰적용)
-		mav.addObject("delvTotCnt" 						, delvOrderMap.get("delvTotCnt"));			// 총상품건수
-		mav.addObject("delvFeeTotCnt"					, delvOrderMap.get("delvFeeTotCnt"));		// 총배송타입건수
-		mav.addObject("wmsCnt" 							, delvOrderMap.get("wmsCnt"));				// 자사상품건수
-		mav.addObject("resCnt" 							, delvOrderMap.get("resCnt"));				// 자사예약상품건수
-		mav.addObject("delvCnt" 						, delvOrderMap.get("delvCnt"));				// 입점업체상품건수
-		
-		mav.addObject("shotCartList" 					, delvOrderMap.get("shotCartList"));		// 자사총알배송상품목록
-		mav.addObject("wmsCartList" 					, delvOrderMap.get("wmsCartList"));			// 자사일반배송상품목록
-		mav.addObject("delvCartList" 					, delvOrderMap.get("delvCartList"));		// 입점업체상품목록
-		mav.addObject("resCartList" 					, delvOrderMap.get("resCartList"));			// 자사예약배송상품목록
-		mav.addObject("delvAllCartList" 				, delvOrderMap.get("delvAllCartList"));		// 전체배송목록
-		mav.addObject("sumDelvFee" 						, delvOrderMap.get("sumDelvFee"));			// 배송비합계
-		
-		// 102. 고객정보
-		mav.addObject("custemerInfo"					, custemerInfo);							// 고객정보
-		mav.addObject("deliveryAddrInfo"				, deliveryAddrInfo);						// 배송지정보
-		mav.addObject("shotDelvYn" 						, order.getShotDelvYn());					// 장바구니 총알배송여부
-		
-		// 103. 할인정보
-		mav.addObject("tmtbGoodsApplyList"				, tmtbGoodsApplyList);						// 다다익선상품 적용목록
-		mav.addObject("goodsApplyCpnList"				, goodsApplyCpnList);						// 상품적용쿠폰
-		mav.addObject("cartCpnList"						, cartCpnList);								// 장바구니쿠폰목록
-		mav.addObject("delvCpnList"						, delvCpnList);								// 배송비쿠폰목록
-		
-		mav.addObject("orgGoodsSumAmt"					, goodsDcAmtMap.get("orgGoodsSumAmt"));		// 상품금액합계
-		mav.addObject("cpn1DcSumAmt"					, goodsDcAmtMap.get("cpn1DcSumAmt"));		// 즉시할인금액합계
-		mav.addObject("tmtbDcSumAmt"					, goodsDcAmtMap.get("tmtbDcSumAmt"));		// 다다익선할인금액합계
-		mav.addObject("prePntDcAmt"						, goodsDcAmtMap.get("prePntDcAmt"));		// 선포인트사용가능금액
+		ModelAndView mav = new ModelAndView();
+		mav.addObject("goodsApplyCpnList"		, goodsApplyCpnList);						// 상품적용쿠폰
+		mav.addObject("cartCpnList"				, cartCpnList);								// 장바구니쿠폰목록
+		mav.addObject("delvCpnList"				, delvCpnList);								// 배송비쿠폰목록
 
-		mav.addObject("rmPntAmt"						, rmPntAmt);								// 고객포인트정보
-		mav.addObject("rmGfcdAmt"						, rmGfcdAmt);								// 고객상품권정보
-		mav.addObject("savePntSumAmt"					, goodsDcAmtMap.get("savePntSumAmt"));		// 적립예정포인트합계
+		mav.addObject("orgGoodsSumAmt"			, goodsDcAmtMap.get("orgGoodsSumAmt"));		// 상품금액합계
+		mav.addObject("cpn1DcSumAmt"			, goodsDcAmtMap.get("cpn1DcSumAmt"));		// 즉시할인금액합계
+		mav.addObject("tmtbDcSumAmt"			, goodsDcAmtMap.get("tmtbDcSumAmt"));		// 다다익선할인금액합계
+		mav.addObject("prePntDcAmt"				, goodsDcAmtMap.get("prePntDcAmt"));		// 선포인트사용가능금액
+
+		mav.addObject("rmPntAmt"				, rmPntAmt);								// 고객포인트정보
+		mav.addObject("rmGfcdAmt"				, rmGfcdAmt);								// 고객상품권정보
+		mav.addObject("savePntSumAmt"			, goodsDcAmtMap.get("savePntSumAmt"));		// 적립예정포인트합계
+		mav.addObject("order"					, order);									// 파라미터
 		
-		// 104. 사은품정보
-		mav.addObject("freegiftGoodsList"				, resultMap.get("freegiftGoodsList"));		// 사은품상품정보 목록
-		mav.addObject("freegiftList"					, resultMap.get("freegiftList"));			// 사은품정보 목록
+		mav.setViewName(super.getDeviceViewName("order/OrderDcAmtInfo"));
 		
-		mav.setViewName(super.getDeviceViewName("order/OrderForm"));
+		return mav;
+	}
+	
+	/**
+	 * 할인정보조회
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@PostMapping("/paymentInfo")
+	public ModelAndView paymentInfo(@RequestBody Order order) {
+		
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setJsessionId(TsfSession.getSessionId());
+		}
+		
+		// 2. 로그인체크 후 정보 설정
+		if (TsfSession.isLogin()) {
+			
+		} 
+
+		ModelAndView mav = new ModelAndView();
+		mav.addObject("order" , order);	// 파라미터
+		mav.setViewName(super.getDeviceViewName("order/OrderPaymentInfo"));
 		
 		return mav;
 	}

+ 4 - 0
src/main/webapp/WEB-INF/views/web/order/OrderCustemerInfoWeb.html

@@ -29,6 +29,10 @@
 </div>
 
 <div class="fold_cont" style="display: none;">
+	<input type="hidden" name="custNm" 		th:value="${custNm}"/>
+	<input type="hidden" name="email" 		th:value="${email}"/>
+	<input type="hidden" name="cellPhnno" 	th:value="${cellPhnno}"/>
+	
 	<div class="area_mbinfo">
 		<dl>
 			<div>

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

@@ -213,7 +213,7 @@
 										<input type="text" name="pntDcAmtStr" class="form_control" maxlength="" placeholder="사용할 포인트를 입력해주세요.">
 										<button type="button" class="btn btn_dark" id="btn_point_apply">적용</button>
 									</div>
-									<p><span class="remain_point" th:text="|보유 : ${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')} P|"></span>(결제금액의 최대 40%까지 사용가능)</p>
+									<p><span class="remain_point rmPntAmt" th:text="|보유 : ${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')} P|"></span>(결제금액의 최대 40%까지 사용가능)</p>
 								</th:block>
 								<!-- 스타일 포인트 3만원 이상 결제시 노출 -->
 								

+ 7 - 0
src/main/webapp/WEB-INF/views/web/order/OrderDeliveryAddrInfoWeb.html

@@ -28,6 +28,11 @@
 
 <div class="fold_cont" style="display: none;">
 	<div class="area_mbinfo">
+		<input type="hidden" name="recipZipcode" 	th:value="${deliveryAddrInfo.recipZipcode}"/>
+		<input type="hidden" name="recipBaseAddr" 	th:value="${deliveryAddrInfo.recipBaseAddr}"/>
+		<input type="hidden" name="recipDtlAddr" 	th:value="${deliveryAddrInfo.recipDtlAddr}"/>
+		<input type="hidden" name="delvMemo" 		th:value="${deliveryAddrInfo.delvMemo}"/>
+		
 		<dl>
 			<div>
 				<dt><span class="sr-only">배송지명</span></dt>
@@ -73,6 +78,8 @@
 	<div class="area_overseas">
 		<dl>
 			<div>
+				<input type="hidden" name="entryNo" value=""/>
+				
 				<dt>개인통관고유부호</dt>
 				<dd>
 					<div class="form_field">

+ 386 - 189
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -100,51 +100,118 @@
 
 <!--  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}">
-				<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}"/>
+	<br>
+	<!-- 주문상세금액 -->
+	<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: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=""/>
 			</th:block>
 		</th:block>
-	</th:block>
+	</table>
+	
+	<br>
 	
-	<input type="hidden" name="goodsSumAmt" 		th:value="${orgGoodsSumAmt}"/>
-	<input type="hidden" name="delvSumAmt" 			th:value="${sumDelvFee}"/>
-	<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>orgGoodsSumAmt</th>
+			<th>delvSumAmt</th>
+			<th>freegiftUsePnt</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="freegiftUsePnt">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">
@@ -214,7 +281,6 @@
 							</div>
 						</div>
 						
-						
 						<div class="od_side">
 							<div class="area_order">
 								<div class="tit_box">
@@ -283,7 +349,7 @@
 									<dl>
 										<div>
 											<dt>상품금액</dt>
-											<dd id="goodsSumAmt" th:text="|${#numbers.formatInteger(orgGoodsSumAmt, 1, 'COMMA')}원|"></dd>
+											<dd id="orgGoodsSumAmt" th:text="|${#numbers.formatInteger(orgGoodsSumAmt, 1, 'COMMA')}원|"></dd>
 										</div>
 										<div>
 											<dt>배송비</dt>
@@ -414,9 +480,48 @@ $(document).ready( function() {
 		, "dispYn"			: "N"
 	}
 	
-	// 1.1 고객정보로드
+	
 	var jsonData = JSON.stringify(jsonObj);
+	
+	// 1.1 고객정보로드
+	custemerInfoSet(jsonData);
+	
+	// 2. 각각의 기능 구현
+	// 2.1 총알배송가능 지역, 총알배송 가능 시간 체크
+	fnGetDailyDeliveryCheck();
+});
+
+// 3. 함수기능 정의
+// 3.1 프로모션 쿠폰 적용 함수
+function serialCpnApply() {
+	let data = {
+		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);
+
+			// 성공일때는 쿠폰정보 및 포인트 정보 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',
@@ -433,10 +538,14 @@ $(document).ready( function() {
 				$("#custemerInfo").css("display", "block");
 				$("#custemerInfo").html(result);
 			}
+			// 1.2 배송정보로드
+			deliveryAddrInfoSet(jsonData);
 		}
 	});
+}
 
-	// 1.2 배송정보로드
+// 1.2 배송정보로드
+var deliveryAddrInfoSet = function(jsonData) {
 	$.ajax( {
 		type		: "POST",
 		url 		: '/order/deliveryAddrInfo',
@@ -453,12 +562,15 @@ $(document).ready( function() {
 				$("#deliveryAddrInfo").css("display", "block");
 				$("#deliveryAddrInfo").html(result);
 			}
+			// 1.2 배송정보로드
+			freegiftInfoSet(jsonData);
 		}
 	});
-	
-	alert("a");
+}
 
-	// 1.3 사은품정보로드
+// 1.3 사은품정보로드
+var freegiftInfoSet = function(jsonData) {
+	
 	$.ajax( {
 		type		: "POST",
 		url 		: '/order/freegiftInfo',
@@ -471,18 +583,42 @@ $(document).ready( function() {
 			gagajf.showProgressbar(true);
 		},
 		success 	: function(result) {
-			alert(result);
 			if (result != null) {
-				$("#freegiftInfo").css("display", "block");
 				$("#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());			// 사은품총사용포인트
+					$(".freegiftUsePnt").text(total_deduct);
+					
+					// 쿠폰초기화기능
+					custCpnInit();
+				});
 			}
+			
+			// 1.5 결제타입로드
+			paymentInfoSet(jsonData);
 		}
 	});
-	
-	// 1.4 할인정보로드
-	dcAmtInfoSet(jsonData);
-	
-	// 1.5 결제타입로드
+}
+
+// 1.5 결제타입로드
+var paymentInfoSet = function(jsonData) {
 	$.ajax( {
 		type		: "POST",
 		url 		: '/order/paymentInfo',
@@ -498,64 +634,9 @@ $(document).ready( function() {
 			if (result != null) {
 				$("#paymentInfo").css("display", "block");
 				$("#paymentInfo").html(result);
-			}
-		}
-	});
-	
-	// 2. 각각의 기능 구현
-	// 2.1 총알배송가능 지역, 총알배송 가능 시간 체크
-	fnGetDailyDeliveryCheck();
-	
-	// 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);		// 사은품총사용포인트
-		
-		// 쿠폰초기화기능
-		custCpnInit();
-	});
-});
-
-// 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") {
+				
+				// 3.2 할인영역 설정
 				dcAmtInfoSet(jsonData);
-			} else {
-				alert(result.serialCpnInfo.result);
 			}
 		}
 	});
@@ -648,12 +729,12 @@ var dcAmtInfoSet = function(jsonData) {
 					
 					// 버튼기능 구현
 					$(this).on("click", function(){
-						var rmPrePntAmt = parseInt($("input[name='rmPrePntAmt']").val());
+						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원");
 						}
 						
@@ -664,10 +745,13 @@ var dcAmtInfoSet = function(jsonData) {
 				
 				// 3.2.6 포인트 적용버튼 기능
 				$("#btn_point_apply").on("click", function(){
-					var rmPntAmt 		= parseInt($("input[name='rmPntAmt']").val());
-					var pntDcAmt 		= parseInt($("input[name='pntDcAmtStr']").val());
-					var realOrdAmt 		= parseInt($("input[name='realOrdAmt']").val());
-					var applyPntDcAmt 	= (realOrdAmt * 40) / 100;
+					var rmPntAmt 			= parseInt($("input[name='rmPntAmt']").val());
+					var freegiftUsePnt 		= parseInt($(".freegiftUsePnt").text());
+					var pntDcAmt 			= parseInt($("input[name='pntDcAmtStr']").val());
+					var realOrdAmt 			= parseInt($(".realOrdSumAmt").text());
+					var applyPntDcAmt 		= (realOrdAmt * 40) / 100;
+					
+					rmPntAmt				= rmPntAmt - freegiftUsePnt;
 					
 					// 입력여부체크
 					if (pntDcAmt < 1) {
@@ -702,7 +786,7 @@ var dcAmtInfoSet = function(jsonData) {
 					}
 					
 					// 포인트 적용
-					$("input[name='pntDcAmt']").val(pntDcAmt);
+					$(".pntDcSumAmt").text(pntDcAmt);
 					$("#pntDcAmt").text("-"+pntDcAmt.addComma()+"원");
 					
 					// 상품권리렛기능
@@ -739,7 +823,7 @@ var dcAmtInfoSet = function(jsonData) {
 					}
 					
 					// 상품권 적용
-					$("input[name='gfcdUseAmt']").val(gfcdUseAmt);
+					$(".gfcdUseSumAmt").text(gfcdUseAmt);
 					$("#gfcdUseAmt").text("-"+gfcdUseAmt.addComma()+"원");
 					
 					// 금액전체계산
@@ -759,10 +843,10 @@ var custCpnInit = function() {
 		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");		// 상품쿠폰할인금액
 			}
 		});
 		
@@ -838,11 +922,11 @@ var custCpnApply = function(obj) {
 		
 		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"));			// 상품쿠폰할인금액
 			}
 		});
 		
@@ -854,9 +938,9 @@ var custCpnApply = function(obj) {
 		var dcVal 				= obj.parent().find("input[name='dcVal']").val();
 		var cartCpnDcSumAmt		= 0;
 		var tempSumAmt			= 0;
-		var applyGoodsCnt		= 0;
+		var cartSqLen			= $(".cartSq").length;
 		var leftAmt				= 0;
-		var index				= 0;
+		var index				= 1;
 		
 		// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
 		obj.find("input[name='cartCpnCartSq']").each(function(){
@@ -864,14 +948,14 @@ var custCpnApply = function(obj) {
 			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());
+			$(".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 		= currPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
+					var tempAmt 		= orgCurrPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
 					tempSumAmt			= tempSumAmt + tempAmt; 
 					
 					// 할인율일때 할인금액 
@@ -879,11 +963,9 @@ var custCpnApply = function(obj) {
 						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);
+						$(this).parent().find(".cartCpnSq").val(obj.prop("value"));
+						$(this).parent().find(".cartCpnDcAmt").val(cartCpnDcAmt);
 					}
-					
-					applyGoodsCnt++;
 				}
 			});
 		});
@@ -892,7 +974,7 @@ var custCpnApply = function(obj) {
 		if (dcWay == "G240_10") {
 			cartCpnDcSumAmt = dcVal;
 			leftAmt			= dcVal;
-			index			= 0;
+			index = 1;
 			
 			// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
 			obj.find("input[name='cartCpnCartSq']").each(function(){
@@ -900,28 +982,28 @@ var custCpnApply = function(obj) {
 				var cartCpnDcAmt		= 0;
 									
 				// 장바구니시퀀스 체크
-				$("input[name='cartSq']").each(function(){
-					if (cartCpnCartSq == $(this).val()) {
-						index++;
+				$(".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 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 tempAmt 		= orgCurrPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
 						var tempDiv 		= parseInt((tempAmt / tempSumAmt) * 100);
 						var cartCpnDcAmt	= 0;
 				
-						if (index == applyGoodsCnt) {
+						if (index == cartSqLen) {
 							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);
+						$(this).parent().find(".cartCpnSq").text(obj.prop("value"));
+						$(this).parent().find(".cartCpnDcAmt").text(cartCpnDcAmt);
+						
+						index++;
 					}
 				});
 			});
@@ -942,6 +1024,8 @@ var custCpnApply = function(obj) {
 		
 		obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
 		obj.parent().parent().find("input[name='delvFeeCd']").val(obj.attr("delvfeecd"));
+		
+		$(".delvCpnDcSumAmt").text(obj.attr("data"));
 	}
 	
 	// select box 쿠폰 적용 (공통적용)
@@ -988,27 +1072,29 @@ var cpnApplyDel = function(obj) {
 		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");		// 상품쿠폰할인금액
+		$(".cartSq").each(function(){
+			if (cpnCartSq == $(this).text()) {
+				$(this).parent().find(".goodsCpnSq").text("0");			// 상품쿠폰시퀀스
+				$(this).parent().find(".goodsCpnDcAmt").text("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");
+		$(".cartSq").each(function(){
+			$(this).parent().find(".cartCpnSq").text("0");
+			$(this).parent().find(".cartCpnDcAmt").text("0");
 		});
 	}
 	// 배송비쿠폰적용
 	else if (cpnType == "delvCpn") {
 		// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
-		$("input[name='cartSq']").each(function(){
-			$(this).parent().find("input[name='delvFeeCd']").val("0");
-		});
+		//$("input[name='custCpnSq']").each(function(){
+			//$(this).parent().find("input[name='delvFeeCd']").val("0");
+		//});
+		
+		obj.parent().parent().find("input[name='delvFeeCd']").val("0");
 	}
 	
 	obj.parent().parent().find("input[name='custCpnSq']").val("0");
@@ -1031,13 +1117,14 @@ 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()+"원");
 	
 	// 포인트기능 리렛
@@ -1046,7 +1133,7 @@ var prePntDcAmtReset = function() {
 
 // 3.10 포인트리셋기능
 var pntDcAmtReset = function() {
-	$("input[name='pntDcAmt']").val("0");
+	$(".pntDcSumAmt").text("0");
 	$("input[name='pntDcAmtStr']").val("");
 	$("#pntDcAmt").text("0원");
 	
@@ -1056,7 +1143,7 @@ var pntDcAmtReset = function() {
 
 // 3.11 상품권리셋기능
 var gfcdUseAmtReset = function() {
-	$("input[name='gfcdUseAmt']").val("0");
+	$(".gfcdUseSumAmt").text("0");
 	$("input[name='gfcdUseAmtStr']").val("");
 	$("#gfcdUseAmt").text("0원");
 	
@@ -1084,38 +1171,139 @@ var custCpnSumAmtCal = function() {
 	
 	// 상품목록영역
 	$("#couponDcSumAmt").text("-" + cpnDcSumAmt.addComma() + "원"); // 쿠폰할인금액합계
-	$("input[name='couponDcSumAmt']").val(cpnDcSumAmt);
+	$(".cpnDcSumAmt").text(cpnDcSumAmt);
 	
 	// 배송비할인적용
 	$("input[name='cpnType']").each(function(){
 		if ($(this).val() == "delvCpn") {
-			sumDelvFee = parseInt(orgSumDelvFee) - parseInt($(this).parent().find("input[name='cpnDcAmt']").val());
+			var delvSumAmt = parseInt(orgSumDelvFee) - parseInt($(this).parent().find("input[name='cpnDcAmt']").val());
 			
 			// 최종배송비
-			$("#delvSumAmt").text(sumDelvFee.addComma() + "원");
-			$("input[name='delvSumAmt']").val(sumDelvFee);
+			$("#delvSumAmt").text(delvSumAmt.addComma() + "원");
+			$(".delvSumAmt").text(delvSumAmt);
 		}
 	});
 	
-	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());
+	// 2021.03.06 주문상세 테이블 적용
+	// 포인트금액 상품상세에 포인트금액 분배 작업
+	var prePntDcAmtYn 		= $("input[name='rdi-beforpoint']:checked").val();
+	var leftPntAmt			= parseInt($(".pntDcSumAmt").text());
+	var leftGfcdAmt			= parseInt($(".gfcdUseSumAmt").text());
+	var cartSqLenght		= $(".cartSq").length; 
+	var index				= 1;
 	
-	// 실결제금액(PG)
-	var realOrdAmt			= (goodsSumAmt + delvSumAmt) - (cpn1DcSumAmt + tmtbDcSumAmt + couponDcSumAmt + prePntDcAmt) - (pntDcAmt + gfcdUseAmt);
-	$("#realOrdAmt").text(realOrdAmt.addComma());
-	$("input[name='realOrdAmt']").val(realOrdAmt);
+	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 pntDcSumAmt 		= parseInt($(".pntDcSumAmt").text());
+	var gfcdUseSumAmt 		= parseInt($(".gfcdUseSumAmt").text());
+	var realOrdSumAmt		= 0;
+	var savePntSumAmt		= 0;
 	
-	// 적립예정포인트
-	var savePntSumAmt		= parseInt($("input[name='savePntSumAmt']").val());
-	var tempSavePnt			= savePntSumAmt - prePntDcAmt;
+	$(".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;
+		var savePntAmt1		= parseInt($(this).parent().find(".savePntAmt1").text());
+		
+		// 주문금액 = ((판매가 - 즉시할인가) + 옵션추가금액) * 장바구니수량
+		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);
+		
+		savePntSumAmt		= savePntSumAmt + savePntAmt1;
+	});
+	
+	// 포인트, 상품권 금액 분배
+	$(".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((pntDcSumAmt * tempDiv) / 100);
+			gfcdUseAmt1		= parseInt((gfcdUseSumAmt * tempDiv) / 100);
+			leftPntAmt		= leftPntAmt - pntDcAmt1;
+			leftGfcdAmt		= leftGfcdAmt - gfcdUseAmt1;
+		}
 		
-	$("#savePntSumAmt").text(tempSavePnt.addComma()+"P");
+		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);
+	$(".realOrdSumAmt").text(realOrdSumAmt);
+	$(".savePntSumAmt").text(savePntSumAmt);
+	
+	var tempSavePnt			= savePntSumAmt - prePntDcAmt;
+	
+	// 사은품사용 후 보유포인트	
+	var rmPntAmt 			= parseInt($("input[name='rmPntAmt']").val());
+	var freegiftUsePnt 		= parseInt($(".freegiftUsePnt").text());
+	rmPntAmt 				= rmPntAmt - freegiftUsePnt; 
+	$(".rmPntAmt").text("보유 : " + rmPntAmt.addComma() + "P");
+	
+	// 걸제영역
+	$("#btn_payment").text("동의 후 "+realOrdSumAmt.addComma()+"원 결제하기");
+	
+	// 적립포인트
+	$("#savePntSumAmt").text(savePntSumAmt.addComma()+"P");
 };
 
 // 3.20 총알배송가능 지역, 총알배송 가능 시간 체크
@@ -1151,6 +1339,15 @@ var fnGetDailyDeliveryCheck = function () {
 }
 </script>
 
+
+
+
+
+
+
+
+
+
 <script th:inline="javascript">
 // 화면준비상태
 $(document).ready( function() {

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

@@ -0,0 +1,1695 @@
+<!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>

+ 21 - 5
src/main/webapp/WEB-INF/views/web/order/OrderFreegiftInfoWeb.html

@@ -13,11 +13,8 @@
  * 1.0  2021.02.01   jsh77b     최초 작성
  *******************************************************************************
  -->
- 
- asdfasdfasdf <th:block th:text="#lists.size(freegiftList)"></th:block>
- 
-<th:block th:if="${freegiftList != null && #lists.size(freegiftList) > 0}">
 
+<th:block th:if="${freegiftList != null && #lists.size(freegiftList) > 0}">
 <div class="fold_head">
 	<a href="javascript:void(0)">
 		<div>
@@ -84,6 +81,25 @@
 //할인관련정보 변수선언
 var freegiftList		= [[${freegiftList}]];			// 사은품 프로모션 목록
 var freegiftGoodsList	= [[${freegiftGoodsList}]];		// 사은품 프로모션 상품 목록
-</script>
 
+//컨텐츠 호출
+$(document).ready( function() {
+	// 사은품 화면 노출여부 체크
+	if (freegiftList.length == null || freegiftList.length < 1) {
+		$("#freegiftInfo").css("display", "none");
+	} else {
+		$("#freegiftInfo").css("display", "block");
+	}
+});
+</script>
 </th:block>
+
+
+
+
+
+
+
+
+
+

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

@@ -260,7 +260,7 @@
 	</div>
 	<div class="area_paybtn">
 		<div class="form_field">
-			<button type="button" class="btn btn_primary btn_block">동의 후 123,456,789원 결제하기</button>
+			<button type="button" class="btn btn_primary btn_block" id="btn_payment">동의 후 123,456,789원 결제하기</button>
 		</div>
 	</div>
 </div>