tsit14 5 лет назад
Родитель
Сommit
f5e8231d2b

+ 24 - 9
src/main/java/com/style24/admin/biz/web/TsaOrderController.java

@@ -4,14 +4,8 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import javax.jws.WebParam;
 import javax.servlet.http.HttpServletRequest;
 
-import com.gagaframework.web.rest.server.GagaResponseStatus;
-import com.style24.admin.biz.service.TsaCustomerService;
-import com.style24.admin.biz.service.TsaPgService;
-import com.style24.core.biz.service.TscOrderService;
-import com.style24.persistence.TscPageRequest;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -31,12 +25,17 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gagaframework.excel.GagaExcelUtil;
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.rest.server.GagaResponse;
+import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.gagaframework.web.util.GagaDateUtil;
 import com.gagaframework.web.util.GagaFileUtil;
+import com.style24.admin.biz.service.TsaPgService;
 import com.style24.admin.biz.service.TsaRendererService;
 import com.style24.admin.support.controller.TsaBaseController;
+import com.style24.admin.support.env.TsaConstants;
 import com.style24.admin.support.security.session.TsaSession;
+import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderSample;
@@ -83,8 +82,11 @@ public class TsaOrderController extends TsaBaseController {
 		mav.addObject("siteCdList"		, rendererService.getAvailCommonCodeList("G012"));		// 사이트구분
 		mav.addObject("mallGbList"		, rendererService.getAvailCommonCodeList("G011"));		// 몰구분
 		mav.addObject("supplyCompList"	, rendererService.getSupplyCompanyList());				// 공급업제목록
-		mav.addObject("ordStatList"		, rendererService.getAvailCommonCodeList("G012"));		// 주문상태코드
-		mav.addObject("ordDtlStatList"	, rendererService.getAvailCommonCodeList("G013"));		// 주문상세상태코드
+		
+		// 2021.05.11 프론트기준으로 상태값 정리
+		mav.addObject("ordDtlStatList"	, rendererService.getCommonCodeList("G013", "Y", new String[] {"G013_10", "G013_11", "G013_25", "G013_35", "G013_55", "G013_97", "G013_98", "G013_99"}));
+		//mav.addObject("ordStatList"		, rendererService.getAvailCommonCodeList("G012"));		// 주문상태코드
+		//mav.addObject("ordDtlStatList"	, rendererService.getAvailCommonCodeList("G013"));		// 주문상세상태코드
 
 		mav.addObject("chgStatList"		, rendererService.getAvailCommonCodeList("G685"));		// 주문변경요청상태코드
 		mav.addObject("chgGbList"		, rendererService.getAvailCommonCodeList("G680"));		// 주문변경구분코드
@@ -192,13 +194,25 @@ public class TsaOrderController extends TsaBaseController {
 		Order order = new Order();
 		order.setOrdNo(ordNo);
 		order.setDelYn("N");
+		
+		// 2021.05.11 배송비수정여부추가
+		Collection<Order> orderDetailList = orderService.getOrderDetailList(order);
+		String allCanYn = "Y";
+		for (Order orderDetail : orderDetailList) {
+			if ("Y".equals(allCanYn)
+				&& !TsaConstants.OrderDetailStat.DEPOSIT_WAIT.value().equals(orderDetail.getOrdDtlStat())
+				&& !TsaConstants.OrderDetailStat.PAYMENT_COMPLETE.value().equals(orderDetail.getOrdDtlStat())
+				&& !TsaConstants.OrderDetailStat.GOODS_PREPARE.value().equals(orderDetail.getOrdDtlStat())) {
+				allCanYn = "N";
+			}
+		}
 
 		// 1. 주문기본정보
 		mav.addObject("ordNo"					, ordNo);												// 주문번호
 		mav.addObject("userNo"					, TsaSession.getInfo().getUserNo());					// 관리자번호
 
 		mav.addObject("orderInfo"				, orderService.getOrderInfoList(order));				// 주문기본정보
-		mav.addObject("orderGoodsInfo"			, orderService.getOrderDetailList(order));				// 주문상품정보
+		mav.addObject("orderGoodsInfo"			, orderDetailList);										// 주문상품정보
 		mav.addObject("orderFreeGiftInfo"		, orderService.getOrderFreeGiftList(order));			// 주문사은품정보 2020.12.16 추가
 		mav.addObject("orderDeliveryAddrInfo"	, orderService.getDeliveryAddrList(order));				// 배송정보
 		mav.addObject("orderPaymentInfo"		, orderService.getOrderPaymentBasicInfoList(order));	// 결제정보
@@ -211,6 +225,7 @@ public class TsaOrderController extends TsaBaseController {
 		// 3. 주문메모정보
 		mav.addObject("orderCounselInfo"		, orderService.getOrderCounselInfo(order));				// 상담내역
 		mav.addObject("orderAdminMemoInfo"		, orderService.getOrderMemoList(order));				// 관리자메모목록
+		mav.addObject("allCanYn"				, allCanYn);											// 배송지수정가능여부
 
 		mav.setViewName("order/OrderDetailForm");
 

+ 32 - 1
src/main/java/com/style24/admin/support/env/TsaConstants.java

@@ -58,5 +58,36 @@ public class TsaConstants {
 		public String value() {
 			return value;
 		}
-	}	
+	}
+	
+	// 주문상세상태
+		public enum OrderDetailStat {
+			ORDER_RECEIPT("G013_00"),			// 주문접수
+			DEPOSIT_WAIT("G013_10"),			// 입금대기
+			PAYMENT_WAIT("G013_11"),			// 추가결제대기
+			ORDER_WAIT_PRICE("G013_18"),		// 발주대기-가격차이
+			ORDER_WAIT_POST("G013_19"),			// 발주대기-우편번호상이
+			PAYMENT_COMPLETE("G013_20"),		// 결제완료
+			REFUND_CONFIRM_WAIT("G013_25"),		// 교환대기
+			GOODS_PREPARE("G013_30"),			// 상품준비중
+			DELIVERY_LOC_ASSIGN("G013_35"),		// 출고처 지정
+			DELIVERY_PREPARE("G013_40"),		// 배송준비중
+			SHIPPING("G013_50"),				// 배송중
+			SHIP_COMPLETE("G013_55"),			// 출고완료
+			DELIVERY_COMPLETE("G013_60"),		// 배송완료
+			PURCHASE_CONFIRM("G013_70"),		// 구매확정
+			EXCHANGE_CANCEL("G013_97"),			// 교환취소
+			PAYMENT_BEFORE_CANCEL("G013_98"),	// 결제전주문취소
+			PAYMENT_AFTER_CANCEL("G013_99");	// 결제후주문취소
+
+			private String value;
+
+			private OrderDetailStat(String value) {
+				this.value = value;
+			}
+
+			public String value() {
+				return value;
+			}
+		}
 }

+ 95 - 59
src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -28,8 +28,6 @@
 				<input type="hidden" name="orderEmail"/>
 				
 				<h4>기본정보</h4>
-				<!-- <div id="gridOrderInfo" style="width:100%; height:100px;" class="ag-theme-balham"></div> -->
-
 				<!-- TABLE -->
 				<table class="tableStyle">
 					<colgroup>
@@ -100,7 +98,7 @@
 				<table style="width:100%;">
 					<colgroup>
 						<col style="width:65%;"/>
-						<col/>                                                                                  
+						<col/>
 					</colgroup>
 					<tbody>
 						<tr>
@@ -169,6 +167,14 @@ var orderAdminMemoInfo 		= [[${orderAdminMemoInfo}]];			// 관리자메모
 
 var canChgDelvOrdStat		= ['G013_10', 'G013_11', 'G013_17', 'G013_20', 'G013_30', 'G013_40'];
 var canChgDelvChgStat		= ['G685_30', 'G685_33', 'G685_40'];
+var allCanYn				= [[${allCanYn}]];						// 배송지수정가능여부
+
+var orderGoodsCnt 			= [[${orderGoodsInfo.size()}]];			// 주문상세정보
+var orderFreeGiftCnt		= [[${orderFreeGiftInfo.size()}]];		// 주문사은품정보
+var orderDeliveryAddrCnt	= [[${orderDeliveryAddrInfo.size()}]];	// 배송정보
+var orderChangeCnt 			= [[${orderChangeInfo.size()}]];		// 취소/반품/교환요청 정보
+var orderRefundCnt 			= [[${orderRefundInfo.size()}]];		// 환불정보
+
 </script>
 
 <!-- AgGrid 컬럼 세팅 -->
@@ -197,29 +203,21 @@ var columnDefsGoodsInfo = [
 				}
 			},
 			{headerName: "상품타입"	, field: "goodsTypeNm"	, width: 100, cellClass: 'text-center'},
-			{headerName: "브랜드"		, field: "brandEnm"		, width: 80, cellClass: 'text-center'}
-		]
-	},
-	{
-		headerName	: "단품정보",
-		children	: [
-			{headerName: "단품코드"	, field: "itemCd"		, width: 80, cellClass: 'text-center'},
+			{headerName: "브랜드"		, field: "brandEnm"		, width: 100, cellClass: 'text-center'},
+			{headerName: "옵션1"		, field: "colorNm"		, width: 80, cellClass: 'text-center'},
+			{headerName: "옵션2"		, field: "optCd2"		, width: 80, cellClass: 'text-center'},
 			{
-				headerName		: "단품명"
-				, field			: "itemNm"
-				, width			: 200
-				, cellClass		: 'text-left'
-				, cellRenderer: function (params) {
-					return '<a href="javascript:void(0);" onclick="cfnOpenFrontGoodsPopup(\'' + params.data.itemCd + '\',\'' + params.data.siteCd + '\');">' + params.value + '</a>';
+				headerName		: "정상가"
+				, field			: "listPrice"
+				, width			: 100
+				, cellClass		: 'text-right'
+				, cellRenderer	: function (params) {
+					return params.value.addComma();
 				}
 			},
-			//{headerName: "옵션1"		, field: "optCd1"		, width: 80, cellClass: 'text-center'},
-			{headerName: "옵션1"		, field: "colorNm"		, width: 80, cellClass: 'text-center'},
-			{headerName: "옵션2"		, field: "optCd2"		, width: 80, cellClass: 'text-center'},
-			{headerName: "단품수량"	, field: "itemQty"		, width: 80, cellClass: 'text-center'},
 			{
-				headerName		: "단품금액"
-				, field			: "itemPrice"
+				headerName		: "판매가"
+				, field			: "currPrice"
 				, width			: 100
 				, cellClass		: 'text-right'
 				, cellRenderer	: function (params) {
@@ -238,14 +236,14 @@ var columnDefsGoodsInfo = [
 		]
 	},
 	{
-		headerName	: "주문상세단품",
+		headerName	: "주문상세",
 		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: "주문상태"	, field: "ordDtlStat"	, width: 120, cellClass: 'text-center', hide: true},
 			{
-				headerName		: "상세상태"
+				headerName		: "주문상태"
 				, field			: "ordDtlStatNm"
 				, width			: 120
 				, cellClass		: 'text-center'
@@ -262,6 +260,7 @@ var columnDefsGoodsInfo = [
 					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderDetailChangeHst('" + params.data.ordDtlNo + "');\">" + params.value + retVal + "</a>";
 				}
 			},
+			/*
 			{
 				headerName		: "상태변경"
 				, field			: "ordDtlStatChg"
@@ -314,7 +313,7 @@ var columnDefsGoodsInfo = [
 					if (!gagajf.isNull(params.data.g60)) {
 						strVal += "	<option value='G013_60'>배송완료</option>";
 					}
-					*/
+					
 					
 					// 2021.04.30 상태값 임시 기능
 					strVal += "	<option value='G013_20'>결제완료</option>";
@@ -327,6 +326,30 @@ var columnDefsGoodsInfo = [
 					return strVal;
 				}
 			}
+			*/
+		]
+	},
+	{
+		headerName	: "금액",
+		children	: [
+			{
+				headerName		: "주문"
+				, field			: "ordAmt"
+				, width			: 80
+				, cellClass		: 'text-right'
+				, valueFormatter: function (params) {
+					return params.value.addComma();
+				}
+			},
+			{
+				headerName		: "취소"
+				, field			: "cnclRtnAmt"
+				, width			: 80
+				, cellClass		: 'text-right'
+				, valueFormatter: function (params) {
+					return params.value.addComma();
+				}
+			},
 		]
 	},
 	{
@@ -431,17 +454,8 @@ var columnDefsGoodsInfo = [
 		]
 	},
 	{
-		headerName	: "금액(원/단위)",
+		headerName	: "금액",
 		children	: [
-			{
-				headerName		: "주문"
-				, field			: "ordAmt"
-				, width			: 80
-				, cellClass		: 'text-right'
-				, valueFormatter: function (params) {
-					return params.value.addComma();
-				}
-			},
 			{
 				headerName		: "실결제"
 				, field			: "realOrdAmt"
@@ -450,16 +464,7 @@ var columnDefsGoodsInfo = [
 				, valueFormatter: function (params) {
 					return params.value.addComma();
 				}
-			},
-			{
-				headerName		: "취소"
-				, field			: "cnclRtnAmt"
-				, width			: 80
-				, cellClass		: 'text-right'
-				, valueFormatter: function (params) {
-					return params.value.addComma();
-				}
-			},
+			}
 		]
 	},
 	{headerName: "결품", field: "soldoutYn", width: 60, cellClass: 'text-center'},
@@ -487,25 +492,44 @@ var gridOptionsGoodsInfo = gagaAgGrid.getGridOptions(columnDefsGoodsInfo);
 // 2.5 주문사은품정보
 var columnDefsOrderFreeGiftInfo = [
 	{headerName: "주문사은품번호"	, field: "ordFreegiftSq"	, width: 120, cellClass: 'text-center', hide: true},
-	{headerName: "주문번호"		, field: "ordNo"			, width: 120, cellClass: 'text-center'},
 	{headerName: "사은품프로모션"	, field: "freegiftSq"		, width: 100, cellClass: 'text-center', hide: true},
-	{headerName: "사은품프로모션명"	, field: "freegiftNm"		, width: 250, cellClass: 'text-center'},
+	{headerName: "사은품프로모션명"	, field: "freegiftNm"		, width: 250, cellClass: 'text-left'},
+	{
+		headerName			: "구분"
+		, field				: "allYn"
+		, width				: 100
+		, cellClass			: 'text-center'
+		, cellRenderer	: function (params) {
+			var rtnStr = ""
+			
+			if (params.value == 'Y') {
+				rtnStr = "필수";
+			} else {
+				rtnStr = "선택";
+			}
+			return rtnStr;
+		}
+	},
 	{headerName: "사은품혜택번호"	, field: "freegiftValSq"	, width: 100, cellClass: 'text-center', hide: true},
 	{
 		headerName			: "사용포인트"		
 		, field				: "usePoint"			
 		, width				: 100
-		, cellClass			: 'text-right'
-		, valueFormatter	: function (params) {
-			return params.value.addComma();
+		, cellClass			: 'text-center'
+		, cellRenderer	: function (params) {
+			var rtnStr = ""
+			
+			if (params.value == '0') {
+				rtnStr = "무료";
+			} else {
+				rtnStr = params.value.addComma();
+			}
+			return rtnStr;
 		}
 	},
-	{headerName: "사은품코드"		, field: "itemCd"			, width: 100, cellClass: 'text-center'},
-	{headerName: "사은품명"		, field: "itemNm"			, width: 100, cellClass: 'text-center'},
+	{headerName: "사은품코드"		, field: "productNo"		, width: 150, cellClass: 'text-center'},
+	{headerName: "사은품명"		, field: "itemNm"			, width: 250, cellClass: 'text-center'},
 	{headerName: "사은품수량"		, field: "itemQty"			, width: 100, cellClass: 'text-center'},
-	{headerName: "옵션명"			, field: "optCd"			, width: 100, cellClass: 'text-center'},
-	{headerName: "옵션코드1"		, field: "optCd1"			, width: 100, cellClass: 'text-center'},
-	{headerName: "옵션코드2"		, field: "optCd2"			, width: 100, cellClass: 'text-center'},
 	{headerName: "삭제여부"		, field: "delYn"			, width: 100, cellClass: 'text-center'}
 ];
 var gridOptionsOrderFreeGiftInfo = gagaAgGrid.getGridOptions(columnDefsOrderFreeGiftInfo);
@@ -516,7 +540,6 @@ var columnDefsDeliveryInfo = [
 	{headerName: "주문구분"		, field: "exchGbNm"			, width: 80, cellClass: 'text-center'},
 	{headerName: "받는분"			, field: "recipNm"			, width: 80, cellClass: 'text-left', editable: true},
 	{headerName: "핸드폰번호"		, field: "recipPhnno"		, width: 120, cellClass: 'text-left', editable: true},
-	{headerName: "전화번호"		, field: "recipTelno"		, width: 120, cellClass: 'text-left', editable: true},
 	{
 		headerName		: "우편번호"		
 		, field			: "recipZipcode"
@@ -524,8 +547,8 @@ var columnDefsDeliveryInfo = [
 		, cellClass		: 'text-center'
 		, cellRenderer	: function (params) {
 			var rtnStr = ""
-			if (canChgDelvStat.includes(params.data.ordDtlStat)) {
-				// 배송지 수정 (주문배송, 교환배송)
+			
+			if (allCanYn == 'Y') {
 				rtnStr += params.value;
 				rtnStr += "<button type=\"button\" style=\"margin-left:10px\" class=\"btn btn-info\" onclick=\"fnOpenDaumAddr('" + params.node.rowIndex + "', 'ADDR');\">POST</button>";
 				rtnStr += "<button type=\"button\" class=\"btn btn-info\" onclick=\"fnUpdateOrderAddr('" + params.node.rowIndex + "');\">저장</button>";
@@ -999,6 +1022,19 @@ $(document).ready(function () {
 });
 
 $(document).ready(function () {
+	// 2021.05.11 그리드 높이정보 수정
+	var orderGoodsHeight 			= 170 + (30 * orderGoodsCnt);
+	var orderFreeGiftHeight 		= 100 + (30 * orderFreeGiftCnt);
+	var orderDeliveryAddrHeight 	= 100 + (30 * orderDeliveryAddrCnt);
+	var orderChangeHeight 			= 100 + (30 * orderChangeCnt);
+	var orderRefundHeight 			= 100 + (30 * orderRefundCnt);
+	
+	$("#gridOrderGoodsInfo").css("height"		, orderGoodsHeight+"px");
+	$("#gridOrderFreeGiftInfo").css("height"	, orderFreeGiftHeight+"px");
+	$("#gridDeliveryAddrInfo").css("height"		, orderDeliveryAddrHeight+"px");
+	$("#gridOrderChangeInfo").css("height"		, orderChangeHeight+"px");
+	$("#gridOrderRefundInfo").css("height"		, orderRefundHeight+"px");
+
 	$('#orderDetailContents').css("width", "97%").css("height", "96%");
 	
 	// 취소요청

+ 0 - 0
src/main/webapp/WEB-INF/views/order/OrderDetailFormBack20210122.html → src/main/webapp/WEB-INF/views/order/OrderDetailForm20210122.html


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

@@ -95,11 +95,20 @@
 							<div class="multiCheckBox" style="width:270px">
 								<button type="button" class="sltBtn" style="overflow-x: hidden; padding-right:5px;">[전체]</button>
 								<ul style="display: none; box-shadow: 3px 3px 3px; overflow-y: scroll; height: 112px;">
-									<li th:if="${ordDtlStatList}" th:each="oneData, status : ${ordDtlStatList}">
-										<label class="chkBox">
-											<input type="checkbox" name="multiOrdDtlStat" th:value="${oneData.cd}" th:text="|[${oneData.cd}] ${oneData.cdNm}|">
-										</label>
-									</li>
+									<th:block th:each="oneData, status : ${ordDtlStatList}">
+										<li>
+											<label class="chkBox">
+												<!-- 주문상세상태 주문접수 코드값 강제 설정 (입금대기) -->
+												<th:block th:if="${oneData.cd} == G013_00">
+													<input type="checkbox" name="multiOrdDtlStat" th:value="G013_10" th:text="|[G013_10] ${oneData.cdNm}|">
+												</th:block>
+												<th:block th:unless="${oneData.cd} == G013_00">
+													<input type="checkbox" name="multiOrdDtlStat" th:value="${oneData.cd}" th:text="|[${oneData.cd}] ${oneData.cdNm}|">
+												</th:block>
+												<!-- //주문상세상태 주문접수 코드값 강제 설정 (입금대기) -->
+											</label>
+										</li>
+									</th:block>
 								</ul>
 							</div>
 						</td>
@@ -118,8 +127,11 @@
 						<td>
 							<select name="chgGb">
 								<option value="">[전체]</option>
-								<option th:if="${chgGbList}" th:each="oneData, status : ${chgGbList}" th:value="${oneData.cd}"
-										th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+								<th:block th:each="oneData, status : ${chgGbList}">
+									<th:block th:unless="${oneData.cd} == 'G680_10'">
+										<option th:if="${chgGbList}" th:value="${oneData.cd}" th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+									</th:block>
+								</th:block>
 							</select>
 						</td>
 						<th>변경요청처리상태</th>
@@ -156,9 +168,11 @@
 					</tr>
 					<tr>
 						<th>상품코드</th>
-						<td>
+						<td colspan="5">
 							<input type="text" name="goodsCd" placeholder="" maxlength="20"/>
 						</td>
+						<!--  2021.05.11 주문상세단위목록조회 변경 -->
+						<!-- 
 						<th>사이즈</th>
 						<td>
 							<input type="text" name="sizeCd" placeholder="" maxlength="20"/>
@@ -167,6 +181,7 @@
 						<td>
 							<input type="text" name="goodsNm" placeholder="" maxlength="20"/>
 						</td>
+						 -->
 					</tr>
 					<tr>
 						<th>수취인명</th>
@@ -213,7 +228,7 @@
 			<ul class="panelBar">
 				<li>
 					<button type="button" class="btn btn-info btn-lg" onclick="fnOrderExcelList();">엑셀다운로드</button>
-					<button type="button" class="btn btn-info btn-lg" th:if="${userNo == 8 or userNo == 14 or userNo == 11}" onclick="fnCreateSampleOrder();">주문생성</button>
+					<!-- <button type="button" class="btn btn-info btn-lg" th:if="${userNo == 8 or userNo == 14 or userNo == 11}" onclick="fnCreateSampleOrder();">주문생성</button> -->
 				</li>
 				<li class="aR">
 					검색결과 : <strong><span id="rowCntOrderList">0</span> 건</strong>&nbsp;
@@ -365,27 +380,11 @@ var columnDefsOrderList = [
 				}
 			},
 			{
-				headerName		: "주문상세상태"
-				, field			: "ordDtlStat"
+				headerName		: "주문상태"
+				, field			: "ordDtlStatNm"
 				, width			: 120
 				, cellClass		: 'text-center'
 				, sortable		: true
-				, valueGetter	: function (params) {
-					var ordDtlStat = gagaAgGrid.lookupValue(ordDtlStatList, params.data.ordDtlStat);
-					var chgStat='';
-					if (params.data.ordDtlStat === '99') {
-						chgStat = gagaAgGrid.lookupValue(chgStatList, params.data.chgStat);
-						if (!gagajf.isNull(chgStat)) {
-							chgStat = chgStat.substr(0, 2);
-							if (params.data.soldoutYn === 'Y') {
-								chgStat = '품절';
-							}
-							ordDtlStat = ordDtlStat + '-' + chgStat;
-						}
-
-					}
-					return ordDtlStat;
-				}
 			},
 			{headerName: "출고처", field: "delvLocNm", width: 110, cellClass: 'text-center', sortable: true, hide:true},
 		]
@@ -397,13 +396,7 @@ var columnDefsOrderList = [
 			{headerName: "상품코드"	, field: "goodsCd"		, width: 100	, cellClass: 'text-center'	, sortable: true},
 			{headerName: "브랜드"		, field: "brandEnm"		, width: 100	, cellClass: 'text-center'	, sortable: true},
 			{headerName: "구성유형"	, field: "goodsTypeNm"	, width: 100	, cellClass: 'text-center'	, sortable: true},
-			{headerName: "상품명"		, field: "goodsNm"		, width: 200	, cellClass: 'text-center'	, sortable: true}
-		]
-	},
-	{
-		headerName	: "단품정보"
-		, cellClass	: 'text-center'
-		, children	: [
+			{headerName: "상품명"		, field: "goodsNm"		, width: 200	, cellClass: 'text-center'	, sortable: true},
 			{
 				headerName		: "이미지"
 				, field			: "sysImgNm"
@@ -413,26 +406,9 @@ var columnDefsOrderList = [
 				,cellRenderer	: function(params) {
 					return '<img width="60" src="'+ _goodsUrl+ "/" + params.value + '" alt=""  onerror="this.src=\'/image/no.gif\';"/>';
 				}
-			},			
-			{
-				headerName		: "단품코드"
-				, field			: "itemCd"
-				, width			: 100
-				, cellClass		: 'text-center'
-				, sortable		: true
-				, cellRenderer: function (params) {
-					var roleCd = [[${sessionInfo.roleCd}]];
-					if (!roleCd.startsWith("C")) {
-						return "<a href=\"javascript:void(0);\" onclick=\"cfnOpenGoodsDetailPopup('U','" + params.value + "');\">" + params.value + "</a>";
-					} else {
-						return params.value;
-					}
-				}
 			},
-			//{headerName: "옵션1"		, field: "optCd1"		, width: 60	, cellClass: 'text-center'	, sortable: true},
-			{headerName: "옵션1"		, field: "colorNm"		, width: 60		, cellClass: 'text-center'	, sortable: true},
-			{headerName: "옵션2"		, field: "optCd2"		, width: 60		, cellClass: 'text-center'	, sortable: true},
-			{headerName: "단품명"		, field: "itemNm"		, width: 200	, cellClass: 'text-left'	, sortable: true},
+			{headerName: "옵션1"		, field: "colorNm"		, width: 120	, cellClass: 'text-center'	, sortable: true},
+			{headerName: "옵션2"		, field: "optCd2"		, width: 120	, cellClass: 'text-center'	, sortable: true},
 			{
 				headerName		: "외부몰벤더"
 				, field			: "vendorId"
@@ -551,36 +527,6 @@ var columnDefsOrderList = [
 				}
 			},
 			{headerName: "품절처리자", field: "soldoutRegId", width: 120, cellClass: 'text-center'},
-			//{
-			//	headerName		: "변경요청번호"
-			//	, field			: "ordChgSq"
-			//	, width			: 120
-			//	, cellClass		: 'text-center'
-			//	, valueGetter	: function (params) {
-			//		return params.data.ordChgSq === 0 ? '' : params.data.ordChgSq;
-			//	}
-			//},
-			//{
-			//	headerName		: "변경구분"
-			//	, field			: "chgGb"
-			//	, width			: 120
-			//	, cellClass		: 'text-center'
-			//	, valueGetter: function (params) { 
-			//		return gagaAgGrid.lookupValue(chgGbList, params.data.chgGb); 
-			//	}
-			//},
-			//{
-			//	headerName		: "변경상태"
-			//	, field			: "chgStat"
-			//	, width			: 120
-			//	, cellClass		: 'text-center'
-			//	, valueGetter	: function (params) { 
-			//		return gagaAgGrid.lookupValue(chgStatList, params.data.chgStat); 
-			//	}
-			//},
-			//{headerName: "회수지시여부"		, field: "wdInvoiceSendYn"		, width: 100, cellClass: 'text-center'},
-			//{headerName: "회수택배사"		, field: "wdShipCompNm"			, width: 100, cellClass: 'text-center'},
-			//{headerName: "회수송장"		, field: "wdInvoiceNo"			, width: 120, cellClass: 'text-center'},
 			{headerName: "수취인명"		, field: "recipNm"				, width: 100, cellClass: 'text-center'},
 			{headerName: "수취인연락처"		, field: "recipPhnno"			, width: 120, cellClass: 'text-center'},
 			{headerName: "수취인주소"		, field: "recipAddr"			, width: 500, cellClass: 'text-left'},
@@ -615,7 +561,7 @@ $('#btnOrderSearch').on('click', function () {
 });
 
 var fnSearchList = function () {
-	var ordNo 	= $('#searchForm input[name=ordNo]').val();
+	var ordNo 	= $('#condition').val();
 	var stDate 	= $('#stDate').val();
 	var edDate 	= $('#edDate').val();
 
@@ -688,7 +634,7 @@ var fnReOpenOrderDetailPopup = function () {
 	cfnOpenOrderDetailPopup(currOrdNo);
 };
 	
-//자사/입점 변경여부
+// 자사/입점 변경여부
 $("#searchForm input[name=selfYn]").bind('click change', function () {
 	var radioValue = $(this).val();
 	var selfGb = "S";	// 자사 공급 업체
@@ -712,10 +658,10 @@ $('#searchForm select[name=supplyCompCd]').on('change', function() {
 		actionUrl = '/renderer/brand/AuthBrandlist';
 	}
 
-	cfnCreateMultiCombo(actionUrl,"multiBrand",  "[전체]",null, 'Y');
+	cfnCreateMultiCombo(actionUrl, "multiBrand",  "[전체]", null, 'Y');
 });
 
-//페이징
+// 페이징
 $('#searchForm select[name=pageSize]').on('change', function() {
 	$("#searchForm input[name=pageNo]").val('1');
 	fnGoodsListSearch($("#searchForm input[name=searchGb]").val());
@@ -724,8 +670,8 @@ $('#searchForm select[name=pageSize]').on('change', function() {
 // 초기설정
 $(document).ready(function() {
 	// 달력기능 활성화
-	cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '주문');
-	$('.btnToday').trigger('click');
+	cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '주문', 'X');
+	$('.btnRecentWeek').trigger('click');
 	gagaAgGrid.createGrid('gridOrderList', gridOptionsOrderList);
 	gridOptionsOrderList.api.hideOverlay();
 });

+ 764 - 0
src/main/webapp/WEB-INF/views/order/OrderListForm20210511.html

@@ -0,0 +1,764 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderListForm.html
+ * @desc    : 주문목록 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.11.16   jsh77b       최초 작성
+ *******************************************************************************
+ -->
+ <style>
+ .ag-neo .ag-cell.top-row-span {
+     border-bottom: 0px;
+}
+.ag-neo .ag-cell.bottom-row-span {
+     border-top: 0px;
+     text-indent: -100em;
+}
+ </style>
+ 
+<div id="main">
+	<!-- 메인타이틀 영역 -->
+	<div class="main-title">
+	</div>
+	<!-- //메인타이틀 영역 -->
+	
+	<!-- 메뉴 설명 -->
+	<div class="infoBox menu-desc">
+	</div>
+	
+	<form id="searchForm" name="searchForm" action="#" th:action="@{'/order/list'}">
+		<input type="hidden" id="searchGb" name="searchGb" />
+		
+		<!-- 패널 영역1 -->
+		<div class="panelStyle" >
+			<!-- 검색조건 영역 -->
+			<!-- TITLE -->
+			<div class="panelTitle">
+				<h3>
+					<i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">주문번호</font> 또는 <font color="red">검색조건</font> 하나를 꼭 입력해 주세요.
+				</h3>
+				<span class="panelControl">
+					<i class="fa fa-chevron-up"></i>
+				</span>
+			</div>
+			
+			<div class="panelContent">
+				<table class="frmStyle">
+					<colgroup>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+					</colgroup>
+					<tr>
+						<th>사이트</th>
+						<td>
+							<select name="siteCd">
+								<option value="">[전체]</option>
+								<option th:if="${siteCdList}" th:each="oneData, status : ${siteCdList}" th:value="${oneData.cd}"
+										th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+							</select>
+						</td>
+						<th>몰구분</th>
+						<td>
+							<select name="mallCd">
+								<option value="">[전체]</option>
+								<option th:if="${mallGbList}" th:each="oneData, status : ${mallGbList}" th:value="${oneData.cd}"
+										th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+							</select>
+						</td>
+						<th>업체/브랜드<em class="required" title="필수"></em></th>
+						<td colspan="3">
+							<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnY" value="Y"  checked/>자사</label>
+							<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnN" value="N"/>입점</label>
+							<select name="supplyCompCd" id="supplyCompCd">
+								<option value="" th:if="${sessionInfo.roleCd} != 'G001_B000'">[전체]</option>
+								<option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+							</select>
+							<span id="multiBrand"></span>
+						</td>
+					</tr>
+					<tr>
+						<th>주문상세상태</th>
+						<td colspan="5">
+							<div class="multiCheckBox" style="width:270px">
+								<button type="button" class="sltBtn" style="overflow-x: hidden; padding-right:5px;">[전체]</button>
+								<ul style="display: none; box-shadow: 3px 3px 3px; overflow-y: scroll; height: 112px;">
+									<th:block th:each="oneData, status : ${ordDtlStatList}">
+										<li>
+											<label class="chkBox">
+												<!-- 주문상세상태 주문접수 코드값 강제 설정 (입금대기) -->
+												<th:block th:if="${oneData.cd} == G013_00">
+													<input type="checkbox" name="multiOrdDtlStat" th:value="G013_10" th:text="|[G013_10] ${oneData.cdNm}|">
+												</th:block>
+												<th:block th:unless="${oneData.cd} == G013_00">
+													<input type="checkbox" name="multiOrdDtlStat" th:value="${oneData.cd}" th:text="|[${oneData.cd}] ${oneData.cdNm}|">
+												</th:block>
+												<!-- //주문상세상태 주문접수 코드값 강제 설정 (입금대기) -->
+											</label>
+										</li>
+									</th:block>
+								</ul>
+							</div>
+						</td>
+						<th rowspan="5">키워드<i class="star"></i></th>
+						<td rowspan="5">
+							<select name="search" id="search">
+								<option value="searchOrdNo">주문번호</option>
+								<option value="searchExtmallOrderId">외부몰주문번호</option>
+								<option value="searchAgentOrderId">에이전트주문번호</option>
+							</select>
+							<textarea class="textareaR3 w70p" name="condition" id="condition"></textarea>
+						</td>
+					</tr>
+					<tr>
+						<th>변경구분</th>
+						<td>
+							<select name="chgGb">
+								<option value="">[전체]</option>
+								<th:block th:each="oneData, status : ${chgGbList}">
+									<th:block th:unless="${oneData.cd} == 'G680_10'">
+										<option th:if="${chgGbList}" th:value="${oneData.cd}" th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+									</th:block>
+								</th:block>
+							</select>
+						</td>
+						<th>변경요청처리상태</th>
+						<td>
+							<select name="chgStat">
+								<option value="">[전체]</option>
+								<option value="9999">[품절취소]</option>
+								<option th:if="${chgStatList}" th:each="oneData, status : ${chgStatList}" th:value="${oneData.cd}"
+										th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+							</select>
+						</td>
+						<th>결제수단</th>
+						<td>
+							<select name="payMeans">
+								<option value="">[전체]</option>
+								<option th:if="${payMeansList}" th:each="oneData, status : ${payMeansList}" th:value="${oneData.cd}"
+										th:text="|[${oneData.cd}] ${oneData.cdNm}|"></option>
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<th>주문자명</th>
+						<td>
+							<input type="text" name="orderNm" placeholder="" maxlength="20"/>
+						</td>
+						<th>고객ID</th>
+						<td>
+							<input type="text" name="custId" placeholder="" maxlength="20"/>
+						</td>
+						<th>주문자휴대폰번호</th>
+						<td>
+							<input type="text" name="orderPhnno" placeholder="" maxlength="20"/>
+						</td>
+					</tr>
+					<tr>
+						<th>상품코드</th>
+						<td>
+							<input type="text" name="goodsCd" placeholder="" maxlength="20"/>
+						</td>
+						<!--  2021.05.11 주문상세단위목록조회 변경 -->
+						<!-- 
+						<th>사이즈</th>
+						<td>
+							<input type="text" name="sizeCd" placeholder="" maxlength="20"/>
+						</td>
+						<th>단품명</th>
+						<td>
+							<input type="text" name="goodsNm" placeholder="" maxlength="20"/>
+						</td>
+						 -->
+					</tr>
+					<tr>
+						<th>수취인명</th>
+						<td>
+							<input type="text" name="recipNm" placeholder="" maxlength="20"/>
+						</td>
+						<th>송장번호</th>
+						<td>
+							<input type="text" name="invoiceNo" placeholder="" maxlength="20"/>
+						</td>
+						<th>회수지시전송여부</th>
+						<td>
+							<select name="wdInvoiceSendYn" class="w150">
+								<option value="">전체</option>
+								<option value="Y">전송</option>
+								<option value="N">미전송</option>
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<th>조회일자</th>
+						<td colspan="7">
+							<select name="searchDateGb">
+								<option value="ordDt">주문일자</option>
+								<option value="delvStdt">출고일자</option>
+								<option value="soldoutDt">품절일자</option>
+							</select>
+							<span id="terms"></span>
+						</td>
+					</tr>
+				</table>
+				
+				<ul class="panelBar">
+					<li class="center">
+						<button type="button" class="btn btn-info btn-lg" id="btnOrderSearch">조회</button>
+						<button type="button" class="btn btn-gray btn-lg" id="btnInit">초기화</button>
+					</li>
+				</ul>
+				
+			</div>
+		</div>
+
+		<div class="panelStyle">
+			<ul class="panelBar">
+				<li>
+					<button type="button" class="btn btn-info btn-lg" onclick="fnOrderExcelList();">엑셀다운로드</button>
+					<button type="button" class="btn btn-info btn-lg" th:if="${userNo == 8 or userNo == 14 or userNo == 11}" onclick="fnCreateSampleOrder();">주문생성</button>
+				</li>
+				<li class="aR">
+					검색결과 : <strong><span id="rowCntOrderList">0</span> 건</strong>&nbsp;
+					쪽번호 <span id="pgNo">0</span>/ <strong id="endPgNo">0</strong>&nbsp;&nbsp;
+					<select id="pageSize" name="pageSize">
+						<option value="100" selected="selected">100개씩 보기</option>
+						<option value="500">500개씩 보기</option>
+						<option value="1000">1000개씩 보기</option>
+						<option value="5000">5000개씩 보기</option>
+					</select>
+					<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
+				</li>
+			</ul>
+			
+			<div class="panelContent" style="overflow: hidden;">
+				<div id="gridOrderList" style="width: 100%; height: 600px;" class="ag-theme-balham lh60"></div>
+			</div>
+
+			<ul class="panelBar">
+				<li class="center">
+					<div class="tablePaging" id="orderListPagination"></div>
+				</li>
+			</ul>
+		</div>
+
+	</form>
+</div>
+
+<label class="off">
+	<a href="javascript:void(0);" id="hdOrderExcelList" style="display: none;">엑셀다운로드</a>
+</label>
+
+<script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js?v=20210114"></script>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+var sessRoleCd 		= [[${sessionInfo.roleCd}]];
+var siteCdList 		= gagajf.convertToArray([[${siteCdList}]]);
+var mallGbList 		= gagajf.convertToArray([[${mallGbList}]]);
+var ordDtlStatList 	= gagajf.convertToArray([[${ordDtlStatList}]]);
+var payMeansList 	= gagajf.convertToArray([[${payMeansList}]]);
+var chgStatList 	= gagajf.convertToArray([[${chgStatList}]]);
+var chgGbList 		= gagajf.convertToArray([[${chgGbList}]]);
+var formalGbList 	= gagajf.convertToArray([[${formalGbList}]]);
+var frontGbList 	= {'P': 'PC', 'M': 'MO'};
+var uploadGoodsUrl 	= [[${@environment.getProperty('upload.goods.view')}]];
+
+// 1. 주문기본정보
+var columnDefsOrderList = [
+	{
+		headerName	: "주문기본정보"
+		, cellClass	: 'text-center'
+		, children	: [
+			{
+				headerName		: "주문번호"
+				, field			: 'ordNo'
+				, width			: 80
+				, cellClass		: 'text-center'
+				, sortable		: true
+				, cellRenderer	: function (params) {
+					var roleCd = [[${sessionInfo.roleCd}]];
+					if (!roleCd.startsWith("C")) {
+						return "<a href=\"javascript:void(0);\" onclick=\"fnOpenOrderDetailPopup('" + params.value + "');\">" + params.value + "</a>";
+					} else {
+						return params.value;
+					}
+				}
+			},
+			{
+				headerName		: "주문자"
+				, field			: "ordNm"
+				, width			: 100
+				, cellClass		: 'text-left'
+				, sortable		: true
+				, cellRenderer	: function (params) {
+					var custNo = '';
+					if (!gagajf.isNull(params.data.custNo)) {
+						custNo = params.data.custNo;
+					}
+					
+					var roleCd = [[${sessionInfo.roleCd}]];
+					if (!roleCd.startsWith("C") && !gagajf.isNull(params.data.custNo)  && params.data.mallGb === '10' ) {
+						return '<a href="javascript:void(0);" onclick=\"cfnOpenCustDetailPopup(' + params.data.custNo + ');\">' + params.value + '(' + custNo + ')' + '</a>';
+					} else {
+						return params.value + '(' + custNo + ')';
+					}
+				}
+			},
+			{headerName: "고객고유번호"	, field: "custNo"		, width: 120, cellClass: 'text-center', hide: true},
+			{headerName: "외부몰"		, field: "extmallNm"	, width: 100, cellClass: 'text-center', sortable: true},
+			{headerName: "휴대폰번호"	, field: "orderPhnno"	, width: 120, cellClass: 'text-center', hide: true},
+			{
+				headerName		: "사이트"
+				, field			: "siteCd"
+				, width			: 80
+				, cellClass		: 'text-center'
+				, hide			: true
+				, valueGetter	: function (params) { 
+					return gagaAgGrid.lookupValue(siteCdList, params.data.siteCd); 
+				}
+			},
+			{
+				headerName		: "프론트"
+				, field			: "frontGb"
+				, width			: 80
+				, cellClass		: 'text-center'
+				, sortable		: true
+				, valueGetter	: function (params) { 
+					return gagaAgGrid.lookupValue(frontGbList, params.data.frontGb); 
+				}
+			},
+			{
+				headerName		: "몰구분"
+				, field			: "mallGb"
+				, width			: 60
+				, cellClass		: 'text-center'
+				, hide			: true
+				, valueGetter	: function (params) { 
+					return gagaAgGrid.lookupValue(mallGbList, params.data.mallGb); 
+				}
+			},
+			{
+				headerName		: "주문일시"
+				, field			: "ordDt"
+				, width			: 140
+				, cellClass		: 'text-center'
+				, sortable		: true
+				, valueGetter	: function (params) { 
+					return gagaAgGrid.toDateTimeFormat(params.data.ordDt); 
+				}
+			},
+			{
+				headerName		: "결제수단"
+				, field			: "payMeans"
+				, width			: 100
+				, cellClass		: 'text-center'
+				, hide			: true
+				, valueGetter	: function (params) { 
+					return gagaAgGrid.lookupValue(payMeansList, params.data.payMeans); 
+				}
+			},
+			{
+				headerName		: "신규/교환"
+				, field			: "ordExchGb"
+				, width			: 100
+				, cellClass		: 'text-center',
+				valueGetter 	: function (params) {
+					return params.data.ordExchGb === 'O' ? '신규' : '교환';
+				}
+			},
+			{
+				headerName		: "주문상세상태"
+				, field			: "ordDtlStat"
+				, width			: 120
+				, cellClass		: 'text-center'
+				, sortable		: true
+				, valueGetter	: function (params) {
+					var ordDtlStat = gagaAgGrid.lookupValue(ordDtlStatList, params.data.ordDtlStat);
+					var chgStat='';
+					if (params.data.ordDtlStat === '99') {
+						chgStat = gagaAgGrid.lookupValue(chgStatList, params.data.chgStat);
+						if (!gagajf.isNull(chgStat)) {
+							chgStat = chgStat.substr(0, 2);
+							if (params.data.soldoutYn === 'Y') {
+								chgStat = '품절';
+							}
+							ordDtlStat = ordDtlStat + '-' + chgStat;
+						}
+
+					}
+					return ordDtlStat;
+				}
+			},
+			{headerName: "출고처", field: "delvLocNm", width: 110, cellClass: 'text-center', sortable: true, hide:true},
+		]
+	},
+	{
+		headerName	: "상품정보"
+		, cellClass	: 'text-center'
+		, children	: [
+			{headerName: "상품코드"	, field: "goodsCd"		, width: 100	, cellClass: 'text-center'	, sortable: true},
+			{headerName: "브랜드"		, field: "brandEnm"		, width: 100	, cellClass: 'text-center'	, sortable: true},
+			{headerName: "구성유형"	, field: "goodsTypeNm"	, width: 100	, cellClass: 'text-center'	, sortable: true},
+			{headerName: "상품명"		, field: "goodsNm"		, width: 200	, cellClass: 'text-center'	, sortable: true}
+		]
+	},
+	{
+		headerName	: "단품정보"
+		, cellClass	: 'text-center'
+		, children	: [
+			{
+				headerName		: "이미지"
+				, field			: "sysImgNm"
+				, width			: 100
+				, height		: 60
+				, cellClass		: 'text-center'
+				,cellRenderer	: function(params) {
+					return '<img width="60" src="'+ _goodsUrl+ "/" + params.value + '" alt=""  onerror="this.src=\'/image/no.gif\';"/>';
+				}
+			},			
+			{
+				headerName		: "단품코드"
+				, field			: "itemCd"
+				, width			: 100
+				, cellClass		: 'text-center'
+				, sortable		: true
+				, cellRenderer: function (params) {
+					var roleCd = [[${sessionInfo.roleCd}]];
+					if (!roleCd.startsWith("C")) {
+						return "<a href=\"javascript:void(0);\" onclick=\"cfnOpenGoodsDetailPopup('U','" + params.value + "');\">" + params.value + "</a>";
+					} else {
+						return params.value;
+					}
+				}
+			},
+			//{headerName: "옵션1"		, field: "optCd1"		, width: 60	, cellClass: 'text-center'	, sortable: true},
+			{headerName: "옵션1"		, field: "colorNm"		, width: 60		, cellClass: 'text-center'	, sortable: true},
+			{headerName: "옵션2"		, field: "optCd2"		, width: 60		, cellClass: 'text-center'	, sortable: true},
+			{headerName: "단품명"		, field: "itemNm"		, width: 200	, cellClass: 'text-left'	, sortable: true},
+			{
+				headerName		: "외부몰벤더"
+				, field			: "vendorId"
+				, width			: 110
+				, cellClass		: 'text-center'
+				, hide			: true
+				, valueGetter	: function (params) { 
+					return gagaAgGrid.lookupValue(vendorList, params.data.vendorId); 
+				}
+			},
+			{headerName: "외부몰주문번호"	, field: "extmallOrderId"	, width: 150, cellClass: 'textFormat', sortable: true},
+			{headerName: "외부몰부주문번호"	, field: "agentOrderId"		, width: 120, cellClass: 'textFormat', sortable: true},
+			{
+				headerName		: "주문수량"
+				, field			: "ordQty"
+				, width			: 80
+				, cellClass		: 'text-center'
+				, valueGetter: function (params) { 
+					return params.data.ordQty.addComma(); 
+				}
+			},
+			{
+				headerName		: "취소수량"
+				, field			: "cnclRtnQty"
+				, width			: 80
+				, cellClass		: 'text-center'
+				, valueGetter	: function (params) { 
+					return params.data.cnclRtnQty.addComma(); 
+				}
+			},
+			{
+				headerName		: "주문금액"
+				, field			: "ordAmt"
+				, width			: 80
+				, cellClass		: 'text-right'
+				, valueGetter	: function (params) { 
+					return params.data.ordAmt.addComma(); 
+				}
+			},
+			{
+				headerName		: "취소반품금액"
+				, field			: "cnclRtnAmt"
+				, width			: 120
+				, cellClass		: 'text-right'
+				, valueGetter	: function (params) { 
+					return params.data.cnclRtnAmt.addComma(); 
+				}
+			},
+			{
+				headerName		: "총할인금액"
+				, field			: "totDcAmt"
+				, width			: 120
+				, cellClass		: 'text-right'
+				, valueGetter: function (params) { 
+					return params.data.totDcAmt.addComma(); 
+				}
+			},
+			{
+				headerName		: "실판매금액"
+				, field			: "realOrdAmt"
+				, width			: 100
+				, cellClass		: 'text-right'
+				, valueGetter	: function (params) { 
+					return params.data.realOrdAmt.addComma(); 
+				}
+			},
+			{headerName: "원코드"		, field: "supplyGoodsCd"	, width: 130, cellClass: 'text-center', sortable: true},
+			{
+				headerName		: "정상/이월"
+				, field			: "formalGb"
+				, width			: 100
+				, cellClass		: 'text-center'
+				, sortable		: true 
+				, valueGetter	: function (params) { 
+					return gagaAgGrid.lookupValue(formalGbList, params.data.formalGb); 
+				}
+			},
+			{
+				headerName		: "출고처지정일시"
+				, field			: "delvAssignDt"
+				, width			: 150
+				, cellClass		: 'text-center'
+				, valueGetter	: function (params) { 
+					return gagaAgGrid.toDateTimeFormat(params.data.delvAssignDt); 
+				}
+			},
+			{
+				headerName		: "송장출력일시"
+				, field			: "invoiceDt"
+				, width			: 150
+				, cellClass		: 'text-center'
+				, valueGetter	: function (params) { 
+					return gagaAgGrid.toDateTimeFormat(params.data.invoiceDt); 
+				}
+			},
+			{headerName: "출고택배사"		, field: "shipCompNm"	, width: 150, cellClass: 'text-center'},
+			{headerName: "출고송장"		, field: "invoiceNo"	, width: 150, cellClass: 'text-center'},
+			{
+				headerName		: "출고일시"
+				, field			: "delvResDt"
+				, width			: 150
+				, cellClass		: 'text-center'
+				, valueGetter: function (params) { 
+					return gagaAgGrid.toDateTimeFormat(params.data.delvResDt); 
+				}
+			},
+			{headerName: "품절여부"		, field: "soldoutYn"	, width: 90		, cellClass: 'text-center', sortable: true},
+			{headerName: "품절메모"		, field: "soldoutMemo"	, width: 120	, cellClass: 'text-left'},
+			{
+				headerName		: "품절일시"
+				, field			: "soldoutRegDt"
+				, width			: 150
+				, cellClass		: 'text-center'
+				, valueGetter	: function (params) { 
+					return gagaAgGrid.toDateTimeFormat(params.data.soldoutRegDt); 
+				}
+			},
+			{headerName: "품절처리자", field: "soldoutRegId", width: 120, cellClass: 'text-center'},
+			//{
+			//	headerName		: "변경요청번호"
+			//	, field			: "ordChgSq"
+			//	, width			: 120
+			//	, cellClass		: 'text-center'
+			//	, valueGetter	: function (params) {
+			//		return params.data.ordChgSq === 0 ? '' : params.data.ordChgSq;
+			//	}
+			//},
+			//{
+			//	headerName		: "변경구분"
+			//	, field			: "chgGb"
+			//	, width			: 120
+			//	, cellClass		: 'text-center'
+			//	, valueGetter: function (params) { 
+			//		return gagaAgGrid.lookupValue(chgGbList, params.data.chgGb); 
+			//	}
+			//},
+			//{
+			//	headerName		: "변경상태"
+			//	, field			: "chgStat"
+			//	, width			: 120
+			//	, cellClass		: 'text-center'
+			//	, valueGetter	: function (params) { 
+			//		return gagaAgGrid.lookupValue(chgStatList, params.data.chgStat); 
+			//	}
+			//},
+			//{headerName: "회수지시여부"		, field: "wdInvoiceSendYn"		, width: 100, cellClass: 'text-center'},
+			//{headerName: "회수택배사"		, field: "wdShipCompNm"			, width: 100, cellClass: 'text-center'},
+			//{headerName: "회수송장"		, field: "wdInvoiceNo"			, width: 120, cellClass: 'text-center'},
+			{headerName: "수취인명"		, field: "recipNm"				, width: 100, cellClass: 'text-center'},
+			{headerName: "수취인연락처"		, field: "recipPhnno"			, width: 120, cellClass: 'text-center'},
+			{headerName: "수취인주소"		, field: "recipAddr"			, width: 500, cellClass: 'text-left'},
+			{
+				headerName		: "배송메모"
+				, field			: "delvMemo"
+				, width			: 200
+				, cellClass		: 'left'
+				, valueGetter: function (params) {
+					var delvMemo = '';
+					if (!gagajf.isNull(params.data.delvMemo)) {
+						delvMemo = fnRemoveEmojis(params.data.delvMemo);
+					}
+					return delvMemo;
+				}
+			},
+			{headerName: "출고메모", field: "dstrbtNote", width: 200, cellClass: 'left'}
+		]
+	}
+];
+
+var gridOptionsOrderList = gagaAgGrid.getGridOptions(columnDefsOrderList);
+
+gridOptionsOrderList.rowHeight = 60; //이미지가 있을경우 높이 지정해야함.
+
+// 최근상세보기한 주문번호
+var currOrdNo = '';
+
+// 조회
+$('#btnOrderSearch').on('click', function () {
+	fnSearchList();
+});
+
+var fnSearchList = function () {
+	var ordNo 	= $('#condition').val();
+	var stDate 	= $('#stDate').val();
+	var edDate 	= $('#edDate').val();
+
+	if (gagajf.isNull(ordNo)) {
+		if (gagajf.isNull(stDate)) {
+			mcxDialog.alert('시작 기간을 입력하세요.');
+			return;
+		}
+
+		if (gagajf.isNull(edDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+	
+	gagaPaging.init('searchForm', fnSearchCallBack, 'orderListPagination', $('#searchForm').find('#pageSize').val());
+	gagaPaging.load($("#searchForm input[name=pageNo]").val());
+	
+	// 2020.12.08 페이징 처리 때문에 주석 처리
+	//gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptionsOrderList, '#searchForm', function (result) {
+		//$("#rowCntOrderList").text(gridOptionsOrderList.api.getDisplayedRowCount());
+		// 주문리스트 합계 정보
+		//gagajf.ajaxFormSubmit('/order/list/sum/info', '#searchForm', fnOrderListSumInfoCallback);
+	//});
+};
+
+var fnSearchCallBack = function(result){
+	$('#searchForm').find('#gridRowTotalCount').html(result.pageing.pageable.totalCount.addComma());
+	$('#searchForm').find('#pageNo').val(result.pageing.pageable.pageNo.addComma());
+	$('#searchForm').find('#pgNo').html(result.pageing.pageable.pageNo.addComma());
+	$('#searchForm').find('#endPgNo').html(result.pageing.pageable.totalPage.addComma());
+	
+	gridOptionsOrderList.api.setRowData(result.orderList);
+	gagaPaging.createPagination(result.pageing.pageable);
+}
+
+// 엑셀조회
+$("#btnSearchExcel").on('click', function () {
+	cfnExcelUploadPopup('', 'fnExcelUpoadCallback');
+});
+
+var fnExcelUpoadCallback = function (data) {
+	$("#excelFileNm").val(data.excelFileNm);
+	gagaAgGrid.fetch('/order/excel/search', gridOptionsOrderList, '#searchForm', function () {
+		$("#rowCntOrderList").text(gridOptionsOrderList.api.getDisplayedRowCount());
+	});
+};
+
+// 초기화 클릭시
+$('#btnInit').on('click', function() {
+	$('#searchForm')[0].reset();
+	$("#multiBrand").empty();
+});
+
+// 엑셀 다운로드
+// 2020.12.11 현재는 그리드의 조회 목록을 엑셀 다운로드 하고 있지만 추후 에는 조건의 엑셀 조회 후 다운로드 기능으로 변경 해야 할듯함
+// 기존의 주문목록은 페이징 기능이 없었지만 페이징 기능을 추가 하면서 엑셀다운로드시 조회 후 파일다운 기능 필요  
+var fnOrderExcelList = function () {
+	gagaAgGrid.showOrHideColumn(gridOptionsOrderList	, "custNo", true);
+	gagaAgGrid.exportToExcel('주문목록'					, gridOptionsOrderList);
+	gagaAgGrid.showOrHideColumn(gridOptionsOrderList	, "custNo", false);
+};
+
+var fnOpenOrderDetailPopup = function (ordNo) {
+	currOrdNo = ordNo;
+	cfnOpenOrderDetailPopup(ordNo);
+};
+
+var fnReOpenOrderDetailPopup = function () {
+	cfnOpenOrderDetailPopup(currOrdNo);
+};
+	
+// 자사/입점 변경여부
+$("#searchForm input[name=selfYn]").bind('click change', function () {
+	var radioValue = $(this).val();
+	var selfGb = "S";	// 자사 공급 업체
+	
+	if (radioValue == "N"){
+		selfGb = "E";	//입점 공급업체
+	}
+	
+	var actionUrl = '/renderer/supply/company/list/'+ selfGb;	
+
+	$('#searchForm').find('#multiBrand').empty();
+
+	cfnCreateCombo(actionUrl, $('#searchForm select[name=supplyCompCd]'), "[전체]", "");
+});
+	
+// 업체변경시
+$('#searchForm select[name=supplyCompCd]').on('change', function() {
+	var actionUrl = '/renderer/supplyCompany/brand/list/' + $(this).val();
+
+	if(sessRoleCd == "G001_B000"){
+		actionUrl = '/renderer/brand/AuthBrandlist';
+	}
+
+	cfnCreateMultiCombo(actionUrl, "multiBrand",  "[전체]", null, 'Y');
+});
+
+// 페이징
+$('#searchForm select[name=pageSize]').on('change', function() {
+	$("#searchForm input[name=pageNo]").val('1');
+	fnGoodsListSearch($("#searchForm input[name=searchGb]").val());
+});
+
+// 초기설정
+$(document).ready(function() {
+	// 달력기능 활성화
+	cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '주문', 'X');
+	$('.btnToday').trigger('click');
+	gagaAgGrid.createGrid('gridOrderList', gridOptionsOrderList);
+	gridOptionsOrderList.api.hideOverlay();
+});
+
+var fnCreateSampleOrder = function() {
+	var actionUrl = "/order/sample/create/form";
+	cfnOpenModalPopup(actionUrl, "popupOrderSample");
+}
+
+var fnRemoveEmojis = function (str) {
+	var regex = /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g;
+	return str.replace(regex, '');
+};
+</script>
+
+</html>
+
+
+
+
+