|
|
@@ -127,7 +127,7 @@
|
|
|
<ul class="list">
|
|
|
<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가 -->
|
|
|
<li class="selected">반품 사유를 선택하세요.</li>
|
|
|
- <li th:if="${returnReason}" th:each="oneData, status : ${returnReason}" th:value="${oneData.cd}" th:text="${oneData.cdNm}" onclick="fnChangeReason(this);"></li>
|
|
|
+ <li th:if="${returnReason}" th:each="oneData, status : ${returnReason}" th:attr="chgReason=${oneData.cd}" th:text="${oneData.cdNm}" onclick="fnChangeReason(this);"></li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -138,7 +138,7 @@
|
|
|
<td>
|
|
|
<div class="form_field">
|
|
|
<div class="input_wrap">
|
|
|
- <textarea class="doc_reason" name="" id="" cols="30" rows="10" placeholder="자세한 사유를 입력해주세요." onkeyup="cfnGetTextLength(this, 200, $('#return_cnt'));" style="resize: none;"></textarea>
|
|
|
+ <textarea class="doc_reason" name="chgMemo" id="chgMemo" cols="30" rows="10" placeholder="자세한 사유를 입력해주세요." onkeyup="cfnGetTextLength(this, 200, $('#return_cnt'));" style="resize: none;"></textarea>
|
|
|
<p class="txt_cnt"><span id="return_cnt" class="c_primary">0</span>/200</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -191,11 +191,14 @@
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<th>주소</th>
|
|
|
- <td id="chgerAddr" th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|">
|
|
|
+ <td id="chgerAddr">
|
|
|
+ <th:block th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"></th:block>
|
|
|
<button type="button" class="btn btn_default btn_sm" onclick="fnChangeDeliveryAddr('chger');"><span>회수지 변경</span></button>
|
|
|
</td>
|
|
|
+ <input type="hidden" name="chgerZipcode" th:value="${deliveryAddrInfo.chgerZipcode}">
|
|
|
<input type="hidden" name="chgerBaseAddr" th:value="${deliveryAddrInfo.recipBaseAddr}">
|
|
|
<input type="hidden" name="chgerDtlAddr" th:value="${deliveryAddrInfo.recipDtlAddr}">
|
|
|
+ <input type="hidden" name="chgerRtnMemo" th:value="${deliveryAddrInfo.chgerRtnMemo}">
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
@@ -322,13 +325,49 @@
|
|
|
</div>
|
|
|
<!-- // CONT-BODY -->
|
|
|
</div>
|
|
|
+ <!-- 배송지변경 팝업 -->
|
|
|
+ <div class="modal fade adrsChange_pop" id="adrsChangePop" tabindex="-1" role="dialog" aria-labelledby="adrsChangeLabel" aria-hidden="true">
|
|
|
+ <div class="modal-dialog" role="document">
|
|
|
+ <div class="modal-content">
|
|
|
+ <!-- 배송지변경 팝업 내용 -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <a href="#close-modal" rel="modal:close" id="adrsChangePop_close" class="close-modal">Close</a>
|
|
|
+ </div>
|
|
|
+ <!-- //배송지변경 팝업 -->
|
|
|
+
|
|
|
+ <!-- 배송지추가 팝업 -->
|
|
|
+ <div class="modal fade adrsAdd_pop" id="adrsAddPop" tabindex="-1" role="dialog" aria-labelledby="adrsAddLabel" aria-hidden="true">
|
|
|
+ <div class="modal-dialog" role="document">
|
|
|
+ <div class="modal-content">
|
|
|
+ <!-- 배송지추가 팝업 내용 -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <a href="#close-modal" rel="modal:close" id="adrsAddPop_close" class="close-modal">Close</a>
|
|
|
+ </div>
|
|
|
+ <!-- //배송지추가 팝업 -->
|
|
|
+
|
|
|
+ <!-- 배송지수정 팝업 -->
|
|
|
+ <div class="modal fade adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" aria-hidden="true">
|
|
|
+ <div class="modal-dialog" role="document">
|
|
|
+ <div class="modal-content">
|
|
|
+ <!-- 배송지수정 팝업 내용 -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <a href="#close-modal" rel="modal:close" id="adrsModifyPop_close" class="close-modal">Close</a>
|
|
|
+ </div>
|
|
|
+ <!-- //배송지수정 팝업 -->
|
|
|
</div>
|
|
|
<script src="/ux/plugins/gaga/gaga.paging.js"></script>
|
|
|
<script th:inline="javascript">
|
|
|
let returnList = [[${returnList.returnList}]];
|
|
|
let oneData = [[${oneData}]];
|
|
|
+ let paymentInfo = [[${paymentInfo}]];
|
|
|
let usedGiftCardInfo = [[${usedGiftCardInfo}]];
|
|
|
let usedPointInfo = [[${usedPointInfo}]];
|
|
|
+ var isCustomer = true;
|
|
|
+ let jsonObj = {};
|
|
|
+ let addPayCost = 0;
|
|
|
|
|
|
$(document).ready(function() {
|
|
|
// 마이페이지 LNB 설정
|
|
|
@@ -349,13 +388,89 @@
|
|
|
$('#wdGb').css('display','none');
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
// 반품 처리
|
|
|
var fnReturn = function() {
|
|
|
- // TODO
|
|
|
- // 반품신청 처리
|
|
|
+ let url = '/mypage/return';
|
|
|
+
|
|
|
+ // 반품 사유 체크
|
|
|
+ let chgReason = $('input[name=chgReason]').val();
|
|
|
+ if (gagajf.isNull(chgReason)) {
|
|
|
+ mcxDialog.alert('반품사유를 선택해주세요.');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 반송 송장번호 체크
|
|
|
+ let wdGb = $('input[name=wdGb]:radio:checked').val();
|
|
|
+ let wdInvoiceNo = $('input[name=chgReason]').val();
|
|
|
+ if (wdGb == 'D' && gagajf.isNull(wdInvoiceNo)) {
|
|
|
+ mcxDialog.alert('직접 반송하신 송장번호를 입력해주세요.');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 주문상세번호 및 반품 수량 설정
|
|
|
+ let ordDtlNoArr = [];
|
|
|
+ let cnclRtnReqQtyArr = [];
|
|
|
+ let chkQty = 0;
|
|
|
+ $.each($('input[name=chgQty]'), function(idx, item) {
|
|
|
+ let chgQty = $(item).val();
|
|
|
+ let ordDtlNo = $(item).attr('ordDtlNo');
|
|
|
+
|
|
|
+ ordDtlNoArr.push(Number(ordDtlNo));
|
|
|
+ cnclRtnReqQtyArr.push(Number(chgQty));
|
|
|
+ chkQty += chgQty;
|
|
|
+ });
|
|
|
+
|
|
|
+ // 반품 수량 체크
|
|
|
+ if (chkQty == 0) {
|
|
|
+ mcxDialog.alert('반품하실 상품의 수량을 선택해주세요.');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 환불계좌 체크
|
|
|
+ let accountNo = $('input[name=accountNo]').val();
|
|
|
+ let accountNm = $('input[name=accountNm]').val();
|
|
|
+ let bankCd = $('input[name=bankCd]').val();
|
|
|
+
|
|
|
+ if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_00' && (gagajf.isNull(accountNo) || gagajf.isNull(accountNm) || gagajf.isNull(bankCd))) {
|
|
|
+ // TODO
|
|
|
+ // 환불계좌 등록 팝업
|
|
|
+
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 추가배송비 PG 처리
|
|
|
+ if (addPayCost > 0) {
|
|
|
+ // TODO
|
|
|
+ // 추가배송비 PG 처리
|
|
|
+ }
|
|
|
+
|
|
|
+ let data = {};
|
|
|
+ data.ordNo = oneData.ordNo;
|
|
|
+ data.ordChgSq = 0;
|
|
|
+ data.chgReason = chgReason;
|
|
|
+ data.chgMemo = $('input[name=chgMemo]').val();
|
|
|
+ data.accountNo = $('input[name=accountNo]').val();
|
|
|
+ data.accountNm = $('input[name=accountNm]').val();
|
|
|
+ data.bankCd = $('input[name=bankCd]').val();
|
|
|
+ data.isCustomer = isCustomer;
|
|
|
+ data.wdGb = wdGb;
|
|
|
+ data.chgerNm = $('#chgerNm').text();
|
|
|
+ data.chgerZipcode = $('input[name=chgerZipcode]').val();
|
|
|
+ data.chgerBaseAddr = $('input[name=chgerBaseAddr]').val();
|
|
|
+ data.chgerDtlAddr = $('input[name=chgerDtlAddr]').val();
|
|
|
+ data.chgerPhnno = $('input[name=chgerPhnno]').val();
|
|
|
+ data.chgerRtnMemo = $('input[name=chgerRtnMemo]').val();
|
|
|
+ data.ordDtlNoArr = ordDtlNoArr;
|
|
|
+ data.cnclRtnReqQtyArr = cnclRtnReqQtyArr;
|
|
|
+
|
|
|
+ let jsonData = JSON.stringify(data);
|
|
|
+
|
|
|
+ gagajf.ajaxJsonSubmit(url, jsonData, function() {
|
|
|
+ cfnGoToPage(_PAGE_MYPAGE_CRS_LIST);
|
|
|
+ });
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 반품 수량 변경 이벤트 처리
|
|
|
var fnChangeReturnQty = function(param) {
|
|
|
let url = '/mypage/cancel/refund/amt/calculate';
|
|
|
@@ -390,8 +505,8 @@
|
|
|
|
|
|
gagajf.ajaxJsonSubmit(url, jsonData, function (result) {
|
|
|
// 환불포인트, 환불상품권 금액 계산
|
|
|
- let refundPoint = fnCalculatePoint(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr);
|
|
|
- let refundGiftCard = fnCalculateGiftCard(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr);
|
|
|
+ let refundPoint = fnCalculatePoint(cnclRtnReqQtyArr, ordDtlNoArr, ordCanChgQtyArr);
|
|
|
+ let refundGiftCard = fnCalculateGiftCard(cnclRtnReqQtyArr, ordDtlNoArr, ordCanChgQtyArr);
|
|
|
|
|
|
let spanCnclRtnAmt = Number(result.spanCnclRtnAmt);
|
|
|
let sumDeliveryFee = Number(result.sumDeliveryFee);
|
|
|
@@ -400,13 +515,41 @@
|
|
|
let spanTmtbDcAmt = Number(result.spanTmtbDcAmt);
|
|
|
let spanPrePntDcAmt = Number(result.spanPrePntDcAmt);
|
|
|
let spanRefundAmt = Number(result.spanRefundAmt);
|
|
|
-
|
|
|
+ let spanTotRtnDelvFee = Number(result.spanTotRtnDelvFee);
|
|
|
+
|
|
|
+ // 반품 사유 및 반품 방식 배송비 계산
|
|
|
+ if (result.spanRealCnclRtnAmt > 0) {
|
|
|
+ let wdGb = $('input[name=wdGb]:radio:checked').val();
|
|
|
+
|
|
|
+ // 회사사유 : 추가배송비 0, 반품배송비 0
|
|
|
+ if (!isCustomer) {
|
|
|
+ spanTotDeliveryFee = 0;
|
|
|
+ spanTotRtnDelvFee = 0;
|
|
|
+ }
|
|
|
+ // 고객사유(직접발송) : 반품배송비 0
|
|
|
+ else if (wdGb == 'D') {
|
|
|
+ spanTotRtnDelvFee = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ let addDelvFee = spanTotDeliveryFee + spanTotRtnDelvFee;
|
|
|
+
|
|
|
let goodsCancelAmt = spanCnclRtnAmt; // 상품취소금액
|
|
|
- let deliveryFee = sumDeliveryFee - spanTotDeliveryFee; // 배송비
|
|
|
+ let deliveryFee = sumDeliveryFee - addDelvFee; // 배송비
|
|
|
let deductDcAmt = 0 - spanCpnDcAmt - spanTmtbDcAmt - spanPrePntDcAmt; // 할인금액 차감(쿠폰+다다익선+선포인트)
|
|
|
- let refundPayAmt = spanRefundAmt; // 결제금액 환불
|
|
|
+ let refundPayAmt = spanRefundAmt - addDelvFee; // 결제금액 환불
|
|
|
let returnAmt = refundPayAmt + refundPoint + refundGiftCard; // 환불예정금액
|
|
|
-
|
|
|
+
|
|
|
+ // 추가배송비 영역 설정
|
|
|
+ if (refundPayAmt < 0) {
|
|
|
+ refundPayAmt = spanRefundAmt;
|
|
|
+ $('#addDeliveryFee').css('display', '');
|
|
|
+ $('#addPayCost').text(addDelvFee.addComma() + '원');
|
|
|
+ addPayCost = addDelvFee;
|
|
|
+ } else {
|
|
|
+ addPayCost = 0;
|
|
|
+ }
|
|
|
+
|
|
|
// 금액 설정
|
|
|
$('#returnAmt').text(returnAmt.addComma());
|
|
|
$('#goodsCancelAmt').text(goodsCancelAmt.addComma());
|
|
|
@@ -430,15 +573,24 @@
|
|
|
$('#chgerLocation').css('display', 'none');
|
|
|
$('#returnLocation').css('display', '');
|
|
|
}
|
|
|
+
|
|
|
+ // 환불금액 계산
|
|
|
+ fnChangeReturnQty();
|
|
|
});
|
|
|
|
|
|
// 반품 사유 변경 이벤트
|
|
|
var fnChangeReason = function(param) {
|
|
|
- // TODO
|
|
|
- // 반품 사유 변경 처리
|
|
|
- console.log($(param).val());
|
|
|
- $(param).parent().parent().find('input[name=chgReason]').val($(param).val());
|
|
|
- fnChangeQty();
|
|
|
+ var customerReasonArr = ['G688_10', 'G688_11', 'G688_12', 'G688_13', 'G688_15' , 'G688_21', 'G688_30'];
|
|
|
+ let chgReason = $(param).attr('chgReason');
|
|
|
+
|
|
|
+ // 귀책사유체크(취소,반품,교환)
|
|
|
+ isCustomer = customerReasonArr.includes(chgReason);
|
|
|
+
|
|
|
+ // 반품 사유 설정
|
|
|
+ $(param).parent().parent().find('input[name=chgReason]').val(chgReason);
|
|
|
+
|
|
|
+ // 환불금액 계산
|
|
|
+ fnChangeReturnQty();
|
|
|
}
|
|
|
|
|
|
// 환불 포인트 계산
|
|
|
@@ -458,19 +610,19 @@
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
return refundPoint;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 환불 상품권 계산
|
|
|
var fnCalculateGiftCard = function(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr) {
|
|
|
let refundGiftCard = 0;
|
|
|
-
|
|
|
+
|
|
|
$.each(usedGiftCardInfo, function(idx, item) {
|
|
|
let index = ordDtlNoArr.indexOf(item.ordDtlNo);
|
|
|
let chgQty = chgQtyArr[index];
|
|
|
let ordCanChgQty = ordCanChgQtyArr[index];
|
|
|
-
|
|
|
+
|
|
|
if (chgQty > 0) {
|
|
|
if (chgQty == ordCanChgQty) {
|
|
|
refundGiftCard += item.gfcdAmt;
|
|
|
@@ -479,7 +631,7 @@
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
return refundGiftCard;
|
|
|
}
|
|
|
</script>
|