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

Merge branch 'card007' into order

card007 5 лет назад
Родитель
Сommit
425c8f7fa2

+ 27 - 5
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -65,22 +65,43 @@ public class TsfOrderService {
 	 * @since 2021. 02. 04
 	 */
 	public Collection<GagaMap> getOrderListForMypage(Order order) {
-		int ordNo = 0;
-		int index = 0;
 		Collection<GagaMap> orderList = new ArrayList<>();
 		Collection<Order> ordDtlList = new ArrayList<>();
 		String allCanYn = "Y";
+		int ordNo = 0;
+		int index = 0;
+		int ordReqChgQty = 0;
 
 		for (Order tmpOrder : orderDao.getOrderListForMypage(order)) {
+			// 세트상품 옵션별 배열로 담기
+			if (tmpOrder.getItemNm().contains("!@!")) {
+				tmpOrder.setItemNmArr(tmpOrder.getItemNm().split("!@!"));
+				tmpOrder.setColorNmArr(tmpOrder.getColorNm().split(","));
+				tmpOrder.setOptCd1Arr(tmpOrder.getOptCd1().split(","));
+				tmpOrder.setOptCd2Arr(tmpOrder.getOptCd2().split(","));
+			} else {
+				String[] arr = {tmpOrder.getItemNm()}, arr2 = {tmpOrder.getColorNm()}, arr3 = {tmpOrder.getOptCd1()}, arr4 = {tmpOrder.getOptCd2()};
+				tmpOrder.setItemNmArr(arr);
+				tmpOrder.setColorNmArr(arr2);
+				tmpOrder.setOptCd1Arr(arr3);
+				tmpOrder.setOptCd2Arr(arr4);
+			}
+
+			// 주문 목록 데이터 설정
 			if (index > 0 && ordNo != tmpOrder.getOrdNo()) {
-				orderList.add(setOrderMap(ordDtlList, allCanYn));
+				orderList.add(setOrderMap(ordDtlList, allCanYn, ordReqChgQty));
 
 				ordDtlList = new ArrayList<>();
 				ordDtlList.add(tmpOrder);
+				allCanYn = "Y";
+				ordReqChgQty = 0;
 			} else {
 				ordDtlList.add(tmpOrder);
 			}
 
+			// 전체취소 가능 여부 설정
+			ordReqChgQty += tmpOrder.getOrdReqChgQty();
+
 			if ("Y".equals(allCanYn)
 				&& !tmpOrder.getOrdDtlStat().equals(TscConstants.OrderDetailStat.DEPOSIT_WAIT.value())
 				&& !tmpOrder.getOrdDtlStat().equals(TscConstants.OrderDetailStat.PAYMENT_COMPLETE.value())
@@ -93,13 +114,13 @@ public class TsfOrderService {
 		}
 
 		if (ordDtlList.size() > 0) {
-			orderList.add(setOrderMap(ordDtlList, allCanYn));
+			orderList.add(setOrderMap(ordDtlList, allCanYn, ordReqChgQty));
 		}
 		
 		return orderList;
 	}
 	
-	private GagaMap setOrderMap(Collection<Order> ordDtlList, String allCanYn) {
+	private GagaMap setOrderMap(Collection<Order> ordDtlList, String allCanYn, int ordReqChgQty) {
 		Order order = ordDtlList.iterator().next();
 
 		GagaMap map = new GagaMap();
@@ -108,6 +129,7 @@ public class TsfOrderService {
 		map.set("ordDt", order.getOrdDt());
 		map.set("freeGiftList", orderDao.getOrderFreeGiftListForMypage(order));
 		map.set("allCanYn", allCanYn);
+		map.set("ordReqChgQty", ordReqChgQty);
 		map.set("oneData", order);
 		map.set("ordDtlList", ordDtlList);
 

+ 157 - 87
src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml

@@ -18,81 +18,145 @@
 	<!-- 마이페이지 주문 목록 조회 -->
 	<select id="getOrderListForMypage" parameterType="Order" resultType="Order">
 		/* TsfOrder.getOrderListForMypage */
-		SELECT O.ORD_NO
-		     , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
-		     , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(O.ORD_DT + INTERVAL 3 DAY, '%Y.%m.%d')
-				END															AS GIFT_LIMIT_DT
-		     , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN TIMESTAMPDIFF(DAY, NOW(), O.ORD_DT + INTERVAL 3 DAY)
-				END															AS GIFT_LIMIT_DAY
-		     , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(DA.UPD_DT, '%Y.%m.%d')
-				END															AS GIFT_COMPLETE_DT
-		     , DATE_FORMAT(OD.DELV_EDDT, '%m/%d')							AS DELV_EDDT
-		     , OD.ORD_DTL_NO
-		     , OD.ORD_EXCH_GB
-		     , OD.GOODS_CD
-		     , G.GOODS_NM
-		     , G.LIST_PRICE
-		     , ODI.OPT_CD
-		     , ODI.OPT_CD1
-		     , ODI.OPT_CD2
-		     , GI.SYS_IMG_NM
-		     , OD.ORD_DTL_STAT
-		     , OD.ORD_QTY
-		     , OD.CNCL_RTN_QTY
-		     , OD.ORD_AMT
-		     , OD.REAL_ORD_AMT
-		     , OD.SAVE_PNT_AMT
-		     , OD.CNCL_RTN_AMT
-		     , OD.SHIP_COMP_CD
-		     , OD.GIFT_PACK_YN
-		     , (SELECT SHIP_COMP_NM
-				  FROM TB_SHIP_COMPANY Z
-				 WHERE Z.SHIP_COMP_CD = OD.SHIP_COMP_CD)					AS SHIP_COMP_NM
-		     , OD.INVOICE_NO
-		     , OD.SUPPLY_COMP_CD
-		     , OD.DELV_FEE_CD
-		     , OD.SHOT_DELV_YN
-		     , OD.CHANGEABLE_YN
-		     , OD.RETURNABLE_YN
-		     , G.SELF_GOODS_YN
-		     , CONCAT(B.BRAND_ENM, ' ', B.BRAND_KNM)						AS BRAND_NM
-		     , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT)						AS ORD_DTL_STAT_NM
-		     , R.REVIEW_SQ
-		     , IF(NOW() <![CDATA[<]]> O.ORD_DT + INTERVAL 90 DAY, 'Y', 'N')	AS REVIEWABLE_YN
-		     , TIMESTAMPDIFF(DAY, NOW(), OD.DELV_EDDT + INTERVAL 2 WEEK)	AS PURCHASE_CONFIRM_DAY
-		     , DA.RECIP_NM
-		     , DA.RECIP_TELNO
-		     , DA.RECIP_PHNNO
-		     , DA.RECIP_ZIPCODE
-		     , DA.RECIP_BASE_ADDR
-		     , DA.RECIP_DTL_ADDR
-		     , DATE_FORMAT(GRS.DELV_RES_DT, '%Y.%m.%d')						AS DELV_RES_DT
-		  FROM TB_ORDER O
-		 INNER JOIN TB_ORDER_DETAIL OD
-		    ON O.ORD_NO = OD.ORD_NO
-		   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
-		 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
-		    ON OD.ORD_NO = ODI.ORD_NO
-		   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		   AND ODI.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
-		 INNER JOIN TB_GOODS G
-		    ON OD.GOODS_CD = G.GOODS_CD
-		 INNER JOIN TB_BRAND B
-		    ON B.BRAND_CD = G.BRAND_CD
-		  LEFT OUTER JOIN TB_REVIEW R
-		    ON R.ORD_NO = OD.ORD_NO
-		   AND R.ORD_DTL_NO = OD.ORD_DTL_NO
-		  LEFT OUTER JOIN TB_DELIVERY_ADDR DA
-		    ON DA.DELV_ADDR_SQ = OD.DELV_ADDR_SQ
-		  LEFT OUTER JOIN TB_GOODS_IMG GI
-		    ON OD.GOODS_CD = GI.GOODS_CD
-		   AND ODI.OPT_CD1 = GI.COLOR_CD
-		   AND GI.DEFAULT_IMG_YN = 'Y'
-		  LEFT OUTER JOIN TB_GOODS_RES_SELL GRS
-		    ON GRS.GOODS_CD = OD.GOODS_CD
+		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!') AS ITEM_NM
+		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
+		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1
+		     , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD2
+		     , Z.ORD_NO
+		     , Z.ORD_DT
+		     , Z.GIFT_LIMIT_DT
+		     , Z.GIFT_LIMIT_DAY
+		     , Z.GIFT_COMPLETE_DT
+		     , Z.GIFT_ADDR_INP_YN
+		     , Z.DELV_EDDT
+		     , Z.ORD_DTL_NO
+		     , Z.ORD_EXCH_GB
+		     , Z.GOODS_CD
+		     , Z.GOODS_NM
+		     , Z.LIST_PRICE
+		     , Z.GOODS_TYPE
+		     , Z.SYS_IMG_NM
+		     , Z.ORD_DTL_STAT
+		     , Z.ORD_QTY
+		     , Z.CNCL_RTN_QTY
+		     , Z.ORD_AMT
+		     , Z.REAL_ORD_AMT
+		     , Z.SAVE_PNT_AMT
+		     , Z.CNCL_RTN_AMT
+		     , Z.PNT_DC_AMT
+		     , Z.GFCD_USE_AMT
+		     , Z.SHIP_COMP_CD
+		     , Z.GIFT_PACK_YN
+		     , Z.SHIP_COMP_NM
+		     , Z.INVOICE_NO
+		     , Z.SUPPLY_COMP_CD
+		     , Z.DELV_FEE_CD
+		     , Z.SHOT_DELV_YN
+		     , Z.CHANGEABLE_YN
+		     , Z.RETURNABLE_YN
+		     , Z.SELF_GOODS_YN
+		     , Z.BRAND_NM
+		     , Z.ORD_DTL_STAT_NM
+		     , Z.REVIEW_SQ
+		     , Z.REVIEWABLE_YN
+		     , Z.PURCHASE_CONFIRM_DAY
+		     , Z.DELV_RES_DT
+		     , Z.ORD_REQ_CHG_QTY
+		     , Z.BANK_CD
+		     , Z.ACCOUNT_NO
+		     , Z.ACCOUNT_NM
+		  FROM (SELECT O.ORD_NO
+					 , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
+					 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(O.ORD_DT + INTERVAL 3 DAY, '%Y.%m.%d')
+						END																AS GIFT_LIMIT_DT
+					 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN TIMESTAMPDIFF(DAY, NOW(), O.ORD_DT + INTERVAL 3 DAY)
+						END																AS GIFT_LIMIT_DAY
+					 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(DA.UPD_DT, '%Y.%m.%d')
+						END																AS GIFT_COMPLETE_DT
+					 , DATE_FORMAT(OD.DELV_EDDT, '%m/%d')								AS DELV_EDDT
+					 , OD.ORD_DTL_NO
+					 , OD.ORD_EXCH_GB
+					 , OD.GOODS_CD
+		             , OD.GIFT_ADDR_INP_YN
+					 , G.GOODS_NM
+					 , IFNULL((SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
+					 , (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = ODI.ITEM_CD)		AS ITEM_NM
+		             , ODI.ORD_DTL_ITEM_SQ
+					 , ODI.OPT_CD1
+					 , ODI.OPT_CD2
+					 , G.LIST_PRICE
+		             , G.GOODS_TYPE
+					 , GI.SYS_IMG_NM
+					 , OD.ORD_DTL_STAT
+					 , OD.ORD_QTY
+					 , OD.CNCL_RTN_QTY
+					 , OD.ORD_AMT
+					 , OD.REAL_ORD_AMT
+					 , OD.SAVE_PNT_AMT
+					 , OD.CNCL_RTN_AMT
+					 , OD.PNT_DC_AMT
+					 , OD.GFCD_USE_AMT
+					 , OD.SHIP_COMP_CD
+					 , OD.GIFT_PACK_YN
+					 , (SELECT SHIP_COMP_NM
+						  FROM TB_SHIP_COMPANY Z
+						 WHERE Z.SHIP_COMP_CD = OD.SHIP_COMP_CD)						AS SHIP_COMP_NM
+					 , OD.INVOICE_NO
+					 , OD.SUPPLY_COMP_CD
+					 , OD.DELV_FEE_CD
+					 , OD.SHOT_DELV_YN
+					 , OD.CHANGEABLE_YN
+					 , OD.RETURNABLE_YN
+					 , G.SELF_GOODS_YN
+					 , CONCAT(B.BRAND_ENM, ' ', B.BRAND_KNM)							AS BRAND_NM
+					 , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT)							AS ORD_DTL_STAT_NM
+					 , R.REVIEW_SQ
+					 , IF(NOW() <![CDATA[<]]> O.ORD_DT + INTERVAL 90 DAY, 'Y', 'N')		AS REVIEWABLE_YN
+					 , TIMESTAMPDIFF(DAY, NOW(), OD.DELV_EDDT + INTERVAL 2 WEEK)		AS PURCHASE_CONFIRM_DAY
+					 , DATE_FORMAT(GRS.DELV_RES_DT, '%Y.%m.%d') AS DELV_RES_DT
+					 , IFNULL(OCD.ORD_REQ_CHG_QTY, 0) AS ORD_REQ_CHG_QTY
+					 , CA.BANK_CD
+					 , CA.ACCOUNT_NO
+					 , CA.ACCOUNT_NM
+				  FROM TB_ORDER O
+				 INNER JOIN TB_ORDER_DETAIL OD
+				    ON O.ORD_NO = OD.ORD_NO
+				   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
+				 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+				    ON OD.ORD_NO = ODI.ORD_NO
+				   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+				   AND ODI.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
+				 INNER JOIN TB_GOODS G
+				    ON OD.GOODS_CD = G.GOODS_CD
+				 INNER JOIN TB_BRAND B
+				    ON B.BRAND_CD = G.BRAND_CD
+				  LEFT OUTER JOIN TB_REVIEW R
+				    ON R.ORD_NO = OD.ORD_NO
+				   AND R.ORD_DTL_NO = OD.ORD_DTL_NO
+				  LEFT OUTER JOIN TB_DELIVERY_ADDR DA
+				    ON DA.DELV_ADDR_SQ = OD.DELV_ADDR_SQ
+				  LEFT OUTER JOIN TB_GOODS_IMG GI
+				    ON OD.GOODS_CD = GI.GOODS_CD
+				   AND ODI.OPT_CD1 = GI.COLOR_CD
+				   AND GI.DEFAULT_IMG_YN = 'Y'
+				  LEFT OUTER JOIN TB_GOODS_RES_SELL GRS
+				    ON GRS.GOODS_CD = OD.GOODS_CD
+				  LEFT OUTER JOIN (SELECT OD.ORD_DTL_NO
+										, SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
+									 FROM TB_ORDER_CHANGE_DETAIL OCD
+									INNER JOIN TB_ORDER_DETAIL OD
+									   ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+									WHERE OD.ORD_NO = #{ordNo}
+									  AND OCD.DEL_YN = 'N'
+									  AND OCD.CHG_STAT IN ('G685_20', 'G685_30', 'G685_33', 'G685_40')
+									GROUP BY OCD.ORD_DTL_NO
+								  ) OCD
+				    ON OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+				  LEFT OUTER JOIN TB_CUST_ACCOUNT CA
+				    ON O.CUST_NO = CA.CUST_NO
 		<where>
 			<choose>
-				<when test='custNo != null and custNo != ""'>
+				<when test="custNo != null and custNo != ''">
 		   AND O.CUST_NO = #{custNo}
 				</when>
 				<otherwise>
@@ -103,26 +167,28 @@
 			<if test="ordNo != null and ordNo != ''">
 		   AND O.ORD_NO = #{ordNo}
 			</if>
-			<if test="ordNoList != null">
-		   AND O.ORD_NO IN
-				<foreach collection="ordNoList" item="item" index="index"  open="(" close=")" separator=",">
-					#{item}
-				</foreach>
-			</if>
 			<if test="ordDtlNoArr != null">
 		   AND OD.ORD_DTL_NO IN
 				<foreach collection="ordDtlNoArr" item="item" index="index"  open="(" close=")" separator=",">
 					#{item}
 				</foreach>
 			</if>
+			<if test="ordNoList != null">
+		   AND O.ORD_NO IN
+				<foreach collection="ordNoList" item="item" index="index"  open="(" close=")" separator=",">
+					#{item}
+				</foreach>
+			</if>
 		   AND O.DISP_YN = 'Y'
+		   AND OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
 		</where>
-		 ORDER BY OD.ORD_NO DESC
-				, OD.ORD_DTL_STAT
-				, G.SELF_GOODS_YN DESC
-				, OD.SHOT_DELV_YN DESC
-		 		, OD.SUPPLY_COMP_CD
-				, OD.DELV_FEE_CD
+				) Z
+		 GROUP BY Z.ORD_NO, Z.ORD_DT, Z.GIFT_LIMIT_DT, Z.GIFT_LIMIT_DAY, Z.GIFT_COMPLETE_DT, GIFT_ADDR_INP_YN, Z.DELV_EDDT, Z.ORD_DTL_NO, Z.ORD_EXCH_GB
+				, Z.GOODS_CD, Z.GOODS_NM, Z.LIST_PRICE, Z.SYS_IMG_NM, Z.ORD_DTL_STAT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.ORD_AMT, Z.REAL_ORD_AMT
+				, Z.SAVE_PNT_AMT, Z.CNCL_RTN_AMT, Z.PNT_DC_AMT, Z.GFCD_USE_AMT, Z.SHIP_COMP_CD, Z.GIFT_PACK_YN, Z.SHIP_COMP_NM, Z.INVOICE_NO
+				, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD, Z.SHOT_DELV_YN, Z.CHANGEABLE_YN, Z.SELF_GOODS_YN, Z.BRAND_NM, Z.ORD_DTL_STAT_NM, Z.REVIEW_SQ
+				, Z.REVIEWABLE_YN, Z.PURCHASE_CONFIRM_DAY, Z.DELV_RES_DT, Z.ORD_REQ_CHG_QTY, Z.BANK_CD, Z.ACCOUNT_NO, Z.ACCOUNT_NM
+		ORDER BY Z.ORD_NO DESC, Z.ORD_DTL_STAT, Z.SELF_GOODS_YN DESC, Z.SHOT_DELV_YN DESC, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD
 	</select>
 
 	<!-- 마이페이지 주문 상태 별 수량 조회 -->
@@ -180,7 +246,7 @@
 
 	<!-- 마이페이지 주문목록 페이징 처리 주문번호 수 조회 -->
 	<select id="getPagingOrdNoListCount" parameterType="Order" resultType="int">
-		/* TsfOrder.getPagingOrdNoList */
+		/* TsfOrder.getPagingOrdNoListCount */
 		SELECT COUNT(*) AS CNT
 		  FROM (SELECT O.ORD_NO
 				  FROM TB_ORDER O
@@ -188,6 +254,8 @@
 				    ON O.ORD_NO = OD.ORD_NO
 				 WHERE O.CUST_NO = #{custNo}
 				   AND O.DISP_YN = 'Y'
+				   AND OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
+				   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
 				   AND O.ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
 		</if>
@@ -209,6 +277,8 @@
 		    ON O.ORD_NO = OD.ORD_NO
 		 WHERE O.CUST_NO = #{custNo}
 		   AND O.DISP_YN = 'Y'
+		   AND OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
+		   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
 		   AND O.ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
 		</if>
@@ -221,7 +291,7 @@
 	
 	<!-- 마이페이지 주문목록 사은품 조회 -->
 	<select id="getOrderFreeGiftListForMypage" parameterType="Order" resultType="Order">
-		/* TsfOrder.getPagingOrdNoList */
+		/* TsfOrder.getOrderFreeGiftListForMypage */
 		SELECT FG.GOODS_NM
 			 , OFV.USE_POINT
 		  FROM TB_ORD_FREEGIFT OFG

+ 57 - 386
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderDetailFormWeb.html

@@ -14,6 +14,7 @@
  * VER  DATE         AUTHOR      DESCRIPTION
  * ===  ===========  ==========  =============================================
  * 1.0  2021.02.16   card007     최초 작성
+ * 1.1  2021.03.23   card007     퍼블 수정
  *******************************************************************************
  -->
 <body>
@@ -38,11 +39,14 @@
 				</div>
 				<div class="sec_body">
 					<th:block th:if="${orderList}" th:each="order, status : ${orderList}">
+						<input type="hidden" name="accountNo" th:value="${order.oneData.accountNo}"/>
+						<input type="hidden" name="accountNm" th:value="${order.oneData.accountNm}"/>
+						<input type="hidden" name="bankCd" th:value="${order.oneData.bankCd}"/>
 						<div class="part_goods">
 							<div class="goods_head">
 								<p th:unless="${order.giftPackYn == 'Y'}">주문일 <span th:text="${order.ordDt}"></span></p>
 								<p th:if="${order.giftPackYn == 'Y'}">선물일 <span th:text="${order.ordDt}"></span></p>
-								<a href="javascript:void(0)" th:if="${allCanYn == 'Y'}" th:onclick="fnAllCancel([[${order.ordNo}]])">주문전체취소</a>
+								<li><a href="javascript:void(0)" th:if="${order.allCanYn == 'Y' and order.ordReqChgQty == 0}" onclick="fnAllCancel();">주문전체취소</a></li>
 							</div>
 							<div class="goods_cont">
 								<!-- 주문상품 -->
@@ -77,8 +81,8 @@
 														<span class="count"><em th:text="${ordDtl.ordQty - ordDtl.cnclRtnQty}"></em>개</span>
 													</p>
 													<p>
-														<span class="price_org"><em th:text="${#numbers.formatInteger(ordDtl.listPrice * (ordDtl.ordQty - ordDtl.cnclRtnQty), 1, 'COMMA')}"></em>원</span>
-														<span class="price_sale"><em th:text="${#numbers.formatInteger(ordDtl.ordAmt - ordDtl.cnclRtnAmt, 1, 'COMMA')}"></em>원</span>
+														<span class="price_org"><em th:text="${#numbers.formatInteger(ordDtl.ordAmt - ordDtl.cnclRtnAmt - ordDtl.cpn1DcAmt, 1, 'COMMA')}"></em>원</span>
+														<span class="price_sale"><em th:text="${#numbers.formatInteger(ordDtl.realOrdAmt + ordDtl.pntDcAmt + ordDtl.gfcdUseAmt, 1, 'COMMA')}"></em>원</span>
 													</p>
 													<p>
 														<span class="point"><em th:text="${#numbers.formatInteger(ordDtl.savePntAmt, 1, 'COMMA')}"></em><stong>P</stong>&nbsp;적립예정</span>
@@ -436,395 +440,14 @@
 				<input type="hidden" name="ordNo"/>
 				<input type="hidden" name="ordDtlNo"/>
 			</form>
-			<!--<div class="my_cont">
-				<div class="sec_head">
-					<h3>주문상세</h3>
-					<div class="od_detail">
-						(주문번호 : <span class="num" th:text="${ordNo}"></span>)
-					</div>
-					<button type="button" class="btn btn_default od_del_btn" onclick="fnDeleteOrder()"><span>주문 내역 삭제</span></button>
-				</div>
-				<div class="sec_body">
-					<div class="order_list" id="orderList">
-						<section class="order_row">
-							<th:block th:if="${orderList}" th:each="oneData, status : ${orderList}">
-								<div class="part_deliver">
-									<div class="tbl_tit">
-										&lt;!&ndash; 주문일/선물일 설정 &ndash;&gt;
-										<span class="start_t" th:unless="${oneData.giftPackYn == 'Y'}">주문일</span>
-										<span class="gift_t" th:if="${oneData.giftPackYn == 'Y'}">선물일</span>
-										&lt;!&ndash; //주문일/선물일 설정 &ndash;&gt;
-		
-										<span class="order_date" th:text="${oneData.ordDt}"></span>
-		
-										&lt;!&ndash; 배송구분 설정 &ndash;&gt;
-										<span class="order_label02" th:if="${oneData.shotDelv}">총알배송</span>
-										<span class="order_label01" th:if="${oneData.selfMall}">STYLE24 일반배송</span>
-										<span class="order_label01" th:if="${oneData.supplyMall}">업체직배송</span>
-										&lt;!&ndash; //배송구분 설정 &ndash;&gt;
-		&lt;!&ndash;								<a href="javascript:void(0)" class="detail_btn" th:attr="ordNo=${oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>&ndash;&gt;
-									</div>
-									<th:block th:if="${oneData.orderList}" th:each="order, status : ${oneData.orderList}">
-										<div class="tbl type2">
-											<table>
-												<colgroup>
-													<col width="1020">
-													<col width="180">
-												</colgroup>
-												<tbody>
-												<th:block th:if="${order.ordDtlList}" th:each="ordDtl, status : ${order.ordDtlList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
-													<input type="hidden" name="ordDtlNo" th:value="${ordDtl.ordDtlNo}"/>
-													<input type="hidden" name="ordDtlStat" th:value="${ordDtl.ordDtlStat}"/>
-													<input type="hidden" name="reviewSq" th:value="${ordDtl.reviewSq}"/>
-													<tr class="bundle_row">
-														<td>
-															<div class="info_item">
-																<div class="thumb_box">
-																	<a href="">
-																		<img th:src="${imageUrl + '/' + ordDtl.sysImgNm}" width="100%" alt="">
-																	</a>
-																</div>
-																<div class="info_box">
-																	<p class="od_name">
-																		<a href="">
-																			<span class="brand" th:text="${ordDtl.brandNm}"></span>
-																			<span class="name" th:text="${ordDtl.goodsNm}"></span>
-																		</a>
-																	</p>
-																	<p class="od_opt">
-																		<span class="option"><em th:text="${ordDtl.optCd1}"></em><em th:text="${ordDtl.optCd2}"></em></span>
-																		<span class="count">수량 <em th:text="${ordDtl.ordQty}"></em>개</span>
-																	</p>
-																	<button type="button" class="btn btn_dark cart_btn" onclick="fnCreateCart(this);">쇼핑백 담기</button>
-																</div>
-																<div class="info_calc">
-																	<p class="price">
-																		<span class="selling_price" th:text="|${#numbers.formatInteger(ordDtl.ordAmt, 1, 'COMMA')}원|"></span>
-																	</p>
-																	<p class="point"><span th:text="${#numbers.formatInteger(ordDtl.savePntAmt, 1, 'COMMA')}"></span>p</p>
-																</div>
-															</div>
-														</td>
-														&lt;!&ndash; 주문 &ndash;&gt;
-														<td class="merge_row" th:unless="${oneData.giftPackYn == 'Y'}">
-															<div class="delivery">
-																<p class="dlvr_staus" th:text="${ordDtl.ordDtlStatNm}"></p>
-																<p class="dlvr_desc" th:if="${ordDtl.delvEddt}" th:text="|${ordDtl.delvEddt}일 도착|"></p>
-															</div>
-															<div class="tbl_btn_wrap case02">
-																<button type="button" class="btn btn_default btn_sm" onclick="fnCreateExchange(this, 'exchange');"><span>교환</span></button>
-																<button type="button" class="btn btn_default btn_sm" onclick="fnCreateCancel(this, 'cancel');"><span>반품/취소</span></button>
-		&lt;!&ndash;														<button type="button" class="btn btn_default btn_sm" th:if="${ordDtl.reviewSq == 0}" th:attr="ordNo=${oneData.ordNo}" onclick="fnCreateReview(this);"><span>리뷰작성</span></button>&ndash;&gt;
-																<button type="button" class="btn btn_default btn_sm" th:if="${!order.review}" th:attr="ordNo=${oneData.ordNo}" onclick="fnCreateReview(this);"><span>리뷰작성</span></button>
-															</div>
-														</td>
-														<td class="merge_row" th:if="${oneData.giftPackYn == 'Y' and #strings.isEmpty(ordDtl.recipBaseAddr)}">
-															<div class="delivery">
-																<p class="dlvr_staus c_primary">주소 입력 대기</p>
-																<p class="dlvr_desc" th:text="|남은 기간 ${ordDtl.giftLimitDay}일|"></p>
-																<p class="dlvr_desc" th:text="|(${ordDtl.giftLimitDt}까지)|"></p>
-															</div>
-															<div class="tbl_btn_wrap case02">
-																<button type="button" class="btn btn_dark btn_sm" onclick="fnReSendSms(this);"><span>SMS 재전송</span></button>
-															</div>
-														</td>
-														<td class="merge_row" th:if="${oneData.giftPackYn == 'Y' and !#strings.isEmpty(ordDtl.recipBaseAddr)}">
-															<div class="delivery">
-																<p class="dlvr_staus c_primary">선물 완료</p>
-																<p class="dlvr_desc" th:text="|(${ordDtl.giftCompleteDt})|"></p>
-															</div>
-															<div class="tbl_btn_wrap case02">
-															</div>
-														</td>
-													</tr>
-												</th:block>
-												</tbody>
-											</table>
-										</div>
-										&lt;!&ndash; 주문 &ndash;&gt;
-										<th:block th:unless="${oneData.giftPackYn == 'Y'}">
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_00' or order.ordDtlStat == 'G013_10' or order.ordDtlStat == 'G013_11'}">
-												<span class="cf_txt">주문 완료 / 결제를 기다리고 있습니다.</span>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_20' or order.ordDtlStat == 'G013_30' or order.ordDtlStat == 'G013_35'}">
-												<span class="cf_txt">배송할 상품을 준비 중입니다.</span>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_40'}">
-												<span class="cf_txt">상품준비가 완료되어 곧 배송될 예정입니다.</span>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_50' or order.ordDtlStat == 'G013_55'}">
-												<span class="cf_txt" th:text="|${order.shipCompNm} / ${order.invoiceNo}|"></span>
-												<button type="button" class="btn btn_primary" th:attr="ordNo=${oneData.ordNo}, invoiceNo=${order.invoiceNo}, shipCompCd=${order.shipCompCd}" onclick="fnGetDeliveryInfo(this)">배송조회</button>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_60'}">
-												<span class="cf_txt" th:text="|${order.purchaseConfirmDay}일 후 자동으로 구매확정|"></span>
-												<button type="button" class="btn btn_primary" onclick="fnDecideOrder(this);">구매확정 하기</button>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq == 0}">
-												<span class="cf_txt">리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다.</span>
-												<button type="button" class="btn btn_primary" banner="banner" onclick="fnCreateReview(this, 'Y');">리뷰작성</button>
-											</div>
-											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq > 0}">
-												<span class="cf_txt">주문내역 다시 구매하기 위해</span>
-												<button type="button" class="btn btn_primary" onclick="fnCreateCart(this, 'Y');">장바구니 담기</button>
-											</div>
-										</th:block>
-		
-										&lt;!&ndash; 선물 &ndash;&gt;
-										<th:block th:if="${oneData.giftPackYn == 'Y'}">
-											<div class="order_confirm" th:if="${#strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay >= 0}">
-												<span class="cf_txt" th:text="|${order.recipNm}님이 주소를 입력하기 전입니다. (입력기한 ${order.giftLimitDt})|"></span>
-											</div>
-											<div class="order_confirm" th:unless="${#strings.isEmpty(order.recipBaseAddr)}">
-												<span class="cf_txt" th:text="|${order.recipNm}님께 선물이 발송되었습니다.|"></span>
-											</div>
-											<div class="order_confirm" th:if="${#strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay < 0}">
-												<span class="cf_txt">주소입력 기한이 경과되어 선물이 취소 되었습니다.</span>
-											</div>
-										</th:block>
-									</th:block>
-								</div>
-							</th:block>
-		
-							&lt;!&ndash; 주문 없을 때 &ndash;&gt;
-							<th:block th:unless="${orderList}" th:each="oneData, status : ${orderList}">
-		
-							</th:block>
-						</section>
-						<section class="order_row" th:if="${paymentInfo.payMeans == 'G014_20'}">
-							<div class="order_tit">
-								<h3 class="subH3">무통장 입금 정보</h3>
-							</div>
-							<div class="tbl type1 row_tbl">
-								<table>
-									<colgroup>
-										<col width="*">
-									</colgroup>
-									<tbody>
-										<tr>
-											<td>
-												<div>
-													<span th:text="${paymentInfo.vaBank}"></span>(<span th:text="${paymentInfo.vaNm}"></span>)
-												</div>
-												<div>
-													<span th:text="${paymentInfo.vaNo}"></span>
-												</div>
-												<div>
-													<span th:text="${paymentInfo.vaDeadlineYmd}"></span><span th:text="${paymentInfo.vaDeadlineHms}"></span> 까지
-												</div>
-											</td>
-										</tr>
-									</tbody>
-								</table>
-							</div>
-						</section>
-						<section class="order_row">
-							<div class="order_tit">
-								<h3 class="subH3">주문 고객</h3>
-							</div>
-							<div class="tbl type1 row_tbl">
-								<table>
-									<colgroup>
-										<col width="*">
-									</colgroup>
-									<tbody>
-										<tr>
-											<td>
-												<div>
-													<span th:text="${orderInfo.ordNm}"></span>
-												</div>
-												<div>
-													<span th:text="${orderInfo.ordEmail}"></span>
-												</div>
-												<div>
-													<span th:text="${orderInfo.ordPhnno}"></span>
-												</div>
-											</td>
-										</tr>
-									</tbody>
-								</table>
-							</div>
-						</section>
-						<section class="order_row">
-							<div class="order_tit">
-								<h3 class="subH3">배송지 정보</h3>
-							</div>
-							<div class="tbl type1 row_tbl">
-								<table>
-									<colgroup>
-										<col width="*">
-									</colgroup>
-									<tbody>
-									<tr th:if="${deliveryAddrInfo.recipNm}">
-										<td th:text="${deliveryAddrInfo.recipNm}"><span class="sr-only">배송지명</span></td>
-									</tr>
-									<tr th:if="${${deliveryAddrInfo.recipBaseAddr}}">
-										<td th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"><span class="sr-only">배송 주소</span></td>
-									</tr>
-									<tr>
-										<td th:text="${deliveryAddrInfo.recipPhnno}"><span class="sr-only">휴대폰 번호</span></td>
-									</tr>
-									<tr>
-										<td>
-											<span class="tit c_primary">배송요청 사항</span>
-											<th:block th:text="${deliveryAddrInfo.delvMemo}"></th:block>
-											<button type="button" class="btn_popup" id="btn_rqstModify_pop" onclick="fnChangeDelvMemo();"><span>변경하기</span></button>
-										</td>
-									</tr>
-									</tbody>
-								</table>
-							</div>
-						</section>
-						<section class="order_row">
-							<div class="order_tit">
-								<h3 class="subH3">결제정보</h3>
-							</div>
-							<div class="order_amount">
-								<div class="tbl type3">
-									<table>
-										<colgroup>
-											<col width="33.33%">
-											<col width="33.33%">
-											<col width="*">
-										</colgroup>
-										<thead>
-										<tr>
-											<th>
-												<dl>
-													<dt>총 주문금액</dt>
-													<dd class="price" th:text="|${#numbers.formatInteger(orderAmtInfo.ordAmt + orderAmtInfo.delvFee, 1, 'COMMA')}원|"></dd>
-												</dl>
-												<i class="ico_calc minus"></i>
-											</th>
-											<th>
-												<dl>
-													<dt>총 할인금액</dt>
-													<dd class="price" th:text="|- ${#numbers.formatInteger(orderAmtInfo.totalDcAmt, 1, 'COMMA')}원|"></dd>
-												</dl>
-												<i class="ico_calc result"></i>
-											</th>
-											<th>
-												<dl>
-													<dt>결제금액</dt>
-													<dd class="price" data-weight="price" data-font="lato">
-														<span class="oder_total_price" th:text="${#numbers.formatInteger(orderAmtInfo.realOrdAmt, 1, 'COMMA')}"></span>원
-													</dd>
-												</dl>
-											</th>
-										</tr>
-										</thead>
-										<tbody>
-										<tr>
-											<td>
-												<dl>
-													<div>
-														<dt>상품금액</dt>
-														<dd th:text="|${#numbers.formatInteger(orderAmtInfo.ordAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													<div th:if="${orderAmtInfo.delvFee > 0}">
-														<dt>배송비</dt>
-														<dd th:text="|${#numbers.formatInteger(orderAmtInfo.delvFee, 1, 'COMMA')}원|"></dd>
-													</div>
-												</dl>
-											</td>
-											<td>
-												<dl>
-													<div th:if="${orderAmtInfo.cpn1DcAmt > 0}">
-														<dt>상품 할인(즉시 할인)</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.cpn1DcAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													<div th:if="${orderAmtInfo.tmtb1DcAmt + orderAmtInfo.tmtb2DcAmt > 0}">
-														<dt>다다익선 할인</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.tmtb1DcAmt + orderAmtInfo.tmtb2DcAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													<div th:if="${orderAmtInfo.cartCpnDcAmt + orderAmtInfo.goodsCpnDcAmt > 0}">
-														<dt>쿠폰 할인</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.cartCpnDcAmt + orderAmtInfo.goodsCpnDcAmt, 1, 'COMMA')}원|">- 30,000원</dd>
-													</div>
-													<div th:if="${orderAmtInfo.prePntDcAmt > 0}">
-														<dt>선 포인트 할인</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.prePntDcAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													<div th:if="${orderAmtInfo.pntDcAmt > 0}">
-														<dt>포인트 사용</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.pntDcAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													<div th:if="${orderAmtInfo.gfcdUseAmt > 0}">
-														<dt>상품권 사용</dt>
-														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.gfcdUseAmt, 1, 'COMMA')}원|"></dd>
-													</div>
-													&lt;!&ndash; 
-													<div th:if="${}">
-														<dt>마일리지 사용</dt>
-														<dd></dd>
-													</div>
-													<div th:if="${}">
-														<dt>제휴 할인</dt>
-														<dd></dd>
-													</div>
-													&ndash;&gt;
-												</dl>
-											</td>
-											<td>
-												<dl>
-													<div th:if="${orderAmtInfo.savePntAmt > 0}">
-														<dt>적립 예정 포인트</dt>
-														<dd th:text="|${#numbers.formatInteger(orderAmtInfo.savePntAmt, 1, 'COMMA')}P|"></dd>
-													</div>
-													<div>
-														<dt>결제방법</dt>
-														<dd>
-															&lt;!&ndash; TODO &ndash;&gt;
-															&lt;!&ndash; Style24 간편결제 처리 (STYLE24 간편결제 : STYLE24 간편결제명 / 카드사명 / 할부개월(일시불)) &ndash;&gt;
-															&lt;!&ndash; 실시간계좌이체, 무통장입금 현금영수증 신청여부 추가 &ndash;&gt;
-															&lt;!&ndash; 네이버페이 처리 (네이버 페이 : 네이버 페이) &ndash;&gt;
-															&lt;!&ndash; 카카오페이 처리 (카카오 페이 : 카카오 페이) &ndash;&gt;
-															&lt;!&ndash; PAYCO 처리 (PAYCO : PAYCO) &ndash;&gt;
-															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_10'}" th:text="|실시간계좌이체|"></span>
-															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_20'}" th:text="|무통장입금|"></span>
-															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_30'}" th:text="|${paymentInfo.cardNm}/${paymentInfo.cardMips}|"></span>
-															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_60'}">휴대폰결제</span>
-														</dd>
-													</div>
-													<th:block th:if="${paymentInfo.pgGb == 'KCP'}">
-														&lt;!&ndash; 신용카드 결제시 &ndash;&gt;
-														<div th:if="${paymentInfo.payMeans == 'G014_30'}">
-															<dt>&nbsp;</dt>
-															<dd>
-																<button type="button" class="btn btn_default" onclick="fnReceipt('card');"><span>신용카드 전표</span></button>
-															</dd>
-														</div>
-														&lt;!&ndash; //무통장 결제시 &ndash;&gt;
-														&lt;!&ndash; 무통장 결제시 &ndash;&gt;
-														<div th:if="${paymentInfo.payMeans == 'G014_10' or paymentInfo.payMeans == 'G014_20'}">
-															<dt>&nbsp;</dt>
-															<dd>
-																<button type="button" class="btn btn_default" onclick="fnReceipt('cash');"><span>현금영수증</span></button>
-															</dd>
-														</div>
-														&lt;!&ndash; //무통장 결제시 &ndash;&gt;
-													</th:block>
-													<th:block th:unless="${paymentInfo.pgGb == 'KCP'}">
-														<dt></dt>
-														<dd>NPAY등의 대체결제수단으로 결제시 해당 결제 플롯폼에서 영수증 확인이 가능합니다.</dd>
-													</th:block>
-												</dl>
-											</td>
-										</tr>
-										</tbody>
-									</table>
-								</div>
-							</div>
-						</section>
-					</div>
-				</div>
-			</div>-->
 			<!-- // CONT-BODY -->
 		</div>
 	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
 	let ordNo = [[${ordNo}]];
+	let orderList = [[${orderList}]];
+	let paymentInfo = [[${paymentInfo}]];
 
 	$(document).ready(function() {
 		// 마이페이지 LNB 설정
@@ -834,6 +457,54 @@
 		fnSetMypageLocation('주문확인/배송조회', '_PAGE_MYPAGE_ORDER_LIST', '주문상세');
 	});
 	
+	// 전체취소 버튼 클릭 이벤트
+	var fnAllCancel = function() {
+		let cancelRequestList = [];
+
+		$.each(orderList[0].ordDtlList, function(idx, item) {
+			item.ordCanChgQty = (item.ordQty - item.cnclRtnQty);
+			cancelRequestList.push(item);
+		});
+		
+		// 환불계좌 체크
+		let accountNo = $('input[name=accountNo]').val();
+		let accountNm = $('input[name=accountNm]').val();
+		let bankCd = $('input[name=bankCd]').val();
+		
+		if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_00' && (gagajf.isNull(accountNo) || gagajf.isNull(accountNm) || gagajf.isNull(bankCd))) {
+			// TODO
+			// 환불계좌 등록 팝업
+			
+			return false;
+		}
+		
+		// 취소요청 데이터 설정
+		let url = '/mypage/cancel';
+		
+		let allCanYn = '';
+		if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_00') {
+			allCanYn = 'Y';
+		}
+		
+		let data = {};
+		data.ordNo = ordNo;
+		data.chgReason = 'G686_10';
+		data.accountNo = accountNo;
+		data.accountNm = accountNm;
+		data.bankCd = bankCd;
+		data.allCanYn = allCanYn;
+		data.isCustomer = 'Y';
+		data.reqGbn = 'cnclComplete';
+		data.cancelReqList = cancelRequestList;
+		
+		let jsonData = JSON.stringify(data);
+		console.log(jsonData);
+		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+			// TODO
+			// 주문취소 콜백처리
+			console.log(result);
+		});
+	}
 </script>
 
 </th:block>

+ 11 - 5
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html

@@ -140,13 +140,13 @@
 								<div class="form_field">
 									<label class="input_label sr-only">선택기간 시작</label>
 									<div class="input_wrap">
-										<input type="text" class="form_control period_datepicker hasDatepicker" value="" id="stDate" onchange="fnCheckPeriod(this);">
+										<input type="text" class="form_control period_datepicker" value="" id="stDate" onchange="fnCheckPeriod(this);">
 									</div>
 								</div>
 								<div class="form_field">
 									<label class="input_label sr-only">선택기간 끝</label>
 									<div class="input_wrap">
-										<input type="text" class="form_control n_input period_datepicker hasDatepicker" value="" id="edDate" onchange="fnCheckPeriod(this);">
+										<input type="text" class="form_control n_input period_datepicker" value="" id="edDate" onchange="fnCheckPeriod(this);">
 									</div>
 								</div>
 								<button type="button" class="btn btn_dark btn_sm" onclick="fnSearchOrderList();"><span>조회</span></button>
@@ -405,7 +405,13 @@
 					tag += '					<div class="gd_opt">\n';
 					tag += '						<div class="option_wrap">\n';
 					tag += '							<span class="title sr-only">주문 옵션</span>\n';
-					tag += '							<span class="option">' + ordDtl.optCd1 + ' / ' + ordDtl.optCd2 + '</span>\n';
+					$.each(ordDtl.colorNmArr, function (index2, option) {
+						if (ordDtl.goodsType == 'G056_S') {
+							tag += '							<span class="option">' + ordDtl.itemNmArr[index2] + ' / ' + option + ' / ' + ordDtl.optCd2Arr[index2] + '</span>\n';
+						} else {
+							tag += '							<span class="option">' + option + ' / ' + ordDtl.optCd2Arr[index2] + '</span>\n';
+						}
+					});
 					tag += '						</div>\n';
 					tag += '					</div>\n';
 					tag += '					<div class="gd_calc">\n';
@@ -413,8 +419,8 @@
 					tag += '							<span class="count"><em>' + (ordDtl.ordQty - ordDtl.cnclRtnQty) + '</em>개</span>\n';
 					tag += '						</p>\n';
 					tag += '						<p>\n';
-					tag += '							<span class="price_org"><em>' + (ordDtl.listPrice * (ordDtl.ordQty - ordDtl.cnclRtnQty)).addComma() + '</em>원</span>\n';
-					tag += '							<span class="price_sale"><em>' + (ordDtl.ordAmt - ordDtl.cnclRtnAmt).addComma() + '</em>원</span>\n';
+					tag += '							<span class="price_org"><em>' + (ordDtl.ordAmt - ordDtl.cnclRtnAmt - ordDtl.cpn1DcAmt).addComma() + '</em>원</span>\n';
+					tag += '							<span class="price_sale"><em>' + (ordDtl.realOrdAmt + ordDtl.pntDcAmt + ordDtl.gfcdUseAmt).addComma() + '</em>원</span>\n';
 					tag += '						</p>\n';
 					tag += '					</div>\n';
 					tag += '				</div>\n';

+ 11 - 17
src/main/webapp/ux/pc/js/mypage.js

@@ -1,17 +1,17 @@
 // 마이페이지 LNB 처리
 var fnSetMypageLnbList = function(lnbLvl) {
 	let tag = '';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);"' + (lnbLvl == 1 ? ' class="on"' : '') + '>주문확인/배송조회</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST);"' + (lnbLvl == 2 ? ' class="on"' : '') + '>취소/반품/환불내역</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_RESTOCK);"' + (lnbLvl == 3 ? ' class="on"' : '') + '>재입고 알림 내역</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_COUPON);"' + (lnbLvl == 4 ? ' class="on"' : '') + '>쿠폰</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_POINT);"' + (lnbLvl == 5 ? ' class="on"' : '') + '>STYLE24 포인트</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);"' + (lnbLvl == 6 ? ' class="on"' : '') + '>상품권</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_REVIEW);"' + (lnbLvl == 7 ? ' class="on"' : '') + '>리뷰</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_DELIVERY_ADDR);"' + (lnbLvl == 8 ? ' class="on"' : '') + '>배송지 관리</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_WISHLIST);"' + (lnbLvl == 9 ? ' class="on"' : '') + '>위시리스트</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_CUSTOMER);"' + (lnbLvl == 10 ? ' class="on"' : '') + '>내정보 관리</a></li>\n';
-	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_SECEDE);"' + (lnbLvl == 11 ? ' class="on"' : '') + '>회원 탈퇴</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);"' + (lnbLvl == 1 ? ' class="on"' : '') + '>주문확인/배송조회</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST);"' + (lnbLvl == 2 ? ' class="on"' : '') + '>취소/반품/환불내역</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_RESTOCK);"' + (lnbLvl == 3 ? ' class="on"' : '') + '>재입고 알림 내역</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_COUPON);"' + (lnbLvl == 4 ? ' class="on"' : '') + '>쿠폰</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_POINT);"' + (lnbLvl == 5 ? ' class="on"' : '') + '>STYLE24 포인트</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);"' + (lnbLvl == 6 ? ' class="on"' : '') + '>상품권</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_REVIEW);"' + (lnbLvl == 7 ? ' class="on"' : '') + '>리뷰</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_DELIVERY_ADDR);"' + (lnbLvl == 8 ? ' class="on"' : '') + '>배송지 관리</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_WISHLIST);"' + (lnbLvl == 9 ? ' class="on"' : '') + '>위시리스트</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_CUSTOMER);"' + (lnbLvl == 10 ? ' class="on"' : '') + '>내정보 관리</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_SECEDE);"' + (lnbLvl == 11 ? ' class="on"' : '') + '>회원 탈퇴</a></li>\n';
 	tag += '</ul>';
 	$('#mypageLnbList').html(tag);
 }
@@ -129,12 +129,6 @@ var fnReSendSms = function(param) {
 	// 선물하기 SMS 재발송 처리
 }
 
-// 주문전체취소 버튼 클릭 이벤트
-var fnAllCancel = function(ordNo) {
-	// TODO
-	// 주문전체취소 처리
-}
-
 // 반품/취소/교환 버튼 클릭 이벤트
 var fnCreateChange = function(param, gubun) {
 	let ordNo = $(param).attr('ordNo');