Преглед на файлове

통계 => 시간별 주문 작업중

LMC преди 4 години
родител
ревизия
5043f38fa9

+ 8 - 0
src/main/java/com/style24/admin/biz/dao/TsaStatisticsDao.java

@@ -65,4 +65,12 @@ public interface TsaStatisticsDao {
 	 */
 	Collection<Statistics> getBrandOrderList(Statistics statistics);
 
+	/**
+	 * 시간별 주문 조회
+	 * @return Collection<Statistics>
+	 * @author lmc
+	 * @since 2021. 9. 16.
+	 */
+	Collection<Statistics> getHourlyOrderList(Statistics statistics);
+
 }

+ 10 - 0
src/main/java/com/style24/admin/biz/service/TsaStatisticsService.java

@@ -86,4 +86,14 @@ public class TsaStatisticsService {
 		return statisticsDao.getBrandOrderList(statistics);
 	}
 
+	/**
+	 * 시작별 주문 조회
+	 * @return Collection<Statistics>
+	 * @author lmc
+	 * @since 2021. 9. 16.
+	 */
+	public Collection<Statistics> getHourlyOrderList(Statistics statistics) {
+		return statisticsDao.getHourlyOrderList(statistics);
+	}
+
 }

+ 66 - 0
src/main/java/com/style24/admin/biz/web/TsaStatisticsController.java

@@ -343,6 +343,12 @@ public class TsaStatisticsController extends TsaBaseController {
 		return mav;
 	}
 
+	/**
+	 * 브랜드 주문 리스트 조회
+	 * @return Collection<Statistics>
+	 * @author lmc
+	 * @since 2021. 9. 16.
+	 */
 	@PostMapping("/brand/order/list")
 	@ResponseBody
 	public Collection<Statistics> getBrandOrderList(@RequestBody Statistics statistics) {
@@ -378,4 +384,64 @@ public class TsaStatisticsController extends TsaBaseController {
 		return statisticsService.getBrandOrderList(statistics);
 	}
 
+
+	/**
+	 * 시간별 주문 화면
+	 * @return ModelAndView
+	 * @author lmc
+	 * @since 2021. 9. 16.
+	 */
+	@GetMapping("/hourly/trading/form")
+	public ModelAndView hourlyTradingForm() {
+		ModelAndView mav = new ModelAndView();
+
+		// 정상이월구분
+		mav.addObject("formalGbList", rendererService.getAvailCommonCodeList("G009"));
+
+		mav.setViewName("statistics/HourlyTradingForm");
+		return mav;
+	}
+
+	/**
+	 * 시간별 주문 조회
+	 * @return Collection<Statistics>
+	 * @author lmc
+	 * @since 2021. 9. 16.
+	 */
+	@PostMapping("/hourly/order/list")
+	@ResponseBody
+	public Collection<Statistics> getHourlyOrderList(@RequestBody Statistics statistics) {
+
+		if (!StringUtils.isBlank(statistics.getExtmallIdList())) {
+			statistics.setMultiExtmallId(statistics.getExtmallIdList().split(","));
+		}
+
+		if (!StringUtils.isBlank(statistics.getSupplyCompCdList())) {
+			statistics.setMultiSupplyCompCd(statistics.getSupplyCompCdList().split(","));
+		}
+
+		if (!StringUtils.isBlank(statistics.getAfLinkCdList())) {
+			statistics.setMultiAfLinkCd(statistics.getAfLinkCdList().split(","));
+		}
+
+		if (!StringUtils.isBlank(statistics.getBrandCdList())) {
+			statistics.setMultiBrandCd(statistics.getBrandCdList().split(","));
+		}
+
+		if (!StringUtils.isBlank(statistics.getItemkindCdList())) {
+			statistics.setMultiItemkindCd(statistics.getItemkindCdList().split(","));
+		}
+
+		if (!StringUtils.isBlank(statistics.getGoodsCd())) {
+			statistics.setMultiGoodsCd(statistics.getGoodsCd().split(System.lineSeparator()));
+		}
+
+		if (!StringUtils.isBlank(statistics.getFormalGb())) {
+			statistics.setMultiFrontGb(statistics.getExtmallIdList().split(","));
+		}
+
+		return statisticsService.getHourlyOrderList(statistics);
+	}
+
+
 }

+ 68 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaStatistics.xml

@@ -738,4 +738,72 @@
 		ORDER BY SELF_YN DESC, BRAND_ENM
 	</select>
 
+	<!-- 시간별 주문 조회 -->
+	<select id="getHourlyOrderList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getHourlyOrderList */
+		WITH TAB AS (
+		    SELECT
+		        DATE_FORMAT(DAY_TIME, '%H') AS HOUR
+		        , SUM(ORD_AMT) AS ORD_AMT /*매출*/
+		        , SUM(ORD_CUST) AS ORD_CUST /*주문자수*/
+		        , SUM(ORD_CNT) AS ORD_CNT /*주문수*/
+		        , SUM(SELL_QTY) AS SELL_QTY /*판매수*/
+		        , FLOOR(AVG(CUST_PRICE)) AS CUST_PRICE /*객단가*/
+		        , SUM(CNCL_QTY) AS CNCL_QTY /*취반품개수*/
+		        , SUM(CNCL_AMT) AS CNCL_AMT /*취반품액*/
+		    FROM TB_STAT_ORD_TIME A
+		    WHERE 1=1
+		        /* 직전동기간 */
+		        <![CDATA[
+		        AND A.DAY_TIME >= DATE_ADD(DATE_FORMAT(#{startDt},'%Y-%m-%d'), INTERVAL (DATE_FORMAT('20210901', '%Y%m%d') - DATE_FORMAT('20210906', '%Y%m%d')) -1  DAY)
+		        AND A.DAY_TIME < DATE_ADD(DATE_FORMAT(#{endDt}, '%Y%m%d'), INTERVAL (DATE_FORMAT('20210901', '%Y%m%d') - DATE_ADD(DATE_FORMAT('20210906', '%Y%m%d'), INTERVAL 1 DAY)) * -1 DAY)
+		        ]]>
+		        /* 전년동기간 */
+		        <![CDATA[
+		        AND A.DAY_TIME >= DATE_ADD(DATE_FORMAT(#{startDt}, '%Y%m%d'), INTERVAL -1 YEAR )
+		        AND A.DAY_TIME < DATE_ADD(DATE_ADD(DATE_FORMAT(#{endDt}, '%Y%m%d'), INTERVAL 1 DAY), INTERVAL -1 YEAR )
+		        ]]>
+
+		        /* 직접선택 */
+		        <![CDATA[
+		        AND A.DAY_TIME >= DATE_FORMAT(#{startDt}, '%Y%m%d')
+		        AND A.DAY_TIME < DATE_FORMAT(#{endDt}, '%Y%m%d')
+		        ]]>
+		        AND A.SHOT_DELV_YN = 'Y' /*총알배송*/
+		    GROUP BY HOUR
+		)
+		SELECT
+		    A.HOUR
+		    , A.ORD_AMT /*매출*/
+		    , B.ORD_AMT AS COMP_ORD_AMT /*비교*/
+		    , ROUND(FLOOR(A.ORD_AMT / B.ORD_AMT * 100 * 100) / 100, 2) AS CPL_RATE /*달성율*/
+		    , A.ORD_CUST /*주문자수*/
+		    , A.ORD_CNT /*주문수*/
+		    , A.SELL_QTY /*판매수*/
+		    , A.CUST_PRICE /*객단가*/
+		    , A.CNCL_QTY /*취반품개수*/
+		    , A.CNCL_AMT /*취반품액*/
+		FROM (
+		    SELECT
+		        DATE_FORMAT(DAY_TIME, '%H') AS HOUR
+		        , SUM(ORD_AMT) AS ORD_AMT /*매출*/
+		        , SUM(ORD_CUST) AS ORD_CUST /*주문자수*/
+		        , SUM(ORD_CNT) AS ORD_CNT /*주문수*/
+		        , SUM(SELL_QTY) AS SELL_QTY /*판매수*/
+		        , FLOOR(AVG(CUST_PRICE)) AS CUST_PRICE /*객단가*/
+		        , SUM(CNCL_QTY) AS CNCL_QTY /*취반품개수*/
+		        , SUM(CNCL_AMT) AS CNCL_AMT /*취반품액*/
+		    FROM TB_STAT_ORD_TIME A
+		    WHERE 1=1
+		      <![CDATA[
+		      AND A.DAY_TIME >= DATE_FORMAT(#{startDt}, '%Y%m%d')
+		      AND A.DAY_TIME < DATE_ADD(DATE_FORMAT(#{endDt}, '%Y%m%d'), INTERVAL 1 DAY)
+		      ]]>
+		      AND A.SHOT_DELV_YN = 'Y' -- 총알배송
+		    GROUP BY HOUR
+		) A
+		LEFT OUTER JOIN TAB B ON A.HOUR = B.HOUR
+		ORDER BY A.HOUR
+	</select>
+
 </mapper>

+ 434 - 0
src/main/webapp/WEB-INF/views/statistics/HourlyTradingForm.html

@@ -0,0 +1,434 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : HourlyTradingForm.html
+ * @desc    : 시간별 주문 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021-09-16 목   lmc        최초 작성
+ *******************************************************************************
+ -->
+	<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="@{'/statistics/hourly/order/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
+				<input type="hidden" name="dayGb" value="D"/>
+
+				<table class="frmStyle" aria-describedby="검색조건">
+					<colgroup>
+						<col style="width:10%;"/>
+						<col style="width:25%;"/>
+						<col style="width:10%;"/>
+						<col/>
+					</colgroup>
+					<tr>
+						<th>기간<i class="required" title="필수" aria-hidden="true"></i></th>
+						<td colspan="3" id="terms"></td>
+					</tr>
+					<tr>
+						<th>디바이스</th>
+						<td>
+							<label class="chkBox checked"><input type="checkbox" name="multiFrontGb" value="P" checked="checked"/>PC웹</label>
+							<label class="chkBox checked"><input type="checkbox" name="multiFrontGb" value="M" checked="checked"/>모바일웹</label>
+							<label class="chkBox checked"><input type="checkbox" name="multiFrontGb" value="A" checked="checked"/>APP</label>
+						</td>
+						<th>제휴몰</th>
+						<td>
+							<input type="text" class="w100" name="extmallIdSearchTxt" id="extmallIdSearchTxt" maxlength="20"/>
+							<button type="button" class="btn icn" onclick="cfnOpenExtmallListPopup('fnSetExtmallInfo', 'M');"><i class="fa fa-search"></i></button>
+							<span id="extmallIdTxt"></span>
+							<input type="hidden" name="extmallIdList"/>
+						</td>
+					</tr>
+					<tr>
+						<th>물류구분</th>
+						<td>
+							<label class="chkBox checked"><input type="checkbox" name="multiDistributionGb" value="SCM" checked="checked"/>입점</label>
+							<label class="chkBox checked"><input type="checkbox" name="multiDistributionGb" value="WMS" checked="checked"/>위탁</label>
+						</td>
+						<th></th>
+						<td></td>
+					</tr>
+					<tr>
+						<th>공급업체</th>
+						<td>
+							<input type="text" class="w100" name="supplyCompCdSearchTxt" id="supplyCompCdSearchTxt" maxlength="20"/>
+							<button type="button" class="btn icn" onclick="cfnOpenCompanyListPopup('fnSetSupplyCompInfo', 'M');"><i class="fa fa-search"></i></button>
+							<span id="supplyCompCdTxt"></span>
+							<input type="hidden" name="supplyCompCdList"/>
+						</td>
+						<th>제휴채널</th>
+						<td>
+							<input type="text" class="w100" name="afLinkCdSearchTxt" id="afLinkCdSearchTxt" maxlength="20" />
+							<button type="button" class="btn icn" onclick="cfnOpenAfLinkListPopup('fnSetAfLinkInfo', 'M');"><i class="fa fa-search"></i></button>
+							<span id="afLinkCdTxt"></span>
+							<input type="hidden" name="afLinkCdList"/>
+						</td>
+					</tr>
+					<tr>
+						<th>브랜드</th>
+						<td>
+							<input type="text" class="w100" name="brandCdSearchTxt" id="brandCdSearchTxt" maxlength="20" />
+							<button type="button" class="btn icn" onclick="cfnOpenBrandListPopup('fnSetBrandInfo', 'M');"><i class="fa fa-search"></i></button>
+							<span id="brandCdTxt"></span>
+							<input type="hidden" name="brandCdList"/>
+						</td>
+						<th>품목</th>
+						<td>
+							<input type="text" class="w100" name="itemkindCdSearchTxt" id="itemkindCdSearchTxt" maxlength="20" />
+							<button type="button" class="btn icn" onclick="cfnOpenItemkindListPopup('fnSetItemkindInfo', 'M');"><i class="fa fa-search"></i></button>
+							<span id="itemkindTxt"></span>
+							<input type="hidden" name="itemkindCdList"/>
+						</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" id="btnInit">초기화</button>
+					</li>
+				</ul>
+			</form>
+		</div>
+		<!-- 검색조건 영역 -->
+
+		<!-- 리스트 영역 -->
+		<div class="panelStyle">
+			<ul class="panelBar">
+				<li>
+					<button type="button" class="btn btn-default btn-lg" onclick="fnExcelDownLoad();">엑셀다운로드</button>
+				</li>
+			</ul>
+			<div id="gridList" style="width: 100%; height: 470px" class="ag-theme-balham"></div>
+		</div>
+		<!-- //리스트 영역 -->
+	</div>
+
+<style>
+.ag-header-group-text{
+	margin-left: calc(50% - 25px);
+}
+</style>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	let columnDefs = [
+		{ headerName: "브랜드번호", field: "brandCd", width: 100, cellClass: 'text-center' },
+		{ headerName: "브랜드명", field: "brandEnm", width: 180, cellClass: 'text-center'},
+		{ headerName: "브랜드 매출액", field: "", width: 120, cellClass: 'text-center',
+			children: [
+				{headerName: "총매출액(A+B+C)", field: "totAmt", width: 120, cellClass: 'text-center',
+					cellRenderer: function(params) {
+						return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
+					}
+				},
+				{headerName: "판매 개수", field: "sellQty", width: 120, cellClass: 'text-left',
+					cellRenderer: function(params) {
+						return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
+					}
+				},
+				{headerName: "YOY(%)", field: "yoyRate", width: 100, cellClass: 'text-left',
+					cellRenderer: function(params) {
+						return params.value +'%';
+					}
+				},
+			]
+		},
+		{ headerName: "매출 현황", field: "", width: 100, cellClass: 'text-center',
+			children: [
+				{headerName: "자사몰 매출액(A)", field: "selfmallAmt", width: 120, cellClass: 'text-right',
+					cellRenderer: function (params) {
+						return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
+					}
+				},
+				{headerName: "제휴몰 매출액(B)", field: "extmallAmt", width: 150, cellClass: 'text-right',
+					cellRenderer: function (params) {
+						return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
+					}
+				},
+				{headerName: "취/반품액(C)", field: "cnclAmt", width: 150, cellClass: 'text-right',
+					cellRenderer: function (params) {
+						return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
+					}
+				},
+			]
+		},
+		{ headerName: "정상이월 결제비중", field: "", width: 100, cellClass: 'text-center',
+			children: [
+				{headerName: "정상", field: "totAmt10", width: 150, cellClass: 'text-right',
+					cellRenderer: function (params) {
+						return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
+					}
+				},
+				{headerName: "이월", field: "totAmt20", width: 120, cellClass: 'text-right',
+					cellRenderer: function (params) {
+						return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
+					}
+				},
+				{headerName: "정상비", field: "amtRate10", width: 120, cellClass: 'text-right',
+					cellRenderer: function (params) {
+						return !gagajf.isNull(params.value) ? params.value.addComma() : '0';
+					}
+				}
+			]
+		},
+	];
+
+	let gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+
+	// Row Click
+	gridOptions.onCellClicked = function(event) {
+		var goodsCd = event.data.goodsCd;
+		if (event.colDef.field == "goodsCd"){
+			cfnOpenGoodsDetailPopup('U',goodsCd);
+		}
+		if (event.colDef.field == "goodsNm"){
+			cfnOpenGoodsDetailPopup('U',goodsCd);
+		}
+	}
+
+    gridOptions.excelStyles = [
+        {
+            id: 'text-center',
+            dataType: 'string',
+			font: {size : 10, bold: false}
+        },
+        {
+            id: 'text-left',
+            dataType: 'string',
+			font: {size : 10, bold: false}
+        },
+        {
+            id: 'text-right',
+            dataType: 'number',
+			font: {size : 10, bold: false}
+        }
+    ];
+
+    var fnExcelDownLoad = function(){
+
+    	var totalRows = gridOptions.api.getDisplayedRowCount();
+		if(totalRows==0){
+			mcxDialog.alert('조회된 내역이 없습니다.');
+			return;
+		}
+
+    	var date = new Date().format("YYYYMMDDHHmmss");
+		var params = {
+						fileName : "시간별 주문목록_"+ date,
+						sheetName: "DATA"
+					 };
+		gridOptions.api.exportDataAsExcel(params);
+    }
+
+	// 제휴몰 조회 팝업에서 호출
+	var fnSetExtmallInfo = function(result) {
+		var arrExtmallId = [];
+		var extmallIdTxt = "";
+		var sIndex = 0;
+		$('#extmallIdTxt').html('');
+		$('#searchForm input[name=extmallIdSearchTxt]').val('');
+
+		result.forEach(function(extmall) {
+			sIndex++;
+			arrExtmallId.push(extmall.extmallId);
+		});
+
+		// 조회 값이 하나일 경우 화면에 코드 노출. 그 외는 갯수 처리
+		if (sIndex == 1) {
+			$('#searchForm input[name=extmallIdSearchTxt]').val(arrExtmallId[0]);
+		} else {
+			extmallIdTxt = sIndex + " 개";
+			$('#extmallIdTxt').html(extmallIdTxt);
+		}
+
+		var jsonData = JSON.stringify(arrExtmallId);
+		$("#searchForm input[name=extmallIdList]").val(arrExtmallId.join(','));
+	}
+
+	// 업체 조회 팝업에서 호출
+	var fnSetSupplyCompInfo = function(result) {
+		var arrSupplyCompCd = [];
+		var supplyCompCdTxt = "";
+		var sIndex = 0;
+		$('#supplyCompCdTxt').html('');
+		$('#searchForm input[name=supplyCompCdSearchTxt]').val('');
+
+		result.forEach(function(supplyComp) {
+			sIndex++;
+			arrSupplyCompCd.push(supplyComp.supplyCompCd);
+		});
+
+		// 조회 값이 하나일 경우 화면에 코드 노출. 그 외는 갯수 처리
+		if (sIndex == 1) {
+			$('#searchForm input[name=supplyCompCdSearchTxt]').val(arrSupplyCompCd[0]);
+		} else {
+			supplyCompCdTxt = sIndex + " 개";
+			$('#supplyCompCdTxt').html(supplyCompCdTxt);
+		}
+
+		var jsonData = JSON.stringify(arrSupplyCompCd);
+		$("#searchForm input[name=supplyCompCdList]").val(arrSupplyCompCd.join(','));
+	}
+
+	// 제휴채널 조회 팝업에서 호출
+	var fnSetAfLinkInfo = function(result) {
+		var arrAfLinkCd = [];
+		var afLinkCdTxt = "";
+		var sIndex = 0;
+		$('#afLinkCdTxt').html('');
+		$('#searchForm input[name=afLinkCdSearchTxt]').val('');
+
+		result.forEach(function(afLink) {
+			sIndex++;
+			arrAfLinkCd.push(afLink.afLinkCd);
+		});
+
+		// 조회 값이 하나일 경우 화면에 코드 노출. 그 외는 갯수 처리
+		if (sIndex == 1) {
+			$('#searchForm input[name=afLinkCdSearchTxt]').val(arrAfLinkCd[0]);
+		} else {
+			afLinkCdTxt = sIndex + " 개";
+			$('#afLinkCdTxt').html(afLinkCdTxt);
+		}
+
+		var jsonData = JSON.stringify(arrAfLinkCd);
+		$("#searchForm input[name=afLinkCdList]").val(arrAfLinkCd.join(","));
+	}
+
+	// 브랜드 조회 팝업에서 호출
+	var fnSetBrandInfo = function(result) {
+		var arrBrandCd = [];
+		var brandCdTxt = "";
+		var bIndex = 0;
+		$('#brandCdTxt').html('');
+		$('#searchForm input[name=brandCdSearchTxt]').val('');
+
+		result.forEach(function(brand){
+			bIndex++;
+			arrBrandCd.push(brand.brandCd);
+		});
+
+		// 조회 값이 하나일 경우 화면에 코드 노출. 그 외는 갯수 처리
+		if (bIndex == 1) {
+			$('#searchForm input[name=brandCdSearchTxt]').val(arrBrandCd[0]);
+		} else {
+			brandCdTxt = bIndex + " 개";
+			$('#brandCdTxt').html(brandCdTxt);
+		}
+
+		var jsonData = JSON.stringify(arrBrandCd);
+		$("#searchForm input[name=brandCdList]").val(arrBrandCd.join(","));
+	}
+
+	// 품목 조회 팝업에서 호출
+	var fnSetItemkindInfo = function(result) {
+		var arrItemkindCd = [];
+		var itemkindCdTxt = "";
+		var bIndex = 0;
+		$('#itemkindCdTxt').html('');
+		$('#searchForm input[name=itemkindCdSearchTxt]').val('');
+
+		result.forEach(function(itemkind){
+			bIndex++;
+			arrItemkindCd.push(itemkind.itemkindCd);
+		});
+
+		// 조회 값이 하나일 경우 화면에 코드 노출. 그 외는 갯수 처리
+		if (bIndex == 1) {
+			$('#searchForm input[name=itemkindCdSearchTxt]').val(arrItemkindCd[0]);
+		} else {
+			itemkindCdTxt = bIndex + " 개";
+			$('#itemkindCdTxt').html(itemkindCdTxt);
+		}
+
+		var jsonData = JSON.stringify(arrItemkindCd);
+		$("#searchForm input[name=itemkindCdList]").val(arrItemkindCd.join(','));
+	}
+
+	// 검색
+	$('#btnSearch').on('click', function() {
+		// 입력 값 체크
+		if (!gagajf.validation($('#searchForm')))
+			return false;
+
+		gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptions, '#searchForm', fnCreateTotal);
+	});
+
+	// 합계 생성
+	let fnCreateTotal = function() {
+
+		let totInfo = {};
+		totInfo.brandCd     = 'TOTAL';
+		totInfo.totAmt      = 0;
+		totInfo.sellQty     = 0;
+		totInfo.selfmallAmt = 0;
+		totInfo.extmallAmt  = 0;
+		totInfo.cnclAmt     = 0;
+		totInfo.totAmt10    = 0;
+		totInfo.totAmt20    = 0;
+		totInfo.amtRate10   = 0;
+		totInfo.yoyRate     = 0;
+		totInfo.yoyTotOrdAmt= 0;
+
+		gridOptions.api.forEachNode(function(rowNode, index) {
+			if (!rowNode.group) {
+				if( typeof rowNode.data.totAmt      == 'number') { totInfo.totAmt       += rowNode.data.totAmt      ; }
+				if( typeof rowNode.data.sellQty     == 'number') { totInfo.sellQty      += rowNode.data.sellQty     ; }
+				if( typeof rowNode.data.selfmallAmt == 'number') { totInfo.selfmallAmt  += rowNode.data.selfmallAmt ; }
+				if( typeof rowNode.data.extmallAmt  == 'number') { totInfo.extmallAmt   += rowNode.data.extmallAmt  ; }
+				if( typeof rowNode.data.cnclAmt     == 'number') { totInfo.cnclAmt      += rowNode.data.cnclAmt     ; }
+				if( typeof rowNode.data.totAmt10    == 'number') { totInfo.totAmt10     += rowNode.data.totAmt10    ; }
+				if( typeof rowNode.data.totAmt20    == 'number') { totInfo.totAmt20     += rowNode.data.totAmt20    ; }
+				if( typeof rowNode.data.amtRate10   == 'number') { totInfo.amtRate10    += rowNode.data.amtRate10   ; }
+				if( typeof rowNode.data.yoyTotOrdAmt== 'number') { totInfo.yoyTotOrdAmt += rowNode.data.yoyTotOrdAmt; }
+			}
+		});
+
+		totInfo.yoyRate = (totInfo.totAmt / totInfo.yoyTotOrdAmt * 100 - 100).toFixed(1);
+
+		gagaAgGrid.setPinnedRowData(gridOptions, totInfo, 'top');
+	}
+
+	// 초기화 클릭시
+	$('#btnInit').on('click', function() {
+		$('#searchForm')[0].reset();
+
+		$('#extmallIdTxt').html('');
+		$('#searchForm input[name=extmallIdList]').val('');
+		$('#supplyCompCdTxt').html('');
+		$('#searchForm input[name=supplyCompCdList]').val('');
+		$('#afLinkCdTxt').html('');
+		$('#searchForm input[name=afLinkCdList]').val('');
+		$('#brandCdTxt').html('');
+		$('#searchForm input[name=brandCdList]').val('');
+		$('#itemkindCdTxt').html('');
+		$('#searchForm input[name=itemkindCdList]').val('');
+	});
+
+	$(document).ready(function() {
+		cfnCreateCalendar('#terms', 'startDt', 'endDt', true, '주문', undefined, ['btnToday']);
+		$('.btnYesterday').trigger('click');
+
+		// Create a agGrid
+		gagaAgGrid.createGrid('gridList', gridOptions);
+
+	});
+/*]]>*/
+</script>
+
+</html>