RtnReqForm.html 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756
  1. <!DOCTYPE html>
  2. <html lang="ko" xmlns:th="http://www.thymeleaf.org">
  3. <!--
  4. *******************************************************************************
  5. * @source : RtnReqForm.html
  6. * @desc : 반품신청 화면
  7. *============================================================================
  8. * STYLE24
  9. * Copyright(C) 2019 TSIT, All rights reserved.
  10. *============================================================================
  11. * VER DATE AUTHOR DESCRIPTION
  12. * === =========== ========== =============================================
  13. * 1.0 2020.12.12 jsh77b 최초 작성
  14. *******************************************************************************
  15. -->
  16. <div class="modalPopup" data-width="1400" data-height="600">
  17. <div class="panelStyle">
  18. <div class="panelTitle">
  19. <h2>반품요청</h2>
  20. <button type="button" class="close" onclick="uifnPopupClose('popupReturnRequestForm');"><i class="fa fa-times"></i></button>
  21. </div>
  22. <div class="panelContent" style="height:90%; overflow-y:auto; padding:0px 20px !important; ">
  23. <form id="cancelRequestFrm" name="cancelRequestFrm" action="/orderChange/return" method="post" target="hdFrameForOrderCancel">
  24. <input type="hidden" name="ordNo" th:value="${ordNo}"/>
  25. <input type="hidden" name="ordChgSq" th:value="${ordChgSq}"/>
  26. <input type="hidden" name="delvFeeCd" th:value="${delvFeeCd}"/>
  27. <input type="hidden" name="delvFeeCdGrp" th:value="${delvFeeCdGrp}"/>
  28. <input type="hidden" name="chgReason" value=""/>
  29. <input type="hidden" name="chgReasonDesc" value=""/>
  30. <h4>주문정보</h4>
  31. <div id="gridOrderCancelRequestList" style="width:100%; height: 200px;" class="ag-theme-balham"></div>
  32. <h4 id="h4OrderCancelRequestToBeList">반품정보</h4>
  33. <div id="gridOrderCancelRequestToBeList" style="width:100%; height: 200px;" class="ag-theme-balham"></div>
  34. <div id="delvCdList">
  35. <h4>배송정보</h4>
  36. <div id="gridDelvCdList" style="width:100%; height: 140px;" class="ag-theme-balham"></div>
  37. </div>
  38. <h4 id="h4DelvInfoList">배송비정보</h4>
  39. <div id="gridDelvInfoList" style="width:100%; height: 140px;" class="ag-theme-balham"></div>
  40. <div style="text-align:right; padding-bottom:5px; padding-top:5px;">
  41. <button type="button" class="btn btn-success" id="rtnReqBtn" onclick="fnCnclReq('rtnReq');">반품신청</button>
  42. <button type="button" class="btn btn-success" id="rtnReqCancelBtn" onclick="fnCnclReq('rtnReqCancel');">반품철회</button>
  43. <button type="button" class="btn btn-success" id="rtnToRtnBtn" onclick="fnCnclReq('rtnReq');">반품변경</button>
  44. <button type="button" class="btn btn-success" id="rtnToExcBtn" onclick="fnRtnToExc();">교환변경</button>
  45. </div>
  46. <table class="frmStyle">
  47. <colgroup>
  48. <col style="width:160px;" />
  49. <col style="width:320px;" />
  50. <col style="width:160px;" />
  51. <col style="width:320px;" />
  52. <col style="width:160px;" />
  53. <col />
  54. </colgroup>
  55. <tbody>
  56. <tr>
  57. <th>반품사유 <i class="star"></i></th>
  58. <td>
  59. <select name="selectChgReason" onchange="fnChangeChgReason($(this).val());">
  60. <option value="">[선택하세요]</option>
  61. <option th:if="${chgReasonList}" th:each="oneData, status : ${chgReasonList}" th:value="|${oneData.cd}|" th:text="|${oneData.cdNm}|"></option>
  62. </select>
  63. </td>
  64. <th>회수방법</th>
  65. <td>
  66. <label class="rdoBtn"><input type="radio" name="wdGb" th:id="wdGb" value="W" onclick="fnChangeWdGb(this)"/>회수요청<span></span></label>
  67. <label class="rdoBtn"><input type="radio" name="wdGb" th:id="wdGb" value="D" onclick="fnChangeWdGb(this)"/>직접발송<span></span></label>
  68. </td>
  69. <th>귀책사유</th>
  70. <td><span id="imputeReason"></span></td>
  71. </tr>
  72. <tr>
  73. <th>요청메모<br/><span id="chgMemoCount">0</span>/1,000Byte</th>
  74. <td colspan="5">
  75. <textarea id="chgMemo" name="chgMemo" style="height:80px;" onkeyup="cfnGetTextLength(this, 1000, $('#chgMemoCount'));"></textarea>
  76. </td>
  77. </tr>
  78. </tbody>
  79. </table>
  80. <h4>환불예정금액</h4>
  81. <table class="frmStyle">
  82. <colgroup>
  83. <col width="">
  84. <col width="">
  85. <col width="">
  86. <col width="">
  87. </colgroup>
  88. <thead>
  89. <tr>
  90. <th style="height:30px;">구분</th>
  91. <th style="height:30px;">항목</th>
  92. <th style="height:30px;">합계</th>
  93. <th style="height:30px;">내역</th>
  94. </tr>
  95. </thead>
  96. <tbody>
  97. <tr>
  98. <td style="height:25px;">상품금액</td>
  99. <td>취소상품금액</td>
  100. <td class="spanCnclRtnAmt">15,000원</td>
  101. <td></td>
  102. </tr>
  103. <tr>
  104. <td rowspan="2">할인금액차감</td>
  105. <td>쿠폰할인차감</td>
  106. <td class="spanCpnDcAmt">15,000원</td>
  107. <td style="line-height:25px;">
  108. <div style="height:25px;"><span>즉시할인쿠폰 : </span><span class="spanCpn1DcAmt">-60,000원</span></div>
  109. <div style="height:25px;"><span>주문서상품쿠폰 : </span><span class="spanGoodsCpnDcAmt">-60,000원</span></div>
  110. <div style="height:25px;"><span>장바구니쿠폰 : </span><span class="spanCartCpnDcAmt">-60,000원</span></div>
  111. </td>
  112. </tr>
  113. <tr>
  114. <td>상품할인차감</td>
  115. <td class="goodsDcSumAmt">15,000원</td>
  116. <td style="line-height:25px;">
  117. <div style="height:25px;"><span>선포인트할인 : </span><span class="spanPrePntDcAmt">-60,000원</span></div>
  118. <div style="height:25px;"><span>다다익선할인 : </span><span class="spanTmtbDcAmt">-60,000원</span></div>
  119. </td>
  120. </tr>
  121. <tr>
  122. <td>배송비</td>
  123. <td>환불배송비</td>
  124. <td class="spanRealDelvAmt">-60,000원</td>
  125. <td style="line-height:25px;">
  126. <div style="height:25px;"><span>배송비쿠폰 : </span><span class="delvCpnAmt">-60,000원</span></div>
  127. <div style="height:25px;"><span>추가금결제 : </span><span class="addDelvFee">-60,000원</span></div>
  128. </td>
  129. </tr>
  130. <tr>
  131. <td rowspan="4">환불금액</td>
  132. <td style="height:25px;">총환불금액</td>
  133. <td class="totalRefundAmt">70,000원</td>
  134. <td></td>
  135. </tr>
  136. <tr>
  137. <td style="height:25px;">결제수단환불</td>
  138. <td class="spanRefundAmt">70,000원</td>
  139. <td>
  140. <span class="pgGbNm">신용카드</span><span class="cardNm">(현대)</span>
  141. </td>
  142. </tr>
  143. <tr>
  144. <td style="height:25px;">상품권환불</td>
  145. <td class="spanGfcdUseAmt">70,000P</td>
  146. <td></td>
  147. </tr>
  148. <tr>
  149. <td style="height:25px;">포인트환불</td>
  150. <td class="spanPntDcAmt">70,000원</td>
  151. <td>
  152. <span>적립예정포인트환수 : </span><span class="spanSavePntAmt">60,000P</span>
  153. </td>
  154. </tr>
  155. </tbody>
  156. </table>
  157. <!--
  158. <h4>환불예정금액</h4>
  159. <table class="frmStyle">
  160. <colgroup>
  161. <col style="width:20%;"/>
  162. <col style="width:30%;"/>
  163. <col style="width:20%;"/>
  164. <col style="width:30%;"/>
  165. </colgroup>
  166. <tbody>
  167. <tr>
  168. <th>총 결제 금액</th>
  169. <td colspan="3"><span id="spanPayAmt"></span>원 (상품 실결제 금액 : <span id="spanSumRealOrdAmt"></span>원, 배송금액 : <span id="spanSumDeliveryFee"></span>원) </td>
  170. </tr>
  171. <tr>
  172. <th>주문 상품 금액</th>
  173. <td><span id="spanOrdAmt"></span>원</td>
  174. <th>취소 상품 금액</th>
  175. <td><span id="spanCnclRtnAmt"></span>원</td>
  176. </tr>
  177. <tr>
  178. <th>취소 사용 포인트</th>
  179. <td colspan="3"><span id="spanTotPntDcAmt"></span>원 (고객 포인트 : <span id="spanPntDcAmt"></span>원 + 상품 선포인트 : <span id="spanPrePntDcAmt"></span>원) </td>
  180. </tr>
  181. <tr>
  182. <th>취소 사용 쿠폰금액</th>
  183. <td colspan="3"><span id="spanCpnDcAmt"></span>원 (즉시할인쿠폰 : <span id="spanCpn1DcAmt"></span>원 + 상품쿠폰 : <span id="spanGoodsCpnDcAmt"></span>원 + 장바구니쿠폰 : <span id="spanCartCpnDcAmt"></span>원 + 배송비쿠폰 : <span id="spanDelvCpnDcAmt"></span>원)</td>
  184. </tr>
  185. <tr>
  186. <th>취소 다다익선 금액</th>
  187. <td colspan="3"><span id="spanTmtbDcAmt"></span>원 (수량할인 : <span id="spanTmtb1DcAmt"></span>원 + 금액할인 : <span id="spanTmtb2DcAmt"></span>원)</td>
  188. </tr>
  189. <tr>
  190. <th>취소 고객 상품권 금액</th>
  191. <td colspan="3"><span id="spanGfcdUseAmt"></span>원</td>
  192. </tr>
  193. <tr>
  194. <th>취소 상품 실결제 금액</th>
  195. <td><span id="spanRealCnclRtnAmt"></span>원</td>
  196. <th>환불 배송 금액</th>
  197. <td><span id="spanRealDelvAmt"></span>원</td>
  198. </tr>
  199. <tr>
  200. <th>환불 금액 합계</th>
  201. <td colspan="3"><span id="spanRefundAmt"></span>원</td>
  202. </tr>
  203. </tbody>
  204. </table>
  205. -->
  206. <!-- 회수지정보 -->
  207. <div id="chgerAddress">
  208. <h4>회수지 정보</h4>
  209. <button style="float: right" type="button" class="btn btn-success" th:if="${ordChgSq > 0 and (chgStat == 'G685_50' or chgStat == 'G685_51')}" onclick="fnChangeChgerInfo();">회수지 수정</button>
  210. <table class="frmStyle">
  211. <colgroup>
  212. <col style="width:160px;" />
  213. <col style="width:320px;" />
  214. <col style="width:160px;" />
  215. <col />
  216. </colgroup>
  217. <tbody>
  218. <tr>
  219. <th>보내는사람 <i class="star"></i></th>
  220. <td colspan="3"><input type="text" name ="chgerNm" class=""/></td>
  221. </tr>
  222. <tr>
  223. <th>회수지주소 <i class="star"></i></th>
  224. <td colspan="3">
  225. <input type="text" name ="chgerZipcode" class="w100" readonly="readonly"/>
  226. <button type="button" class="btn btn-info" th:if="${ordChgSq == 0 or chgStat == 'G685_50' or chgStat == 'G685_51'}" onclick="fnOpenDaumAddr('delvLoc');">우편번호찾기</button>
  227. <input type="text" name ="chgerBaseAddr" class="w300" readonly="readonly"/>
  228. <input type="text" name ="chgerDtlAddr" class="w300"/>
  229. </td>
  230. </tr>
  231. <tr>
  232. <th>일반전화</th>
  233. <td>
  234. <select name="chgerTelno1" class="w100">
  235. <option value="">[선택하세요]</option>
  236. <option th:if="${TelExcNoList}" th:each="oneData, status : ${TelExcNoList}" th:value="${oneData.cd}" th:text="${oneData.cd}"></option>
  237. </select>
  238. - <input type="text" name ="chgerTelno2" class="w60"/>
  239. - <input type="text" name ="chgerTelno3" class="w60"/>
  240. </td>
  241. <th>휴대전화 <i class="star"></i></th>
  242. <td>
  243. <select name="chgerPhnno1" class="w100">
  244. <option value="">[선택하세요]</option>
  245. <option th:if="${PhnExcNoList}" th:each="oneData, status : ${PhnExcNoList}" th:value="${oneData.cd}" th:text="${oneData.cd}"></option>
  246. </select>
  247. - <input type="text" name ="chgerPhnno2" class="w60"/>
  248. - <input type="text" name ="chgerPhnno3" class="w60"/>
  249. </td>
  250. </tr>
  251. <tr>
  252. <th>반품메모<br/><span id="chgerRtnMemoCount">0</span>/1,000Byte</th>
  253. <td colspan="3">
  254. <textarea id="chgerRtnMemo" name="chgerRtnMemo" style="height:80px;" onkeyup="cfnGetTextLength(this, 1000, $('#chgerRtnMemoCount'));"></textarea>
  255. </td>
  256. </tr>
  257. </tbody>
  258. </table>
  259. </div>
  260. <!-- //회수지정보 -->
  261. <div id="refundAccount" style="width:100%">
  262. <h4>환불계좌정보</h4>
  263. <button type="button" id="btnSaveAccount" class="btn btnRight btn-base btn-sm" style="margin-left:10px;" onclick="fnCreateOrderRfAccount();">등록</button>
  264. <!-- TABLE -->
  265. <table class="tableStyle">
  266. <colgroup>
  267. <col width="">
  268. <col width="">
  269. <col width="">
  270. <col width="">
  271. <col width="">
  272. </colgroup>
  273. <thead>
  274. <tr>
  275. <th>은행명</th>
  276. <th>은행코드</th>
  277. <th>계좌번호</th>
  278. <th>예금주</th>
  279. <th>기본여부</th>
  280. </tr>
  281. </thead>
  282. <tbody>
  283. <tr style="height:30px;">
  284. <td class="bankNm"></td>
  285. <td class="bankCd"></td>
  286. <td class="accountNo"></td>
  287. <td class="accountNm"></td>
  288. <td class="defaultYn"></td>
  289. </tr>
  290. </tbody>
  291. </table>
  292. </div>
  293. <br>
  294. </form>
  295. </div>
  296. </div>
  297. </div>
  298. <!-- data -->
  299. <script th:inline="javascript">
  300. /*<![CDATA[*/
  301. var cancelRequestTargetList = [[${cancelRequestTargetList}]]; // 취소대상목록
  302. var cancelRequestTargetCnt = [[${cancelRequestTargetList.size()}]]; // 취소대상건수
  303. var ordNo = [[${ordNo}]]; // 주문번호
  304. var ordChgSq = [[${ordChgSq}]]; // 주문변경번호
  305. var delvFeeCd = [[${delvFeeCd}]]; // 배송정책코드
  306. var orderInfoList = [[${orderInfoList}]]; // 주문기본정보
  307. var orderDelvRtnAddrInfo = [[${orderDelvRtnAddrInfo}]]; // 회수지정보
  308. var orderChangeDetailList = [[${orderChangeDetailList}]]; // 취소/반품/교환요청 정보
  309. var chgStat = [[${chgStat}]]; // 변경상태
  310. var recallExceptionInfo = [[${recallExceptionInfo}]]; // 회수 예외 정보
  311. var rtnLocInfo = [[${rtnLocInfo}]]; // 반송지주소정보
  312. var payGb = orderInfoList[0].payGb; // 결제수단
  313. var payMeans = orderInfoList[0].payMeans; // 결제방법
  314. var payMeansNm = orderInfoList[0].payMeansNm; // 결제방법명
  315. var cardNm = orderInfoList[0].cardNm; // 결제카드명
  316. var pgGb = orderInfoList[0].pgGb; // PG구분
  317. var selfGoodsYn = cancelRequestTargetList[0].selfGoodsYn; // 자사,입점여부
  318. var chgReason = ""; // 변경사유코드
  319. var chgMemo = ""; // 변경사유메모
  320. var wdGb = ""; // 회수방법
  321. var ordChgGb = [[${ordChgGb}]]; // 주문변경요쳥변경구분
  322. var canRequestCancelYn = ""; // 반품철회가능여부
  323. // 변경요청정보
  324. if (ordChgSq > 0) {
  325. chgReason = orderChangeDetailList[0].chgReason; // 변경사유코드
  326. chgMemo = orderChangeDetailList[0].chgMemo; // 변경사유메모
  327. wdGb = orderChangeDetailList[0].wdGb; // 회수방법
  328. canRequestCancelYn = orderChangeDetailList[0].canRequestCancelYn; // 반품철회가능여부
  329. }
  330. if (gagajf.isNull(ordChgGb)) {
  331. ordChgGb == '1';
  332. }
  333. var temp1 = true;
  334. var temp2 = false;
  335. var temp3 = true;
  336. // 1. 주문정보(변경요청가능대상)
  337. var columnCancelReqList = [
  338. {headerName: "주문번호" , field: "ordNo" , width: 80 , cellClass: 'text-center' , hide: temp1},
  339. {headerName: "주문상세" , field: "ordDtlNo" , width: 80 , cellClass: 'text-center'},
  340. {headerName: "주문상세" , field: "ordDtlStat" , width: 80 , cellClass: 'text-center' , hide: temp1},
  341. {headerName: "주문상세상태" , field: "ordDtlStatNm" , width: 100 , cellClass: 'text-center' , hide: temp1},
  342. {headerName: "상품코드" , field: "goodsCd" , width: 100 , cellClass: 'text-left' , hide: temp2},
  343. {headerName: "상품명" , field: "goodsNm" , width: 200 , cellClass: 'text-left' , hide: temp2},
  344. {headerName: "상품타입" , field: "goodsTypeNm" , width: 100 , cellClass: 'text-center' , hide: temp2},
  345. {
  346. headerName : "옵션금액"
  347. , field : "optAddPrice"
  348. , width : 80
  349. , cellClass : 'text-right'
  350. , cellRenderer : function (params) {
  351. return params.value.addComma();
  352. }
  353. , hide : temp1
  354. },
  355. {
  356. headerName : "주문"
  357. , field : "ordQty"
  358. , width : 80
  359. , cellClass : 'text-center'
  360. , cellRenderer : function (params) {
  361. return params.value.addComma();
  362. }
  363. },
  364. {
  365. headerName : "취소/요청"
  366. , field : "cnclRtnQty"
  367. , width : 80
  368. , cellClass : 'text-center'
  369. , cellRenderer : function (params) {
  370. var cnclRtnReqQty = parseInt(params.data.cnclRtnQty) + parseInt(params.data.ordReqChgQty);
  371. return cnclRtnReqQty;
  372. }
  373. },
  374. {
  375. headerName : "취소/반품"
  376. , field : "ordCanChgQty"
  377. , width : 100
  378. , cellClass : 'text-center'
  379. , cellRenderer : function (params) {
  380. var ordQty = parseInt(params.data.ordQty);
  381. var cnclRtnQty = parseInt(params.data.cnclRtnQty);
  382. var ordReqChgQty = parseInt(params.data.ordReqChgQty);
  383. var ordCanChgQty = parseInt(params.value);
  384. var rtnStr = "";
  385. // 취소신청가능수량있으면 수량만 표시 (취소,반품,교환 신청정보 처리)
  386. // 2021.06.22 반품TO반품 수량 처리
  387. if (ordChgSq > 0) {
  388. if (ordChgGb == 'G681_30') {
  389. ordCanChgQty = params.data.chgQty;
  390. }
  391. rtnStr = ordCanChgQty;
  392. }
  393. // 2021.08.03 확정후품절 수량 처리
  394. else if (ordChgGb == 'G681_60') {
  395. rtnStr = params.data.chgQty;
  396. } else {
  397. ordCanChgQty = ordQty - (cnclRtnQty + ordReqChgQty);
  398. if (ordCanChgQty == 0) {
  399. rtnStr += "<select class='ordCanChgQty' name='ordCanChgQty' ordDtlNo='" + params.data.ordDtlNo + "' onChange='fnCalculateRefundAmt(this);' disabled='disabled'>";
  400. } else {
  401. rtnStr += "<select class='ordCanChgQty' name='ordCanChgQty' ordDtlNo='" + params.data.ordDtlNo + "' onChange='fnCalculateRefundAmt(this);'>";
  402. }
  403. for (i=0 ; i<=ordCanChgQty ; i++) {
  404. if (i == params.data.ordCanChgQty) {
  405. rtnStr += " <option value='"+i+"' selected>"+i+"</option>";
  406. } else {
  407. rtnStr += " <option value='"+i+"'>"+i+"</option>";
  408. }
  409. }
  410. rtnStr += "</select>";
  411. }
  412. return rtnStr;
  413. }
  414. },
  415. {
  416. headerName : "주문"
  417. , field : "ordAmt"
  418. , width : 80
  419. , cellClass : 'text-right'
  420. , cellRenderer : function (params) {
  421. return params.value.addComma();
  422. }
  423. },
  424. {
  425. headerName : "취소"
  426. , field : "cnclRtnAmt"
  427. , width : 80
  428. , cellClass : 'text-right'
  429. , cellRenderer : function (params) {
  430. return params.value.addComma();
  431. }
  432. },
  433. {
  434. headerName : "즉시할인"
  435. , field : "cpn1DcAmt"
  436. , width : 80
  437. , cellClass : 'text-right'
  438. , cellRenderer : function (params) {
  439. return params.value.addComma();
  440. }
  441. },
  442. {
  443. headerName : "다다익선1"
  444. , field : "tmtb1DcAmt"
  445. , width : 80
  446. , cellClass : 'text-right'
  447. , cellRenderer : function (params) {
  448. return params.value.addComma();
  449. }
  450. },
  451. {
  452. headerName : "다다익선2"
  453. , field : "tmtb2DcAmt"
  454. , width : 80
  455. , cellClass : 'text-right'
  456. , cellRenderer : function (params) {
  457. return params.value.addComma();
  458. }
  459. },
  460. {
  461. headerName : "상품쿠폰"
  462. , field : "goodsCpnDcAmt"
  463. , width : 80
  464. , cellClass : 'text-right'
  465. , cellRenderer : function (params) {
  466. return params.value.addComma();
  467. }
  468. },
  469. {
  470. headerName : "장바구니쿠폰"
  471. , field : "cartCpnDcAmt"
  472. , width : 100
  473. , cellClass : 'text-right'
  474. , cellRenderer : function (params) {
  475. return params.value.addComma();
  476. }
  477. },
  478. {
  479. headerName : "포인트"
  480. , field : "pntDcAmt"
  481. , width : 80
  482. , cellClass : 'text-right'
  483. , cellRenderer : function (params) {
  484. return params.value.addComma();
  485. }
  486. },
  487. {
  488. headerName : "선포인트"
  489. , field : "prePntDcAmt"
  490. , width : 80
  491. , cellClass : 'text-right'
  492. , cellRenderer : function (params) {
  493. return params.value.addComma();
  494. }
  495. },
  496. {
  497. headerName : "상품권"
  498. , field : "gfcdUseAmt"
  499. , width : 80
  500. , cellClass : 'text-right'
  501. , cellRenderer : function (params) {
  502. return params.value.addComma();
  503. }
  504. },
  505. {
  506. headerName : "실결제금액"
  507. , field : "realOrdAmt"
  508. , width : 100
  509. , cellClass : 'text-right'
  510. , cellRenderer : function (params) {
  511. return params.value.addComma();
  512. }
  513. },
  514. {
  515. headerName : "배송비"
  516. , field : "delvFee"
  517. , width : 80
  518. , cellClass : 'text-right'
  519. , cellRenderer : function (params) {
  520. return params.value.addComma();
  521. }
  522. , hide : temp1
  523. },
  524. {headerName: "업체" , field: "supplyCompCd" , width: 100 , cellClass: 'text-center', hide: temp1},
  525. {headerName: "배송비코드" , field: "delvFeeCd" , width: 100 , cellClass: 'text-center', hide: temp1},
  526. {
  527. headerName : "무료배송비"
  528. , field : "minOrdAmt"
  529. , width : 80
  530. , cellClass : 'text-right'
  531. , cellRenderer : function (params) {
  532. return params.value.addComma();
  533. }
  534. , hide : temp1
  535. },
  536. {
  537. headerName : "기본배송비"
  538. , field : "orgDelvFee"
  539. , width : 80
  540. , cellClass : 'text-right'
  541. , cellRenderer : function (params) {
  542. return params.value.addComma();
  543. }
  544. , hide : temp1
  545. },
  546. {
  547. headerName : "반품배송비"
  548. , field : "rtnDelvFee"
  549. , width : 80
  550. , cellClass : 'text-right'
  551. , cellRenderer : function (params) {
  552. return params.value.addComma();
  553. }
  554. , hide : temp1
  555. },
  556. {
  557. headerName : "교환배송비"
  558. , field : "excDelvFee"
  559. , width : 80
  560. , cellClass : 'text-right'
  561. , cellRenderer : function (params) {
  562. return params.value.addComma();
  563. }
  564. , hide : temp1
  565. },
  566. {headerName: "전체취소가능" , field: "allCanYn" , width: 100 , cellClass: 'text-center', hide: temp1}
  567. ];
  568. var gridOptionsCancelReqList = gagaAgGrid.getGridOptions(columnCancelReqList);
  569. // Add on options
  570. gridOptionsCancelReqList.suppressRowClickSelection = true;
  571. gridOptionsCancelReqList.rowSelection = 'multiple';
  572. // 2. 반품정보(환불정보)
  573. var columnCancelReqToBeList = [
  574. {
  575. headerName : "주문상세정보",
  576. children : [
  577. {headerName: "주문번호" , field: "ordNo" , width: 80 , cellClass: 'text-center', hide: temp1},
  578. {headerName: "주문상세" , field: "ordDtlNo" , width: 80 , cellClass: 'text-center'},
  579. {headerName: "주문상세" , field: "ordDtlStat" , width: 80 , cellClass: 'text-center', hide: temp1},
  580. {headerName: "주문상세상태" , field: "ordDtlStatNm" , width: 100 , cellClass: 'text-center', hide: temp1},
  581. {headerName: "상품코드" , field: "goodsCd" , width: 100 , cellClass: 'text-center', hide: temp1},
  582. {headerName: "상품명" , field: "goodsNm" , width: 200 , cellClass: 'text-center', hide: temp1},
  583. {headerName: "상품타입" , field: "goodsTypeNm" , width: 100 , cellClass: 'text-center', hide: temp2}
  584. ]
  585. },
  586. {
  587. headerName : "주문상세단품정보",
  588. children : [
  589. {headerName: "단품번호" , field: "ordDtlItemSq" , width: 100 , cellClass: 'text-center', hide: temp2},
  590. {headerName: "단품코드" , field: "itemCd" , width: 100 , cellClass: 'text-center', hide: temp2},
  591. {headerName: "단품명" , field: "itemNm" , width: 200 , cellClass: 'text-center', hide: temp2},
  592. {headerName: "칼라코드" , field: "optCd1" , width: 80 , cellClass: 'text-center', hide: temp1},
  593. {headerName: "사이즈코드" , field: "optCd2" , width: 80 , cellClass: 'text-center', hide: temp2},
  594. {
  595. headerName : "단품수량"
  596. , field : "itemQty"
  597. , width : 80
  598. , cellClass : 'text-center'
  599. , cellRenderer : function (params) {
  600. return params.value.addComma();
  601. }
  602. },
  603. {
  604. headerName : "단품금액"
  605. , field : "itemPrice"
  606. , width : 80
  607. , cellClass : 'text-right'
  608. , cellRenderer : function (params) {
  609. return params.value.addComma();
  610. }
  611. },
  612. {
  613. headerName : "단품옵션금액"
  614. , field : "optAddPrice"
  615. , width : 80
  616. , cellClass : 'text-right'
  617. , cellRenderer : function (params) {
  618. return params.value.addComma();
  619. }
  620. }
  621. ]
  622. },
  623. {
  624. headerName : "주문상세수량",
  625. children : [
  626. {
  627. headerName : "주문"
  628. , field : "ordQty"
  629. , width : 80
  630. , cellClass : 'text-center'
  631. , cellRenderer : function (params) {
  632. return params.value.addComma();
  633. }
  634. },
  635. {
  636. headerName : "취소/요청"
  637. , field : "cnclRtnQty"
  638. , width : 80
  639. , cellClass : 'text-center'
  640. , cellRenderer : function (params) {
  641. var cnclRtnReqQty = parseInt(params.data.cnclRtnQty) + parseInt(params.data.ordReqChgQty);
  642. return cnclRtnReqQty;
  643. }
  644. },
  645. {
  646. headerName : "취소"
  647. , field : "ordCanChgQty"
  648. , width : 100
  649. , cellClass : 'text-center'
  650. , cellRenderer : function (params) {
  651. return params.value.addComma();
  652. }
  653. }
  654. ]
  655. },
  656. {
  657. headerName : "주문단품금액",
  658. children : [
  659. {
  660. headerName : "주문"
  661. , field : "ordAmt"
  662. , width : 80
  663. , cellClass : 'text-right'
  664. , cellRenderer : function (params) {
  665. return params.value.addComma();
  666. }
  667. },
  668. {
  669. headerName : "취소/반품"
  670. , field : "cnclRtnAmt"
  671. , width : 80
  672. , cellClass : 'text-right'
  673. , cellRenderer : function (params) {
  674. return params.value.addComma();
  675. }
  676. },
  677. {
  678. headerName : "즉시할인"
  679. , field : "cpn1DcAmt"
  680. , width : 80
  681. , cellClass : 'text-right'
  682. , cellRenderer : function (params) {
  683. return params.value.addComma();
  684. }
  685. },
  686. {
  687. headerName : "다다익선1"
  688. , field : "tmtb1DcAmt"
  689. , width : 80
  690. , cellClass : 'text-right'
  691. , cellRenderer : function (params) {
  692. return params.value.addComma();
  693. }
  694. },
  695. {
  696. headerName : "다다익선2"
  697. , field : "tmtb2DcAmt"
  698. , width : 80
  699. , cellClass : 'text-right'
  700. , cellRenderer : function (params) {
  701. return params.value.addComma();
  702. }
  703. },
  704. {
  705. headerName : "상품쿠폰"
  706. , field : "goodsCpnDcAmt"
  707. , width : 80
  708. , cellClass : 'text-right'
  709. , cellRenderer : function (params) {
  710. return params.value.addComma();
  711. }
  712. },
  713. {
  714. headerName : "장바구니쿠폰"
  715. , field : "cartCpnDcAmt"
  716. , width : 80
  717. , cellClass : 'text-right'
  718. , cellRenderer : function (params) {
  719. return params.value.addComma();
  720. }
  721. },
  722. {
  723. headerName : "포인트"
  724. , field : "pntDcAmt"
  725. , width : 80
  726. , cellClass : 'text-right'
  727. , cellRenderer : function (params) {
  728. return params.value.addComma();
  729. }
  730. },
  731. {
  732. headerName : "선포인트"
  733. , field : "prePntDcAmt"
  734. , width : 80
  735. , cellClass : 'text-right'
  736. , cellRenderer : function (params) {
  737. return params.value.addComma();
  738. }
  739. },
  740. {
  741. headerName : "상품권"
  742. , field : "gfcdUseAmt"
  743. , width : 80
  744. , cellClass : 'text-right'
  745. , cellRenderer : function (params) {
  746. return params.value.addComma();
  747. }
  748. },
  749. {
  750. headerName : "환불금액"
  751. , field : "realOrdAmt"
  752. , width : 80
  753. , cellClass : 'text-right'
  754. , cellRenderer : function (params) {
  755. return params.value.addComma();
  756. }
  757. }
  758. ]
  759. },
  760. {
  761. headerName : "주문배송비정보",
  762. children : [
  763. {
  764. headerName : "배송비"
  765. , field : "delvFee"
  766. , width : 80
  767. , cellClass : 'text-right'
  768. , cellRenderer : function (params) {
  769. return params.value.addComma();
  770. }
  771. , hide : temp2
  772. },
  773. {headerName: "업체" , field: "supplyCompCd" , width: 100 , cellClass: 'text-center', hide: temp2},
  774. {headerName: "배송비코드" , field: "delvFeeCd" , width: 100 , cellClass: 'text-center', hide: temp2},
  775. {
  776. headerName : "무료배송비"
  777. , field : "minOrdAmt"
  778. , width : 80
  779. , cellClass : 'text-right'
  780. , cellRenderer : function (params) {
  781. return params.value.addComma();
  782. }
  783. , hide : temp2
  784. },
  785. {
  786. headerName : "기본배송비"
  787. , field : "orgDelvFee"
  788. , width : 80
  789. , cellClass : 'text-right'
  790. , cellRenderer : function (params) {
  791. return params.value.addComma();
  792. }
  793. , hide : temp2
  794. },
  795. {
  796. headerName : "반품배송비"
  797. , field : "rtnDelvFee"
  798. , width : 80
  799. , cellClass : 'text-right'
  800. , cellRenderer : function (params) {
  801. return params.value.addComma();
  802. }
  803. , hide : temp2
  804. },
  805. {
  806. headerName : "교환배송비"
  807. , field : "excDelvFee"
  808. , width : 80
  809. , cellClass : 'text-right'
  810. , cellRenderer : function (params) {
  811. return params.value.addComma();
  812. }
  813. , hide : temp2
  814. },
  815. {headerName: "전체취소가능" , field: "allCanYn" , width: 100 , cellClass: 'text-center', hide: temp2},
  816. ]
  817. }
  818. ];
  819. var gridOptionsCancelReqToBeList = gagaAgGrid.getGridOptions(columnCancelReqToBeList);
  820. // 3. 배송비정보(환불정보)
  821. var columnDelvInfoList = [
  822. {
  823. headerName : "배송코드기준금액",
  824. children : [
  825. {headerName: "업체" , field: "supplyCompCd" , width: 100 , cellClass: 'text-center', hide: temp2},
  826. {headerName: "배송비코드" , field: "delvFeeCd" , width: 100 , cellClass: 'text-center', hide: temp2},
  827. {
  828. headerName : "주문"
  829. , field : "ordAmt"
  830. , width : 100
  831. , cellClass : 'text-right'
  832. , cellRenderer : function (params) {
  833. return params.value.addComma();
  834. }
  835. },
  836. {
  837. headerName : "취소"
  838. , field : "cnclRtnAmt"
  839. , width : 100
  840. , cellClass : 'text-right'
  841. , cellRenderer : function (params) {
  842. return params.value.addComma();
  843. }
  844. },
  845. {
  846. headerName : "환불"
  847. , field : "realOrdAmt"
  848. , width : 100
  849. , cellClass : 'text-right'
  850. , cellRenderer : function (params) {
  851. return params.value.addComma();
  852. }
  853. }
  854. ]
  855. },
  856. {
  857. headerName : "배송비정보",
  858. children : [
  859. {
  860. headerName : "배송비"
  861. , field : "delvFee"
  862. , width : 100
  863. , cellClass : 'text-right'
  864. , cellRenderer : function (params) {
  865. return params.value.addComma();
  866. }
  867. , hide : temp2
  868. },
  869. {
  870. headerName : "무료배송비"
  871. , field : "minOrdAmt"
  872. , width : 100
  873. , cellClass : 'text-right'
  874. , cellRenderer : function (params) {
  875. return params.value.addComma();
  876. }
  877. , hide : temp2
  878. },
  879. {
  880. headerName : "기본배송비"
  881. , field : "orgDelvFee"
  882. , width : 100
  883. , cellClass : 'text-right'
  884. , cellRenderer : function (params) {
  885. return params.value.addComma();
  886. }
  887. , hide : temp2
  888. },
  889. {
  890. headerName : "반품배송비"
  891. , field : "rtnDelvFee"
  892. , width : 80
  893. , cellClass : 'text-right'
  894. , cellRenderer : function (params) {
  895. return params.value.addComma();
  896. }
  897. , hide : temp2
  898. },
  899. {
  900. headerName : "교환배송비"
  901. , field : "excDelvFee"
  902. , width : 80
  903. , cellClass : 'text-right'
  904. , cellRenderer : function (params) {
  905. return params.value.addComma();
  906. }
  907. , hide : temp2
  908. },
  909. {headerName: "추가배송비여부" , field: "addDelvFeeYn" , width: 140 , cellClass: 'text-center', hide: temp2},
  910. {
  911. headerName : "추가배송비"
  912. , field : "addDelvFee"
  913. , width : 100
  914. , cellClass : 'text-right'
  915. , cellRenderer : function (params) {
  916. return params.value.addComma();
  917. }
  918. , hide : temp2
  919. },
  920. {headerName: "전체취소가능" , field: "allCanYn" , width: 100 , cellClass: 'text-center', hide: temp2},
  921. ]
  922. }
  923. ];
  924. var gridOptionsDelvInfoList = gagaAgGrid.getGridOptions(columnDelvInfoList);
  925. // 3. 배송정보(환불정보)
  926. var columnDelvCdList = [
  927. {headerName: "업체" , field: "supplyCompNm" , width: 150 , cellClass: 'text-center'},
  928. {headerName: "배송비코드" , field: "delvFeeCd" , width: 100 , cellClass: 'text-center'},
  929. {
  930. headerName : "추가배송비"
  931. , field : "addDelvFee"
  932. , width : 100
  933. , cellClass : 'text-right'
  934. , cellRenderer : function (params) {
  935. return params.value.addComma();
  936. }
  937. , hide : true
  938. },
  939. {headerName: "반품지명" , field: "rtnLocNm" , width: 100 , cellClass: 'text-center'},
  940. {headerName: "반품지전화번호" , field: "rtnLocTelno" , width: 100 , cellClass: 'text-center'},
  941. {headerName: "반품지우편번호" , field: "rtnLocZipcode" , width: 100 , cellClass: 'text-center'},
  942. {headerName: "반품지기본주소" , field: "rtnLocBaseAddr" , width: 300 , cellClass: 'text-center'},
  943. {headerName: "반품지상세주소" , field: "rtnLocDtlAddr" , width: 300 , cellClass: 'text-center'},
  944. ];
  945. var gridOptionsDelvCdList = gagaAgGrid.getGridOptions(columnDelvCdList);
  946. </script>
  947. <script>
  948. // 현재 사유는 고객 입니다.
  949. var isCustomer = true;
  950. // 환불예상금액계산
  951. var fnCalculateRefundAmt = function (obj) {
  952. // 변경신청목록
  953. var cancelRequestTargetToBeList = [];
  954. if (obj != null) {
  955. for (i=0 ; i<cancelRequestTargetList.length ; i++) {
  956. var orDtlNo = $(obj).attr("ordDtlNo");
  957. var ordCanChgQty = $(obj).val();
  958. if (cancelRequestTargetList[i].ordDtlNo == orDtlNo) {
  959. cancelRequestTargetList[i].ordCanChgQty = ordCanChgQty;
  960. }
  961. }
  962. // 주문변경대상정보 재설정
  963. gridOptionsCancelReqList.api.setRowData(cancelRequestTargetList);
  964. }
  965. if (cancelRequestTargetList.length == 0) {
  966. alert("요청 대상정보가 존재 하지 않습니다.");
  967. uifnPopupClose('popupReturnRequestForm');
  968. return false;
  969. }
  970. // 2021.05.25 수정
  971. var ordDtlNoArr = [];
  972. var cnclRtnReqQtyArr = [];
  973. var chgQtyArr = [];
  974. // 1. 반품신청수량 체크
  975. for (i=0 ; i<cancelRequestTargetList.length ; i++) {
  976. if (cancelRequestTargetList[i].ordCanChgQty > 0) {
  977. // 반품신청값설정
  978. ordDtlNoArr.push(cancelRequestTargetList[i].ordDtlNo);
  979. cnclRtnReqQtyArr.push(cancelRequestTargetList[i].ordCanChgQty);
  980. chgQtyArr.push(cancelRequestTargetList[i].chgQty);
  981. }
  982. }
  983. // 2. 추가정보설정
  984. var chgerNm = orderInfoList[0].ordNm;
  985. var chgerEmail = orderInfoList[0].ordEmail;
  986. var chgerPhnno = orderInfoList[0].ordPhnno;
  987. var chgerTelno = orderInfoList[0].ordTelno;
  988. var custNo = orderInfoList[0].custNo;
  989. var delvFeeCd = orderInfoList[0].delvFeeCd;
  990. var delvFeeCdGrp = $('#cancelRequestFrm input[name=delvFeeCdGrp]').val();
  991. // 환불금액계산호출
  992. var jsonObj = {
  993. "ordNo" : ordNo
  994. ,"ordDtlNoArr" : ordDtlNoArr
  995. ,"cnclRtnReqQtyArr" : cnclRtnReqQtyArr
  996. ,"isCustomer" : isCustomer
  997. ,"chgerNm" : chgerNm
  998. ,"chgerEmail" : chgerEmail
  999. ,"chgerPhnno" : chgerPhnno
  1000. ,"custNo" : custNo
  1001. ,"ordNm" : chgerNm
  1002. ,"ordPhnno" : chgerPhnno
  1003. ,"delvFeeCdGrp" : delvFeeCdGrp
  1004. }
  1005. var jsonData = JSON.stringify(jsonObj);
  1006. gagajf.ajaxJsonSubmit(
  1007. '/orderChange/cancel/refundAmt'
  1008. , jsonData
  1009. , function(result) {
  1010. $.each(result.cancelOrderRefundList, function(idx, item) {
  1011. let index = ordDtlNoArr.indexOf(item.ordDtlNo);
  1012. if (index >= 0) {
  1013. item.chgQty = chgQtyArr[index];
  1014. }
  1015. });
  1016. gridOptionsCancelReqToBeList.api.setRowData(result.cancelOrderRefundList);
  1017. gridOptionsDelvInfoList.api.setRowData(result.cancelDelvRefundList);
  1018. let spanSumDeliveryFee = result.spanSumDeliveryFee - result.spanDelvCpnDcAmt;
  1019. let sumDeliveryFee = result.sumDeliveryFee - result.spanRefundDelvCpnAmt;
  1020. // 2021.08.04 취소금액수정
  1021. var spanRealDelvAmt = 0;
  1022. var addDelvFee = 0;
  1023. if (result.spanRealCnclRtnAmt > 0) {
  1024. // 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
  1025. if (isCustomer) {
  1026. result.spanRefundAmt = (result.spanRealCnclRtnAmt + sumDeliveryFee) - result.spanTotDeliveryFee;
  1027. // 2021.07.01
  1028. // @ 마이너스금액이면 허들깨지면서 배송비 발생
  1029. // @ 플러스금액이면 마지막취소시 배송금액 환불
  1030. spanRealDelvAmt = sumDeliveryFee - result.spanTotDeliveryFee;
  1031. addDelvFee = result.spanTotDeliveryFee;
  1032. }
  1033. // 회사사유 : 환불금액계산 = (취소금액 + 배송비)
  1034. else {
  1035. result.spanRefundAmt = (result.spanRealCnclRtnAmt + sumDeliveryFee);
  1036. }
  1037. }
  1038. $("#spanRefundAmt").text(result.spanRefundAmt.addComma()+"원"); //환불 금액 합계
  1039. $(".spanCnclRtnAmt").text(result.spanCnclRtnAmt.addComma()+"원");
  1040. $(".spanCpn1DcAmt").text(result.spanCpn1DcAmt.addComma()+"원");
  1041. $(".spanGoodsCpnDcAmt").text(result.spanGoodsCpnDcAmt.addComma()+"원");
  1042. $(".spanCartCpnDcAmt").text(result.spanCartCpnDcAmt.addComma()+"원");
  1043. var spanCpnDcAmt = result.spanCpn1DcAmt + result.spanGoodsCpnDcAmt + result.spanGoodsCpnDcAmt;
  1044. $(".spanCpnDcAmt").text(spanCpnDcAmt.addComma()+"원");
  1045. $(".spanPrePntDcAmt").text(result.spanPrePntDcAmt.addComma()+"원");
  1046. $(".spanTmtbDcAmt").text(result.spanTmtbDcAmt.addComma()+"원");
  1047. var goodsDcSumAmt = result.spanPrePntDcAmt + result.spanTmtbDcAmt;
  1048. $(".goodsDcSumAmt").text(goodsDcSumAmt.addComma()+"원");
  1049. $(".delvCpnAmt").text(result.spanDelvCpnDcAmt.addComma()+"원");
  1050. $(".addDelvFee").text(addDelvFee.addComma()+"원");
  1051. $(".spanRealDelvAmt").text(spanSumDeliveryFee.addComma()+"원");
  1052. var totalRefundAmt = result.spanRefundAmt + result.spanGfcdUseAmt + result.spanPntDcAmt;
  1053. $(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");
  1054. $(".spanRefundAmt").text(result.spanRefundAmt.addComma()+"원");
  1055. $(".spanGfcdUseAmt").text(result.spanGfcdUseAmt.addComma()+"원");
  1056. $(".spanPntDcAmt").text(result.spanPntDcAmt.addComma()+"원");
  1057. $(".spanSavePntAmt").text(result.spanSavePntAmt.addComma()+"P");
  1058. var pgGbNm = "";
  1059. var cardGbNm = "";
  1060. if (pgGb == 'KCP') {
  1061. pgGbNm = payMeansNm;
  1062. cardGbNm = "(" + cardNm + ")";
  1063. } else if (pgGb == 'NAVER') {
  1064. pgGbNm = "네이버페이";
  1065. } else if (pgGb == 'NAVER_ORDER') {
  1066. pgGbNm = "네이버페이주문형";
  1067. } else if (pgGb == 'KAKAO') {
  1068. pgGbNm = "카카오페이";
  1069. } else if (pgGb == 'PAYCO') {
  1070. pgGbNm = "페이코";
  1071. } else if (pgGb == 'ISTYLE') {
  1072. pgGbNm = "상품권";
  1073. } else {
  1074. pgGbNm = "외부몰입금";
  1075. }
  1076. $(".pgGbNm").text(pgGbNm);
  1077. $(".cardNm").text(cardGbNm);
  1078. /*
  1079. $("#spanPayAmt").text(result.spanPayAmt.addComma()); //총 결제 금액
  1080. $("#spanSumRealOrdAmt").text(result.spanSumRealOrdAmt.addComma()); //상품 실결제 금액
  1081. $("#spanSumDeliveryFee").text(spanSumDeliveryFee.addComma()); //배송금액
  1082. $("#spanOrdAmt").text(result.spanOrdAmt.addComma()); //주문 상품 금액
  1083. $("#spanCnclRtnAmt").text(result.spanCnclRtnAmt.addComma()); //취소 상품 금액
  1084. $("#spanTotPntDcAmt").text(result.spanTotPntDcAmt.addComma()); //취소 사용 포인트
  1085. $("#spanPntDcAmt").text(result.spanPntDcAmt.addComma()); //고객 포인트
  1086. $("#spanPrePntDcAmt").text(result.spanPrePntDcAmt.addComma()); //상품 선포인트
  1087. $("#spanCpnDcAmt").text(result.spanCpnDcAmt.addComma()); //취소 사용 쿠폰금액
  1088. $("#spanCpn1DcAmt").text(result.spanCpn1DcAmt.addComma()); //즉시할인쿠폰
  1089. $("#spanGoodsCpnDcAmt").text(result.spanGoodsCpnDcAmt.addComma()); //상품쿠폰
  1090. $("#spanCartCpnDcAmt").text(result.spanCartCpnDcAmt.addComma()); //장바구니쿠폰
  1091. $("#spanDelvCpnDcAmt").text(result.spanDelvCpnDcAmt.addComma()); //배송비쿠폰
  1092. $("#spanTmtbDcAmt").text(result.spanTmtbDcAmt.addComma()); //취소 다다익선 금액
  1093. $("#spanTmtb1DcAmt").text(result.spanTmtb1DcAmt.addComma()); //수량할인
  1094. $("#spanTmtb2DcAmt").text(result.spanTmtb2DcAmt.addComma()); //금액할인
  1095. $("#spanGfcdUseAmt").text(result.spanGfcdUseAmt.addComma()); //취소 고객 상품권 금액
  1096. $("#spanRealCnclRtnAmt").text(result.spanRealCnclRtnAmt.addComma()); //취소 상품 실결제 금액
  1097. //$("#spanTotDeliveryFee").text(result.spanTotDeliveryFee.addComma()); //취소 환불 배송 금액
  1098. //$("#spanRealDelvAmt").text(result.spanTotDeliveryFee.addComma()); //취소 환불 배송 금액
  1099. //$("#spanTotRtnDelvFee").text(result.spanTotRtnDelvFee.addComma()); //반품 환불 배송 금액
  1100. //$("#spanTotExcDelvFee").text(result.spanTotExcDelvFee.addComma()); //교환 환불 배송 금액
  1101. if (result.spanRealCnclRtnAmt > 0) {
  1102. let wdGb = $('#wdGb:checked').val();
  1103. // 고객사유(회수요청) : 환불금액게산 = (취소금액 + 배송비) - 추가배송비 - 반품배송비
  1104. if (isCustomer && wdGb == 'W') {
  1105. result.spanRefundAmt = result.spanRealCnclRtnAmt - result.spanTotRtnDelvFee;
  1106. // 2021.07.01
  1107. // @ 마이너스금액이면 허들깨지면서 배송비 발생
  1108. // @ 플러스금액이면 마지막취소시 배송금액 환불
  1109. var spanRealDelvAmt = result.spanTotRtnDelvFee;
  1110. if (spanRealDelvAmt > 0) {
  1111. spanRealDelvAmt * -1;
  1112. }
  1113. // 20212.07.07 환불배송비 -로 표시 (반품비용)
  1114. result.spanTotRtnDelvFee = result.spanTotRtnDelvFee * -1;
  1115. $("#spanRealDelvAmt").text(result.spanTotRtnDelvFee.addComma()); //환불배송비금액
  1116. }
  1117. // 고객사유(직접발송) : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
  1118. else if (isCustomer && wdGb == 'D') {
  1119. result.spanRefundAmt = result.spanRealCnclRtnAmt;
  1120. $("#spanRealDelvAmt").text(0); //환불배송비금액
  1121. }
  1122. // 회사사유 : 환불금액게산 = (취소금액 + 배송비)
  1123. else {
  1124. result.spanRefundAmt = result.spanRealCnclRtnAmt;
  1125. $("#spanRealDelvAmt").text(0); //취소 환불 배송 금액
  1126. }
  1127. }
  1128. $("#spanRefundAmt").text(result.spanRefundAmt.addComma()); //환불 금액 합계
  1129. */
  1130. }
  1131. );
  1132. }
  1133. // 귀책사유설정
  1134. var fnChangeChgReason = function(reasonCd){
  1135. var customerReasonArr = ['G688_10'];
  1136. isCustomer = false;
  1137. // 귀책사유체크(취소,반품,교환)
  1138. for (i=0 ; i<customerReasonArr.length ; i++) {
  1139. if (customerReasonArr[i] == reasonCd) {
  1140. isCustomer = true;
  1141. }
  1142. }
  1143. // 귀책사유설정
  1144. if (isCustomer) {
  1145. $("#imputeReason").text("고객");
  1146. } else {
  1147. $("#imputeReason").text("회사");
  1148. }
  1149. $('#cancelRequestFrm input[name=chgReason]').val(reasonCd);
  1150. // 환불예상금액계산
  1151. fnCalculateRefundAmt();
  1152. }
  1153. // 반품요청
  1154. var fnCnclReq = function (reqGbn) {
  1155. var temp = false;
  1156. var custNo = cancelRequestTargetList[0].custNo;
  1157. var ordDtlStat = cancelRequestTargetList[0].ordDtlStat;
  1158. var allCanYn = "N";
  1159. var accountNo = "";
  1160. var accountNm = "";
  1161. var bankCd = "";
  1162. var chgerNm = "";
  1163. var chgerZipcode = "";
  1164. var chgerBaseAddr = "";
  1165. var chgerDtlAddr = "";
  1166. var chgerPhnno1 = "";
  1167. var chgerPhnno2 = "";
  1168. var chgerPhnno3 = "";
  1169. var chgerTelno1 = "";
  1170. var chgerTelno2 = "";
  1171. var chgerTelno3 = "";
  1172. var chgerPhnno = "";
  1173. var chgerTelno = "";
  1174. var chgerEmail = "";
  1175. var chgerRtnMemo = "";
  1176. // 반품신청
  1177. if (reqGbn == "rtnReq") {
  1178. // 2021.05.25 수정
  1179. var ordDtlNoArr = [];
  1180. var cnclRtnReqQtyArr = [];
  1181. // 1. 반품신청수량 체크
  1182. for (i=0 ; i<cancelRequestTargetList.length ; i++) {
  1183. if (cancelRequestTargetList[i].ordCanChgQty > 0) {
  1184. // 반품신청값설정
  1185. ordDtlNoArr.push(cancelRequestTargetList[i].ordDtlNo);
  1186. cnclRtnReqQtyArr.push(cancelRequestTargetList[i].ordCanChgQty);
  1187. temp = true;
  1188. }
  1189. }
  1190. if (temp == false) {
  1191. mcxDialog.alert('반품신청수량을 선택하세요.');
  1192. return false;
  1193. }
  1194. // 2. 반품사유 체크
  1195. var chgReason = $("#cancelRequestFrm select[name=selectChgReason]").val();
  1196. if (gagajf.isNull(chgReason)) {
  1197. mcxDialog.alert("반품사유를 선택하세요.");
  1198. return false;
  1199. }
  1200. // 3. 환불계좌체크 (결제타입이 무통장 입금일때 사용)
  1201. if (payMeans == 'G014_20') {
  1202. if ($("#refundAccount .bankNm").eq(0).text() == null || $("#refundAccount .bankNm").eq(0).text() == '') {
  1203. mcxDialog.alert('환불계좌가 미등록 되어 있습니다.');
  1204. return false;
  1205. }
  1206. accountNo = $("#refundAccount .accountNo").eq(0).text();
  1207. accountNm = $("#refundAccount .accoutNm").eq(0).text();
  1208. bankCd = $("#refundAccount .bankCd").eq(0).text();
  1209. }
  1210. // 4. 회수지정보설정 (회수요청일때실행)
  1211. if ($('#wdGb:checked').val() == "W") {
  1212. chgerNm = $("#cancelRequestFrm input[name=chgerNm]").val();
  1213. chgerZipcode = $("#cancelRequestFrm input[name=chgerZipcode]").val();
  1214. chgerBaseAddr = $("#cancelRequestFrm input[name=chgerBaseAddr]").val();
  1215. chgerDtlAddr = $("#cancelRequestFrm input[name=chgerDtlAddr]").val();
  1216. chgerPhnno1 = $("#cancelRequestFrm select[name=chgerPhnno1]").val();
  1217. chgerPhnno2 = $("#cancelRequestFrm input[name=chgerPhnno2]").val();
  1218. chgerPhnno3 = $("#cancelRequestFrm input[name=chgerPhnno3]").val();
  1219. chgerTelno1 = $("#cancelRequestFrm select[name=chgerTelno1]").val();
  1220. chgerTelno2 = $("#cancelRequestFrm input[name=chgerTelno2]").val();
  1221. chgerTelno3 = $("#cancelRequestFrm input[name=chgerTelno3]").val();
  1222. if (gagajf.isNull(chgerZipcode)) {
  1223. mcxDialog.alert("회수지주소를 입력하세요."); return;
  1224. }
  1225. if (gagajf.isNull(chgerBaseAddr)) {
  1226. mcxDialog.alert("회수지주소를 입력하세요."); return;
  1227. }
  1228. if (gagajf.isNull(chgerDtlAddr)) {
  1229. mcxDialog.alert("회수지주소를 입력하세요."); return;
  1230. }
  1231. if (gagajf.isNull(chgerPhnno1)) {
  1232. mcxDialog.alert("휴대전화를 입력하세요."); return;
  1233. }
  1234. if (gagajf.isNull(chgerPhnno2)) {
  1235. mcxDialog.alert("휴대전화를 입력하세요."); return;
  1236. }
  1237. if (gagajf.isNull(chgerPhnno3)) {
  1238. mcxDialog.alert("휴대전화를 입력하세요."); return;
  1239. }
  1240. chgerPhnno = chgerPhnno1 + '-' + chgerPhnno2 + '-' + chgerPhnno3;
  1241. chgerEmail = orderInfoList[0].ordEmail;
  1242. chgerRtnMemo = $("#cancelRequestFrm textarea[name=chgerRtnMemo]").val();
  1243. if (gagajf.isNull(chgerTelno1) && gagajf.isNull(chgerTelno2) && gagajf.isNull(chgerTelno3)) {
  1244. chgerTelno = '';
  1245. } else {
  1246. chgerTelno = chgerTelno1 + '-' + chgerTelno2 + '-' + chgerTelno3;
  1247. }
  1248. }
  1249. }
  1250. // 2021.01.26 화면통합
  1251. // 5. 반품신청, 반품철회
  1252. // 반품신청
  1253. if (reqGbn == "rtnReq" && ordChgGb != 'G681_30') {
  1254. confirmStr = "반품신청하시겠습니까?";
  1255. cnclUrl = '/orderChange/rtnReq/';
  1256. }
  1257. // 반품신청철회
  1258. else if (reqGbn == "rtnReqCancel") {
  1259. confirmStr = "요청번호 [" + ordChgSq + "] 에 대한 요청철회 처리를 하시겠습니까?";
  1260. cnclUrl = '/orderChange/rtnReqCancel/';
  1261. }
  1262. // 반품TO반품 신청
  1263. else if (ordChgGb == 'G681_30') {
  1264. confirmStr = "반품변경하시겠습니까?";
  1265. cnclUrl = '/orderChange/return/to/return/';
  1266. }
  1267. // 7. 추가정보설정
  1268. var ordNm = orderInfoList[0].ordNm;
  1269. var ordPhnno = orderInfoList[0].ordPhnno;
  1270. var custNo = orderInfoList[0].custNo;
  1271. var delvFeeCd = orderInfoList[0].delvFeeCd;
  1272. var delvFeeCdGrp = $('#cancelRequestFrm input[name=delvFeeCdGrp]').val();
  1273. var jsonObj = {
  1274. "ordNo" : $('#cancelRequestFrm input[name=ordNo]').val()
  1275. ,"chgReason" : $('#cancelRequestFrm input[name=chgReason]').val()
  1276. ,"chgMemo" : $('#chgMemo').val()
  1277. ,"ordDtlNoArr" : ordDtlNoArr
  1278. ,"cnclRtnReqQtyArr" : cnclRtnReqQtyArr
  1279. ,"accountNo" : accountNo
  1280. ,"accountNm" : accountNm
  1281. ,"bankCd" : bankCd
  1282. ,"allCanYn" : allCanYn
  1283. ,"allCanYnBeforePayment" : "N"
  1284. ,"isCustomer" : isCustomer
  1285. ,"chgerNm" : chgerNm
  1286. ,"chgerEmail" : chgerEmail
  1287. ,"chgerZipcode" : chgerZipcode
  1288. ,"chgerBaseAddr" : chgerBaseAddr
  1289. ,"chgerDtlAddr" : chgerDtlAddr
  1290. ,"chgerPhnno" : chgerPhnno
  1291. ,"chgerTelno" : chgerTelno
  1292. ,"chgerRtnMemo" : chgerRtnMemo
  1293. ,"ordChgSq" : ordChgSq
  1294. ,"wdGb" : $('#wdGb:checked').val()
  1295. ,"delvFeeCdGrp" : delvFeeCdGrp
  1296. ,"custNo" : custNo
  1297. ,"ordNm" : ordNm
  1298. ,"ordPhnno" : ordPhnno
  1299. }
  1300. // 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌
  1301. var jsonData = JSON.stringify(jsonObj);
  1302. mcxDialog.confirm(confirmStr, {
  1303. cancelBtnText : "취소",
  1304. sureBtnText : "확인",
  1305. sureBtnClick : function(){
  1306. // 취소 실행
  1307. gagajf.ajaxJsonSubmit(
  1308. cnclUrl
  1309. , jsonData
  1310. , function() {
  1311. uifnPopupClose('popupOrderDetail');
  1312. fnReOpenOrderDetailPopup();
  1313. uifnPopupClose('popupReturnRequestForm');
  1314. }
  1315. );
  1316. }
  1317. });
  1318. }
  1319. // 환불계좌 등록
  1320. var fnCreateOrderRfAccount = function () {
  1321. var actionUrl = "/orderChange/refund/account/create/form?ordNo=" + ordNo ;
  1322. cfnOpenModalPopup(actionUrl, 'popupCreateRefundAccount');
  1323. };
  1324. //환불계좌 정보
  1325. var fnBindOrderRfAccountInfo = function () {
  1326. var jsonObj = {
  1327. "ordNo" : ordNo
  1328. }
  1329. var jsonData = JSON.stringify(jsonObj);
  1330. gagajf.ajaxJsonSubmit(
  1331. '/orderChange/refund/account/info/list'
  1332. , jsonData
  1333. , function (result) {
  1334. if (result.orderRfAccountInfo[0].bankNm != null && result.orderRfAccountInfo[0].bankNm != '') {
  1335. $("#refundAccount .bankNm").text(result.orderRfAccountInfo[0].bankNm);
  1336. $("#refundAccount .bankCd").text(result.orderRfAccountInfo[0].bankCd);
  1337. $("#refundAccount .accountNo").text(result.orderRfAccountInfo[0].accountNo);
  1338. $("#refundAccount .accountNm").text(result.orderRfAccountInfo[0].accountNm);
  1339. $("#refundAccount .defaultYn").text(result.orderRfAccountInfo[0].defaultYn);
  1340. }
  1341. }
  1342. );
  1343. };
  1344. // 우편번호 DAUM을 이용한 우편번호 팝업 레이어
  1345. var fnOpenDaumAddr = function() {
  1346. let daumZip = new daum.Postcode({
  1347. oncomplete: function(data) {
  1348. // 우편번호와 주소 정보를 해당 필드에 넣는다.
  1349. $('#cancelRequestFrm input[name=chgerZipcode]').val(data.zonecode);
  1350. $('#cancelRequestFrm input[name=chgerBaseAddr]').val(cfnGetDaumRoadAddr(data));
  1351. $('#cancelRequestFrm input[name=chgerDtlAddr]').focus();
  1352. cfnCloseDaumAddr();
  1353. },
  1354. width: '100%'
  1355. });
  1356. cfnOpenDaumAddr(daumZip);
  1357. }
  1358. // 회수지정보 설정
  1359. var fnSetChger = function(){
  1360. var data = orderDelvRtnAddrInfo[0];
  1361. var spRecipPhnno = (data.recipPhnno != null) ? data.recipPhnno.split('-') : null;
  1362. var spRecipTelno = (data.recipTelno != null) ? data.recipTelno.split('-') : null;
  1363. // 반품상세화면일때적용
  1364. if (ordChgSq > 0) {
  1365. data = orderChangeDetailList[0];
  1366. spRecipPhnno = (data.chgerPhnno != null) ? data.chgerPhnno.split('-') : null;
  1367. spRecipTelno = (data.chgerTelno != null) ? data.chgerTelno.split('-') : null;
  1368. // 회수지정보 히든 처리
  1369. if (wdGb == 'D') {
  1370. $('#chgerAddress').css('display', 'none');
  1371. } else {
  1372. $("#cancelRequestFrm input[name=chgerNm]").val(data.chgerNm);
  1373. $("#cancelRequestFrm input[name=chgerZipcode]").val(data.chgerZipcode);
  1374. $("#cancelRequestFrm input[name=chgerBaseAddr]").val(data.chgerBaseAddr);
  1375. $("#cancelRequestFrm input[name=chgerDtlAddr]").val(data.chgerDtlAddr);
  1376. $("#cancelRequestFrm textarea[name=chgerRtnMemo]").val(data.chgerRtnMemo);
  1377. }
  1378. } else {
  1379. $("#cancelRequestFrm input[name=chgerNm]").val(data.recipNm);
  1380. $("#cancelRequestFrm input[name=chgerZipcode]").val(data.recipZipcode);
  1381. $("#cancelRequestFrm input[name=chgerBaseAddr]").val(data.recipBaseAddr);
  1382. $("#cancelRequestFrm input[name=chgerDtlAddr]").val(data.recipDtlAddr);
  1383. $("#cancelRequestFrm textarea[name=chgerRtnMemo]").val(data.chgerRtnMemo);
  1384. }
  1385. if (spRecipPhnno) {
  1386. $("#cancelRequestFrm select[name=chgerPhnno1]").val(spRecipPhnno[0]);
  1387. $("#cancelRequestFrm input[name=chgerPhnno2]").val(spRecipPhnno[1]);
  1388. $("#cancelRequestFrm input[name=chgerPhnno3]").val(spRecipPhnno[2]);
  1389. }
  1390. if (spRecipTelno) {
  1391. $("#cancelRequestFrm select[name=chgerTelno1]").val(spRecipTelno[0]);
  1392. $("#cancelRequestFrm input[name=chgerTelno2]").val(spRecipTelno[1]);
  1393. $("#cancelRequestFrm input[name=chgerTelno3]").val(spRecipTelno[2]);
  1394. }
  1395. if (ordChgSq > 0 && chgStat != 'G685_50' && chgStat != 'G685_51') {
  1396. $('input[name=chgerNm]').attr('readOnly', true); // 회수지정보 > 보내는사람 비활성화
  1397. $('input[name=chgerBaseAddr]').attr('readOnly', true); // 회수지정보 > 기본주소 비활성화
  1398. $('input[name=chgerDtlAddr]').attr('readOnly', true); // 회수지정보 > 상세주소 비활성화
  1399. $('select[name=chgerTelno1]').attr('disabled', true); // 회수지정보 > 일반전화 비활성화
  1400. $('input[name=chgerTelno2]').attr('readOnly', true); // 회수지정보 > 일반전화 비활성화
  1401. $('input[name=chgerTelno3]').attr('readOnly', true); // 회수지정보 > 일반전화 비활성화
  1402. $('select[name=chgerPhnno1]').attr('disabled', true); // 회수지정보 > 휴대전화 비활성화
  1403. $('input[name=chgerPhnno2]').attr('readOnly', true); // 회수지정보 > 휴대전화 비활성화
  1404. $('input[name=chgerPhnno3]').attr('readOnly', true); // 회수지정보 > 휴대전화 비활성화
  1405. $('#chgerRtnMemo').attr('readOnly', true); // 회수지정보 > 반품메모 비활성화
  1406. }
  1407. }
  1408. // 회수방법설정이벤트
  1409. var fnChangeWdGb = function(param) {
  1410. let wdGb = $(param).val();
  1411. // 회수지정보 히든 처리
  1412. if (wdGb == 'D') {
  1413. $('#chgerAddress').css('display', 'none');
  1414. $('#delvCdList').css('display', '');
  1415. } else {
  1416. $('#chgerAddress').css('display', '');
  1417. $('#delvCdList').css('display', 'none');
  1418. }
  1419. // 환불예정금액 계산
  1420. fnCalculateRefundAmt();
  1421. }
  1422. // 반품TO교환 버튼 클릭 이벤트
  1423. var fnRtnToExc = function() {
  1424. let ordNo = $('#cancelRequestFrm input[name=ordNo]').val();
  1425. let ordChgSq = $('#cancelRequestFrm input[name=ordChgSq]').val();
  1426. let delvFeeCd = $('#cancelRequestFrm input[name=delvFeeCd]').val();
  1427. let delvFeeCdGrp = $('#cancelRequestFrm input[name=delvFeeCdGrp]').val();
  1428. // 취소요청 구분 (orChgSq null 이면 취소요청화면 있으면 취소요청정보화면)
  1429. if (ordChgSq == null) {
  1430. ordChgSq = 0;
  1431. }
  1432. var param = "";
  1433. param += "&ordNo=" + ordNo;
  1434. param += "&delvFeeCd=" + delvFeeCd;
  1435. param += "&delvFeeCdGrp=" + delvFeeCdGrp;
  1436. param += "&ordChgSq=" + ordChgSq;
  1437. param += "&ordChgGb=G681_40";
  1438. // 반품상세 팝업 닫기
  1439. uifnPopupClose('popupReturnRequestForm');
  1440. var actionUrl = "/orderChange/exchange/request/form?" + param;
  1441. cfnOpenModalPopup(actionUrl, 'popupExchangeRequestForm');
  1442. }
  1443. // 회수지 정보 수정
  1444. var fnChangeChgerInfo = function() {
  1445. let url = '/orderChange/change/chger/addr';
  1446. let chgerNm = $("#cancelRequestFrm input[name=chgerNm]").val();
  1447. let chgerZipcode = $("#cancelRequestFrm input[name=chgerZipcode]").val();
  1448. let chgerBaseAddr = $("#cancelRequestFrm input[name=chgerBaseAddr]").val();
  1449. let chgerDtlAddr = $("#cancelRequestFrm input[name=chgerDtlAddr]").val();
  1450. let chgerPhnno1 = $("#cancelRequestFrm select[name=chgerPhnno1]").val();
  1451. let chgerPhnno2 = $("#cancelRequestFrm input[name=chgerPhnno2]").val();
  1452. let chgerPhnno3 = $("#cancelRequestFrm input[name=chgerPhnno3]").val();
  1453. let chgerTelno1 = $("#cancelRequestFrm select[name=chgerTelno1]").val();
  1454. let chgerTelno2 = $("#cancelRequestFrm input[name=chgerTelno2]").val();
  1455. let chgerTelno3 = $("#cancelRequestFrm input[name=chgerTelno3]").val();
  1456. if (gagajf.isNull(chgerZipcode)) {
  1457. mcxDialog.alert("회수지주소를 입력하세요."); return;
  1458. }
  1459. if (gagajf.isNull(chgerBaseAddr)) {
  1460. mcxDialog.alert("회수지주소를 입력하세요."); return;
  1461. }
  1462. if (gagajf.isNull(chgerDtlAddr)) {
  1463. mcxDialog.alert("회수지주소를 입력하세요."); return;
  1464. }
  1465. if (gagajf.isNull(chgerPhnno1)) {
  1466. mcxDialog.alert("휴대전화를 입력하세요."); return;
  1467. }
  1468. if (gagajf.isNull(chgerPhnno2)) {
  1469. mcxDialog.alert("휴대전화를 입력하세요."); return;
  1470. }
  1471. if (gagajf.isNull(chgerPhnno3)) {
  1472. mcxDialog.alert("휴대전화를 입력하세요."); return;
  1473. }
  1474. let chgerPhnno = chgerPhnno1 + '-' + chgerPhnno2 + '-' + chgerPhnno3;
  1475. let chgerRtnMemo = $("#cancelRequestFrm textarea[name=chgerRtnMemo]").val();
  1476. let chgerTelno = '';
  1477. if (!gagajf.isNull(chgerTelno1) && !gagajf.isNull(chgerTelno2) && !gagajf.isNull(chgerTelno3)) {
  1478. chgerTelno = chgerTelno1 + '-' + chgerTelno2 + '-' + chgerTelno3;
  1479. }
  1480. let data = {};
  1481. data.ordChgSq = ordChgSq;
  1482. data.chgerNm = chgerNm;
  1483. data.chgerPhnno = chgerPhnno;
  1484. data.chgerZipcode = chgerZipcode;
  1485. data.chgerBaseAddr = chgerBaseAddr;
  1486. data.chgerDtlAddr = chgerDtlAddr;
  1487. data.chgerRtnMemo = chgerRtnMemo;
  1488. let jsonData = JSON.stringify(data);
  1489. gagajf.ajaxJsonSubmit(url, jsonData, function(result){
  1490. });
  1491. }
  1492. $(document).ready(function() {
  1493. // 1. 그리드생성
  1494. gagaAgGrid.createGrid('gridOrderCancelRequestList' , gridOptionsCancelReqList); // 주문정보
  1495. gagaAgGrid.createGrid('gridOrderCancelRequestToBeList' , gridOptionsCancelReqToBeList); // 취소정보
  1496. gagaAgGrid.createGrid('gridDelvInfoList' , gridOptionsDelvInfoList); // 배송비정보
  1497. gagaAgGrid.createGrid('gridDelvCdList' , gridOptionsDelvCdList); // 배송정보
  1498. gridOptionsCancelReqList.api.setRowData(cancelRequestTargetList);
  1499. gridOptionsDelvCdList.api.setRowData(rtnLocInfo);
  1500. // 1.1 TOTAL ROWS 없애기
  1501. gagaAgGrid.hideStatusBar('gridOrderCancelRequestList');
  1502. gagaAgGrid.hideStatusBar('gridOrderCancelRequestToBeList');
  1503. gagaAgGrid.hideStatusBar('gridDelvCdList');
  1504. // 2. 회수구분처리
  1505. if (wdGb == 'D') {
  1506. $('input:radio[name="wdGb"]:radio[value="D"]').prop('checked', true);
  1507. } else {
  1508. $('input:radio[name="wdGb"]:radio[value="W"]').prop('checked', true);
  1509. $('#delvCdList').css('display', 'none');
  1510. }
  1511. // 3. 무통장입금아닐때 환불계좌 목록 숨김처리
  1512. if (payMeans !== 'G014_20') {
  1513. $('#refundAccount').addClass("off");
  1514. } else {
  1515. fnBindOrderRfAccountInfo();
  1516. }
  1517. // 4. 회수지정보설정
  1518. fnSetChger();
  1519. // 5. 반품신청, 반품철회 버튼 제어
  1520. if (ordChgSq > 0) {
  1521. $("#rtnReqBtn").css("display", "none");
  1522. // 2021.05.25 반품접수, 반품대기 상태에서만 철회가능
  1523. // 2021.07.13 회수예외정보가 있고 회수요청, 상품검수중 상태에서 철회 가능 처리
  1524. // 2021.07.22 택배사 회수 불가 시 회수요청상태에서 반품철회 처리
  1525. //if (chgStat != "G685_50" && chgStat != "G685_51" && (recallExceptionInfo == null || (chgStat != "G685_30" && chgStat != 'G685_31'))) {
  1526. if (chgStat != "G685_50" && chgStat != "G685_51") {
  1527. $("#rtnReqCancelBtn").css("display", "none");
  1528. }
  1529. // 회수요청 상태에서 택배사 회수 불가 or 회수예외정보 존재 시 반품철회 가능
  1530. if (chgStat == 'G685_30' && (recallExceptionInfo != null || canRequestCancelYn == 'Y')) {
  1531. $("#rtnReqCancelBtn").css("display", "");
  1532. }
  1533. // 상품검수중 상태에서 회수예외정보 존재 시 반품철회 가능
  1534. if (chgStat == 'G685_31' && recallExceptionInfo != null) {
  1535. $("#rtnReqCancelBtn").css("display", "");
  1536. }
  1537. // 반품TO교환 버튼
  1538. if ((chgStat != "G685_50" && chgStat != "G685_51" && chgStat != "G685_30") || pgGb == 'NAVER_ORDER') {
  1539. $("#rtnToExcBtn").css("display", "none");
  1540. }
  1541. // 반품TO반품 버튼
  1542. if (ordChgGb != 'G681_30') {
  1543. $("#rtnToRtnBtn").css("display", "none");
  1544. } else {
  1545. $("#rtnReqCancelBtn").css("display", "none");
  1546. $("#rtnToExcBtn").css("display", "none");
  1547. }
  1548. // 직접발송일때 회수지정보 숨김처리
  1549. if (wdGb == "D") {
  1550. $("#chgerAddress").css("display", "none");
  1551. } else {
  1552. $('#delvCdList').css('display', 'none');
  1553. }
  1554. } else {
  1555. $("#rtnReqCompleteBtn").css("display", "none");
  1556. $("#rtnReqCancelBtn").css("display", "none");
  1557. $("#rtnToExcBtn").css("display", "none");
  1558. $("#rtnToRtnBtn").css("display", "none");
  1559. }
  1560. // 6. 취소사유 선택
  1561. if (ordChgSq > 0) {
  1562. $("select[name='selectChgReason']").val(chgReason); // 변경사유코드
  1563. $("select[name='selectChgReason']").attr('disabled', true); // 변경사유 비활성화
  1564. $("#chgMemo").text(chgMemo); // 변경사유메모
  1565. $("#chgMemo").attr('readOnly', true); // 변경사유메모 비활성화
  1566. $('input:radio[name=wdGb]').attr('disabled', true); // 회수방법 비활성화
  1567. fnChangeChgReason(chgReason); // 귀책사유
  1568. }
  1569. // debug mode 해제
  1570. if (temp3) {
  1571. $("#h4OrderCancelRequestToBeList").css("display" , "none");
  1572. $("#gridOrderCancelRequestToBeList").css("display" , "none");
  1573. $("#h4DelvInfoList").css("display" , "none");
  1574. $("#gridDelvInfoList").css("display" , "none");
  1575. }
  1576. // 7. 환불예상금액계산
  1577. fnCalculateRefundAmt(null);
  1578. // 2021.05.13 높이자동조절
  1579. var cancelRequestTargetHeight = 50 + (40 * cancelRequestTargetCnt);
  1580. $("#gridOrderCancelRequestList").css("height" , cancelRequestTargetHeight+"px");
  1581. // 글자수 제한 byte 표기
  1582. cfnGetTextLength($('#chgMemo'), 1000, $('#chgMemoCount'));
  1583. cfnGetTextLength($('#chgerRtnMemo'), 1000, $('#chgerRtnMemoCount'));
  1584. // WMS 미접수, 확정후품절 처리
  1585. if (ordChgGb == 'G681_50' || ordChgGb == 'G681_60') {
  1586. $('input:radio[name="wdGb"]:radio[value="D"]').prop('checked', true);
  1587. $('#chgerAddress').css('display', 'none');
  1588. $('input:radio[name=wdGb]').attr('disabled', true);
  1589. $('#delvCdList').css('display', 'none');
  1590. // 확정후품절 반품사유 품절로 처리
  1591. if (ordChgGb == 'G681_60') {
  1592. $("select[name='selectChgReason']").val('G688_17'); // 변경사유코드
  1593. $("select[name='selectChgReason']").attr('disabled', true); // 변경사유 비활성화
  1594. fnChangeChgReason('G688_17'); // 귀책사유
  1595. }
  1596. }
  1597. });
  1598. </script>
  1599. </html>