Jelajahi Sumber

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

xodud1202 5 tahun lalu
induk
melakukan
f109c2fac4
18 mengubah file dengan 356 tambahan dan 322 penghapusan
  1. 24 23
      style24.admin/src/main/java/com/style24/persistence/domain/Aflink.java
  2. 1 2
      style24.admin/src/main/java/com/style24/persistence/domain/Order.java
  3. 4 0
      style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaBusiness.xml
  4. 31 14
      style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaOrder.xml
  5. 282 270
      style24.admin/src/main/webapp/WEB-INF/views/business/AflinkForm.html
  6. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/CancelRequestForm.html
  7. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/CancelRequestFormBack.html
  8. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailChangeHst.html
  9. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailCouponHst.html
  10. 2 1
      style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailForm.html
  11. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailGiftcardHst.html
  12. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailPointHst.html
  13. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailTmtbHst.html
  14. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/OrderListForm.html
  15. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/OrderMemoRegistForm.html
  16. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/OrderSellerListForm.html
  17. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/RefundAccountRegistForm.html
  18. 1 1
      style24.admin/src/main/webapp/WEB-INF/views/order/ReturnRequestForm.html

+ 24 - 23
style24.admin/src/main/java/com/style24/persistence/domain/Aflink.java

@@ -1,23 +1,24 @@
-package com.style24.persistence.domain;
-
-import com.style24.persistence.TscBaseDomain;
-
-import lombok.Data;
-
-/**
- * 제휴채널 Domain
- *
- * @author gagamel
- * @since 2020. 10. 20
- */
-@SuppressWarnings("serial")
-@Data
-public class Aflink extends TscBaseDomain {
-
-	private String afLinkCd;	// 제휴링크코드
-	private String afLinkNm;	// 제휴링크명
-	private String afChannel;	// 제휴채널
-	private int dispOrd;		// 표시순서
-	private String useYn;		// 사용여부
-
-}
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 제휴채널 Domain
+ *
+ * @author gagamel
+ * @since 2020. 10. 20
+ */
+@SuppressWarnings("serial")
+@Data
+public class Aflink extends TscBaseDomain {
+
+	private String afLinkCd;	// 제휴링크코드
+	private String afLinkNm;	// 제휴링크명
+	private String afChannel;	// 제휴채널
+	private float feeRate;		// 수수료율(마진율)
+	private int dispOrd;		// 표시순서
+	private String useYn;		// 사용여부
+
+}

+ 1 - 2
style24.admin/src/main/java/com/style24/persistence/domain/Order.java

@@ -30,6 +30,7 @@ public class Order extends TscBaseDomain {
 	private String frontGb;
 	private String frontGbNm;
 	
+	
 	// 주문상세
 	private int ordDtlNo;
 	private String ordExchGb;
@@ -357,8 +358,6 @@ public class Order extends TscBaseDomain {
 	private int chgQty;
 	private int rtnDelvFee;
 	private int excDelvFee;
-	
-
 }
 
 

+ 4 - 0
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaBusiness.xml

@@ -793,6 +793,7 @@
 		SELECT AF_LINK_CD
 		     , AF_LINK_NM
 		     , AF_CHANNEL
+		     , FEE_RATE
 		     , DISP_ORD
 		     , USE_YN
 		FROM   TB_AF_LINK
@@ -809,6 +810,7 @@
 		       AF_LINK_CD
 		     , AF_LINK_NM
 		     , AF_CHANNEL
+		     , FEE_RATE
 		     , DISP_ORD
 		     , USE_YN
 		     , REG_NO
@@ -820,6 +822,7 @@
 		       #{afLinkCd}
 		     , #{afLinkNm}
 		     , #{afChannel}
+		     , #{feeRate}
 		     , #{dispOrd}
 		     , #{useYn}
 		     , #{regNo}
@@ -830,6 +833,7 @@
 		ON DUPLICATE KEY UPDATE
 		       AF_LINK_NM = #{afLinkNm}
 		     , AF_CHANNEL = #{afChannel}
+		     , FEE_RATE = #{feeRate}
 		     , DISP_ORD = #{dispOrd}
 		     , USE_YN = #{useYn}
 		     , UPD_NO = #{updNo}

+ 31 - 14
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaOrder.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.style24.admin.biz.dao.TsaOrderDao">
 
-	<!-- 주문목록 카운트 -->
+	<!-- 주문목록 > 주문목록카운트 -->
 	<select id="getOrderListCount" parameterType="Order" resultType="int">
 		/* order.getOrderListCnt */
 		SELECT COUNT(1)  
@@ -166,7 +166,7 @@
         </if>
 	</select>
 
-	<!-- 주문목록 -->
+	<!-- 주문목록 > 주문목록 -->
 	<select id="getOrderList" parameterType="Order" resultType="Order">
 		/* order.getOrderList */
 		SELECT Z.*
@@ -386,7 +386,7 @@
              , Z.ORD_DTL_ITEM_SQ DESC
 	</select>
 	
-	<!-- 주문상세 > 주문 정보 -->
+	<!-- 주문상세 > 주문기본정보 -->
 	<select id="getOrderInfoList" parameterType="Order" resultType="Order">
 		/* order.getOrderInfoList */
 		SELECT O.SITE_CD
@@ -448,7 +448,7 @@
 		LIMIT  1
 	</select>
 	
-	<!-- 주문상세 > 상품상세 목록 -->
+	<!-- 주문상세 > 주문상품상세 목록(단품) -->
 	<select id="getOrderDetailList" parameterType="Order" resultType="Order">
 		/* order.getOrderDetailList */
 		SELECT OD.ORD_NO
@@ -470,6 +470,10 @@
 		     , ODI.ITEM_PRICE
 		     , ODI.ITEM_QTY * OD.ORD_QTY      AS ORD_QTY
 		     , ODI.ITEM_QTY * OD.CNCL_RTN_QTY AS CNCL_RTN_QTY
+ 		     , CASE WHEN OCD.ORD_REQ_CHG_QTY IS NULL
+			        THEN 0
+			        ELSE OCD.ORD_REQ_CHG_QTY * ODI.ITEM_QTY
+			        END  ORD_REQ_CHG_QTY
 		     , ODI.OPT_ADD_PRICE 
 		     , ODI.CPN1_DC_AMT
 		     , ODI.GOODS_CPN_DC_AMT
@@ -540,8 +544,21 @@
 				GROUP  BY ODH.ORD_DTL_STAT
 			) Z
 		) X
-		ON     OD.ORD_NO = X.ORD_NO
-		AND    OD.ORD_DTL_NO = X.ORD_DTL_NO
+		ON     OD.ORD_DTL_NO = X.ORD_DTL_NO
+		LEFT   OUTER JOIN (
+			SELECT OD.ORD_DTL_NO
+			     , SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
+			FROM   TB_ORDER_CHANGE_DETAIL OCD
+			INNER  JOIN TB_ORDER_DETAIL OD
+			ON     OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+			WHERE  1=1
+			AND    OD.ORD_NO = #{ordNo}
+			AND    OCD.CHG_STAT IN (
+				'G685_20', 'G685_30', 'G685_40'
+			)
+			GROUP  BY OCD.ORD_DTL_NO
+		) OCD
+		ON     OD.ORD_DTL_NO = OCD.ORD_DTL_NO
 		WHERE  1=1
 		AND    OD.ORD_NO = #{ordNo}
 	</select>
@@ -657,7 +674,7 @@
 		     , Z.DELV_FEE_SQ
 	</select>
 	
-	<!-- 주문상세 > 취소 / 반품 / 교환 요청 정보 -->
+	<!-- 주문상세 > 취소/반품/교환 요청정보 -->
 	<select id="getOrderChangeList" parameterType="Order" resultType="Order">
 		/* order.getOrderChangeList */
 		SELECT OCD.ORD_CHG_SQ
@@ -854,14 +871,14 @@
 		</if>
 	</select>
 	
-	<!-- 입점업체 엑셀다운용 임시테이블 삭제-->
+	<!-- 주문/배송 > 입점업체 엑셀다운용 임시테이블 삭제-->
 	<delete id="deleteEntryExcelDownTmp" parameterType="Order">
 		/* TsbOrder.deleteEntryExcelDownTmp */
 		DELETE FROM TB_ENTRY_UPLOAD_EXCEL
 		WHERE  1=1
 	</delete>
 	
-	<!-- 주문상세정보 변경 (입점) -->
+	<!-- 주문/배송 > 입점업체 주문상세정보 변경 (입점) -->
 	<update id="updateOrderDetailStat" parameterType="Order">
 		/* Order.updateOrderDetailStat */
 		UPDATE TB_ORDER_DETAIL
@@ -873,7 +890,7 @@
 		AND    SUPPLY_COMP_CD = #{supplyCompCd}
 	</update>
 	
-	<!-- 주문상세이력 생성-->
+	<!-- 주문/배송 > 주문상세이력 생성-->
 	<insert id="createOrderDetailHst" parameterType="Order">
 		/* Order.createOrderDetailHst */
 		INSERT INTO TB_ORDER_DETAIL_HST (
@@ -1028,7 +1045,7 @@
 		WHERE  ORD_DTL_NO = #{ordDtlNo}
 	</insert>
 	
-	<!-- 입점업체 엑셀다운 임시파일 체크-->
+	<!-- 주문/배송 > 입점업체 엑셀다운 임시파일 체크-->
 	<select id="getEntryUploadExcelCheck" parameterType="Order" resultType="int">
 		SELECT COUNT(1)
 		FROM   TB_ENTRY_UPLOAD_EXCEL X
@@ -1037,7 +1054,7 @@
 		AND    X.ORD_DTL_NO = #{ordDtlNo}
 	</select>
 	
-	<!-- 입점업체 엑셀다운용 임시테이블 생성-->
+	<!-- 주문/배송 > 입점업체 엑셀다운용 임시테이블 생성-->
 	<insert id="createEntryExcelDownTmp" parameterType="Order">
 		INSERT INTO TB_ENTRY_UPLOAD_EXCEL (
 			ORD_NO
@@ -1189,7 +1206,7 @@
 		AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
 	</select>
 	
-	<!-- 주문상세정보 변경 - 송장번호 적용(입점)  -->
+	<!-- 주문/배송 > 주문상세정보 변경 - 송장번호 적용(입점)  -->
 	<update id="updateOrderDetailInvoice" parameterType="Order">
 		/* TsaOrder.updateOrderDetailInvoice */
 		UPDATE TB_ORDER_DETAIL
@@ -1648,7 +1665,7 @@
 		AND    ORD_DTL_ITEM_SQ = #{ordDtlItemSq}
 	</insert>
 	
-	<!-- 주문상세이력 생성-->
+	<!-- 주문상세 > 주문취소 > 주문상세이력 생성-->
 	<insert id="createOrderDetailHstCnclRtn" parameterType="Order">
 		/* Order.createOrderDetailHstCnclRtn */
 		INSERT INTO TB_ORDER_DETAIL_HST (

+ 282 - 270
style24.admin/src/main/webapp/WEB-INF/views/business/AflinkForm.html

@@ -1,270 +1,282 @@
-<!DOCTYPE html>
-<html lang="ko"
-	xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : AflinkForm.html
- * @desc    : 제휴채널관리 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2020.10.20   gagamel     최초 작성
- *******************************************************************************
- -->
-	<div id="main">
-		<!-- 메인타이틀 영역 -->
-		<div class="main-title">
-		</div>
-		<!-- //메인타이틀 영역 -->
-		
-		<!-- 메뉴 설명 -->
-		<div class="infoBox menu-desc">
-		</div>
-		<!-- //메뉴 설명 -->
-		
-		<!-- 검색조건 영역 -->
-		<div class="panelStyle">
-			<form id="searchForm" name="searchForm" action="#" th:action="@{'/business/aflink/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
-				<table class="frmStyle" aria-describedby="검색조건">
-					<colgroup>
-						<col style="width:10%;"/>
-						<col/>
-					</colgroup>
-					<tr>
-						<th>제휴채널</th>
-						<td>
-							<select name="afChannel">
-								<option value="">[전체]</option>
-								<option th:if="${afChannelList}" th:each="oneData, status : ${afChannelList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-							</select>
-						</td>
-					</tr>
-				</table>
-				
-				<ul class="panelBar">
-					<li class="center">
-						<button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
-						<button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset();">초기화</button>
-					</li>
-				</ul>
-			</form>
-		</div>
-		<!-- 검색조건 영역 -->
-
-		<!-- 리스트 영역 -->
-		<div class="panelStyle">
-			<!-- 다중 TABLE 배치 -->
-			<ul class="division">
-				<li style="width: 60%">
-					<!-- 버튼 배치 영역 -->
-					<ul class="panelBar">
-						<li class="left">
-							<button type="button" class="btn btn-danger btn-lg" id="btnDelete">사용안함</button>
-						</li>
-						<li class="right">
-							<button type="button" class="btn btn-default btn-lg" id="btnExcel">엑셀다운로드</button>
-						</li>
-					</ul>
-					<!-- //버튼 배치 영역 -->
-					
-					<div id="gridList" style="width: 100%; height: 570px;" class="ag-theme-balham"></div>
-				</li>
-				<li>
-					<!-- 버튼 배치 영역 -->
-					<ul class="panelBar">
-						<li>
-							<button type="button" class="btn btn-info btn-lg" id="btnNew">신규</button>
-							<button type="button" class="btn btn-success btn-lg" id="btnSave">저장</button>
-						</li>
-					</ul>
-					<!-- //버튼 배치 영역 -->
-					
-					<form id="detailForm" name="detailForm" action="#" th:action="@{'/business/aflink/save'}">
-						<table class="frmStyle">
-							<colgroup>
-								<col style="width:30%"/>
-								<col/>
-							</colgroup>
-							<tr>
-								<th>제휴코드<i class="star"></i></th>
-								<td>
-									<input type="text" class="w100" name="afLinkCd" placeholder="" maxlength="5" required="required" data-valid-type="alphaNumeric" data-valid-name="제휴코드" onkeyup="$(this).val($(this).val().toUpperCase());"/>
-								</td>
-							</tr>
-							<tr>
-								<th>제휴명<i class="star"></i></th>
-								<td>
-									<input type="text" class="w300" name="afLinkNm" placeholder="" maxlength="100" required="required" data-valid-name="제휴명"/>
-								</td>
-							</tr>
-							<tr>
-								<th>제휴채널<i class="star"></i></th>
-								<td>
-									<select name="afChannel" required="required" data-valid-name="제휴채널">
-										<option value="">[선택]</option>
-										<option th:if="${afChannelList}" th:each="oneData, status : ${afChannelList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-									</select>
-								</td>
-							</tr>
-							<tr>
-								<th>표시순서<i class="star"></i></th>
-								<td>
-									<input type="text" class="w100 text-right" name="dispOrd" placeholder="" maxlength="5" required="required" data-valid-type="numeric" data-valid-name="표시순서" />
-								</td>
-							</tr>
-							<tr>
-								<th>사용여부<i class="star"></i></th>
-								<td>
-									<input type="hidden" name="useYn"/>
-									<label class="chkBox"><input type="checkbox" name="chkUseYn" value="Y" checked="checked" disabled="disabled"/>사용</label>
-								</td>
-							</tr>
-						</table>
-					</form>
-				</li>
-			</ul>
-			<!--//다중 TABLE 배치 -->
-		</div>
-		<!-- //리스트 영역 -->
-	</div>
-
-<script th:inline="javascript">
-/*<![CDATA[*/
-	let afChannelList = gagajf.convertToArray([[${afChannelList}]]);
-	let useYnList = { "Y":"Yes", "N":"No" };
-
-	let columnDefs = [
-		{width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-		{headerName: "제휴링크코드", field: "afLinkCd", width: 100, cellClass: 'text-center'},
-		{
-			headerName: "제휴링크명", field: "afLinkNm", width: 180, cellClass: 'text-center',
-			cellRenderer: function(params) {
-				return '<a href="javascript:void(0);">' + params.value + '</a>';
-			}
-		},
-		{
-			headerName: "제휴채널", field: "afChannel", width: 120, cellClass: 'text-center',
-			valueGetter: function (params) { return gagaAgGrid.lookupValue(afChannelList, params.data.afChannel); }
-		},
-		{headerName: "표시순서", field: "dispOrd", width: 100, cellClass: 'text-center'},
-		{
-			headerName: "사용여부", field: "useYn", width: 100, cellClass: 'text-center',
-			valueGetter: function (params) { return gagaAgGrid.lookupValue(useYnList, params.data.useYn); }
-		}
-	];
-
-	let gridOptions = gagaAgGrid.getGridOptions(columnDefs);
-
-	// 다중 선택
-	gridOptions.rowSelection = 'multiple';
-	
-	// Cell click
-	gridOptions.onCellClicked = function(event) {
-		if (event.colDef.field != 'afLinkNm')
-			return;
-		
-		$('#detailForm input[name=afLinkCd]').val(event.data.afLinkCd);
-		$('#detailForm input[name=afLinkCd]').attr('readonly', true);
-		$('#detailForm input[name=afLinkNm]').val(event.data.afLinkNm);
-		$('#detailForm select[name=afChannel]').val(event.data.afChannel);
-		$('#detailForm select[name=afMedia]').val(event.data.afMedia);
-		$('#detailForm input[name=dispOrd]').val(event.data.dispOrd);
-		
-		$("#detailForm input[name=useYn]").val(event.data.useYn);
-		if (event.data.useYn == 'Y') {
-			$("#detailForm input:checkbox[name=chkUseYn]").attr('checked', true);
-		} else {
-			$("#detailForm input:checkbox[name=chkUseYn]").attr('checked', false);
-		}
-
-		$('#detailForm input[name=afLinkNm]').focus();
-	}
-	
-	// 검색
-	$('#btnSearch').on('click', function() {
-		var actionUrl = $('#searchForm').prop('action') + '?' + $('#searchForm').serialize();
-
-		// Fetch data
-		gagaAgGrid.fetch(actionUrl, gridOptions, '#searchForm');
-	});
-
-	// 신규
-	$('#btnNew').on('click', function() {
-		$('#detailForm')[0].reset();
-		$('#detailForm input[name=afLinkCd]').attr('readonly', false);
-		$('#detailForm input[name=afLinkCd]').removeClass('formControl');
-		$('#detailForm input:checkbox[name=chkUseYn]').attr('disabled', true);
-		$('#detailForm input:checkbox[name=chkUseYn]').addClass('formControl');
-		$('#detailForm input[name=afLinkCd]').focus();
-	});
-	
-	// 사용안함 버튼 클릭 시
-	$('#btnDelete').on('click', function() {
-		var removedData = gagaAgGrid.removeRowData(gridOptions);
-
-		if (removedData.length == 0) {
-			mcxDialog.alert('선택된 행이 없습니다.');
-			return;
-		}
-
-		mcxDialog.confirm('사용안함으로 처리하시겠습니까?', {
-			cancelBtnText: "취소",
-			sureBtnText: "확인",
-			sureBtnClick: function(){
-				// delete 대신 update 처리해야 하므로 다음과 같이 useYn 값을 변환
-				var updatedData = [];
-
-				$.each(removedData, function(idx, item) {
-					item.useYn = 'N';
-					updatedData.push(item);
-				});
-
-				var jsonData = JSON.stringify(updatedData);
-				gagajf.ajaxJsonSubmit('/business/aflink/list/delete'
-						, jsonData
-						, function() {
-							$('#btnSearch').trigger('click');
-						});
-			}
-		});
-	});
-	
-	// 저장 처리
-	$('#btnSave').on('click', function() {
-		// 입력 값 체크
-		if (!gagajf.validation('#detailForm'))
-			return false;
-
-		$('#detailForm input[name=useYn]').val($('#detailForm input:checkbox[name=chkUseYn]').is(":checked") ? 'Y' : 'N');
-
-		mcxDialog.confirm('저장하시겠습니까?', {
-			cancelBtnText: "취소",
-			sureBtnText: "확인",
-			sureBtnClick: function(){
-				gagajf.ajaxFormSubmit($('#detailForm').prop('action')
-						, $('#detailForm')
-						, function() {
-							$('#btnNew').trigger('click');
-							$('#btnSearch').trigger('click');
-						}
-				);
-			}
-		});
-	});
-	
-	// 엑셀다운로드
-	$('#btnExcel').on('click', function() {
-		gagaAgGrid.exportToExcel('제휴채널 목록', gridOptions);
-	});
-	
-	$(document).ready(function() {
-		// Create a agGrid
-		gagaAgGrid.createGrid('gridList', gridOptions);
-	});
-/*]]>*/
-</script>
-
-</html>
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : AflinkForm.html
+ * @desc    : 제휴채널관리 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.10.20   gagamel     최초 작성
+ *******************************************************************************
+ -->
+	<div id="main">
+		<!-- 메인타이틀 영역 -->
+		<div class="main-title">
+		</div>
+		<!-- //메인타이틀 영역 -->
+		
+		<!-- 메뉴 설명 -->
+		<div class="infoBox menu-desc">
+		</div>
+		<!-- //메뉴 설명 -->
+		
+		<!-- 검색조건 영역 -->
+		<div class="panelStyle">
+			<form id="searchForm" name="searchForm" action="#" th:action="@{'/business/aflink/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
+				<table class="frmStyle" aria-describedby="검색조건">
+					<colgroup>
+						<col style="width:10%;"/>
+						<col/>
+					</colgroup>
+					<tr>
+						<th>상위제휴채널</th>
+						<td>
+							<select name="afChannel">
+								<option value="">[전체]</option>
+								<option th:if="${afChannelList}" th:each="oneData, status : ${afChannelList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+							</select>
+						</td>
+					</tr>
+				</table>
+				
+				<ul class="panelBar">
+					<li class="center">
+						<button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
+						<button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset();">초기화</button>
+					</li>
+				</ul>
+			</form>
+		</div>
+		<!-- 검색조건 영역 -->
+
+		<!-- 리스트 영역 -->
+		<div class="panelStyle">
+			<!-- 다중 TABLE 배치 -->
+			<ul class="division">
+				<li style="width: 60%">
+					<!-- 버튼 배치 영역 -->
+					<ul class="panelBar">
+						<li class="left">
+							<button type="button" class="btn btn-danger btn-lg" id="btnDelete">사용안함</button>
+						</li>
+						<li class="right">
+							<button type="button" class="btn btn-default btn-lg" id="btnExcel">엑셀다운로드</button>
+						</li>
+					</ul>
+					<!-- //버튼 배치 영역 -->
+					
+					<div id="gridList" style="width: 100%; height: 570px;" class="ag-theme-balham"></div>
+				</li>
+				<li>
+					<!-- 버튼 배치 영역 -->
+					<ul class="panelBar">
+						<li>
+							<button type="button" class="btn btn-info btn-lg" id="btnNew">신규</button>
+							<button type="button" class="btn btn-success btn-lg" id="btnSave">저장</button>
+						</li>
+					</ul>
+					<!-- //버튼 배치 영역 -->
+					
+					<form id="detailForm" name="detailForm" action="#" th:action="@{'/business/aflink/save'}">
+						<table class="frmStyle">
+							<colgroup>
+								<col style="width:30%"/>
+								<col/>
+							</colgroup>
+							<tr>
+								<th>제휴코드<i class="star"></i></th>
+								<td>
+									<input type="text" class="w100" name="afLinkCd" placeholder="" maxlength="5" required="required" data-valid-type="alphaNumeric" data-valid-name="제휴코드" onkeyup="$(this).val($(this).val().toUpperCase());"/>
+								</td>
+							</tr>
+							<tr>
+								<th>제휴명<i class="star"></i></th>
+								<td>
+									<input type="text" class="w300" name="afLinkNm" placeholder="" maxlength="100" required="required" data-valid-name="제휴명"/>
+								</td>
+							</tr>
+							<tr>
+								<th>상위제휴채널<i class="star"></i></th>
+								<td>
+									<select name="afChannel" required="required" data-valid-name="상위제휴채널">
+										<option value="">[선택]</option>
+										<option th:if="${afChannelList}" th:each="oneData, status : ${afChannelList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+									</select>
+								</td>
+							</tr>
+							<tr>
+								<th>마진율<i class="star"></i></th>
+								<td>
+									<input type="text" class="w100 text-right" name="feeRate" placeholder="" maxlength="3" required="required" data-valid-type="real" data-valid-name="마진율" />%
+								</td>
+							</tr>
+							<tr>
+								<th>표시순서<i class="star"></i></th>
+								<td>
+									<input type="text" class="w100 text-right" name="dispOrd" placeholder="" maxlength="5" required="required" data-valid-type="numeric" data-valid-name="표시순서" />
+								</td>
+							</tr>
+							<tr>
+								<th>사용여부<i class="star"></i></th>
+								<td>
+									<input type="hidden" name="useYn"/>
+									<label class="chkBox"><input type="checkbox" name="chkUseYn" value="Y" checked="checked" disabled="disabled"/>사용</label>
+								</td>
+							</tr>
+						</table>
+					</form>
+				</li>
+			</ul>
+			<!--//다중 TABLE 배치 -->
+		</div>
+		<!-- //리스트 영역 -->
+	</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	let afChannelList = gagajf.convertToArray([[${afChannelList}]]);
+	let useYnList = { "Y":"Yes", "N":"No" };
+
+	let columnDefs = [
+		{width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+		{headerName: "제휴채널코드", field: "afLinkCd", width: 100, cellClass: 'text-center'},
+		{
+			headerName: "제휴채널명", field: "afLinkNm", width: 180,
+			cellRenderer: function(params) {
+				return '<a href="javascript:void(0);">' + params.value + '</a>';
+			}
+		},
+		{
+			headerName: "상위제휴채널", field: "afChannel", width: 120, cellClass: 'text-center',
+			valueGetter: function (params) { return gagaAgGrid.lookupValue(afChannelList, params.data.afChannel); }
+		},
+		{
+			headerName: "마진율", field: "feeRate", width: 100, cellClass: 'text-center',
+			cellRenderer: function(params) { return params.value + '%'; }
+		},
+		{headerName: "표시순서", field: "dispOrd", width: 100, cellClass: 'text-center'},
+		{
+			headerName: "사용여부", field: "useYn", width: 100, cellClass: 'text-center',
+			valueGetter: function (params) { return gagaAgGrid.lookupValue(useYnList, params.data.useYn); }
+		}
+	];
+
+	let gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+
+	// 다중 선택
+	gridOptions.rowSelection = 'multiple';
+	
+	// Cell click
+	gridOptions.onCellClicked = function(event) {
+		if (event.colDef.field != 'afLinkNm')
+			return;
+		
+		$('#detailForm input[name=afLinkCd]').val(event.data.afLinkCd);
+		$('#detailForm input[name=afLinkCd]').attr('readonly', true);
+		$('#detailForm input[name=afLinkNm]').val(event.data.afLinkNm);
+		$('#detailForm select[name=afChannel]').val(event.data.afChannel);
+		$('#detailForm input[name=feeRate]').val(event.data.feeRate);
+		$('#detailForm input[name=dispOrd]').val(event.data.dispOrd);
+		
+		$("#detailForm input[name=useYn]").val(event.data.useYn);
+		if (event.data.useYn == 'Y') {
+			$("#detailForm input:checkbox[name=chkUseYn]").attr('checked', true);
+			$("#detailForm input:checkbox[name=chkUseYn]").parent().addClass('checked');
+		} else {
+			$("#detailForm input:checkbox[name=chkUseYn]").attr('checked', false);
+			$("#detailForm input:checkbox[name=chkUseYn]").parent().removeClass('checked');
+		}
+
+		$('#detailForm input[name=afLinkNm]').focus();
+	}
+	
+	// 검색
+	$('#btnSearch').on('click', function() {
+		var actionUrl = $('#searchForm').prop('action') + '?' + $('#searchForm').serialize();
+
+		// Fetch data
+		gagaAgGrid.fetch(actionUrl, gridOptions, '#searchForm');
+	});
+
+	// 신규
+	$('#btnNew').on('click', function() {
+		$('#detailForm')[0].reset();
+		$('#detailForm input[name=afLinkCd]').attr('readonly', false);
+		$('#detailForm input[name=afLinkCd]').removeClass('formControl');
+		$('#detailForm input:checkbox[name=chkUseYn]').attr('disabled', true);
+		$('#detailForm input:checkbox[name=chkUseYn]').addClass('formControl');
+		$('#detailForm input[name=afLinkCd]').focus();
+	});
+	
+	// 사용안함 버튼 클릭 시
+	$('#btnDelete').on('click', function() {
+		var removedData = gagaAgGrid.removeRowData(gridOptions);
+
+		if (removedData.length == 0) {
+			mcxDialog.alert('선택된 행이 없습니다.');
+			return;
+		}
+
+		mcxDialog.confirm('사용안함으로 처리하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				// delete 대신 update 처리해야 하므로 다음과 같이 useYn 값을 변환
+				var updatedData = [];
+
+				$.each(removedData, function(idx, item) {
+					item.useYn = 'N';
+					updatedData.push(item);
+				});
+
+				var jsonData = JSON.stringify(updatedData);
+				gagajf.ajaxJsonSubmit('/business/aflink/list/delete'
+						, jsonData
+						, function() {
+							$('#btnSearch').trigger('click');
+						});
+			}
+		});
+	});
+	
+	// 저장 처리
+	$('#btnSave').on('click', function() {
+		// 입력 값 체크
+		if (!gagajf.validation('#detailForm'))
+			return false;
+
+		$('#detailForm input[name=useYn]').val($('#detailForm input:checkbox[name=chkUseYn]').is(":checked") ? 'Y' : 'N');
+
+		mcxDialog.confirm('저장하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				gagajf.ajaxFormSubmit($('#detailForm').prop('action')
+						, $('#detailForm')
+						, function() {
+							$('#btnNew').trigger('click');
+							$('#btnSearch').trigger('click');
+						}
+				);
+			}
+		});
+	});
+	
+	// 엑셀다운로드
+	$('#btnExcel').on('click', function() {
+		gagaAgGrid.exportToExcel('제휴채널 목록', gridOptions);
+	});
+	
+	$(document).ready(function() {
+		// Create a agGrid
+		gagaAgGrid.createGrid('gridList', gridOptions);
+	});
+/*]]>*/
+</script>
+
+</html>

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/CancelRequestForm.html

@@ -5,7 +5,7 @@
  * @source  : CancelRequestForm.html
  * @desc    : 취소요청 화면
  *============================================================================
- * Pastelmall
+ * STYLE24
  * Copyright(C) 2019 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/CancelRequestFormBack.html

@@ -5,7 +5,7 @@
  * @source  : CancelRequestForm.html
  * @desc    : 취소요청 화면
  *============================================================================
- * Pastelmall
+ * STYLE24
  * Copyright(C) 2019 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailChangeHst.html

@@ -5,7 +5,7 @@
  * @source  : OrderDetailChangeHst.html
  * @desc    : 주문상품상세이력 화면
  *============================================================================
- * Pastelmall
+ * STYLE24
  * Copyright(C) 2019 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailCouponHst.html

@@ -5,7 +5,7 @@
  * @source  : OrderDetailCouponHst.html
  * @desc    : 주문상품 상세 쿠폰 이력 화면
  *============================================================================
- * Pastelmall
+ * STYLE24
  * Copyright(C) 2019 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 2 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -5,7 +5,7 @@
  * @source  : OrderListForm.html
  * @desc    : 주문상세화면
  *============================================================================
- * SISUN
+ * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION
@@ -287,6 +287,7 @@ var columnDefsGoodsInfo = [
 		children	: [
 			{headerName: "주문수량"	, field: "ordQty"		, width: 80, cellClass: 'text-center'},
 			{headerName: "취소수량"	, field: "cnclRtnQty"	, width: 80, cellClass: 'text-center'},
+			{headerName: "변경요청수량"	, field: "ordReqChgQty"	, width: 100, cellClass: 'text-center'},
 			{headerName: "상세상태"	, field: "ordDtlStat"	, width: 120, cellClass: 'text-center', hide: true},
 			{
 				headerName		: "상세상태"

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailGiftcardHst.html

@@ -5,7 +5,7 @@
  * @source  : OrderDetailPointHst.html
  * @desc    : 주문상품 상세 상품권 이력 화면
  *============================================================================
- * Pastelmall
+ * STYLE24
  * Copyright(C) 2019 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailPointHst.html

@@ -5,7 +5,7 @@
  * @source  : OrderDetailPointHst.html
  * @desc    : 주문상품 상세 마일리지 이력 화면
  *============================================================================
- * Pastelmall
+ * STYLE24
  * Copyright(C) 2019 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailTmtbHst.html

@@ -5,7 +5,7 @@
  * @source  : OrderDetailPointHst.html
  * @desc    : 주문상품 상세 상품권 이력 화면
  *============================================================================
- * Pastelmall
+ * STYLE24
  * Copyright(C) 2019 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/OrderListForm.html

@@ -5,7 +5,7 @@
  * @source  : OrderListForm.html
  * @desc    : 주문목록 Page
  *============================================================================
- * SISUN
+ * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/OrderMemoRegistForm.html

@@ -5,7 +5,7 @@
  * @source  : OrderMemoRegistForm.html
  * @desc    : 주문메모 등록 화면
  *============================================================================
- * SISUN
+ * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/OrderSellerListForm.html

@@ -5,7 +5,7 @@
  * @source  : OrderSellerListForm.html
  * @desc    : 입점업체미발주목록조회 Page
  *============================================================================
- * SISUN
+ * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/RefundAccountRegistForm.html

@@ -5,7 +5,7 @@
  * @source  : OrderListForm.html
  * @desc    : 주문목록 Page
  *============================================================================
- * SISUN
+ * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
style24.admin/src/main/webapp/WEB-INF/views/order/ReturnRequestForm.html

@@ -5,7 +5,7 @@
  * @source  : CancelRequestForm.html
  * @desc    : 반품요청 화면
  *============================================================================
- * Pastelmall
+ * STYLE24
  * Copyright(C) 2019 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION