Przeglądaj źródła

반품화면수정중

jsh77b 4 lat temu
rodzic
commit
cfbed53a56

+ 134 - 35
src/main/webapp/WEB-INF/views/order/ExchangeRequestForm.html

@@ -238,7 +238,6 @@ var recallExceptionInfo		= [[${recallExceptionInfo}]];					// 회수 예외 정
 var rtnLocInfo				= [[${rtnLocInfo}]];							// 반송지주소정보
 var addPayCost				= 0;											// 추가배송비
 var addDelvFee				= 0;											// 추가배송비
-//var addDelvFeeList			= [];											// 추가배송비정보
 var exchangeRequestList		= [];											// 교환요청목록
 var exchangeInfoList;														// 교환정보
 var wdGb;																	// 회수방법
@@ -261,20 +260,20 @@ if (ordChgSq > 0) {
 	npayChangeHoldYn		= orderChangeDetailList[0].npayChangeHoldYn;	// 네이버페이 주문형 반품/교환 보류 여부
 
 	if (ordChgGb == 'G681_40') {
-		chgReason			= orderChangeDetailList[0].chgReason;		// 변경사유코드
-		chgReasonNm			= orderChangeDetailList[0].chgReasonNm;		// 변경사유코드명
-		chgMemo				= orderChangeDetailList[0].chgMemo;			// 변경사유메모
-		wdGb				= orderChangeDetailList[0].wdGb;			// 회수방법
-		chgOrdDtlStat		= '';										// 교환상품상세상태값
-		delvAddrSq			= '';										// 교환상품배송지일련번호
+		chgReason			= orderChangeDetailList[0].chgReason;			// 변경사유코드
+		chgReasonNm			= orderChangeDetailList[0].chgReasonNm;			// 변경사유코드명
+		chgMemo				= orderChangeDetailList[0].chgMemo;				// 변경사유메모
+		wdGb				= orderChangeDetailList[0].wdGb;				// 회수방법
+		chgOrdDtlStat		= '';											// 교환상품상세상태값
+		delvAddrSq			= '';											// 교환상품배송지일련번호
 	} else {
-		chgReason			= exchangeInfoList[0].chgReason;			// 변경사유코드
-		chgReasonNm			= exchangeInfoList[0].chgReasonNm;			// 변경사유코드명
-		chgMemo				= exchangeInfoList[0].chgMemo;				// 변경사유메모
-		wdGb				= exchangeInfoList[0].wdGb;					// 회수방법
-		chgOrdDtlStat		= exchangeInfoList[0].ordDtlStat;			// 교환상품상세상태값
-		delvAddrSq			= exchangeInfoList[0].delvAddrSq;			// 교환상품배송지일련번호
-		addPayCost			= exchangeInfoList[0].addPayCost;			// 추가배송비
+		chgReason			= exchangeInfoList[0].chgReason;				// 변경사유코드
+		chgReasonNm			= exchangeInfoList[0].chgReasonNm;				// 변경사유코드명
+		chgMemo				= exchangeInfoList[0].chgMemo;					// 변경사유메모
+		wdGb				= exchangeInfoList[0].wdGb;						// 회수방법
+		chgOrdDtlStat		= exchangeInfoList[0].ordDtlStat;				// 교환상품상세상태값
+		delvAddrSq			= exchangeInfoList[0].delvAddrSq;				// 교환상품배송지일련번호
+		addPayCost			= exchangeInfoList[0].addPayCost;				// 추가배송비
 	}
 	
 	wdBfSendYn				= orderChangeDetailList[0].wdBfSendYn;			// 선발송여부
@@ -289,7 +288,7 @@ var columnExchangeReqList = [
 			{headerName: "주문번호"		, field: "ordNo"			, width: 80		, cellClass: 'text-center', hide: temp1},
 			{headerName: "주문상세"		, field: "ordDtlNo"			, width: 80		, cellClass: 'text-center'},
 			{headerName: "주문상세"		, field: "ordDtlStat"		, width: 80		, cellClass: 'text-center', hide: temp1},
-			{headerName: "주문상세상태"		, field: "ordDtlStatNm"		, width: 100	, cellClass: 'text-center', hide: temp1},
+			{headerName: "주문상세상태"	, field: "ordDtlStatNm"		, width: 100	, cellClass: 'text-center', hide: temp1},
 			{headerName: "상품코드"		, field: "goodsCd"			, width: 100	, cellClass: 'text-center'},
 			{headerName: "상품명"			, field: "goodsNm"			, width: 130	, cellClass: 'text-center'},
 			{headerName: "상품타입"		, field: "goodsTypeNm"		, width: 100	, cellClass: 'text-center', hide: temp2}
@@ -354,6 +353,7 @@ var columnExchangeReqList = [
 					var cnclRtnReqQty = parseInt(params.data.cnclRtnQty) + parseInt(params.data.ordReqChgQty);
 					return cnclRtnReqQty;
 				}
+				, hide			: temp1 
 			},
 			{headerName: "교환가능옵션"	, field: "optCd2s"			, width: 200		, cellClass: 'text-center', hide: temp2},
 			{
@@ -1096,41 +1096,130 @@ var fnSetExchangeAddr = function(){
 
 // 교환옵션 변경 이벤트
 var fnChangeOption = function(param) {
-	var opt = $(param).val().split('/');
-	var optCd = opt[0];
-	var optCd2 = opt[1];
-	var ordDtlNo = $(param).attr('ordDtlNo');
-	var ordDtlItemSq = $(param).attr('ordDtlItemSq');
+	var opt 			= $(param).val().split('/');
+	var optCd 			= opt[0];
+	var optCd2 			= opt[1];
+	var ordDtlNo 		= $(param).attr('ordDtlNo');
+	var ordDtlItemSq 	= $(param).attr('ordDtlItemSq');
 
 	$.each(cancelRequestTargetList, function(idx, item){
 		if (item.ordDtlNo == ordDtlNo && item.ordDtlItemSq == ordDtlItemSq) {
-			var stockQtyArr = item.currStockQtys.split(',');
-			var sizeCdArr = item.optCd2s.split(',');
-			var stockIdx = sizeCdArr.indexOf(optCd2);
-			var stockQty = stockQtyArr[stockIdx];
-			item.currStockQty = stockQty;
-			item.ordChgOpt = optCd;
+			var stockQtyArr 	= item.currStockQtys.split(',');
+			var sizeCdArr 		= item.optCd2s.split(',');
+			var stockIdx 		= sizeCdArr.indexOf(optCd2);
+			var stockQty 		= stockQtyArr[stockIdx];
+			
+			item.currStockQty 	= stockQty;
+			item.ordChgOpt 		= optCd;
 		}
 	});
+	
+	fnChangeQty(param);
+}
 
-	//gridOptionsExchangeReqList.api.setRowData(cancelRequestTargetList);
+//환불예상금액계산
+var fnCalculateRefundAmt = function (obj) {
+	if (obj != null) {
+		for (i=0 ; i<cancelRequestTargetList.length ; i++) {
+			var orDtlNo 		= $(obj).attr("ordDtlNo");
+			var ordCanChgQty 	= $(obj).val();
+			
+			if (cancelRequestTargetList[i].ordDtlNo == orDtlNo) {
+				cancelRequestTargetList[i].ordCanChgQty = ordCanChgQty;
+			}
+		}
+		// 주문변경대상정보 재설정
+		gridOptionsExchangeReqList.api.setRowData(cancelRequestTargetList);
+	}
+	
+	if (cancelRequestTargetList.length == 0) {
+		alert("요청 대상정보가 존재 하지 않습니다.");
+		uifnPopupClose('popupCancelRequestForm');
+		return false;
+	}
+	
+	// 2021.05.25 수정
+	var ordDtlNoArr 		= [];
+	var cnclRtnReqQtyArr 	= [];
+	
+	// 1. 반품신청수량 체크
+	for (i=0 ; i<cancelRequestTargetList.length ; i++) {
+		if (cancelRequestTargetList[i].ordCanChgQty > 0) {
+			// 반품신청값설정
+			ordDtlNoArr.push(cancelRequestTargetList[i].ordDtlNo);
+			cnclRtnReqQtyArr.push(cancelRequestTargetList[i].ordCanChgQty);
+		}
+	}
+	
+	// 2. 추가정보설정
+	var chgerNm 	= orderInfoList[0].ordNm;
+	var chgerEmail 	= orderInfoList[0].ordEmail;
+	var chgerPhnno 	= orderInfoList[0].ordPhnno;
+	var chgerTelno 	= orderInfoList[0].ordTelno;
+	var custNo		= orderInfoList[0].custNo;
+	var delvFeeCd	= orderInfoList[0].delvFeeCd;
+	
+	// 환불금액계산호출
+	var jsonObj = {
+		"ordNo"					: ordNo
+		,"ordDtlNoArr"			: ordDtlNoArr
+		,"cnclRtnReqQtyArr"		: cnclRtnReqQtyArr
+		,"isCustomer" 			: isCustomer
+		,"chgerNm"				: chgerNm
+		,"chgerEmail"			: chgerEmail
+		,"chgerPhnno"			: chgerPhnno
+		,"custNo"				: custNo
+		,"ordNm"				: chgerNm
+		,"ordPhnno"				: chgerPhnno
+		,"delvFeeCd"			: delvFeeCd
+	}
+	
+	var jsonData = JSON.stringify(jsonObj);
+	
+	gagajf.ajaxJsonSubmit(
+		'/orderChange/cancel/refundAmt'
+		, jsonData
+		, function(result) {
+			// 2021.12.01 취소금액설정
+			if (result.cancelOrderRefundList != null && result.cancelOrderRefundList.length > 0) {
+				for (i=0 ; i<result.cancelOrderRefundList.length ; i++) {
+					for (j=0 ; j<cancelRequestTargetList.length ; j++) {
+						if (result.cancelOrderRefundList[i].ordDtlNo == cancelRequestTargetList[j].ordDtlNo) {
+							cancelRequestTargetList[j].cnclRtnAmt 		= result.cancelOrderRefundList[i].cnclRtnAmt;		// 취소금액
+							cancelRequestTargetList[j].cpn1DcAmt 		= result.cancelOrderRefundList[i].cpn1DcAmt;		// 즉시할인쿠폰금액
+							cancelRequestTargetList[j].tmtb1DcAmt 		= result.cancelOrderRefundList[i].tmtb1DcAmt;		// 수량할인다다익선금액
+							cancelRequestTargetList[j].tmtb2DcAmt 		= result.cancelOrderRefundList[i].tmtb2DcAmt;		// 금액할인다다익선금액
+							cancelRequestTargetList[j].goodsCpnDcAmt 	= result.cancelOrderRefundList[i].goodsCpnDcAmt;	// 상품쿠폰금액
+							cancelRequestTargetList[j].cartCpnDcAmt 	= result.cancelOrderRefundList[i].cartCpnDcAmt;		// 장바구니쿠폰금액
+							cancelRequestTargetList[j].pntDcAmt 		= result.cancelOrderRefundList[i].pntDcAmt;			// 포인트금액
+							cancelRequestTargetList[j].prePntDcAmt 		= result.cancelOrderRefundList[i].prePntDcAmt;		// 선포인트금액
+							cancelRequestTargetList[j].gfcdUseAmt 		= result.cancelOrderRefundList[i].gfcdUseAmt;		// 상품권적용금액
+							cancelRequestTargetList[j].realOrdAmt 		= result.cancelOrderRefundList[i].realOrdAmt;		// 실결제금액
+						}
+					}
+				}
+				
+				// 주문변경대상정보 재설정
+				gridOptionsExchangeReqList.api.setRowData(cancelRequestTargetList);
+			}
+		}
+	);
 }
 
 // 교환수량 변경 이벤트
 var fnChangeQty = function(param) {
-	var chgQty = $(param).val();
-	var ordDtlNo = $(param).attr('ordDtlNo');
+	var chgQty 		= $(param).val();				// 변경수량
+	var ordDtlNo 	= $(param).attr('ordDtlNo');	// 주문상세번호
 	var exchangeRequestTargetList = [];
+	
+	var temp		= true;
 
 	$.each(cancelRequestTargetList, function(idx, item){
 		if (item.ordDtlNo == ordDtlNo) {
 			if (gagajf.isNull(item.ordChgOpt) && chgQty > 0) {
-				mcxDialog.alert('교환옵션을 선택해주세요.');
-				return false;
+				temp = false;
 			}
-			
 			item.chgQty = chgQty;
-			
 			if (chgQty > 0) {
 				exchangeRequestTargetList.push(item);
 			}
@@ -1140,6 +1229,12 @@ var fnChangeQty = function(param) {
 			exchangeRequestTargetList.push(item);
 		}
 	});
+	
+	// 2021.12.02 소스수정
+	if (temp == false) {
+		mcxDialog.alert('교환옵션을 선택해주세요.');
+		return false;
+	}
 
 	// 추가배송비 설정
 	fnAddDelvFee(exchangeRequestTargetList);
@@ -1147,7 +1242,8 @@ var fnChangeQty = function(param) {
 	// 교환대상목록 설정
 	exchangeRequestList = exchangeRequestTargetList;
 
-	//gridOptionsExchangeReqList.api.setRowData(cancelRequestTargetList);
+	// 2021.12.02 교환취소금액계산
+	fnCalculateRefundAmt(param);
 }
 
 // 추가배송비 설정
@@ -1384,7 +1480,7 @@ $(document).ready(function() {
 			$('input:radio[name="wdGb"]:radio[value="D"]').prop('checked', true);
 			$('.chger').css('display', 'none');
 		} else {
-			$('input:radio[name="wdGb"]:radio[value="W"]').prop('checked', true);
+			$(' [name="wdGb"]:radio[value="W"]').prop('checked', true);
 			$('#delvCdList').css('display', 'none');
 		}
 	}
@@ -1468,6 +1564,9 @@ $(document).ready(function() {
 	cfnGetTextLength($('#chgMemo'), 1000, $('#chgMemoCount'));
 	cfnGetTextLength($('#chgerRtnMemo'), 1000, $('#chgerRtnMemoCount'));
 	cfnGetTextLength($('#delvMemo'), 1000, $('#delvMemoCount'));
+	
+	// 수량체크
+	fnChangeQty();
 });
 </script>
 </html>

+ 4 - 4
src/main/webapp/WEB-INF/views/order/RtnReqForm.html

@@ -323,7 +323,7 @@ var columnCancelReqList = [
 	{headerName: "상품코드"		, field: "goodsCd"			, width: 110	, cellClass: 'text-left'	, hide: temp2},
 	{headerName: "SKUCODE"		, field: "optCd"			, width: 100	, cellClass: 'text-center'	, hide: temp2},
 	{headerName: "상품명"			, field: "goodsNm"			, width: 200	, cellClass: 'text-left'	, hide: temp2},
-	{headerName: "상품타입"	, field: "goodsTypeNm"	, width: 80, cellClass: 'text-center',
+	{headerName: "상품타입"		, field: "goodsTypeNm"		, width: 80		, cellClass: 'text-center',
 		cellRenderer: function (params) {
 			var option;
 			if (params.data.goodsType == 'G056_S') {
@@ -997,9 +997,9 @@ var fnCalculateRefundAmt = function (obj) {
 	}
 
 	// 신청수량이 없거나 반품사유 선택 안했을 시 계산 안함
-	if (chk == 0 || $('#cancelRequestFrm input[name=chgReason]').val() == '') {
-		return false;
-	}
+	//if (chk == 0 || $('#cancelRequestFrm input[name=chgReason]').val() == '') {
+		//return false;
+	//}
 
 	// 2. 추가정보설정
 	var chgerNm 	= orderInfoList[0].ordNm;