RefundDetailForm.html 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774
  1. <!DOCTYPE html>
  2. <html lang="ko"
  3. xmlns:th="http://www.thymeleaf.org">
  4. <!--
  5. *******************************************************************************
  6. * @source : RefundDetailForm.html
  7. * @desc : 환불상세팝업
  8. *============================================================================
  9. * STYLE24
  10. * Copyright(C) 2020 TSIT, All rights reserved.
  11. *============================================================================
  12. * VER DATE AUTHOR DESCRIPTION
  13. * === =========== ========== =============================================
  14. * 1.0 2020.11.16 moon 최초 작성
  15. *******************************************************************************
  16. -->
  17. <div class="modalPopup" data-width="1200" data-height="800">
  18. <div class="panelStyle">
  19. <!-- TITLE -->
  20. <div class="panelTitle">
  21. <h2>환불컨펌 상세</h2>
  22. <button type="button" class="close" onclick="uifnPopupClose('popupWithdrawDetail')"><i class="fa fa-times"></i></button>
  23. </div>
  24. <!-- //TITLE -->
  25. <div class="panelContent" style="height:90%; overflow-y:auto; padding:0px 20px !important; ">
  26. <form id="withdrawDetailForm" name="withdrawDetailForm" action="#" th:method="post" onSubmit="return false">
  27. <input type="hidden" name="orgChgReason" readonly/>
  28. <input type="hidden" name="orgEncloseFee" readonly/>
  29. <table class="frmStyle">
  30. <colgroup>
  31. <col style="width:20%;" />
  32. <col style="width:30%;" />
  33. <col style="width:20%;" />
  34. <col style="width:30%;" />
  35. <col />
  36. </colgroup>
  37. <tr>
  38. <th>회수구분</th>
  39. <td>
  40. <span id="wdGbNm"></span>
  41. </td>
  42. <th>도착일자</th>
  43. <td>
  44. <span id="arriValDt"></span>
  45. </td>
  46. </tr>
  47. <tr>
  48. <th>최종요청사유</th>
  49. <td>
  50. <span id="chgReasonNm"></span>
  51. </td>
  52. <th>귀책사유<i class="star"></i></th>
  53. <td>
  54. <span id="chgReasonText"></span>
  55. </td>
  56. </tr>
  57. <tr>
  58. <th>동봉비</th>
  59. <td>
  60. <input type="text" name="encloseFee" data-valid-type="integer" onchange="fnChangeAmt()" class="w100 aR"/>원
  61. </td>
  62. <th>착불비</th>
  63. <td>
  64. <input type="text" name="codFee" data-valid-type="integer" onChange="fnChangeAmt()" class="w100 aR"/>원
  65. </td>
  66. </tr>
  67. <tr>
  68. <th>추가결제비</th>
  69. <td colspan="3">
  70. <input type="text" name="addPayCost" data-valid-type="integer" readonly="readonly" onChange="fnChangeAmt()" class="w100 aR"/>원
  71. </td>
  72. </tr>
  73. <tr>
  74. <th>클레임메모</th>
  75. <td colspan="3">
  76. <span id="chgMemo"></span>
  77. </td>
  78. </tr>
  79. <tr>
  80. <th>회수메모</th>
  81. <td colspan="3">
  82. <span id="wdMemo"></span>
  83. </td>
  84. </tr>
  85. </table>
  86. <div id="divRefundInfo2">
  87. <h4>환불금액</h4>
  88. <table class="frmStyle">
  89. <colgroup>
  90. <col style="width:20%;"/>
  91. <col style="width:30%;"/>
  92. <col style="width:20%;"/>
  93. <col style="width:30%;"/>
  94. </colgroup>
  95. <tbody>
  96. <tr>
  97. <th>환불 금액</th>
  98. <td colspan="3"><span id="refundAmt"></span>원 </td>
  99. </tr>
  100. </tbody>
  101. </table>
  102. </div>
  103. <div id="divRefundInfo">
  104. <h4>환불예정금액</h4>
  105. <table class="frmStyle">
  106. <colgroup>
  107. <col width="">
  108. <col width="">
  109. <col width="">
  110. <col width="">
  111. </colgroup>
  112. <thead>
  113. <tr>
  114. <th style="height:30px;">구분</th>
  115. <th style="height:30px;">항목</th>
  116. <th style="height:30px;">합계</th>
  117. <th style="height:30px;">내역</th>
  118. </tr>
  119. </thead>
  120. <tbody>
  121. <tr>
  122. <td style="height:25px;">상품금액</td>
  123. <td>취소상품금액</td>
  124. <td class="spanCnclRtnAmt">15,000원</td>
  125. <td></td>
  126. </tr>
  127. <tr>
  128. <td rowspan="2">할인금액차감</td>
  129. <td>쿠폰할인차감</td>
  130. <td class="spanCpnDcAmt">15,000원</td>
  131. <td style="line-height:25px;">
  132. <div style="height:25px;"><span>즉시할인쿠폰 : </span><span class="spanCpn1DcAmt">-60,000원</span></div>
  133. <div style="height:25px;"><span>주문서상품쿠폰 : </span><span class="spanGoodsCpnDcAmt">-60,000원</span></div>
  134. <div style="height:25px;"><span>장바구니쿠폰 : </span><span class="spanCartCpnDcAmt">-60,000원</span></div>
  135. </td>
  136. </tr>
  137. <tr>
  138. <td>상품할인차감</td>
  139. <td class="goodsDcSumAmt">15,000원</td>
  140. <td style="line-height:25px;">
  141. <div style="height:25px;"><span>선포인트할인 : </span><span class="spanPrePntDcAmt">-60,000원</span></div>
  142. <div style="height:25px;"><span>다다익선할인 : </span><span class="spanTmtbDcAmt">-60,000원</span></div>
  143. </td>
  144. </tr>
  145. <tr>
  146. <td>배송비</td>
  147. <td>환불배송비</td>
  148. <td class="spanRealDelvAmt">-60,000원</td>
  149. <td style="line-height:25px;">
  150. <div style="height:25px;"><span>배송비쿠폰 : </span><span class="delvCpnAmt">-60,000원</span></div>
  151. <div style="height:25px;"><span>추가금결제 : </span><span class="addDelvFee">-60,000원</span></div>
  152. </td>
  153. </tr>
  154. <tr>
  155. <td rowspan="4">환불금액</td>
  156. <td style="height:25px;">총환불금액</td>
  157. <td class="totalRefundAmt">70,000원</td>
  158. <td></td>
  159. </tr>
  160. <tr>
  161. <td style="height:25px;">결제수단환불</td>
  162. <td class="spanRefundAmt">70,000원</td>
  163. <td>
  164. <span class="pgGbNm"></span><span class="cardNm"></span>
  165. </td>
  166. </tr>
  167. <tr>
  168. <td style="height:25px;">상품권환불</td>
  169. <td class="spanGfcdUseAmt">70,000P</td>
  170. <td></td>
  171. </tr>
  172. <tr>
  173. <td style="height:25px;">포인트환불</td>
  174. <td class="spanPntDcAmt">70,000원</td>
  175. <td>
  176. <span>적립예정포인트환수 : </span><span class="spanSavePntAmt">60,000P</span>
  177. </td>
  178. </tr>
  179. </tbody>
  180. </table>
  181. <!--
  182. <h4>환불예정금액</h4>
  183. <table class="frmStyle">
  184. <colgroup>
  185. <col style="width:20%;"/>
  186. <col style="width:30%;"/>
  187. <col style="width:20%;"/>
  188. <col style="width:30%;"/>
  189. </colgroup>
  190. <tbody>
  191. <tr>
  192. <th>총 결제 금액</th>
  193. <td colspan="3"><span id="spanPayAmt"></span>원 (상품 실결제 금액 : <span id="spanSumRealOrdAmt"></span>원, 배송금액 : <span id="spanSumDeliveryFee"></span>원, 배송비쿠폰할인금액: <span id="spanDelvCpnDcAmt"></span>원)</td>
  194. </tr>
  195. <tr>
  196. <th>주문 상품 금액</th>
  197. <td><span id="spanOrdAmt"></span>원</td>
  198. <th>취소 상품 금액</th>
  199. <td><span id="spanCnclRtnAmt"></span>원</td>
  200. </tr>
  201. <tr>
  202. <th>취소 사용 포인트</th>
  203. <td colspan="3"><span id="spanTotPntDcAmt"></span>원 (고객 포인트 : <span id="spanPntDcAmt"></span>원 + 상품 선포인트 : <span id="spanPrePntDcAmt"></span>원) </td>
  204. </tr>
  205. <tr>
  206. <th>취소 사용 쿠폰금액</th>
  207. <td colspan="3"><span id="spanCpnDcAmt"></span>원 (즉시할인쿠폰 : <span id="spanCpn1DcAmt"></span>원 + 상품쿠폰 : <span id="spanGoodsCpnDcAmt"></span>원 + 장바구니쿠폰 : <span id="spanCartCpnDcAmt"></span>원)</td>
  208. </tr>
  209. <tr>
  210. <th>취소 다다익선 금액</th>
  211. <td colspan="3"><span id="spanTmtbDcAmt"></span>원 (수량할인 : <span id="spanTmtb1DcAmt"></span>원 + 금액할인 : <span id="spanTmtb2DcAmt"></span>원)</td>
  212. </tr>
  213. <tr>
  214. <th>취소 고객 상품권 금액</th>
  215. <td><span id="spanGfcdUseAmt"></span>원</td>
  216. <th>추가 반품배송 금액</th>
  217. <td><span id="spanTotRtnDelvFee"></span>원</td>
  218. </tr>
  219. <tr>
  220. <th>취소 상품 실결제 금액</th>
  221. <td><span id="spanRealCnclRtnAmt"></span>원</td>
  222. <th>추가 배송 금액</th>
  223. <td><span id="spanTotDeliveryFee"></span>원</td>
  224. </tr>
  225. <tr>
  226. <th>환불 금액 합계</th>
  227. <td colspan="3"><span id="spanRefundAmt"></span>원</td>
  228. </tr>
  229. </tbody>
  230. </table>
  231. -->
  232. </div>
  233. <div>
  234. <h4 style="width:85%;">회수대상 상품 정보</h4>
  235. <span class="btnRight" id="pgBtn" >
  236. <label ><input type="checkbox" name="pgStats" value="N" th:if="${sessionInfo.roleCd == 'G001_0000'}">&nbsp;&nbsp;PG 전문 미전송</label>
  237. </span>
  238. <div id="refundGridList" style="width: 100%; height: 200px; padding-top:10PX;" class="ag-theme-balham"></div>
  239. </div>
  240. </form>
  241. </div>
  242. </div>
  243. </div>
  244. <script th:inline="javascript">
  245. /*<![CDATA[*/
  246. var ordChgSq = [[${ordChgSq}]]; // 주문변경번호
  247. var ordNo = [[${ordNo}]]; // 주문번호
  248. var userNo = [[${userNo}]];
  249. var ordChgCnt = 0; //회수신청건수
  250. var chgGb = "반품";
  251. var toTalOrdQty = 0; // 주문 총수량
  252. var ordInQty = 0; // 반품 입고총수량
  253. var ordChgQty = 0; // 반품 신청총수량
  254. var delvExpnYn = ""; // 출고예외(확정후 품절,불량)여부
  255. var wdGb = "";
  256. var mallGb = "";
  257. var reFundInfo = [[${refundConfirmPreInfo}]]; // 환불컨펌 정보
  258. var columnDefsDetail = [
  259. {headerName: "주문변경번호", field: "ordChgSq", width: 100, minWidth: 100, cellClass: 'text-center'},
  260. {headerName: "주문번호", field: "ordNo", width: 100, minWidth: 100, cellClass: 'text-center',
  261. cellRenderer: function(params) {
  262. return "<a href=\"javascript:void(0);\" onclick=\"cfnOpenOrderDetailPopup('" + params.value + "');\">" + params.value + "</a>";
  263. }
  264. },
  265. {headerName: "상품명", field: "goodsNm", width: 150, minWidth: 100},
  266. {headerName: "상품코드", field: "goodsCd", width: 120, minWidth: 100, cellClass: 'text-center',
  267. cellRenderer: function(params) {
  268. return "<a href=\"javascript:void(0);\" onclick=\"cfnOpenGoodsDetailPopup('U','" + params.value + "','');\">" + params.value + "</a>";
  269. }
  270. },
  271. {headerName: "옵션1", field: "optCd1", width: 60, minWidth: 100, cellClass: 'text-center'},
  272. {headerName: "옵션2", field: "optCd2", width: 60, minWidth: 100, cellClass: 'text-center'},
  273. {headerName: "신청수량", field: "chgQty", width: 80, minWidth: 100, cellClass: 'text-center'},
  274. {headerName: "회수수량", field: "wdQty", width: 80, minWidth: 100, cellClass: 'text-center'},
  275. {headerName: "회수처리상태", field: "wdStat", width: 120, minWidth: 100, cellClass: 'text-center'},
  276. {headerName: "회수처리", field: "chgStat", width: 120, minWidth: 100, cellClass: 'text-center'
  277. , cellRenderer : function(params) {
  278. if (params.data.wdStatYn == 'N') {
  279. if (params.data.wdQty > 0) {
  280. return "<a href=\"javascript:void(0);\" class=\"btn btn-base btn-sm\">환불컨펌</a>";
  281. } else {
  282. return "";
  283. }
  284. } else if (params.data.wdStatYn == 'Y') {
  285. return "환불완료";
  286. }
  287. }
  288. },
  289. {headerName: "주문상세번호", field: "ordDtlNo", width: 100, minWidth: 100, cellClass: 'text-center'},
  290. {headerName: "등록일", field: "regDt", width: 100, minWidth: 100, cellClass: 'text-center'}
  291. ];
  292. // Get withDrawDetailGridOptions
  293. var withdrawDetailGridOptions = gagaAgGrid.getGridOptions(columnDefsDetail);
  294. withdrawDetailGridOptions.rowSelection = 'multiple';
  295. var isCustomer = true;
  296. /*************************************************************************
  297. * 회수 상세내역 조회
  298. **************************************************************************/
  299. var initFlag = '';
  300. var fnRefundDetailSearch = function() {
  301. //initFlag = Init;
  302. var params = {};
  303. params.ordChgSq = ordChgSq;
  304. params.userNo = userNo;
  305. var jsonData = JSON.stringify(params);
  306. gagajf.ajaxJsonSubmit('/withdraw/detail/list', jsonData, fnWithdrawDetailCallback);
  307. }
  308. /*************************************************************************
  309. * 상세 정보 콜백 함수
  310. **************************************************************************/
  311. var fnWithdrawDetailCallback = function(result) {
  312. reFundInfo = result.refundConfirmPreInfo; // 환불 컨펌 환불 정보
  313. if (result.dataList.length < 1) {
  314. mcxDialog.alert('회수데이터 오류입니다. 운영팀에 문의 해주세요! ');
  315. return;
  316. }
  317. var confirmCnt = 0;
  318. $(result.dataList).each(function(idx) {
  319. if (result.dataList[idx].wdStatYn == 'Y') {
  320. confirmCnt++;
  321. }
  322. ordInQty = ordInQty + result.dataList[idx].wdQty;
  323. ordChgQty = ordChgQty + result.dataList[idx].chgQty;
  324. });
  325. // 전체 회수 완료 일 때. 제휴몰일때
  326. if (result.dataList.length == confirmCnt || result.dataList[0].mallGb == 'G011_20') {
  327. setReadOnly(true);
  328. $('#pgBtn').hide();
  329. $('#divRefundInfo').hide();
  330. $('#divRefundInfo2').show();
  331. }
  332. // 회수리스트 설정
  333. withdrawDetailGridOptions.api.setRowData(result.dataList);
  334. fnSetWithdrawInfo(result.dataList[0]); // 회수정보 설정
  335. }
  336. /*************************************************************************
  337. * 회수정보 설정
  338. **************************************************************************/
  339. var fnSetWithdrawInfo = function(data) {
  340. toTalOrdQty = data.totalOrdQty;
  341. delvExpnYn = data.delvExpnYn;
  342. wdGb = data.wdGb;
  343. mallGb = data.mallGb;
  344. reFundInfo.chgReasonNm = data.chgReasonNm; // 변경사유
  345. reFundInfo.chgReason = data.chgReason; // 변경사유코드
  346. reFundInfo.accountNm = data.accountNm; // 환불계좌이름
  347. reFundInfo.accountNo = data.accountNo; // 환불계좌번호
  348. reFundInfo.bankCd = data.bankCd; // 환불계좌은행코드
  349. reFundInfo.custNo = data.custNo; // 고객번호
  350. reFundInfo.ordNm = data.ordNm; // 주문자명
  351. reFundInfo.delvAddrSq = data.delvAddrSq; // 회수지번호
  352. reFundInfo.delvExpnYn = data.delvExpnYn; // 확정후 품절,불량 여부
  353. reFundInfo.wdInvoiceNo = data.wdInvoiceNo; // 회수송장번호
  354. reFundInfo.mallGb = mallGb; // 몰구분
  355. reFundInfo.ordNo = ordNo; // 주문번호
  356. reFundInfo.ordChgSq = ordChgSq; // 변경요청번호
  357. reFundInfo.wdGb = wdGb; // 회수구분
  358. // 환불컨펌 상세
  359. $("#wdGbNm").text(data.wdGbNm); // 회수구분
  360. $("#arriValDt").text(data.arrivalDt); // arriValDt 도착일
  361. $("#chgReasonNm").text(data.chgReasonNm); // 최종요청사유
  362. $("#chgReasonText").text(data.chgReasonText); // 귀책사유
  363. $("#withdrawDetailForm input[name=encloseFee]").val(data.encloseFee); // 동봉비
  364. $("#withdrawDetailForm input[name=codFee]").val(data.codFee); // 착불비
  365. $("#withdrawDetailForm input[name=addPayCost]").val(data.addPayCost); // 추가결제비
  366. $("#chgMemo").text(data.chgMemo); // 클레임메모
  367. $("#wdMemo").text(data.wdMemo); // 회수메모
  368. // 2021.07.01 배송비 수정(마지막취소에만 배송비 환불)
  369. let spanSumDeliveryFee = reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt;
  370. let sumDeliveryFee = reFundInfo.sumDeliveryFee - reFundInfo.spanRefundDelvCpnAmt;
  371. // 2021.08.04 취소금액수정
  372. var spanRealDelvAmt = 0;
  373. var addDelvFee = 0;
  374. if (reFundInfo.spanRealCnclRtnAmt > 0) {
  375. // 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
  376. if (isCustomer) {
  377. reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + sumDeliveryFee) - reFundInfo.spanTotDeliveryFee;
  378. // 2021.07.01
  379. // @ 마이너스금액이면 허들깨지면서 배송비 발생
  380. // @ 플러스금액이면 마지막취소시 배송금액 환불
  381. spanRealDelvAmt = sumDeliveryFee - reFundInfo.spanTotDeliveryFee;
  382. addDelvFee = reFundInfo.spanTotDeliveryFee;
  383. }
  384. // 회사사유 : 환불금액계산 = (취소금액 + 배송비)
  385. else {
  386. reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + sumDeliveryFee);
  387. }
  388. }
  389. $("#spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma()+"원"); //환불 금액 합계
  390. $(".spanCnclRtnAmt").text(reFundInfo.spanCnclRtnAmt.addComma()+"원");
  391. $(".spanCpn1DcAmt").text(reFundInfo.spanCpn1DcAmt.addComma()+"원");
  392. $(".spanGoodsCpnDcAmt").text(reFundInfo.spanGoodsCpnDcAmt.addComma()+"원");
  393. $(".spanCartCpnDcAmt").text(reFundInfo.spanCartCpnDcAmt.addComma()+"원");
  394. var spanCpnDcAmt = reFundInfo.spanCpn1DcAmt + reFundInfo.spanGoodsCpnDcAmt + reFundInfo.spanGoodsCpnDcAmt;
  395. $(".spanCpnDcAmt").text(spanCpnDcAmt.addComma()+"원");
  396. $(".spanPrePntDcAmt").text(reFundInfo.spanPrePntDcAmt.addComma()+"원");
  397. $(".spanTmtbDcAmt").text(reFundInfo.spanTmtbDcAmt.addComma()+"원");
  398. var goodsDcSumAmt = reFundInfo.spanPrePntDcAmt + reFundInfo.spanTmtbDcAmt;
  399. $(".goodsDcSumAmt").text(goodsDcSumAmt.addComma()+"원");
  400. $(".delvCpnAmt").text(reFundInfo.spanDelvCpnDcAmt.addComma()+"원");
  401. $(".addDelvFee").text(addDelvFee.addComma()+"원");
  402. $(".spanRealDelvAmt").text(spanSumDeliveryFee.addComma()+"원");
  403. var totalRefundAmt = reFundInfo.spanRefundAmt + reFundInfo.spanGfcdUseAmt + reFundInfo.spanPntDcAmt;
  404. $(".totalRefundAmt").text(totalRefundAmt.addComma()+"원");
  405. $(".spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma()+"원");
  406. $(".spanGfcdUseAmt").text(reFundInfo.spanGfcdUseAmt.addComma()+"원");
  407. $(".spanPntDcAmt").text(reFundInfo.spanPntDcAmt.addComma()+"원");
  408. $(".spanSavePntAmt").text(reFundInfo.spanSavePntAmt.addComma()+"P");
  409. /*
  410. var pgGbNm = "";
  411. var cardGbNm = "";
  412. if (pgGb == 'KCP') {
  413. pgGbNm = payMeansNm;
  414. cardGbNm = "(" + cardNm + ")";
  415. } else if (pgGb == 'NAVER') {
  416. pgGbNm = "네이버페이";
  417. } else if (pgGb == 'NAVER_ORDER') {
  418. pgGbNm = "네이버페이주문형";
  419. } else if (pgGb == 'KAKAO') {
  420. pgGbNm = "카카오페이";
  421. } else if (pgGb == 'PAYCO') {
  422. pgGbNm = "페이코";
  423. } else if (pgGb == 'ISTYLE') {
  424. pgGbNm = "상품권";
  425. } else {
  426. pgGbNm = "외부몰입금";
  427. }
  428. $(".pgGbNm").text(pgGbNm);
  429. $(".cardNm").text(cardGbNm);
  430. */
  431. // 환불예정금액
  432. /*
  433. $("#spanPayAmt").text(reFundInfo.spanPayAmt.addComma()); //총 결제 금액
  434. $("#spanSumRealOrdAmt").text(reFundInfo.spanSumRealOrdAmt.addComma()); //상품 실결제 금액
  435. $("#spanSumDeliveryFee").text(reFundInfo.spanSumDeliveryFee.addComma()); //배송금액
  436. $("#spanDelvCpnDcAmt").text(reFundInfo.spanDelvCpnDcAmt.addComma()); //배송비쿠폰할인금액
  437. $("#spanOrdAmt").text(reFundInfo.spanOrdAmt.addComma()); //주문 상품 금액
  438. $("#spanCnclRtnAmt").text(reFundInfo.spanCnclRtnAmt.addComma()); //취소 상품 금액
  439. $("#spanTotPntDcAmt").text(reFundInfo.spanTotPntDcAmt.addComma()); //취소 사용 포인트
  440. $("#spanPntDcAmt").text(reFundInfo.spanPntDcAmt.addComma()); //고객 포인트
  441. $("#spanPrePntDcAmt").text(reFundInfo.spanPrePntDcAmt.addComma()); //상품 선포인트
  442. $("#spanCpnDcAmt").text(reFundInfo.spanCpnDcAmt.addComma()); //취소 사용 쿠폰금액
  443. $("#spanCpn1DcAmt").text(reFundInfo.spanCpn1DcAmt.addComma()); //즉시할인쿠폰
  444. $("#spanGoodsCpnDcAmt").text(reFundInfo.spanGoodsCpnDcAmt.addComma()); //상품쿠폰
  445. $("#spanCartCpnDcAmt").text(reFundInfo.spanCartCpnDcAmt.addComma()); //장바구니쿠폰
  446. $("#spanTmtbDcAmt").text(reFundInfo.spanTmtbDcAmt.addComma()); //취소 다다익선 금액
  447. $("#spanTmtb1DcAmt").text(reFundInfo.spanTmtb1DcAmt.addComma()); //수량할인
  448. $("#spanTmtb2DcAmt").text(reFundInfo.spanTmtb2DcAmt.addComma()); //금액할인
  449. $("#spanGfcdUseAmt").text(reFundInfo.spanGfcdUseAmt.addComma()); //취소 고객 상품권 금액
  450. $("#spanRealCnclRtnAmt").text(reFundInfo.spanRealCnclRtnAmt.addComma()); //취소 상품 실결제 금액
  451. $("#spanTotDeliveryFee").text(reFundInfo.spanTotDeliveryFee.addComma()); //취소 환불 배송 금액
  452. $("#spanTotRtnDelvFee").text(reFundInfo.spanTotRtnDelvFee.addComma()); //반품 환불 배송 금액
  453. $("#spanTotExcDelvFee").text(reFundInfo.spanTotExcDelvFee.addComma()); //교환 환불 배송 금액
  454. // 귀책사유 고객
  455. if (data.chgReason == "G688_10") {
  456. isCustomer = true;
  457. }
  458. // 귀책사유 회사
  459. else {
  460. isCustomer = false;
  461. }
  462. $("#refundAmt").text(data.refundAmt.addComma());
  463. */
  464. $("#refundAmt").text(data.refundAmt.addComma());
  465. //$("#refundAmt").text(reFundInfo.spanRefundAmt.addComma());
  466. //reFundInfo.spanRefundAmt.addComma()+"원"
  467. if(delvExpnYn == "Y"){
  468. $('#withdrawDetailForm input[name=codFee]').attr('readonly', 'readonly');
  469. $('#withdrawDetailForm input[name=encloseFee]').attr('readonly', 'readonly');
  470. } else {
  471. if(wdGb == "W"){
  472. $('#withdrawDetailForm input[name=codFee]').attr('readonly', 'readonly');
  473. } else {
  474. $('#withdrawDetailForm input[name=codFee]').remove('readonly');
  475. }
  476. }
  477. fnSetTotRefundData();
  478. }
  479. var addDeliveryFee = 0;
  480. var addDeliveryFeeYn = "N";
  481. var codFeeAmt = 0;
  482. var codFeeYn = 'N';
  483. var enCloseFeeAmt = 0;
  484. var enCloseFeeYn = "N";
  485. /*************************************************************************
  486. * 환불 금액 계산
  487. **************************************************************************/
  488. var fnSetTotRefundData = function() {
  489. var enCloseFee = $("#withdrawDetailForm input[name=encloseFee]").val(); //동봉비
  490. var codFee = $("#withdrawDetailForm input[name=codFee]").val(); //착불비
  491. var addPaycost = $("#withdrawDetailForm input[name=addPayCost]").val(); //추가결제비
  492. addDeliveryFee = 0;
  493. addDeliveryFeeYn = "N";
  494. codFeeAmt = 0;
  495. codFeeYn = "N";
  496. enCloseFeeAmt = Number(enCloseFee);
  497. enCloseFeeYn = "N";
  498. // 2021.07.02 환불컨펌 환불금액계산
  499. var spanRealCnclRtnAmt = reFundInfo.spanRealCnclRtnAmt; // 취소상품실결제금액
  500. var spanTotDeliveryFee = reFundInfo.spanTotDeliveryFee; // 배송비
  501. var spanDelvCpnDcAmt = reFundInfo.spanTotDeliveryFee; // 배송비쿠폰할인금액
  502. var spanTotRtnDelvFee = reFundInfo.spanTotRtnDelvFee; // 반품배송비
  503. // 출고예외(확정후 품절,불량)일 경우
  504. if (delvExpnYn == "Y") {
  505. // 총 주문수량 = 반품수량 배송비가 있을시 환불해줌
  506. if (toTalOrdQty == ordChgQty) {
  507. if (reFundInfo.spanSumDeliveryFee > 0) {
  508. addDeliveryFee = reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt;
  509. addDeliveryFeeYn = "Y";
  510. }
  511. //alert("총수량 출고예외");
  512. // 환불금액 = 취소 상품 실결제 금액 + 배송비
  513. reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt);
  514. } else { // 총 주문수량 <> 반품수량
  515. //alert("출고예외");
  516. reFundInfo.spanRefundAmt = reFundInfo.spanRealCnclRtnAmt;
  517. }
  518. }
  519. // 반품일 경우
  520. else {
  521. // 총 주문수량 = 반품수량
  522. if (toTalOrdQty == ordChgQty) {
  523. // 귀책사유고객
  524. if (isCustomer) {
  525. // 회수요청
  526. if (wdGb == "W") {
  527. // 환불금액 = 취소 상품 실결제 금액 + 배송비 - 추가배송비 - 반품배송비
  528. if (Number(enCloseFee) > 0) {
  529. enCloseFeeYn = "Y";
  530. }
  531. // 환불비용 = (취소상품실결제금액 + 동봉비 + 추가결제비) - 반품배송비 - 착불비
  532. reFundInfo.spanRefundAmt = (spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - spanTotRtnDelvFee - Number(codFee);
  533. }
  534. // 직접배송
  535. else {
  536. if(Number(codFee) > 0){
  537. codFeeAmt = Number(codFee);
  538. codFeeYn = "Y";
  539. }
  540. if(Number(enCloseFee) > 0){
  541. enCloseFeeYn = "Y";
  542. }
  543. // 2021.07.02 환불컨펌 환불금액계산
  544. // 환불비용 = (취소상품실결제금액 + 동봉비 + 추가결제비) - 착불비
  545. reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - Number(codFee);
  546. }
  547. }
  548. // 회사귀책
  549. else {
  550. if (reFundInfo.spanSumDeliveryFee > 0) {
  551. addDeliveryFee = reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt;
  552. addDeliveryFeeYn = "Y";
  553. }
  554. // 2021.07.02 환불컨펌 환불금액계산
  555. // 환불비용 = (취소상품실결제금액) + (원주문배송비- 배송비쿠폰할인금액)
  556. reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + (reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt));
  557. }
  558. }
  559. // 총 주문수량 <> 반품수량
  560. else {
  561. // 고객귀책
  562. if (isCustomer) {
  563. // 회수요청
  564. if (wdGb == "W") {
  565. if (Number(enCloseFee) > 0) {
  566. enCloseFeeYn = "Y";
  567. }
  568. // 2021.07.02 환불컨펌 환불금액계산
  569. // 환불금액 = (취소상품실결제금액 + 동봉비 + 추가결제비) - (추가배송비 + 반품배송비)
  570. reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - (spanTotDeliveryFee + spanTotRtnDelvFee);
  571. }
  572. // 직접배송
  573. else {
  574. if(Number(codFee) > 0){
  575. codFeeAmt = Number(codFee);
  576. codFeeYn = "Y";
  577. }
  578. if(Number(enCloseFee) > 0){
  579. enCloseFeeYn = "Y";
  580. }
  581. // 2021.07.02 환불컨펌 환불금액계산
  582. // 환불금액 = (취소상품실결제금액 + 동봉비 + 추가결제비) - (추가배송비)
  583. reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) - Number(codFee)) - (spanTotDeliveryFee);
  584. }
  585. }
  586. // 회사귀책
  587. else {
  588. // 2021.07.02 환불컨펌 환불금액계산
  589. // 환불금액 = (취소상품실결제금액)
  590. reFundInfo.spanRefundAmt = reFundInfo.spanRealCnclRtnAmt;
  591. }
  592. }
  593. }
  594. //$("#spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma()); //환불 금액 합계
  595. $(".spanRefundAmt").text(reFundInfo.spanRefundAmt.addComma()); //환불 금액 합계
  596. }
  597. /*************************************************************************
  598. * 동봉비, 착불비, 추가결제비 변경시 재계산
  599. **************************************************************************/
  600. var fnChangeAmt = function(){
  601. var enCloseFee = $("#withdrawDetailForm input[name=encloseFee]").val(); // 동봉비
  602. var codFee = $("#withdrawDetailForm input[name=codFee]").val(); // 착불비
  603. var addPaycost = $("#withdrawDetailForm input[name=addPayCost]").val(); // 추가결제비
  604. fnSetTotRefundData();
  605. }
  606. var ordInQty = 0; // 반품 입고총수량
  607. var ordChgQty = 0; // 반품 신청총수량
  608. /*************************************************************************
  609. * 회수컨펌 클릭 시
  610. **************************************************************************/
  611. withdrawDetailGridOptions.onCellClicked = function(event) {
  612. if (event.colDef.field != 'chgStat') return;
  613. if (ordChgQty != ordInQty) {
  614. mcxDialog.alert('반품신청 수량과 회수입고수량이 맞지 않습니다.<br/>반품신청수량 : ' + ordChgQty + '<br/>회수입고수량 : ' + ordInQty);
  615. return;
  616. }
  617. // 회수컨펌
  618. fnWithdrawDetailConfirm();
  619. }
  620. /*************************************************************************
  621. * 회수 컨펌
  622. **************************************************************************/
  623. var confirmFlag = true;
  624. var fnWithdrawDetailConfirm = function() {
  625. //var totPayAmt = $('#totPayAmt').text().replace(/,/gi,"");
  626. //var totRefundAmt = $('#totRefundAmt').text().replace(/,/gi,"");
  627. if (mallGb == 'G011_10') {
  628. // 아웃바운드 필요. (동동 및 계좌이체로 받아야함)
  629. if (reFundInfo.spanRefundAmt <= 0) {
  630. mcxDialog.alert('환불금액 부족합니다.');
  631. return;
  632. }
  633. if (reFundInfo.spanRefundAmt > reFundInfo.spanPayAmt) {
  634. mcxDialog.alert('환불금액이 총 결제금액보다 큽니다.<br/>환불금액 : ' + reFundInfo.spanRefundAmt + '<br/>총 결제금액 : ' + reFundInfo.spanPayAmt);
  635. return;
  636. }
  637. }
  638. var pgStat = $('#withdrawDetailForm input:checkbox[name=pgStats]').is(":checked") ? "Y" : "N";
  639. reFundInfo.addDeliveryFee = addDeliveryFee;
  640. reFundInfo.addDeliveryFeeYn = addDeliveryFeeYn;
  641. reFundInfo.codFee = codFeeAmt;
  642. reFundInfo.codFeeYn = codFeeYn;
  643. reFundInfo.pgStat = pgStat;
  644. reFundInfo.enCloseFeeYn = enCloseFeeYn;
  645. reFundInfo.enCloseFee = enCloseFeeAmt;
  646. var jsonData = JSON.stringify(reFundInfo);
  647. if (!confirmFlag) {
  648. mcxDialog.alert('데이터 처리 중입니다.');
  649. return;
  650. }
  651. mcxDialog.confirm('환불컨펌 하시겠습니까?', {
  652. cancelBtnText : "취소",
  653. sureBtnText : "확인",
  654. sureBtnClick : function(){
  655. gagajf.ajaxJsonSubmit('/withdraw/detail/confirm', jsonData, function(result) {
  656. //confirmFlag = true;
  657. fnSearch();
  658. $('#divRefundInfo').hide();
  659. $('#divRefundInfo2').show();
  660. fnRefundDetailSearch();
  661. });
  662. }
  663. });
  664. }
  665. // readonly 설정
  666. var setReadOnly = function(flag) {
  667. if (flag) {
  668. $('#withdrawDetailForm input[name=encloseFee]').attr('readonly', 'readonly');
  669. $('#withdrawDetailForm input[name=encloseFee]').addClass('formControl');
  670. } else {
  671. $('#withdrawDetailForm input[name=encloseFee]').remove('readonly');
  672. $('#withdrawDetailForm input[name=encloseFee]').removeClass('formControl');
  673. }
  674. }
  675. /*************************************************************************
  676. * init
  677. **************************************************************************/
  678. $(document).ready(function() {
  679. // Create a agGrid
  680. gagaAgGrid.createGrid('refundGridList', withdrawDetailGridOptions);
  681. $('#divRefundInfo2').hide();
  682. fnRefundDetailSearch();
  683. });
  684. /*]]>*/
  685. </script>
  686. </html>