|
|
@@ -23,21 +23,24 @@
|
|
|
<div class="panelContent" style="height:90%; overflow-y:auto; padding:0px 20px !important; ">
|
|
|
<form id="cancelRequestFrm" name="cancelRequestFrm" action="/orderChange/cancel" method="post" target="hdFrameForOrderCancel">
|
|
|
<input type="hidden" name="ordNo" th:value="${ordNo}"/>
|
|
|
+ <input type="hidden" name="ordChgSq" th:value="${ordChgSq}"/>
|
|
|
<input type="hidden" name="chgReason" value=""/>
|
|
|
<input type="hidden" name="chgReasonDesc" value=""/>
|
|
|
|
|
|
<h4>주문정보</h4>
|
|
|
<div id="gridOrderCancelRequestList" style="width:100%; height: 200px;" class="ag-theme-balham"></div>
|
|
|
|
|
|
- <h4>취소정보</h4>
|
|
|
+ <h4 id="h4OrderCancelRequestToBeList">취소정보</h4>
|
|
|
<div id="gridOrderCancelRequestToBeList" style="width:100%; height: 200px;" class="ag-theme-balham"></div>
|
|
|
|
|
|
- <h4>배송비정보</h4>
|
|
|
+ <h4 id="h4DelvCdList" >배송비정보</h4>
|
|
|
<div id="gridDelvCdList" style="width:100%; height: 140px;" class="ag-theme-balham"></div>
|
|
|
|
|
|
<div style="text-align:right; padding-bottom:5px; padding-top:5px;">
|
|
|
- <button type="button" class="btn btn-success" onclick="fnCnclReq('cnclReq');">취소신청</button>
|
|
|
- <button type="button" class="btn btn-success" onclick="fnCnclReq('cnclComplete');">취소완료</button>
|
|
|
+ <button type="button" class="btn btn-success" id="cnclReqBtn" onclick="fnCnclReq('cnclReq');">취소신청</button>
|
|
|
+ <button type="button" class="btn btn-success" id="cnclCompleteBtn" onclick="fnCnclReq('cnclComplete');">취소완료</button>
|
|
|
+ <button type="button" class="btn btn-success" id="cnclReqCancelBtn" onclick="fnCnclReq('cnclReqCancel');">취소철회</button>
|
|
|
+ <button type="button" class="btn btn-success" id="cnclReqCompleteBtn" onclick="fnCnclReq('cnclReqComplete');">취소승인</button>
|
|
|
</div>
|
|
|
|
|
|
<table class="frmStyle">
|
|
|
@@ -53,7 +56,7 @@
|
|
|
<td>
|
|
|
<select name="selectChgReason" onchange="fnChangeChgReason($(this).val());">
|
|
|
<option value="">[선택하세요]</option>
|
|
|
- <option th:if="${chgReasonList}" th:each="oneData, status : ${chgReasonList}" th:value="|${oneData.cd}:${oneData.cdNm}|" th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
|
|
|
+ <option th:if="${chgReasonList}" th:each="oneData, status : ${chgReasonList}" th:value="|${oneData.cd}|" th:text="|${oneData.cdNm}|"></option>
|
|
|
</select>
|
|
|
</td>
|
|
|
<th>귀책사유</th>
|
|
|
@@ -135,8 +138,12 @@
|
|
|
/*<![CDATA[*/
|
|
|
var cancelRequestTargetList = [[${cancelRequestTargetList}]]; // 취소대상목록
|
|
|
var ordNo = [[${ordNo}]]; // 주문번호
|
|
|
+var ordChgSq = [[${ordChgSq}]]; // 주문변경번호
|
|
|
var orderInfoList = [[${orderInfoList}]]; // 주문기본정보
|
|
|
+var orderChangeDetailList = [[${orderChangeDetailList}]]; // 취소/반품/교환요청 정보
|
|
|
var payMeans = orderInfoList[0].payMeans; // 결제수단
|
|
|
+var chgReason = orderChangeDetailList[0].chgReason; // 변경사유코드
|
|
|
+var chgMemo = orderChangeDetailList[0].chgMemo; // 변경사유메모
|
|
|
|
|
|
var temp1 = true;
|
|
|
var temp2 = false;
|
|
|
@@ -223,21 +230,29 @@ var columnCancelReqList = [
|
|
|
var ordQty = parseInt(params.data.ordQty);
|
|
|
var cnclRtnQty = parseInt(params.data.cnclRtnQty);
|
|
|
var ordReqChgQty = parseInt(params.data.ordReqChgQty);
|
|
|
- var ordCanChgQty = ordQty - (cnclRtnQty + ordReqChgQty);
|
|
|
+ var ordCanChgQty = parseInt(params.value);
|
|
|
+ var rtnStr = "";
|
|
|
|
|
|
- var strVal = "";
|
|
|
- strVal += "<select class='ordCanChgQty' name='ordCanChgQty' ordDtlNo='"+params.data.ordDtlNo+"' onChange='fnCalculateRefundAmt(this);'>";
|
|
|
-
|
|
|
- for (i=0 ; i<=ordCanChgQty ; i++) {
|
|
|
- if (i == params.data.ordCanChgQty) {
|
|
|
- strVal += " <option value='"+i+"' selected>"+i+"</option>";
|
|
|
- } else {
|
|
|
- strVal += " <option value='"+i+"'>"+i+"</option>";
|
|
|
+ // 취소신청가능수량있으면 수량만 표시 (취소,반품,교환 신청정보 처리)
|
|
|
+ if (ordChgSq > 0) {
|
|
|
+ rtnStr = ordCanChgQty;
|
|
|
+ } else {
|
|
|
+ ordCanChgQty = ordQty - (cnclRtnQty + ordReqChgQty);
|
|
|
+
|
|
|
+ rtnStr += "<select class='ordCanChgQty' name='ordCanChgQty' ordDtlNo='"+params.data.ordDtlNo+"' onChange='fnCalculateRefundAmt(this);'>";
|
|
|
+
|
|
|
+ for (i=0 ; i<=ordCanChgQty ; i++) {
|
|
|
+ if (i == params.data.ordCanChgQty) {
|
|
|
+ rtnStr += " <option value='"+i+"' selected>"+i+"</option>";
|
|
|
+ } else {
|
|
|
+ rtnStr += " <option value='"+i+"'>"+i+"</option>";
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ rtnStr += "</select>";
|
|
|
}
|
|
|
-
|
|
|
- strVal += "</select>";
|
|
|
- return strVal;
|
|
|
+
|
|
|
+ return rtnStr;
|
|
|
}
|
|
|
}
|
|
|
]
|
|
|
@@ -869,7 +884,7 @@ var fnChangeChgReason = function(reasonCd){
|
|
|
|
|
|
// 취소, 반품, 교환 사유 판단
|
|
|
for (i=0 ; i<customerReasonArr.length ; i++) {
|
|
|
- if (customerReasonArr[i] == arrReasonCd[0]) {
|
|
|
+ if (customerReasonArr[i] == reasonCd) {
|
|
|
isCustomer = true;
|
|
|
}
|
|
|
}
|
|
|
@@ -881,9 +896,7 @@ var fnChangeChgReason = function(reasonCd){
|
|
|
$("#imputeReason").text("회사");
|
|
|
}
|
|
|
|
|
|
- $('#cancelRequestFrm input[name=chgReason]').val(arrReasonCd[0]);
|
|
|
- $('#cancelRequestFrm input[name=chgReasonDesc]').val(arrReasonCd[1]);
|
|
|
-
|
|
|
+ $('#cancelRequestFrm input[name=chgReason]').val(reasonCd);
|
|
|
fnCalculateRefundAmt(); //환불예정금액 계산.
|
|
|
}
|
|
|
|
|
|
@@ -891,57 +904,61 @@ var fnChangeChgReason = function(reasonCd){
|
|
|
var fnCnclReq = function (reqGbn) {
|
|
|
|
|
|
var temp = false;
|
|
|
- var ordDtlStat = cancelRequestTargetList[0].ordDtlStat;
|
|
|
+ var ordDtlStat = cancelRequestTargetList[0].ordDtlStat;
|
|
|
var allCanYn = "N";
|
|
|
|
|
|
- // 1. 취소수량 체크
|
|
|
- for (i=0 ; i<cancelRequestTargetList.length ; i++) {
|
|
|
- if (cancelRequestTargetList[i].ordCanChgQty > 0) {
|
|
|
- temp = true;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (temp == false) {
|
|
|
- mcxDialog.alert('취소신청수량을 입력하세요.');
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- // 2. 입금대기건 & 전체취소 체크
|
|
|
- if (ordDtlStat == "G013_10" && $("#spanPayAmt").text() != $("#spanRefundAmt").text()) {
|
|
|
- alert("입금대기건은 전체 취소만 가능합니다.");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- // 2.1 전체취소 여부 적용
|
|
|
- if (ordDtlStat == "G013_10" && $("#spanPayAmt").text() == $("#spanRefundAmt").text()) {
|
|
|
- allCanYn = "Y";
|
|
|
- }
|
|
|
-
|
|
|
- // 3. 취소사유 체크
|
|
|
- var chgReason = $("#cancelRequestFrm select[name=selectChgReason]").val();
|
|
|
-
|
|
|
- if (gagajf.isNull(chgReason)) {
|
|
|
- mcxDialog.alert("취소사유를 입력하세요.");
|
|
|
- return ;
|
|
|
- }
|
|
|
-
|
|
|
- // 4. 환불계좌 체크
|
|
|
var accountNo = "";
|
|
|
var accountNm = "";
|
|
|
var bankCd = "";
|
|
|
|
|
|
- // 결제타입 무통장입금시 환불계좌 등록
|
|
|
- if (payMeans == 'G014_20') {
|
|
|
- var refundAccount = gridOptionsRefundAccountInfo.api.getSelectedRows();
|
|
|
+ if (reqGbn == "cnclReq" || reqGbn == "cnclComplete") {
|
|
|
+ // 1. 취소수량 체크
|
|
|
+ for (i=0 ; i<cancelRequestTargetList.length ; i++) {
|
|
|
+ if (cancelRequestTargetList[i].ordCanChgQty > 0) {
|
|
|
+ temp = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (temp == false) {
|
|
|
+ mcxDialog.alert('취소신청수량을 입력하세요.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- if (refundAccount.length == 0) {
|
|
|
- mcxDialog.alert('선택된 행이 없습니다.');
|
|
|
+ // 2. 입금대기건 & 전체취소 체크
|
|
|
+ if (ordDtlStat == "G013_10" && $("#spanPayAmt").text() != $("#spanRefundAmt").text()) {
|
|
|
+ alert("입금대기건은 전체 취소만 가능합니다.");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- accountNo = refundAccount[0].accountNo;
|
|
|
- accountNm = refundAccount[0].accountNm;
|
|
|
- bankCd = refundAccount[0].bankCd;
|
|
|
+ // 2.1 전체취소 여부 적용
|
|
|
+ if (ordDtlStat == "G013_10" && $("#spanPayAmt").text() == $("#spanRefundAmt").text()) {
|
|
|
+ allCanYn = "Y";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 취소사유 체크
|
|
|
+ var chgReason = $("#cancelRequestFrm select[name=selectChgReason]").val();
|
|
|
+
|
|
|
+ if (gagajf.isNull(chgReason)) {
|
|
|
+ mcxDialog.alert("취소사유를 입력하세요.");
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 4. 환불계좌 체크
|
|
|
+ // 결제타입 무통장입금시 환불계좌 등록
|
|
|
+ if (payMeans == 'G014_20') {
|
|
|
+ var refundAccount = gridOptionsRefundAccountInfo.api.getSelectedRows();
|
|
|
+
|
|
|
+ if (refundAccount.length == 0) {
|
|
|
+ mcxDialog.alert('선택된 행이 없습니다.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ accountNo = refundAccount[0].accountNo;
|
|
|
+ accountNm = refundAccount[0].accountNm;
|
|
|
+ bankCd = refundAccount[0].bankCd;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// 5. 추가정보설정
|
|
|
@@ -950,49 +967,57 @@ var fnCnclReq = function (reqGbn) {
|
|
|
var chgerPhnno = orderInfoList[0].ordPhnno;
|
|
|
var chgerTelno = orderInfoList[0].ordTelno;
|
|
|
|
|
|
+ // 2021.01.26 화면통합
|
|
|
// 6. 취소신청, 취소완료 여부 체크
|
|
|
- // 취소완료
|
|
|
- if (reqGbn == "cnclComplete") {
|
|
|
- cnclUrl = '/orderChange/cnclComplete/';
|
|
|
- }
|
|
|
// 취소신청
|
|
|
- else if (reqGbn == "cnclReq") {
|
|
|
- cnclUrl = '/orderChange/cnclReq/';
|
|
|
+ if (reqGbn == "cnclReq") {
|
|
|
+ confirmStr = "취소신청하시겠습니까?";
|
|
|
+ cnclUrl = '/orderChange/cnclComplete/';
|
|
|
}
|
|
|
- // 취소신청완료
|
|
|
+ // 취소완료
|
|
|
+ else if (reqGbn == "cnclComplete") {
|
|
|
+ confirmStr = "취소완료하시겠습니까?";
|
|
|
+ cnclUrl = '/orderChange/cnclComplete/';
|
|
|
+ }
|
|
|
+ // 취소신청승인
|
|
|
else if (reqGbn == "cnclReqComplete") {
|
|
|
- cnclUrl = '/orderChange/cnclReqComplete/';
|
|
|
+ confirmStr = "요청번호 [" + ordChgSq + "] 에 대한 취소승인 처리를 하시겠습니까?";
|
|
|
+ cnclUrl = '/orderChange/cnclReqComplete/';
|
|
|
+ }
|
|
|
+ // 취소신청철회
|
|
|
+ else if (reqGbn == "cnclReqCancel") {
|
|
|
+ confirmStr = "요청번호 [" + ordChgSq + "] 에 대한 요청철회 처리를 하시겠습니까?";
|
|
|
+ cnclUrl = '/orderChange/cnclReqCancel/';
|
|
|
}
|
|
|
|
|
|
- // 2021.01.26 화면통합
|
|
|
- cnclUrl = '/orderChange/cnclComplete/';
|
|
|
-
|
|
|
var jsonObj = {
|
|
|
- "ordNo" : $('#cancelRequestFrm input[name=ordNo]').val()
|
|
|
- ,"chgReason" : $('#cancelRequestFrm input[name=chgReason]').val()
|
|
|
- ,"chgMemo" : $('#chgMemo').val()
|
|
|
- ,"cancelReqList" : cancelRequestTargetList
|
|
|
- ,"accountNo" : accountNo
|
|
|
- ,"accountNm" : accountNm
|
|
|
- ,"bankCd" : bankCd
|
|
|
- ,"allCanYn" : allCanYn
|
|
|
- ,"isCustomer" : isCustomer
|
|
|
- ,"chgerNm" : chgerNm
|
|
|
- ,"chgerEmail" : chgerEmail
|
|
|
- ,"chgerZipcode" : ""
|
|
|
- ,"chgerBaseAddr" : ""
|
|
|
- ,"chgerDtlAddr" : ""
|
|
|
- ,"chgerPhnno" : chgerPhnno
|
|
|
- ,"chgerTelno" : chgerTelno
|
|
|
- ,"reqGbn" : reqGbn
|
|
|
- }
|
|
|
+ "ordNo" : $('#cancelRequestFrm input[name=ordNo]').val()
|
|
|
+ ,"chgReason" : $('#cancelRequestFrm input[name=chgReason]').val()
|
|
|
+ ,"chgMemo" : $('#chgMemo').val()
|
|
|
+ ,"cancelReqList" : cancelRequestTargetList
|
|
|
+ ,"accountNo" : accountNo
|
|
|
+ ,"accountNm" : accountNm
|
|
|
+ ,"bankCd" : bankCd
|
|
|
+ ,"allCanYn" : allCanYn
|
|
|
+ ,"isCustomer" : isCustomer
|
|
|
+ ,"chgerNm" : chgerNm
|
|
|
+ ,"chgerEmail" : chgerEmail
|
|
|
+ ,"chgerZipcode" : ""
|
|
|
+ ,"chgerBaseAddr" : ""
|
|
|
+ ,"chgerDtlAddr" : ""
|
|
|
+ ,"chgerPhnno" : chgerPhnno
|
|
|
+ ,"chgerTelno" : chgerTelno
|
|
|
+ ,"reqGbn" : reqGbn
|
|
|
+ ,"ordChgSq" : ordChgSq
|
|
|
+ }
|
|
|
|
|
|
// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌
|
|
|
var jsonData = JSON.stringify(jsonObj);
|
|
|
|
|
|
- mcxDialog.confirm('취소요청하시겠습니까?', {
|
|
|
+ mcxDialog.confirm(confirmStr, {
|
|
|
cancelBtnText : "취소",
|
|
|
- sureBtnClick : function(){
|
|
|
+ sureBtnText : "확인",
|
|
|
+ sureBtnClick : function() {
|
|
|
gagajf.ajaxJsonSubmit(
|
|
|
cnclUrl
|
|
|
, jsonData
|
|
|
@@ -1047,6 +1072,30 @@ $(document).ready(function() {
|
|
|
$('#wrapRefundAccount').addClass("off");
|
|
|
fnBindOrderRfAccountInfo();
|
|
|
}
|
|
|
+
|
|
|
+ // 5. 취소신청, 취소완료, 취소승인 버튼 제어
|
|
|
+ if (ordChgSq > 0) {
|
|
|
+ $("#cnclReqBtn").css("display", "none");
|
|
|
+ $("#cnclCompleteBtn").css("display", "none");
|
|
|
+ } else {
|
|
|
+ $("#cnclReqCompleteBtn").css("display", "none");
|
|
|
+ $("#cnclReqCancelBtn").css("display", "none");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 6. 취소사유 선택
|
|
|
+ if (ordChgSq > 0) {
|
|
|
+ $("select[name='selectChgReason']").val(orderChangeDetailList[0].chgReason); // 변경사유코드
|
|
|
+ $("select[name='selectChgReason']").attr("disabled", "true"); // 변경사유 비활성화
|
|
|
+ $("#chgMemo").text(orderChangeDetailList[0].chgMemo); // 변경사유메모
|
|
|
+ $("#chgMemo").attr("disabled", "true"); // 변경사유메모 비활성화
|
|
|
+ fnChangeChgReason(orderChangeDetailList[0].chgReason); // 귀책사유
|
|
|
+ }
|
|
|
+
|
|
|
+ // debug mode 해제
|
|
|
+ $("#h4OrderCancelRequestToBeList").css("display", "none");
|
|
|
+ $("#gridOrderCancelRequestToBeList").css("display", "none");
|
|
|
+ $("#h4DelvCdList").css("display", "none");
|
|
|
+ $("#gridDelvCdList").css("display", "none");
|
|
|
});
|
|
|
</script>
|
|
|
</html>
|