소스 검색

주문상세 개발중

jsh77b 5 년 전
부모
커밋
847c5be9fa

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

@@ -219,6 +219,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;

+ 62 - 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>

+ 110 - 84
style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -27,7 +27,7 @@
 					<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>
 					<div id="gridOrderGoodsInfo" style="width:100%; height:200px;" class="ag-theme-balham"></div>
@@ -42,7 +42,6 @@
 var ordNo 					= [[${ordNo}]];						// 주문번호
 var orderInfo 				= [[${orderInfo}]];					// 기본정보
 var orderGoodsInfo 			= [[${orderGoodsInfo}]];			// 주문상세정보
-var orderGoodsItemInfo 		= [[${orderGoodsItemInfo}]];		// 주문상세단품정보
 
 //var orderPaymentInfo 		= [[${orderPaymentInfo}]];			// 결제정보
 //var orderDeliveryFeeInfo = [[${orderDeliveryFeeInfo}]];		// 배송비정보
@@ -68,6 +67,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 = [
 	{
@@ -124,14 +158,15 @@ var columnDefsOrderInfo = [
 	{headerName: "관리대상"	, field: "managedRsnNm"	, width: 80		, cellClass: 'text-center'},
 	{headerName: "등급"		, field: "custGradeNm"	, width: 80		, cellClass: 'text-center'}
 ];
-var gridOptionsOrderInfo = gagaAgGrid.getGridOptions(columnDefsOrderInfo);
+//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 +176,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			: "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: "goodsTypeNm"	, width: 100, cellClass: 'text-center'},
+			{headerName: "브랜드"		, field: "brandEnm"		, width: 100, cellClass: 'text-center'},
+			{headerName: "단품코드"	, field: "itemCd"		, width: 100, 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 +211,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 +265,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 +320,15 @@ var columnDefsGoodsInfo = [
 			}
 		]
 	},
+	{
+		headerName		: "상품권"
+		, field			: "gfcdUseAmt"
+		, width			: 80
+		, cellClass		: 'text-right'
+		, cellRenderer	: function (params) {
+			return params.value.addComma();
+		}
+	},
 	{
 		headerName	: "금액(원/단위)",
 		children	: [
@@ -296,21 +361,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 +376,12 @@ 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 = gagaAgGrid.getGridOptions(columnDefsGoodsInfo);
+var gridOptionsGoodsInfo = orderAgGrid.getGridOptions(columnDefsGoodsInfo);
 </script>
 
 <script>

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

@@ -299,7 +299,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'