Kaynağa Gözat

Merge remote-tracking branch 'origin/develop' into xodud1202

xodud lee 5 yıl önce
ebeveyn
işleme
09aee132a0
31 değiştirilmiş dosya ile 676 ekleme ve 230 silme
  1. 10 0
      src/main/java/com/style24/admin/biz/dao/TsaDeliveryDao.java
  2. 13 1
      src/main/java/com/style24/admin/biz/service/TsaDeliveryService.java
  3. 2 0
      src/main/java/com/style24/admin/biz/service/TsaReviewService.java
  4. 33 0
      src/main/java/com/style24/admin/biz/web/TsaDeliveryController.java
  5. 1 0
      src/main/java/com/style24/admin/biz/web/TsaDisplayController.java
  6. 20 30
      src/main/java/com/style24/admin/biz/web/TsaWithdrawController.java
  7. 10 2
      src/main/java/com/style24/persistence/domain/Delivery.java
  8. 1 0
      src/main/java/com/style24/persistence/domain/Review.java
  9. 1 0
      src/main/java/com/style24/persistence/domain/Withdraw.java
  10. 1 0
      src/main/java/com/style24/persistence/domain/WithdrawExc.java
  11. 46 5
      src/main/java/com/style24/persistence/mybatis/shop/TsaDelivery.xml
  12. 10 3
      src/main/java/com/style24/persistence/mybatis/shop/TsaDsiplay.xml
  13. 3 0
      src/main/java/com/style24/persistence/mybatis/shop/TsaRenderer.xml
  14. 2 2
      src/main/java/com/style24/persistence/mybatis/shop/TsaReview.xml
  15. 2 0
      src/main/java/com/style24/persistence/mybatis/shop/TsaWithdraw.xml
  16. 0 6
      src/main/resources/config/application-locd.yml
  17. 0 6
      src/main/resources/config/application.yml
  18. 4 4
      src/main/webapp/WEB-INF/views/delivery/AssignPopupForm.html
  19. 21 7
      src/main/webapp/WEB-INF/views/delivery/BanGoodsRegistForm.html
  20. 15 5
      src/main/webapp/WEB-INF/views/delivery/BangoodsListForm.html
  21. 35 2
      src/main/webapp/WEB-INF/views/delivery/DeliveryListForm.html
  22. 10 0
      src/main/webapp/WEB-INF/views/delivery/DeliveryWithdrawDirectiveListForm.html
  23. 160 0
      src/main/webapp/WEB-INF/views/delivery/ExchangeDelvFailListForm.html
  24. 41 22
      src/main/webapp/WEB-INF/views/display/MainListForm.html
  25. 87 8
      src/main/webapp/WEB-INF/views/display/MainMultiContentsPopupForm.html
  26. 2 6
      src/main/webapp/WEB-INF/views/marketing/PlanTemplatePopupForm.html
  27. 69 79
      src/main/webapp/WEB-INF/views/withdraw/RefundDetailForm.html
  28. 2 1
      src/main/webapp/WEB-INF/views/withdraw/RefundRegisterListForm.html
  29. 29 11
      src/main/webapp/WEB-INF/views/withdraw/WithdrawDirectiveListForm.html
  30. 15 6
      src/main/webapp/WEB-INF/views/withdraw/WithdrawExceptionListForm.html
  31. 31 24
      src/main/webapp/WEB-INF/views/withdraw/WmsWithdrawListForm.html

+ 10 - 0
src/main/java/com/style24/admin/biz/dao/TsaDeliveryDao.java

@@ -330,4 +330,14 @@ public interface TsaDeliveryDao {
 	 */
 	void cancelAssignDelvLoc(Delivery delivery);
 	
+	/**
+	 * 교환배송미출고대상 목록
+	 *
+	 * @param Delivery 
+	 * @return Collection<Delivery>
+	 * @author jsh77b
+	 * @since 2021. 06. 07
+	 */
+	Collection<Delivery> getExchangeDelvFailList(Delivery delivery);
+	
 }

+ 13 - 1
src/main/java/com/style24/admin/biz/service/TsaDeliveryService.java

@@ -610,6 +610,18 @@ public class TsaDeliveryService {
 		order.setUpdNo(userId);
 		order.setRegNo(userId);
 		orderDao.createOrderDetailHst(order);		
-	}	
+	}
+	
+	/**
+	 * 교환배송미출고대상 목록
+	 *
+	 * @param -Delivery
+	 * @return Collection<Delivery>
+	 * @author jsh77b
+	 * @since 2021. 06. 07
+	 */
+	public Collection<Delivery> getExchangeDelvFailList(Delivery delivery) {
+		return deliveryDao.getExchangeDelvFailList(delivery);
+	}
 	
 }

+ 2 - 0
src/main/java/com/style24/admin/biz/service/TsaReviewService.java

@@ -81,6 +81,7 @@ public class TsaReviewService {
 		// 동영상(=포토)상품평포인트금액
 		int pntAmt = envsetService.getPhotoReviewPoint(TscConstants.Site.STYLE24.value());
 		review.setGvPntAmt(pntAmt);
+		review.setRmPntAmt(pntAmt);
 		review.setRegNo(TsaSession.getInfo().getUserNo());
 		review.setUpdNo(TsaSession.getInfo().getUserNo());
 
@@ -119,6 +120,7 @@ public class TsaReviewService {
 
 		for (Review review : reviewList) {
 			review.setGvPntAmt(bestPntAmt);
+			review.setRmPntAmt(bestPntAmt);
 			review.setRegNo(TsaSession.getInfo().getUserNo());
 			review.setUpdNo(TsaSession.getInfo().getUserNo());
 

+ 33 - 0
src/main/java/com/style24/admin/biz/web/TsaDeliveryController.java

@@ -540,4 +540,37 @@ public class TsaDeliveryController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
 	
+	/**
+	 * 교환배송미출고대상
+	 * 
+	 * @return ModelAndView
+	 * @throws Exception
+	 * @author jsh77b
+	 * @since 2021. 06. 07
+	 */
+	@RequestMapping(value = "/exchangeDelvFail/list/form")
+	public ModelAndView deliveryExchangeDelvFailListForm() throws Exception {
+		ModelAndView mav = new ModelAndView();
+
+		mav.setViewName("delivery/ExchangeDelvFailListForm");
+
+		return mav;
+	}
+	
+	/**
+	 * 교환배송미출고대상 목록
+	 *
+	 * @param
+	 * @return
+	 * @throws Exception
+	 * @author jsh77b
+	 * @since 2021. 06. 07
+	 */
+	@PostMapping("/exchangeDelvFail/list")
+	@ResponseBody
+	public Collection<Delivery> getExchangeDelvFailList(@RequestBody Delivery delivery) throws Exception {
+		Collection<Delivery> dataList = deliveryService.getExchangeDelvFailList(delivery);
+		return dataList;
+	}
+	
 }

+ 1 - 0
src/main/java/com/style24/admin/biz/web/TsaDisplayController.java

@@ -704,6 +704,7 @@ public class TsaDisplayController extends TsaBaseController {
 		ModelAndView mav = new ModelAndView();
 		mav.addObject("cateNo", cateNo);
 		mav.addObject("contentsLoc", contentsLoc);
+		mav.addObject("brandGroupNo", brandGroupNo);
 		mav.addObject("contentsDesc", displayService.getContentsDesc(contentsLoc));
 		mav.addObject("contentsLocList", rendererService.getAvailCommonCodeList("G028"));
 

+ 20 - 30
src/main/java/com/style24/admin/biz/web/TsaWithdrawController.java

@@ -132,39 +132,18 @@ public class TsaWithdrawController extends TsaBaseController {
 		log.info("withdraw {}"+withdraw.toString());
 		mav.addObject("ordChgSq", withdraw.getOrdChgSq());
 		mav.addObject("ordNo", withdraw.getOrdNo());
-		
-		
-		
-		
-		// 남은 상품 정보
-		mav.addObject("remainGoodsInfo", withdraw);//withdrawService.getRemainGoodsInfo(withdraw));
-
-		// 남은 상품 목록
-		mav.addObject("remainGoodsList", withdraw); //withdrawService.getWithdrawRemainOrderDetailList(withdraw));
-
-		// 장바구니 쿠폰 정보
-		mav.addObject("couponInfo", withdraw); // withdrawService.getCouponInfo(withdraw));
-
-		// 주문전체 금액
-		mav.addObject("orderDetailSumAmt", withdraw); //withdrawService.getOrderDetailSumAmt(withdraw.getOrdNo().toString()));
-
-		//
-		mav.addObject("sumQty", withdraw); // withdrawService.getSumChgQtyWdQty(withdraw));
-
-		// TODO: 아래 확인후 구현 (.. ) ( ..)
-		//mav.addObject("ordChgCnt", deliveryService.getOrdChgCnt(withdraw.getOrdNo()));
-		
-		
-		
-		
-		
+		mav.addObject("userNo", withdraw.getUserNo());
 		
 		OrderChange orderChange= new OrderChange();
 		orderChange.setOrdChgSq(withdraw.getOrdChgSq());
 		orderChange.setUserNo(withdraw.getUserNo());
 		//orderChangeService.refundConfirmPreInfo(orderChange);
 		
-		mav.addObject("refundConfirmPreInfo", orderChangeService.refundConfirmPreInfo(orderChange));
+		//mav.addObject("refundConfirmPreInfo", orderChangeService.refundConfirmPreInfo(orderChange));
+		
+		//mav.addObject("dataList", withdrawService.getRefundDetailList(withdraw));
+		
+		
 		
 		mav.setViewName("withdraw/RefundDetailForm");
 		return mav;
@@ -181,9 +160,20 @@ public class TsaWithdrawController extends TsaBaseController {
 	 */
 	@PostMapping("/detail/list")
 	@ResponseBody
-	public Collection<Withdraw> getRefundDetailList(@RequestBody Withdraw withdraw) {
-		Collection<Withdraw> dataList = withdrawService.getRefundDetailList(withdraw);
-		return dataList;
+	public GagaMap getRefundDetailList(@RequestBody Withdraw withdraw) {
+		
+		OrderChange orderChange= new OrderChange();
+		orderChange.setOrdChgSq(withdraw.getOrdChgSq());
+		orderChange.setUserNo(withdraw.getUserNo());
+		//orderChangeService.refundConfirmPreInfo(orderChange);
+		
+		GagaMap result = new GagaMap();
+		
+		result.set("refundConfirmPreInfo", orderChangeService.refundConfirmPreInfo(orderChange));
+		result.set("dataList",withdrawService.getRefundDetailList(withdraw));
+		
+	//	Collection<Withdraw> dataList = withdrawService.getRefundDetailList(withdraw);
+		return result;
 	}
 
 	/**

+ 10 - 2
src/main/java/com/style24/persistence/domain/Delivery.java

@@ -1,7 +1,5 @@
 package com.style24.persistence.domain;
 
-import java.util.Collection;
-
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 import com.style24.persistence.TscPageRequest;
@@ -158,6 +156,16 @@ public class Delivery extends TscBaseDomain {
 	private int pageSize = 50;
 	private int pageUnit = 10;
 	
+	private int exchangeDelvFailSq;
+	private int ordChgSq;
+	private String delvCnclYn;
+	private String delvCnclYnNm;
+	private int cnclRtnQty;
+	private String delvFailReason;
+	
+	
+	
+	
 	
 
 	

+ 1 - 0
src/main/java/com/style24/persistence/domain/Review.java

@@ -89,6 +89,7 @@ public class Review extends TscBaseDomain {
 	// 베스트상품평포인트 생성
 	private Integer custPntSq;		// 고객포인트일련번호
 	private int gvPntAmt;			// 지급포인트금액
+	private int rmPntAmt;			// 잔여포인트
 	private String occurGb;			// 포인트발생구분
 	private String occurDtlDesc;	// 포인트발생상세설명
 	private int pntAmt;				// 포인트금액

+ 1 - 0
src/main/java/com/style24/persistence/domain/Withdraw.java

@@ -100,6 +100,7 @@ public class Withdraw extends TscBaseDomain {
 	private int addPayCost; 	// 추가결제비용 
 	private int totalOrdQty;    // 주문총수량 
 	private int addDeliveryFee;
+	private int refundAmt; 
 	
 	private String stDate;					// 조회 시작 기간
 	private String edDate;					// 조회 종료 기간

+ 1 - 0
src/main/java/com/style24/persistence/domain/WithdrawExc.java

@@ -93,6 +93,7 @@ public class WithdrawExc extends TscBaseDomain {
 	private int chgQty;  
 	private int ordAmt;
 	private int addPayCost;
+	private int codFee; 
 	
 	private Integer orderNo;           // 주문번호
 	private Integer orderDtlNo;        // 주문상세번호 

+ 46 - 5
src/main/java/com/style24/persistence/mybatis/shop/TsaDelivery.xml

@@ -415,7 +415,7 @@
 		SELECT DBG.DEL_YN
 			, G.BRAND_CD
 			, B.BRAND_KNM
-			, DL.DELV_LOC_NM
+			, (SELECT MAX(DELV_LOC_NM) FROM TB_DELIVERY_LOC DL WHERE DL.DELV_LOC_CD = DBG.DELV_LOC_CD ) AS DELV_LOC_NM
 			, (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = DBG.GOODS_CD AND COLOR_CD = DBG.OPT_CD1 AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
 			, G.GOODS_NM
 			, DBG.GOODS_CD
@@ -426,7 +426,6 @@
 			, DBG.DELV_BAN_EDDT	
 			, DBG.DELV_BAN_GOODS_SQ
 		FROM  TB_DELIVERY_BAN_GOODS DBG
-		INNER JOIN TB_DELIVERY_LOC DL   ON DBG.DELV_LOC_CD = DL.DELV_LOC_CD
 		INNER JOIN TB_GOODS        G    ON DBG.GOODS_CD = G.GOODS_CD
 		INNER JOIN TB_BRAND        B    ON G.BRAND_CD = B.BRAND_CD
 		WHERE 1=1
@@ -1128,14 +1127,14 @@
 	
 	<!-- 출고처지정 삭제   -->
 	<delete id="deleteTbDeliveryAssign" parameterType="Delivery" >
-		/*TsbDelivery.deleteTbDeliveryAssign*/
+		/*TsaDelivery.deleteTbDeliveryAssign*/
 		DELETE FROM TB_DELIVERY_ASSIGN
 		WHERE ORD_DTL_NO  = #{ordDtlNo}
 	</delete>	
 	
 	<!-- 주문상세 출고처지정 취소   -->
 	<update id="cancelAssignDelvLoc" parameterType="Delivery" >
-		/*TsbDelivery.cancelAssignDelvLoc*/
+		/*TsaDelivery.cancelAssignDelvLoc*/
 		UPDATE TB_ORDER_DETAIL SET
 			  ORD_DTL_STAT     = #{ordDtlStat}
 			, DELV_LOC_CD      = NULL
@@ -1144,7 +1143,49 @@
 			, UPD_NO           = #{updNo}
 			, UPD_DT           = NOW()
 		WHERE ORD_DTL_NO = #{ordDtlNo}
-	</update>	
+	</update>
+	
+	<!-- 교환배송미출고대상 목록   -->
+	<select id="getExchangeDelvFailList" parameterType="Delivery" resultType="Delivery">
+		/* TsaDelivery.getExchangeDelvFailList */
+		SELECT EDF.EXCHANGE_DELV_FAIL_SQ
+		     , EDF.ORD_CHG_SQ
+		     , EDF.ORD_NO
+		     , EDF.ORD_DTL_NO
+		     , EDF.DELV_CNCL_YN
+		     , CASE WHEN DELV_CNCL_YN IN ('Y')
+		            THEN '대기'
+		            ELSE '완료'
+		            END  DELV_CNCL_YN_NM
+		     , EDF.ORD_QTY
+		     , EDF.CNCL_RTN_QTY
+		     , EDF.DELV_FAIL_REASON
+		     , G1.GOODS_CD
+		     , G1.GOODS_NM
+		     , G1.GOODS_TYPE
+		     , O.ORD_NM
+		     , O.ORD_PHNNO 
+		     , O.ORD_EMAIL 
+		FROM   TB_EXCHANGE_DELV_FAIL EDF
+		INNER  JOIN TB_ORDER_DETAIL OD
+		ON     OD.ORD_NO = EDF.ORD_NO
+		INNER  JOIN TB_GOODS G1
+		ON     OD.GOODS_CD = G1.GOODS_CD
+		INNER  JOIN TB_ORDER O
+		ON     EDF.ORD_NO = O.ORD_NO
+		WHERE  1=1
+		AND    EDF.DEL_YN = 'N'
+		<if test='ordNm != null and ordNm != ""'>
+		AND    O.ORD_NM = #{ordNm}
+		</if>
+		<if test='ordNo != null and ordNo != ""'>
+		AND    O.ORD_No = #{ordNo}
+		</if>
+		<if test='delvCnclYn != null and delvCnclYn != ""'>
+		AND    EDF.DELV_CNCL_YN = #{delvCnclYn}
+		</if>
+		ORDER  BY EDF.REG_DT ASC
+	</select>
 		
 	
 </mapper>

+ 10 - 3
src/main/java/com/style24/persistence/mybatis/shop/TsaDsiplay.xml

@@ -1473,7 +1473,11 @@
 			,#{contentsType}
 			,DATE_FORMAT(#{dispStdt}, '%Y-%m-%d %H:%i:%S')
 			,DATE_FORMAT(#{dispEddt}, '%Y-%m-%d %H:%i:%S')
-			,(SELECT DISP_ORD FROM (SELECT IFNULL((MAX(DISP_ORD) + 1), 1) AS DISP_ORD FROM	TB_CONTENTS_PREVIEW	WHERE CATE_NO = #{cateNo} AND CONTENTS_LOC = #{contentsLoc}) TMP)
+			,(SELECT DISP_ORD FROM (SELECT IFNULL((MAX(DISP_ORD) + 1), 1) AS DISP_ORD FROM	TB_CONTENTS_PREVIEW	WHERE CATE_NO = #{cateNo} AND CONTENTS_LOC = #{contentsLoc}
+			    <if test="brandGroupNo != null and brandGroupNo !=''">
+			        AND BRAND_GROUP_NO = #{brandGroupNo}
+			    </if>
+			    ) TMP)
 			,#{imgPath1}
 			,#{imgPath2}
 			,#{imgPath3}
@@ -1684,13 +1688,13 @@
 		(
 		     IFNULL(NULLIF(#{brandGroupNo},''),0)
 		    ,#{cateNo}
-		    ,(SELECT LEAF_CATE_NO FROM (SELECT	LEAF_CATE_NO
+		    ,IFNULL((SELECT LEAF_CATE_NO FROM (SELECT	LEAF_CATE_NO
 		                                FROM	TB_CATE_4SRCH
 		                                WHERE	1=1
 		                                <if test="cateNo != null and cateNo != ''">
 		                                AND     CATE1_NO = #{cateNo}
 		                                </if>
-		                                AND		CONTENTS_LOC = #{contentsLoc}) TMP)
+		                                AND		CONTENTS_LOC = #{contentsLoc}) TMP),0)
 		    ,#{contentsLoc}
 		    ,#{preContentsSq}
 		    ,#{contentsSq}
@@ -1705,6 +1709,9 @@
 		                            </if>
 		                            AND CONTENTS_LOC = #{contentsLoc}
 		                            AND CONTENTS_SQ = #{contentsSq}
+		                            <if test="brandGroupNo != null and brandGroupNo != ''">
+		                            AND BRAND_GROUP_NO = #{brandGroupNo}
+		                            </if>
 		                        ) TMP)
 		    ,#{regNo}
 		    ,NOW()

+ 3 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaRenderer.xml

@@ -26,6 +26,9 @@
 		/* TsaRenderer.getCommonCodeList */
 		SELECT CD
 		     , CD_NM
+		<if test="cdGb != null and cdGb != '' and cdGb == 'G028'">
+		     , CD_DESC
+		</if>
 		FROM   TB_COMMON_CODE
 		WHERE  1 = 1
 		<if test="useYn != null and useYn != ''">

+ 2 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsaReview.xml

@@ -182,7 +182,7 @@
 		     , CUST_NO
 		     , #{gvPntAmt}                      AS GV_PNT_AMT
 		     , 0                                AS US_PNT_AMT
-		     , 0                                AS RM_PNT_AMT
+		     , #{rmPntAmt}                      AS RM_PNT_AMT
 		     , DATE_ADD(NOW(), INTERVAL 1 YEAR) AS EXP_BE_DT
 		     , NULL                             AS EXP_CMP_DT
 		     , #{regNo}                         AS REG_NO
@@ -272,7 +272,7 @@
 		     , CUST_NO
 		     , #{gvPntAmt}                      AS GV_PNT_AMT
 		     , 0                                AS US_PNT_AMT
-		     , 0                                AS RM_PNT_AMT
+		     , #{rmPntAmt}                      AS RM_PNT_AMT
 		     , DATE_ADD(NOW(), INTERVAL 1 YEAR) AS EXP_BE_DT
 		     , NULL                             AS EXP_CMP_DT
 		     , #{regNo}                         AS REG_NO

+ 2 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaWithdraw.xml

@@ -219,6 +219,7 @@
 							, B.QTY
 							, B.REASON_CODE
 							, O.MALL_GB
+							, A.COD_FEE
 						  FROM TB_ORDER_RECALL_EXCEPTION A 
 						  JOIN TB_ORDER_RECALL_EXCEPTION_ITEM B ON A.RECALL_EXCEPTION_NO = B.RECALL_EXCEPTION_NO
 						  LEFT JOIN TB_ORDER O ON O.ORD_NO = A.ORDER_NO 
@@ -513,6 +514,7 @@
 				, E.ORD_NM 	
 				, C.DELV_ADDR_SQ
 				, F.WD_INVOICE_NO 
+				, (SELECT R.REFUND_AMT FROM TB_REFUND R WHERE R.ORD_NO = E.ORD_NO) AS REFUND_AMT
 		  FROM TB_ORDER_CHANGE A
 		  JOIN TB_ORDER_CHANGE_DETAIL B ON B.ORD_CHG_SQ = A.ORD_CHG_SQ 
 		  JOIN TB_ORDER_DETAIL C ON C.ORD_DTL_NO = B.ORD_DTL_NO 

+ 0 - 6
src/main/resources/config/application-locd.yml

@@ -67,12 +67,6 @@ mail:
     image.url: http://ldfront.style24.com/image/mailing
     template.path: /WIDE/workspace/webapps/style24/STYLE24/style24.admin/src/main/webapp/WEB-INF/mail
 
-# ERP (한세드림)
-erp:
-   api:
-       stock.url: http://erp.hansaemk.com:96/api/hsdr/Shop/GoodsInfo
-       goods.url: http://erp.hansaemk.com:96/api/hsdr/Shop
-
 # PG
 pg:
     kcp:

+ 0 - 6
src/main/resources/config/application.yml

@@ -84,9 +84,3 @@ cj:
         tel1: 02
         tel2: 1544
         tel3: 4097
-
-# ERP (한세드림)
-erp:
-   api:
-       stock.url: http://erp.hansaemk.com:96/api/hsdr/Shop/GoodsInfo
-       goods.url: http://erp.hansaemk.com:96/api/hsdr/Shop

+ 4 - 4
src/main/webapp/WEB-INF/views/delivery/AssignPopupForm.html

@@ -14,7 +14,7 @@
  * 1.0  2020.04.19   moon       최초 작성
  *******************************************************************************
  -->
-	<div class="modalPopup" data-width="620">
+	<div class="modalPopup" data-width="700" data-height="800">
 		<div class="panelStyle">
 		<!-- TITLE -->
 		<div class="panelTitle">
@@ -55,7 +55,7 @@
 		</ul>
 		<!-- 테이블 영역  영역 -->
 		
-		<div id="gridDelvLocList" style="width: 100%; height: 300px;" class="ag-theme-balham"></div>
+		<div id="gridDelvLocList" style="width: 100%; height: 500px;" class="ag-theme-balham"></div>
 		
 		<!-- 테이블 영역 -->
 		</div>
@@ -65,9 +65,9 @@
 /*<![CDATA[*/
 	var assignPopupColumnDefs = [
 		// group cell renderer needed for expand / collapse icons
-		{headerName: "출고처", 		field: "delvLocNm", width: 300, cellClass: 'text-center'},
+		{headerName: "출고처", 		field: "delvLocNm", width: 350, cellClass: 'text-center'},
 		{headerName: "출고처코드", 	field: "delvLocCd",	width: 100,	cellClass: 'text-center'},
-		{headerName: "수량",      	field: "stockQty", 	width: 60,	cellClass: 'text-center'},
+		{headerName: "수량",      	field: "stockQty", 	width: 100,	cellClass: 'text-center'},
 		{headerName: "출고거부여부",	field: "delvArGb",	width: 100, cellClass: 'text-center'}
 	];
 

+ 21 - 7
src/main/webapp/WEB-INF/views/delivery/BanGoodsRegistForm.html

@@ -15,7 +15,7 @@
  * 1.1  2020.11.23   moon        이미지관련 수정 
  *******************************************************************************
  -->
-	<div class="modalPopup" data-width="1200">
+	<div class="modalPopup" data-width="1200" data-height="800">
 		<div class="panelStyle">
 		<!-- TITLE -->
 		<div class="panelTitle">
@@ -90,14 +90,14 @@
 					<td>
 						<select  name="popDelvLocCd" id="popDelvLocCd">
 							<option value="">[전체]</option>
-							<option th:if="${getDeliveryLocList}" th:each="oneData, status : ${getDeliveryLocList}" th:value="${oneData.Cd}" th:text="${oneData.cdNm}"></option>
+							
 						</select>
 					</td>
 				</tr>
 			</table>
 			</div>
 
-			<div id="gridBanGoodsList" style="width: 100%; height: 260px; padding-top:10PX;" class="ag-theme-balham"></div>
+			<div id="gridBanGoodsList" style="width: 100%; height: 500px; padding-top:10PX;" class="ag-theme-balham"></div>
 		
 		</form>
 		<!-- 버튼 배치 영역 -->
@@ -125,8 +125,8 @@
 		},
 		{headerName: "상품명",	field: "goodsNm",     width: 330, minWidth: 100},
 		{headerName: "상품코드",	field: "goodsCd",     width: 150, minWidth: 100, cellClass: 'text-center'},
-		{headerName: "컬러",	    field: "colorCd",     width: 100, minWidth: 100, cellClass: 'text-center'},
-		{headerName: "사이즈",	field: "sizeCd",      width: 100, minWidth: 100, cellClass: 'text-center'},
+		{headerName: "옵션1",	    field: "optCd1",     width: 100, minWidth: 100, cellClass: 'text-center'},
+		{headerName: "옵션2",		field: "optCd2",      width: 100, minWidth: 100, cellClass: 'text-center'},
 		{headerName: "상품상태",	field: "goodsStatNm", width: 150, minWidth: 100, cellClass: 'text-center'},
 	];
 
@@ -143,10 +143,19 @@
 
 	// 조회
 	var fnPopSearch = function() {
+
+		var supplyCompcd = $('#bangoodsRegistForm select[name=supplyCompCd]').val();
+		if (gagajf.isNull(supplyCompcd)) {
+			mcxDialog.alert("업체를 선택해주세요!");
+			 $("#bangoodsRegistForm select[name=supplyCompCd]").focus();
+			return;
+		}
+		
 		var formId = '#bangoodsRegistForm';
 		gagaAgGrid.fetch($(formId).prop('action'), popGridOptions, formId);
 	}
 
+
 	// 저장
  	$('#btnBangoodsSave').on('click', function() {
 
@@ -189,8 +198,8 @@
 	                var param = new Object;
 
 	                param.goodsCd     = item.goodsCd;
-	                param.colorCd     = item.colorCd;
-	                param.sizeCd      = item.sizeCd;
+	                param.optCd1      = item.optCd1;
+	                param.optCd2      = item.optCd2;
 	                param.delvBanStdt = delvBanStdt;
 	                param.delvBanEddt = delvBanEddt;
 	                param.delvLocCd   = delvLocCd;
@@ -209,6 +218,11 @@
 	$('#bangoodsRegistForm select[name=supplyCompCd]').on('change', function() {
 		var actionUrl = '/renderer/supplyCompany/brand/list/'+ $(this).val();
 		cfnCreateCombo(actionUrl, $('#bangoodsRegistForm select[name=brandCd]'), "[전체]");
+		
+		var actionUrl2 = '/renderer/delvloc/list/'+ $(this).val();	
+
+		cfnCreateCombo(actionUrl2, $('#bangoodsRegistForm select[name=popDelvLocCd]'), "[전체]");
+		
 	});
 
 /*]]>*/

+ 15 - 5
src/main/webapp/WEB-INF/views/delivery/BangoodsListForm.html

@@ -132,7 +132,8 @@
 		{ width: 42, minWidth: 42, cellClass: 'text-center', headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true
 			, checkboxSelection: function (params) {
 				return  (params.data.delYn == 'N' ) ? true : false;
-			}	
+			},
+			
 		},
 		{headerName: "출고금지상품번호",			field: "delvBanGoodsSq",width: 50,	cellClass: 'text-center', hide: true},
 		{headerName: "삭제",					field: "delYn",			width: 50,	cellClass: 'text-center'},
@@ -157,8 +158,8 @@
 				}
 			}
 		},
-		{headerName: "컬러",		    field: "colorCd",		width: 80,	cellClass: 'text-center'},
-		{headerName: "사이즈",		field: "sizeCd",		width: 80,	cellClass: 'text-center'},
+		{headerName: "옵션1",		    field: "optCd1",		width: 80,	cellClass: 'text-center'},
+		{headerName: "옵션2",			field: "optCd2",		width: 80,	cellClass: 'text-center'},
 		{headerName: "상품상태",		field: "goodsStat",		width: 80,	cellClass: 'text-center'},
 		{headerName: "출고금지시작일자",	field: "delvBanStdt",	width: 150,	cellClass: 'text-center', cellRenderer: function (params) { return gagaAgGrid.toDateFormat(params.value); }},
 		{headerName: "출고금지종료일자",	field: "delvBanEddt",	width: 150,	cellClass: 'text-center', cellRenderer: function (params) { return gagaAgGrid.toDateFormat(params.value); }}
@@ -167,6 +168,10 @@
 
 	var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
 	gridOptions.rowSelection = 'multiple';
+	gridOptions.suppressRowClickSelection = true;
+	gridOptions.isRowSelectable = function(rowNode) {
+		return rowNode.data.delYn == 'N';
+	}
 	
 	//gridOptions.rowHeight = 60;
 	/*************************************************************************
@@ -213,6 +218,11 @@
 	$('#searchForm select[name=supplyCompCd]').on('change', function() {
 		var actionUrl = '/renderer/supplyCompany/brand/list/'+ $(this).val();
 		cfnCreateCombo(actionUrl, $('#searchForm select[name=brandCd]'), "[전체]");
+		
+		var actionUrl2 = '/renderer/delvloc/list/'+ $(this).val();	
+
+		cfnCreateCombo(actionUrl2, $('#searchForm select[name=delvLocCd]'), "[전체]");
+		
 	});
 
 	/*************************************************************************
@@ -282,8 +292,8 @@
 
 	                param.delvBanGoodsSq = item.delvBanGoodsSq;
 	                param.goodsCd = item.goodsCd;
-	                param.colorCd = item.colorCd;
-	                param.sizeCd = item.sizeCd;
+	                param.optCd1  = item.optCd1;
+	                param.optCd2  = item.optCd2;
 
 	                createData.push(param);
 	            });

+ 35 - 2
src/main/webapp/WEB-INF/views/delivery/DeliveryListForm.html

@@ -230,6 +230,7 @@
 	**************************************************************************/
 	var shipCompanyList =  gagajf.convertToArray([[${shipCompanyList}]]);
 	var roleCd          = [[${sessionInfo.roleCd}]];
+	var currOrdNo       = 0;
 	var columnDefs = [
 		{
 			headerName: "결품",
@@ -247,7 +248,7 @@
 		{headerName: "주문번호",	field: "ordNo", width: 95, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				if (roleCd.indexOf("C") < 0) {
-					return "<a href=\"javascript:void(0);\" onclick=\"cfnOpenOrderDetailPopup('" + params.value + "');\">" + params.value + "</a>";
+					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderDetailPopup('" + params.data.ordNo + "');\">" + params.data.ordNo + "</a>";
 				} else {
 					return params.value;
 				}
@@ -255,6 +256,15 @@
 		},
 		{headerName: "주문상세번호", 	field: "ordDtlNo", 		width: 90, cellClass: 'text-center'},
 		{headerName: "주문상세상태", 	field: "ordDtlStatNm", 	width: 120, cellClass: 'text-center'},
+		{headerName: "주문교환", 		field: "ordExchGb", 	width: 80, cellClass: 'text-center',
+			cellRenderer: function (params) {
+				if (params.value == "Y") {
+					return "교환";
+				} else {
+					return "주문";
+				}
+			}
+		},
 		// {headerName: "사이트", field: "siteNm", width: 120, cellClass: 'text-center'},
 		// {headerName: "판매몰", field: "sellStoreNm", width: 150, cellClass: 'text-left'},
 		{headerName: "판매몰명", 		field: "extmallNm", 	width: 150, cellClass: 'text-left'},
@@ -348,7 +358,6 @@
 		{headerName: "에이전트주문번호", field: "agentOrderId", 	width: 150, cellClass: 'text-left'},
 		{headerName: "결품여부", 		field: "soldoutYn", 	width: 80, cellClass: 'text-center'},
 		{headerName: "배송메모", 		field: "delvMemo", 		width: 200, cellClass: 'text-left'},
-		{headerName: "교환여부", 		field: "ordExchGb", 	width: 80, cellClass: 'text-center'},
 		{headerName: "product_no", 	field: "productNo", 	width: 100, cellClass: 'text-center'},
 		{headerName: "product_code",field: "productCode", 	width: 100, cellClass: 'text-center'}
 		
@@ -375,6 +384,24 @@
 		$(".btnToday").trigger('click');
 	}
 	
+	
+	/*************************************************************************
+	*  주문상세 팝업  
+	**************************************************************************/		
+	var fnOrderDetailPopup = function(ordNo){
+		currOrdNo = ordNo;
+		cfnOpenOrderDetailPopup(currOrdNo);
+	}
+	
+	/*************************************************************************
+	*  팝업 콜백 
+	**************************************************************************/		
+	var fnReOpenOrderDetailPopup = function () {
+		cfnOpenOrderDetailPopup(currOrdNo);
+		fnSearchList();
+	};
+	
+	
 	/*************************************************************************
 	* 조회 클릭
 	**************************************************************************/
@@ -546,6 +573,12 @@
 		}
 
 		cfnCreateMultiCombo(actionUrl,"multiBrand",  "[전체]",null, 'Y');
+		
+		var actionUrl2 = '/renderer/delvloc/list/'+ $(this).val();	
+
+		cfnCreateCombo(actionUrl2, $('#searchForm select[name=delvLocCd]'), "[전체]");
+		
+		
 	});
 	
 	/*************************************************************************

+ 10 - 0
src/main/webapp/WEB-INF/views/delivery/DeliveryWithdrawDirectiveListForm.html

@@ -121,6 +121,7 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
 	// 사이트목록
+	var currOrdNo = 0;
 	var siteList = gagajf.convertToArray([[${siteCdList}]]);
 
 	var columnDefs = [
@@ -156,6 +157,7 @@
 	// 셀 클릭 이벤트
 	gridOptions.onCellClicked = function(event) {
 		if (event.colDef.field == 'ordNo') {
+			currOrdNo = event.data.ordNo;
 			// 주문 상세
 			cfnOpenOrderDetailPopup(event.data.ordNo);
 		} else if (event.colDef.field == 'goodsCd') {
@@ -164,6 +166,14 @@
 		}
 	};
 
+	/*************************************************************************
+	*  팝업 콜백 
+	**************************************************************************/		
+	var fnReOpenOrderDetailPopup = function () {
+		cfnOpenOrderDetailPopup(currOrdNo);
+		fnSearchList();
+	};
+	
 	// 조회
 	$('#btnSearch').on('click', function() {
 		// Fetch data

+ 160 - 0
src/main/webapp/WEB-INF/views/delivery/ExchangeDelvFailListForm.html

@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : ExchangeDelvFailListForm.html
+ * @desc    : 교환배송 미출곡 목록 대상
+ *=============================================================
+ * ISTYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *=============================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  ==================================
+ * 1.0  2021.06.07   jsh77b        최초 작성
+ * 1.1  
+ ********************************************************************************
+ -->
+	<div id="main">
+		<!-- 메인타이틀 영역 -->
+		<div class="main-title">
+		</div>
+		<!-- //메인타이틀 영역 -->
+		
+		<!-- 메뉴 설명 -->
+		<div class="infoBox menu-desc">
+		</div>
+		<!-- //메뉴 설명 -->
+		
+		<!-- 검색조건 영역 -->
+		<div class="panelStyle">
+			<!-- TITLE -->
+			<div class="panelTitle">
+				<h3><i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">등록일</font>은 꼭 입력해 주세요.</h3>
+				<span class="panelControl">
+					<i class="fa fa-chevron-up"></i>
+				</span>
+			</div>
+			<!-- //TITLE -->
+			
+			<div class="panelContent">	
+				<form id="searchForm" name="searchForm" action="#" th:action="@{'/delivery/exchangeDelvFail/list'}" onsubmit="fnSearchList(); return false;">
+					<table class="frmStyle">
+						<colgroup>
+							<col style="width:8%;"/>
+							<col style="width:12%;"/>
+							<col style="width:8%;"/>
+							<col style="width:12%;"/>
+							<col style="width:8%;"/>
+							<col style="width:12%;"/>
+						</colgroup>
+						<tr>
+							<th class="dashR">주문자명</th>
+							<td class="dashR">
+								<input type="text" class="w40p" name="ordNm" placeholder="" maxlength="20" />
+							</td>
+							<th class="dashR">주문번호</th>
+							<td class="dashR">
+								<input type="text" class="w40p" name="ordNo" placeholder="" maxlength="20" data-valid-type="numeric"/>
+							</td>
+							<th class="dashR">처리상태</th>
+							<td class="dashR">
+								<select name="delvCnclYn" id="delvCnclYn">
+									<option value="">전체</option>
+									<option value="N" selected>대기</option>
+									<option value="y">처리완료</option>
+								</select>
+							</td>
+						</tr>
+						<tr>
+							<th class="dashR">등록일</th>
+							<td colspan="4" class="dashR">
+								<span id="terms"></span>
+							</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" onclick="$('#searchForm')[0].reset(); fnInitCalendar();">초기화</button>
+						</li>
+					</ul>
+				</form>
+			</div>
+		</div>
+		<!-- //검색조건 영역 -->
+
+		<!-- 리스트 영역 -->
+		<div class="panelStyle">
+			<div class="panelContent" style="overflow: hidden;">
+				<div id="gridList" style="width:100%; height: 500px;" class="ag-theme-balham"></div>
+			</div>
+		</div>
+		<!-- //리스트 영역 -->
+	</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/ 
+	var columnDefs = [
+		{headerName: "교환배송취소번호",	field: "exchangeDelvFailSq",	width: 50,	cellClass: 'text-center', hide: true},
+		{headerName: "변경요청번호",		field: "ordChgSq",				width: 150,	cellClass: 'text-center'},
+		{headerName: "주문번호",			field: "ordNo",					width: 150,	cellClass: 'text-center'},
+		{headerName: "주문상세번호",		field: "ordDtlNo",				width: 150,	cellClass: 'text-center'},
+		{headerName: "교환배송취소여부",	field: "delvCnclYn",			width: 150,	cellClass: 'text-center'},
+		{headerName: "출고가능수량",		field: "ordQty",				width: 150,	cellClass: 'text-center'},
+		{headerName: "품절취소수량",		field: "cnclRtnQty",			width: 150,	cellClass: 'text-center'},
+		{headerName: "품절취소사유",		field: "delvFailReason",		width: 150,	cellClass: 'text-center'},
+		{headerName: "상품코드",			field: "goodsCd",				width: 150,	cellClass: 'text-center'},
+		{headerName: "상품명",			field: "goodsNm",				width: 150,	cellClass: 'text-center'},
+		{headerName: "주문자",			field: "ordNm",					width: 150,	cellClass: 'text-center'},
+		{headerName: "핸드폰번호",			field: "ordPhnno",				width: 150,	cellClass: 'text-center'},
+		{headerName: "이메일",			field: "ordEmail",				width: 150,	cellClass: 'text-center'}
+	];
+
+	var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+	gridOptions.rowSelection = 'multiple';
+	
+	$('#btnSearch').on('click', function() {
+		fnSearchList();
+	});
+
+	var fnSearchList = function() {
+		if ($('#stDate').val() == '') {
+			mcxDialog.alert('시작 기간을 입력하세요.');
+			return;
+		}
+
+		if ($('#edDate').val() == '') {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+
+		// 날짜 유효성 체크
+		if (Number($('#stDate').val().replaceAll("-", "")) > Number($('#edDate').val().replaceAll("-", ""))) {
+			mcxDialog.alert("시작일은 종료일보다 클 수 없습니다.");
+			return;
+		}
+
+		gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptions, '#searchForm', function() {
+			
+		});
+	}
+
+	/*************************************************************************
+	*  달력 초기화 
+	**************************************************************************/
+	var fnInitCalendar = function() {
+		cfnChangeCalendar('1d', $('#stDate'), $('#edDate')); //달력 초기화
+	}
+
+	$(document).ready(function() {
+		gagaAgGrid.createGrid('gridList', gridOptions);
+		
+		cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '출고금지상품관리');
+		fnInitCalendar();
+	});
+
+/*]]>*/
+</script>
+</html>

+ 41 - 22
src/main/webapp/WEB-INF/views/display/MainListForm.html

@@ -279,16 +279,18 @@
 			html += '<div><span style="font-weight:bold">'+result[i].contentsLoc+'</span></div><div><span>[ '+gagaAgGrid.lookupValue(contentsLocArr, result[i].contentsLoc)+' ]</span></div>';
 			html += '<input type="text" class="w200" name="contentsTitle" placeholder="메인타이틀" value="'+result[i].contentsTitle+'"/>';
 			html += '<br/>';
-			if(result[i].contentsYn=='C'){
+			if(result[i].contentsYn=='C' || result[i].contentsYn=='A'){
 				html += '<button type="button" class="btn btn-success btn-lg" onclick="fnChangeContents(this);">수정</button>';
 				html += '<button type="button" class="btn btn-default btn-lg" onclick="fnUpdateContents(\''+result[i].contentsLoc+'\');">적용</button>';
-			}else if(result[i].contentsYn=='G' || result[i].contentsYn=='A'){
-				if(result[i].contentsYn=='A'){
-					html += '<button type="button" class="btn btn-success btn-lg" onclick="fnChangeContents(this);">수정</button>';
-					html += '<button type="button" class="btn btn-default btn-lg" onclick="fnUpdateContents(\''+result[i].contentsLoc+'\');">적용</button>';
-					html += '<br/>';
-				}
+			}else if(result[i].contentsYn=='G'){
+				// if(result[i].contentsYn=='A'){
+				// 	html += '<button type="button" class="btn btn-success btn-lg" onclick="fnChangeContents(this);">수정</button>';
+				// 	html += '<button type="button" class="btn btn-default btn-lg" onclick="fnUpdateContents(\''+result[i].contentsLoc+'\');">적용</button>';
+				// 	html += '<br/>';
+				// }
 					html += '<button type="button" class="btn btn-success btn-lg" onclick="fnSearchCategory(\''+result[i].contentsLoc+'\');">상품관리</button>';
+			}else{
+				html += '<li>위치설정</li>';
 			}
 			html += '<input type="hidden" name="contentsLoc" value="'+result[i].contentsLoc+'"/>';
 			html += '<input type="hidden" name="colCnt" value="'+result[i].colCnt+'"/>';
@@ -373,9 +375,24 @@
 		//uifnFitGrid();
 	}
 
+	var fnTest = function (obj,idx){
+		var $obj = $(obj);
+		var index = $("#contentsBox"+idx+" option").index($("#contentsBox"+idx+" option:selected"));
+		var contentsType = $("#contentsBox"+idx+" option:eq("+index+")").attr('data-idx');
+		console.log(index);
+		console.log(contentsType);
+		// var dataSelect = document.getElementsByName("contentsLocEdit");
+		// var value = dataSelect.options[document.getElementsByName("contentsLocEdit").selectedIndex].value;
+		// $("select[name=contentsLocEdit]").val();
+		console.log($(obj).val());
+		// $("#id").val("1").prop("selected", true);
+		$("#contentsYn"+idx).val(contentsType).prop('selected',true);
+	}
+
 	/**
 	* 레이아웃 행추가 버튼
 	*/
+	let contentsIdx = 0;
 	$("#btnAddRow").on("click", function (){
 		var val = $("#searchForm select[name=cate1No]").val();
 		var cate1No = val.split(',')[0];
@@ -408,17 +425,17 @@
 		});
 
 		if(cate1No=='1700'){
-			contentsLocHtml += '<option value="SGNB001">[SGNB001] STYLE24MALL > GNB > TOP배너</option>';
-			contentsLocHtml += '<option value="SGNB002">[SGNB002] STYLE24MALL > GNB > TOP배너(모바일)</option>';
-			contentsLocHtml += '<option value="STAB001">[STAB001] STYLE24MALL > GNB > 브랜드</option>';
-			contentsLocHtml += '<option value="STAB002">[STAB002] STYLE24MALL > GNB > 카테고리</option>';
-			contentsLocHtml += '<option value="SKEY001">[SKEY001] STYLE24MALL > GNB > 검색어</option>';
+			contentsLocHtml += '<option value="SGNB001" data-idx="C">[SGNB001] STYLE24MALL > GNB > TOP배너</option>';
+			contentsLocHtml += '<option value="SGNB002" data-idx="C">[SGNB002] STYLE24MALL > GNB > TOP배너(모바일)</option>';
+			contentsLocHtml += '<option value="STAB001" data-idx="C">[STAB001] STYLE24MALL > GNB > 브랜드</option>';
+			contentsLocHtml += '<option value="STAB002" data-idx="C">[STAB002] STYLE24MALL > GNB > 카테고리</option>';
+			contentsLocHtml += '<option value="SKEY001" data-idx="C">[SKEY001] STYLE24MALL > GNB > 검색어</option>';
 		}
 		if(cate1No=='1720'){
-			contentsLocHtml += '<option value="SGNB002">[SGNB002] STYLE24MALL > GNB > TOP배너(모바일)</option>';
-			contentsLocHtml += '<option value="STAB001">[STAB001] STYLE24MALL > GNB > 브랜드</option>';
-			contentsLocHtml += '<option value="STAB002">[STAB002] STYLE24MALL > GNB > 카테고리</option>';
-			contentsLocHtml += '<option value="SKEY001">[SKEY001] STYLE24MALL > GNB > 검색어</option>';
+			contentsLocHtml += '<option value="SGNB002" data-idx="C">[SGNB002] STYLE24MALL > GNB > TOP배너(모바일)</option>';
+			contentsLocHtml += '<option value="STAB001" data-idx="C">[STAB001] STYLE24MALL > GNB > 브랜드</option>';
+			contentsLocHtml += '<option value="STAB002" data-idx="C">[STAB002] STYLE24MALL > GNB > 카테고리</option>';
+			contentsLocHtml += '<option value="SKEY001" data-idx="C">[SKEY001] STYLE24MALL > GNB > 검색어</option>';
 		}
 		for(var i=0; i<contentsLocList.length; i++){
 			var contentsLocCd = contentsLocList[i].cd;
@@ -426,14 +443,14 @@
 			if(contentsLocCd==clocPrefix){
 				if(cate1No=='1700'){
 					if(contentsLocList[i].cd != 'SMM012'){
-						contentsLocHtml += '<option value="'+contentsLocList[i].cd+'">['+contentsLocList[i].cd+'] '+contentsLocList[i].cdNm+'</option>';
+						contentsLocHtml += '<option value="'+contentsLocList[i].cd+'" data-idx="'+contentsLocList[i].cdDesc+'">['+contentsLocList[i].cd+'] '+contentsLocList[i].cdNm+'</option>';
 					}
 				}else if(cate1No=='1720'){
 					if(contentsLocList[i].cd != 'SMM009'){
-						contentsLocHtml += '<option value="'+contentsLocList[i].cd+'">['+contentsLocList[i].cd+'] '+contentsLocList[i].cdNm+'</option>';
+						contentsLocHtml += '<option value="'+contentsLocList[i].cd+'" data-idx="'+contentsLocList[i].cdDesc+'">['+contentsLocList[i].cd+'] '+contentsLocList[i].cdNm+'</option>';
 					}
 				}else{
-					contentsLocHtml += '<option value="'+contentsLocList[i].cd+'">['+contentsLocList[i].cd+'] '+contentsLocList[i].cdNm+'</option>';
+					contentsLocHtml += '<option value="'+contentsLocList[i].cd+'" data-idx="'+contentsLocList[i].cdDesc+'">['+contentsLocList[i].cd+'] '+contentsLocList[i].cdNm+'</option>';
 				}
 			}
 		}
@@ -464,9 +481,9 @@
 
 			html += '" style="text-align:center; max-width:'+maxWidth+'px;">';
 			html += '<div>';
-			html += '<select name="contentsLocEdit" required="required" style="max-width:300px;" data-valid-name="컨텐츠 위치">'+contentsLocHtml+'</select>';
+			html += '<select name="contentsLocEdit" id="contentsBox'+contentsIdx+'" required="required" style="max-width:300px;" data-valid-name="컨텐츠 위치" onchange="fnTest(this,'+contentsIdx+');">'+contentsLocHtml+'</select>';
 			html += '</div>';
-			html += '<select name="contentsYn" required="required" style="max-width:160px;" data-valid-name="컨텐츠 타입"><option value="C">[C] 컨텐츠</option><option value="G">[G] 상품</option><option value="A">[A] 컨텐츠 + 상품</option></select>';
+			html += '<select name="contentsYn" id="contentsYn'+contentsIdx+'" required="required" style="max-width:160px;" data-valid-name="컨텐츠 타입" disabled="disabled"><option value="C">[C] 컨텐츠</option><option value="G">[G] 상품</option><option value="A">[A] 컨텐츠 + 상품</option><option value="E">[E] 위치설정</option></select>';
 			html += '<input type="hidden" name="contentsLoc" value=""/>';
 			html += '<input type="hidden" name="colCnt" value="'+colCnt+'"/>';
 			html += '<input type="hidden" name="colNo" value="'+colNo+'"/>';
@@ -524,6 +541,7 @@
 			$("#mainSortable").sortable();
 		}
 		//uifnFitGrid();
+		contentsIdx ++;
 	});
 
 	/**
@@ -660,7 +678,8 @@
 		var contentsLoc = $(obj).closest("td").find('input:hidden[name="contentsLoc"]').val();
 
 		// 브랜드픽, MD추천 다른 팝업 사용
-		if(contentsLoc=='SMM007'||contentsLoc=='SMM009'||contentsLoc=='SMM012'){
+		if(contentsLoc=='SMM007'||contentsLoc=='SMM009'||contentsLoc=='SMM012'||contentsLoc=='SMM003'||contentsLoc=='SBM007'||contentsLoc=='SBM008'||contentsLoc=='SBM009'
+			||contentsLoc=='SBM017'||contentsLoc=='SBM018'||contentsLoc=='SBM019'||contentsLoc=='SOM003'||contentsLoc=='SCM002'||contentsLoc=='SCM003'){
 			cfnOpenMainMultiContentsPopup(cateNo, contentsLoc, brandGroupNo);
 		}else if(contentsLoc=='STAB001' || contentsLoc=='STAB002' || contentsLoc=='SBM002' || contentsLoc=='SBMM002'){
 			cfnOpenMainGnbContentsPopup(cateNo, contentsLoc, brandGroupNo);

+ 87 - 8
src/main/webapp/WEB-INF/views/display/MainMultiContentsPopupForm.html

@@ -28,6 +28,9 @@
 					<li class="aR">
 						<button type="button" class="btn btn btn-base btn-sm" th:if="${contentsLoc == 'SMM007'}" onclick="fnAddBrand(this);">브랜드 추가</button> <!--id="btnBrandAddRow"-->
 						<button type="button" class="btn btn btn-base btn-sm" th:if="${contentsLoc == 'SMM009' or contentsLoc == 'SMM012'}" onclick="fnAddBrand(this);">MD 탭 추가</button>
+						<button type="button" class="btn btn btn-base btn-sm"
+								th:if="${contentsLoc == 'SMM003' or contentsLoc == 'SBM007' or contentsLoc == 'SBM008' or contentsLoc == 'SBM009' or contentsLoc == 'SBM017' or contentsLoc == 'SBM018' or contentsLoc == 'SBM019' or contentsLoc == 'SOM003' or contentsLoc == 'SCM002' or contentsLoc == 'SCM003'}"
+								onclick="fnAddBrand(this);">컨텐츠 추가</button>
 						<button type="button" class="btn btn btn-dark btn-sm" id="btnMultiPopSave">임시저장</button>
 						<input type="hidden" name="uploadDefaultUrlMultiPop" id="uploadDefaultUrlMultiPop" th:value="${@environment.getProperty('upload.image.view') + '/contents/'}"/>
 						<input type="hidden" name="uploadDefaultBrandUrlPop" id="uploadDefaultBrandUrlPop" th:value="${@environment.getProperty('upload.image.view') + '/contents/brand/'}"/>
@@ -45,11 +48,13 @@
 /*<![CDATA[*/
 	var cateNo = [[${cateNo}]];
 	var contentsLoc = [[${contentsLoc}]];
+	var brandGroupNo = [[${brandGroupNo}]];
 	var contentsLocArr = gagajf.convertToArray([[${contentsLocList}]]);
 	var tdWidth = $("#sortable").find("td").width();
 	var tdDeleteWidth = parseInt(tdWidth/11, 10);
 	tdWidth = tdWidth - tdDeleteWidth;
-
+	let tableLen = 0;		// 테이블 ID
+console.log('brandGroupNo:'+brandGroupNo);
 	/**
 	 * 컨텐츠 미리보기 리스트
 	 */
@@ -58,6 +63,7 @@
 		$("#multiPopSortable").html('');
 		var data = {cateNo : cateNo
 			,contentsLoc : contentsLoc
+			,brandGroupNo : brandGroupNo
 		};
 		var jsonData = JSON.stringify(data);
 		gagajf.ajaxJsonSubmit('/display/contents/preview/list', jsonData, fnCreatePopLayout);
@@ -70,7 +76,8 @@
 			var dispEddt = result[i].dispEddt.split(" ");
 			var brandGroupImg = result[i].brandGroupImg;
 
-			html += '<table class="frmStyle tableTest" style="margin-bottom:30px" id="tabTable'+i+'" tableIdx="'+i+'">';
+			html += '<table class="frmStyle tableTest" style="margin-bottom:30px" id="tabTable'+i+'">';
+			html += '<input type="hidden" name="tableIdx" value="'+i+'" data-id="'+i+'">';
 			html += '<colgroup>';
 			html += '<col style="width:10%;"/>';
 			html += '<col style="width:55%;"/>';
@@ -117,6 +124,38 @@
 				html += '</tr>';
 				/*html += fnAddBrandImgRow(result[i].brandGroupImg);*/
 			}
+			if(contentsLoc=='SCM002' || contentsLoc=='SCM003'){
+				html += '		<tr>';
+				html += '			<th>전시 설정</th>';
+				html += '			<td>';
+				if(result[i].useYn=='Y'){
+					html += '				<label class="rdoBtn"><input type="radio" name="dispYn'+i+'" value="Y" checked="checked"/>노출</label>';
+					html += '				<label class="rdoBtn"><input type="radio" name="dispYn'+i+'" value="N"/>비노출</label>';
+				}else{
+					html += '				<label class="rdoBtn"><input type="radio" name="dispYn'+i+'" value="Y"/>노출</label>';
+					html += '				<label class="rdoBtn"><input type="radio" name="dispYn'+i+'" value="N" checked="checked"/>비노출</label>';
+				}
+				html += '			</td>';
+				if(result[i].contentsLoc=='SCM003'){
+					html += '			<th>상품 노출 개수</th>';
+					html += '			<td>';
+					if(result[i].strVar1=='10'){
+						html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+i+'" value="10" checked="checked"/>10개</label>';
+						html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+i+'" value="20"/>20개</label>';
+						html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+i+'" value="30"/>30개</label>';
+					}else if(result[i].strVar1=='20'){
+						html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+i+'" value="10"/>10개</label>';
+						html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+i+'" value="20" checked="checked"/>20개</label>';
+						html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+i+'" value="30"/>30개</label>';
+					}else{
+						html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+i+'" value="10"/>10개</label>';
+						html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+i+'" value="20"/>20개</label>';
+						html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+i+'" value="30" checked="checked"/>30개</label>';
+					}
+					html += '			</td>';
+				}
+				html += '		</tr>';
+			}
 			html += '</thead><tbody>';
 			if(contentsLoc=='SMM007') {
 				for (var j = 1; j < 8; j++) {
@@ -149,6 +188,7 @@
 			changeYear: true,
 			defaultDate: $('.schDate').val()
 		});
+		tableLen = $(".tableTest").length;
 	}
 
 	/**
@@ -190,6 +230,7 @@
 	 */
 	var brandIdx = 0;
 	var fnAddBrand = function (param) {
+		brandIdx = tableLen;
 		var src = '';
 		var imgPath = '';
 		if (typeof param != 'object') {
@@ -197,7 +238,8 @@
 			imgPath = param;
 		}
 
-		var html = '<table class="frmStyle tableTest" style="margin-bottom:30px" id="tabTable'+brandIdx+'" tableIdx="'+brandIdx+'">';
+		var html = '<table class="frmStyle tableTest" style="margin-bottom:30px" id="tabTable'+brandIdx+'" >';
+		html += '<input type="hidden" name="tableIdx" value="'+brandIdx+'" data-id="'+brandIdx+'">';
 		html += '<colgroup>';
 		html += '<col style="width:10%;"/>';
 		html += '<col style="width:55%;"/>';
@@ -262,9 +304,26 @@
 			html += '</td>';
 			html += '</tr>';*/
 		}
+		if(contentsLoc=='SCM002' || contentsLoc=='SCM003'){
+			html += '		<tr>';
+			html += '			<th>전시 설정</th>';
+			html += '			<td>';
+			html += '				<label class="rdoBtn"><input type="radio" name="dispYn'+brandIdx+'" value="Y" checked="checked"/>노출</label>';
+			html += '				<label class="rdoBtn"><input type="radio" name="dispYn'+brandIdx+'" value="N"/>비노출</label>';
+			html += '			</td>';
+			if(contentsLoc=='SCM003'){
+				html += '			<th>상품 노출 개수</th>';
+				html += '			<td>';
+				html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+brandIdx+'" value="10" checked="checked"/>10개</label>';
+				html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+brandIdx+'" value="20"/>20개</label>';
+				html += '				<label class="rdoBtn"><input type="radio" name="dispCnt'+brandIdx+'" value="30"/>30개</label>';
+				html += '			</td>';
+			}
+			html += '		</tr>';
+		}
 		html += '</thead><tbody></tbody></table>';
 
-		brandIdx++;
+		// brandIdx++;
 
 		$("#multiPopSortable").prepend(html);
 		$("#multiPopSortable").sortable();
@@ -283,6 +342,8 @@
 			defaultDate: $('.schDate').val()
 		});
 		fnReloadIdx();
+
+		tableLen = tableLen+1;
 	}
 
 	var fnReloadIdx = function (){
@@ -564,10 +625,27 @@
 
 			var dispOrd = $(this).find("[name=dispOrd]").val();
 
-			var brandGroupNo = $(this).find("[name=brandGroupNo]").val();
+			var brandGroupNo = '';
+			if(contentsLoc=='SBM007'||contentsLoc=='SBM008'||contentsLoc=='SBM009'||contentsLoc=='SBM017'||contentsLoc=='SBM018'||contentsLoc=='SBM019'||contentsLoc=='SOM003'||contentsLoc=='SCM002'||contentsLoc=='SCM003'){
+				brandGroupNo = [[${brandGroupNo}]];
+			}else{
+				$(this).find("[name=brandGroupNo]").val();
+			}
 			var brandGroupImg = $(this).find("[name=brandNewImgFile]").val();
 			var mdTitle = $(this).find("[name=mdTitle]").val();
 
+			var useYn = 'Y';
+			if(contentsLoc=='SCM002' || contentsLoc=='SCM003'){
+				var thisIdx = $(this).find("input[name=tableIdx]").val();
+				useYn = $(this).find("input:radio[name=dispYn"+thisIdx+"]:checked").val();
+			}else{
+				useYn = 'Y';
+			}
+			if(contentsLoc=='SCM003'){
+				var thisIdx = $(this).find("input[name=tableIdx]").val();
+				strVar1 = $(this).find("input:radio[name=dispCnt"+thisIdx+"]:checked").val();
+			}
+
 			var data = {cateNo : cateNo
 				, contentsLoc : contentsLoc
 				, dispStdt : dispStdt
@@ -600,7 +678,7 @@
 				, brandGroupNo : brandGroupNo
 				, brandGroupImg : brandGroupImg
 				, mdTitle : mdTitle
-				, useYn : 'Y'
+				, useYn : useYn
 				, dispOrd : dispOrd
 				, multiContentsYn : 'Y'
 				, goodsCdArr : goodsCdArr
@@ -653,6 +731,7 @@
 		}
 
 		var jsonData = JSON.stringify(dataArr);
+		// console.log(jsonData);
 		mcxDialog.confirm('컨텐츠를 저장 하시겠습니까?', {
 			cancelBtnText: "취소",
 			sureBtnText: "확인",
@@ -694,7 +773,7 @@
 			// 여기서 부터 시작! 상품불러오는거 똑같이 html 추가해서 체크
 			// +) 저장할때 TB_CONTENTS_GOODS 에 상품코드, 상품명, 상품이미지경로 추가해서 3개다 불러와서 데이터 뿌릴수 있게
 			$.each(goodsCdList.split(','),function (i){
-				html += '<ul id="goodsUl'+i+'" class="item ui-state-default goodsClass" style="min-height:120px;"> ';
+				html += '<ul id="goodsUl'+i+'" class="item ui-state-default goodsClass" style="min-height:140px;"> ';
 				goodsImg = goodsImgList.split(',')[i];
 				goodsCd = goodsCdList.split(',')[i];
 				goodsNm = goodsNmList.split(',')[i];
@@ -756,7 +835,7 @@
 			if(i==0){
 				firstOrd = result[i].dispOrd;
 			}
-			html+='<ul id="goodsUl'+i+'" class="item ui-state-default goodsClass" style="min-height:120px;" ';
+			html+='<ul id="goodsUl'+i+'" class="item ui-state-default goodsClass" style="min-height:140px;" ';
 			if(result[i].goodsStat!="G008_90" || result[i].currStockQty<1){
 				html += 'background:#f5f5f5;';
 			}

+ 2 - 6
src/main/webapp/WEB-INF/views/marketing/PlanTemplatePopupForm.html

@@ -396,7 +396,7 @@
 										</colgroup>
 										<tr>
 											<th>상품 구분 1<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn1" value="Y" checked></label>]<br>
-												<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum1();">구분 삭제</button>
+												<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum1('gridOptions_c1');">구분 삭제</button>
 											</th>
 											<td>
 												<div class="">
@@ -462,7 +462,7 @@
 											<th>상품 구분 2<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn2" value="Y" checked></label>]<br>
 											<br>
 												<button type="button" class="btn btn-danger btn-lg" id=""
-													onclick="btnDeleteGridNum2();">구분 삭제</button>
+													onclick="btnDeleteGridNum2('gridOptions_c2');">구분 삭제</button>
 											</th>
 											<td>
 												<div class="">
@@ -2073,10 +2073,6 @@ $(document).ready(function() {
 		})
 		
 		
-		
-		
-		
-		
 		if(mode == 'U'){
 			if(typeof reviewList[0] != 'undefined'){
 				// 리뷰

+ 69 - 79
src/main/webapp/WEB-INF/views/withdraw/RefundDetailForm.html

@@ -28,13 +28,10 @@
 				<input type="hidden" name="orgEncloseFee" readonly/>
 				<table class="frmStyle">
 					<colgroup>
-						<col style="width:10%;" />
-						<col style="width:15%;" />
-						<col style="width:10%;" />
-						<col style="width:15%;" />
-						<col style="width:10%;" />
-						<col style="width:15%;" />
-						<col style="width:10%;" />
+						<col style="width:20%;" />
+						<col style="width:30%;" />
+						<col style="width:20%;" />
+						<col style="width:30%;" />
 						<col />
 					</colgroup>
 					<tr>
@@ -87,7 +84,23 @@
 						</td>
 					</tr>
 				</table>
-				
+					<div id="divRefundInfo2">
+					<h4>환불금액</h4>
+					<table class="frmStyle">
+						<colgroup>
+							<col style="width:20%;"/>
+							<col style="width:30%;"/>
+							<col style="width:20%;"/>
+							<col style="width:30%;"/>
+						</colgroup>
+						<tbody>
+							<tr>
+								<th>환불 금액</th>
+								<td colspan="3"><span id="refundAmt"></span>원 </td>
+							</tr>
+						</tbody>
+					</table>
+					</div>
 					<div id="divRefundInfo">
 					<h4>환불예정금액</h4>
 					<table class="frmStyle">
@@ -163,11 +176,8 @@
 
 	var ordChgSq = [[${ordChgSq}]];	// 주문변경번호
 	var ordNo    = [[${ordNo}]];	// 주문번호 
-	var remainGoodsInfo = [[${remainGoodsInfo}]]; // 주문 남은 상품 정보
-	var remainGoodsList = [[${remainGoodsList}]]; // 주문 남은 상품 목록
-	var couponInfo = [[${couponInfo}]]; // 쿠폰 정보
-	var orderDetailSumAmt = [[${orderDetailSumAmt}]];
-	var sumQty = [[${sumQty}]];
+	var userNo   = [[${userNo}]]; 
+
 	var ordChgCnt = 0;	//회수신청건수
 	var chgGb = "반품";
 	
@@ -179,6 +189,7 @@
 	var mallGb      = "";
 	var reFundInfo  = [[${refundConfirmPreInfo}]]; // 환불컨펌 정보 
 	
+	
 	var columnDefsDetail = [
 		{headerName: "주문변경번호", 	field: "ordChgSq",	width: 100, minWidth: 100, cellClass: 'text-center'},
 		{headerName: "주문번호", 		field: "ordNo", 	width: 100, minWidth: 100, cellClass: 'text-center',
@@ -221,38 +232,18 @@
 	withdrawDetailGridOptions.rowSelection = 'multiple';
 	
 	var isCustomer = true;
-	
-	
-	// ??  
-	withdrawDetailGridOptions.getRowStyle = function(params) {
-		if (params.data.wdStatYn == 'N') {
-			if (params.data.wdQty < 1) {
-				return { 'background-color': '#FF0000'};
-			}
-		} 
-	}
-	
-	
-	/*************************************************************************
-	*  init
-	**************************************************************************/
-	$(document).ready(function() {
-		// Create a agGrid
-		gagaAgGrid.createGrid('refundGridList', withdrawDetailGridOptions);
-		
-		setTimeout(fnRefundDetailSearch, 200);
-		
-	}); 
-	
-	
+
 	/*************************************************************************
 	*  회수 상세내역 조회
 	**************************************************************************/
 	var initFlag = '';
 	var fnRefundDetailSearch = function() {
 		//initFlag = Init;
-		var data = { 'ordChgSq' : ordChgSq };
-		var jsonData = JSON.stringify(data);
+		var params = {};
+		params.ordChgSq = ordChgSq;
+		params.userNo = userNo;
+		
+		var jsonData = JSON.stringify(params);
 		
 		gagajf.ajaxJsonSubmit('/withdraw/detail/list', jsonData, fnWithdrawDetailCallback);
 	}
@@ -261,53 +252,40 @@
 	*  상세 정보 콜백 함수
 	**************************************************************************/	
 	var fnWithdrawDetailCallback = function(result) {
-		if (result.length < 1) {
+		reFundInfo = result.refundConfirmPreInfo;
+		
+		if (result.dataList.length < 1) {
 			mcxDialog.alert('회수데이터 오류입니다. 운영팀에 문의 해주세요! ');
 			return;
 		}
 		
 		var confirmCnt = 0;
-		$(result).each(function(idx) {
-			if (result[idx].wdStatYn == 'Y') {
+		$(result.dataList).each(function(idx) {
+			if (result.dataList[idx].wdStatYn == 'Y') {
 				confirmCnt++;
 			}
-			ordInQty  = ordInQty + result[idx].wdQty;
-			ordChgQty = ordChgQty + result[idx].chgQty;
+			ordInQty  = ordInQty + result.dataList[idx].wdQty;
+			ordChgQty = ordChgQty + result.dataList[idx].chgQty;
 			
 		});
 		
 		// 전체 회수 완료 일 때. 제휴몰일때 
-		if (result.length == confirmCnt || result[0].mallGb == 'G011_20') {
-			//fnSearch();
+		if (result.dataList.length == confirmCnt || result.dataList[0].mallGb == 'G011_20') {
 			setReadOnly(true);
 			$('#pgBtn').hide();
-			//$('#divRefundInfo').hide();
+			$('#divRefundInfo').hide();
+			$('#divRefundInfo2').show();
 		}
 		
 		// 회수리스트 설정
-		withdrawDetailGridOptions.api.setRowData(result); 
-		
-		//if (!initFlag) return;
-		
-		fnSetWithdrawInfo(result[0]);	// 회수정보 설정
+		withdrawDetailGridOptions.api.setRowData(result.dataList); 
 		
-		//fnSetCnclInfo(result);			// 취소 관련 설정
+		fnSetWithdrawInfo(result.dataList[0]);	// 회수정보 설정
 	}
 	
 	/*************************************************************************
 	*  회수정보 설정
-	**************************************************************************/		
-	var _orgDelvFee = 0;	// 최초 배송비
-	var _delvFee = 0;		// 배송비
-	var _totRealOrdAmt = 0;	// 상품 실결제금액
-	var _payAmt = 0;		// 총결제금액
-	var _encloseFee = 0;	// 동봉비
-	
-	var _totCnclGoodsAmt = 0;		// 총 취소 상품 금액
-	var _totCnclPointAmt = 0;		// 총 취소 사용 포입트
-	var _totCnclCouponAmt = 0;		// 총 취소 사용 쿠폰
-	var _totCnclGoodsRefundAmt = 0;	// 총 취소 상품 환불금액
-	
+	**************************************************************************/			
 	var fnSetWithdrawInfo = function(data) {
 		
 		toTalOrdQty = data.totalOrdQty;
@@ -348,6 +326,8 @@
 			isCustomer = false;
 		}
 		
+		// 환불금액 
+		$("#refundAmt").text(data.refundAmt.addComma());
 
 		// 환불예정금액 
 		$("#spanPayAmt").text(reFundInfo.spanPayAmt.addComma());					//총 결제 금액
@@ -427,11 +407,11 @@
 					addDeliveryFee = reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt;
 					addDeliveryFeeYn = "Y";
 				}
-				alert("총수량 출고예외 ");
+				//alert("총수량 출고예외 ");
 				// 환불금액  = 취소 상품 실결제 금액 + 배송비 
 				reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt);
 			} else { // 총 주문수량  <>  반품수량   
-				alert("출고예외");
+				//alert("출고예외");
 				reFundInfo.spanRefundAmt = reFundInfo.spanRealCnclRtnAmt;
 			}
 			
@@ -439,14 +419,14 @@
 			if(toTalOrdQty == ordChgQty){// 총 주문수량  =  반품수량   
 				if(isCustomer){ //고객귀책 
 					if(wdGb == "W"){ // 회수요청
-						alert("총수량 고객귀책 - 회수요청");
+						//alert("총수량 고객귀책 - 회수요청");
 						// 환불금액  = 취소 상품 실결제 금액 + 배송비 - 추가배송비 - 반품배송비 
 						if(Number(enCloseFee) > 0){
 							enCloseFeeYn = "Y";
 						}
 						reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - (reFundInfo.spanTotDeliveryFee - reFundInfo.spanDelvCpnDcAmt)  - reFundInfo.spanTotRtnDelvFee;
 					} else {         // 직접배송
-						alert("총수량 고객귀책 - 직접배송");
+						//alert("총수량 고객귀책 - 직접배송");
 					
 						if(Number(codFee) > 0){
 							codFeeAmt = Number(codFee);
@@ -458,7 +438,7 @@
 						reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost)) - (reFundInfo.spanTotDeliveryFee - reFundInfo.spanDelvCpnDcAmt) - Number(codFee);
 					}
 				} else { // 회사귀책
-					alert("총수량 회사귀책 ");
+					//alert("총수량 회사귀책 ");
 					if(reFundInfo.spanSumDeliveryFee > 0){
 						addDeliveryFee = reFundInfo.spanSumDeliveryFee - reFundInfo.spanDelvCpnDcAmt;
 						addDeliveryFeeYn = "Y";
@@ -468,14 +448,14 @@
 			} else { // 총 주문수량  <>  반품수량   
 				if(isCustomer){ //고객귀책 
 					if(wdGb == "W"){ // 회수요청
-						alert(" 고객귀책- 회수요청 ");
+						//alert(" 고객귀책- 회수요청 ");
 						if(Number(enCloseFee) > 0){
 							enCloseFeeYn = "Y";
 						}
 						// 환불금액  = 취소 상품 실결제 금액   - 반품배송비 
 						reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) + Number(addPaycost))  - reFundInfo.spanTotRtnDelvFee;
 					} else {         // 직접배송
-						alert(" 고객귀책- 직접배송 ");
+						//alert(" 고객귀책- 직접배송 ");
 						if(Number(codFee) > 0){
 							codFeeAmt = Number(codFee);
 							codFeeYn  = "Y";
@@ -486,7 +466,7 @@
 						reFundInfo.spanRefundAmt = (reFundInfo.spanRealCnclRtnAmt + Number(enCloseFee) - Number(codFee));
 					}
 				} else { // 회사귀책
-					alert(" 회사귀책 ");
+					//alert(" 회사귀책 ");
 					reFundInfo.spanRefundAmt = reFundInfo.spanRealCnclRtnAmt ;
 				}
 			}
@@ -560,13 +540,15 @@
 			return;
 		}
 
-		mcxDialog.confirm('회수컨펌 하시겠습니까?', {
+		mcxDialog.confirm('환불컨펌 하시겠습니까?', {
 			cancelBtnText: "취소",
 			sureBtnText: "확인",
 			sureBtnClick: function(){
 				gagajf.ajaxJsonSubmit('/withdraw/detail/confirm', jsonData, function(result) {
 					//confirmFlag = true;
-					//fnDetailSearch(false);
+					fnSearch();
+					$('#divRefundInfo').hide();
+					$('#divRefundInfo2').show();
 					fnRefundDetailSearch();
 				});
 			}
@@ -583,18 +565,26 @@
 			$('#withdrawDetailForm input[name=encloseFee]').attr('readonly', 'readonly');
 			$('#withdrawDetailForm input[name=encloseFee]').addClass('formControl');
 			
-			//$('#withdrawDetailForm select[name=chgReason]').attr('disabled', 'disabled');
-			//$('#withdrawDetailForm select[name=chgReason]').addClass('formControl');	
 		} else {
 			$('#withdrawDetailForm input[name=encloseFee]').remove('readonly');
 			$('#withdrawDetailForm input[name=encloseFee]').removeClass('formControl');
 			
-			//$('#withdrawDetailForm select[name=chgReason]').remove('disabled');
-			//$('#withdrawDetailForm select[name=chgReason]').removeClass('formControl');
 		}
 		
 	}
+	/*************************************************************************
+	*  init
+	**************************************************************************/
+	$(document).ready(function() {
+		// Create a agGrid
 
+		gagaAgGrid.createGrid('refundGridList', withdrawDetailGridOptions);
+		$('#divRefundInfo2').hide();
+		fnRefundDetailSearch();
+		
+	}); 
+	
+	 
 /*]]>*/
 </script>
 </html>

+ 2 - 1
src/main/webapp/WEB-INF/views/withdraw/RefundRegisterListForm.html

@@ -186,7 +186,8 @@
 		gagaAgGrid.createGrid('gridList', withDrawGridOptions);
 		cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '조회');
 
-		gagajf.setDate('#terms', 'stDate', 'edDate', '3m');
+		gagajf.setDate('#terms', 'stDate', 'edDate', '7d');
+		
 
 	});
 

+ 29 - 11
src/main/webapp/WEB-INF/views/withdraw/WithdrawDirectiveListForm.html

@@ -49,21 +49,21 @@
 						<tr>
 							<th>주문자명</th>
 							<td>
-								<input type="text" class="" name="ordNm" placeholder="" maxlength="20"/>
+								<input type="text" class="w40p" name="ordNm" placeholder="" maxlength="20"/>
 							</td>
 							<th>주문번호</th>
 							<td>
-								<input type="text" class="" name="ordNo" data-valid-type="integer" placeholder="" maxlength="20"/>
+								<input type="text" class="w40p" name="ordNo" data-valid-type="integer" placeholder="" maxlength="20"/>
 							</td>
 							<th>주문변경번호</th>
 							<td>
-								<input type="text" class="" name="ordChgSq" data-valid-type="integer" placeholder="" maxlength="20"/>
+								<input type="text" class="w40p" name="ordChgSq" data-valid-type="integer" placeholder="" maxlength="20"/>
 							</td>
 						</tr>
 						<tr>	
 							<th>회수구분</th>
 							<td>
-								<select name="chgGb">
+								<select name="chgGb"class="w100">
 									<option value="">&nbsp;전체&nbsp;</option>
 									<option value="G680_30"> 반품 </option>
 									<option value="G680_40"> 교환 </option>
@@ -71,14 +71,14 @@
 							</td>
 							<th>진행상태</th>
 							<td>
-								<select name="chgStat">
+								<select name="chgStat" class="w100">
 									<option value="">전체</option>
 									<option th:if="${chgStatList}" th:each="oneData, status : ${chgStatList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>									
 								</select>
 							</td>
 							<th>반품방식</th>
 							<td>
-								<select name="wdGb">
+								<select name="wdGb" class="w100">
 									<option value="">&nbsp;전체&nbsp;</option>
 									<option value="W">방문회수</option>
 									<option value="D">직접배송</option>
@@ -89,7 +89,7 @@
 						<tr>
 							<th>택배사전송여부</th>
 							<td>
-								<select name="sendYn">
+								<select name="sendYn" class="w100">
 									<option value="">전체</option>
 									<option value="Y">전송</option>
 									<option value="N">미전송</option>
@@ -98,7 +98,7 @@
 							</td>
 							<th>회수상태</th>
 							<td colspan="3">
-								<select name="wdShipState">
+								<select name="wdShipState" class="w100">
 									<option value="">전체</option>
 									<option th:if="${wdShipStateList}" th:each="oneData, status : ${wdShipStateList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
 								</select>
@@ -155,11 +155,13 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
 	// 사이트목록
-
+	var currOrdNo =0;
 	var columnDefs = [
 		{headerName: "주문변경번호", 	field: "ordChgSq", 		width: 100, cellClass: "text-center"},
 		{headerName: "주문번호", 		field: "ordNo", 		width: 100, cellClass: "text-center",
-			cellRenderer: function(params) { return gagajf.isNull(params.value) ? '' : '<a href="javascript:void(0);">' + params.value + '</a>'; }
+			cellRenderer: function(params) { 
+				return gagajf.isNull(params.value) ? '' : "<a href=\"javascript:void(0);\" onclick=\"fnOrderDetailPopup('" + params.data.ordNo + "');\">" + params.data.ordNo + "</a>";
+			}
 		},
 		{headerName: "주문상세번호", 	field: "ordDtlNo", 		width: 100, cellClass: "text-center"},		
 		{headerName: "회수구분", 		field: "chgGb", 		width: 80, cellClass: "text-center",
@@ -215,6 +217,22 @@
 		}
 	};
 
+	/*************************************************************************
+	*  주문상세 팝업  
+	**************************************************************************/		
+	var fnOrderDetailPopup = function(ordNo){
+		currOrdNo = ordNo;
+		cfnOpenOrderDetailPopup(currOrdNo);
+	}
+	
+	/*************************************************************************
+	*  팝업 콜백 
+	**************************************************************************/		
+	var fnReOpenOrderDetailPopup = function () {
+		cfnOpenOrderDetailPopup(currOrdNo);
+		fnSearchList();
+	};
+	
 	// 조회
 	$('#btnSearch').on('click', function() {
 		// Fetch data
@@ -331,7 +349,7 @@
 		cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '','',  hideList);
 		// grid 높이 조절
 		//uifnFitGrid('auto');
-		gagajf.setDate('#terms', 'stDate', 'edDate', 't');
+		gagajf.setDate('#terms', 'stDate', 'edDate', '7d');
 
 		//fnDatepickerDisabled();
 	});

+ 15 - 6
src/main/webapp/WEB-INF/views/withdraw/WithdrawExceptionListForm.html

@@ -147,7 +147,7 @@
 
 	var columnDefs = [
 		{headerName: "반품예외처리번호",		field: "recallExceptionNo", width: 50,	cellClass: 'text-center', hide: true},
-		{headerName: "No.",				field: "rnum",				width: 50,	cellClass: 'text-center'},
+		//{headerName: "No.",				field: "rnum",				width: 50,	cellClass: 'text-center'},
 		{headerName: "처리상태",			field: "recallStat",		width: 100,	cellClass: 'text-center',rowSpan: params => params.data.rowspanRank === 1 ? params.data.rowspanCnt : 1,
 		    cellClassRules: {
 		        'cell-span': "data.rowspanRank == 1"
@@ -182,7 +182,7 @@
 		{headerName: "주문자명",			field: "customerName",		width: 100,	cellClass: 'text-center'},
 		{headerName: "예외사유",			field: "reasonCd",			width: 150,	cellClass: 'text-center'},
 		{headerName: "WMS메시지",			field: "adminMemo",			width: 300,	cellClass: 'text-left'},
-		{headerName: "회수요청구분",		field: "chgGbNm",			width: 80,	cellClass: 'text-left'},
+		{headerName: "회수요청구분",		field: "chgGbNm",			width: 90,	cellClass: 'text-left'},
 		{headerName: "반품교환사유",		field: "chgReasonNm",		width: 150,	cellClass: 'text-left'},
 		{headerName: "반품/사유변경",		field: "chgReason",			width: 120,	cellClass: 'text-center',rowSpan: params => params.data.rowspanRank === 1 ? params.data.rowspanCnt : 1,
 			    cellClassRules: {
@@ -208,11 +208,20 @@
 				}
 			}
 		},
-		{headerName: "추가비용",			field: "csAddFee",		width: 100,	cellClass: 'text-right',editable: true,
+		{headerName: "착불비",			field: "codFee",		width: 100,	cellClass: 'text-right'
+			,valueFormatter: function(params) {
+				if (params.value > 0) {
+					return params.value.addComma();
+				}else{
+					return '0';
+				}
+			}
+		},		
+		{headerName: "*추가비용",			field: "csAddFee",		width: 100,	cellClass: 'text-right',editable: true,
 			cellEditor: 'textCellEditor',
 			cellEditorParams: { maxlength: 20, validType: "numeric" }
 		},		
-		{headerName: "CS메모",			field: "csMemo",		width: 200,	cellClass: 'text-left',editable: true,
+		{headerName: "*CS메모",			field: "csMemo",		width: 200,	cellClass: 'text-left',editable: true,
 			cellEditor: 'textCellEditor',
 			cellEditorParams: { maxlength: 1000, required: true }
 		},			
@@ -311,7 +320,7 @@
 		if(refreshFlag == "ordDtl"){
 			cfnOpenOrderDetailPopup(currOrdNo);
 		} else if(refreshFlag == "ban"){
-			alert("11");
+
 		} else if(refreshFlag == "change"){
 			
 		}
@@ -323,7 +332,7 @@
 	*  달력 초기화 
 	**************************************************************************/		
 	var fnInitCalendar = function() {
-		cfnChangeCalendar('7d', $('#stDate'), $('#edDate')); //달력 초기화
+		gagajf.setDate('#terms', 'stDate', 'edDate', '7d');
 	}
 	
 	/*************************************************************************

+ 31 - 24
src/main/webapp/WEB-INF/views/withdraw/WmsWithdrawListForm.html

@@ -59,7 +59,7 @@
 							</td>
 							<th class="dashR">입고상태</th>
 							<td class="dashR">
-								<select name="statuscd" id="statuscd">
+								<select name="statuscd" id="statuscd" class="w100">
 									<option value="" selected>전체</option>
 									<option value="입고대기">입고대기</option>
 									<option value="입고완료">입고완료</option>
@@ -67,9 +67,9 @@
 							</td>
 						</tr>
 						<tr>
-							<th class="dashR">반품타입</th>
+							<th class="dashR">반품구분</th>
 							<td class="dashR">
-								<select name="recalltypecd" id="recalltypecd">
+								<select name="recalltypecd" id="recalltypecd" class="w100">
 									<option value="" selected>전체</option>
 									<option value="10">일반</option>
 									<option value="20">교환</option>
@@ -77,7 +77,7 @@
 							</td>
 							<th class="dashR">삭제여부</th>
 							<td colspan="4" class="dashR">
-								<select name="isdeleted" id="isdeleted">
+								<select name="isdeleted" id="isdeleted" class="w100">
 									<option value="">전체</option>
 									<option value="1">Y</option>
 									<option value="0" selected>N</option>
@@ -138,17 +138,18 @@
 	/*************************************************************************
 	* AG-GRID 영역 
 	**************************************************************************/
+	var currOrdNo =0;
 	var uploadGoodsUrl = [[${@environment.getProperty('upload.goods.view')}]]; 
 	var roleCd = [[${sessionInfo.roleCd}]]; 
 
 	var columnDefs = [
-		{headerName: "No.",				field: "rnum",				width: 50,	cellClass: 'text-center'},
+		//{headerName: "No.",				field: "rnum",				width: 50,	cellClass: 'text-center'},
 		{headerName: "반품번호",			field: "recallno", 			width: 50,	cellClass: 'text-center', hide: true},
 		{headerName: "주문변경번호",		field: "orderexceptionno",	width: 100,	cellClass: 'text-center'},
 		{headerName: "주문번호",			field: "orderno",			width: 100,	cellClass: 'text-center',
 			cellRenderer: function (params) {
 				if (roleCd.indexOf("C") < 0) {
-					return "<a href=\"javascript:void(0);\" onclick=\"cfnOpenOrderDetailPopup('" + params.data.orderno + "');\">" + params.data.orderno + "</a>";
+					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderDetailPopup('" + params.data.orderno + "');\">" + params.data.orderno + "</a>";
 				} else {
 					return params.value;
 				}
@@ -156,7 +157,7 @@
 		},
 		{headerName: "주문상세번호",		field: "orderdtlno",		width: 100,	cellClass: 'text-center'},
 		{headerName: "상태",				field: "statuscd",			width: 100,	cellClass: 'text-center'},
-		{headerName: "반품타입",			field: "recalltypecd",		width: 80,	cellClass: 'text-center',
+		{headerName: "반품구분",			field: "recalltypecd",		width: 80,	cellClass: 'text-center',
 			cellRenderer: function (params) { return params.value == '10' ? '일반' : '교환'; }	
 		},
 		{headerName: "수취인",			field: "receiver",			width: 100,	cellClass: 'text-center'},
@@ -203,6 +204,25 @@
 	//gridOptions.rowSelection = 'multiple';
 	
 	//gridOptions.rowHeight = 35;
+	
+	/*************************************************************************
+	*  주문상세 팝업  
+	**************************************************************************/		
+	var fnOrderDetailPopup = function(ordNo){
+		currOrdNo = ordNo;
+		cfnOpenOrderDetailPopup(currOrdNo);
+	}
+	
+	/*************************************************************************
+	*  팝업 콜백 
+	**************************************************************************/		
+	var fnReOpenOrderDetailPopup = function () {
+		cfnOpenOrderDetailPopup(currOrdNo);
+		fnSearchList();
+	};
+	
+	
+	
 	/*************************************************************************
 	*  조회 버튼 클릭 시
 	**************************************************************************/
@@ -252,24 +272,10 @@
 	*  달력 초기화 
 	**************************************************************************/		
 	var fnInitCalendar = function() {
-		cfnChangeCalendar('7d', $('#stDate'), $('#edDate')); //달력 초기화
+		gagajf.setDate('#terms', 'stDate', 'edDate', '7d');
+		
 	}
 
-	
-	function fnRowSpan(params) {
-		alert("alert");  
-		var orderNo = params.data.orderNo;
-		  alert("orderNo: "+orderNo);
-		  if (orderNo == 18691602) {
-		    // have all Russia age columns width 2
-		    return 2;
-		  } else {
-		    // all other rows should be just normal
-		    return 1;
-		  }
-		}
-	// rowSpan: params => params.data.orderNo === '18692992' ? 2 : 1	
-	
 	/*************************************************************************
 	*  회수예외 처리완료 버튼 - 대기->완료  업데이트
 	**************************************************************************/	
@@ -330,7 +336,8 @@
 	**************************************************************************/		
 	$(document).ready(function() {
 		gagaAgGrid.createGrid('gridList', gridOptions);
-		cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '');
+		var hideList = ["btnThisWeek", "btnYesterWeek", "btnThisMonth", "btnYesterMonth", "btnRecent3Month"];
+		cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '','',  hideList);
 		fnInitCalendar();
 	});