RtnReqForm.html 70 KB

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