MypageOrderDetailFormWeb.html 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743
  1. <!DOCTYPE html>
  2. <html lang="ko"
  3. xmlns:th="http://www.thymeleaf.org"
  4. xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
  5. layout:decorator="web/common/layout/MypageLayoutWeb">
  6. <!--
  7. *******************************************************************************
  8. * @source : MypageOrderDetailFormWeb.html
  9. * @desc : 마이페이지 > 주문상세 Page
  10. *============================================================================
  11. * STYLE24
  12. * Copyright(C) 2021 TSIT, All rights reserved.
  13. *============================================================================
  14. * VER DATE AUTHOR DESCRIPTION
  15. * === =========== ========== =============================================
  16. * 1.0 2021.02.16 card007 최초 작성
  17. * 1.1 2021.03.23 card007 퍼블 수정
  18. *******************************************************************************
  19. -->
  20. <body>
  21. <th:block layout:fragment="content">
  22. <div class="content myOrderView">
  23. <div class="cont_body">
  24. <!-- CONT-BODY -->
  25. <div class="lnb">
  26. <div class="lnb_tit">
  27. <h2>마이페이지</h2>
  28. </div>
  29. <div class="lnb_list">
  30. <ul id="mypageLnbList"></ul>
  31. </div>
  32. </div>
  33. <div class="cont">
  34. <form id="orderDetailForm">
  35. <div class="sec_head">
  36. <h3 class="subH1">주문상세</h3>
  37. <span class="order_number">주문번호&nbsp;:&nbsp;<em th:text="${ordNo}"></em></span>
  38. <button type="button" id="btn_order_cancel" class="btn_underline" onclick="fnDeleteOrder()"><span>삭제하기</span></button>
  39. </div>
  40. <div class="sec_body">
  41. <th:block th:if="${orderList}" th:each="order, status : ${orderList}">
  42. <input type="hidden" name="accountNo" th:value="${order.oneData.accountNo}"/>
  43. <input type="hidden" name="accountNm" th:value="${order.oneData.accountNm}"/>
  44. <input type="hidden" name="bankCd" th:value="${order.oneData.bankCd}"/>
  45. <input type="hidden" name="delvMemo" th:value="${deliveryAddrInfo.delvMemo}"/>
  46. <div class="part_goods">
  47. <div class="goods_head">
  48. <p th:unless="${order.giftPackYn == 'Y'}">주문일 <span th:text="${order.ordDt}"></span></p>
  49. <p th:if="${order.giftPackYn == 'Y'}">선물일 <span th:text="${order.ordDt}"></span></p>
  50. <!-- 2021.09.01 card007 AS-IS Data 취소처리 못하게 처리 -->
  51. <!-- 2021.09.13 card007 AS-IS Data 취소처리 -->
  52. <!-- <th:block th:if="${#numbers.formatInteger(#strings.replace(order.ordDt, '.', ''), 1)} >= 20210901">-->
  53. <li><a href="javascript:void(0)" th:if="${allCanYn == 'Y' and order.ordReqChgQty == 0}" onclick="fnAllCancel();">주문전체취소</a></li>
  54. <!-- </th:block>-->
  55. <li><a href="javascript:void(0)" th:if="${allDecideYn == 'Y' and order.ordReqChgQty == 0}" th:attr="ordNo=${ordNo}" onclick="fnAllDecideOrder(this);">전체구매확정</a></li>
  56. </div>
  57. <div class="goods_cont">
  58. <!-- 주문상품 -->
  59. <th:block th:if="${order.ordDtlList}" th:each="ordDtl, status : ${order.ordDtlList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
  60. <div class="goods_info">
  61. <div class="order_desc">
  62. <div class="goods_box">
  63. <input type="hidden" name="ordDtlNoArr" th:value="${ordDtl.ordDtlNo}"/>
  64. <input type="hidden" name="cnclRtnReqQtyArr" th:value="${ordDtl.ordQty - ordDtl.cnclRtnQty}"/>
  65. <div class="gd_item">
  66. <a href="javascript:void(0)" th:attr="goodsCd=${ordDtl.goodsCd}, optCd1=${ordDtl.goodsType == 'G056_N' ? ordDtl.optCd1 : ''}, ithrCd='IN20_02'" onclick="fnGoToGoodsDetail(this)">
  67. <span class="thumb">
  68. <img th:src="${imageUrl + '/' + ordDtl.sysImgNm + '?RS=100'}" width="100%" alt="">
  69. </span>
  70. <p>
  71. <span class="brand" th:text="${ordDtl.brandNm}"></span>
  72. <span class="tag primary" th:if="${ordDtl.shotDelvYn == 'Y'}">총알배송</span>
  73. <span class="tag" th:if="${ordDtl.shotDelvYn == 'N' and ordDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</span>
  74. <span class="tag" th:if="${ordDtl.selfGoodsYn == 'N'}">업체직배송</span>
  75. </p>
  76. <p>
  77. <span class="name" th:text="${ordDtl.goodsNm}"></span>
  78. </p>
  79. </a>
  80. </div>
  81. <div class="gd_opt">
  82. <div class="option_wrap">
  83. <span class="title sr-only">주문 옵션</span>
  84. <span class="option" th:if="${ordDtl.goodsType == 'G056_S'}" th:each="option, status : ${ordDtl.colorNmArr}" th:text="|${ordDtl.itemNmArr[status.index]} / ${option} / ${ordDtl.optCd2Arr[status.index]}|"></span>
  85. <span class="option" th:unless="${ordDtl.goodsType == 'G056_S'}" th:text="|${ordDtl.colorNm} / ${ordDtl.optCd2}|"></span>
  86. </div>
  87. </div>
  88. <div class="gd_calc">
  89. <p>
  90. <span class="count"><em th:text="${ordDtl.ordQty - ordDtl.cnclRtnQty}"></em>개</span>
  91. </p>
  92. <p>
  93. <span class="price_org" th:if="${(ordDtl.ordAmt - ordDtl.cnclRtnAmt) > (ordDtl.realOrdAmt + ordDtl.pntDcAmt + ordDtl.gfcdUseAmt)}"><em th:text="${#numbers.formatInteger(ordDtl.ordAmt - ordDtl.cnclRtnAmt, 1, 'COMMA')}"></em>원</span>
  94. <span class="price_sale"><em th:text="${#numbers.formatInteger(ordDtl.realOrdAmt + ordDtl.pntDcAmt + ordDtl.gfcdUseAmt, 1, 'COMMA')}"></em>원</span>
  95. </p>
  96. <p>
  97. <span class="point"><em th:text="${#numbers.formatInteger(ordDtl.savePntAmt, 1, 'COMMA')}"></em><stong>P</stong>&nbsp;적립예정</span>
  98. </p>
  99. </div>
  100. </div>
  101. <div class="status_box">
  102. <!-- 선물 -->
  103. <th:block th:if="${order.giftPackYn == 'Y'}">
  104. <p th:if="${ordDtl.giftAddrInpYn == 'N' and ordDtl.giftLimitDay >= 0}">주소 입력 대기중</p>
  105. <p th:if="${ordDtl.giftAddrInpYn == 'Y' and ordDtl.ordDtlStat != 'G013_98' and ordDtl.ordDtlStat != 'G013_99'}">선물 완료</p>
  106. <p th:if="${ordDtl.ordDtlStat == 'G013_98' or ordDtl.ordDtlStat == 'G013_99'}">선물 취소</p>
  107. </th:block>
  108. <!-- 주문 -->
  109. <th:block th:unless="${order.giftPackYn == 'Y'}">
  110. <p th:if="${ordDtl.ordDtlStat == 'G013_10'}">주문접수</p>
  111. <p th:if="${ordDtl.ordDtlStat == 'G013_35'}">상품준비중</p>
  112. <p th:unless="${ordDtl.ordDtlStat == 'G013_10' or ordDtl.ordDtlStat == 'G013_35'}" th:text="${ordDtl.ordDtlStatNm}"></p>
  113. </th:block>
  114. </div>
  115. <div class="button_box">
  116. <!-- 선물 -->
  117. <th:block th:if="${order.giftPackYn == 'Y'}">
  118. <!-- SMS 재발송 버튼 -->
  119. <th:block th:if="${ordDtl.giftAddrInpYn == 'N' and ordDtl.giftLimitDay >= 0}">
  120. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}" onclick="fnReSendSms(this);"><span>SMS 재발송</span></button></p>
  121. </th:block>
  122. <!-- 주문취소 버튼(결제완료, 상품준비중, 출고처지정) -->
  123. <th:block th:if="${ordDtl.ordDtlStat == 'G013_20' or ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35'}">
  124. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, delvFeeCd=${ordDtl.delvFeeCd}, ordCanChgQty=${ordDtl.ordCanChgQty}" onclick="fnCreateChange(this, 'cancel');"><span>주문 취소</span></button></p>
  125. </th:block>
  126. <!-- 리뷰 쓰기 버튼 -->
  127. <th:block th:if="${ordDtl.giftAddrInpYn == 'Y' and ordDtl.ordDtlStat != 'G013_98' and ordDtl.ordDtlStat != 'G013_99' and ordDtl.reviewableYn == 'Y' and ordDtl.reviewSq == null}">
  128. <p><button type="button" class="btn btn_primary_line btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, goodsCd=${ordDtl.goodsCd}" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>
  129. </th:block>
  130. <!-- 쇼핑백담기 버튼(구매확정) -->
  131. <th:block th:if="${ordDtl.giftAddrInpYn == 'Y' and ordDtl.ordDtlStat != 'G013_98' and ordDtl.ordDtlStat != 'G013_99'}">
  132. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnCreateCart(this);"><span>쇼핑백 담기</span></button></p>
  133. </th:block>
  134. </th:block>
  135. <!-- 주문 -->
  136. <th:block th:unless="${order.giftPackYn == 'Y'}">
  137. <!-- 주문취소 버튼(결제완료, 상품준비중, 출고처지정) -->
  138. <th:block th:if="${ordDtl.ordDtlStat == 'G013_20' or ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35'}">
  139. <th:block th:if="${ordDtl.ordExchGb == 'O'}">
  140. <!-- 2021.09.01 card007 AS-IS Data 취소처리 못하게 처리 -->
  141. <!-- 2021.09.13 card007 AS-IS Data 취소처리 -->
  142. <!-- <th:block th:if="${#numbers.formatInteger(#strings.replace(ordDtl.ordDt, '.', ''), 1)} >= 20210901">-->
  143. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, delvFeeCd=${ordDtl.delvFeeCd}, ordCanChgQty=${ordDtl.ordCanChgQty}" onclick="fnCreateChange(this, 'cancel');"><span>주문 취소</span></button></p>
  144. <!-- </th:block>-->
  145. </th:block>
  146. <th:block th:unless="${ordDtl.ordExchGb == 'O'}">
  147. <p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>
  148. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnCreateCart(this);"><span>쇼핑백 담기</span></button></p>
  149. </th:block>
  150. </th:block>
  151. <!-- 교환/반품 신청 버튼(배송중, 출고완료, 배송완료) -->
  152. <th:block th:if="${ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55' or ordDtl.ordDtlStat == 'G013_60'}">
  153. <!-- 교환/반품 가능한 상품 -->
  154. <th:block th:if="${ordDtl.changeableYn == 'Y' and ordDtl.returnableYn == 'Y'}">
  155. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, delvFeeCd=${ordDtl.delvFeeCd}, ordCanChgQty=${ordDtl.ordCanChgQty}" onclick="fnCreateChange(this, 'exchange');"><span>교환 신청</span></button></p>
  156. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, delvFeeCd=${ordDtl.delvFeeCd}, ordCanChgQty=${ordDtl.ordCanChgQty}" onclick="fnCreateChange(this, 'return');"><span>반품 신청</span></button></p>
  157. </th:block>
  158. <!-- 교환 신청 불가 상품 -->
  159. <th:block th:if="${ordDtl.changeableYn == 'N' and ordDtl.returnableYn == 'Y'}">
  160. <p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>
  161. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, delvFeeCd=${ordDtl.delvFeeCd}, ordCanChgQty=${ordDtl.ordCanChgQty}" onclick="fnCreateChange(this, 'return');"><span>반품 신청</span></button></p>
  162. </th:block>
  163. <!-- 반품 신청 불가 상품 -->
  164. <th:block th:if="${ordDtl.changeableYn == 'Y' and ordDtl.returnableYn == 'N'}">
  165. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, delvFeeCd=${ordDtl.delvFeeCd}, ordCanChgQty=${ordDtl.ordCanChgQty}" onclick="fnCreateChange(this, 'exchange');"><span>교환 신청</span></button></p>
  166. <p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>
  167. </th:block>
  168. <!-- 교환/반품 신청 불가 상품 -->
  169. <th:block th:if="${ordDtl.changeableYn == 'N' and ordDtl.returnableYn == 'N'}">
  170. <p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>
  171. </th:block>
  172. </th:block>
  173. <!-- 배송조회 버튼(배송중, 배송완료) -->
  174. <th:block th:if="${ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55' or ordDtl.ordDtlStat == 'G013_60'}">
  175. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, shipCompCd=${ordDtl.shipCompCd}, invoiceNo=${ordDtl.invoiceNo}" onclick="fnGoToDelivery(this);"><span>배송 조회</span></button></p>
  176. </th:block>
  177. <!-- 구매확정 버튼(배송완료) -->
  178. <th:block th:if="${ordDtl.ordDtlStat == 'G013_60' and ordDtl.ordReqChgQty == 0}">
  179. <p><button type="button" class="btn btn_primary_line btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnDecideOrder(this);"><span>구매 확정</span></button></p>
  180. </th:block>
  181. <!-- 리뷰작성 버튼(구매확정) -->
  182. <th:block th:if="${ordDtl.ordDtlStat == 'G013_70' and ordDtl.reviewableYn == 'Y' and ordDtl.reviewSq == null}">
  183. <p><button type="button" class="btn btn_primary_line btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, goodsCd=${ordDtl.goodsCd}" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>
  184. </th:block>
  185. <!-- 쇼핑백담기 버튼(입금대기, 배송준비중, 구매확정) -->
  186. <th:block th:if="${ordDtl.ordDtlStat == 'G013_10' or ordDtl.ordDtlStat == 'G013_40' or ordDtl.ordDtlStat == 'G013_70'}">
  187. <p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnCreateCart(this);"><span>쇼핑백 담기</span></button></p>
  188. </th:block>
  189. <!-- 1:1문의 버튼(입금대기, 배송준비중, 구매확정) -->
  190. <th:block th:if="${ordDtl.ordDtlStat == 'G013_10' or ordDtl.ordDtlStat == 'G013_40' or (ordDtl.ordDtlStat == 'G013_70' and (ordDtl.reviewableYn == 'N' or ordDtl.reviewSq > 0))}">
  191. <p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>
  192. </th:block>
  193. </th:block>
  194. </div>
  195. </div>
  196. <!-- 선물 -->
  197. <th:block th:if="${order.giftPackYn == 'Y'}">
  198. <!-- 주소 입력 대기중 -->
  199. <div class="order_text" th:if="${ordDtl.giftAddrInpYn == 'N' and ordDtl.giftLimitDay >= 0}">
  200. <p th:text="|${deliveryAddrInfo.recipNm}님이 주소를 입력하기 전입니다. (입력기한 ${ordDtl.giftLimitDt})|"></p>
  201. </div>
  202. <!-- 선물 완료 -->
  203. <div class="order_text" th:if="${ordDtl.giftAddrInpYn == 'Y' and ordDtl.ordDtlStat != 'G013_98' and ordDtl.ordDtlStat != 'G013_99'}">
  204. <p th:text="|${deliveryAddrInfo.recipNm}님께 선물이 발송되었습니다.|"></p>
  205. </div>
  206. <!-- 선물 취소 -->
  207. <div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_98' and ordDtl.ordDtlStat == 'G013_99'}">
  208. <p th:text="|주소 입력 기한이 경과되어 선물이 취소 되었습니다.|"></p>
  209. </div>
  210. </th:block>
  211. <!-- 주문 -->
  212. <th:block th:unless="${order.giftPackYn == 'Y'}">
  213. <!-- 주문 접수 -->
  214. <div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_10'}">
  215. <p>주문 완료/결제를 기다리고 있습니다.</p>
  216. <!-- 예약 상품 -->
  217. <p th:if="${!#strings.isEmpty(ordDtl.delvResDt)}" th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
  218. </div>
  219. <!-- 결제 완료 -->
  220. <div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_20' and !#strings.isEmpty(ordDtl.delvResDt)}">
  221. <!-- 예약 상품 -->
  222. <p th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
  223. </div>
  224. <!-- 상품준비중 -->
  225. <div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35'}">
  226. <p>배송할 상품을 준비 중입니다.</p>
  227. <!-- 예약 상품 -->
  228. <p th:if="${!#strings.isEmpty(ordDtl.delvResDt)}" th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
  229. </div>
  230. <!-- 배송준비중 -->
  231. <div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_40'}">
  232. <p>상품 준비가 완료되어 곧 배송될 예정입니다.</p>
  233. <!-- 예약 상품 -->
  234. <p th:if="${!#strings.isEmpty(ordDtl.delvResDt)}" th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
  235. </div>
  236. <!-- 배송중 -->
  237. <div class="order_text" th:if="${(ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55') and (ordDtl.changeableYn == 'N' or ordDtl.returnableYn == 'N')}">
  238. <p th:if="${ordDtl.changeableYn == 'N' and ordDtl.returnableYn == 'Y'}">해당 상품은 교환이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>
  239. <p th:if="${ordDtl.changeableYn == 'Y' and ordDtl.returnableYn == 'N'}">해당 상품은 반품이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>
  240. <p th:if="${ordDtl.changeableYn == 'N' and ordDtl.returnableYn == 'N'}">해당 상품은 교환/반품이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>
  241. </div>
  242. <!-- 배송완료 -->
  243. <div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_60'}">
  244. <p th:if="${ordDtl.changeableYn == 'N' and ordDtl.returnableYn == 'Y'}">해당 상품은 교환이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>
  245. <p th:if="${ordDtl.changeableYn == 'Y' and ordDtl.returnableYn == 'N'}">해당 상품은 반품이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>
  246. <p th:if="${ordDtl.changeableYn == 'N' and ordDtl.returnableYn == 'N'}">해당 상품은 교환/반품이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>
  247. <p th:if="${ordDtl.ordReqChgQty == 0}" th:text="|${ordDtl.autoDecideLeftDay}일 후 자동으로 구매확정됩니다.|"></p>
  248. <p th:unless="${ordDtl.ordReqChgQty == 0}" th:text="|반품/교환이 진행 중입니다.|"></p>
  249. </div>
  250. <!-- 구매확정 -->
  251. <div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_70' and ordDtl.reviewableYn == 'Y' and ordDtl.reviewSq == null}">
  252. <p>리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다.</p>
  253. </div>
  254. </th:block>
  255. </div>
  256. </th:block>
  257. <!-- //주문상품 -->
  258. </div>
  259. <div class="goods_foot" th:if="${order.freeGiftList.size() > 0}">
  260. <div class="order_gift">
  261. <span class="title">사은품</span>
  262. <ul>
  263. <li th:each="freeGift, status : ${order.freeGiftList}">
  264. <th:block th:text="${freeGift.goodsNm}"></th:block>
  265. <span th:if="${freeGift.usePoint > 0}" th:text="|(-${#numbers.formatInteger(freeGift.usePoint, 1, 'COMMA')}P)|"></span>
  266. </li>
  267. </ul>
  268. </div>
  269. </div>
  270. </div>
  271. </th:block>
  272. <th:block th:if="${paymentInfo.payMeans == 'G014_20'}">
  273. <h4 class="subH3">무통장 입금 정보</h4>
  274. <div class="tbl type1">
  275. <table>
  276. <colgroup>
  277. <col width="210">
  278. <col width="*">
  279. </colgroup>
  280. <tbody><tr>
  281. <th>
  282. 계좌정보/입금기한
  283. </th>
  284. <td>
  285. <div class="single_line">
  286. <ul>
  287. <li><span th:text="${paymentInfo.vaBank}"></span>&nbsp;<span th:text="|(${paymentInfo.vaNm})|"></span></li>
  288. <li><span th:text="${paymentInfo.vaNo}"></span></li>
  289. <li><span th:text="${paymentInfo.vaDeadlineYmd}"></span>&nbsp;<span th:text="${paymentInfo.vaDeadlineHms}"></span>&nbsp;까지</li>
  290. </ul>
  291. </div>
  292. </td>
  293. </tr>
  294. </tbody></table>
  295. </div>
  296. </th:block>
  297. <!-- 선물 -->
  298. <h4 class="subH3" th:if="${oneData.giftPackYn == 'Y'}">주문자 정보</h4>
  299. <!-- 주문 -->
  300. <h4 class="subH3" th:unless="${oneData.giftPackYn == 'Y'}">주문자/배송지 정보</h4>
  301. <div class="tbl type1">
  302. <table>
  303. <colgroup>
  304. <col width="210">
  305. <col width="*">
  306. </colgroup>
  307. <tbody>
  308. <tr>
  309. <th>
  310. 주문 고객
  311. </th>
  312. <td>
  313. <div class="single_line">
  314. <ul>
  315. <li><span th:text="${orderInfo.ordNm}"></span></li>
  316. <li><span th:text="${orderInfo.ordEmail}"></span></li>
  317. <li><span th:text="${orderInfo.ordPhnno}"></span></li>
  318. </ul>
  319. </div>
  320. </td>
  321. </tr>
  322. <!-- 선물 -->
  323. <tr th:if="${oneData.giftPackYn == 'Y'}">
  324. <th>
  325. 선물 받으실 분
  326. </th>
  327. <td>
  328. <div class="single_line">
  329. <ul>
  330. <li><span th:text="${deliveryAddrInfo.recipNm}"></span></li>
  331. <li><span th:text="${deliveryAddrInfo.recipPhnno}"></span></li>
  332. </ul>
  333. </div>
  334. </td>
  335. </tr>
  336. <tr th:if="${oneData.giftPackYn == 'Y'}">
  337. <th>
  338. 선물 메세지
  339. </th>
  340. <td th:text="${deliveryAddrInfo.giftMsg}" id="giftMsg"></td>
  341. </tr>
  342. <!-- 주문 -->
  343. <tr th:unless="${oneData.giftPackYn == 'Y'}">
  344. <th>
  345. 배송지 정보
  346. </th>
  347. <td>
  348. <div class="block_line">
  349. <ul>
  350. <li>
  351. <span th:text="${deliveryAddrInfo.recipNm}" id="recipNm"></span>
  352. </li>
  353. <li>
  354. <span th:text="${deliveryAddrInfo.recipPhnno}" id="recipPhnno"></span>
  355. </li>
  356. <li>
  357. <span th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|" id="recipAddr"></span>
  358. <button type="button" class="btn btn_default btn_sm" th:if="${canChgAddr == 'Y'}" onclick="fnChangeDeliveryAddr()"><span>배송지 변경</span></button>
  359. </li>
  360. <li>
  361. 배송요청 사항&nbsp;:&nbsp;<span id="delvMemo" th:text="${deliveryAddrInfo.delvMemo}"></span>
  362. <button type="button" class="btn_underline" th:if="${canChgAddr == 'Y'}" onclick="fnChangeDeliveryMemo(this)"><span>변경하기</span></button>
  363. </li>
  364. </ul>
  365. </div>
  366. </td>
  367. </tr>
  368. </tbody>
  369. </table>
  370. </div>
  371. <h4 class="subH3">결제정보</h4>
  372. <div class="tbl type6">
  373. <table>
  374. <colgroup>
  375. <col width="50%">
  376. <col width="50%">
  377. </colgroup>
  378. <tbody>
  379. <tr>
  380. <td>
  381. <dl>
  382. <div>
  383. <dt>총 주문금액 (상품금액+배송비+추가비용)</dt>
  384. <dd>
  385. <div class="price">
  386. <span class="order_total_price"><em th:text="${#numbers.formatInteger((orderAmtInfo.ordAmt + orderAmtInfo.cpn1DcAmt) - orderAmtInfo.cnclRtnAmt + orderAmtInfo.realDelvAmt, 1, 'COMMA')}"></em>원</span>
  387. </div>
  388. </dd>
  389. </div>
  390. <div class="include_item" th:if="${orderAmtInfo.cpn1DcAmt > 0}"> <!-- 할인항목 표기 class명 include_item -->
  391. <dt>즉시할인</dt>
  392. <dd><em th:text="|- ${#numbers.formatInteger(orderAmtInfo.cpn1DcAmt, 1, 'COMMA')}|"></em>원</dd>
  393. </div>
  394. <div class="include_item" th:if="${orderAmtInfo.tmtb1DcAmt + orderAmtInfo.tmtb2DcAmt > 0}">
  395. <dt>다다익선 할인</dt>
  396. <dd><em th:text="|- ${#numbers.formatInteger(orderAmtInfo.tmtb1DcAmt + orderAmtInfo.tmtb2DcAmt, 1, 'COMMA')}|"></em>원</dd>
  397. </div>
  398. <div class="include_item" th:if="${orderAmtInfo.cartCpnDcAmt + orderAmtInfo.goodsCpnDcAmt > 0}">
  399. <dt>쿠폰할인</dt>
  400. <dd><em th:text="|- ${#numbers.formatInteger(orderAmtInfo.cartCpnDcAmt + orderAmtInfo.goodsCpnDcAmt, 1, 'COMMA')}|"></em>원</dd>
  401. </div>
  402. <div class="include_item" th:if="${orderAmtInfo.prePntDcAmt > 0}">
  403. <dt>선포인트 할인</dt>
  404. <dd><em th:text="|- ${#numbers.formatInteger(orderAmtInfo.prePntDcAmt, 1, 'COMMA')}|"></em>P</dd>
  405. </div>
  406. <div class="include_item" th:if="${orderAmtInfo.pntDcAmt > 0}">
  407. <dt>포인트 사용</dt>
  408. <dd><em th:text="|- ${#numbers.formatInteger(orderAmtInfo.pntDcAmt, 1, 'COMMA')}|"></em>P</dd>
  409. </div>
  410. <div class="include_item" th:if="${orderAmtInfo.gfcdUseAmt > 0}">
  411. <dt>상품권 사용</dt>
  412. <dd><em th:text="|- ${#numbers.formatInteger(orderAmtInfo.gfcdUseAmt + orderAmtInfo.delvGfcdUseAmt, 1, 'COMMA')}|"></em>원</dd>
  413. </div>
  414. <div class="include_item" th:if="${paymentInfo.npayPntAmt > 0}">
  415. <dt>마일리지 사용</dt>
  416. <dd><em th:text="|- ${#numbers.formatInteger(orderAmtInfo.npayPntAmt, 1, 'COMMA')}|"></em>원</dd>
  417. </div>
  418. <div class="include_item" th:if="${orderAmtInfo.pgCpnAmt > 0}">
  419. <dt>제휴할인</dt>
  420. <dd><em th:text="|- ${#numbers.formatInteger(orderAmtInfo.pgCpnAmt, 1, 'COMMA')}|"></em>원</dd>
  421. </div>
  422. </dl>
  423. </td>
  424. <td>
  425. <dl>
  426. <div>
  427. <dt>결제 금액</dt>
  428. <dd>
  429. <div class="price">
  430. <span class="pay_total_price"><em th:text="${#numbers.formatInteger(orderAmtInfo.payAmt - orderAmtInfo.npayPntAmt - orderAmtInfo.pgCpnAmt, 1, 'COMMA')}"></em>원</span>
  431. </div>
  432. </dd>
  433. </div>
  434. <div>
  435. <dt class="sr-only">결제방법</dt>
  436. <!-- TODO -->
  437. <!-- Style24 간편결제 처리 (STYLE24 간편결제 : STYLE24 간편결제명 / 카드사명 / 할부개월(일시불)) -->
  438. <dd th:if="${paymentInfo.pgGb == 'NAVER'}">네이버 페이</dd>
  439. <dd th:if="${paymentInfo.pgGb == 'KAKAO'}">카카오 페이</dd>
  440. <dd th:if="${paymentInfo.pgGb == 'PAYCO'}">PAYCO</dd>
  441. <dd th:if="${paymentInfo.pgGb == 'KCP' and paymentInfo.payMeans == 'G014_10'}">실시간계좌이체</dd>
  442. <dd th:if="${paymentInfo.pgGb == 'KCP' and paymentInfo.payMeans == 'G014_20'}">무통장입금</dd>
  443. <dd th:if="${paymentInfo.pgGb == 'KCP' and paymentInfo.payMeans == 'G014_30'}" th:text="|${paymentInfo.cardNm}/${paymentInfo.cardMips}|"></dd>
  444. <dd th:if="${paymentInfo.pgGb == 'KCP' and paymentInfo.payMeans == 'G014_60'}">휴대폰결제</dd>
  445. </div>
  446. <div>
  447. <dt class="sr-only">영수증 확인</dt>
  448. <dd>
  449. <button type="button" class="btn btn_default btn_sm" th:if="${paymentInfo.pgGb == 'KCP' and paymentInfo.payMeans == 'G014_30'}" onclick="fnReceipt('card')"><span>신용카드 전표</span></button>
  450. <button type="button" class="btn btn_default btn_sm" th:if="${paymentInfo.pgGb == 'KCP' and not #strings.isEmpty(paymentInfo.cashAuthNo) and (paymentInfo.payMeans == 'G014_10' or paymentInfo.payMeans == 'G014_20')}" onclick="fnReceipt('cash')"><span>현금 영수증</span></button>
  451. <!-- <th:block th:if="${diffDays < 90}">-->
  452. <button type="button" class="btn btn_default btn_sm" th:if="${orderAmtInfo.gfcdUseAmt > 0 and (cashReceiptsInfo == null or #strings.isEmpty(cashReceiptsInfo.authNo))}" th:attr="ordNo=${ordNo}" onclick="fnRequestCashReceipt(this);"><span>상품권 현금 영수증 신청</span></button>
  453. <!-- </th:block>-->
  454. </dd>
  455. </div>
  456. </dl>
  457. <dl>
  458. <div>
  459. <dt>적립 예정 포인트</dt>
  460. <dd>
  461. <span class="save_point"><em th:text="|${#numbers.formatInteger(orderAmtInfo.savePntAmt, 1, 'COMMA')}P|"></em></span>
  462. </dd>
  463. </div>
  464. </dl>
  465. </td>
  466. </tr>
  467. </tbody>
  468. </table>
  469. <p class="t_help">※ NPAY등의 대체결제수단으로 결제 시 해당 결제 플랫폼에서 영수증 확인이 가능합니다.</p>
  470. </div>
  471. <div class="btn_footer_area">
  472. <button type="button" class="btn btn_dark btn_md" onclick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);"><span>확인</span></button>
  473. </div>
  474. </div>
  475. </form>
  476. </div>
  477. <!-- // CONT-BODY -->
  478. </div>
  479. <!-- 환불계좌 등록 팝업 -->
  480. <div class="modal fade refund_pop" id="refundPop" tabindex="-1" role="dialog" aria-labelledby="refundLabel" aria-hidden="true">
  481. <div class="modal-dialog" role="document">
  482. <div class="modal-content"></div>
  483. </div>
  484. <a href="#close-modal" rel="modal:close" id="refundPop_close" class="close-modal">Close</a>
  485. <a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
  486. </div>
  487. <!-- //환불계좌 등록 팝업 -->
  488. </div>
  489. <script src="/ux/plugins/gaga/gaga.paging.js"></script>
  490. <script th:inline="javascript">
  491. let ordNo = [[${ordNo}]];
  492. var isLogin = [[${isLogin}]];
  493. let orderList = [[${orderList}]];
  494. let oneData = [[${oneData}]];
  495. let paymentInfo = [[${paymentInfo}]];
  496. let orderAmtInfo = [[${orderAmtInfo}]];
  497. let deliveryAddrInfo = [[${deliveryAddrInfo}]];
  498. let kcpReceiptUrl = [[${@environment.getProperty('pg.kcp.receipt.url')}]];
  499. let giftMsg = [[${deliveryAddrInfo.giftMsg}]];
  500. let jsonObj = {};
  501. $(document).ready(function() {
  502. // 마이페이지 LNB 설정
  503. fnSetMypageLnbList(1);
  504. // 마이페이지 location 설정
  505. fnSetMypageLocation('주문확인/배송조회', '_PAGE_MYPAGE_ORDER_LIST', '주문상세');
  506. // 선물메시지
  507. if ($("#giftMsg").html() != null) {
  508. $("#giftMsg").html(giftMsg.replaceAll("\n", "</br>"));
  509. }
  510. });
  511. // 전체취소 버튼 클릭 이벤트
  512. var fnAllCancel = function() {
  513. // 환불계좌 체크
  514. let accountNo = $('#orderDetailForm input[name=accountNo]').val();
  515. let accountNm = $('#orderDetailForm input[name=accountNm]').val();
  516. let bankCd = $('#orderDetailForm input[name=bankCd]').val();
  517. if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_30' && (gagajf.isNull(accountNo) || gagajf.isNull(accountNm) || gagajf.isNull(bankCd))) {
  518. let data = {};
  519. data.ordNo = oneData.ordNo;
  520. data.accountNm = oneData.accountNm;
  521. let jsonData = JSON.stringify(data);
  522. $.ajax( {
  523. type : "POST",
  524. url : '/mypage/refund/account/register/popup/form',
  525. data : jsonData,
  526. dataType : 'html',
  527. beforeSend : function(xhr, settings) {
  528. xhr.setRequestHeader("AJAX" , "true");
  529. xhr.setRequestHeader('Accept' , 'application/json');
  530. xhr.setRequestHeader('Content-Type' , 'application/json');
  531. },
  532. success : function(result) {
  533. $("#refundPop .modal-dialog .modal-content").html(result);
  534. $("#refundPop").modal("show");
  535. }
  536. });
  537. return false;
  538. }
  539. mcxDialog.confirm('전체취소 처리하시겠습니까?', {
  540. cancelBtnText: "취소",
  541. sureBtnText: "확인",
  542. sureBtnClick: function(){
  543. // 취소요청 데이터 설정
  544. let url = '/mypage/cancel';
  545. // 주문상세번호 설정
  546. let ordDtlNoArr = [];
  547. $.each($('#orderDetailForm input[name=ordDtlNoArr]'), function(idx, item) {
  548. ordDtlNoArr.push($(item).val());
  549. });
  550. // 취소 수량 설정
  551. let cnclRtnReqQtyArr = [];
  552. $.each($('#orderDetailForm input[name=cnclRtnReqQtyArr]'), function(idx, item) {
  553. cnclRtnReqQtyArr.push($(item).val());
  554. });
  555. // 전체 취소 처리
  556. let data = {};
  557. data.ordNo = ordNo;
  558. data.chgReason = 'G686_10';
  559. data.chgReasonNm = '고객변심';
  560. data.accountNo = accountNo;
  561. data.accountNm = accountNm;
  562. data.bankCd = bankCd;
  563. data.isCustomer = true;
  564. data.reqGbn = 'cnclComplete';
  565. data.ordDtlNoArr = ordDtlNoArr;
  566. data.cnclRtnReqQtyArr = cnclRtnReqQtyArr;
  567. let jsonData = JSON.stringify(data);
  568. // 취소 처리 가능 여부 조회
  569. gagajf.ajaxJsonSubmit('/mypage/wms/cancel/available', jsonData, function(result) {
  570. let cancelYn = result.cancelYn;
  571. if (cancelYn == 'Y') {
  572. // 전체취소 처리
  573. gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
  574. cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);
  575. }, true);
  576. } else {
  577. mcxDialog.alert('이미 배송처리 되어 전체취소 처리에 실패 하였습니다.');
  578. }
  579. });
  580. }
  581. });
  582. }
  583. // 배송지 정보 설정
  584. var delvAddrSet = function(delvObj) {
  585. let delvAddrSq = deliveryAddrInfo.delvAddrSq;
  586. let recipNm = delvObj.recipNm;
  587. let recipPhnno = delvObj.recipPhnno;
  588. let recipZipcode = delvObj.recipZipcode;
  589. let recipBaseAddr = delvObj.recipBaseAddr;
  590. let recipDtlAddr = delvObj.recipDtlAddr;
  591. let delvMemo = delvObj.delvMemo;
  592. $('#recipNm').text(recipNm);
  593. $('#recipPhnno').text(recipPhnno);
  594. $('#recipAddr').text(recipBaseAddr + ' ' + recipDtlAddr);
  595. $('#delvMemo').text(delvMemo);
  596. let url = '/mypage/change/delvery/addr';
  597. let data = {};
  598. data.delvAddrSq = delvAddrSq;
  599. data.recipNm = recipNm;
  600. data.recipPhnno = recipPhnno;
  601. data.recipZipcode = recipZipcode;
  602. data.recipBaseAddr = recipBaseAddr;
  603. data.recipDtlAddr = recipDtlAddr;
  604. data.delvMemo = delvMemo;
  605. let jsonData = JSON.stringify(data);
  606. gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
  607. })
  608. }
  609. // 배송메모 설정
  610. var delvMemoSet = function(delvMemoObj) {
  611. let url = '/mypage/change/delvery/memo';
  612. let delvMemo = delvMemoObj.delvMemo;
  613. let data = {};
  614. data.delvMemo = delvMemo;
  615. data.delvAddrSq = oneData.delvAddrSq;
  616. let jsonData = JSON.stringify(data);
  617. gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
  618. })
  619. $("#delvMemo").text(delvMemo);
  620. }
  621. // 환불계좌 등록 콜백 처리
  622. var fnRegisterAccountCallback = function(result) {
  623. // 환불계좌 정보 설정
  624. $('#orderDetailForm input[name=accountNo]').val(result.accountNo);
  625. $('#orderDetailForm input[name=accountNm]').val(result.accountNm);
  626. $('#orderDetailForm input[name=bankCd]').val(result.bankCd);
  627. // 반품처리
  628. fnAllCancel();
  629. }
  630. // 상품권 현금영수증 신청 처리
  631. var fnRequestCashReceipt = function(param) {
  632. let url = '/mypage/cash/receipts/request';
  633. let ordNo = $(param).attr('ordNo');
  634. let data = {};
  635. data.ordNo = ordNo;
  636. let jsonData = JSON.stringify(data);
  637. gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
  638. cfnGoToPage(_PAGE_MYPAGE_ORDER_DETAIL + ordNo);
  639. }, true);
  640. }
  641. // 전체구매확정 버튼 클릭 이벤트
  642. var fnAllDecideOrder = function(param) {
  643. let orderDecisionArr = [];
  644. let ordNo = $(param).attr('ordNo');
  645. // 주문상세번호 설정
  646. $.each($('#orderDetailForm input[name=ordDtlNoArr]'), function(idx, item) {
  647. orderDecisionArr.push($(item).val());
  648. });
  649. if (orderDecisionArr.length == 0) {
  650. mcxDialog.alert('구매확정 가능한 상품이 없습니다.');
  651. return false;
  652. }
  653. mcxDialog.confirm('구매확정 후에는 반품/교환이 불가합니다. 구매확정하시겠습니까?', {
  654. cancelBtnText: "취소",
  655. sureBtnText: "확인",
  656. sureBtnClick: function(){
  657. let data = {};
  658. data.ordNo = ordNo;
  659. data.ordDtlNoArr = orderDecisionArr;
  660. var jsonData = JSON.stringify(data);
  661. gagajf.ajaxJsonSubmit('/mypage/order/decision'
  662. , jsonData
  663. , function() {
  664. if (typeof(fnReloadStatusCount) == 'function') {
  665. fnReloadStatusCount();
  666. } else {
  667. cfnGoToPage(_PAGE_MYPAGE_ORDER_DETAIL + ordNo);
  668. }
  669. });
  670. }
  671. });
  672. }
  673. </script>
  674. </th:block>
  675. </body>
  676. </html>