Просмотр исходного кода

주문상세 > 각종팝업 개발중

jsh77b 5 лет назад
Родитель
Сommit
393d7b3ea0

+ 32 - 1
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaOrderDao.java

@@ -278,7 +278,38 @@ public interface TsaOrderDao {
 	 * @since 2020. 12. 16
 	 * @since 2020. 12. 16
 	 */
 	 */
 	int deleteOrderMemo(Order order);
 	int deleteOrderMemo(Order order);
-
+	
+	/**
+	 * 주문상품 상세 변경 이력 화면
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	Collection<Order> getOrderDetailHistoryList(Order order);
+	
+	/**
+	 * 사용 쿠폰내역 팝업 화면
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	Collection<Order> getOrderDiscountCouponList(Order order);
+	
+	/**
+	 * 사용 포인트내역 팝업 화면
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	Collection<Order> getOrderDiscountPointList(Order order);
+	
+	
 }
 }
 
 
 
 

+ 38 - 1
style24.admin/src/main/java/com/style24/admin/biz/service/TsaOrderService.java

@@ -171,7 +171,7 @@ public class TsaOrderService {
 	public Collection<Order> getOrderChangeList(Order order) {
 	public Collection<Order> getOrderChangeList(Order order) {
 		return orderDao.getOrderChangeList(order);
 		return orderDao.getOrderChangeList(order);
 	}
 	}
-	
+
 	/**
 	/**
 	 * 환불정보
 	 * 환불정보
 	 *
 	 *
@@ -495,5 +495,42 @@ public class TsaOrderService {
 		orderDao.deleteOrderMemo(order);
 		orderDao.deleteOrderMemo(order);
 	}
 	}
 	
 	
+	/**
+	 * 주문상품 상세 변경 이력 화면
+	 * @param Order
+	 * @return Order
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	public Collection<Order> getOrderDetailHistoryList(Order order) {
+		return orderDao.getOrderDetailHistoryList(order);
+	}
+	
+	/**
+	 * 사용 쿠폰내역 팝업 화면
+	 * @param Order
+	 * @return Order
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	public Collection<Order> getOrderDiscountCouponList(Order order) {
+		return orderDao.getOrderDiscountCouponList(order);
+	}
+	
+	/**
+	 * 사용 포인트내역 팝업 화면
+	 * @param Order
+	 * @return Order
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	public Collection<Order> getOrderDiscountPointList(Order order) {
+		return orderDao.getOrderDiscountPointList(order);
+	}
+	
+	
+	
+	
+	
 	
 	
 }
 }

+ 70 - 4
style24.admin/src/main/java/com/style24/admin/biz/web/TsaOrderController.java

@@ -219,9 +219,6 @@ public class TsaOrderController extends TsaBaseController {
 		// 3. 주문메모정보
 		// 3. 주문메모정보
 		mav.addObject("orderCounselInfo"		, orderService.orderCounselInfo(order));				// 상담내역
 		mav.addObject("orderCounselInfo"		, orderService.orderCounselInfo(order));				// 상담내역
 		mav.addObject("orderAdminMemoInfo"		, orderService.getOrderTsainMemoList(order));			// 관리자메모
 		mav.addObject("orderAdminMemoInfo"		, orderService.getOrderTsainMemoList(order));			// 관리자메모
-		
-		mav.addObject("siteCdList"				, rendererService.getAvailCommonCodeList("G000"));		// 사이트구분
-		mav.addObject("bankList"				, rendererService.getCommonCodeList("G940"));			// 계좌목록
 
 
 		mav.setViewName("order/OrderDetailForm");
 		mav.setViewName("order/OrderDetailForm");
 		
 		
@@ -471,7 +468,7 @@ public class TsaOrderController extends TsaBaseController {
 	 * @param ordNo - 주문번호
 	 * @param ordNo - 주문번호
 	 * @return Collection<TsaOrder>
 	 * @return Collection<TsaOrder>
 	 * @author jsh77b
 	 * @author jsh77b
-	 * @since 2019. 12. 16
+	 * @since 2020. 12. 16
 	 */
 	 */
 	@GetMapping("/admin/memo/list/{ordNo}")
 	@GetMapping("/admin/memo/list/{ordNo}")
 	@ResponseBody
 	@ResponseBody
@@ -480,6 +477,75 @@ public class TsaOrderController extends TsaBaseController {
 		order.setOrdNo(ordNo);
 		order.setOrdNo(ordNo);
 		return orderService.getOrderTsainMemoList(order);
 		return orderService.getOrderTsainMemoList(order);
 	}
 	}
+	
+	/**
+	 * 주문상품 상세 변경 이력 화면
+	 * 
+	 * @param ordDtlNo - 주문상세번호
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	@GetMapping("/detail/change/hst/form/{ordDtlNo}")
+	@ResponseBody
+	public ModelAndView detailChangeHstFrom(@PathVariable(value = "ordDtlNo") int ordDtlNo) {
+
+		Order order = new Order();
+		ModelAndView mav = new ModelAndView();
+
+		order.setOrdDtlNo(ordDtlNo);
+		Collection<Order> orderDetailHstList = orderService.getOrderDetailHistoryList(order);
+
+		mav.addObject("orderDetailHstList", orderDetailHstList);
+		mav.setViewName("order/OrderDetailChangeHst");
+		return mav;
+	}
+	
+	/**
+	 * 사용 쿠폰내역 팝업 화면
+	 * 
+	 * @param ordNo - 주문번호
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	@GetMapping("/detail/coupon/hst/form/{ordNo}")
+	@ResponseBody
+	public ModelAndView detailCouponHstFrom(@PathVariable(value = "ordNo") int ordNo) {
+
+		Order order = new Order();
+		ModelAndView mav = new ModelAndView();
+
+		order.setOrdNo(ordNo);
+		Collection<Order> orderCouponHstList = orderService.getOrderDiscountCouponList(order);
+
+		mav.addObject("orderCouponHstList", orderCouponHstList);
+		mav.setViewName("order/OrderDetailCouponHst");
+		return mav;
+	}
+	
+	/**
+	 * 사용 포인트내역 팝업 화면
+	 * 
+	 * @param ordNo - 주문번호
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	@GetMapping("/detail/point/hst/form/{ordNo}")
+	@ResponseBody
+	public ModelAndView detailPointHstFrom(@PathVariable(value = "ordNo") int ordNo) {
+
+		Order order = new Order();
+		ModelAndView mav = new ModelAndView();
+
+		order.setOrdNo(ordNo);
+		Collection<Order> orderPointHstList = orderService.getOrderDiscountPointList(order);
+
+		mav.addObject("orderPointHstList", orderPointHstList);
+		mav.setViewName("order/OrderDetailPointHst");
+		return mav;
+	}
 }
 }
 
 
 
 

+ 36 - 6
style24.admin/src/main/java/com/style24/persistence/domain/Order.java

@@ -231,25 +231,55 @@ public class Order extends TscBaseDomain {
 	private int pageSize = 50;
 	private int pageSize = 50;
 	private int pageUnit = 10;
 	private int pageUnit = 10;
 	
 	
+	// 주문문의 1:1 응답 칼럼
 	private String counselClsfNm;
 	private String counselClsfNm;
 	private String ansNo;
 	private String ansNo;
 	private String ansNm;
 	private String ansNm;
 	private String regNm;
 	private String regNm;
 	private String updNm;
 	private String updNm;
 	
 	
+	// 주문메모칼럼
 	private int orderMemoSq;
 	private int orderMemoSq;
 	private String memo;
 	private String memo;
 	private String orgFileNm;
 	private String orgFileNm;
 	private String sysFileNm;
 	private String sysFileNm;
 	
 	
-	private int ordFreeGiftSq;
-	private int freeGiftSq;
-	private String freeGiftName;
-	private int freeGiftValSq;
+	// 사은품칼럼
+	private int ordFreegiftSq;
+	private int freegiftSq;
+	private String freegiftNm;
+	private int freegiftValSq;
 	private int usePoint;
 	private int usePoint;
 	private int seq;
 	private int seq;
-	
-	
+	private String userNm;
+	
+	// 환불계좌칼럼
+	private String raBank;
+	private String raBankNm;
+	private String raNo;
+	private String raNm;
+	private String defaultYn;
+	
+	// 주문상세변경내역칼럼
+	private String userId;
+	private String updId;
+	private String shipCompNm;
+	private String shipCompId;
+	
+	// 주문쿠폰
+	private int cpnSq;
+	private int cpnId;
+	private int cpnDcAmt;
+	private String cpnType;
+	private String targetCd1;
+	private String targetCd2;
+	private String cpnNm;
+	private String dcWay;
+	private int dcPval;
+	private int dcMval;
+	private int dcAval;
+	
+		
 }
 }
 
 
 
 

+ 148 - 21
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaOrder.xml

@@ -539,12 +539,15 @@
 		ON     O.CUST_NO = C.CUST_NO
 		ON     O.CUST_NO = C.CUST_NO
 		WHERE  1=1
 		WHERE  1=1
 		AND    O.ORD_NO = #{ordNo}
 		AND    O.ORD_NO = #{ordNo}
+		LIMIT  1
 	</select>
 	</select>
 	
 	
 	<!-- 주문상세 > 상품상세 목록 -->
 	<!-- 주문상세 > 상품상세 목록 -->
 	<select id="getOrderDetailList" parameterType="Order" resultType="Order">
 	<select id="getOrderDetailList" parameterType="Order" resultType="Order">
 		/* order.getOrderDetailList */
 		/* order.getOrderDetailList */
-		SELECT G1.GOODS_CD 
+		SELECT OD.ORD_NO
+		     , OD.ORD_DTL_NO
+		     , G1.GOODS_CD 
 		     , G1.GOODS_NM
 		     , G1.GOODS_NM
 		     , G1.GOODS_TYPE
 		     , G1.GOODS_TYPE
 		     , FN_GET_CODE_NM('G056', G1.GOODS_TYPE) AS GOODS_TYPE_NM
 		     , FN_GET_CODE_NM('G056', G1.GOODS_TYPE) AS GOODS_TYPE_NM
@@ -605,26 +608,27 @@
 	<!-- 주문상세 > 사은품목록 -->
 	<!-- 주문상세 > 사은품목록 -->
 	<select id="getOrderFreeGiftList" parameterType="Order" resultType="Order">
 	<select id="getOrderFreeGiftList" parameterType="Order" resultType="Order">
 		/* order.getOrderFreeGiftList */
 		/* order.getOrderFreeGiftList */
-		SELECT OFGV.ORD_FREE_GIFT_SQ
-		     , OFGV.ORD_NO
-		     , OFGV.FREE_GIFT_SQ 
-		     , FG.FREE_GIFT_NAME 
-		     , OFGV.FREE_GIFT_VAL_SQ 
-		     , OFGV.USE_POINT
-		     , OFGV.ITEM_CD 
+		SELECT OFV.ORD_FREEGIFT_SQ
+		     , OFV.ORD_NO
+		     , OFV.FREEGIFT_SQ 
+		     , FG.FREEGIFT_NM 
+		     , OFV.FREEGIFT_VAL_SQ 
+		     , OFV.USE_POINT
+		     , OFV.ITEM_CD 
 		     , G.GOODS_NM AS ITEM_NM
 		     , G.GOODS_NM AS ITEM_NM
-		     , OFGV.ITEM_QTY 
-		     , OFGV.OPT_CD 
-		     , OFGV.OPT_CD1 
-		     , OFGV.OPT_CD2 
-		     , OFGV.DEL_YN
-		FROM   TB_ORD_FREE_GIFT_VAL OFGV
-		INNER  JOIN TB_FREE_GIFT FG
-		ON     OFGV.FREE_GIFT_SQ = FG.FREE_GIFT_SQ
+		     , OFV.ITEM_QTY 
+		     , OFV.OPT_CD 
+		     , OFV.OPT_CD1 
+		     , OFV.OPT_CD2 
+		     , OFV.DEL_YN
+		FROM   TB_ORD_FREEGIFT_VAL OFV
+		INNER  JOIN TB_FREEGIFT FG
+		ON     OFV.FREEGIFT_SQ = FG.FREEGIFT_SQ
 		INNER  JOIN TB_GOODS G
 		INNER  JOIN TB_GOODS G
-		ON     OFGV.ITEM_CD = G.GOODS_CD 
+		ON     OFV.ITEM_CD = G.GOODS_CD 
 		WHERE 1=1
 		WHERE 1=1
-		AND  OFGV.ORD_NO = #{ordNo}
+		AND  OFV.ORD_NO = #{ordNo}
+		AND  OFV.DEL_YN = 'N'
 	</select>
 	</select>
 	
 	
 	<!-- 주문상세 > 배송정보 -->
 	<!-- 주문상세 > 배송정보 -->
@@ -1217,7 +1221,7 @@
 	<!-- 주문상세 > 주문메오 > 주문메모정보조회 -->
 	<!-- 주문상세 > 주문메오 > 주문메모정보조회 -->
 	<select id="getOrderMemoInfo" parameterType="Order" resultType="Order">
 	<select id="getOrderMemoInfo" parameterType="Order" resultType="Order">
 		/* order.getOrderMemoInfo */
 		/* order.getOrderMemoInfo */
-		SELECT ORDER_MEMO_SQ 
+		SELECT ORDER_MEMO_SQ
 		     , OM.ORD_NO
 		     , OM.ORD_NO
 		     , OM.MEMO
 		     , OM.MEMO
 		     , OM.REG_NO
 		     , OM.REG_NO
@@ -1226,7 +1230,7 @@
 		     , OM.UPD_DT
 		     , OM.UPD_DT
 		     , (SELECT USER_NM
 		     , (SELECT USER_NM
 		        FROM   TB_USER X
 		        FROM   TB_USER X
-		        WHERE  X.USER_NO = OM.REG_NO) AS REG_NM
+		        WHERE  X.USER_NO = OM.UPD_NO) AS USER_NM
 		FROM  TB_ORDER_MEMO OM
 		FROM  TB_ORDER_MEMO OM
 		WHERE 1=1
 		WHERE 1=1
 		AND   OM.ORD_NO = #{ordNo}
 		AND   OM.ORD_NO = #{ordNo}
@@ -1282,7 +1286,130 @@
 		AND    ORD_NO = #{ordNo}
 		AND    ORD_NO = #{ordNo}
 		AND    ORDER_MEMO_SQ = #{seq}
 		AND    ORDER_MEMO_SQ = #{seq}
 	</update>
 	</update>
-
+	
+	<!-- 주문상세 > 주문상품 상세 변경 이력 -->
+	<select id="getOrderDetailHistoryList" parameterType="Order" resultType="Order">
+		/* order.getOrderDetailHistoryList */
+		SELECT DATE_FORMAT(ODH.UPD_DT,'%Y%m%d%H%i%S') AS UPD_DT
+		     , (SELECT Z.USER_ID
+		        FROM   TB_USER Z
+		        WHERE  Z.USER_NO = ODH.UPD_NO) 				AS UPD_ID
+		     , FN_GET_CODE_NM('G013', ODH.ORD_DTL_STAT)    	AS ORD_DTL_STAT_NM 
+		     , ODH.ORD_QTY
+		     , ODH.CNCL_RTN_QTY 
+		     , ODH.DELV_LOC_CD 
+		     , ODH.INVOICE_NO 
+		     , ODH.SHIP_COMP_CD
+		     , (SELECT SHIP_COMP_NM
+		        FROM   TB_SHIP_COMPANY Z
+		        WHERE  Z.SHIP_COMP_CD = ODH.SHIP_COMP_CD) 	AS SHIP_COMP_NM
+		FROM   TB_ORDER_DETAIL_HST ODH 
+		WHERE  1=1
+		AND    ODH.ORD_DTL_NO = #{ordDtlNo}
+		ORDER  BY ODH.REG_DT DESC
+	</select>
+	
+	<!-- 주문상세 > 사용 쿠폰내역 팝업 화면 -->
+	<select id="getOrderDiscountCouponList" parameterType="Order" resultType="Order">
+		/* order.getOrderDiscountCouponList */
+		WITH COUPON_DATA AS (
+			SELECT OD.ORD_NO
+			     , OD.ORD_DTL_NO
+			     , OD.GOODS_CD
+			     , OD.ORD_AMT
+			     , OD.SUPPLY_COMP_CD
+			     , OD.DELV_FEE_CD
+			     , DF.DELV_FEE 
+			     , OD.GOODS_CPN_SQ 
+			     , OD.GOODS_CPN_DC_AMT 
+			     , OD.CART_CPN_SQ
+			     , OD.CART_CPN_DC_AMT
+			     , DF.DELV_CPN_SQ
+			     , DF.DELV_CPN_DC_AMT
+			FROM   TB_ORDER_DETAIL OD
+			INNER  JOIN TB_DELIVERY_FEE DF
+			ON     OD.SUPPLY_COMP_CD = DF.SUPPLY_COMP_CD
+			AND    OD.DELV_FEE_CD = DF.DELV_FEE_CD
+			AND    OD.ORD_NO = DF.ORD_NO
+			WHERE  1=1
+			AND    OD.ORD_NO = #{ordNo}
+		) 
+		SELECT X.*
+		     , CP.CPN_ID
+		     , CP.CPN_NM 
+		     , CP.DC_WAY 
+		     , CP.DC_PVAL 
+		     , CP.DC_MVAL 
+		     , CP.DC_AVAL
+		FROM   (
+			SELECT Z.*
+			FROM   (
+				SELECT 1                       AS DISP_ORD
+				     , CD.GOODS_CPN_SQ         AS CPN_SQ
+				     , CD.GOODS_CPN_DC_AMT     AS CPN_DC_AMT
+				     , '상품쿠폰'                 AS CPN_TYPE
+				     , CD.GOODS_CD             AS TARGET_CD1
+				     , CD.ORD_DTL_NO           AS TARGET_CD2
+				     , CD.ORD_NO
+				     , CD.ORD_AMT
+				FROM   COUPON_DATA CD
+				UNION  ALL
+				SELECT 2                       AS DISP_ORD 
+				     , CD.CART_CPN_SQ          AS CPN_SQ
+				     , CD.CART_CPN_DC_AMT      AS CPN_DC_AMT
+				     , '장바구니쿠폰'              AS CPN_TYPE
+				     , CD.GOODS_CD             AS TARGET_CD1
+				     , CD.ORD_DTL_NO           AS TARGET_CD2
+				     , CD.ORD_NO
+				     , CD.ORD_AMT
+				FROM   COUPON_DATA CD
+				UNION  ALL
+				SELECT 3                       AS DISP_ORD 
+				     , CD.DELV_CPN_SQ 	       AS CPN_SQ
+				     , CD.DELV_CPN_DC_AMT      AS CPN_DC_AMT
+				     , '배송비쿠폰'               AS CPN_TYPE
+				     , CD.SUPPLY_COMP_CD       AS TARGET_CD1
+				     , CD.DELV_FEE_CD          AS TARGET_CD2
+				     , CD.ORD_NO
+				     , CD.DELV_FEE             AS ORD_AMT
+				FROM   COUPON_DATA CD
+				GROUP  BY CD.DELV_CPN_SQ
+				     , CD.DELV_CPN_DC_AMT
+				     , CD.SUPPLY_COMP_CD
+				     , CD.DELV_FEE_CD
+				     , CD.ORD_NO
+			) Z
+			WHERE  1=1
+			AND    Z.CPN_SQ IS NOT NULL
+		) X
+		INNER  JOIN TB_CUST_COUPON CC
+		ON     X.CPN_SQ = CC.CUST_CPN_SQ
+		LEFT   OUTER JOIN TB_COUPON CP
+		ON     CC.CPN_ID = CP.CPN_ID
+		ORDER  BY DISP_ORD
+	</select>
+	
+	<!-- 주문상세 > 사용 쿠폰내역 팝업 화면 -->
+	<select id="getOrderDiscountPointList" parameterType="Order" resultType="Order">
+		/* order.getOrderDiscountPointList */
+		SELECT OD.ORD_NO
+		     , OD.ORD_DTL_NO
+		     , OD.GOODS_CD
+		     , CPH.PNT_AMT
+		     , CPH.OCCUR_GB 
+		     , CPH.OCCUR_DTL_DESC 
+		     , CPH.REG_DT
+		FROM   TB_ORDER_DETAIL OD
+		INNER  JOIN TB_CUST_POINT_HST CPH
+		ON     OD.ORD_DTL_NO = CPH.ORD_DTL_NO
+		AND    OD.ORD_NO = CPH.ORD_NO
+		WHERE  1=1
+		AND    OD.ORD_NO = #{ordNo}
+		ORDER  BY CPH.REG_DT DESC
+	</select>
+	
+	
+	
 </mapper>
 </mapper>
 
 
 
 

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

@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderDetailChangeHst.html
+ * @desc    : 주문상품상세이력 화면
+ *============================================================================
+ * Pastelmall
+ * Copyright(C) 2019 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.18   jsh77b       최초 작성
+ *******************************************************************************
+ -->
+<div class="modalPopup" data-width="780" data-height="400">
+	<div class="panelStyle">
+		<div class="panelTitle">
+			<h2>주문상품상세이력</h2>
+			<button type="button" class="close" onclick="uifnPopupClose('popupOrderDetailChangeHstForm');"><i class="fa fa-times"></i></button>
+		</div>
+			
+		<div class="panelContent" style="overflow-y:auto;">
+			<form id="cancelRequestFrm">
+				<div id="gridOrderDetailChangeHstList" style="width:100%; height:300px;" class="ag-theme-balham"></div>
+			</form>
+		</div>
+	</div>
+</div>
+
+<!-- data -->
+<script th:inline="javascript">
+/*<![CDATA[*/
+var orderDetailHstList = [[${orderDetailHstList}]];
+
+// specify the columns
+var columnDefs4OrderDetailChangeHstList = [
+	{
+		headerName			: "변경일시"	
+		, field				: "updDt"
+		, width				: 150
+		, cellClass			: 'text-center' 
+		, cellRenderer: function(params) {
+			return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmm").format("YYYY-MM-DD HH:mm") : '';
+		}
+	},
+	{headerName: "변경아이디"		, field: "updId"		, width: 120	, cellClass: 'text-center'},
+	{headerName: "변경내용"		, field: "ordDtlStatNm"	, width: 130	, cellClass: 'text-center'},
+	{headerName: "주문수량"		, field: "ordQty"		, width: 80		, cellClass: 'text-center'},
+	{headerName: "취소수량"		, field: "cnclRtnQty"	, width: 80		, cellClass: 'text-center'},
+	{headerName: "출고처"			, field: "delvLocNm"	, width: 150	, cellClass: 'text-center'},
+	{headerName: "송장번호"		, field: "invoiceNo"	, width: 130	, cellClass: 'text-center'},
+	{headerName: "택배사"			, field: "shipCompNm"	, width: 130	, cellClass: 'text-center'}
+];
+
+var gridOptions4OrderDetailChangeHstList = orderAgGrid.getGridOptions(columnDefs4OrderDetailChangeHstList);
+
+$(document).ready(function() {	
+	// Create a agGrid
+	gagaAgGrid.createGrid('gridOrderDetailChangeHstList', gridOptions4OrderDetailChangeHstList);
+	gridOptions4OrderDetailChangeHstList.api.setRowData(orderDetailHstList);
+});
+/*]]>*/
+
+</script>
+
+<!-- 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
+		};
+	}
+}
+</script>
+</html>
+
+
+
+
+

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

@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderDetailCouponHst.html
+ * @desc    : 주문상품 상세 쿠폰 이력 화면
+ *============================================================================
+ * Pastelmall
+ * Copyright(C) 2019 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.16   jsh77b       최초 작성
+ *******************************************************************************
+ -->
+<div class="modalPopup" data-width="900">
+	<div class="panelStyle">
+		<div class="panelTitle">
+			<h2>쿠폰 내역</h2>
+			<button type="button" class="close" onclick="uifnPopupClose('popupOrderDetailCouponHstForm');"><i class="fa fa-times"></i></button>
+		</div>
+			
+		<div class="panelContent" style="overflow-y:auto;">
+			<form id="cancelRequestFrm">
+				<div id="gridOrderCouponInfo" style="width:100%; height:260px;" class="ag-theme-balham"></div>
+			</form>
+		</div>
+	</div>
+</div>
+
+<!-- data -->
+<script th:inline="javascript">
+/*<![CDATA[*/
+var orderCouponHstList = [[${orderCouponHstList}]];
+
+//specify the columns
+var columnDefsOrderCouponInfo = [
+	{headerName: "쿠폰구분", 			field: "cpnType", 	width: 100, cellClass: 'text-center'},
+	{headerName: "상품/공급처", 		field: "targetCd1", width: 160, cellClass: 'text-center'},
+	{headerName: "주문상세/배송정책", 	field: "targetCd2", width: 160, cellClass: 'text-center'},
+	{headerName: "쿠폰ID", 			field: "cpnSq", 	width: 100, cellClass: 'text-center'},
+	{headerName: "쿠폰명", 			field: "cpnNm", 	width: 120, cellClass: 'text-center'},
+	{
+		headerName			: "웹 할인금액/율"
+		, field				: "dcPval"
+		, width				: 140
+		, cellClass			: 'text-center'
+		, valueFormatter	: function(params) {
+			return (params.data.dcWay == '10') ? params.value.addComma() + '원' : params.value.addComma() + '%';}	
+	},
+	{
+		headerName			: "모바일 할인금액/율"
+		, field				: "dcMval"
+		, width				: 150
+		, cellClass			: 'text-center'
+		, valueFormatter	: function(params) {
+			return (params.data.dcWay == '10') ? params.value.addComma() + '원' : params.value.addComma() + '%';
+		}	
+	},
+	{
+		headerName			: "판매상품가격"
+		, field				: "ordAmt"
+		, width				: 120
+		, cellClass			: 'text-center'
+		, valueFormatter	: function(params) {
+			return params.value.addComma();
+		}	
+	},
+	{
+		headerName			: "실할인금액"
+		, field				: "cpnDcAmt"
+		, width				: 120
+		, cellClass			: 'text-center'
+		, valueFormatter	: function(params) {
+			return params.value.addComma();
+		}	
+	}
+];
+
+var gridOptionsOrderCouponInfo = orderAgGrid.getGridOptions(columnDefsOrderCouponInfo);
+
+$(document).ready(function() {	
+	// Create a agGrid
+	gagaAgGrid.createGrid('gridOrderCouponInfo', gridOptionsOrderCouponInfo);
+	gridOptionsOrderCouponInfo.api.setRowData(orderCouponHstList);
+});
+/*]]>*/
+
+</script>
+
+<!-- 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
+		};
+	}
+}
+</script>
+</html>
+
+
+
+
+

+ 9 - 38
style24.admin/src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -93,12 +93,6 @@
 					</tbody>
 					</tbody>
 				</table>
 				</table>
 				
 				
-				<div id="wrapRefundAccount" style="width:25%;">
-					<h4>환불계좌정보</h4>
-					<button type="button" id="btnSaveAccount" class="btn btnRight btn-base btn-sm" style="margin-left:10px;" >등록</button>
-					<div id="gridOptionsRefundAccountInfo" style="height: 100px;" class="ag-theme-balham"></div>
-				</div>
-				
 			</form>
 			</form>
 		</div>
 		</div>
 	</div>
 	</div>
@@ -119,10 +113,6 @@ var orderChangeInfo 		= [[${orderChangeInfo}]];				// 취소/반품/교환요청
 var orderRefundInfo 		= [[${orderRefundInfo}]];				// 환불정보
 var orderRefundInfo 		= [[${orderRefundInfo}]];				// 환불정보
 var orderCounselInfo 		= [[${orderCounselInfo}]];				// 상담내역
 var orderCounselInfo 		= [[${orderCounselInfo}]];				// 상담내역
 var orderAdminMemoInfo 		= [[${orderAdminMemoInfo}]];			// 관리자메모
 var orderAdminMemoInfo 		= [[${orderAdminMemoInfo}]];			// 관리자메모
-var orderRfAccountInfo 		= [[${orderRfAccountInfo}]];			// 환불계좌정보
-
-var siteCdList 				= gagajf.convertToArray([[${siteCdList}]]);	// 사이트목록
-var bankList 				= gagajf.convertToArray([[${bankList}]]);	// 은행코드
 
 
 // 쿠폰,포인트,적립금 컬럼배경색설정
 // 쿠폰,포인트,적립금 컬럼배경색설정
 var goodsCpnDcAmtClass 		= (orderGoodsInfo[0].goodsCpnDcAmt > 0) 	? 'bgPink' : 'text-right';
 var goodsCpnDcAmtClass 		= (orderGoodsInfo[0].goodsCpnDcAmt > 0) 	? 'bgPink' : 'text-right';
@@ -344,8 +334,8 @@ var columnDefsGoodsInfo = [
 				, field			: "tmtb1DcAmt"
 				, field			: "tmtb1DcAmt"
 				, width			: 70
 				, width			: 70
 				, cellClass		: 'text-right'
 				, cellClass		: 'text-right'
-				, cellRenderer: function (params) {
-					return params.value.addComma();
+				, cellRenderer	: function (params) {
+					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderPointHst('" + params.data.ordNo + "');\">" + params.value.addComma() + "</a>";
 				}
 				}
 			},
 			},
 			{
 			{
@@ -353,8 +343,8 @@ var columnDefsGoodsInfo = [
 				, field			: "tmtb2DcAmt"
 				, field			: "tmtb2DcAmt"
 				, width			: 70
 				, width			: 70
 				, cellClass		: 'text-right'
 				, cellClass		: 'text-right'
-				, cellRenderer: function (params) {
-					return params.value.addComma();
+				, cellRenderer	: function (params) {
+					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderPointHst('" + params.data.ordNo + "');\">" + params.value.addComma() + "</a>";
 				}
 				}
 			}
 			}
 		]
 		]
@@ -460,11 +450,11 @@ var gridOptionsGoodsInfo = orderAgGrid.getGridOptions(columnDefsGoodsInfo);
 
 
 // 2.5 주문사은품정보
 // 2.5 주문사은품정보
 var columnDefsOrderFreeGiftInfo = [
 var columnDefsOrderFreeGiftInfo = [
-	{headerName: "주문사은품번호"	, field: "ordFreeFigtSq"	, width: 100, cellClass: 'text-center', hide: true},
+	{headerName: "주문사은품번호"	, field: "ordFreegiftSq"	, width: 100, cellClass: 'text-center', hide: true},
 	{headerName: "주문번호"		, field: "ordNo"			, width: 100, cellClass: 'text-center'},
 	{headerName: "주문번호"		, field: "ordNo"			, width: 100, cellClass: 'text-center'},
-	{headerName: "사은품프로모션"	, field: "freeGiftSq"		, width: 100, cellClass: 'text-center', hide: true},
-	{headerName: "사은품프로모션명"	, field: "freeGiftName"		, width: 200, cellClass: 'text-center'},
-	{headerName: "사은품혜택번호"	, field: "freeGiftValSq"	, width: 100, cellClass: 'text-center', hide: true},
+	{headerName: "사은품프로모션"	, field: "freegiftSq"		, width: 100, cellClass: 'text-center', hide: true},
+	{headerName: "사은품프로모션명"	, field: "freegiftNm"		, width: 200, cellClass: 'text-center'},
+	{headerName: "사은품혜택번호"	, field: "freegiftValSq"	, width: 100, cellClass: 'text-center', hide: true},
 	{
 	{
 		headerName			: "사용포인트"		
 		headerName			: "사용포인트"		
 		, field				: "usePoint"			
 		, field				: "usePoint"			
@@ -762,7 +752,7 @@ var columnDefsOrderMemoInfo = [
 			var retStr = '';
 			var retStr = '';
 			
 			
 			if (!gagajf.isNull(params.value)) {
 			if (!gagajf.isNull(params.value)) {
-				retStr = '<a href="javascript:void(0);" onclick="fnCreateOrderMemo(\'' + params.data.ordNo + '\',\'' + params.data.seq + '\',\'U' + '\');">' + params.value + '</a>';
+				retStr = '<a href="javascript:void(0);" onclick="fnCreateOrderMemo(\'' + params.data.ordNo + '\',\'' + params.data.orderMemoSq + '\',\'U' + '\');">' + params.value + '</a>';
 			}
 			}
 			return retStr;
 			return retStr;
 		}
 		}
@@ -783,22 +773,6 @@ var columnDefsOrderMemoInfo = [
 	},
 	},
 ];
 ];
 var gridOptionsOrderMemoInfo = orderAgGrid.getGridOptions(columnDefsOrderMemoInfo);
 var gridOptionsOrderMemoInfo = orderAgGrid.getGridOptions(columnDefsOrderMemoInfo);
-
-// 10. 환불계좌정보
-var columnDefsRefundAccountInfo = [
-	{
-		headerName			: "은행명"
-		, field				: "raBnk"
-		, width				: 120
-		, cellClass			: 'text-center'
-		, valueFormatter	: function (params) {
-			return gagaAgGrid.lookupValue(bankList, params.value);
-		}
-	},
-	{headerName: "계좌번호"		, field: "raNo"		, width: 100	, cellClass: 'text-center'},
-	{headerName: "예금주"			, field: "raNm"		, width: 80		, cellClass: 'text-center'}
-];
-var gridOptionsRefundAccountInfo = orderAgGrid.getGridOptions(columnDefsRefundAccountInfo);
 </script>
 </script>
 
 
 <script>
 <script>
@@ -856,7 +830,6 @@ $(document).ready(function () {
 	gagaAgGrid.createGrid('gridDeliveryFeeInfo'				, gridOptionsDeliveryFeeInfo);		// 배송비정보
 	gagaAgGrid.createGrid('gridDeliveryFeeInfo'				, gridOptionsDeliveryFeeInfo);		// 배송비정보
 	gagaAgGrid.createGrid('gridOrderChangeInfo'				, gridOptionsOrderChangeInfo);		// 취소/반품/교환 요청 정보
 	gagaAgGrid.createGrid('gridOrderChangeInfo'				, gridOptionsOrderChangeInfo);		// 취소/반품/교환 요청 정보
 	gagaAgGrid.createGrid('gridOrderRefundInfo'				, gridOptionsRefundInfo);			// 환불정보
 	gagaAgGrid.createGrid('gridOrderRefundInfo'				, gridOptionsRefundInfo);			// 환불정보
-	gagaAgGrid.createGrid('gridOptionsRefundAccountInfo'	, gridOptionsRefundAccountInfo);	// 환불계좌정보
 	gagaAgGrid.createGrid('gridOrderCounselInfo'			, gridOptionsOrderCounselInfo);		// 상담내역
 	gagaAgGrid.createGrid('gridOrderCounselInfo'			, gridOptionsOrderCounselInfo);		// 상담내역
 	gagaAgGrid.createGrid('gridOrderMemoInfo'				, gridOptionsOrderMemoInfo);		// 관리자메모
 	gagaAgGrid.createGrid('gridOrderMemoInfo'				, gridOptionsOrderMemoInfo);		// 관리자메모
 	
 	
@@ -869,7 +842,6 @@ $(document).ready(function () {
 	gridOptionsDeliveryFeeInfo.api.setRowData(orderDeliveryFeeInfo);				// 배송비정보
 	gridOptionsDeliveryFeeInfo.api.setRowData(orderDeliveryFeeInfo);				// 배송비정보
 	gridOptionsOrderChangeInfo.api.setRowData(orderChangeInfo);						// 취소/반품/교환요청 정보
 	gridOptionsOrderChangeInfo.api.setRowData(orderChangeInfo);						// 취소/반품/교환요청 정보
 	gridOptionsRefundInfo.api.setRowData(orderRefundInfo);							// 환불정보
 	gridOptionsRefundInfo.api.setRowData(orderRefundInfo);							// 환불정보
-	gridOptionsRefundAccountInfo.api.setRowData(orderRfAccountInfo);				// 환불계좌정보
 	gridOptionsOrderCounselInfo.api.setRowData(orderCounselInfo);					// 상담내역
 	gridOptionsOrderCounselInfo.api.setRowData(orderCounselInfo);					// 상담내역
 	gridOptionsOrderMemoInfo.api.setRowData(orderAdminMemoInfo);					// 관리자메모
 	gridOptionsOrderMemoInfo.api.setRowData(orderAdminMemoInfo);					// 관리자메모
 	
 	
@@ -1052,7 +1024,6 @@ $(document).ready(function () {
 			, gridOptionsOrderMemoInfo
 			, gridOptionsOrderMemoInfo
 			, null
 			, null
 			, function (result) {
 			, function (result) {
-				$('#gridOrderMemoInfo').css('height', 41 + 33 * ((result.length == 0 || result == null) ? 1 : result.length));
 			}
 			}
 		);
 		);
 	};
 	};

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

@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderDetailPointHst.html
+ * @desc    : 주문상품 상세 마일리지 이력 화면
+ *============================================================================
+ * Pastelmall
+ * Copyright(C) 2019 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.12.16   jsh77b       최초 작성
+ *******************************************************************************
+ -->
+<div class="modalPopup" data-width="900">
+	<div class="panelStyle">
+		<div class="panelTitle">
+			<h2>마일리지 내역</h2>
+			<button type="button" class="close" onclick="uifnPopupClose('popupOrderDetailCouponHstForm');"><i class="fa fa-times"></i></button>
+		</div>
+			
+		<div class="panelContent" style="overflow-y:auto;">
+			<form id="pointHstFrm">
+				<div id="gridOrderPointInfo" style="width:100%; height:260px;" class="ag-theme-balham"></div>
+			</form>
+		</div>
+	</div>
+</div>
+
+<!-- data -->
+<script th:inline="javascript">
+/*<![CDATA[*/
+var orderPointHstList = [[${orderPointHstList}]];
+
+// specify the columns
+var columnDefsOrderPointInfo = [
+		{headerName: "상품코드", 		field: "goodsCd", 		width: 100, cellClass: 'text-center'},
+		{headerName: "적립율(PC)", 	field: "pntPrate", 		width: 100, cellClass: 'text-center'},
+		{headerName: "적립율(모바일)", 	field: "pntMrate", 		width: 100, cellClass: 'text-center'},
+		{headerName: "판매상품가격", 	field: "currPrice", 	width: 120, cellClass: 'text-center', valueFormatter: function(params) {return params.value.addComma();}	},
+		{headerName: "실결제상품가격", 	field: "realOrdAmt", 	width: 140, cellClass: 'text-center', valueFormatter: function(params) {return params.value.addComma();}	},
+		{headerName: "마일리지금액", 	field: "pntAmt", 		width: 100, cellClass: 'text-center', valueFormatter: function(params) {return params.value.addComma();}	},
+		{headerName: "사유", 			field: "occurDtlDesc", 	width: 120, cellClass: 'text-center'},
+		{headerName: "전환일자", 		field: "pntUploadDt",	width: 160, cellClass: 'text-center'},
+		{headerName: "상태", 			field: "pntUploadStat", width: 100, cellClass: 'text-center'},
+		{headerName: "등록일시", 		field: "regDt",			width: 160, cellClass: 'text-center'}
+];
+
+var gridOptionsOrderPointInfo = orderAgGrid.getGridOptions(columnDefsOrderPointInfo);
+
+$(document).ready(function() {	
+	// Create a agGrid
+	gagaAgGrid.createGrid('gridOrderCouponInfo', gridOptionsOrderCouponInfo);
+	gridOptionsOrderCouponInfo.api.setRowData(orderCouponHstList);
+});
+/*]]>*/
+
+</script>
+
+<!-- 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
+		};
+	}
+}
+</script>
+</html>
+
+
+
+
+

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

@@ -34,8 +34,7 @@
 					<tbody>
 					<tbody>
 						<tr>
 						<tr>
 							<th>등록자ID</th>
 							<th>등록자ID</th>
-							<td id="userId">
-							</td>
+							<td id="userNm"></td>
 						</tr>
 						</tr>
 						<tr>
 						<tr>
 							<th>관리자 메모</th>
 							<th>관리자 메모</th>
@@ -79,7 +78,7 @@
 /*<![CDATA[*/
 /*<![CDATA[*/
 // 이벤트 바인딩 관련
 // 이벤트 바인딩 관련
 var orderMemo 	= [[${orderMemo}]];
 var orderMemo 	= [[${orderMemo}]];
-var userId 		= [[${userId}]];
+var userNo 		= [[${userNo}]];
 var userNm 		= [[${userNm}]];
 var userNm 		= [[${userNm}]];
 var mode 		= [[${mode}]];
 var mode 		= [[${mode}]];
 
 
@@ -156,22 +155,22 @@ $(document).ready(function() {
 	var userText = '';
 	var userText = '';
 	
 	
 	if (mode == 'U') {
 	if (mode == 'U') {
-		userText = orderMemo.userNm + ' ('+orderMemo.updId+')';
+		userText = orderMemo.userNm + ' ('+orderMemo.updNo+')';
 		$('#orderMemoRequestFrm input[name=orgFileNm]').val(orderMemo.orgFileNm);
 		$('#orderMemoRequestFrm input[name=orgFileNm]').val(orderMemo.orgFileNm);
 		$('#orderMemoRequestFrm input[name=sysFileNm]').val(orderMemo.sysFileNm);
 		$('#orderMemoRequestFrm input[name=sysFileNm]').val(orderMemo.sysFileNm);
 	} else {
 	} else {
-		if (!gagajf.isNull(userId) && !gagajf.isNull(userNm)) {
-			userText = userNm + ' (' + userId + ')';
+		if (!gagajf.isNull(userNm) && !gagajf.isNull(userNo)) {
+			userText = userNm + ' (' + userNo + ')';
 		} else {
 		} else {
-			if (gagajf.isNull(userId)) userText = userNm;
-			if (gagajf.isNull(userNm)) userText = userId;
+			if (gagajf.isNull(userNm)) userText = userNm;
+			if (gagajf.isNull(userNo)) userText = userNo;
 		}
 		}
 	}
 	}
 	
 	
-	$('#userId').text(userText);
+	$('#userNm').text(userText);
 
 
 	// 등록자만 수정 가능하게 처리
 	// 등록자만 수정 가능하게 처리
-	if (mode == 'U' && userId != orderMemo.updId) {
+	if (mode == 'U' && userNo != orderMemo.updNo) {
 		$('#btnOrderMemoRegistOk').css('display', 'none');
 		$('#btnOrderMemoRegistOk').css('display', 'none');
 		$('#imageFileTr').css('display', 'none');
 		$('#imageFileTr').css('display', 'none');
 		$('#orderMemoRequestFrm textarea[name=memo]').attr('readonly', true);
 		$('#orderMemoRequestFrm textarea[name=memo]').attr('readonly', true);