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

Merge branch 'develop' into eskim

eskim преди 5 години
родител
ревизия
b5d247e0e8

+ 3 - 0
style24.admin/src/main/java/com/style24/admin/biz/web/TsaOrderController.java

@@ -184,12 +184,15 @@ public class TsaOrderController extends TsaBaseController {
 		Order order = new Order();
 		order.setOrdNo(ordNo);
 		
+		// 1. 주문기본정보
 		mav.addObject("ordNo"					, ordNo);												// 주문번호
 		mav.addObject("orderInfo"				, orderService.getOrderInfoList(order));				// 주문기본정보
 		mav.addObject("orderGoodsInfo"			, orderService.getOrderDetailList(order));				// 주문상품정보
 		mav.addObject("orderDeliveryAddrInfo"	, orderService.getDeliveryAddrList(order));				// 배송정보
 		mav.addObject("orderPaymentInfo"		, orderService.getOrderPaymentBasicInfoList(order));	// 결제정보
 		mav.addObject("orderDeliveryFeeInfo"	, orderService.getDeliveryFeeList(order));				// 배송비정보
+		
+		// 2. 클레임정보
 		mav.addObject("orderChangeInfo"			, orderService.getOrderChangeList(order));				// 취소/반품/교환요청 정보
 		mav.addObject("orderRefundInfo"			, orderService.orderRefundInfo(order));					// 환불정보
 		mav.addObject("orderCounselInfo"		, orderService.orderCounselInfo(order));				// 상담내역

+ 5 - 0
style24.admin/src/main/java/com/style24/persistence/domain/Order.java

@@ -180,6 +180,7 @@ public class Order extends TscBaseDomain {
 	
 	private String delvFeeGb;
 	private String delvFeeGbNm;
+	private int delvFee;
 	private String delvUsacYn;
 	private String delvUsacDt;
 	private int delvFeeSq;
@@ -219,6 +220,10 @@ public class Order extends TscBaseDomain {
 	private int itemQty;
 	private int itemPrice;
 	private String itemNm;
+	private int gfcdUseAmt;
+	
+	private int itemOrdQty;
+	private int itemCnclRtnQty;
 	
 	// Pagination
 	private TsaPageRequest pageable;

+ 63 - 33
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaOrder.xml

@@ -440,15 +440,24 @@
 		     , O.ORD_EMAIL
 		     , O.ORD_PHNNO
 		     , C.CUST_GB 
-		     , FN_GET_CODE_NM('G100', C.CUST_GB) AS CUST_GB_NM
+		     , CASE WHEN C.CUST_GB IS NULL 
+		            THEN '비회원'
+		            ELSE FN_GET_CODE_NM('G100', C.CUST_GB) 
+		             END CUST_GB_NM
 		     , C.MANAGED_RSN
-		     , FN_GET_CODE_NM('G120', C.MANAGED_RSN) AS MANAGED_RSN_NM
+		     , CASE WHEN C.MANAGED_RSN IS NULL 
+		            THEN '부'
+		            ELSE FN_GET_CODE_NM('G120', C.MANAGED_RSN) 
+		             END MANAGED_RSN_NM
 		     , C.CUST_GRADE
-		     , FN_GET_CODE_NM('G110', C.CUST_GRADE) AS CUST_GRADE_NM
+		     , CASE WHEN C.CUST_GRADE IS NULL 
+		            THEN '등급없음'
+		            ELSE FN_GET_CODE_NM('G110', C.CUST_GRADE) 
+		             END CUST_GRADE_NM
 		FROM   TB_ORDER O
 		INNER  JOIN TB_ORDER_DETAIL OD
 		ON     O.ORD_NO = OD.ORD_NO
-		INNER  JOIN TB_CUSTOMER C
+		LEFT   OUTER JOIN TB_CUSTOMER C
 		ON     O.CUST_NO = C.CUST_NO
 		WHERE  1=1
 		AND    O.ORD_NO = #{ordNo}
@@ -457,40 +466,60 @@
 	<!-- 주문상세 목록 -->
 	<select id="getOrderDetailList" parameterType="Order" resultType="Order">
 		/* order.getOrderDetailList */
-		SELECT OD.GOODS_CD
-		     , G.GOODS_NM
+		SELECT G1.GOODS_CD 
+		     , G1.GOODS_NM
+		     , G1.GOODS_TYPE
+		     , FN_GET_CODE_NM('G056', G1.GOODS_TYPE) AS GOODS_TYPE_NM
+		     , GI.IMG_PATH1
+		     , G2.BRAND_CD
+		     , (SELECT Z.BRAND_ENM
+		        FROM   TB_BRAND Z
+		        WHERE  Z.BRAND_CD = G2.BRAND_CD) AS BRAND_ENM
+		     , G2.GOODS_CD AS ITEM_CD
+		     , G2.GOODS_NM AS ITEM_NM
 		     , ODI.OPT_CD1
 		     , ODI.OPT_CD2
-		     , OD.ORD_QTY
-		     , OD.CNCL_RTN_QTY
-		     , OD.CPN1_DC_AMT
-		     , OD.GOODS_CPN_DC_AMT
-		     , OD.CART_CPN_DC_AMT
-		     , OD.TMTB1_DC_AMT
-		     , OD.TMTB2_DC_AMT
-			 , OD.PNT_DC_AMT
-		     , OD.PRE_PNT_DC_AMT
-		     , OD.SAVE_PNT_AMT
-		     , OD.ORD_AMT
-		     , OD.REAL_ORD_AMT
-		     , OD.CNCL_RTN_AMT
-		     , OD.ORD_DTL_STAT
-		     , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT) AS ORD_DTL_STAT_NM
-		     , OD.SOLDOUT_YN
-		     , OD.INVOICE_NO
-		     , OD.DELV_LOC_CD
-		     , OD.DELV_ADDR_SQ 
-		     , OD.DSTRBT_NOTE
-		     , ODI.ITEM_CD 
 		     , ODI.ITEM_QTY
 		     , ODI.ITEM_PRICE
-		     , ODI.OPT_ADD_PRICE
-		FROM   TB_ORDER_DETAIL OD
+		     , ODI.OPT_ADD_PRICE 
+		     , ODI.ITEM_ORD_QTY 
+		     , ODI.ITEM_CNCL_RTN_QTY
+		     , ODI.CPN1_DC_AMT
+		     , ODI.GOODS_CPN_DC_AMT
+		     , ODI.CART_CPN_DC_AMT
+		     , ODI.TMTB1_DC_AMT
+		     , ODI.TMTB2_DC_AMT
+		     , ODI.PNT_DC_AMT
+		     , ODI.PRE_PNT_DC_AMT
+		     , ODI.SAVE_PNT_AMT
+		     , ODI.GFCD_USE_AMT
+			 , ODI.ORD_AMT
+		     , ODI.REAL_ORD_AMT
+		     , ODI.CNCL_RTN_AMT
+		     , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT) AS ORD_DTL_STAT_NM 
+		     , OD.SOLDOUT_YN
+		     , OD.SOLDOUT_REG_NO
+		     , OD.SOLDOUT_MEMO
+		     , OD.INVOICE_NO
+		     , OD.DELV_LOC_CD 
+		FROM   TB_ORDER O
+		INNER  JOIN TB_ORDER_DETAIL OD
+		ON     O.ORD_NO = OD.ORD_NO
+		INNER  JOIN TB_GOODS G1
+		ON     OD.GOODS_CD = G1.GOODS_CD
 		INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
-		ON     OD.ORD_NO = ODI.ORD_NO 
-		AND    OD.ORD_DTL_NO = OD.ORD_DTL_NO
-		INNER  JOIN TB_GOODS G
-		ON     OD.GOODS_CD = G.GOODS_CD
+		ON     OD.ORD_NO = ODI.ORD_NO
+		AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		INNER  JOIN TB_GOODS G2
+		ON     ODI.ITEM_CD = G2.GOODS_CD
+		INNER  JOIN TB_GOODS_IMG GI
+		ON     ODI.ITEM_CD = GI.GOODS_CD
+		AND    ODI.OPT_CD1 = GI.COLOR_CD
+		INNER  JOIN TB_PAYMENT P
+		ON     O.ORD_NO = P.ORD_NO
+		AND    P.PAY_GB = 'O'
+		INNER  JOIN TB_DELIVERY_ADDR DA
+		ON     OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
 		WHERE  1=1
 		AND    OD.ORD_NO = #{ordNo}
 	</select>
@@ -561,6 +590,7 @@
 		/* order.getDeliveryFeeList */
 		SELECT DF.DELV_FEE_GB 
 		     , FN_GET_CODE_NM('G018', DF.DELV_FEE_GB) AS DELV_FEE_GB_NM
+		     , DF.DELV_FEE
 		     , DF.DELV_USAC_YN 
 		     , DATE_FORMAT(DF.DELV_USAC_DT,'%Y%m%d%H%i%S') AS DELV_USAC_DT 
 		     , DF.SUPPLY_COMP_CD 

+ 274 - 100
style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -27,10 +27,36 @@
 					<input type="hidden" name="orderEmail"/>
 					
 					<h4>기본정보</h4>
-					<div id="gridOrderInfo" style="width:100%; height:140px;" class="ag-theme-balham"></div>
-					
+					<div id="gridOrderInfo" style="width:100%; height:100px;" class="ag-theme-balham"></div>
+										
 					<h4>주문상품정보</h4>
+					<button type="button" style="margin-left:10px;" class="btn btnRight btn-base btn-sm" id="btnExchange">교환요청</button>
+					<button type="button" class="btn btnRight btn-base btn-sm" id="btnReturn">반품요청</button>
+					<button type="button" class="btn btnRight btn-base btn-sm" id="btnCancel">취소요청</button>
 					<div id="gridOrderGoodsInfo" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+					
+					<h4>배송정보</h4>
+					<button type="button" style="margin-left:10px;" class="btn btnRight btn-base btn-sm" id="btnUpdateOrderAddr">수정</button>
+					<div id="gridDeliveryAddrInfo" style="width:100%; height:100px;" class="ag-theme-balham"></div>
+					
+					<table style="width:100%;">
+						<colgroup>
+							<col style="width:65%;"/>
+							<col/>
+						</colgroup>
+						<tbody>
+							<tr>
+								<td style="">
+									<h4>결제정보</h4>
+									<div id="gridPaymentInfo" style="width:100%; height: 100px;" class="ag-theme-balham"></div>
+								</td>
+								<td style="">
+									<h4>배송비정보</h4>
+									<div id="gridDeliveryFeeInfo" style="width:100%; height: 100px;" class="ag-theme-balham"></div>
+								</td>
+							<tr>
+						</tbody>
+					</table>
 				</form>
 			</div>
 		</div>
@@ -42,10 +68,10 @@
 var ordNo 					= [[${ordNo}]];						// 주문번호
 var orderInfo 				= [[${orderInfo}]];					// 기본정보
 var orderGoodsInfo 			= [[${orderGoodsInfo}]];			// 주문상세정보
-var orderGoodsItemInfo 		= [[${orderGoodsItemInfo}]];		// 주문상세단품정보
+var orderDeliveryAddrInfo	= [[${orderDeliveryAddrInfo}]];		// 배송정보
+var orderPaymentInfo 		= [[${orderPaymentInfo}]];			// 결제정보
+var orderDeliveryFeeInfo 	= [[${orderDeliveryFeeInfo}]];		// 배송비정보
 
-//var orderPaymentInfo 		= [[${orderPaymentInfo}]];			// 결제정보
-//var orderDeliveryFeeInfo = [[${orderDeliveryFeeInfo}]];		// 배송비정보
 //var orderChangeInfo = [[${orderChangeInfo}]];				// 취소/반품/교환요청 정보
 //var orderRefundInfo = [[${orderRefundInfo}]];				// 환불정보
 //var orderCounselInfo = [[${orderCounselInfo}]];				// 상담내역
@@ -68,6 +94,41 @@ var orderGoodsItemInfo 		= [[${orderGoodsItemInfo}]];		// 주문상세단품정
 
 <!-- AgGrid 컬럼 세팅 -->
 <script>
+// 공통1. 주문상세 그리드 옵션 정보 적용
+var orderAgGrid = {
+	getGridOptions : function(colDefs) {
+		return {
+			columnDefs					: colDefs
+			, detailCellRendererParams	: {
+				detailGridOptions	: {
+					columnDefs				: []
+					, defaultColDef			: {
+						resizable: true
+					}
+					, suppressLoadingOverlay: false
+					, onGridReady			: function (params) {
+						params.api.setDomLayout('autoHeight');
+					}
+					, onFirstDataRendered	: function (params) {
+						params.api.sizeColumnsToFit();
+					}
+				}
+				, getDetailRowData: function (params) {
+					params.successCallback(params.data.orderDetailList);
+				}
+			}
+			, defaultColDef: {
+				resizable: true
+			}
+			, isRowMaster: function (dataItem) {
+				return dataItem ? dataItem.orderDetailList.length > 1 : false;
+			}
+			, suppressRowTransform: true
+			, enableRangeSelection: true
+		};
+	}
+}
+
 // 1.주문기본정보 그리드 바인딩
 var columnDefsOrderInfo = [
 	{
@@ -108,7 +169,7 @@ var columnDefsOrderInfo = [
 		, width				: 240
 		, cellClass			: 'text-center'
 		, cellRenderer		: function (params) {
-			return params.value ? params.value + '&nbsp&nbsp<button type="button" class="btn btn-success" onclick="fnOpenEmailForm(\'' + params.data.orderEmail + '\',\'' + params.data.orderNm + '\',\'' + params.data.custNo + '\');"> 메일발송 </button>' : '';
+			return params.value ? params.value + '&nbsp&nbsp<button type="button" class="btn btn-base btn-sm" onclick="fnOpenEmailForm(\'' + params.data.orderEmail + '\',\'' + params.data.orderNm + '\',\'' + params.data.custNo + '\');"> 메일발송 </button>' : '';
 		}
 	},
 	{
@@ -117,21 +178,21 @@ var columnDefsOrderInfo = [
 		, width				: 220
 		, cellClass			: 'text-center'
 		, cellRenderer		: function (params) {
-			return params.value + '&nbsp&nbsp<button type="button" class="btn btn-success" onclick="fnOpenLmsForm(\'' + params.data.orderPhnno + '\',\'' + params.data.custNo + '\');"> LMS발송 </button>';
+			return params.value + '&nbsp&nbsp<button type="button" class="btn btn-base btn-sm" onclick="fnOpenLmsForm(\'' + params.data.orderPhnno + '\',\'' + params.data.custNo + '\');"> LMS발송 </button>';
 		}
 	},
 	{headerName: "회원구분"	, field: "custGbNm"		, width: 80		, cellClass: 'text-center'},
 	{headerName: "관리대상"	, field: "managedRsnNm"	, width: 80		, cellClass: 'text-center'},
 	{headerName: "등급"		, field: "custGradeNm"	, width: 80		, cellClass: 'text-center'}
 ];
-var gridOptionsOrderInfo = gagaAgGrid.getGridOptions(columnDefsOrderInfo);
+var gridOptionsOrderInfo = orderAgGrid.getGridOptions(columnDefsOrderInfo);
 
 // 2.상품별 상세정보
 var columnDefsGoodsInfo = [
 	{
 		headerName	: "상품정보",
 		children	: [
-			{headerName: "상품코드"	, field: "goodsCd"		, width: 130, cellClass: 'text-center'},
+			{headerName: "상품코드"	, field: "goodsCd"		, width: 110, cellClass: 'text-center'},
 			{
 				headerName		: "상품명"
 				, field			: "goodsNm"
@@ -141,51 +202,25 @@ var columnDefsGoodsInfo = [
 					return '<a href="javascript:void(0);" onclick="cfnOpenFrontGoodsPopup(\'' + params.data.goodsCd + '\',\'' + params.data.siteCd + '\');">' + params.value + '</a>';
 				}
 			},
-			{headerName: "사이즈"		, field: "optCd2"		, width: 60, cellClass: 'text-center'},
-			{headerName: "칼라"		, field: "optCd1"		, width: 90, cellClass: 'text-center'},
-			{headerName: "단품코드"	, field: "itemCd"		, width: 90, cellClass: 'text-center'},
-			{headerName: "단품수량"	, field: "itemQty"		, width: 90, cellClass: 'text-center'},
+			{headerName: "상품타입"	, field: "goodsTypeNm"	, width: 100, cellClass: 'text-center'},
+			{headerName: "브랜드"		, field: "brandEnm"		, width: 100, cellClass: 'text-center'},
+			{headerName: "단품코드"	, field: "itemCd"		, width: 100, cellClass: 'text-center'},
 			{
-				headerName		: "단품금액"
-				, field			: "itemPrice"
-				, width			: 60
-				, cellClass		: 'text-right' //cartCpnDcAmtClass
-				, cellRenderer	: function (params) {
-					return params.value.addComma();
-				}
-			},
-			{
-				headerName		: "옵션추가금액"
-				, field			: "optAddPrice"
-				, width			: 100
-				, cellClass		: 'text-right' //cartCpnDcAmtClass
-				, cellRenderer	: function (params) {
-					return params.value.addComma();
-				}
-			},
-		]
-	},
-	{
-		headerName	: "단품정보",
-		children	: [
-			{headerName: "상품코드"	, field: "itemCd"		, width: 130, cellClass: 'text-center'},
-			{
-				headerName		: "상품명"
-				, field			: "goodsNm"
+				headerName		: "단품명"
+				, field			: "itemNm"
 				, width			: 180
 				, cellClass		: 'text-left'
 				, cellRenderer: function (params) {
-					return '<a href="javascript:void(0);" onclick="cfnOpenFrontGoodsPopup(\'' + params.data.goodsCd + '\',\'' + params.data.siteCd + '\');">' + params.value + '</a>';
+					return '<a href="javascript:void(0);" onclick="cfnOpenFrontGoodsPopup(\'' + params.data.itemCd + '\',\'' + params.data.siteCd + '\');">' + params.value + '</a>';
 				}
 			},
-			{headerName: "사이즈"		, field: "optCd2"		, width: 60, cellClass: 'text-center'},
-			{headerName: "칼라"		, field: "optCd1"		, width: 90, cellClass: 'text-center'},
-			{headerName: "단품코드"	, field: "itemCd"		, width: 90, cellClass: 'text-center'},
-			{headerName: "단품수량"	, field: "itemQty"		, width: 90, cellClass: 'text-center'},
+			{headerName: "칼라"		, field: "optCd1"		, width: 80, cellClass: 'text-center'},
+			{headerName: "사이즈"		, field: "optCd2"		, width: 80, cellClass: 'text-center'},
+			{headerName: "단품수량"	, field: "itemQty"		, width: 80, cellClass: 'text-center'},
 			{
 				headerName		: "단품금액"
 				, field			: "itemPrice"
-				, width			: 60
+				, width			: 100
 				, cellClass		: 'text-right' //cartCpnDcAmtClass
 				, cellRenderer	: function (params) {
 					return params.value.addComma();
@@ -202,16 +237,40 @@ var columnDefsGoodsInfo = [
 			},
 		]
 	},
+	{
+		headerName		: "주문상세상태"
+		, field			: "ordDtlStatNm"
+		, width			: 120
+		, cellClass		: 'text-left'
+		, cellRenderer	: function (params) {
+			var retVal = "";
+			retVal += (params.data.cancelRequestQty > 0) ? " 취" + params.data.cancelRequestQty : "";
+			retVal += (params.data.returnRequestQty > 0) ? " 반" + params.data.returnRequestQty : "";
+			retVal += (params.data.exchangeRequestQty > 0) ? " 교" + params.data.exchangeRequestQty : "";
+			
+			if (!gagajf.isNull(retVal)) retVal = "-" + retVal;
+				return "<a href=\"javascript:void(0);\" onclick=\"fnOrderDetailChangeHst('" + params.data.ordDtlNo + "');\">" + params.value + retVal + "</a>";
+		}
+	},
 	{
 		headerName	: "수량",
 		children	: [
-			{headerName: "주문"		, field: "ordQty"		, width: 60, cellClass: 'text-center'},
-			{headerName: "취소"		, field: "cnclRtnQty"	, width: 60, cellClass: 'text-center'}
+			{headerName: "주문"		, field: "itemOrdQty"		, width: 60, cellClass: 'text-center'},
+			{headerName: "취소"		, field: "itemCnclRtnQty"	, width: 60, cellClass: 'text-center'}
 		]
 	},
 	{
 		headerName	: "쿠폰",
 		children	: [
+			{
+				headerName		: "즉시할인"
+				, field			: "cpn1DcAmt"
+				, width			: 70
+				, cellClass		: 'text-right' //goodsCpnDcAmtClass
+				, cellRenderer: function (params) {
+					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderCouponHst('" + params.data.ordNo + "');\">" + params.value.addComma() + "</a>";
+				}
+			},
 			{
 				headerName		: "상품"
 				, field			: "goodsCpnDcAmt"
@@ -232,6 +291,29 @@ var columnDefsGoodsInfo = [
 			}
 		]
 	},
+	{
+		headerName	: "다다익선",
+		children	: [
+			{
+				headerName		: "수량"
+				, field			: "tmtb1DcAmt"
+				, width			: 70
+				, cellClass		: 'text-right'
+				, cellRenderer: function (params) {
+					return params.value.addComma();
+				}
+			},
+			{
+				headerName		: "금액"
+				, field			: "tmtb2DcAmt"
+				, width			: 70
+				, cellClass		: 'text-right'
+				, cellRenderer: function (params) {
+					return params.value.addComma();
+				}
+			}
+		]
+	},
 	{
 		headerName	: "포인트",
 		children	: [
@@ -264,6 +346,15 @@ var columnDefsGoodsInfo = [
 			}
 		]
 	},
+	{
+		headerName		: "상품권"
+		, field			: "gfcdUseAmt"
+		, width			: 80
+		, cellClass		: 'text-right'
+		, cellRenderer	: function (params) {
+			return params.value.addComma();
+		}
+	},
 	{
 		headerName	: "금액(원/단위)",
 		children	: [
@@ -296,21 +387,6 @@ var columnDefsGoodsInfo = [
 			},
 		]
 	},
-	{
-		headerName		: "주문상세상태"
-		, field			: "ordDtlStatNm"
-		, width			: 150
-		, cellClass		: 'text-left'
-		, cellRenderer	: function (params) {
-			var retVal = "";
-			retVal += (params.data.cancelRequestQty > 0) ? " 취" + params.data.cancelRequestQty : "";
-			retVal += (params.data.returnRequestQty > 0) ? " 반" + params.data.returnRequestQty : "";
-			retVal += (params.data.exchangeRequestQty > 0) ? " 교" + params.data.exchangeRequestQty : "";
-			
-			if (!gagajf.isNull(retVal)) retVal = "-" + retVal;
-				return "<a href=\"javascript:void(0);\" onclick=\"fnOrderDetailChangeHst('" + params.data.ordDtlNo + "');\">" + params.value + retVal + "</a>";
-		}
-	},
 	{headerName: "결품", field: "soldoutYn", width: 60, cellClass: 'text-center'},
 	{
 		headerName	: "배송",
@@ -326,36 +402,129 @@ var columnDefsGoodsInfo = [
 					return retStr;
 				}
 			},
-			{headerName: "출고처", field: "delvLocNm", width: 120, cellClass: 'text-center'},
-			{
-				headerName		: "배송지번호"
-				, field			: "delvAddrSq"
-				, width			: 70
-				, cellClass		: 'text-center'
-				, cellRenderer	: function (params) {
-					return "<a href=\"javascript:void(0);\" onclick=\"fnBindDeliveryAddr('" + params.value + "');\">" + params.value + "</a>";
-				}
-			},
-			{headerName: "물류비고", field: "dstrbtNote", width: 180, cellClass: 'text-center'},
-			{
-				headerName: "구매확정철회"
-				, field: "ordDtlNo"
-				, width: 180
-				, cellClass: 'text-center'
-				, cellRenderer: function (params) {
-					var retVal = "";
-					
-					if ('70' === params.data.ordDtlStat) {
-						retVal = '<button type=\"button\" class=\"btn btn-danger\" onclick=\"fnChangedCompleteDelivery(\'' + params.data.ordNo + '\',\'' + params.data.ordDtlNo + '\',\'' + params.data.ordDtlStat + '\');\">구매확정철회</button>';
-					}
-					return retVal;
-				}
-			}
+			{headerName: "출고처", field: "delvLocNm", width: 120, cellClass: 'text-center'}
 		]
 	}
 ];
-var gridOptionsGoodsInfo = gagaAgGrid.getGridOptions(columnDefsGoodsInfo);
+var gridOptionsGoodsInfo = orderAgGrid.getGridOptions(columnDefsGoodsInfo);
+
+// 3.배송정보
+var columnDefsDeliveryInfo = [
+	{headerName: "배송지번호"		, field: "delvAddrSq"	, width: 100, 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			: "recipZipNo"
+		, width			: 200
+		, cellClass		: 'text-left'
+		, cellRenderer	: function (params) {
+			return params.value + "<button type=\"button\" style=\"margin-left:10px\" class=\"btn btn-info\" onclick=\"cfnOpenPostFindPopup('grid');\">우편번호찾기</button>";
+		}
+	},
+	{headerName: "주소(기본)"		, field: "recipBaseAddr"	, width: 350, cellClass: 'text-left'},
+	{headerName: "주소(상세)"		, field: "recipDtlAddr"		, width: 200, cellClass: 'text-left', editable: true},
+	{headerName: "배송메모"		, field: "delvMemo"			, width: 280, cellClass: 'text-left', editable: true}
+];
+var gridOptionsDeliveryInfo = orderAgGrid.getGridOptions(columnDefsDeliveryInfo);
 
+// 4.결제정보
+var columnDefsPaymentInfo = [
+	{headerName: "에스크로여부"		, field: "escrowYn"		, width: 80		, cellClass: 'text-center'},
+	{headerName: "결제수단"		, field: "payMeansNm"	, width: 100	, cellClass: 'text-center'},
+	{
+		headerName		: "카드(은행)"
+		, field			: "cardNm"
+		, width			: 100
+		, cellClass		: 'text-center'
+		, cellRenderer	: function (params) {
+			if (params.data.payMeans == '20') {
+				return params.data.vaNm;
+			} else if (params.data.payMeans == '10' || params.data.payMeans == '30') {
+				return params.data.cardNm;
+			}
+		}
+	},
+	{
+		headerName		: "할부(입금계좌)"
+		, field			: "cardMips"
+		, width			: 120
+		, cellClass		: 'text-center'
+		, cellRenderer	: function (params) {
+			if (params.data.payMeans == '20') {
+				return params.data.vaNo;
+			} else if (params.data.payMeans == '10') {
+				return params.value;
+			}
+		}
+	},
+	{
+		headerName		: "승인번호"
+		, field			: "pgTradeNo"
+		, width			: 80
+		, cellClass		: 'text-center'
+		, cellRenderer	: function (params) {
+			var retStr = '';
+
+			if (!gagajf.isNull(params.value)) {
+				retStr = '<a href="javascript:void(0);" onclick="fnReceiptPage(\'' + params.data.pgTid + '\');">' + params.value + '</a>';
+			}
+
+			if (gagajf.isNull(params.value) && !gagajf.isNull(params.data.pgTid)) {
+				retStr = '<a href="javascript:void(0);" onclick="fnReceiptPage(\'' + params.data.pgTid + '\');">' + '거래내역' + '</a>';
+			}
+
+			return retStr;
+		}
+	},
+	{
+		headerName			: "결제일시"	
+		, field				: "payDt"
+		, width				: 130
+		, cellClass			: 'text-center' 
+		, cellRenderer: function(params) {
+			return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmm").format("YYYY-MM-DD HH:mm") : '';
+		}
+	},
+	{headerName: "결제상태"	, field: "payStatNm"	, width: 80		, cellClass: 'text-center'},
+	{
+		headerName			: "결제금액"
+		, field				: "payAmt"
+		, width				: 80
+		, cellClass			: 'text-right'
+		, valueFormatter	: function (params) {
+			return params.value.addComma();
+		}
+	},
+	{headerName: "계좌만료일"	, field: "vaDeadline"	, width: 150	, cellClass: 'text-center'}
+];
+var gridOptionsPaymentInfo = orderAgGrid.getGridOptions(columnDefsPaymentInfo);
+
+// 5.배송비
+var columnDefsDeliveryFeeInfo = [
+	{headerName: "배송비종류"		, field: "delvFeeGbNm", width: 120, cellClass: 'text-center'},
+	{
+		headerName			: "배송비"
+		, field				: "delvFee"
+		, width				: 100
+		, cellClass			: 'text-right'
+		, valueFormatter	: function (params) {
+			return params.value.addComma();
+		}
+	},
+	{headerName: "배송비정산여부"	, field: "delvUsacYn", width: 120, cellClass: 'text-center'},
+	{
+		headerName			: "배송비정산일시"	
+		, field				: "delvUsacDt"
+		, width				: 180
+		, cellClass			: 'text-center' 
+		, cellRenderer: function(params) {
+			return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmm").format("YYYY-MM-DD HH:mm") : '';
+		}
+	}
+];
+var gridOptionsDeliveryFeeInfo = orderAgGrid.getGridOptions(columnDefsDeliveryFeeInfo);
 </script>
 
 <script>
@@ -370,7 +539,6 @@ var fnSetGridHeightInit = function () {
 	
 	//$('#gridOrderInfo').css('height', _girdRowH1 + _girdRowH);					//기본정보
 	//$('#gridDeliveryInfo').css('height', _girdRowH1 + _girdRowH);					//배송정보
-	
 	//if (orderGoodsInfo != null && orderGoodsInfo.length > 0) $('#gridOrderGoodsInfo').css('height', _girdRowH2 + _girdRowH * orderGoodsInfo.length);
 	//if (orderPaymentInfo != null && orderPaymentInfo.length > 0) $('#gridPaymentInfo').css('height', _girdRowH1 + _girdRowH * orderPaymentInfo.length);
 	//if (orderDeliveryFeeInfo != null && orderDeliveryFeeInfo.length > 0) $('#gridDeliveryFeeInfo').css('height', _girdRowH1 + _girdRowH * orderDeliveryFeeInfo.length);
@@ -384,11 +552,11 @@ var fnSetGridHeightInit = function () {
 
 <!-- 버튼 이벤트 바인딩 -->
 <script>
-var _windowWidth = $(window).width();		/* 위도우창 넓이 */
-var _girdRowH = 33;							/* 그리드 Row 줄 높이 */
-var _girdRowH1 = 33;						/* 그리드 타이틀 1줄 짜리 높이*/
-var _girdRowH2 = 62;						/* 그리드 타이틀 2줄 짜리 높이*/
-var _scrollH = 27;							/* 가로스크롤bar 높이 */
+var _windowWidth 	= $(window).width();		/* 위도우창 넓이 */
+var _girdRowH 		= 33;						/* 그리드 Row 줄 높이 */
+var _girdRowH1 		= 33;						/* 그리드 타이틀 1줄 짜리 높이*/
+var _girdRowH2 		= 62;						/* 그리드 타이틀 2줄 짜리 높이*/
+var _scrollH 		= 27;						/* 가로스크롤bar 높이 */
 
 $(window).resize(function () {
 	_windowWidth = $(window).width();
@@ -404,14 +572,20 @@ var fnOrderDetailClose = function(){
 }
 
 $(document).ready(function () {
-	gagaAgGrid.createGrid('gridOrderInfo'			, gridOptionsOrderInfo);
-	gagaAgGrid.createGrid('gridOrderGoodsInfo'		, gridOptionsGoodsInfo);
+	// 그리드 그리기
+	gagaAgGrid.createGrid('gridOrderInfo'			, gridOptionsOrderInfo);		// 기본정보
+	gagaAgGrid.createGrid('gridOrderGoodsInfo'		, gridOptionsGoodsInfo);		// 상품정보
+	gagaAgGrid.createGrid('gridDeliveryAddrInfo'	, gridOptionsDeliveryInfo);		// 배송정보
+	gagaAgGrid.createGrid('gridPaymentInfo'			, gridOptionsPaymentInfo);		// 결제정보
+	gagaAgGrid.createGrid('gridDeliveryFeeInfo'		, gridOptionsDeliveryFeeInfo);	// 배송비정보
 	
 	// 그리드 데이터 바인딩
-	gridOptionsOrderInfo.api.setRowData(orderInfo);							// 기본정보
-	gridOptionsGoodsInfo.api.setRowData(orderGoodsInfo);					// 상품정보
-	//gridOptionsPaymentInfo.api.setRowData(orderPaymentInfo);				// 결제정보
-	//gridOptionsDeliveryFeeInfo.api.setRowData(orderDeliveryFeeInfo);		// 배송비정보
+	gridOptionsOrderInfo.api.setRowData(orderInfo);									// 기본정보
+	gridOptionsGoodsInfo.api.setRowData(orderGoodsInfo);							// 상품정보
+	gridOptionsDeliveryInfo.api.setRowData(orderDeliveryAddrInfo);					// 배송정보
+	gridOptionsPaymentInfo.api.setRowData(orderPaymentInfo);						// 결제정보
+	gridOptionsDeliveryFeeInfo.api.setRowData(orderDeliveryFeeInfo);				// 배송비정보
+	
 	//gridOptionsOrderChangeInfo.api.setRowData(orderChangeInfo);				// 취소/반품/교환요청 정보
 	//gridOptionsRefundInfo.api.setRowData(orderRefundInfo);					// 환불정보
 	//gridOptionsOrderCounselInfo.api.setRowData(orderCounselInfo);			// 상담내역

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

@@ -13,6 +13,15 @@
  * 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">
 	<!-- 메인타이틀 영역 -->
@@ -212,10 +221,10 @@
 					검색결과 : <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="50" selected="selected">50개씩 보기</option>
-						<option value="100">100개씩 보기</option>
+						<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>
@@ -265,14 +274,11 @@ var columnDefsOrderList = [
 				, field			: 'ordNo'
 				, width			: 75
 				, 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;
-					}
+				, rowSpan		: function(params) {
+					return 2;
+				}
+				, cellClassRules: {
+					'cell-span': 'value !== undefined'
 				}
 			},
 			{
@@ -299,7 +305,7 @@ var columnDefsOrderList = [
 			{headerName: "외부몰"		, field: "extmallNm"	, width: 100, cellClass: 'text-center', sortable: true},
 			{headerName: "휴대폰번호"	, field: "orderPhnno"	, width: 120, cellClass: 'text-center', hide: true},
 			{
-				headerName		: "사이트"
+				headerName		: "사이트"
 				, field			: "siteCd"
 				, width			: 80
 				, cellClass		: 'text-center'
@@ -660,6 +666,10 @@ gridOptionsOrderList.getRowStyle = function (params) {
 	}
 }
 
+//Rowspan
+gridOptionsOrderList.defaultColDef.resizable = true;
+gridOptionsOrderList.suppressRowTransform = true;
+
 function onFirstDataRendered(params) {
 	
 }