ScmRtnReqForm.html 63 KB

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