OrderFormMob.html 87 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449
  1. <!DOCTYPE html>
  2. <html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="mob/common/layout/SubLayoutMob">
  3. <!--
  4. *******************************************************************************
  5. * @source : OrderFormMob.html
  6. * @desc : 주문/결제 Page
  7. *============================================================================
  8. * STYLE24
  9. * Copyright(C) 2020 TSIT, All rights reserved.
  10. *============================================================================
  11. * VER DATE AUTHOR DESCRIPTION
  12. * === =========== ========== =============================================
  13. * 1.0 2021.04.05 jsh77b 최초 작성
  14. *******************************************************************************
  15. -->
  16. <body>
  17. <th:block layout:fragment="content">
  18. <link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css">
  19. <script type="text/javascript" src="/ux/pc/js/swiper.min.js"></script>
  20. <script type="text/javascript" src="/ux/pc/js/slick.min.js"></script>
  21. <script type="text/javascript" src="/ux/pc/js/jquery-ui.js"></script>
  22. <!-- payment.js -->
  23. <script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
  24. <script type="text/javascript" src="/biz/payment.js"></script>
  25. <form id="order_info" name="order_info" method="post" action="/order/pay/result/response" ></form>
  26. <!-- 주문금액정보표현 -->
  27. <form id="orderAmtForm" name="orderAmtForm">
  28. <!-- 고객정보 -->
  29. <table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderInfo" id="orderInfo">
  30. <tbody>
  31. <tr style="height:30px;">
  32. <th>custNm</th>
  33. <th>email</th>
  34. <th>cellPhnno</th>
  35. <th>recipNm</th>
  36. <th>recipPhnno</th>
  37. <th>recipZipcode</th>
  38. <th>recipBaseAddr</th>
  39. <th>recipDtlAddr</th>
  40. <th>delvMemo</th>
  41. <th>sexGb</th>
  42. <th>birthYmd</th>
  43. <th>giftPackYn</th>
  44. </tr>
  45. <tr style="height:30px;">
  46. <td class="custNm"></td>
  47. <td class="email"></td>
  48. <td class="cellPhnno"></td>
  49. <td class="recipNm"></td>
  50. <td class="recipPhnno"></td>
  51. <td class="recipZipcode"></td>
  52. <td class="recipBaseAddr"></td>
  53. <td class="recipDtlAddr"></td>
  54. <td class="delvMemo"></td>
  55. <td class="sexGb"></td>
  56. <td class="birthYmd"></td>
  57. <td class="giftPackYn" th:text="${giftPackYn}"></td>
  58. </tr>
  59. </tbody>
  60. </table>
  61. <!-- //고객정보 -->
  62. <!-- 사은품정보 -->
  63. <table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="freegiftInfo">
  64. <tr style="height:30px;">
  65. <th>freegiftValArr</th>
  66. <th>freegiftUsePointArr</th>
  67. <th>freegiftSqArr</th>
  68. <th>freegiftGoodsArr</th>
  69. </tr>
  70. <tr style="height:30px;">
  71. <td class="freegiftValArr"></td>
  72. <td class="freegiftUsePointArr"></td>
  73. <td class="freegiftSqArr"></td>
  74. <td class="freegiftGoodsArr"></td>
  75. </tr>
  76. </table>
  77. <!-- //사은품정보 -->
  78. <!-- 주문상세금액 -->
  79. <table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderDetailInfo" id="orderDetailInfo">
  80. <tr style="height:30px;">
  81. <th>cartSq</th>
  82. <th style="display:none">goodsNm</th>
  83. <th>goodsCd</th>
  84. <th>goodsType</th>
  85. <th>itemCd</th>
  86. <th>optCd</th>
  87. <th style="display:none">optCd1</th>
  88. <th style="display:none">optCd2</th>
  89. <th style="display:none">itemQtyr</th>
  90. <th>orgCurrPrice</th>
  91. <th>cpn1DcSq</th>
  92. <th>cpn1DcAmt</th>
  93. <th>optAddPrice</th>
  94. <th>goodsQty</th>
  95. <th>ordAmt</th>
  96. <th>tmtb1Sq</th>
  97. <th>tmtb1DcAmt</th>
  98. <th>tmtb2Sq</th>
  99. <th>tmtb2DcAmt</th>
  100. <th>goodsCpnSq</th>
  101. <th>goodsCpnDcAmt</th>
  102. <th>cartCpnSq</th>
  103. <th>cartCpnDcAmt</th>
  104. <th>prePntDcAmt1</th>
  105. <th>dcSumAmt</th>
  106. <th>pntDcAmt1</th>
  107. <th>gfcdUseAmt1</th>
  108. <th>realOrdAmt1</th>
  109. <th>savePntAmt1</th>
  110. <th>shotDelvYn</th>
  111. <th>foreignYn</th>
  112. <th>orderMadeYn</th>
  113. <th>delvFeeCd</th>
  114. </tr>
  115. <th:block th:each="delvAllCart, index : ${delvAllCartList}">
  116. <th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
  117. <th:block th:each="goods, i : ${delvAllCart}">
  118. <tr style="height:30px;">
  119. <td class="cartSq" th:text="${goods.cartSq}"></td>
  120. <td class="goodsNm" th:text="${goods.goodsNm}" style="display:none"></td>
  121. <td class="goodsCd" th:text="${goods.goodsCd}"></td>
  122. <td class="goodsType" th:text="${goods.goodsType}"></td>
  123. <td class="itemCd" th:text="${goods.itemCd}"></td>
  124. <td class="optCd" th:text="${goods.optCd}"></td>
  125. <td class="optCd1" th:text="${goods.optCd1}" style="display:none"></td>
  126. <td class="optCd2" th:text="${goods.optCd2}" style="display:none"></td>
  127. <td class="itemQtyr" th:text="${goods.itemQtyr}" style="display:none"></td>
  128. <td class="orgCurrPrice" th:text="${goods.orgCurrPrice}"></td>
  129. <td class="cpn1CpnSq" th:text="${goods.cpn1CpnSq}"></td>
  130. <td class="cpn1DcAmt" th:text="${goods.orgCurrPrice} - ${goods.currPrice}"></td>
  131. <td class="optAddPrice" th:text="${goods.optAddPrice}"></td>
  132. <td class="goodsQty" th:text="${goods.goodsQty}"></td>
  133. <td class="ordAmt">0</td>
  134. <th:block th:if="${goods.applyQtySectionYn} == 'Y' and ${goods.qtyTmtbSq} > 0">
  135. <td class="tmtb1Sq" th:text="${goods.qtyTmtbSq}"></td>
  136. <td class="tmtb1DcAmt" th:text="${goods.tmtb1DcAmt}"></td>
  137. </th:block>
  138. <th:block th:if="${goods.applyQtySectionYn} != 'Y'">
  139. <td class="tmtb1Sq">0</td>
  140. <td class="tmtb1DcAmt">0</td>
  141. </th:block>
  142. <th:block th:if="${goods.applyAmtSectionYn} == 'Y' and ${goods.amtTmtbSq} > 0">
  143. <td class="tmtb2Sq" th:text="${goods.amtTmtbSq}"></td>
  144. <td class="tmtb2DcAmt" th:text="${goods.tmtb2DcAmt}"></td>
  145. </th:block>
  146. <th:block th:if="${goods.applyAmtSectionYn} != 'Y'">
  147. <td class="tmtb2Sq" >0</td>
  148. <td class="tmtb2DcAmt" >0</td>
  149. </th:block>
  150. <td class="goodsCpnSq">0</td>
  151. <td class="goodsCpnDcAmt">0</td>
  152. <td class="cartCpnSq">0</td>
  153. <td class="cartCpnDcAmt">0</td>
  154. <td class="prePntDcAmt1" th:text="${goods.prePntDcAmt}"></td>
  155. <td class="dcSumAmt">0</td>
  156. <td class="pntDcAmt1">0</td>
  157. <td class="gfcdUseAmt1">0</td>
  158. <td class="realOrdAmt1">0</td>
  159. <td class="savePntAmt1" th:text="${goods.savePntAmt}"></td>
  160. <td class="shotDelvYn" th:text="${goods.shotDelvYn}"></td>
  161. <td class="foreignBuyYn" th:text="${goods.foreignBuyYn}"></td>
  162. <td class="orderMadeYn" th:text="${goods.orderMadeYn}"></td>
  163. <td class="delvFeeCd" th:text="${goods.delvFeeCd}"></td>
  164. </tr>
  165. </th:block>
  166. </th:block>
  167. </th:block>
  168. </table>
  169. <!-- //주문상세금액 -->
  170. <!-- 배송단위목록 -->
  171. <table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="delvFeeCdInfo" id="delvFeeCdInfo">
  172. <tr style="height:30px;">
  173. <th>supplyCompCd</th>
  174. <th>delvFeeCd</th>
  175. <th>delvFee</th>
  176. <th>delvCpnSq</th>
  177. <th>delvCpnDcAmt</th>
  178. </tr>
  179. <th:block th:each="delvFeeCd, index : ${delvFeeCdList}">
  180. <tr style="height:30px;">
  181. <td class="supplyCompCd" th:text="${delvFeeCd.supplyCompCd}"></td>
  182. <td class="delvFeeCd" th:text="${delvFeeCd.delvFeeCd}"></td>
  183. <td class="delvFee" th:text="${delvFeeCd.delvFee}"></td>
  184. <td class="delvCpnSq">0</td>
  185. <td class="delvCpnDcAmt">0</td>
  186. </tr>
  187. </th:block>
  188. </table>
  189. <!-- //배송단위목록 -->
  190. <!-- 주문금액합계 -->
  191. <table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderSumAmtInfo" id="orderSumAmtInfo">
  192. <tr style="height:30px;">
  193. <th>orgGoodsSumAmt</th>
  194. <th>delvSumAmt</th>
  195. <th>freegiftUsePnt</th>
  196. <th>cpn1DcSumAmt</th>
  197. <th>ordSumAmt</th>
  198. <th>tmtb1DcSumAmt</th>
  199. <th>tmtb2DcSumAmt</th>
  200. <th>tmtbDcSumAmt</th>
  201. <th>goodsCpnDcSumAmt</th>
  202. <th>cartCpnDcSumAmt</th>
  203. <th>delvCpnDcSumAmt</th>
  204. <th>cpnDcSumAmt</th>
  205. <th>prePntDcAmt</th>
  206. <th>pntDcSumAmt</th>
  207. <th>gfcdUseSumAmt</th>
  208. <th>realOrdSumAmt</th>
  209. <th>savePntSumAmt</th>
  210. </tr>
  211. <tr style="height:30px;">
  212. <td class="orgGoodsSumAmt">0</td>
  213. <td class="delvSumAmt" th:text="${sumDelvFee}"></td>
  214. <td class="freegiftUsePnt">0</td>
  215. <td class="cpn1DcSumAmt">0</td>
  216. <td class="ordSumAmt">0</td>
  217. <td class="tmtb1DcSumAmt">0</td>
  218. <td class="tmtb2DcSumAmt">0</td>
  219. <td class="tmtbDcSumAmt">0</td>
  220. <td class="goodsCpnDcSumAmt">0</td>
  221. <td class="cartCpnDcSumAmt">0</td>
  222. <td class="delvCpnDcSumAmt">0</td>
  223. <td class="cpnDcSumAmt">0</td>
  224. <td class="prePntDcSumAmt">0</td>
  225. <td class="pntDcSumAmt">0</td>
  226. <td class="gfcdUseSumAmt">0</td>
  227. <td class="realOrdSumAmt">0</td>
  228. <td class="savePntSumAmt">0</td>
  229. </tr>
  230. </table>
  231. <!-- //주문금액합계 -->
  232. </form>
  233. <!-- //주문금액정보표현 -->
  234. <!-- 주문고객정보 -->
  235. <form id="orderForm" name="orderForm">
  236. <main role="" id="" class="container od">
  237. <section class="content odPayment od_gift">
  238. <form action="" class="form_wrap">
  239. <!-- 주문내역 -->
  240. <div class="inner wide" id="orderListInfo" style="display:none"></div>
  241. <!-- //주문내역 -->
  242. <!-- 주문고객 -->
  243. <div class="inner wide" id="custemerInfo" style="display:none"></div>
  244. <!-- //주문고객 -->
  245. <!-- 선물받으실분 -->
  246. <div class="inner wide" id="orderGiftInfo" style="display:none"></div>
  247. <!-- //선물받으실분 -->
  248. <!-- 배송지 정보 -->
  249. <div class="inner wide" id="deliveryAddrInfo" style="display:none"></div>
  250. <!-- //배송지 정보 -->
  251. <!-- 개인통관고유부호 -->
  252. <div class="inner wide" id="entryInfo" style="display:none"></div>
  253. <!-- //개인통관고유부호 -->
  254. <!-- 주문제작상품동의 -->
  255. <div class="inner wide" id="madeInfo" style="display:none"></div>
  256. <!-- //주문제작상품동의 -->
  257. <!-- 사은품 -->
  258. <div class="inner wide" id="freegiftInfo" style="display:none"></div>
  259. <!-- //사은품 -->
  260. <!-- 할인/혜택 사용 -->
  261. <div class="inner wide" id="dcAmtInfo" style="display:none"></div>
  262. <!-- //할인/혜택 사용 -->
  263. <!-- 결제수단 선택 -->
  264. <div class="inner wide" id="paymentInfo" style="display:none"></div>
  265. <!-- //결제수단 선택 -->
  266. <!-- 결제 정보 -->
  267. <div class="inner">
  268. <div class="tbl_wrap pay_wrap">
  269. <div class="tbl_tit">
  270. <h3>결제 예정금액</h3>
  271. <strong class="pay"><span class="realOrdAmt"></span>원</strong>
  272. </div>
  273. <div class="tbl type1">
  274. <table>
  275. <colgroup>
  276. <col width="227">
  277. <col width="*">
  278. </colgroup>
  279. <tbody>
  280. <tr>
  281. <td>
  282. <dl>
  283. <div>
  284. <dt>주문금액</dt>
  285. <dd><div><span class="orgGoodsSumAmt" th:text="${#numbers.formatInteger(orgGoodsSumAmt, 1, 'COMMA')}"></span>원</div></dd>
  286. </div>
  287. <div>
  288. <dt>배송비</dt>
  289. <dd><div><span class="delvSumAmt" th:text="${#numbers.formatInteger(sumDelvFee, 1, 'COMMA')}"></span>원</div></dd>
  290. </div>
  291. <div>
  292. <dt>할인금액</dt>
  293. <dd><div><span class="dcSumAmt disc_amount"></span>원</div></dd>
  294. </div>
  295. </dl>
  296. </td>
  297. </tr>
  298. </tbody>
  299. </table>
  300. </div>
  301. </div>
  302. <div class="area_paymentinfo">
  303. <div class="paymentinfo">
  304. <div class="payinfo_blk_wrap">
  305. <a href=""> 구매조건 확인 및 결제대행 서비스 약관 동의 <span>보기</span>
  306. </a>
  307. <div class="payinfo_blk_parent">
  308. <div class="payinfo_blk">
  309. <a href=""> 개인정보 제공에 대한 동의 <span>보기</span></a>
  310. <div class="infotxt">개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  311. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  312. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  313. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  314. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  315. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  316. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  317. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  318. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  319. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  320. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  321. 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의
  322. 내용입니다.개인정보제공에 대한 동의 내용입니다.</div>
  323. </div>
  324. <div class="payinfo_blk">
  325. <a href=""> 결제대행 서비스 약관 동의 <span>보기</span></a>
  326. <div class="infotxt">결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  327. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  328. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  329. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  330. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  331. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  332. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  333. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  334. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  335. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  336. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  337. 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의
  338. 내용입니다.결제대행서비스 약관 동의 내용입니다.</div>
  339. </div>
  340. </div>
  341. </div>
  342. </div>
  343. <div class="agree_payment">위 주문내역을 확인 하였으며, 회원 본인은 결제에 동의합니다.</div>
  344. </div>
  345. </div>
  346. <!-- //결제 정보 -->
  347. <div class="inner wide">
  348. <div class="btn_group btn_group_flex">
  349. <div>
  350. <button type="button" class="btn btn_primary">
  351. 동의 후 <span class="total_price" id="btn_payment">0</span>원 결제하기
  352. </button>
  353. </div>
  354. </div>
  355. </div>
  356. </form>
  357. </section>
  358. </main>
  359. <!-- 할인쿠폰 변경 팝업 -->
  360. <div class="modal pop_full couponModify_pop" id="couponModifyPop" tabindex="-1" role="dialog" aria-labelledby="couponModifyLabel" aria-hidden="true"></div>
  361. <!-- //할인쿠폰 변경 팝업 -->
  362. <!-- 배송비 쿠폰선택_팝업 -->
  363. <div id="couponSelectPop02" class="popup_box couponSelectPop couponSelectPop02"></div>
  364. <!-- //배송비 쿠폰선택_팝업 -->
  365. <script th:inline="javascript">
  366. // 배송관련정보 변수선언
  367. var cartGoodsList = [[${cartGoodsList}]] // 배송목록
  368. var shotCnt = [[${shotCnt}]]; // 자사 총알 배송건수
  369. var wmsCnt = [[${wmsCnt}]]; // 자사 일반 배송건수
  370. var shotWmsCnt = [[${shotWmsCnt}]]; // 자사 총알,일반 배송건수
  371. var resCnt = [[${resCnt}]]; // 자사 예약 배송건수
  372. var delvCnt = [[${delvCnt}]]; // 입점 일반 배송건수
  373. var orgSumDelvFee = [[${sumDelvFee}]]; // 최초배송비합계
  374. var prePntDcAmt = [[${prePntDcAmt}]]; // 선포인트사용가능금액
  375. var custNm = [[${order.custNm}]]; // 주문자명
  376. var cellPhnno = [[${order.cellPhnno}]]; // 핸드폰번호
  377. var email = [[${order.email}]]; // 이메일
  378. var recipZipcode = [[${order.recipZipcode}]]; // 우편번호
  379. var recipBaseAddr = [[${order.recipBaseAddr}]]; // 기본주소
  380. var recipDtlAddr = [[${order.recipDtlAddr}]]; // 상세주소
  381. var cartSqArr = [[${order.cartSqArr}]]; // 장바구니시퀀스 목록
  382. var shotDelvUseYn = [[${order.shotDelvUseYn}]]; // 총알배송사용여부(장바구니)
  383. var shotDelvYn = [[${order.shotDelvUseYn}]]; // 총알배송사용여부(장바구니)
  384. var foreignBuyYn = [[${order.foreignBuyYn}]]; // 해외구매대행
  385. var foreignBuyYn = [[${foreignBuyYn}]]; // 해외구매대행여부
  386. var orderMadeYn = [[${orderMadeYn}]]; // 주문제작상품여부
  387. var isLogin = [[${isLogin}]]; // 로그인여부
  388. var giftPackYn = [[${giftPackYn}]]; // 선물받기여부
  389. var custCpnSq = 0;
  390. var cpnIndex = 0;
  391. var cpnApplyTemp = false;
  392. //AJAX 로드를 위한 변수 설정
  393. var jsonObj = {};
  394. // 컨텐츠 호출
  395. $(document).ready( function() {
  396. // 999. 개발화면정보설정
  397. var devTemp = false;
  398. var arr = []
  399. arr[0] = "orderInfo";
  400. arr[1] = "freegiftInfo";
  401. arr[2] = "orderDetailInfo";
  402. arr[3] = "delvFeeCdInfo";
  403. arr[4] = "orderSumAmtInfo";
  404. if (devTemp) {
  405. $("table").each(function(){
  406. var name = $(this).attr("name");
  407. for (i=0 ; i<arr.length ; i++) {
  408. if (name == arr[i]) {
  409. $(this).show();
  410. }
  411. }
  412. });
  413. }
  414. // 1. 타이틀설정
  415. $("#htopTitle").text("주문/결제");
  416. // 2. 장바구니시퀀스 배열 변환
  417. cartSqArr = String(cartSqArr).split(",");
  418. // AJAX 로드를 위한 변수 설정
  419. jsonObj = {
  420. "custNm" : custNm
  421. , "cellPhnno" : cellPhnno
  422. , "email" : email
  423. , "recipZipcode" : recipZipcode
  424. , "recipBaseAddr" : recipBaseAddr
  425. , "recipDtlAddr" : recipDtlAddr
  426. , "cartSqArr" : cartSqArr
  427. , "dispYn" : "N"
  428. , "shotDelvYn" : shotDelvUseYn
  429. , "shotDelvUseYn" : shotDelvUseYn
  430. , "foreignBuyYn" : foreignBuyYn
  431. , "orderMadeYn" : orderMadeYn
  432. , "custDelvAddrSq" : 0
  433. , "giftPackYn" : giftPackYn
  434. }
  435. jsonData = JSON.stringify(jsonObj);
  436. // 1. AJAX 정보(회원정보로드)
  437. custemerInfoSet();
  438. });
  439. // 1. 함수기능 정의
  440. // 1.1 고객정보로드
  441. var custemerInfoSet = function() {
  442. $.ajax( {
  443. type : "POST",
  444. url : '/order/custemerInfo',
  445. data : JSON.stringify(jsonObj),
  446. dataType : 'html',
  447. beforeSend : function(xhr, settings) {
  448. xhr.setRequestHeader("AJAX" , "true");
  449. xhr.setRequestHeader('Accept' , 'application/json');
  450. xhr.setRequestHeader('Content-Type' , 'application/json');
  451. gagajf.showProgressbar(true);
  452. },
  453. success : function(result) {
  454. if (result != null) {
  455. $("#custemerInfo").css("display", "block");
  456. $("#custemerInfo").html(result);
  457. // 고객정보설정
  458. $("#orderAmtForm .custNm").text($("#orderForm input[name='custNm']").val());
  459. $("#orderAmtForm .email").text($("#orderForm input[name='email']").val());
  460. $("#orderAmtForm .cellPhnno").text($("#orderForm input[name='cellPhnno']").val());
  461. $("#orderAmtForm .sexGb").text($("#orderForm input[name='sexGb']").val());
  462. $("#orderAmtForm .birthYmd").text($("#orderForm input[name='birthYmd']").val());
  463. }
  464. // 1.2 개인통관부호 정보
  465. if (foreignBuyYn == "Y") {
  466. entryInfoSet();
  467. }
  468. // 1.3 주문제작상품동의여부
  469. if (orderMadeYn == "Y") {
  470. madeInfoSet();
  471. }
  472. // 1.4 선물하기여부체크
  473. if (giftPackYn == "Y") {
  474. // 1.4.1 선물하기정보로드
  475. orderGiftInfoSet(jsonObj, true);
  476. } else {
  477. // 1.4.2 배송정보로드
  478. deliveryAddrInfoSet(jsonObj, true);
  479. }
  480. }
  481. });
  482. }
  483. // 1.2 개인통관부호 정보
  484. var entryInfoSet = function() {
  485. $.ajax( {
  486. type : "POST",
  487. url : '/order/entryInfo',
  488. data : JSON.stringify(jsonObj),
  489. dataType : 'html',
  490. beforeSend : function(xhr, settings) {
  491. xhr.setRequestHeader("AJAX" , "true");
  492. xhr.setRequestHeader('Accept' , 'application/json');
  493. xhr.setRequestHeader('Content-Type' , 'application/json');
  494. gagajf.showProgressbar(true);
  495. },
  496. success : function(result) {
  497. $("#entryInfo").css("display", "block");
  498. $("#entryInfo").html(result);
  499. }
  500. });
  501. }
  502. // 1.3 주문제작상품동의여부
  503. var madeInfoSet = function() {
  504. $.ajax( {
  505. type : "POST",
  506. url : '/order/madeInfo',
  507. data : JSON.stringify(jsonObj),
  508. dataType : 'html',
  509. beforeSend : function(xhr, settings) {
  510. xhr.setRequestHeader("AJAX" , "true");
  511. xhr.setRequestHeader('Accept' , 'application/json');
  512. xhr.setRequestHeader('Content-Type' , 'application/json');
  513. gagajf.showProgressbar(true);
  514. },
  515. success : function(result) {
  516. $("#madeInfo").css("display", "block");
  517. $("#madeInfo").html(result);
  518. }
  519. });
  520. }
  521. // 1.4.1 선물받기여부정보로드
  522. var orderGiftInfoSet = function() {
  523. $.ajax( {
  524. type : "POST",
  525. url : '/order/orderGiftInfo',
  526. data : JSON.stringify(jsonObj),
  527. dataType : 'html',
  528. beforeSend : function(xhr, settings) {
  529. xhr.setRequestHeader("AJAX" , "true");
  530. xhr.setRequestHeader('Accept' , 'application/json');
  531. xhr.setRequestHeader('Content-Type' , 'application/json');
  532. gagajf.showProgressbar(true);
  533. },
  534. success : function(result) {
  535. $("#orderGiftInfo").css("display", "block");
  536. $("#orderGiftInfo").html(result);
  537. // 직접입력 선택 버튼
  538. $("#orderGiftInfo .gift_tab .fold_cont ul li").on("click", function(){
  539. $(this).parent().find("li").removeClass("active");
  540. $(this).addClass("active");
  541. $(this).parent().parent().find("input[name=recipNm]").val("");
  542. $(this).parent().parent().find("input[name=recipPhnno]").val("");
  543. // 직접입력시 입력창 활성화
  544. if ($(this).find("span").text() == "직접입력") {
  545. $(this).parent().parent().find("input[name=recipNm]").attr("readOnly", false);
  546. $(this).parent().parent().find("input[name=recipPhnno]").attr("readOnly", false);
  547. } else {
  548. $(this).parent().parent().find("input[name=recipNm]").attr("readOnly", true);
  549. $(this).parent().parent().find("input[name=recipPhnno]").attr("readOnly", true);
  550. }
  551. });
  552. // 주문목록정보로드
  553. orderListInfoSet(JSON.stringify(jsonObj), true);
  554. }
  555. });
  556. }
  557. // 1.4.2 배송정보로드
  558. var deliveryAddrInfoSet = function(delvObj, temp) {
  559. $.ajax( {
  560. type : "POST",
  561. url : '/order/deliveryAddrInfo',
  562. data : JSON.stringify(delvObj),
  563. dataType : 'html',
  564. beforeSend : function(xhr, settings) {
  565. xhr.setRequestHeader("AJAX" , "true");
  566. xhr.setRequestHeader('Accept' , 'application/json');
  567. xhr.setRequestHeader('Content-Type' , 'application/json');
  568. gagajf.showProgressbar(true);
  569. },
  570. success : function(result) {
  571. $("#deliveryAddrInfo").css("display", "block");
  572. $("#deliveryAddrInfo").html(result);
  573. // 배송정보설정
  574. $("#orderAmtForm .recipNm").text($("#orderForm input[name='recipNm']").val());
  575. $("#orderAmtForm .recipPhnno").text($("#orderForm input[name='recipPhnno']").val());
  576. $("#orderAmtForm .recipZipcode").text($("#orderForm input[name='recipZipcode']").val());
  577. $("#orderAmtForm .recipBaseAddr").text($("#orderForm input[name='recipBaseAddr']").val());
  578. $("#orderAmtForm .recipDtlAddr").text($("#orderForm input[name='recipDtlAddr']").val());
  579. $("#orderAmtForm .delvMemo").text($("#orderForm input[name='delvMemo']").val());
  580. // 2. 버튼기능구현
  581. // 2.1 회원 배송지변경 팝업열기
  582. $('#btn_adrsChange_pop').on("click", function(){
  583. // 회원인경우
  584. if (isLogin == true) {
  585. $.ajax( {
  586. type : "POST",
  587. url : '/common/delvAddrChangePop',
  588. data : JSON.stringify(jsonObj),
  589. dataType : 'html',
  590. beforeSend : function(xhr, settings) {
  591. xhr.setRequestHeader("AJAX" , "true");
  592. xhr.setRequestHeader('Accept' , 'application/json');
  593. xhr.setRequestHeader('Content-Type' , 'application/json');
  594. gagajf.showProgressbar(true);
  595. },
  596. success : function(result) {
  597. $("#adrsChangePop .modal-dialog .modal-content").html(result);
  598. $("#adrsChangePop").modal("show");
  599. }
  600. });
  601. }
  602. // 비회원인경우
  603. else {
  604. $.ajax( {
  605. type : "POST",
  606. url : '/common/delvAddrAddPop',
  607. data : JSON.stringify(jsonObj),
  608. dataType : 'html',
  609. beforeSend : function(xhr, settings) {
  610. xhr.setRequestHeader("AJAX" , "true");
  611. xhr.setRequestHeader('Accept' , 'application/json');
  612. xhr.setRequestHeader('Content-Type' , 'application/json');
  613. gagajf.showProgressbar(true);
  614. },
  615. success : function(result) {
  616. $("#adrsAddPop .modal-dialog .modal-content").html(result);
  617. $("#adrsAddPop").modal("show");
  618. }
  619. });
  620. }
  621. });
  622. // 1.5 총알배송가능 지역, 총알배송 가능 시간 체크(초기로드정보)
  623. fnGetDailyDeliveryCheck(temp);
  624. }
  625. });
  626. }
  627. // 1.5 총알배송가능 지역, 총알배송 가능 시간 체크
  628. var fnGetDailyDeliveryCheck = function (temp) {
  629. jsonData = JSON.stringify(jsonObj);
  630. // 장바구니 총알배송 사용여부 체크 N
  631. if (shotDelvUseYn == "N") {
  632. // 초기에 한번 데이타 로드
  633. if (temp) {
  634. // 1.4 주문상품목록로드
  635. orderListInfoSet(jsonData, temp);
  636. }
  637. } else {
  638. // 배송지 우편번호 체크
  639. var zipcode = $("#orderForm input[name='recipZipcode']").val();
  640. // 총알배송여부 체크 배송지정보 존재여부 체크
  641. if (zipcode == null || zipcode == '') {
  642. //alert("배송지정보가 없습니다. 기본 총알배송 가능지역으로 설정 합니다.");
  643. zipcode = "04320"; // 기본 서울역 우편번호로 설정
  644. }
  645. // TODO
  646. var shotDelvObj = {"zipNo" : zipcode};
  647. gagajf.ajaxJsonSubmit(
  648. "/order/getDailyDeliveryCheck"
  649. , JSON.stringify(shotDelvObj)
  650. , function (result) {
  651. // 총알배송여부체크
  652. var tempShotDelvYn = "N";
  653. if (parseInt(result) > 0) {
  654. tempShotDelvYn = "Y";
  655. }
  656. // json 값 설정
  657. var orderListObj = {"cartSqArr":cartSqArr, "shotDelvYn":tempShotDelvYn};
  658. var orderListJsonData = JSON.stringify(orderListObj);
  659. if (temp) {
  660. // 1.6 주문상품목록로드
  661. orderListInfoSet(orderListJsonData, temp);
  662. } else {
  663. if (tempShotDelvYn != shotDelvYn) {
  664. orderListInfoSet(orderListJsonData, temp);
  665. }
  666. }
  667. shotDelvYn = tempShotDelvYn;
  668. }
  669. )
  670. }
  671. }
  672. // 1.6 주문상품목록로드
  673. var orderListInfoSet = function(orderListJsonData, temp) {
  674. $.ajax( {
  675. type : "POST",
  676. url : '/order/orderListInfo',
  677. data : orderListJsonData,
  678. dataType : 'html',
  679. beforeSend : function(xhr, settings) {
  680. xhr.setRequestHeader("AJAX" , "true");
  681. xhr.setRequestHeader('Accept' , 'application/json');
  682. xhr.setRequestHeader('Content-Type' , 'application/json');
  683. gagajf.showProgressbar(true);
  684. },
  685. success : function(result) {
  686. if (result != null) {
  687. $("#orderListInfo").css("display", "block");
  688. $("#orderListInfo").html(result);
  689. $("#delvFeeCdCnt").text($("#orderForm input[name=delvFeeCdCnt]").val());
  690. // 총알배송건수가 있으면 총알배송 태그 표시
  691. if (parseInt($("#orderForm input[name=shotCnt]").val()) > 0 ) {
  692. $("#orderForm .shotDelv").show();
  693. } else {
  694. $("#orderForm .shotDelv").hide();
  695. }
  696. }
  697. // 1.7 사은품정보로드
  698. if (temp) {
  699. freegiftInfoSet();
  700. }
  701. }
  702. });
  703. }
  704. // 1.7 사은품정보로드
  705. var freegiftInfoSet = function() {
  706. $.ajax( {
  707. type : "POST",
  708. url : '/order/freegiftInfo',
  709. data : JSON.stringify(jsonObj),
  710. dataType : 'html',
  711. beforeSend : function(xhr, settings) {
  712. xhr.setRequestHeader("AJAX" , "true");
  713. xhr.setRequestHeader('Accept' , 'application/json');
  714. xhr.setRequestHeader('Content-Type' , 'application/json');
  715. gagajf.showProgressbar(true);
  716. },
  717. success : function(result) {
  718. if (result != null) {
  719. $("#freegiftInfo").html(result);
  720. var total_gift = 0;
  721. var total_deduct = 0;
  722. // 2.2 사은품선택 라디오 버튼 기능
  723. $("#orderForm .freegiftRdo").on("click", function() {
  724. total_gift = 0;
  725. total_deduct = 0;
  726. // 2021.04.14 사은품 사용 포인트가 보유포인트보다 작아야 한다.
  727. var rmPntAmt = parseInt($("#orderForm input[name='rmPntAmt']").val());
  728. var freegiftUsePnt = parseInt($("#orderAmtForm .freegiftUsePnt").text());
  729. var usepoint = parseInt($(this).attr("usepoint"));
  730. rmPntAmt = rmPntAmt - freegiftUsePnt - usepoint;
  731. if (rmPntAmt < 0) {
  732. mcxDialog.alert("보유포인트가 부족합니다.");
  733. return false;
  734. }
  735. $("#orderForm .freegiftRdo").each(function(){
  736. // 라디오버튼 사은품 체크
  737. if ($(this).is(":checked")) {
  738. // 수령거부가 아닐때 체크
  739. if ($(this).val() != "noSel") {
  740. total_gift += 1;
  741. total_deduct += parseInt($(this).attr("usepoint"));
  742. }
  743. }
  744. });
  745. $("#orderForm .total_gift").text(total_gift); // 사은품총선택개수
  746. $("#orderForm .total_deduct").text(total_deduct.addComma()); // 사은품총사용포인트
  747. $("#orderAmtForm .freegiftUsePnt").text(total_deduct);
  748. // 포인트초기화기능
  749. pntDcAmtReset();
  750. });
  751. total_gift = 0;
  752. // 사은품테이블 그리기
  753. $("#orderForm .gift_box").each(function(){
  754. $(this).find(".freegiftRdo").each(function(){
  755. if ($(this).is(":checked")) {
  756. // 수령거부가 아닐때 체크
  757. if ($(this).val() != "noSel") {
  758. total_gift += 1;
  759. total_deduct += parseInt($(this).attr("usepoint"));
  760. }
  761. }
  762. $("#orderForm .total_gift").text(total_gift); // 사은품총선택개수
  763. });
  764. });
  765. }
  766. // 1.8 결제타입로드
  767. paymentInfoSet();
  768. }
  769. });
  770. }
  771. // 1.8 결제타입로드 (결제버튼기능구현)
  772. var paymentInfoSet = function() {
  773. $.ajax( {
  774. type : "POST",
  775. url : '/order/paymentInfo',
  776. data : JSON.stringify(jsonObj),
  777. dataType : 'html',
  778. beforeSend : function(xhr, settings) {
  779. xhr.setRequestHeader("AJAX" , "true");
  780. xhr.setRequestHeader('Accept' , 'application/json');
  781. xhr.setRequestHeader('Content-Type' , 'application/json');
  782. gagajf.showProgressbar(true);
  783. },
  784. success : function(result) {
  785. if (result != null) {
  786. $("#paymentInfo").css("display", "block");
  787. $("#paymentInfo").html(result);
  788. // 결제타입명칭 설정
  789. $("#orderForm .area_paymethod .paymethod_box ul li").on("click", function(){
  790. var payType = $(this).find(".payType").text();
  791. if ($(this).find("input[name=rdi-paynormal]").is(":checked")) {
  792. $(".payTypeNm").text(payType);
  793. }
  794. });
  795. // 결재하기
  796. $("#btn_payment").on("click", function(){
  797. // 사은품정보
  798. var prePntDcAmtYn = $("#orderForm input[name='rdi-beforpoint']:checked").val();
  799. var paynormal = $("#orderForm input[name='rdi-paynormal']:checked").val();
  800. var orderDetailList = [];
  801. var delvFeeCdList = [];
  802. var ordGoodsQty = 0;
  803. var goodsNm = "";
  804. var orgEntryNo = "";
  805. var entryNo = "";
  806. var giftMsg = "감사합니다.";
  807. // 선물받기일때 배송지주소 받지않음
  808. if (giftPackYn == "N") {
  809. if ($("#orderAmtForm .recipZipcode").text() == "0000" || gagajf.isNull($("#orderAmtForm .recipZipcode").text())) {
  810. mcxDialog.alert("배송정보를 입력해주세요.");
  811. return false;
  812. }
  813. } else {
  814. if (gagajf.isNull($("#orderForm #orderGiftInfo input[name=recipNm]").val())) {
  815. mcxDialog.alert("선물받을분 이름을 입력해주세요.");
  816. $("#orderForm #orderGiftInfo input[name=recipNm]").focus();
  817. orderGiftInfoDispYn("Y");
  818. return false;
  819. }
  820. if (gagajf.isNull($("#orderForm #orderGiftInfo input[name=recipPhnno]").val())) {
  821. mcxDialog.alert("선물받을분 휴대폰번호를 입력해주세요.");
  822. $("#orderForm #orderGiftInfo input[name=recipPhnno]").focus();
  823. orderGiftInfoDispYn("Y");
  824. return false;
  825. }
  826. $("#orderAmtForm .recipNm").text($("#orderForm #orderGiftInfo input[name=recipNm]").val());
  827. $("#orderAmtForm .recipPhnno").text($("#orderForm #orderGiftInfo input[name=recipPhnno]").val());
  828. if (gagajf.isNull($("#orderForm #orderGiftInfo input[name=recipPhnno]").val())) {
  829. giftMsg = "감사합니다.";
  830. } else {
  831. giftMsg = $("textarea#giftMsg").val();
  832. }
  833. }
  834. // TODO 개인통관번호 동의 체크시 통관번호 등록
  835. if (foreignBuyYn == "Y") {
  836. if ($("#orderForm input[name=rdi-overseas]:checked").val() == "Y") {
  837. if (gagajf.isNull($("#orderForm input[name=entryNo]").val())) {
  838. mcxDialog.alert("개인통관고유부호를 입력해주세요.");
  839. $('#orderForm input[name=entryNo]').focus();
  840. // 배송정보화면노출
  841. entryInfoDispYn("Y");
  842. return false;
  843. }
  844. orgEntryNo = $("#orderForm input[name=entryNo]").val();
  845. if (orgEntryNo.length < 13) {
  846. mcxDialog.alert("개인통관고유부호가 유효하지 않습니다.");
  847. $('#orderForm input[name=entryNo]').focus();
  848. // 배송정보화면노출
  849. entryInfoDispYn("Y");
  850. return false;
  851. }
  852. if (!$("#orderForm #chk-overs-agr").is(":checked")) {
  853. mcxDialog.alert("개인통관정보고유부호 정보 동의/저장항목을 체크해주세요.");
  854. // 배송정보화면노출
  855. entryInfoDispYn("Y");
  856. return false;
  857. }
  858. }
  859. }
  860. // 주문제작상품일때 주문제작정보동의
  861. if (orderMadeYn == "Y") {
  862. if (!$("#orderForm #chk-custom-agr1").is(":checked")) {
  863. mcxDialog.alert("주문제작상품 정보 동의를 체크해주세요.");
  864. // 배송정보화면노출
  865. madeInfoDispYn("Y");
  866. return false;
  867. }
  868. }
  869. // 사은품지급할 경우 체크
  870. if ($("#orderAmtForm .freegiftValArr").text().length > 0) {
  871. if (!$("#orderForm #chk-agree_gift").is(":checked")) {
  872. mcxDialog.alert("사은품 지급 정보 동의를 체크해주세요.");
  873. // 배송정보화면노출
  874. freegiftInfoDispYn("Y");
  875. return false;
  876. }
  877. }
  878. // 결재수단
  879. if (gagajf.isNull(paynormal)) {
  880. mcxDialog.alert("결제수단을 선택해 주세요.");
  881. // 결제수단정보노출
  882. paymentInfoDispYn("Y");
  883. return false;
  884. }
  885. var paynormalArr = paynormal.split("|");
  886. var pgGb = paynormalArr[0];
  887. var payMeans = paynormalArr[1];
  888. // 주문상세데이타 생성
  889. $("#orderDetailInfo .cartSq").each(function(){
  890. // 주문상세단위 총알배송여부 변경
  891. var orderDetailShotDelvYn = $(this).parent().find(".shotDelvYn").text();
  892. if (orderDetailShotDelvYn == "Y") {
  893. if (shotDelvYn == "N") {
  894. orderDetailShotDelvYn = "N";
  895. }
  896. }
  897. // 개인통관번호
  898. if ($(this).parent().find(".foreignBuyYn").text() == "Y") {
  899. entryNo = orgEntryNo;
  900. } else {
  901. entryNo = "";
  902. }
  903. var orderDetailData = {
  904. "cartSq" : $(this).text()
  905. ,"currPrice" : $(this).parent().find(".orgCurrPrice").text()
  906. ,"optAddPrice" : $(this).parent().find(".optAddPrice").text()
  907. ,"ordAmt" : $(this).parent().find(".ordAmt").text()
  908. ,"cpn1DcSq" : $(this).parent().find(".cpn1DcSq").text()
  909. ,"cpn1DcAmt" : $(this).parent().find(".cpn1DcAmt").text()
  910. ,"goodsQty" : $(this).parent().find(".goodsQty").text()
  911. ,"tmtb1Sq" : $(this).parent().find(".tmtb1Sq").text()
  912. ,"tmtb1DcAmt" : $(this).parent().find(".tmtb1DcAmt").text()
  913. ,"tmtb2Sq" : $(this).parent().find(".tmtb2Sq").text()
  914. ,"tmtb2DcAmt" : $(this).parent().find(".tmtb2DcAmt").text()
  915. ,"goodsCpnSq" : $(this).parent().find(".goodsCpnSq").text()
  916. ,"goodsCpnDcAmt" : $(this).parent().find(".goodsCpnDcAmt").text()
  917. ,"cartCpnSq" : $(this).parent().find(".cartCpnSq").text()
  918. ,"cartCpnDcAmt" : $(this).parent().find(".cartCpnDcAmt").text()
  919. ,"prePntDcAmt" : $(this).parent().find(".prePntDcAmt1").text()
  920. ,"pntDcAmt" : $(this).parent().find(".pntDcAmt1").text()
  921. ,"gfcdUseAmt" : $(this).parent().find(".gfcdUseAmt1").text()
  922. ,"realOrdAmt" : $(this).parent().find(".realOrdAmt1").text()
  923. ,"savePntAmt" : $(this).parent().find(".savePntAmt1").text()
  924. ,"shotDelvYn" : orderDetailShotDelvYn
  925. ,"foreignBuyYn" : $(this).parent().find(".foreignBuyYn").text()
  926. ,"makeGoodsYn" : $(this).parent().find(".orderMadeYn").text()
  927. ,"delvFeeCd" : $(this).parent().find(".delvFeeCd").text()
  928. ,"goodsCd" : $(this).parent().find(".goodsCd").text()
  929. ,"itemCdArr" : $(this).parent().find(".itemCd").text().split(",")
  930. ,"optCdArr" : $(this).parent().find(".optCd").text().split(",")
  931. ,"itemQtyArr" : $(this).parent().find(".itemQtyr").text().split(",")
  932. ,"goodsType" : $(this).parent().find(".goodsType").text()
  933. ,"entryNo" : entryNo
  934. ,"giftPackYn" : giftPackYn
  935. }
  936. // 상품수
  937. ordGoodsQty++;
  938. orderDetailList.push(orderDetailData);
  939. });
  940. // 주문배송업체정보 생성
  941. $("#delvFeeCdInfo .delvFeeCd").each(function(){
  942. var delvFeeCdData = {
  943. "delvFeeCd" : $(this).text()
  944. ,"supplyCompCd" : $(this).parent().find(".supplyCompCd").text()
  945. ,"delvFee" : $(this).parent().find(".delvFee").text()
  946. ,"delvCpnSq" : $(this).parent().find(".delvCpnSq").text()
  947. ,"delvCpnDcAmt" : $(this).parent().find(".delvCpnDcAmt").text()
  948. }
  949. delvFeeCdList.push(delvFeeCdData);
  950. });
  951. // 주문데이타 생성
  952. var orderData = {
  953. "custNm" : $("#orderAmtForm .custNm").text()
  954. ,"email" : $("#orderAmtForm .email").text()
  955. ,"recipNm" : $("#orderAmtForm .recipNm").text()
  956. ,"recipPhnno" : $("#orderAmtForm .recipPhnno").text()
  957. ,"recipZipcode" : $("#orderAmtForm .recipZipcode").text()
  958. ,"recipBaseAddr" : $("#orderAmtForm .recipBaseAddr").text()
  959. ,"recipDtlAddr" : $("#orderAmtForm .recipDtlAddr").text()
  960. ,"delvMemo" : $("#orderAmtForm .delvMemo").text()
  961. ,"sexGb" : $("#orderAmtForm .sexGb").text()
  962. ,"birthYmd" : $("#orderAmtForm .birthYmd").text()
  963. ,"prePntDcAmtYn" : prePntDcAmtYn
  964. ,"orderDetailList" : orderDetailList
  965. ,"delvFeeCdList" : delvFeeCdList
  966. ,"shotDelvYn" : shotDelvYn
  967. ,"entryNo" : entryNo
  968. ,"pgGb" : pgGb
  969. ,"payMeans" : payMeans // 네이버페이, 카카오페이
  970. ,"payAmt" : $("#orderAmtForm .realOrdSumAmt").text()
  971. ,"ordNm" : $("#orderAmtForm .custNm").text()
  972. ,"ordPhnno" : $("#orderAmtForm .cellPhnno").text()
  973. ,"goodsNm" : $("#orderAmtForm .goodsNm").eq(0).text()
  974. ,"ordGoodsQty" : ordGoodsQty
  975. ,"freegiftValArr" : $("#orderAmtForm .freegiftValArr").text().split(",")
  976. ,"freegiftSqArr" : $("#orderAmtForm .freegiftSqArr").text().split(",")
  977. ,"freegiftGoodsArr" : $("#orderAmtForm .freegiftGoodsArr").text().split(",")
  978. ,"freegiftUsePointArr" : $("#orderAmtForm .freegiftUsePointArr").text().split(",")
  979. ,"giftMsg" : giftMsg
  980. };
  981. $.ajax( {
  982. type : "POST",
  983. url : '/order/create/preOrder',
  984. data : JSON.stringify(orderData),
  985. dataType : 'html',
  986. beforeSend : function(xhr, settings) {
  987. xhr.setRequestHeader("AJAX" , "true");
  988. xhr.setRequestHeader('Accept' , 'application/json');
  989. xhr.setRequestHeader('Content-Type' , 'application/json');
  990. gagajf.showProgressbar(true);
  991. },
  992. success : function(result) {
  993. // 결재정보로드
  994. $("#order_info").html(result);
  995. var pgGb = $("#order_info input[name=pgGb]").val();
  996. if (pgGb == "NAVER") {
  997. fnNaverPaymentReady();
  998. } else if (pgGb == "KAKAO") {
  999. fnKakaoPaymentReady();
  1000. } else if (pgGb == "KCP" || pgGb == "PAYCO") {
  1001. jsf__pay(document.order_info);
  1002. }
  1003. }
  1004. });
  1005. });
  1006. // 1.9 할인영역 설정 (로그인여부일때 동작)
  1007. if (isLogin == true) {
  1008. dcAmtInfoSet();
  1009. } else {
  1010. // 금액계산초기화
  1011. custCpnSumAmtCal();
  1012. }
  1013. }
  1014. }
  1015. });
  1016. }
  1017. // 1.9.0 프로모션 쿠폰 적용 함수
  1018. var serialCpnApply = function(){
  1019. if (gagajf.isNull($("#serialCpnNm").val())) {
  1020. mcxDialog.alert("할인코드를 입력해주세요.");
  1021. $('#serialCpnNm').focus();
  1022. return false;
  1023. }
  1024. let data = {
  1025. rdCpnNm : $("#serialCpnNm").val()
  1026. }
  1027. $.ajax( {
  1028. type : "POST",
  1029. url : '/cart/list/serialCpnApply',
  1030. contentType : 'application/json',
  1031. dataType : 'json',
  1032. data : JSON.stringify(data),
  1033. success : function(result) {
  1034. // 프로모션쿠폰적용 후 할인영역 노출
  1035. jsonObj.dispYn = "Y";
  1036. // 성공일때는 쿠폰정보 및 포인트 정보 reset
  1037. if (result.serialCpnInfo.result == "SUCCESS") {
  1038. mcxDialog.alert("쿠폰 등록이 되었습니다.");
  1039. // 1.8 할인영역 재로드
  1040. dcAmtInfoSet(jsonData);
  1041. } else {
  1042. mcxDialog.alert(result.serialCpnInfo.result);
  1043. $("#serialCpnNm").val("");
  1044. }
  1045. }
  1046. });
  1047. }
  1048. // 1.9 할인영역 설정 (쿠폰, 선포인트, 포인트, 상품권)
  1049. var dcAmtInfoSet = function() {
  1050. // 1.8.1 할인정보로드
  1051. $.ajax( {
  1052. type : "POST",
  1053. url : '/order/dcAmtInfo',
  1054. data : JSON.stringify(jsonObj),
  1055. dataType : 'html',
  1056. beforeSend : function(xhr, settings) {
  1057. xhr.setRequestHeader("AJAX" , "true");
  1058. xhr.setRequestHeader('Accept' , 'application/json');
  1059. xhr.setRequestHeader('Content-Type' , 'application/json');
  1060. gagajf.showProgressbar(true);
  1061. },
  1062. success : function(result) {
  1063. if (result != null) {
  1064. $("#dcAmtInfo").css("display", "block");
  1065. $("#dcAmtInfo").html(result);
  1066. // 상품쿠폰 팝업정보로드
  1067. $.ajax( {
  1068. type : "POST",
  1069. url : '/order/couponApplyPop',
  1070. data : JSON.stringify(jsonObj),
  1071. dataType : 'html',
  1072. beforeSend : function(xhr, settings) {
  1073. xhr.setRequestHeader("AJAX" , "true");
  1074. xhr.setRequestHeader('Accept' , 'application/json');
  1075. xhr.setRequestHeader('Content-Type' , 'application/json');
  1076. gagajf.showProgressbar(true);
  1077. },
  1078. success : function(result) {
  1079. $("#couponModifyPop").html(result);
  1080. // 1.8.1 선포인트기능초기화
  1081. prePntDcAmtReset();
  1082. // 1.8.2 쿠폰적용초기화(할인율최고)(상품,장바구니)
  1083. custGoodsCpnInit();
  1084. // 상품쿠폰, 장바구니쿠폰 팝업 열기
  1085. $("#btn_couponModify_pop").on("click", function(){
  1086. // 2021.04.23 보유쿠폰이 없을때 적용
  1087. var custCpnCnt = parseInt($("#orderForm input[name=custCpnCnt]").val());
  1088. if (custCpnCnt < 1) {
  1089. mcxDialog.alert("적용 가능한 쿠폰이 없습니다.");
  1090. return false;
  1091. }
  1092. $("#couponModifyPop").modal("show");
  1093. // 쿠폰적용초기화(할인율최고)(상품,장바구니)
  1094. custGoodsCpnInit();
  1095. return false;
  1096. });
  1097. // 1.8.3 상품상세쿠폰 팝업 열기
  1098. $("#couponModifyPop .area_item_coupon .form_field .select_custom").on("click", function() {
  1099. var index = parseInt($(this).attr("value"));
  1100. var obj = $(".couponSelectPop").eq(index);
  1101. obj.show().addClass("active");
  1102. $("body").css({"overflow":"hidden"});
  1103. });
  1104. // 1.8.4 쿠폰적용버튼
  1105. $("#btn_coupon_apply").on("click", function(){
  1106. // 상품쿠폰적용
  1107. $('#couponApplyForm .couponSelectPop ul li.selected').each(function(index){
  1108. custCpnApply($(this), index, "goodsCpn");
  1109. });
  1110. // 장바구니쿠폰적용
  1111. $('#couponApplyForm .cartCpn').each(function(index){
  1112. if ($(this).find("input[name=rdi-cart-coupon]").is(":checked")) {
  1113. custCpnApply($(this), index, "cartCpn");
  1114. }
  1115. });
  1116. // 최대할인혜택적용 체크해제
  1117. if ($("#chk-maxdisc01").is(":checked")) {
  1118. $("#chk-maxdisc").attr("checked", false);
  1119. $("#chk-maxdisc01").attr("checked", false);
  1120. }
  1121. $("#couponModifyPop .close-modal").trigger("click"); // 팝업닫기
  1122. });
  1123. // 1.8.5 쿠폰 최대할인금액 초기화 버튼 설정
  1124. $("#chk-maxdisc01").on("click", function(){
  1125. // 2021.04.23 보유쿠폰이 없을때 적용
  1126. var custCpnCnt = parseInt($("#orderForm input[name=custCpnCnt]").val());
  1127. var custDelvCpnCnt = parseInt($("#orderForm input[name=custDelvCpnCnt]").val());
  1128. if ((custCpnCnt + custDelvCpnCnt) < 1) {
  1129. mcxDialog.alert("적용 가능한 쿠폰이 없습니다.");
  1130. return false;
  1131. }
  1132. if ($(this).is(":checked")) {
  1133. // 2021.04.23
  1134. mcxDialog.alert("선택한 쿠폰이 아닌 보유한 쿠폰을 통해 최대할인 혜택을 받을 수 있도록 쿠폰이 자동 적용됩니다.");
  1135. // 상품&장바구니쿠폰 초기환
  1136. custGoodsCpnInit();
  1137. // 배송비쿠폰 초기환
  1138. custDelvCpnInit();
  1139. $("#chk-maxdisc").attr("checked", true);
  1140. } else {
  1141. $("#chk-maxdisc").attr("checked", false);
  1142. }
  1143. });
  1144. // 1.8.5 쿠폰 최대할인금액 초기화 버튼 설정
  1145. $("#chk-maxdisc").on("click", function(){
  1146. // 2021.04.23 보유쿠폰이 없을때 적용
  1147. var custCpnCnt = parseInt($("#orderForm input[name=custCpnCnt]").val());
  1148. var custDelvCpnCnt = parseInt($("#orderForm input[name=custDelvCpnCnt]").val());
  1149. if ((custCpnCnt + custDelvCpnCnt) < 1) {
  1150. mcxDialog.alert("적용 가능한 쿠폰이 없습니다.");
  1151. return false;
  1152. }
  1153. if ($(this).is(":checked")) {
  1154. // 2021.04.23
  1155. mcxDialog.alert("선택한 쿠폰이 아닌 보유한 쿠폰을 통해 최대할인 혜택을 받을 수 있도록 쿠폰이 자동 적용됩니다.");
  1156. // 상품&장바구니쿠폰 초기환
  1157. custGoodsCpnInit();
  1158. // 배송비쿠폰 초기환
  1159. custDelvCpnInit();
  1160. $("#chk-maxdisc01").attr("checked", true);
  1161. } else {
  1162. $("#chk-maxdisc01").attr("checked", false);
  1163. }
  1164. });
  1165. }
  1166. });
  1167. // 배송비쿠폰 팝업정보로드
  1168. $.ajax( {
  1169. type : "POST",
  1170. url : '/order/delvCouponApplyPop',
  1171. data : JSON.stringify(jsonObj),
  1172. dataType : 'html',
  1173. beforeSend : function(xhr, settings) {
  1174. xhr.setRequestHeader("AJAX" , "true");
  1175. xhr.setRequestHeader('Accept' , 'application/json');
  1176. xhr.setRequestHeader('Content-Type' , 'application/json');
  1177. gagajf.showProgressbar(true);
  1178. },
  1179. success : function(result) {
  1180. $("#couponSelectPop02").html(result);
  1181. // 1.8.3 쿠폰적용초기화(할인율최고)(배송비)
  1182. custDelvCpnInit();
  1183. }
  1184. });
  1185. // 배송비상세쿠폰 팝업 열기
  1186. $(".od .area_seldiscount .dlvr_fee_box .select_custom").on("click", function() {
  1187. $('#couponSelectPop02').show().addClass("active");
  1188. $("body").css({"overflow":"hidden"});
  1189. });
  1190. // 1.8.7 포인트 적용버튼 기능
  1191. $("#btn_point_apply").on("click", function(){
  1192. var rmPntAmt = parseInt($("#orderForm input[name='rmPntAmt']").val());
  1193. var freegiftUsePnt = parseInt($("#orderAmtForm .freegiftUsePnt").text());
  1194. var pntDcAmt = parseInt(uncomma($("#orderForm input[name='pntDcAmtStr']").val()));
  1195. var realOrdAmt = parseInt($("#orderAmtForm .realOrdSumAmt").text());
  1196. var applyPntDcAmt = (realOrdAmt * 40) / 100;
  1197. rmPntAmt = rmPntAmt - freegiftUsePnt;
  1198. if (gagajf.isNull($("#orderForm input[name=pntDcAmtStr]").val())) {
  1199. mcxDialog.alert("포인트를 입력하신 후 다시 시도해주세요.");
  1200. $('#orderForm input[name=pntDcAmtStr]').focus();
  1201. return false;
  1202. }
  1203. // 입력여부체크
  1204. if (pntDcAmt < 1) {
  1205. mcxDialog.alert("포인트를 입력하신 후 다시 시도해주세요.");
  1206. // 포인트리셋기능
  1207. pntDcAmtReset();
  1208. return false;
  1209. }
  1210. // 10원단위부터 입력가능
  1211. if (pntDcAmt % 10 > 0) {
  1212. mcxDialog.alert("포인트는 10P단위로 사용이 가능합니다.");
  1213. // 포인트리셋기능
  1214. pntDcAmtReset();
  1215. return false;
  1216. }
  1217. // 결제금액을 초과 할 수 없습니다.
  1218. if (pntDcamt > realOrdAmt) {
  1219. mcxDialog.alert("포인트를 입력하신 후 다시 시도해주세요.");
  1220. // 포인트리셋기능
  1221. pntDcAmtReset();
  1222. return false;
  1223. }
  1224. // 보유포인트보다 초과 사용 불가
  1225. if (pntDcAmt > rmPntAmt) {
  1226. mcxDialog.alert("입력하신 포인트가 보유한 포인트보다 많습니다.");
  1227. // 포인트리셋기능
  1228. pntDcAmtReset();
  1229. return false;
  1230. }
  1231. // TODO 포인트 사용금액 1000P 이상 사용
  1232. if (pntDcAmt < 1000) {
  1233. mcxDialog.alert("포인트는 최소 1,000P이상 사용해야 합니다.");
  1234. // 포인트리셋기능
  1235. pntDcAmtReset();
  1236. return false;
  1237. }
  1238. // 실결제금액보다 크게 적용 되었을때 적용 불가능
  1239. if (pntDcAmt > applyPntDcAmt) {
  1240. mcxDialog.alert("결제금액의 최대 40%를 초과 사용 할 수 없습니다.");
  1241. // 포인트리셋기능
  1242. pntDcAmtReset();
  1243. return false;
  1244. }
  1245. // 2021.04.23 추가
  1246. mcxDialog.alert("총 " + getZeroMinusDelAmt(pntDcAmt) + " P를 차감 결제 합니다.”");
  1247. // 포인트 적용
  1248. $("#orderAmtForm .pntDcSumAmt").text(pntDcAmt);
  1249. $("#pntDcAmt").text(getZeroMinusDelAmt(pntDcAmt));
  1250. // 상품권리렛기능
  1251. gfcdUseAmtReset();
  1252. });
  1253. // 1.8.8 상품권 적용버튼 기능
  1254. $("#btn_gfcd_apply").on("click", function(){
  1255. var rmGfcdAmt = parseInt($("#orderForm input[name='rmGfcdAmt']").val());
  1256. var gfcdUseAmt = parseInt(uncomma($("#orderForm input[name='gfcdUseAmtStr']").val()));
  1257. var realOrdAmt = parseInt($("#orderAmtForm .realOrdSumAmt").text());
  1258. if (gagajf.isNull($("#orderForm input[name=gfcdUseAmtStr]").val())) {
  1259. mcxDialog.alert("금액을 입력하신 후 다시 시도해주세요.");
  1260. $('#orderForm input[name=gfcdUseAmtStr]').focus();
  1261. return false;
  1262. }
  1263. // 입력여부체크
  1264. if (gfcdUseAmt < 1 || $("#orderForm input[name='gfcdUseAmtStr']").val() == "") {
  1265. mcxDialog.alert("금액을 입력하신 후 다시 시도해주세요.");
  1266. // 상품권리셋기능
  1267. gfcdUseAmtReset();
  1268. return false;
  1269. }
  1270. // 결제금액을 초과 할 수 없습니다.
  1271. if (gfcdUseAmt > realOrdAmt) {
  1272. mcxDialog.alert("입력하신 금액이 결제할 금액보다 많습니다.");
  1273. // 포인트리셋기능
  1274. gfcdUseAmtReset();
  1275. return false;
  1276. }
  1277. // 보유금액보다 초과 사용 불가
  1278. if (gfcdUseAmt > rmGfcdAmt) {
  1279. mcxDialog.alert("보유금액 보다 초과 사용 할 수 없습니다.");
  1280. // 상품권리셋기능
  1281. gfcdUseAmtReset();
  1282. return false;
  1283. }
  1284. // 보유금액보다 초과 사용 불가
  1285. if (gfcdUseAmt > rmGfcdAmt) {
  1286. mcxDialog.alert("보유금액 보다 초과 사용 할 수 없습니다.");
  1287. // 상품권리셋기능
  1288. gfcdUseAmtReset();
  1289. return false;
  1290. }
  1291. // TODO 포인트 사용금액 1000원 이상 사용
  1292. if (gfcdUseAmt < 1000) {
  1293. mcxDialog.alert("상품권 사용금액은 최소 1,000원 이상 사용해야 합니다.");
  1294. // 상품권리셋기능
  1295. gfcdUseAmtReset();
  1296. return false;
  1297. }
  1298. // 2021.04.23 추가
  1299. mcxDialog.alert("총 " + gfcdUseAmt.addComma() + " 원를 상품권 금액에서 차감 결제 합니다.”");
  1300. // 상품권 적용
  1301. $("#orderAmtForm .gfcdUseSumAmt").text(gfcdUseAmt);
  1302. $("#gfcdUseAmt").text(getZeroMinusDelAmt(gfcdUseAmt));
  1303. // 금액전체계산
  1304. custCpnSumAmtCal();
  1305. });
  1306. // 금액계산초기화
  1307. custCpnSumAmtCal();
  1308. }
  1309. }
  1310. });
  1311. }
  1312. // 1.10.1 상품쿠폰초기화
  1313. var custGoodsCpnInit = function() {
  1314. // 쿠폰최대할인 적용
  1315. $("#chk-maxdisc").attr("checked", true);
  1316. $("#chk-maxdisc01").attr("checked", true);
  1317. // 쿠폰초기화
  1318. $("#couponModifyPop .goodsCpn").each(function(index){
  1319. // select box 쿠폰 적용
  1320. var cpnCartSq = $(this).find("input[name='cpnCartSq']").val();
  1321. // 장바구니시퀀스 체크
  1322. $("#orderAmtForm .cartSq").each(function(){
  1323. if (cpnCartSq == $(this).text()) {
  1324. $(this).parent().find(".goodsCpnSq").text("0"); // 상품쿠폰시퀀스
  1325. $(this).parent().find(".goodsCpnDcAmt").text("0"); // 상품쿠폰할인금액
  1326. }
  1327. });
  1328. $(this).find("input[name='custCpnSq']").val("0");
  1329. $(this).find("input[name='cpnDcAmt']").val("0");
  1330. // 적용안함 적용
  1331. var index = parseInt($(this).attr("value"));
  1332. var cpnObj = $(".couponSelectPop").eq(index);
  1333. var emptyHtml = cpnObj.find("ul li:last-child").html();
  1334. // 선택기능
  1335. $(this).find("ul li").removeClass("selected");
  1336. cpnObj.find("ul li:last-child").addClass("selected");
  1337. $(this).find(".select .item_coupon").html(emptyHtml);
  1338. });
  1339. // 상품쿠폰 최대할인율 쿠폰적용
  1340. $('#couponModifyPop .goodsCpn').each(function(idx){
  1341. cpnApplyTemp = false;
  1342. // select box 적용
  1343. $("#couponModifyPop .couponSelectPop").eq(idx).find("ul li").each(function(){
  1344. // 쿠폰적용안되었으면실행
  1345. if (cpnApplyTemp == false) {
  1346. // 쿠폰중복적용체크
  1347. if (custCpnDuplicationCheck($(this).attr("value"), idx)) {
  1348. // 쿠폰적용
  1349. custCpnApply($(this), idx, "goodsCpn");
  1350. // 쿠폰할인적용
  1351. cpnApplyTemp = true;
  1352. }
  1353. }
  1354. // 쿠폰 select 버튼기능
  1355. $(this).on("click", function(){
  1356. if (custCpnDuplicationCheck($(this).attr("value"), idx)) {
  1357. // 2021.04.19 주문서 쿠폰 선택오류 수정
  1358. // 전체선택해제
  1359. $(this).parent().find("li").removeClass("selected");
  1360. // 본인선택기능
  1361. $(this).addClass("selected");
  1362. // 쿠폰적용(임시)
  1363. custCpnApplyTemp($(this), idx, "goodsCpn");
  1364. } else {
  1365. custCpnNotApply($(this), idx);
  1366. }
  1367. });
  1368. });
  1369. });
  1370. // 장바구니쿠폰초기화
  1371. custCartCpnInit();
  1372. }
  1373. // 1.10.2 장바구니쿠폰초기화
  1374. var custCartCpnInit = function() {
  1375. // 장바구니쿠폰 초기화 적용
  1376. $("#couponModifyPop .cartCpn").each(function(index) {
  1377. if (index == 0) {
  1378. custCpnApply($(this), index, "cartCpn"); // 쿠폰적용
  1379. }
  1380. // 쿠폰 select 버튼기능
  1381. $(this).on("click", function(){
  1382. custCpnApplyTemp($(this), index, "cartCpn"); // 쿠폰적용
  1383. // 최대할인혜택적용 체크해제
  1384. if ($("#chk-maxdisc01").is(":checked")) {
  1385. $("#chk-maxdisc01").attr("checked", false);
  1386. $("#chk-maxdisc").attr("checked", false);
  1387. }
  1388. });
  1389. });
  1390. // 포인트기능 리셋
  1391. pntDcAmtReset();
  1392. }
  1393. // 1.10.3 배송비쿠폰초기화
  1394. var custDelvCpnInit = function() {
  1395. // 배송비쿠폰 초기화 적용
  1396. $("#couponSelectPop02 .delvCpn").each(function(index) {
  1397. if (index == 0) {
  1398. // 쿠폰적용
  1399. custCpnApply($(this), index, "delvCpn");
  1400. }
  1401. // 쿠폰 select 버튼기능
  1402. $(this).on("click", function(){
  1403. // 쿠폰적용
  1404. custCpnApply($(this), index, "delvCpn");
  1405. });
  1406. });
  1407. }
  1408. // 1.10.4 쿠폰중복사용체크
  1409. var custCpnDuplicationCheck = function(custCpnSq, index) {
  1410. var selCustSq = 0;
  1411. var cnt = 0;
  1412. // 쿠폰적용가능
  1413. if (custCpnSq == 0) {
  1414. return true;
  1415. }
  1416. // 쿠폰중본사용체크
  1417. $("#couponModifyPop .goodsCpn input[name='custCpnSq']").each(function(i){
  1418. if (index != i) {
  1419. selCustSq = $(this).val();
  1420. if (selCustSq == custCpnSq) {
  1421. cnt++;
  1422. }
  1423. }
  1424. });
  1425. // 쿠폰적용불가
  1426. if (cnt > 0) {
  1427. return false;
  1428. }
  1429. // 쿠폰적용가능
  1430. else {
  1431. return true;
  1432. }
  1433. }
  1434. // 1.10.5 임시로 쿠폰적용
  1435. var custCpnApplyTemp = function(obj, idx, cpnType) {
  1436. // 상품쿠폰적용
  1437. if (cpnType == "goodsCpn") {
  1438. var itemHtml = obj.find(".dlvr_coupon").html();
  1439. $("#couponModifyPop .goodsCpn .select .item_coupon").eq(idx).html(itemHtml);
  1440. $("#couponModifyPop .goodsCpn input[name='cpnDcAmt']").eq(idx).val(obj.attr("data"));
  1441. $("#couponModifyPop .goodsCpn input[name='custCpnSq']").eq(idx).val(obj.attr("value"));
  1442. // 장바구니쿠폰 초기화 적용
  1443. $("#couponModifyPop .cartCpn").each(function(index) {
  1444. if (index == 0) {
  1445. custCpnApplyTemp($(this), 0, "cartCpn"); // 쿠폰적용
  1446. }
  1447. });
  1448. // 상품쿠폰 선택불가 처리
  1449. custCpnSqLiDisabled();
  1450. // 상품상세쿠폰 팝업 닫기
  1451. $("#couponModifyPop .lap .popup_close").eq(idx).trigger("click");
  1452. }
  1453. // 장바구니쿠폰적용
  1454. else if (cpnType == "cartCpn") {
  1455. var dcWay = obj.find("input[name='dcWay']").val();
  1456. var dcVal = obj.find("input[name='dcVal']").val();
  1457. var maxDcAmt = obj.find("input[name='maxDcAmt']").val();
  1458. var buyLimitAmt = obj.find("input[name='buyLimitAmt']").val();
  1459. var cartCpnDcSumAmt = 0;
  1460. var tempSumAmt = 0;
  1461. var cartSqLen = $(".cartSq").length;
  1462. var leftAmt = 0;
  1463. var index = 1;
  1464. // 장바구니쿠폰 해당 장바구니상품들 할인가 적용
  1465. obj.find("input[name='cartCpnCartSq']").each(function(){
  1466. var cartCpnCartSq = $(this).val();
  1467. var cartCpnDcAmt = 0;
  1468. // 장바구니시퀀스 체크
  1469. $("#orderAmtForm .cartSq").each(function(){
  1470. if (cartCpnCartSq == $(this).text()) {
  1471. var orgCurrPrice = parseInt($(this).parent().find(".orgCurrPrice").text());
  1472. var cpn1DcAmt = parseInt($(this).parent().find(".cpn1DcAmt").text());
  1473. var goodsQty = parseInt($(this).parent().find(".goodsQty").text());
  1474. var tmtb1DcAmt = parseInt($(this).parent().find(".tmtb1DcAmt").text());
  1475. var tmtb2DcAmt = parseInt($(this).parent().find(".tmtb2DcAmt").text());
  1476. var goodsCpnDcAmt = 0;
  1477. $("#couponModifyPop .goodsCpn input[name=cpnCartSq]").each(function(){
  1478. if ($(this).val() == cartCpnCartSq) {
  1479. goodsCpnDcAmt = parseInt($(this).parent().find("input[name=cpnDcAmt]").val());
  1480. }
  1481. });
  1482. var tempAmt = ((orgCurrPrice - cpn1DcAmt) * goodsQty) - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
  1483. tempSumAmt = tempSumAmt + tempAmt;
  1484. // 할인율일때 할인금액
  1485. if (dcWay == "G240_11") {
  1486. cartCpnDcAmt = (tempAmt * dcVal) / 100;
  1487. cartCpnDcSumAmt = cartCpnDcSumAmt + cartCpnDcAmt;
  1488. }
  1489. }
  1490. });
  1491. });
  1492. // 금액일때 할인금액 적용
  1493. if (dcWay == "G240_10") {
  1494. cartCpnDcSumAmt = dcVal;
  1495. }
  1496. // 2021.04.19 최대금액 체크
  1497. if (maxDcAmt > cartCpnDcSumAmt || maxDcAmt == 0) {
  1498. cartCpnDcSumAmt = cartCpnDcSumAmt;
  1499. } else {
  1500. cartCpnDcSumAmt = maxDcAmt;
  1501. }
  1502. obj.find("input[name=rdi-cart-coupon]").prop("checked", true);
  1503. obj.parent().find("input[name=cpnDcAmt]").val(cartCpnDcSumAmt);
  1504. obj.parent().find("input[name=custCpnSq]").val(obj.attr("value"));
  1505. }
  1506. var cpnDcSumAmt = 0;
  1507. var cpnApplyCnt = 0;
  1508. var goodsCartCpnSumAmt = 0;
  1509. var cpnType = "";
  1510. $("#couponModifyPop input[name='cpnDcAmt']").each(function(index){
  1511. cpnType = $(this).parent().find("input[name=cpnType]").val();
  1512. // 상품, 장바구니쿠폰 할인 금액만 합계 적용
  1513. if (cpnType == "goodsCpn" || cpnType == "cartCpn") {
  1514. goodsCartCpnSumAmt = goodsCartCpnSumAmt + parseInt($(this).val());
  1515. }
  1516. });
  1517. // 상품, 장바구니쿠폰 할인 금액만 합계 적용
  1518. $("#couponModifyPop .modal-footer .goodsCartCpnSumAmt").text(getZeroMinusDelAmt(goodsCartCpnSumAmt));
  1519. }
  1520. // 1.10.6 쿠폰중복체크 후 적용가능
  1521. var custCpnApply = function(obj, idx, cpnType) {
  1522. // 상품쿠폰적용
  1523. if (cpnType == "goodsCpn") {
  1524. var itemHtml = obj.find(".dlvr_coupon").html();
  1525. $("#couponModifyPop .goodsCpn .select .item_coupon").eq(idx).html(itemHtml);
  1526. $("#couponModifyPop .goodsCpn input[name='cpnDcAmt']").eq(idx).val(obj.attr("data"));
  1527. $("#couponModifyPop .goodsCpn input[name='custCpnSq']").eq(idx).val(obj.attr("value"));
  1528. var cpnCartSq = $("#couponModifyPop .goodsCpn input[name='cpnCartSq']").eq(idx).val();
  1529. // 장바구니시퀀스 체크
  1530. $("#orderAmtForm .cartSq").each(function(){
  1531. if (cpnCartSq == $(this).text()) {
  1532. $(this).parent().find(".goodsCpnSq").text(obj.attr("value")); // 상품쿠폰시퀀스
  1533. $(this).parent().find(".goodsCpnDcAmt").text(obj.attr("data")); // 상품쿠폰할인금액
  1534. }
  1535. });
  1536. // selected 클래스 처리
  1537. $("#couponModifyPop .couponSelectPop").eq(idx).find("ul li").removeClass("selected");
  1538. obj.addClass("selected");
  1539. // 상품쿠폰 선택불가 처리
  1540. custCpnSqLiDisabled();
  1541. }
  1542. // 장바구니쿠폰적용
  1543. else if (cpnType == "cartCpn") {
  1544. var dcWay = obj.find("input[name='dcWay']").val();
  1545. var dcVal = obj.find("input[name='dcVal']").val();
  1546. var maxDcAmt = obj.find("input[name='maxDcAmt']").val();
  1547. var buyLimitAmt = obj.find("input[name='buyLimitAmt']").val();
  1548. var cartCpnDcSumAmt = 0;
  1549. var tempSumAmt = 0;
  1550. var cartSqLen = $("#orderAmtForm .cartSq").length;
  1551. var leftAmt = 0;
  1552. var index = 1;
  1553. // 2021.04.19 장바구니시퀀스 값 초기화
  1554. $("#orderAmtForm .cartSq").each(function(){
  1555. $(this).parent().find(".cartCpnSq").text(0);
  1556. $(this).parent().find(".cartCpnDcAmt").text(0);
  1557. });
  1558. // 장바구니쿠폰 해당 장바구니상품들 할인가 적용
  1559. obj.find("input[name='cartCpnCartSq']").each(function(){
  1560. var cartCpnCartSq = $(this).val();
  1561. var cartCpnDcAmt = 0;
  1562. // 장바구니시퀀스 체크
  1563. $("#orderAmtForm .cartSq").each(function(){
  1564. if (cartCpnCartSq == $(this).text()) {
  1565. var orgCurrPrice = parseInt($(this).parent().find(".orgCurrPrice").text());
  1566. var cpn1DcAmt = parseInt($(this).parent().find(".cpn1DcAmt").text());
  1567. var goodsQty = parseInt($(this).parent().find(".goodsQty").text());
  1568. var tmtb1DcAmt = parseInt($(this).parent().find(".tmtb1DcAmt").text());
  1569. var tmtb2DcAmt = parseInt($(this).parent().find(".tmtb2DcAmt").text());
  1570. var goodsCpnDcAmt = parseInt($(this).parent().find(".goodsCpnDcAmt").text());
  1571. var tempAmt = ((orgCurrPrice - cpn1DcAmt) * goodsQty) - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
  1572. tempSumAmt = tempSumAmt + tempAmt;
  1573. // 할인율일때 할인금액
  1574. if (dcWay == "G240_11") {
  1575. cartCpnDcAmt = parseInt((tempAmt * dcVal) / 100);
  1576. cartCpnDcSumAmt = cartCpnDcSumAmt + cartCpnDcAmt;
  1577. $(this).parent().find(".cartCpnSq").text(obj.attr("value"));
  1578. $(this).parent().find(".cartCpnDcAmt").text(cartCpnDcAmt);
  1579. }
  1580. }
  1581. });
  1582. });
  1583. // 장바구니쿠폰 결제가능수단목록조회
  1584. if (obj.find("input[name='payTypeArr']").length > 0) {
  1585. $("#orderForm input[name=rdi-paynormal]").attr("disabled", true);
  1586. $("#orderForm input[name=rdi-paynormal]").attr("checked", false);
  1587. obj.find("input[name='payTypeArr']").each(function(i){
  1588. var payType = $(this).val();
  1589. $('#orderForm .'+payType).attr("disabled", false);
  1590. });
  1591. } else {
  1592. $("#orderForm input[name=rdi-paynormal]").attr("disabled", false);
  1593. }
  1594. // 선택안함
  1595. $("#orderForm .payTypeNm").text("선택없음");
  1596. // 2021.04.19 최대금액 체크
  1597. if (maxDcAmt > cartCpnDcSumAmt || maxDcAmt == 0) {
  1598. cartCpnDcSumAmt = cartCpnDcSumAmt;
  1599. } else {
  1600. // 최대값 적용 일때는 금액할인 방식을 적용
  1601. cartCpnDcSumAmt = maxDcAmt;
  1602. dcVal = cartCpnDcSumAmt;
  1603. dcWay = "G240_10";
  1604. }
  1605. // 금액일때 할인금액 적용
  1606. if (dcWay == "G240_10") {
  1607. cartCpnDcSumAmt = dcVal;
  1608. leftAmt = dcVal;
  1609. index = 1;
  1610. // 장바구니쿠폰 해당 장바구니상품들 할인가 적용
  1611. obj.find("input[name='cartCpnCartSq']").each(function(){
  1612. var cartCpnCartSq = $(this).val();
  1613. var cartCpnDcAmt = 0;
  1614. // 장바구니시퀀스 체크
  1615. $("#orderAmtForm .cartSq").each(function(){
  1616. if (cartCpnCartSq == $(this).text()) {
  1617. var orgCurrPrice = parseInt($(this).parent().find(".orgCurrPrice").text());
  1618. var cpn1DcAmt = parseInt($(this).parent().find(".cpn1DcAmt").text());
  1619. var goodsQty = parseInt($(this).parent().find(".goodsQty").text());
  1620. var tmtb1DcAmt = parseInt($(this).parent().find(".tmtb1DcAmt").text());
  1621. var tmtb2DcAmt = parseInt($(this).parent().find(".tmtb2DcAmt").text());
  1622. var goodsCpnDcAmt = parseInt($(this).parent().find(".goodsCpnDcAmt").text());
  1623. var tempAmt = ((orgCurrPrice - cpn1DcAmt) * goodsQty) - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
  1624. var tempDiv = parseInt((tempAmt / tempSumAmt) * 100);
  1625. var cartCpnDcAmt = 0;
  1626. if (index == cartSqLen) {
  1627. cartCpnDcAmt = leftAmt;
  1628. } else {
  1629. cartCpnDcAmt = parseInt((cartCpnDcSumAmt * tempDiv) / 100);
  1630. leftAmt = leftAmt - cartCpnDcAmt;
  1631. }
  1632. $(this).parent().find(".cartCpnSq").text(obj.attr("value"));
  1633. $(this).parent().find(".cartCpnDcAmt").text(cartCpnDcAmt);
  1634. index++;
  1635. }
  1636. });
  1637. });
  1638. }
  1639. obj.find("input[name=rdi-cart-coupon]").attr("checked", true);
  1640. obj.parent().find("input[name=cpnDcAmt]").val(cartCpnDcSumAmt);
  1641. obj.parent().find("input[name=custCpnSq]").val(obj.attr("value"));
  1642. }
  1643. // 배송비쿠폰적용
  1644. else if (cpnType == "delvCpn") {
  1645. // 적용안함 적용
  1646. var itemHtml = obj.find(".dlvr_coupon").html();
  1647. $("#orderForm .dlvr_fee_box .dlvr_coupon").html(itemHtml);
  1648. obj.parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
  1649. obj.parent().find("input[name='custCpnSq']").val(obj.attr("value"));
  1650. obj.parent().find("input[name='delvFeeCd']").val(obj.attr("delvfeecd"));
  1651. var delvFeeCd = obj.attr("delvfeecd");
  1652. // 배송비쿠폰 테이블 적용
  1653. $("#orderAmtForm .delvFeeCd").each(function(){
  1654. // 배송비쿠폰적용
  1655. if ($(this).text() == delvFeeCd) {
  1656. $(this).parent().find(".delvCpnSq").text(obj.attr("value"));
  1657. $(this).parent().find(".delvCpnDcAmt").text(obj.attr("data"));
  1658. }
  1659. // 배송비쿠폰적용안함
  1660. else if (delvFeeCd == 0) {
  1661. $(this).parent().find(".delvCpnSq").text(obj.attr("value"));
  1662. $(this).parent().find(".delvCpnDcAmt").text(obj.attr("data"));
  1663. }
  1664. });
  1665. // 배송비팝업닫기
  1666. $('#couponSelectPop02 .popup_close').trigger("click");
  1667. }
  1668. // 포인트기능 리렛
  1669. pntDcAmtReset();
  1670. }
  1671. // 1.11.1 상품쿠폰 선택불가 처리
  1672. var custCpnSqLiDisabled = function() {
  1673. // 상품쿠폰 선택불가 처리
  1674. $("#couponModifyPop .couponSelectPop ul li").each(function(){
  1675. var custCpnSq = $(this).attr("value");
  1676. var liObj = $(this);
  1677. liObj.attr("aria-disabled", false);
  1678. // 선택된 li 제외 (2021.04.08 수정)
  1679. if ($(this).hasClass("selected") == false) {
  1680. // 적용안함 제외
  1681. if (custCpnSq > 0) {
  1682. // 선택된 custCpnSq li와 같으면 선택불가처리
  1683. $("#couponModifyPop .goodsCpn input[name=custCpnSq]").each(function(){
  1684. var inputCustCpSq = $(this).val();
  1685. if (custCpnSq == inputCustCpSq) {
  1686. // 선택불가처리
  1687. liObj.attr("aria-disabled", true);
  1688. }
  1689. });
  1690. }
  1691. }
  1692. });
  1693. }
  1694. // 1.12 쿠폰중복체크 후 적용불가
  1695. var custCpnNotApply = function(obj, idx) {
  1696. /*
  1697. // 이전에 등록된 쿠폰시퀀스
  1698. var custCpnSq = obj.parent().find("input[name='custCpnSq']").val();
  1699. // 이전에 등록된 쿠폰시퀀스 비교후 데이타 원복
  1700. obj.parent().find("li").each(function(){
  1701. if ($(this).attr("value") == custCpnSq) {
  1702. var itemHtml = $(this).find(".item_coupon").html();
  1703. obj.parent().parent().find(".select .item_coupon").html(itemHtml);
  1704. }
  1705. });
  1706. // 포인트기능 리렛
  1707. pntDcAmtReset();
  1708. */
  1709. }
  1710. // 1.14 선포인트리셋기능 (사용안함)
  1711. var prePntDcAmtReset = function() {
  1712. var rmPrePntAmt = 0;
  1713. if ($("#orderForm input[name='rmPrePntAmt']") > 0) {
  1714. rmPrePntAmt = parseInt($("#orderForm input[name='rmPrePntAmt']").val());
  1715. $("#orderForm input[name='prePntDcAmt']").val(rmPrePntAmt);
  1716. }
  1717. // 선포인트사용여부 체크 후 적용
  1718. $("#orderForm input[name='rdi-beforpoint']").each(function(){
  1719. // 선포인트 초기 설정 사용함
  1720. if ($(this).val() == "Y") {
  1721. $(this).attr("checked", true);
  1722. }
  1723. // 버튼기능 구현
  1724. $(this).on("click", function(){
  1725. var rmPrePntAmt = parseInt($("#orderForm input[name='rmPrePntAmt']").val());
  1726. // 선포인트적용
  1727. if ($(this).val() == "Y") {
  1728. $("#prePntDcAmt").text(getZeroMinusDelAmt(rmPrePntAmt)+"원");
  1729. } else {
  1730. $("#prePntDcAmt").text("0원");
  1731. }
  1732. // 쿠폰할인금액 SUM
  1733. custCpnSumAmtCal();
  1734. });
  1735. });
  1736. $("#prePntDcAmt").text(getZeroMinusDelAmt(rmPrePntAmt)+"원");
  1737. // 포인트기능 리렛
  1738. pntDcAmtReset();
  1739. }
  1740. // 1.15 포인트리셋기능
  1741. var pntDcAmtReset = function() {
  1742. $("#orderAmtForm .pntDcSumAmt").text("0");
  1743. $("#orderForm input[name='pntDcAmtStr']").val("");
  1744. $("#pntDcAmt").text("0");
  1745. // 상품권리셋기능
  1746. gfcdUseAmtReset();
  1747. }
  1748. // 1.16 상품권리셋기능
  1749. var gfcdUseAmtReset = function() {
  1750. $("#orderAmtForm .gfcdUseSumAmt").text("0");
  1751. $("#orderForm input[name='gfcdUseAmtStr']").val("");
  1752. $("#gfcdUseAmt").text("0");
  1753. // 금액전체계산
  1754. custCpnSumAmtCal();
  1755. }
  1756. // 1.17 쿠폰할인금액합계설정(금액전체계산)
  1757. var custCpnSumAmtCal = function() {
  1758. var cpnDcSumAmt = 0;
  1759. var cpnApplyCnt = 0;
  1760. var goodsCartCpnSumAmt = 0;
  1761. var cpnType = "";
  1762. // 상품쿠폰, 장바구니쿠폰 할인금액 합계
  1763. $("#couponModifyPop input[name='cpnDcAmt']").each(function(){
  1764. cpnType = $(this).parent().find("input[name=cpnType]").val();
  1765. cpnDcSumAmt = cpnDcSumAmt + parseInt($(this).val());
  1766. // 적용된 쿠폰 수량
  1767. if (parseInt($(this).val()) > 0) {
  1768. cpnApplyCnt++;
  1769. }
  1770. // 상품, 장바구니 쿠폰할인금액 저장
  1771. // 상품, 장바구니쿠폰 할인 금액만 합계 적용
  1772. if (cpnType == "goodsCpn" || cpnType == "cartCpn") {
  1773. goodsCartCpnSumAmt = goodsCartCpnSumAmt + parseInt($(this).val());
  1774. }
  1775. });
  1776. // 배송비쿠폰 할인금액 합계
  1777. $("#couponSelectPop02 input[name='cpnDcAmt']").each(function(){
  1778. cpnDcSumAmt = cpnDcSumAmt + parseInt($(this).val());
  1779. });
  1780. // 상품, 장바구니쿠폰 할인 금액만 합계 적용
  1781. $(".maxdisc_amount .goodsCartCpnDcAmt").text(getZeroMinusDelAmt(goodsCartCpnSumAmt)); // 쿠폰할인금액합계
  1782. $("#couponModifyPop .modal-footer .goodsCartCpnSumAmt").text(getZeroMinusDelAmt(goodsCartCpnSumAmt));
  1783. // 전체쿠폰 할인 금액 합계 적용
  1784. $(".maxdisc_amount .cpnDcAmt").text(getZeroMinusDelAmt(cpnDcSumAmt)); // 쿠폰할인금액합계
  1785. $("#couponDcSumAmt").text(getZeroMinusDelAmt(cpnDcSumAmt)); // 쿠폰할인금액합계
  1786. $("#orderAmtForm .cpnDcSumAmt").text(cpnDcSumAmt);
  1787. var delvSumAmt = orgSumDelvFee;
  1788. // 배송비할인적용
  1789. $("input[name='cpnType']").each(function(){
  1790. if ($(this).val() == "delvCpn") {
  1791. delvSumAmt = parseInt(orgSumDelvFee) - parseInt($(this).parent().find("input[name='cpnDcAmt']").val());
  1792. }
  1793. });
  1794. // 최종배송비
  1795. $("#delvSumAmt").text(delvSumAmt.addComma());
  1796. $("#orderAmtForm .delvSumAmt").text(delvSumAmt);
  1797. $("#orderForm .delvSumAmt").text(delvSumAmt.addComma());
  1798. // 2021.03.06 주문상세 테이블 적용
  1799. // 포인트금액 상품상세에 포인트금액 분배 작업
  1800. var prePntDcAmtYn = $("#orderForm input[name='rdi-beforpoint']:checked").val();
  1801. var leftPntAmt = parseInt($("#orderAmtForm .pntDcSumAmt").text());
  1802. var leftGfcdAmt = parseInt($("#orderAmtForm .gfcdUseSumAmt").text());
  1803. var cartSqLenght = $("#orderAmtForm .cartSq").length;
  1804. var index = 1;
  1805. var orgGoodsSumAmt = 0;
  1806. var cpn1DcSumAmt = 0;
  1807. var ordSumAmt = 0;
  1808. var tmtb1DcSumAmt = 0;
  1809. var tmtb2DcSumAmt = 0;
  1810. var tmtbDcSumAmt = 0;
  1811. var goodsCpnDcSumAmt = 0;
  1812. var cartCpnDcSumAmt = 0;
  1813. var delvCpnDcSumAmt = 0;
  1814. var cpnDcSumAmt = 0;
  1815. var prePntDcSumAmt = 0;
  1816. var pntDcSumAmt = parseInt($("#orderAmtForm .pntDcSumAmt").text());
  1817. var gfcdUseSumAmt = parseInt($("#orderAmtForm .gfcdUseSumAmt").text());
  1818. var realOrdSumAmt = 0;
  1819. var savePntSumAmt = 0;
  1820. var totDcSumAmt = 0;
  1821. $("#orderAmtForm .cartSq").each(function(){
  1822. var orgCurrPrice = parseInt($(this).parent().find(".orgCurrPrice").text());
  1823. var cpn1DcAmt = parseInt($(this).parent().find(".cpn1DcAmt").text());
  1824. var optAddPrice = parseInt($(this).parent().find(".optAddPrice").text());
  1825. var goodsQty = parseInt($(this).parent().find(".goodsQty").text());
  1826. var tmtb1DcAmt = parseInt($(this).parent().find(".tmtb1DcAmt").text());
  1827. var tmtb2DcAmt = parseInt($(this).parent().find(".tmtb2DcAmt").text());
  1828. var goodsCpnDcAmt = parseInt($(this).parent().find(".goodsCpnDcAmt").text());
  1829. var cartCpnDcAmt = parseInt($(this).parent().find(".cartCpnDcAmt").text());
  1830. var prePntDcAmt1 = parseInt($(this).parent().find(".prePntDcAmt1").text());
  1831. var savePntAmt1 = parseInt($(this).parent().find(".savePntAmt1").text());
  1832. var dcSumAmt = 0;
  1833. // 주문금액 = ((판매가 - 즉시할인가) + 옵션추가금액) * 장바구니수량
  1834. orgGoodsSumAmt = orgGoodsSumAmt + (orgCurrPrice + optAddPrice) * goodsQty;
  1835. cpn1DcSumAmt = cpn1DcSumAmt + (cpn1DcAmt * goodsQty);
  1836. tmtb1DcSumAmt = tmtb1DcSumAmt + tmtb1DcAmt;
  1837. tmtb2DcSumAmt = tmtb2DcSumAmt + tmtb2DcAmt;
  1838. tmtbDcSumAmt = tmtbDcSumAmt + (tmtb1DcAmt + tmtb2DcAmt);
  1839. goodsCpnDcSumAmt = goodsCpnDcSumAmt + goodsCpnDcAmt;
  1840. cartCpnDcSumAmt = cartCpnDcSumAmt + cartCpnDcAmt;
  1841. cpnDcSumAmt = cpnDcSumAmt + (goodsCpnDcAmt + cartCpnDcAmt);
  1842. prePntDcSumAmt = prePntDcSumAmt + prePntDcAmt1;
  1843. var ordAmt = ((orgCurrPrice + - cpn1DcAmt) + optAddPrice) * goodsQty;
  1844. ordSumAmt = ordSumAmt + ordAmt;
  1845. // 선포인트사용여부
  1846. // 할인금액합계 = 다다익선수량금액 + 다다익선금액금액 + 상품쿠폰금액 + 장바구니금액 + 선포인트금액
  1847. if (prePntDcAmtYn == "Y") {
  1848. dcSumAmt = tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt + prePntDcAmt1;
  1849. } else {
  1850. dcSumAmt = tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt;
  1851. }
  1852. totDcSumAmt = totDcSumAmt + dcSumAmt;
  1853. // 주문금액설정
  1854. $(this).parent().find(".ordAmt").text(ordAmt);
  1855. $(this).parent().find(".dcSumAmt").text(dcSumAmt);
  1856. savePntSumAmt = savePntSumAmt + savePntAmt1;
  1857. });
  1858. // 포인트, 상품권 금액 분배
  1859. $("#orderAmtForm .cartSq").each(function(){
  1860. var ordAmt = parseInt($(this).parent().find(".ordAmt").text());
  1861. var dcSumAmt = parseInt($(this).parent().find(".dcSumAmt").text());
  1862. var tempDiv = parseInt((ordAmt / ordSumAmt) * 100);
  1863. var pntDcAmt1 = 0;
  1864. var gfcdUseAmt1 = 0;
  1865. if (index == cartSqLenght) {
  1866. pntDcAmt1 = leftPntAmt;
  1867. gfcdUseAmt1 = leftGfcdAmt;
  1868. } else {
  1869. pntDcAmt1 = parseInt((pntDcSumAmt * tempDiv) / 100);
  1870. gfcdUseAmt1 = parseInt((gfcdUseSumAmt * tempDiv) / 100);
  1871. leftPntAmt = leftPntAmt - pntDcAmt1;
  1872. leftGfcdAmt = leftGfcdAmt - gfcdUseAmt1;
  1873. }
  1874. var realOrdAmt1 = ordAmt - dcSumAmt - pntDcAmt1 - gfcdUseAmt1;
  1875. realOrdSumAmt = realOrdSumAmt + realOrdAmt1;
  1876. $(this).parent().find(".pntDcAmt1").text(pntDcAmt1);
  1877. $(this).parent().find(".gfcdUseAmt1").text(gfcdUseAmt1);
  1878. $(this).parent().find(".realOrdAmt1").text(realOrdAmt1);
  1879. index++;
  1880. });
  1881. realOrdSumAmt = realOrdSumAmt + delvSumAmt;
  1882. $("#orderAmtForm .orgGoodsSumAmt").text(orgGoodsSumAmt);
  1883. $("#orderAmtForm .cpn1DcSumAmt").text(cpn1DcSumAmt);
  1884. $("#orderAmtForm .ordSumAmt").text(ordSumAmt);
  1885. $("#orderAmtForm .tmtb1DcSumAmt").text(tmtb1DcSumAmt);
  1886. $("#orderAmtForm .tmtb2DcSumAmt").text(tmtb2DcSumAmt);
  1887. $("#orderAmtForm .tmtbDcSumAmt").text(tmtbDcSumAmt);
  1888. $("#orderAmtForm .goodsCpnDcSumAmt").text(goodsCpnDcSumAmt);
  1889. $("#orderAmtForm .cartCpnDcSumAmt").text(cartCpnDcSumAmt);
  1890. $("#orderAmtForm .cpnDcSumAmt").text(cpnDcSumAmt);
  1891. $("#orderAmtForm .prePntDcSumAmt").text(prePntDcSumAmt);
  1892. $("#orderAmtForm .realOrdSumAmt").text(realOrdSumAmt);
  1893. $("#orderAmtForm .savePntSumAmt").text(savePntSumAmt);
  1894. $("#realOrdAmt").text(realOrdSumAmt.addComma()); // 총 결제 예정 금액
  1895. $("#orderForm .realOrdAmt").text(realOrdSumAmt.addComma()); // 총 결제 예정 금액
  1896. $("#orderForm .orgGoodsSumAmt").text(orgGoodsSumAmt.addComma());
  1897. $("#orderForm #btn_payment").text(realOrdSumAmt.addComma()); // 총 결제 예정 금액
  1898. $("#orderForm .dcSumAmt").text(totDcSumAmt.addComma()); // 할인금액합계
  1899. var tempSavePnt = savePntSumAmt - prePntDcAmt;
  1900. // 사은품사용 후 보유포인트
  1901. var rmPntAmt = parseInt($("#orderForm input[name='rmPntAmt']").val());
  1902. var freegiftUsePnt = parseInt($("#orderAmtForm .freegiftUsePnt").text());
  1903. rmPntAmt = rmPntAmt - freegiftUsePnt;
  1904. $("#orderForm .rmPntAmt").text(rmPntAmt.addComma());
  1905. // 적립포인트
  1906. $("#savePntSumAmt").text(savePntSumAmt.addComma()+" P");
  1907. // 사은품정보 설정
  1908. var freegiftValArr = [];
  1909. var freegiftUsePointArr = [];
  1910. $(".gift_box").each(function(){
  1911. $(this).find(".freegiftRdo").each(function(){
  1912. // 사은품필수
  1913. if ($(this).attr("allYn") == "Y" ) {
  1914. freegiftValArr.push($(this).val());
  1915. freegiftUsePointArr.push($(this).attr("usepoint"));
  1916. } else {
  1917. // 라디오버튼 선택 사은품 체크
  1918. if ($(this).is(":checked")) {
  1919. // 수령거부가 아닐때 체크
  1920. if ($(this).val() != "noSel") {
  1921. freegiftValArr.push($(this).val());
  1922. freegiftUsePointArr.push($(this).attr("usepoint"));
  1923. }
  1924. }
  1925. }
  1926. });
  1927. });
  1928. $("#orderAmtForm .freegiftValArr").text(freegiftValArr); // 사은품시퀀스배열
  1929. $("#orderAmtForm .freegiftUsePointArr").text(freegiftUsePointArr); // 사은품사용포인트배열
  1930. };
  1931. // 1.18 배송지정보 설정
  1932. var delvAddrSet = function(delvObj) {
  1933. var rtnStr = "";
  1934. rtnStr += "| recipNm ::: " + delvObj.recipNm;
  1935. rtnStr += "| recipPhnno ::: " + delvObj.recipPhnno;
  1936. rtnStr += "| recipZipcode ::: " + delvObj.recipZipcode;
  1937. rtnStr += "| recipBaseAddr ::: " + delvObj.recipBaseAddr;
  1938. rtnStr += "| recipDtlAddr ::: " + delvObj.recipDtlAddr;
  1939. rtnStr += "| delvMemo ::: " + delvObj.delvMemo;
  1940. // 배송지정보로드실행
  1941. deliveryAddrInfoSet(delvObj, false);
  1942. }
  1943. // 1.19 배송메모설정
  1944. var delvMemoSet = function(delvMemoObj) {
  1945. var rtnStr = "";
  1946. rtnStr += "| delvMemo ::: " + delvMemoObj.delvMemo;
  1947. $("#orderForm input[name=delvMemo]").val(delvMemoObj.delvMemo); // input 값에 설정
  1948. $("#delvMemo").text(delvMemoObj.delvMemo); // 메모 text 설정
  1949. $("#orderAmtForm .delvMemo").text(delvMemoObj.delvMemo); // 메모 text 설정
  1950. }
  1951. </script>
  1952. <script th:inline="javascript">
  1953. $(document).ready( function() {
  1954. //해외배송 입력
  1955. $(document).on('change','.odPayment .area_overseas #rdi-overs1',function(e){
  1956. $('.info_box.overs2').hide();
  1957. $('.info_box.overs1').show();
  1958. return false;
  1959. }).on('change','.odPayment .area_overseas #rdi-overs2',function(e){
  1960. $('.info_box.overs1').hide();
  1961. $('.info_box.overs2').show();
  1962. return false;
  1963. });
  1964. //할인쿠폰 확인
  1965. $(document).on('click','.odPayment .area_seldiscount .btn_coupon_toggle',function(e){
  1966. $('.coupon_list').toggle();
  1967. $(this).toggleClass('on');
  1968. return false;
  1969. });
  1970. //결제수단 선택
  1971. $(document).on('change','.odPayment .area_paymethod .paymethod_radio input',function(e){
  1972. $('.radio_blk').removeClass('on');
  1973. $(this).parents('.radio_blk').addClass('on');
  1974. $(this).parents('.radio_blk').find('.paymethod_box').show();
  1975. $(this).parents('.radio_blk').siblings('div').find('.paymethod_box').hide();
  1976. var paymethodlabel = $(this).prop('labels');
  1977. $(this).parents('li').find('.fold_head .data span').text($(paymethodlabel).text());
  1978. //간편결제 카드추가 슬라이드
  1979. var swiper = new Swiper('.paymethod_box .card_quickpay .list_card.swiper-container', {
  1980. slidesPerView: 'auto',
  1981. spaceBetween: 160,
  1982. centeredSlides: true,
  1983. navigation: {
  1984. nextEl: '.list_card .swiper-button-next',
  1985. prevEl: '.list_card .swiper-button-prev',
  1986. },
  1987. });
  1988. return false;
  1989. });
  1990. //STYLE24 간편결제 배너닫기
  1991. $(document).on('click','.odPayment .area_paymethod .quickpay_bnr .btn_close_bnr',function(e){
  1992. $('.quickpay_bnr').hide();
  1993. });
  1994. //결제수단 선택 > 즐겨찾기 추가시
  1995. $(document).on('click','.odPayment .area_paymethod .paymethod_box .card .etc .btn_favorcard',function(e){
  1996. $(this).toggleClass('active');
  1997. return false;
  1998. });
  1999. //결제수단 > 일반결제> 실시간계좌이체 선택시
  2000. $(document).on('change','.odPayment input:radio[name=rdi-paynormal]',function(e){
  2001. var paynormalValue = $(this).attr('id');
  2002. if (paynormalValue == 'rdi-paynormal2') {
  2003. $('.area_paymethod .agree_insurance').show();
  2004. } else {
  2005. $('.area_paymethod .agree_insurance').hide();
  2006. }
  2007. return false;
  2008. });
  2009. // 개인정보동의 열고닫기
  2010. $(document).on('click','.area_paymentinfo .payinfo_blk a',function(e){
  2011. e.preventDefault();
  2012. $(this).parents('.payinfo_blk').toggleClass('on');
  2013. var privacyToggle = $(this).find('span');
  2014. $(privacyToggle).text($(privacyToggle).text() == '보기' ? '닫기' : '보기');
  2015. return false;
  2016. });
  2017. //배송지수정 팝업열기
  2018. $(document).on('click','#btn_addrModify_pop',function(e){
  2019. $("#adrsModifyPop").modal("show");
  2020. return false;
  2021. });
  2022. //배송요청사항 팝업열기
  2023. $(document).on('click','#btn_rqstModify_pop',function(e){
  2024. $("#rqstModifyPop").modal("show");
  2025. return false;
  2026. });
  2027. //사은품지급안내 팝업열기
  2028. $(document).on('click','#btn_infoGift_pop',function(e){
  2029. $("#infoGiftPop").modal("show");
  2030. return false;
  2031. });
  2032. //간편결제등록 > STEP1.이용약관 팝업열기
  2033. $(document).on('click','.btn_addcard',function(e){
  2034. $("#qPayAgree_pop").modal("show");
  2035. return false;
  2036. });
  2037. //간편결제등록 > STEP1.이용약관 체크
  2038. $(document).on('click','.area_QpayCk .agr_select button',function(e){
  2039. $(this).parents('.area_QpayCk').find('.info_agrQpay').toggle();
  2040. var payagrToggle = $(this).find('span');
  2041. $(payagrToggle).text($(payagrToggle).text() == '약관열기' ? '약관닫기' : '약관열기');
  2042. return false;
  2043. });
  2044. //간편결제등록 > STEP1.이용약관 체크박스 전체선택
  2045. $(document).on('click','#chk-Qpay-agrAll',function(e){
  2046. $(this).parents(".qPayAgree_pop").find('.agree_Qpay input').prop("checked", $(this).is(":checked"));
  2047. });
  2048. //간편결제등록 > STEP1.이용약관 체크박스 개별선택
  2049. $(document).on("click", ".agree_Qpay input",function(e){
  2050. var is_checked = true;
  2051. $(".agree_Qpay input").each(function(){
  2052. is_checked = is_checked && $(this).is(":checked");
  2053. });
  2054. $("#chk-Qpay-agrAll").prop("checked", is_checked);
  2055. });
  2056. //간편결제등록 > 본인인증 팝업열기
  2057. $(document).on('click','#btn_qPayidConfirm_pop',function(e){
  2058. $("#qPayidConfirm_pop").modal("show");
  2059. return false;
  2060. });
  2061. });
  2062. // PG 카카오페이 결제준비 처리
  2063. var fnKakaoPaymentReady = function() {
  2064. let nextRedirectUrl = $('#order_info input[name=nextRedirectPcUrl]').val();
  2065. let option = 'width=420, height=520';
  2066. window.open(nextRedirectUrl, 'kakaoPaymentPopup', option);
  2067. }
  2068. // PG 카카오페이 결제 승인 요청
  2069. var fnKakaoPaymentRequest = function(pgToken) {
  2070. // Token 값 설정
  2071. $('#order_info input[name=pgToken]').val(pgToken);
  2072. // Form Submit
  2073. document.order_info.submit();
  2074. return true;
  2075. }
  2076. // PG 네이버페이 결제준비 처리
  2077. var fnNaverPaymentReady = function() {
  2078. let naverPayUrl = 'https://' + [[${@environment.getProperty('naverPay.payUrl.web')}]];
  2079. let reserveId = $('#order_info input[name=reserveId]').val();
  2080. let url = naverPayUrl + '/payments/' + reserveId;
  2081. let option = 'width=750, height=' + $(window).height();
  2082. window.open(url, 'naverPaymentPopup', option);
  2083. }
  2084. // PG 네이버페이 결제 승인 요청
  2085. var fnNaverPaymentRequest = function(paymentId) {
  2086. // TID 설정
  2087. $('#order_info input[name=pgTid]').val(paymentId);
  2088. // Form Submit
  2089. document.order_info.submit();
  2090. return true;
  2091. }
  2092. // 0원이하이면 '-' 처리 삭제 함수
  2093. var getZeroMinusDelAmt = function(tempAmt) {
  2094. var rtnAmtStr = "";
  2095. if (tempAmt > 0) {
  2096. rtnAmtStr = "-" + tempAmt.addComma();
  2097. } else {
  2098. rtnAmtStr = tempAmt.addComma();
  2099. }
  2100. return rtnAmtStr;
  2101. }
  2102. // START ::: 2021.04.09 숫자입려 천단위 찍기
  2103. var inputNumberFormat = function(obj) {
  2104. obj.value = comma(uncomma(obj.value));
  2105. }
  2106. var comma = function(str) {
  2107. str = String(str);
  2108. return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');
  2109. }
  2110. var uncomma = function(str) {
  2111. str = String(str);
  2112. return str.replace(/[^\d]+/g, '');
  2113. }
  2114. // 2021.04.09 숫자입려 천단위 찍기 ::: END
  2115. </script>
  2116. </th:block>
  2117. </body>
  2118. </html>