Переглянути джерело

Merge remote-tracking branch 'origin/develop' into jsh77b

tsit14 4 роки тому
батько
коміт
b28164530a

+ 17 - 13
src/main/java/com/style24/admin/biz/service/TsaWithdrawService.java

@@ -472,26 +472,30 @@ public class TsaWithdrawService {
 								// 품절 취소 송부
 								Order param = new Order();
 								param.setOrdDtlNo(exception.getOrdDtlNo());
-								coreNaverPayService.sendNaverPaySoldoutCancel(param, userNo);			// 품절취소
+								// coreNaverPayService.sendNaverPaySoldoutCancel(param, userNo);				// 품절취소
+								String addUrl = "/naverpay/send/soldout/cancel?ordDtlNo=" + exception.getOrdDtlNo() + "&userNo=" + userNo;
+								coreNaverPayService.sendScmServerForNaverpay(addUrl);							// 품절취소
 							} else if ("E".equals(exception.getOrdExchGb())){		// 교환 후 확정 후 품절 및 불량
 								// 교환 반려 > 반품 접수 > 반품 완료
-								Order param = new Order();
-								param.setOrdDtlNo(exception.getOrdDtlNo());
+								String addUrl = "";
 
-								if(i < 1) {
-									coreNaverPayService.sendNaverPayRejectExchange(exception, userNo);        // 교환반려
-								}
+								// 네이버페이는 SCM을 통해서 송부
+								// coreNaverPayService.sendNaverPayRejectExchange(exception, userNo);        // 교환반려
+								addUrl = "/naverpay/send/reject/exchange?ordDtlNo=" + exception.getOrdDtlNo() + "&userNo=" + userNo;
+								coreNaverPayService.sendScmServerForNaverpay(addUrl);						// 교환 반려
 
-								coreNaverPayService.sendNaverPaySoldoutReturnReq(param, userNo);		// 품절반품접수
+								// coreNaverPayService.sendNaverPaySoldoutReturnReq(param, userNo);				// 품절반품접수
+								addUrl = "/naverpay/send/soldout/return/req?ordDtlNo=" + exception.getOrdDtlNo() + "&userNo=" + userNo;
+								coreNaverPayService.sendScmServerForNaverpay(addUrl);							// 품절반품접수
 
-								if(i < 1) {
-									coreNaverPayService.sendNaverPayReturnComplete(exception, userNo);        // 반품완료
-								}
+								// coreNaverPayService.sendNaverPayReturnComplete(exception, userNo);		// 반품완료
+								addUrl = "/naverpay/send/return/complete?ordDtlNo=" + exception.getOrdDtlNo() + "&userNo=" + userNo;
+								coreNaverPayService.sendScmServerForNaverpay(addUrl);						// 반품완료
 							}
 						} else {								// 정상 반품 완료
-							if(i < 1) {
-								coreNaverPayService.sendNaverPayReturnComplete(exception, userNo);            // 반품완료
-							}
+							// coreNaverPayService.sendNaverPayReturnComplete(exception, userNo);            // 반품완료
+							String addUrl = "/naverpay/send/return/complete?ordDtlNo=" + exception.getOrdDtlNo() + "&userNo=" + userNo;
+							coreNaverPayService.sendScmServerForNaverpay(addUrl);							// 반품완료
 						}
 
 						i++;

+ 16 - 7
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -170,7 +170,6 @@ public class TsaOrderChangeController extends TsaBaseController {
 		
 		// 2.취소요청철회
 		mav = coreOrderChangeService.cnclReqCancel(mav, userNo);
-		// coreNaverPayService.sendNaverPayRejectReturn(cnclReq, userNo);
 
 		return super.ok("성공");
 	}
@@ -704,13 +703,17 @@ public class TsaOrderChangeController extends TsaBaseController {
 	@GetMapping("/exchange/request/form")
 	public ModelAndView exchangeRequestFrom(Order order) {
 		ModelAndView mav = new ModelAndView();
+		
+		Integer ordChgSq = order.getOrdChgSq();
 
-		// 교환가능 주문상세상탭값 설정
-		String[] ordDtlStatArr = new String[3];
-		ordDtlStatArr[0] = TscConstants.OrderDetailStat.SHIPPING.value();
-		ordDtlStatArr[1] = TscConstants.OrderDetailStat.SHIP_COMPLETE.value();
-		ordDtlStatArr[2] = TscConstants.OrderDetailStat.DELIVERY_COMPLETE.value();
-		order.setOrdDtlStatArr(ordDtlStatArr);
+		if (ordChgSq == null || ordChgSq == 0) {
+			// 교환가능 주문상세상탭값 설정
+			String[] ordDtlStatArr = new String[3];
+			ordDtlStatArr[0] = TscConstants.OrderDetailStat.SHIPPING.value();
+			ordDtlStatArr[1] = TscConstants.OrderDetailStat.SHIP_COMPLETE.value();
+			ordDtlStatArr[2] = TscConstants.OrderDetailStat.DELIVERY_COMPLETE.value();
+			order.setOrdDtlStatArr(ordDtlStatArr);
+		}
 
 		order.setChgGb(TscConstants.OrderChangeGb.EXCHANGE.value());
 		Collection<Order> cancelRequestTargetList = coreOrderChangeService.getCancelRequestTargetList(order);
@@ -718,6 +721,8 @@ public class TsaOrderChangeController extends TsaBaseController {
 		Collection<Order> orderInfoList = coreOrderService.getOrderInfoList(order);
 
 		String chgStat = "";
+		String canRequestCancelYn = "";
+		String wdBfSendYn = "";
 		if (order.getOrdChgSq() > 0) {
 			Collection<Order> exchangeInfoList = coreOrderChangeService.getExchangeInfo(order);
 
@@ -755,6 +760,8 @@ public class TsaOrderChangeController extends TsaBaseController {
 				}
 
 				cancelRequestTargetList = tmpList;
+				canRequestCancelYn = orderChangeDetailList.iterator().next().getCanRequestCancelYn();
+				wdBfSendYn = orderChangeDetailList.iterator().next().getWdBfSendYn();
 			}
 
 			String chgOrdDtlStat = "";
@@ -768,6 +775,8 @@ public class TsaOrderChangeController extends TsaBaseController {
 			mav.addObject("recallExceptionInfo"		, coreOrderChangeService.getRecallExceptionInfo(order));		// 회수 예외 정보
 		}
 
+		mav.addObject("wdBfSendYn"					, wdBfSendYn);													// 선발송여부
+		mav.addObject("canRequestCancelYn"			, canRequestCancelYn);											// 철회가능여부
 		mav.addObject("chgReasonList"				, rendererService.getAvailCommonCodeList("G689"));				// 교환사유
 		mav.addObject("cancelRequestTargetList"		, cancelRequestTargetList);										// 교환요청대상 목록
 		mav.addObject("orderChangeDetailList"		, orderChangeDetailList);										// 변경신청목록 (취소/반품/교환)

+ 12 - 2
src/main/webapp/WEB-INF/views/marketing/CouponPopupForm.html

@@ -110,7 +110,7 @@
 										<tr class="serialCpnArea" style="display:none;">
 											<th>시리얼쿠폰키워드<em class="required" title="필수"></em></th>
 											<td>
-												<input type="text" name="serialCpnNm" class="w300" maxlength="10" data-valid-name="시리얼쿠폰키워드">
+												<input type="text" name="serialCpnNm" id="serialCpnNm" class="w300" maxlength="10" data-valid-name="시리얼쿠폰키워드">
 											</td>
 											<th>시리얼쿠폰발급수량<em class="required" title="필수"></em></th>
 											<td>
@@ -694,7 +694,7 @@
 	// ag-grid 시리얼 및 난수 리스트
 	var randomCouponDefs = [
 		{ headerName : "생성쿠폰키워드" , field: "rdCpnNm" , width:150, cellClass: 'text-center'} ,
-		{ headerName: "지급고객번호" , field: "custNm" , width:150, cellClass: 'text-center'},
+		{ headerName: "지급고객번호" , field: "custNo" , width:150, cellClass: 'text-center'},
 		{ headerName: "고객아이디" , field: "custId" , width:150, cellClass: 'text-center'},
 		{ headerName: "고객명" , field: "custNm" , width:150, cellClass: 'text-center'},
 		{ headerName: "지급일" , field: "regDt" , width:150, cellClass: 'text-center'},
@@ -3179,6 +3179,16 @@
 		}
 	});
 
+	// 시리얼 쿠폰 사용
+	$("#serialCpnNm").bind("keyup",function(){
+		re = /[~!@\#$%^&*\()\-=+_']/gi;
+		var temp=$("#serialCpnNm").val();
+		if(re.test(temp)){ //특수문자가 포함되면 삭제하여 값으로 다시셋팅
+			$("#serialCpnNm").val(temp.replace(re,""));
+		}
+		$("#serialCpnNm").val($("#serialCpnNm").val().replaceAll(" ", ""));
+	});
+
 	/*]]>*/
 </script>
 </html>

+ 5 - 2
src/main/webapp/WEB-INF/views/marketing/FreeGoodsPromotionRegiForm.html

@@ -517,8 +517,8 @@
 			$('#freeGoodsPromotionForm select[name=freegiftEdHH]').val(edHour);
 			$('#freeGoodsPromotionForm select[name=freegiftEdMM]').val(edMinute);
 			$('#freeGoodsPromotionForm span[name=freegiftStatText]').text(freegiftStatNm);
-			$('#freeGoodsPromotionForm input[name=sectionVal]').val(freegift.sectionVal);
-			$('#freeGoodsPromotionForm input[name=sectionVal2]').val(freegift.sectionVal2);
+			$('#freeGoodsPromotionForm input[name=sectionVal]').val(freegift.sectionVal.addComma());
+			$('#freeGoodsPromotionForm input[name=sectionVal2]').val(freegift.sectionVal2.addComma());
 			$("#freeGoodsPromotionForm #regInfo").text(freegift.regNm + "(" + freegift.regDt + ")");
 			$("#freeGoodsPromotionForm #updInfo").text(freegift.updNm + "(" + freegift.updDt + ")");
 
@@ -582,6 +582,7 @@
 					$("#freeGoodsPromotionForm input[name=extmallYn]").addClass("formControl");
 					$("#freeGoodsPromotionForm .disabledPoint").prop("disabled", true);
 					$("#freeGoodsPromotionForm input").prop("disabled", true);
+					$("#freeGoodsPromotionForm select").prop("disabled", true);
 					$("#freeGoodsPromotionForm button").hide();
 
 					// 진행 상태일 경우 노출 버튼 (저장 버튼은 중지시 수정 불가처리하기로하여 주석처리. 기획서대로 변경일 경우 주석 제거 및 if 제거)
@@ -930,6 +931,8 @@
 			freegiftEddt += " " + $("#freeGoodsPromotionForm select[name=freegiftEdHH]").val() + ":" + $("#freeGoodsPromotionForm select[name=freegiftEdMM]").val() + ":00";
 		}
 
+		gagajf.removeCommaAtNumberFormattedInput("#freeGoodsPromotionForm");
+
 		// var params =  $(formId).serialize();
 		var data = {  gbn : $("#freeGoodsPromotionForm input[name=gbn]").val()
 			        , freegiftSq : $("#freeGoodsPromotionForm input[name=freegiftSq]").val()

+ 3 - 2
src/main/webapp/WEB-INF/views/order/CnclCompleteView.html

@@ -57,9 +57,9 @@
 							<td><span id="imputeReason"></span></td>
 						</tr>
 						<tr>
-							<th>요청메모</th>
+							<th>요청메모<br/><span id="chgMemoCount">0</span>/1,000Byte</th>
 							<td colspan="3">
-								<textarea id="chgMemo" name="chgMemo" style="height:80px;" placeholder="취소사유를 300자내외로 작성해 주세요"></textarea>
+								<textarea id="chgMemo" name="chgMemo" style="height:80px;"></textarea>
 							</td>
 						</tr>
 					</tbody>
@@ -359,6 +359,7 @@ $(document).ready(function() {
 	$("#chgReasonNm").text(chgReasonNm);
 	$("#chgMemo").text(chgMemo);
 	$("#chgMemo").attr("disabled", "true");
+	cfnGetTextLength($('#chgMemo'), 1000, $('#chgMemoCount'));
 	fnChangeChgReason(chgReason);
 	
 	// 5. 환불에정금액 

+ 34 - 6
src/main/webapp/WEB-INF/views/order/ExchangeRequestForm.html

@@ -36,10 +36,16 @@
 				
 				<div style="text-align:right; padding-bottom:5px; padding-top:5px;">
 					<button type="button" class="btn btn-success" th:unless="${ordChgSq > 0}" id="fnExchangeRequestSubmit" onclick="fnExchange()">교환요청</button>
-					<!-- 2021.07.22 택배사 회수 불가 시 회수요청상태에서 교환철회 처리 -->
-					<!-- <button type="button" class="btn btn-success" th:if="${chgStat == 'G685_20' or chgStat == 'G685_21' or (recallExceptionInfo != null and (chgStat == 'G685_30' or chgStat == 'G685_31'))}" id="fnExchangeCancelRequestSubmit" onclick="fnExchangeCancel()">교환철회</button> -->
-					<button type="button" class="btn btn-success" th:if="${chgStat == 'G685_20' or chgStat == 'G685_21' or chgStat == 'G685_30' or (recallExceptionInfo != null and chgStat == 'G685_31')}" id="fnExchangeCancelRequestSubmit" onclick="fnExchangeCancel()">교환철회</button>
-					<button type="button" class="btn btn-success" th:if="${ordChgSq > 0 and (ordChgGb == 'G681_20' or ordChgGb == 'G681_40')}" id="fnReturnToExchangeSubmit" onclick="fnExchange()">교환변경</button>
+					<!-- 2021.07.22 선발송 처리 시 교환철회 불가 처리 -->
+					<th:block th:if="${wdBfSendYn == 'N'}">
+						<!-- 2021.07.22 택배사 회수 불가 시 회수요청상태에서 교환철회 처리 -->
+						<!-- <button type="button" class="btn btn-success" th:if="${chgStat == 'G685_20' or chgStat == 'G685_21' or (recallExceptionInfo != null and (chgStat == 'G685_30' or chgStat == 'G685_31'))}" id="fnExchangeCancelRequestSubmit" onclick="fnExchangeCancel()">교환철회</button> -->
+						<button type="button" class="btn btn-success" th:if="${chgStat == 'G685_20' or chgStat == 'G685_21' or (chgStat == 'G685_30' and (canRequestCancelYn == 'Y' or recallExceptionInfo != null)) or (chgStat == 'G685_31' and recallExceptionInfo != null)}" id="fnExchangeCancelRequestSubmit" onclick="fnExchangeCancel()">교환철회</button>
+					</th:block>
+					<th:block th:i="${ordChgSq > 0 and (ordChgGb == 'G681_20' or ordChgGb == 'G681_40')}">
+						<!-- 선발송 처리 시 교TO교 접수 불가 처리 -->
+						<button type="button" class="btn btn-success" th:unless="${ordChgGb == 'G681_20' and wdBfSendYn == 'Y'}" id="fnReturnToExchangeSubmit" onclick="fnExchange()">교환변경</button>
+					</th:block>
 				</div>
 				
 				<table class="frmStyle">
@@ -337,8 +343,21 @@ var columnExchangeReqList = [
 						var optArr = params.data.optCd2s.split(',');
 						var ordChgOpt = params.data.ordChgOpt;
 						
+						var ordQty = parseInt(params.data.ordQty);
+						var cnclRtnQty = parseInt(params.data.cnclRtnQty);
+						var ordReqChgQty = parseInt(params.data.ordReqChgQty);
+						var ordCanChgQty = ordQty - (cnclRtnQty + ordReqChgQty);
+						
+						if (ordChgGb == 'G681_40') {
+							ordCanChgQty = params.data.chgQty;
+						}
+						
 						var strVal = '';
-						strVal += '<select class="ordChgOpt" name="ordChgOpt" ordDtlNo="' + params.data.ordDtlNo + '" ordDtlItemSq="' + params.data.ordDtlItemSq + '" onchange="fnChangeOption(this)">';
+						if (ordCanChgQty == 0) {
+							strVal += '<select class="ordChgOpt" name="ordChgOpt" ordDtlNo="' + params.data.ordDtlNo + '" ordDtlItemSq="' + params.data.ordDtlItemSq + '" onchange="fnChangeOption(this)" disabled="disabled">';
+						} else {
+							strVal += '<select class="ordChgOpt" name="ordChgOpt" ordDtlNo="' + params.data.ordDtlNo + '" ordDtlItemSq="' + params.data.ordDtlItemSq + '" onchange="fnChangeOption(this)">';
+						}
 						
 						if (gagajf.isNull(ordChgOpt)) {
 							strVal += '<option value="">선택</option>';
@@ -389,7 +408,11 @@ var columnExchangeReqList = [
 						//}
 						
 						var strVal = "";
-						strVal += '<select class="ordCanChgQty ' + params.data.ordDtlNo + '" name="chgQty" ordDtlNo="' + params.data.ordDtlNo + '" onchange="fnChangeQty(this)">';
+						if (ordCanChgQty == 0) {
+							strVal += '<select class="ordCanChgQty ' + params.data.ordDtlNo + '" name="chgQty" ordDtlNo="' + params.data.ordDtlNo + '" onchange="fnChangeQty(this)" disabled="disabled">';
+						} else {
+							strVal += '<select class="ordCanChgQty ' + params.data.ordDtlNo + '" name="chgQty" ordDtlNo="' + params.data.ordDtlNo + '" onchange="fnChangeQty(this)">';
+						}
 						
 						for (i = 0; i <= ordCanChgQty; i++) {
 							if (i == params.data.chgQty) {
@@ -1305,6 +1328,11 @@ $(document).ready(function() {
 			$('#delvMemo').attr('readOnly', true);							// 8-14. 교환지정보 > 배송메모
 		}
 	}
+	
+	// 글자수 제한 byte 표기
+	cfnGetTextLength($('#chgMemo'), 1000, $('#chgMemoCount'));
+	cfnGetTextLength($('#chgerRtnMemo'), 1000, $('#chgerRtnMemoCount'));
+	cfnGetTextLength($('#delvMemo'), 1000, $('#delvMemoCount'));
 });
 </script>
 </html>

+ 2 - 2
src/main/webapp/WEB-INF/views/order/OrderListForm.html

@@ -481,11 +481,11 @@ var columnDefsOrderList = [
 	{headerName: "출고송장"		, field: "invoiceNo"	, width: 150, cellClass: 'text-center'},
 	{
 		headerName		: "출고일시"
-		, field			: "delvStDt"
+		, field			: "delvStdt"
 		, width			: 150
 		, cellClass		: 'text-center'
 		, valueGetter: function (params) { 
-			return gagaAgGrid.toDateTimeFormat(params.data.delvStDt); 
+			return gagaAgGrid.toDateTimeFormat(params.data.delvStdt);
 		}
 	}
 ];

+ 20 - 22
src/main/webapp/WEB-INF/views/order/OrderMemoRegistForm.html

@@ -47,22 +47,24 @@
 							<th>파일</th>
 							<td><div class="uFile">
 								<input id="imageFile" name="imageFile" type="file" class="uFileInput"/>
-								<label for="imageFile" class="uFileLabel">파일선택</label>
+								<label for="imageFile" class="uFileLabel" th:text="${#strings.isEmpty(orderMemo.sysFileNm) ? '파일선택' : orderMemo.sysFileNm}">파일선택</label>
 								<input type="hidden" name="orgFileNm"/>
 								<input type="hidden" name="sysFileNm"/>
 							</div>
 							</td>
 						</tr>
+						<tr id="imageTr">
 						<th:block th:if="${mode == 'U' and orderMemo.sysFileNm != null and orderMemo.sysFileNm != ''}" th:with="uploadImageUrl=${@environment.getProperty('upload.image.view')}">
-							<tr>
+<!--							<tr>-->
 								<th>이미지</th>
 								<td>
 									<a href="javascript:void(0);" onclick="fnPreImgView()">
 										<img id="memoImg" th:src="|${uploadImageUrl}/Order/${orderMemo.sysFileNm}|" th:onerror="'this.src=\''+@{${@environment.getProperty('domain.uximage')}+ '/image/no.gif'}+'\';'" width="300px"/>
 									</a>
 								</td>
-							</tr>
+<!--							</tr>-->
 						</th:block>
+						</tr>
 						<!-- <th:block th:text="|${uploadImageUrl}/Order/${orderMemo.sysFileNm}|"></th:block> -->
 					</tbody>
 				</table>
@@ -96,6 +98,18 @@ $('#orderMemoRequestFrm input[name=imageFile]').on('change', function() {
 		, function(result) {
 			$('#orderMemoRequestFrm input[name=orgFileNm]').val(result.oldFileName);
 			$('#orderMemoRequestFrm input[name=sysFileNm]').val(result.newFileName);
+
+			let uploadImageUrl = [[${@environment.getProperty('upload.image.view')}]];
+			let uxImageUrl = [[${@environment.getProperty('domain.uximage')}]];
+
+			let html = '								<th>이미지</th>\n';
+			html += '								<td>\n';
+			html += '									<a href="javascript:void(0);" onclick="fnPreImgView()">\n';
+			html += '										<img id="memoImg" src="' + uploadImageUrl + '/Order/' + result.newFileName + '" onerror="' + uxImageUrl + '/image/no.gif" width="300px"/>\n';
+			html += '									</a>\n';
+			html += '								</td>\n';
+			
+			$('#imageTr').html(html);
 		}
 		, 'image'
 	);
@@ -133,25 +147,6 @@ var fnPreImgView = function(){
 	cfnOpenImagePreViewPopup('preImgView', $('#memoImg').attr('src'));
 }
 
-// 이미지 로드 시 사이즈 변경
-$('#imagePreView').bind('load', function(){
-	var windowWidth = $(window).width() * 0.95;
-	var windowHeight = $(window).height() * 0.95;
-	
-	var width = $('#imagePreView').width();
-	var height = $('#imagePreView').height();
-	
-	if (width > windowWidth) {
-		$('#preImgView >.videoPopup').css('width', windowWidth);
-		$('#imagePreView').css('width', windowWidth);
-		
-	}
-	if (height > windowHeight) {
-		$('#preImgView >.videoPopup').css('height', windowHeight);
-		$('#imagePreView').css('height', windowHeight);
-	}
-});
-	
 $(document).ready(function() {
 	var userText = '';
 	
@@ -176,6 +171,9 @@ $(document).ready(function() {
 		$('#imageFileTr').css('display', 'none');
 		$('#orderMemoRequestFrm textarea[name=memo]').attr('readonly', true);
 	}
+	
+	// 글자수 제한 byte 표기
+	cfnGetTextLength($('#orderMemoRequestFrm textarea[name=memo]'), 4000, $('#dpLocAnsContent'));
 });
 
 /*]]>*/

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

@@ -250,6 +250,7 @@ var orderDelvRtnAddrInfo	= [[${orderDelvRtnAddrInfo}]];					// 회수지정보
 var orderChangeDetailList 	= [[${orderChangeDetailList}]];					// 취소/반품/교환요청 정보
 var chgStat					= [[${chgStat}]];								// 변경상태
 var recallExceptionInfo		= [[${recallExceptionInfo}]];					// 회수 예외 정보
+var rtnLocInfo				= [[${rtnLocInfo}]];							// 반송지주소정보
 var payGb 					= orderInfoList[0].payGb;						// 결제수단
 var payMeans 				= orderInfoList[0].payMeans;					// 결제방법
 var pgGb					= orderInfoList[0].pgGb;						// PG구분
@@ -258,12 +259,14 @@ var chgReason				= "";											// 변경사유코드
 var chgMemo					= "";											// 변경사유메모
 var wdGb					= "";											// 회수방법
 var ordChgGb				= "";											// 주문변경요쳥변경구분
+var canRequestCancelYn		= "";											// 반품철회가능여부
 
 // 변경요청정보
 if (ordChgSq > 0) {
 	chgReason				= orderChangeDetailList[0].chgReason;			// 변경사유코드
 	chgMemo					= orderChangeDetailList[0].chgMemo;				// 변경사유메모
 	wdGb					= orderChangeDetailList[0].wdGb;				// 회수방법
+	canRequestCancelYn		= orderChangeDetailList[0].canRequestCancelYn;	// 반품철회가능여부
 	ordChgGb				= [[${ordChgGb}]];								// 주문변경요쳥변경구분
 }
 
@@ -336,7 +339,11 @@ var columnCancelReqList = [
 			} else {
 				ordCanChgQty = ordQty - (cnclRtnQty + ordReqChgQty);
 
-				rtnStr += "<select class='ordCanChgQty' name='ordCanChgQty' ordDtlNo='"+params.data.ordDtlNo+"' onChange='fnCalculateRefundAmt(this);'>";
+				if (ordCanChgQty == 0) {
+					rtnStr += "<select class='ordCanChgQty' name='ordCanChgQty' ordDtlNo='" + params.data.ordDtlNo + "' onChange='fnCalculateRefundAmt(this);' disabled='disabled'>";
+				} else {
+					rtnStr += "<select class='ordCanChgQty' name='ordCanChgQty' ordDtlNo='" + params.data.ordDtlNo + "' onChange='fnCalculateRefundAmt(this);'>";
+				}
 				
 				for (i=0 ; i<=ordCanChgQty ; i++) {
 					if (i == params.data.ordCanChgQty) {
@@ -868,7 +875,7 @@ var gridOptionsDelvInfoList = gagaAgGrid.getGridOptions(columnDelvInfoList);
 
 // 3. 배송정보(환불정보)
 var columnDelvCdList = [
-	{headerName: "업체"			, field: "supplyCompNm"		, width: 100	, cellClass: 'text-center'},
+	{headerName: "업체"			, field: "supplyCompNm"		, width: 150	, cellClass: 'text-center'},
 	{headerName: "배송비코드"		, field: "delvFeeCd"		, width: 100	, cellClass: 'text-center'},
 	{
 		headerName		: "추가배송비"
@@ -1504,10 +1511,20 @@ $(document).ready(function() {
 		// 2021.07.13 회수예외정보가 있고 회수요청, 상품검수중 상태에서 철회 가능 처리
 		// 2021.07.22 택배사 회수 불가 시 회수요청상태에서 반품철회 처리
 		//if (chgStat != "G685_50" && chgStat != "G685_51" && (recallExceptionInfo == null || (chgStat != "G685_30" && chgStat != 'G685_31'))) {
-		if (chgStat != "G685_50" && chgStat != "G685_51" && chgStat != "G685_30" && (recallExceptionInfo == null || chgStat != 'G685_31')) {
+		if (chgStat != "G685_50" && chgStat != "G685_51") {
 			$("#rtnReqCancelBtn").css("display", "none");
 		}
 		
+		// 회수요청 상태에서 택배사 회수 불가 or 회수예외정보 존재 시 반품철회 가능
+		if (chgStat == 'G685_30' && (recallExceptionInfo != null || canRequestCancelYn == 'Y')) {
+			$("#rtnReqCancelBtn").css("display", "");
+		}
+		
+		// 상품검수중 상태에서 회수예외정보 존재 시 반품철회 가능
+		if (chgStat == 'G685_31' && recallExceptionInfo != null) {
+			$("#rtnReqCancelBtn").css("display", "");
+		}
+		
 		// 반품TO교환 버튼
 		if ((chgStat != "G685_50" && chgStat != "G685_51" && chgStat != "G685_30") || pgGb == 'NAVER_ORDER') {
 			$("#rtnToExcBtn").css("display", "none");
@@ -1558,6 +1575,17 @@ $(document).ready(function() {
 	// 2021.05.13 높이자동조절
 	var cancelRequestTargetHeight = 50 + (40 * cancelRequestTargetCnt);
 	$("#gridOrderCancelRequestList").css("height" , cancelRequestTargetHeight+"px");
+	
+	// 글자수 제한 byte 표기
+	cfnGetTextLength($('#chgMemo'), 1000, $('#chgMemoCount'));
+	cfnGetTextLength($('#chgerRtnMemo'), 1000, $('#chgerRtnMemoCount'));
+
+	if (ordChgGb == 'G681_50') {
+		$('input:radio[name="wdGb"]:radio[value="D"]').prop('checked', true);
+		$('#chgerAddress').css('display', 'none');
+		$('input:radio[name=wdGb]').attr('disabled', true);
+		$('#delvCdList').css('display', 'none');
+	}
 });
 </script>
 </html>

+ 19 - 0
src/main/webapp/ux/js/admin.popup.js

@@ -200,6 +200,25 @@ var cfnOpenImagePreViewPopup = function(id,imgUrl) {
 	var popW = parseInt( $thisId.attr("data-width") );
 	var popH = parseInt( $thisId.attr("data-height") );
 	$("#imagePreView").attr("src", imgUrl);
+
+	$('#imagePreView').load(function() {
+		var windowWidth = $(window).width() * 0.95;
+		var windowHeight = $(window).height() * 0.95;
+
+		var width = $('#imagePreView').width();
+		var height = $('#imagePreView').height();
+
+		if (width > windowWidth) {
+			$('#preImgView >.videoPopup').css('width', windowWidth);
+			$('#imagePreView').css('width', windowWidth);
+		}
+
+		if (height > windowHeight) {
+			$('#preImgView >.videoPopup').css('height', windowHeight);
+			$('#imagePreView').css('height', windowHeight);
+		}
+	});
+
 	//$($thisId).css({display:"block"});
 	$("#"+id).css({display:"block"});
 }