tsit05 4 лет назад
Родитель
Сommit
ebe8ee741e

Разница между файлами не показана из-за своего большого размера
+ 0 - 1291
src/main/java/com/style24/admin/biz/service/TsaWithdrawService.java


+ 4 - 1
src/main/java/com/style24/persistence/domain/Withdraw.java

@@ -84,7 +84,10 @@ public class Withdraw extends TscBaseDomain {
 	private String accountNo;
 	private String bankCd;	
 	private String invoiceNo;
-
+	private String delvFeeCd;
+	private String delvFeeCdGrp;
+	private String refundConfirm;
+	
 	private Integer ordNo;
 	private Integer ordDtlNo; 
 	private Integer ordChgSq;

+ 4 - 0
src/main/java/com/style24/persistence/domain/WithdrawExc.java

@@ -63,6 +63,9 @@ public class WithdrawExc extends TscBaseDomain {
 	private String ordDtlNoList;
 	private String banReq;
 	private String chgReq;
+	private String ordPhnno;
+	private String payGb;
+	
 	
 	
 	private int chargeAmount;          // 요금총액
@@ -104,6 +107,7 @@ public class WithdrawExc extends TscBaseDomain {
 	private Integer ordDtlNo;
 	private Integer custNo;
 	private Integer userNo;
+	private Integer orderExceptionNo;
 	
 	
 	// 검색

+ 92 - 8
src/main/java/com/style24/persistence/mybatis/shop/TsaWithdraw.xml

@@ -73,6 +73,7 @@
 					, DATE_FORMAT(B.REG_DT, '%Y-%m-%d') AS WD_REG_DT        -- 회수등록일
 					, DATE_FORMAT(D.REG_DT, '%Y-%m-%d') AS RC_REG_DT        -- 반품신청일
 					, I.CUST_NO AS USER_NO 
+					, '' AS REFUND_CONFIRM
 				  FROM TB_WITHDRAW A
 				  JOIN TB_WITHDRAW_DETAIL B ON A.WD_INVOICE_NO  = B.WD_INVOICE_NO AND A.ORD_CHG_SQ = B.ORD_CHG_SQ 
 				  JOIN TB_ORDER_CHANGE_DETAIL C ON B.ORD_CHG_SQ = C.ORD_CHG_SQ AND B.ORD_DTL_NO = C.ORD_DTL_NO AND C.DEL_YN ='N'
@@ -137,7 +138,7 @@
 					, B.ORDER_DTL_NO
 				  FROM TB_ORDER_RECALL_EXCEPTION A 
 				  JOIN TB_ORDER_RECALL_EXCEPTION_ITEM B ON A.RECALL_EXCEPTION_NO = B.RECALL_EXCEPTION_NO
-				  WHERE B.REASON_CD NOT IN('확정 전 품절(재고없음)','확정 전 불량')
+				  WHERE B.REASON_CODE NOT IN('08','10')
 					<if test='customerName != null and customerName != ""'>
 					AND   A.CUSTOMER_NAME = #{customerName}
 					</if>
@@ -189,7 +190,7 @@
 		    SELECT A.*, ROW_NUMBER() OVER(ORDER BY  A.ORDER_NO, A.RECALL_EXCEPTION_NO, A.RECALL_EXCEPTION_ITEM_NO)  RNUM 
 		          , CASE WHEN A.MALL_GB = 'G011_20' THEN (SELECT MAX(BB.EXTMALL_ID) FROM TB_ORDER_DETAIL BB WHERE BB.ORD_NO = A.ORDER_NO) ELSE 'APISHOP_0054' END AS EXTMALL_ID
 		    FROM (   
-				SELECT A.* , CD.CHG_STAT, OC.ORD_CHG_SQ , OC.WD_GB , OC.CHG_REASON, OC.CHG_GB 
+				SELECT A.*
 				  FROM (
 						SELECT 
 							  A.RECALL_STAT   -- 반품대기처리상태
@@ -220,11 +221,90 @@
 							, B.REASON_CODE
 							, O.MALL_GB
 							, A.COD_FEE
+							, O.ORD_PHNNO 
+							, O.CUST_NO 
+							, CASE WHEN A.PAY_GB = 'NAVER' THEN 'Y' ELSE 'N' END AS PAY_GB  
+							, A.ORDER_EXCEPTION_NO 
+							, ''   AS CHG_STAT
+							, NULL AS ORD_CHG_SQ 
+							, ''   AS WD_GB 
+							, NULL AS CHG_REASON
+							, NULL AS CHG_GB 
 						  FROM TB_ORDER_RECALL_EXCEPTION A 
 						  JOIN TB_ORDER_RECALL_EXCEPTION_ITEM B ON A.RECALL_EXCEPTION_NO = B.RECALL_EXCEPTION_NO
 						  LEFT JOIN TB_ORDER O ON O.ORD_NO = A.ORDER_NO 
 						  LEFT JOIN TB_OPTION C ON C.OPT_CD = B.SKU_CODE
-						  WHERE B.REASON_CODE NOT IN('08','10')
+						  WHERE B.REASON_CODE IN('09','11')
+							<if test='customerName != null and customerName != ""'>
+							AND   A.CUSTOMER_NAME = #{customerName}
+							</if>
+							<if test='orderNo != null and orderNo != ""'>
+							AND   A.ORDER_NO  = #{orderNo}
+							</if>
+							<if test='recallStat != null and recallStat != ""'>
+							AND   A.RECALL_STAT  = #{recallStat}
+							</if>
+							<if test='stDate != null and stDate != ""'>
+							AND   A.DATE_CREATED <![CDATA[>= ]]> STR_TO_DATE(REPLACE(#{stDate},'-',''), '%Y%m%d%H%i%s') 
+							</if>
+							<if test='edDate != null and edDate != ""'>
+							AND   A.DATE_CREATED <![CDATA[<]]> DATE_ADD(STR_TO_DATE(REPLACE(#{edDate},'-','')+ 1, '%Y%m%d%H%i%s'), INTERVAL 1 DAY)
+							</if>
+							
+							<if test='reasonCode != null and reasonCode != ""'>
+							AND B.REASON_CODE = #{reasonCode}
+							</if>
+							<if test='userNameCreated != null and userNameCreated != ""'>
+							AND A.USER_NAME_CREATED = #{userNameCreated}
+							</if>
+							
+						UNION ALL
+						
+						SELECT 
+							  A.RECALL_STAT   -- 반품대기처리상태
+							, A.STATUS_CD     -- 처리상태
+							, A.DATE_CREATED  -- 등록일자
+							, A.CUSTOMER_NAME -- 고객명
+							, A.ORDER_NO      -- 주문번호
+							, B.ORDER_DTL_NO  -- 주문상세번호 
+							, A.LOGISTICS_NAME -- 택배사명
+							, A.INVOICE_NO     -- 반송장번호
+							, A.CHARGE_TYPE    -- 요금구분
+							, A.CHARGE_AMOUNT  -- 배송비
+							, A.USER_NAME_CREATED -- 작업자
+							, B.REASON_CD -- 예외사유
+							, IFNULL((SELECT GROUP_CONCAT(ADMIN_MEMO ORDER BY RECALL_EXCEPTION_MEMO_NO ) 
+							     FROM TB_ORDER_RECALL_EXCEPTION_MEMO C WHERE C.RECALL_EXCEPTION_NO = A.RECALL_EXCEPTION_NO  AND ADMIN_MEMO !='.'),'-') AS ADMIN_MEMO -- WMS메시지
+							, IFNULL((SELECT BRAND_KNM FROM TB_BRAND BR JOIN TB_GOODS GD ON BR.BRAND_CD = GD.BRAND_CD WHERE GD.GOODS_CD = C.GOODS_CD),'') AS BRAND_NM           -- 브랜드명
+							, B.PRODUCT_CODE   -- 상품코드
+							, B.SKU_CODE       -- SKU코드
+							, B.PRODUCT_NAME   -- 상품명
+							, B.SKU_VALUE      -- 속성
+							, C.SKU_MODEL_NO   -- 원코드
+							, B.EXCEPTION_QTY  -- 수량 
+							, A.RECALL_EXCEPTION_NO -- 반품예외처리번호 
+							, IFNULL(C.GOODS_CD,'') AS GOODS_CD       -- 상품코드 
+							, B.RECALL_EXCEPTION_ITEM_NO 
+							, B.QTY
+							, B.REASON_CODE
+							, O.MALL_GB
+							, A.COD_FEE
+							, O.ORD_PHNNO 
+							, O.CUST_NO 
+							, CASE WHEN A.PAY_GB = 'NAVER' THEN 'Y' ELSE 'N' END AS PAY_GB  
+							, A.ORDER_EXCEPTION_NO 
+							, CD.CHG_STAT
+							, OC.ORD_CHG_SQ 
+							, OC.WD_GB 
+							, OC.CHG_REASON
+							, OC.CHG_GB 
+						  FROM TB_ORDER_RECALL_EXCEPTION A 
+						  JOIN TB_ORDER_RECALL_EXCEPTION_ITEM B ON A.RECALL_EXCEPTION_NO = B.RECALL_EXCEPTION_NO
+						  LEFT JOIN TB_ORDER O ON O.ORD_NO = A.ORDER_NO 
+						  LEFT JOIN TB_OPTION C ON C.OPT_CD = B.SKU_CODE
+						  LEFT OUTER JOIN TB_ORDER_CHANGE_DETAIL  CD ON B.ORDER_DTL_NO = CD.ORD_DTL_NO AND CD.DEL_YN ='N' AND CD.CHG_STAT = 'G685_31'
+						  LEFT OUTER JOIN TB_ORDER_CHANGE         OC ON CD.ORD_CHG_SQ = OC.ORD_CHG_SQ 						  
+						  WHERE B.REASON_CODE IN('00','01','02','03','04','05','06','15')
 							<if test='customerName != null and customerName != ""'>
 							AND   A.CUSTOMER_NAME = #{customerName}
 							</if>
@@ -248,14 +328,12 @@
 							AND A.USER_NAME_CREATED = #{userNameCreated}
 							</if>
 				) A
-				LEFT OUTER JOIN TB_ORDER_CHANGE_DETAIL  CD ON A.ORDER_DTL_NO = CD.ORD_DTL_NO AND CD.DEL_YN ='N' AND CD.CHG_STAT = 'G685_31'
-				LEFT OUTER JOIN TB_ORDER_CHANGE         OC ON CD.ORD_CHG_SQ = OC.ORD_CHG_SQ 
 				WHERE 1=1
 				<if test='chgGb != null and chgGb != "" and chgGb !="G680"'>
-				AND OC.CHG_GB  = #{chgGb}
+				AND A.CHG_GB  = #{chgGb}
 				</if>
 				<if test='chgGb =="G680"'>
-				AND OC.CHG_GB  IS NULL
+				AND A.CHG_GB  IS NULL
 				</if>
 				ORDER BY A.ORDER_NO, A.RECALL_EXCEPTION_NO, A.RECALL_EXCEPTION_ITEM_NO
 	<include refid="getListPagingCondition_sql"/> 
@@ -350,6 +428,12 @@
 						     , O.ORD_PHNNO                              -- 주문자휴대전화번호
 						     , O.ORD_TELNO                              -- 주문자전화번호
 						     , O.ORD_EMAIL                              -- 주문자이메일
+						     , OD.DELV_FEE_CD
+						     , O.CUST_NO
+						     , CASE WHEN G.SELF_GOODS_YN = 'Y'
+						            THEN 'WMS'
+						            ELSE OD.DELV_FEE_CD
+						            END  DELV_FEE_CD_GRP
 						FROM   TB_ORDER_CHANGE OC          
 						JOIN   TB_ORDER_CHANGE_DETAIL OCD ON OC.ORD_CHG_SQ  = OCD.ORD_CHG_SQ 
 						JOIN   TB_ORDER_DETAIL OD         ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
@@ -523,7 +607,7 @@
 				, E.ORD_NM 	
 				, C.DELV_ADDR_SQ
 				, F.WD_INVOICE_NO 
-				, (SELECT R.REFUND_AMT FROM TB_REFUND R WHERE R.ORD_NO = E.ORD_NO) AS REFUND_AMT
+				, (SELECT R.REFUND_AMT FROM TB_REFUND R WHERE R.ORD_NO = E.ORD_NO AND R.ORD_CHG_SQ = A.ORD_CHG_SQ ) AS REFUND_AMT
 		  FROM TB_ORDER_CHANGE A
 		  JOIN TB_ORDER_CHANGE_DETAIL B ON B.ORD_CHG_SQ = A.ORD_CHG_SQ 
 		  JOIN TB_ORDER_DETAIL C ON C.ORD_DTL_NO = B.ORD_DTL_NO 

+ 3 - 1
src/main/webapp/WEB-INF/views/customer/LmsPopupForm.html

@@ -127,8 +127,10 @@
 
 	$(document).ready(function() {
 		fnInitDataSet();
-
+	
 		cfnGetTextLength("#lmsForm textarea[name=content]", 2000, $('#lmsForm span[name=count]'));
+	
+		$('#popupLmsForm .modelessPopup').draggable({'cancel':'.panelContent'});
 	});
 	/*]]>*/
 </script>

+ 9 - 8
src/main/webapp/WEB-INF/views/withdraw/RefundRegisterListForm.html

@@ -141,7 +141,8 @@
 		{headerName: "회수구분", 		field: "wdGb",		width: 80,  cellClass: 'text-center'},
 		{headerName: "주문번호", 		field: "ordNo",		width: 100,  cellClass: 'text-center'},
 		{headerName: "주문상세번호", 	field: "ordDtlNo",	width: 100,  cellClass: 'text-center'},
-		{headerName: "반품요청일련번호", field: "ordChgSq",	width: 120,  cellClass: 'text-center',
+		{headerName: "주문변경번호", 	field: "ordChgSq",	width: 100,  cellClass: 'text-center'},
+		{headerName: "환불컨펌", field: "refundConfirm",	width: 120,  cellClass: 'text-center',
 			cellRenderer: function(params) {
 				if (params.data.rfndStat == '환불완료') {
 					return "<a href=\"javascript:void(0);\" class=\"btn btn-dark btn-sm\">환불완료</a>";
@@ -150,21 +151,21 @@
 				}
 			}
 		},
-		{headerName: "회수송장번호", 	field: "wdInvoiceNo", 	width: 100, cellClass: 'text-center'},
+		{headerName: "회수송장번호", field: "wdInvoiceNo", 	width: 100, cellClass: 'text-center'},
 		{headerName: "보내는사람", 	field: "senderNm", 		width: 100, cellClass: 'text-center'},
 		{headerName: "보낸연락처", 	field: "senderPhnno", 	width: 120, cellClass: 'text-center'},
-		{headerName: "주문자명", 		field: "ordNm",			width: 100, cellClass: 'text-center'},
-		{headerName: "주문자연락처", 	field: "ordPhnno",		width: 120, cellClass: 'text-center'},
+		{headerName: "주문자명", 	field: "ordNm",			width: 100, cellClass: 'text-center'},
+		{headerName: "주문자연락처", field: "ordPhnno",		width: 120, cellClass: 'text-center'},
 		{headerName: "도착일", 		field: "arrivalDt", 	width: 100,  cellClass: 'text-center'},
 		{headerName: "환불확정일", 	field: "completeDt",	width: 100,  cellClass: 'text-center'},
 		{headerName: "WMS회수메모", 	field: "wdMemo", 		width: 200,  cellClass: 'text-left'},
 		{headerName: "요청사유",		field: "chgReasonNm", 	width: 150,  cellClass: 'text-center'},
 		{headerName: "클레임메모", 	field: "chgMemo", 		width: 200,  cellClass: 'text-left'},
-		{headerName: "상품코드", 		field: "goodsCd", 		width: 150,  cellClass: 'text-center'},
+		{headerName: "상품코드", 	field: "goodsCd", 		width: 150,  cellClass: 'text-center'},
 		{headerName: "옵션1", 		field: "optCd1", 		width: 80,  cellClass: 'text-center'},
 		{headerName: "옵션2", 		field: "optCd2", 		width: 80,  cellClass: 'text-center'},
-		{headerName: "반품수량", 		field: "chgQty", 		width: 80,  cellClass: 'text-center'},
-		{headerName: "회수수량", 		field: "wdQty", 		width: 80,  cellClass: 'text-center'},
+		{headerName: "반품수량", 	field: "chgQty", 		width: 80,  cellClass: 'text-center'},
+		{headerName: "회수수량", 	field: "wdQty", 		width: 80,  cellClass: 'text-center'},
 		{headerName: "회수등록일", 	field: "wdRegDt", 		width: 80,  cellClass: 'text-center'},
 		{headerName: "반품신청일", 	field: "rcRegDt", 		width: 80,  cellClass: 'text-center'},
 		{headerName: "반품완료일", 	field: "wdEddt", 		width: 80,  cellClass: 'text-center'}
@@ -237,7 +238,7 @@
 	*  cell Click
 	**************************************************************************/	
 	withDrawGridOptions.onCellClicked = function(event) {
-		if (event.colDef.field != 'ordChgSq') return;
+		if (event.colDef.field != 'refundConfirm') return;
 		// 회수등록 팝업
 		if (event.data.ordChgSq > 0 && !gagajf.isNull(event.data.ordChgSq) && event.data.wdQty > 0) {
 			// 회수 상세 화면

+ 76 - 10
src/main/webapp/WEB-INF/views/withdraw/WithdrawDirectiveListForm.html

@@ -130,8 +130,8 @@
 					검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>&nbsp;
 					쪽번호 <span id="pgNo">0</span>/ <strong id="endPgNo">0</strong>&nbsp;&nbsp;
 					<select id="pageSize" name="pageSize">
-						<option value="10" selected="selected">10개씩 보기</option>
-						<option value="20">20개씩 보기</option>
+						<option value="10" >10개씩 보기</option>
+						<option value="20" selected="selected">20개씩 보기</option>
 						<option value="50">50개씩 보기</option>
 						<option value="100">100개씩 보기</option>
 						<option value="500">500개씩 보기</option>
@@ -157,7 +157,32 @@
 	// 사이트목록
 	var currOrdNo =0;
 	var columnDefs = [
-		{headerName: "주문변경번호", 	field: "ordChgSq", 		width: 100, cellClass: "text-center"},
+		{headerName: "주문변경번호", 	field: "ordChgSq", 		width: 100, cellClass: "text-center",
+			cellRenderer	: function(params) {
+				var rtnStr = "";
+				
+				var paramData 	= params.data.ordNo;
+				paramData 		+= '@' + params.data.ordDtlNo;
+				paramData 		+= '@' + params.data.delvFeeCd;
+				paramData 		+= '@' + params.data.delvFeeCdGrp;
+				 
+				// 반품접수, 반품대기, 회수요청, 상품검수중, 결제대기, 반품진행중
+				if (params.data.chgStat == 'G685_50' || params.data.chgStat == 'G685_51' 
+						|| params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_31' || params.data.chgStat == 'G685_32' || params.data.chgStat == 'G685_33') {
+					rtnStr = '<a href="javascript:void(0);" onclick="fnReturnRequest(\'' + paramData + '\',\'' + params.value + '\');">' + params.value + '</a>';
+				}
+				// 교환접수, 교환대기, 회수요청, 상품검수중, 결제대기, 교환진행중
+				else if (params.data.chgStat == 'G685_20' || params.data.chgStat == 'G685_21' 
+						|| params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_31' || params.data.chgStat == 'G685_32' || params.data.chgStat == 'G685_34') {
+					rtnStr = '<a href="javascript:void(0);" onclick="fnExchangeRequest(\'' + paramData + '\',\'' + params.value + '\');">' + params.value + '</a>';
+				} 
+				else {
+					rtnStr = params.value;
+				}
+				return  rtnStr;
+			}			
+		
+		},
 		{headerName: "주문번호", 		field: "ordNo", 		width: 100, cellClass: "text-center",
 			cellRenderer: function(params) { 
 				return gagajf.isNull(params.value) ? '' : "<a href=\"javascript:void(0);\" onclick=\"fnOrderDetailPopup('" + params.data.ordNo + "');\">" + params.data.ordNo + "</a>";
@@ -193,9 +218,9 @@
 		{headerName: "배송종료일시", 	field: "wdEddt", 		width: 120, cellClass: "text-center"},
 		{headerName: "수취인명", 		field: "recipNm", 		width: 120, cellClass: "text-center"},
 		
-		{headerName: "LMS", 			field: "chgerPhnno", 	width: 120, cellClass: "text-center",
+		{headerName: "LMS", 			field: "chgerPhnno", 	width: 80, cellClass: "text-center",
 			cellRenderer: function(params) {
-				return '<button type="button" class="btn btn-base btn-sm" onclick="fnLms(\'' + params.data.chgGb + '\',\'' + params.data.ordDtlNo + '\',\''+params.data.ordChgSq+'\',\''+params.data.ordNo+'\');">&nbsp;LMS&nbsp;</button>';
+				return '<button type="button" class="btn btn-base btn-sm" onclick="fnLms(\'' + params.data.chgerPhnno + '\',\'' + params.data.custNo + '\');">&nbsp;LMS&nbsp;</button>';
 			}			
 		},
 		
@@ -322,16 +347,57 @@
 	/*************************************************************************
 	*  LMS
 	**************************************************************************/	
-	var fnLms = function(){
+	var fnLms = function(chgerPhnno, custNo){
 		let param = {};
-		param.elementCellPhnno = '010-4016-1558'; //'#custInfoForm input[name=cellPhnno]';
-		param.elementCustNo =    '100025';// '#custInfoForm input[name=custNo]';
-		param.elementMaskingCellPhnno = ''; //  '#custInfoForm input[name=maskingCellPhnno]';
+		param.elementCellPhnno = chgerPhnno; //'010-4016-1558'; //'#custInfoForm input[name=cellPhnno]';
+		param.elementCustNo =    custNo; //'100025';// '#custInfoForm input[name=custNo]';
 		param.pageGb = 'delv';
 		cfnOpenLmsPopup(param);
 	}
 
-	
+	/*************************************************************************
+	*  반품요청
+	**************************************************************************/		
+	var fnReturnRequest = function (paramData, ordChgSq) {
+		
+		// 취소요청 구분 (orChgSq null 이면 취소요청화면 있으면 취소요청정보화면)
+		if (ordChgSq == null) {
+			ordChgSq = 0;
+		}
+		
+		var param 		= "";
+		var paramArr 	= paramData.split("@");
+		param += "&ordNo=" 			+ paramArr[0];
+		param += "&ordDtlNo=" 		+ paramArr[1];
+		param += "&delvFeeCd="		+ paramArr[2];
+		param += "&delvFeeCdGrp="	+ paramArr[3];
+		
+		param += "&ordChgSq=" 		+ ordChgSq;
+		var actionUrl = "/orderChange/rtn/req/form?" + param;
+		cfnOpenModalPopup(actionUrl, 'popupReturnRequestForm');
+	};
+
+	/*************************************************************************
+	*  교환요청
+	**************************************************************************/			
+	var fnExchangeRequest = function (paramData, ordChgSq) {
+		console.log(paramData);
+		// 취소요청 구분 (orChgSq null 이면 취소요청화면 있으면 취소요청정보화면)
+		if (ordChgSq == null) {
+			ordChgSq = 0;
+		}
+		
+		var paramArr 	= paramData.split("@");
+		var param 		= "";
+		param += "&ordNo=" 			+ paramArr[0];
+		param += "&ordDtlNo=" 		+ paramArr[1];
+		param += "&delvFeeCd="		+ paramArr[2];
+		param += "&delvFeeCdGrp="	+ paramArr[3];
+		param += "&ordChgSq=" 		+ ordChgSq;
+		
+		var actionUrl = "/orderChange/exchange/request/form?" + param;
+		cfnOpenModalPopup(actionUrl, 'popupExchangeRequestForm');
+	};
 	
 	//엑셀다운로드
 	$('#btnExcel').on('click', function() {

+ 121 - 25
src/main/webapp/WEB-INF/views/withdraw/WithdrawExceptionListForm.html

@@ -115,8 +115,7 @@
 					검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>&nbsp;
 					쪽번호 <span id="pgNo">0</span>/ <strong id="endPgNo">0</strong>&nbsp;&nbsp;
 					<select id="pageSize" name="pageSize">
-						<option value="20" selected="selected">10개씩 보기</option>
-						<option value="20">20개씩 보기</option>
+						<option value="20" selected="selected">20개씩 보기</option>
 						<option value="50">50개씩 보기</option>
 						<option value="100">100개씩 보기</option>
 						<option value="500">500개씩 보기</option>
@@ -145,6 +144,10 @@
 	var uploadGoodsUrl = [[${@environment.getProperty('upload.goods.view')}]]; 
 	var roleCd = [[${sessionInfo.roleCd}]]; 
 
+	$("#reasonCode option[value='07']").remove();
+	$("#reasonCode option[value='08']").remove();
+	$("#reasonCode option[value='10']").remove();
+	
 	var columnDefs = [
 		{headerName: "반품예외처리번호",		field: "recallExceptionNo", width: 50,	cellClass: 'text-center', hide: true},
 		//{headerName: "No.",				field: "rnum",				width: 50,	cellClass: 'text-center'},
@@ -179,12 +182,50 @@
 			}
 			}
 		},
+		
+		{headerName: "주문변경번호",			field: "ordChgSq",			width: 100,	cellClass: 'text-center', rowSpan: params => params.data.rowspanRank === 1 ? params.data.rowspanCnt : 1,  
+			    cellClassRules: {
+			        'cell-span': "data.rowspanRank == 1"
+			      },
+				
+				cellRenderer	: function(params) {
+					var rtnStr = "";
+					
+					var paramData 	= params.data.orderNo;
+					paramData 		+= '@' + params.data.orderDtlNo;
+					paramData 		+= '@' + params.data.delvFeeCd;
+					paramData 		+= '@' + 'WMS';
+					 
+					// 반품접수, 반품대기, 회수요청, 상품검수중, 결제대기, 반품진행중
+					if (params.data.chgStat == 'G685_50' || params.data.chgStat == 'G685_51' 
+							|| params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_31' || params.data.chgStat == 'G685_32' || params.data.chgStat == 'G685_33') {
+						rtnStr = '<a href="javascript:void(0);" onclick="fnReturnRequest(\'' + paramData + '\',\'' + params.value + '\');">' + params.value + '</a>';
+					}
+					// 교환접수, 교환대기, 회수요청, 상품검수중, 결제대기, 교환진행중
+					else if (params.data.chgStat == 'G685_20' || params.data.chgStat == 'G685_21' 
+							|| params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_31' || params.data.chgStat == 'G685_32' || params.data.chgStat == 'G685_34') {
+						rtnStr = '<a href="javascript:void(0);" onclick="fnExchangeRequest(\'' + paramData + '\',\'' + params.value + '\');">' + params.value + '</a>';
+					} 
+					else {
+						rtnStr = params.value;
+					}
+					return  rtnStr;
+				}		
+		},
+			
 		{headerName: "주문자명",			field: "customerName",		width: 100,	cellClass: 'text-center'},
+		{headerName: "휴대번호",			field: "ordPhnno",			width: 100,	cellClass: 'text-center'},
+		{headerName: "LMS", 			field: "ordPhnno",			width: 80, cellClass: "text-center",
+			cellRenderer: function(params) {
+				return '<button type="button" class="btn btn-base btn-sm" onclick="fnLms(\'' + params.data.ordPhnno + '\',\'' + params.data.custNo + '\');">&nbsp;LMS&nbsp;</button>';
+			}			
+		},
 		{headerName: "예외사유",			field: "reasonCd",			width: 150,	cellClass: 'text-center'},
-		{headerName: "WMS메시지",			field: "adminMemo",			width: 300,	cellClass: 'text-left'},
+		{headerName: "WMS메시지",		field: "adminMemo",			width: 300,	cellClass: 'text-left'},
 		{headerName: "회수요청구분",		field: "chgGbNm",			width: 90,	cellClass: 'text-left'},
 		{headerName: "반품교환사유",		field: "chgReasonNm",		width: 150,	cellClass: 'text-left'},
-		{headerName: "반품/사유변경",		field: "chgReason",			width: 120,	cellClass: 'text-center',rowSpan: params => params.data.rowspanRank === 1 ? params.data.rowspanCnt : 1,  
+		{headerName: "네이버 주문형",		field: "payGb",				width: 100,	cellClass: 'text-center'},
+		{headerName: "반품/사유변경",	field: "chgReason",			width: 120,	cellClass: 'text-center',rowSpan: params => params.data.rowspanRank === 1 ? params.data.rowspanCnt : 1,  
 			    cellClassRules: {
 			        'cell-span': "data.rowspanRank == 1"
 			      },
@@ -364,8 +405,29 @@
 		} else if(event.colDef.field == 'chgReason'){
 			if(event.data.recallStat == "P" && event.data.rowspanRank == "1" && event.data.chgStat != null){
 				
-				var actionUrl = "/withdraw/exception/change/form?ordChgSq=" + event.data.ordChgSq + '&chgGb=' + event.data.chgGb;
-				cfnOpenModalPopup(actionUrl, 'popupWithdrawChangeForm');
+				if (event.data.reasonCode == '02') { // 미착 
+					param += "&ordNo=" 			+ event.data.orderNo;
+					param += "&ordDtlNo=" 		+ event.data.orderDtlNo;
+					param += "&ordChgSq=" 		+ event.data.ordChgSq;
+					param += "&delvFeeCd="		+ event.data.delvFeeCd;
+					param += "&delvFeeCdGrp="	+ "WMS";
+					
+					if (event.data.chgGb == 'G680_30') { // 반품요청
+						param += "&ordChgGb=G681_30";    // 반품TO반품
+						actionUrl = "/orderChange/rtn/req/form?" + param;
+
+						cfnOpenModalPopup(actionUrl, 'popupReturnRequestForm');
+					} else if (event.data.chgGb == 'G680_40') { // 교환요청
+						param += "&ordChgGb=G681_20";           // 교환TO교환
+						actionUrl = "/orderChange/exchange/request/form?" + param;
+						
+						cfnOpenModalPopup(actionUrl, 'popupExchangeRequestForm');
+					}
+				} else {
+					actionUrl = "/withdraw/exception/change/form?ordChgSq=" + event.data.ordChgSq + '&chgGb=' + event.data.chgGb;
+					cfnOpenModalPopup(actionUrl, 'popupWithdrawChangeForm');
+				}
+				
 			} else if(event.data.recallStat == "P" && event.data.rowspanRank == "1" && event.data.chgStat == null){
 				refreshFlag  = "ban";
 				var ordChgSq = 0;
@@ -397,29 +459,63 @@
 			}
 		}
 	}
-	/*
-	var fnComplete = function(recallExceptionNo,csAddFee,csMemo) {
-		var params = {};
-		params.recallExceptionNo = recallExceptionNo;
-		params.csAddFee = csAddFee;
-		params.csMemo = csMemo;
+
+	
+	/*************************************************************************
+	*  LMS
+	**************************************************************************/	
+	var fnLms = function(chgerPhnno, custNo){
+		let param = {};
+		param.elementCellPhnno = chgerPhnno; //'010-4016-1558'; //'#custInfoForm input[name=cellPhnno]';
+		param.elementCustNo =    custNo; //'100025';// '#custInfoForm input[name=custNo]';
+		param.pageGb = 'delv';
+		cfnOpenLmsPopup(param);
+	};
+	
+	/*************************************************************************
+	*  반품요청
+	**************************************************************************/		
+	var fnReturnRequest = function (paramData, ordChgSq) {
 		
+		// 취소요청 구분 (orChgSq null 이면 취소요청화면 있으면 취소요청정보화면)
+		if (ordChgSq == null) {
+			ordChgSq = 0;
+		}
 		
-		alert("recallExceptionNo:"+recallExceptionNo);
-		alert("csAddFee: "+csAddFee);
-		alert("csMemo: "+csMemo);
+		var param 		= "";
+		var paramArr 	= paramData.split("@");
+		param += "&ordNo=" 			+ paramArr[0];
+		param += "&ordDtlNo=" 		+ paramArr[1];
+		param += "&delvFeeCd="		+ paramArr[2];
+		param += "&delvFeeCdGrp="	+ paramArr[3];
 		
-		return;
-		mcxDialog.confirm('처리완료 하시겠습니까?', {
-			cancelBtnText: "취소",
-			sureBtnText: "확인",
-			sureBtnClick: function(){
-				var jsonData = JSON.stringify(params);
-				gagajf.ajaxJsonSubmit('/withdraw/exception/complete', jsonData, fnCompleteCallback);
-			}
-		});
+		param += "&ordChgSq=" 		+ ordChgSq;
+		var actionUrl = "/orderChange/rtn/req/form?" + param;
+		cfnOpenModalPopup(actionUrl, 'popupReturnRequestForm');
 	};
-	*/
+
+	/*************************************************************************
+	*  교환요청
+	**************************************************************************/			
+	var fnExchangeRequest = function (paramData, ordChgSq) {
+		console.log(paramData);
+		// 취소요청 구분 (orChgSq null 이면 취소요청화면 있으면 취소요청정보화면)
+		if (ordChgSq == null) {
+			ordChgSq = 0;
+		}
+		
+		var paramArr 	= paramData.split("@");
+		var param 		= "";
+		param += "&ordNo=" 			+ paramArr[0];
+		param += "&ordDtlNo=" 		+ paramArr[1];
+		param += "&delvFeeCd="		+ paramArr[2];
+		param += "&delvFeeCdGrp="	+ paramArr[3];
+		param += "&ordChgSq=" 		+ ordChgSq;
+		
+		var actionUrl = "/orderChange/exchange/request/form?" + param;
+		cfnOpenModalPopup(actionUrl, 'popupExchangeRequestForm');
+	};	
+	
 	/*************************************************************************
 	*  회수예외 처리완료 콜백
 	**************************************************************************/		

+ 9 - 32
src/main/webapp/WEB-INF/views/withdraw/WmsWithdrawListForm.html

@@ -161,8 +161,8 @@
 			cellRenderer: function (params) { return params.value == '10' ? '일반' : '교환'; }	
 		},
 		{headerName: "수취인",			field: "receiver",			width: 100,	cellClass: 'text-center'},
-		{headerName: "수취인전화번호",		field: "receivertelnum",	width: 120,	cellClass: 'text-center'},
-		{headerName: "수취인휴대폰번호",		field: "receivercellnum",	width: 120,	cellClass: 'text-center'},
+		{headerName: "수취인전화번호",	field: "receivertelnum",	width: 120,	cellClass: 'text-center'},
+		{headerName: "수취인휴대폰번호",	field: "receivercellnum",	width: 120,	cellClass: 'text-center'},
 		{headerName: "우편번호",			field: "deliverypostalcode",width: 80,	cellClass: 'text-center'},
 		{headerName: "기본주소",			field: "deliveryaddr1",		width: 300,	cellClass: 'text-left'},
 		{headerName: "상세주소",			field: "deliveryaddr2",		width: 200,	cellClass: 'text-left'},
@@ -171,12 +171,12 @@
 		{headerName: "CS메모",			field: "csmemo",			width: 250,	cellClass: 'text-left'},	
 		{headerName: "CS메모 변경일",		field: "datecsmemoupdated",	width: 120,	cellClass: 'text-center'},
 		{headerName: "WMS메모",			field: "wmsmemo",			width: 250,	cellClass: 'text-left'},
-		{headerName: "WMS메모변경일",		field: "datewmsmemoupdated",width: 120,	cellClass: 'text-center'},
-		{headerName: "회수요청일",			field: "datecreated",		width: 100,	cellClass: 'text-center'},
+		{headerName: "WMS메모변경일",	field: "datewmsmemoupdated",width: 120,	cellClass: 'text-center'},
+		{headerName: "회수요청일",		field: "datecreated",		width: 100,	cellClass: 'text-center'},
 		{headerName: "삭제여부",			field: "isdeleted",			width: 80,	cellClass: 'text-center',
 			cellRenderer: function (params) { return params.value == '0' ? 'N' : 'Y'; }		
 		},
-		{headerName: "도로명주소",			field: "deliveryaddrnew",	width: 300,	cellClass: 'text-left'},
+		{headerName: "도로명주소",		field: "deliveryaddrnew",	width: 300,	cellClass: 'text-left'},
 		{headerName: "상품번호",			field: "productno",			width: 100,	cellClass: 'text-center'},
 		{headerName: "상품코드",			field: "productcode",		width: 100,	cellClass: 'text-center'},
 		{headerName: "상품명",			field: "productname",		width: 250,	cellClass: 'text-left',
@@ -189,11 +189,11 @@
 			}					
 		},
 		{headerName: "옵션코드",			field: "skucode",			width: 100,	cellClass: 'text-center'},
-		{headerName: "옵션 내용",			field: "skuvalue",			width: 100,	cellClass: 'text-center'},
+		{headerName: "옵션 내용",		field: "skuvalue",			width: 100,	cellClass: 'text-center'},
 		{headerName: "수량",				field: "recallqty",			width: 100,	cellClass: 'text-center'},	
 		{headerName: "완료일",			field: "datecompleted",		width: 100,	cellClass: 'text-center'},
-		{headerName: "택배사 명",			field: "logisticsname",		width: 100,	cellClass: 'text-left'},
-		{headerName: "회수송장번호",		field: "recallinvoiceno",	width: 120,	cellClass: 'text-center'},
+		{headerName: "택배사 명",		field: "logisticsname",		width: 100,	cellClass: 'text-left'},
+		{headerName: "회수송장번호",	field: "recallinvoiceno",	width: 120,	cellClass: 'text-center'},
 		{headerName: "원운송장번호",		field: "invoiceno",			width: 120,	cellClass: 'text-center'}
 
 	];
@@ -276,29 +276,6 @@
 		
 	}
 
-	/*************************************************************************
-	*  회수예외 처리완료 버튼 - 대기->완료  업데이트
-	**************************************************************************/	
-	var fnComplete = function(recallExceptionNo) {
-		var params = {};
-		params.recallExceptionNo = recallExceptionNo;
-		mcxDialog.confirm('처리완료 하시겠습니까?', {
-			cancelBtnText: "취소",
-			sureBtnText: "확인",
-			sureBtnClick: function(){
-				var jsonData = JSON.stringify(params);
-				gagajf.ajaxJsonSubmit('/withdraw/exception/complete', jsonData, fnCompleteCallback);
-			}
-		});
-	};
-	
-	/*************************************************************************
-	*  회수예외 처리완료 콜백
-	**************************************************************************/		
-	var fnCompleteCallback = function() {
-		fnSearchList();
-	};
-	
 
 	/*************************************************************************
 	*  엑셀다운로드
@@ -312,7 +289,7 @@
 
 		var date = new Date().format("YYYYMMDDHHmmss");
 		var params = {
-			fileName : "WMS회수예외목록_"+ date,
+			fileName : "WMS회수목록_"+ date,
 			sheetName: "DATA"
 		}
 		gridOptions.excelStyles = [

Некоторые файлы не были показаны из-за большого количества измененных файлов