浏览代码

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

tsit14 4 年之前
父节点
当前提交
283ab0c59a
共有 26 个文件被更改,包括 387 次插入118 次删除
  1. 9 0
      src/main/java/com/style24/admin/biz/dao/TsaSocialDao.java
  2. 11 2
      src/main/java/com/style24/admin/biz/service/TsaMorebetterService.java
  3. 5 0
      src/main/java/com/style24/admin/biz/service/TsaSocialService.java
  4. 2 2
      src/main/java/com/style24/admin/biz/service/TsaWithdrawService.java
  5. 23 0
      src/main/java/com/style24/admin/biz/web/TsaCustomerController.java
  6. 2 1
      src/main/java/com/style24/admin/biz/web/TsaMarketingController.java
  7. 1 0
      src/main/java/com/style24/persistence/domain/Review.java
  8. 23 1
      src/main/java/com/style24/persistence/domain/WmsWithdraw.java
  9. 23 19
      src/main/java/com/style24/persistence/mybatis/shop/TsaDsiplay.xml
  10. 15 14
      src/main/java/com/style24/persistence/mybatis/shop/TsaMorebetter.xml
  11. 9 0
      src/main/java/com/style24/persistence/mybatis/shop/TsaReview.xml
  12. 20 7
      src/main/java/com/style24/persistence/mybatis/shop/TsaSocial.xml
  13. 81 5
      src/main/java/com/style24/persistence/mybatis/shop/TsaWithdraw.xml
  14. 7 2
      src/main/webapp/WEB-INF/views/customer/LmsPopupForm.html
  15. 39 0
      src/main/webapp/WEB-INF/views/display/MainContentsPopupForm.html
  16. 5 5
      src/main/webapp/WEB-INF/views/goods/GoodsDetailForm.html
  17. 19 26
      src/main/webapp/WEB-INF/views/marketing/CouponListForm.html
  18. 42 7
      src/main/webapp/WEB-INF/views/marketing/MorebetterPopupForm.html
  19. 16 2
      src/main/webapp/WEB-INF/views/marketing/PlanDetailPopupForm.html
  20. 1 1
      src/main/webapp/WEB-INF/views/marketing/ReviewDetailForm.html
  21. 21 10
      src/main/webapp/WEB-INF/views/marketing/SocialShoppingListForm.html
  22. 2 2
      src/main/webapp/WEB-INF/views/order/ExchangeRequestForm.html
  23. 2 2
      src/main/webapp/WEB-INF/views/order/OrderDetailForm.html
  24. 1 1
      src/main/webapp/WEB-INF/views/order/OrderMemoRegistForm.html
  25. 3 3
      src/main/webapp/WEB-INF/views/withdraw/WithdrawExceptionListForm.html
  26. 5 6
      src/main/webapp/WEB-INF/views/withdraw/WmsWithdrawListForm.html

+ 9 - 0
src/main/java/com/style24/admin/biz/dao/TsaSocialDao.java

@@ -85,5 +85,14 @@ public interface TsaSocialDao {
 	int getSocialGoOffCount(Social params);
 	
 
+	/**
+	 * 소셜 상품 저장 시 수정 확인
+	 *
+	 * @param
+	 * @return
+	 * @author sowon
+	 * @since 2021. 7. 23
+	 */
+	int getSocialGoodsGoOffCount(Integer socialSq);
 
 }

+ 11 - 2
src/main/java/com/style24/admin/biz/service/TsaMorebetterService.java

@@ -194,18 +194,26 @@ public class TsaMorebetterService {
         List<MoreBetterGoods> dgList = moreBetter.getDefaultGoodsList();
         List<MoreBetterGoods> agList = moreBetter.getGridApplyGoodsList();
         List<MoreBetterGoods> applyList = new ArrayList<>();
+        int dupCnt = 0;
         if(agList.size() > 0){
+            applyList = dgList;
             for(int i=0; i<agList.size(); i++){
                 for(int j=0; j<dgList.size(); j++){
-                    if(!agList.get(i).getGoodsCd().equals(dgList.get(j).getGoodsCd())){
-                        applyList.add(agList.get(i));
+                    if(agList.get(i).getGoodsCd().equals(dgList.get(j).getGoodsCd())){
+                        //applyList.add(agList.get(i));
+                        dupCnt++;
                     }
                 }
+                if(dupCnt==0){
+                    applyList.add(agList.get(i));
+                }
             }
         }else{
             applyList = dgList;
         }
 
+        log.info("applyList ::::{}",applyList);
+
         for(MoreBetterGoods regApplyGoods : applyList){
             // 다다익선 적용대상 설정(TB_TMTB_GOODS) 저장
             regApplyGoods.setTmtbSq(moreBetter.getTmtbSq());
@@ -254,6 +262,7 @@ public class TsaMorebetterService {
         StringBuilder sb = new StringBuilder();
         StringBuilder sb3 = new StringBuilder();
         //int i = 1;
+        log.info("applyList2 ::::{}",applyList);
 
         if(applyList.size()>0){
             for(int i=0; i<applyList.size(); i++){

+ 5 - 0
src/main/java/com/style24/admin/biz/service/TsaSocialService.java

@@ -97,6 +97,11 @@ public class TsaSocialService {
 	@Transactional("shopTxnManager")
 	public void saveSocialGoods(Collection<Social> paramList) {
 		Integer userNo = TsaSession.getInfo().getUserNo();
+		Integer socialSq = paramList.iterator().next().getSocialSq();
+
+		if (socialDao.getSocialGoodsGoOffCount(socialSq) > 0){
+			throw new IllegalStateException("해당 핫딜은 진행중이므로 수정하실 수 없습니다.");
+		}
 
 		for (Social social : paramList) {
 			social.setRegNo(userNo);

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

@@ -292,9 +292,9 @@ public class TsaWithdrawService {
 			for(int i=0; i<listDtlNo.length; i++) {
 				WithdrawExc item = new WithdrawExc();
 				if("G680_30".equals(withdrawExc.getWdGb())) { // 반품요청
-					item.setChgStat(OrderChangeStat.RETURN_WAIT.value());   // 반품대기 (추가배송비 결제 전)
+					item.setChgStat(OrderChangeStat.WITHDRAW_WAIT.value());   // 반품대기 (추가배송비 결제 전)
 				} else { // 교환요청 
-					item.setChgStat(OrderChangeStat.EXCHANGE_WAIT.value()); // 교환대기 (추가배송비 결제 전)
+					item.setChgStat(OrderChangeStat.WITHDRAW_WAIT.value()); // 교환대기 (추가배송비 결제 전)
 				}
 				item.setOrdChgSq(withdrawExc.getOrdChgSq());
 				item.setOrdDtlNo(Integer.parseInt(listDtlNo[i]));

+ 23 - 0
src/main/java/com/style24/admin/biz/web/TsaCustomerController.java

@@ -551,6 +551,29 @@ public class TsaCustomerController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0005"));
 	}
 
+	/**
+	 * 메시지 발송
+	 *
+	 * @param customer -고객정보
+	 * @return GagaResponse
+	 * @author jsshin
+	 * @since 2021. 01. 21
+	 */
+	@PostMapping("/message/send2")
+	@ResponseBody
+	public GagaResponse sendLms(@RequestBody Customer customer) {
+		Customer custInfo = customerService.getCustomerInfo(customer.getCustNo());
+		customer.setCustNm(custInfo.getCustNm());
+		customer.setCustNo(custInfo.getCustNo());
+
+		if (StringUtils.isNotBlank(customer.getCellPhnno())) {
+			Integer userNo = TsaSession.getInfo().getUserNo();
+			kakaotalkService.sendBasicLms(customer, userNo);
+		}
+
+		return super.ok(message.getMessage("SUCC_0005"));
+	}
+	
 	/**
 	 * 메시지 발송 팝업 화면
 	 *

+ 2 - 1
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -1028,7 +1028,8 @@ public class TsaMarketingController extends TsaBaseController {
 				if (duplicateGoodsList.size() > 0) {
 					map.set("duplicateYn", "Y");
 					map.set("duplicateGoodsList", duplicateGoodsList);
-					map.set("message", message.getMessage("FAIL_0001"));
+//					map.set("message", message.getMessage("FAIL_0001"));
+					map.set("message", "다다익선 진행중인 상품이 있어 상태 변경되지 않았습니다. 재확인 후 상태 변경해주세요.");
 				} else {
 					// 조회 건수 없으면 -> 저장으로 넘어감
 					map.set("duplicateYn", "N");

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

@@ -58,6 +58,7 @@ public class Review extends TscBaseDomain {
 	private String bestYn;				// 베스트상품평여부
 	private String bpntGiveYn;			// 베스트상품평포인트지급여부
 	private int giveDueBpnt;			// 지급예정베스트포인트
+	private String optInfo;				// 옵션정보(색상/사이즈, ... 형식)
 
 	// 상품평 첨부파일
 	private Collection<ReviewAttach> attachList;

+ 23 - 1
src/main/java/com/style24/persistence/domain/WmsWithdraw.java

@@ -4,6 +4,9 @@ import lombok.Data;
 
 import com.style24.persistence.TscBaseDomain;
 import com.style24.persistence.TscPageRequest;
+import com.style24.core.support.session.TscSession;
+import com.style24.core.support.util.CryptoUtils;
+import com.style24.core.support.util.MaskingUtils;
 
 /**
  * WMS회수 Domain
@@ -69,6 +72,25 @@ public class WmsWithdraw extends TscBaseDomain {
 	private String stDate;					// 조회 시작 기간
 	private String edDate;					// 조회 종료 기간
 	
-	
+	// Masking
+
+	public String getMaskingReceiver() {
+		return TscSession.getAttribute("maskingYn").equals("Y") ? MaskingUtils.name(this.receiver) : this.receiver;
+	}
+
+	public String getMaskingCustomername() {
+		return TscSession.getAttribute("maskingYn").equals("Y") ? MaskingUtils.name(this.customername) : this.customername;
+	}
 
+	public String getMaskingReceivercellnum() {
+		return TscSession.getAttribute("maskingYn").equals("Y") ? MaskingUtils.phoneNo(this.receivercellnum) : this.receivercellnum;
+	}
+	
+	public String getMaskingDeliveryaddr2() {
+		return TscSession.getAttribute("maskingYn").equals("Y") ? MaskingUtils.address(this.deliveryaddr2) : this.deliveryaddr2;
+	}	
+	
+	public String getMaskingLoginid() {
+		return TscSession.getAttribute("maskingYn").equals("Y") ? MaskingUtils.id(this.loginid) : this.loginid;
+	}		
 }

+ 23 - 19
src/main/java/com/style24/persistence/mybatis/shop/TsaDsiplay.xml

@@ -911,26 +911,30 @@
 	<insert id="saveGoodsCategory" parameterType="GoodsCategory">
 		/* TsaDisplay.saveGoodsCategory */
 		INSERT INTO TB_CATE_GOODS(
-					BRAND_GROUP_NO
+		             BRAND_GROUP_NO
 		            ,CATE_NO
-					,GOODS_CD
-					,DISP_ORD
-					,REG_NO
-					,REG_DT
-				)
-				VALUES (
-		            IFNULL(NULLIF(#{brandGroupNo},''),0)
-				    ,#{cateCd}
-				    ,#{goodsCd}
-				    ,(SELECT	IFNULL((MAX(DISP_ORD) + 1), 1) AS DISP_ORD
-				        FROM	TB_CATE_GOODS ALIAS_FOR_SUBQUERY
-				        WHERE   CATE_NO = #{cateCd})
-				    ,#{regNo}
-				    ,NOW()
-				)
-				ON DUPLICATE KEY UPDATE
-					 REG_NO = #{regNo}
-					,REG_DT = NOW()
+		            ,GOODS_CD
+		            ,DISP_ORD
+		            ,REG_NO
+		            ,REG_DT
+		)
+		VALUES (
+		        IFNULL(NULLIF(#{brandGroupNo},''),0)
+		        ,#{cateCd}
+		        ,#{goodsCd}
+		        ,(SELECT	IFNULL((MAX(DISP_ORD) + 1), 1) AS DISP_ORD
+		            FROM	TB_CATE_GOODS ALIAS_FOR_SUBQUERY
+		            WHERE   CATE_NO = #{cateCd}
+		            <if test="brandGroupNo != null and brandGroupNo !=''">
+		            AND     BRAND_GROUP_NO = #{brandGroupNo}
+		            </if>
+		        )
+		        ,#{regNo}
+		        ,NOW()
+		    )
+		ON DUPLICATE KEY UPDATE
+		    REG_NO = #{regNo}
+		   ,REG_DT = NOW()
 	</insert>
 
 	<!-- 상품별카테고리 리스트 조회 -->

+ 15 - 14
src/main/java/com/style24/persistence/mybatis/shop/TsaMorebetter.xml

@@ -540,22 +540,23 @@
 		</if>
 	</delete>
 
+	<!-- 진행중인 다다익선 상품과 중복 체크 -->
 	<select id="getMorebetterDuplicateList" parameterType="MoreBetterGoods" resultType="MoreBetterGoods">
 		/* TsaMorebetter.getMorebetterDuplicateList */
-		SELECT 	REG_NO
-		      , GOODS_CD
-		      , GOODS_NM
-		 FROM	TB_TMTB_APPLY_GOODS_TEMP
-		WHERE	1=1
-		  AND	REG_NO = #{regNo}
-		  AND	GOODS_CD NOT IN (
-		                SELECT	B.GOODS_CD
-		                FROM	TB_TMTB A, TB_TMTB_APPLY_GOODS B
-		                WHERE	1=1
-		                AND		A.TMTB_SQ = B.TMTB_SQ
-		                AND		NOW() BETWEEN A.TMTB_ST_DT AND A.TMTB_ED_DT
-		                AND		B.TMTB_SQ = #{tmtbSq}
-		              )
+		SELECT  TG.GOODS_CD
+		      , (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = TG.GOODS_CD) AS GOODS_NM
+		FROM    TB_TMTB T, TB_TMTB_APPLY_GOODS TG
+		WHERE   T.TMTB_SQ = TG.TMTB_SQ
+		  AND   T.TMTB_STAT = 'G232_11'
+		  AND   NOW() BETWEEN T.TMTB_ST_DT AND T.TMTB_ED_DT
+		  AND   T.TMTB_SQ NOT IN (#{tmtbSq})
+		  AND   EXISTS (
+		            SELECT  TMP.GOODS_CD
+		            FROM    TB_TMTB_APPLY_GOODS_TEMP TMP
+		            WHERE   1=1
+		              AND   TMP.REG_NO = #{regNo}
+		              AND   TMP.GOODS_CD = TG.GOODS_CD
+			)
 	</select>
 
 	<update id="updateMorebetterStat" parameterType="MoreBetter">

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

@@ -125,6 +125,15 @@
 		     , DATE_FORMAT(R.ADM_RPL_DT,'%Y-%m-%d %H:%i:%S') AS ADM_RPL_DT     /*관리자댓글작성일시*/
 		     , R.RPL_CFM_YN                                                    /*댓글확인여부*/
 		     , DATE_FORMAT(R.RPL_CFM_DT,'%Y-%m-%d %H:%i:%S') AS RPL_CFM_DT     /*댓글확인일시*/
+		     , (
+		        SELECT GROUP_CONCAT(CONCAT(CASE WHEN G.SELF_GOODS_YN = 'Y' THEN (SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = ODI.OPT_CD1) ELSE ODI.OPT_CD1 END,'/',ODI.OPT_CD2)) AS OPT_INFO
+		        FROM   TB_ORDER_DETAIL OD
+		             , TB_ORDER_DETAIL_ITEM ODI
+		             , TB_GOODS G
+		        WHERE  OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		        AND    OD.GOODS_CD = G.GOODS_CD
+		        AND    OD.ORD_DTL_NO = R.ORD_DTL_NO
+		        AND    OD.GOODS_CD = R.GOODS_CD)             AS OPT_INFO
 		FROM   TB_REVIEW R
 		     , TB_CUSTOMER C
 		     , TB_GOODS G

+ 20 - 7
src/main/java/com/style24/persistence/mybatis/shop/TsaSocial.xml

@@ -203,6 +203,12 @@
 		FROM TB_SOCIAL A
 		WHERE 1=1
 		AND A.USE_YN = 'Y'
+		<if test='applyGb == "A"'>
+		    AND A.APPLY_GB = 'A'
+		</if>
+		<if test='applyGb == "P"'>
+		    AND A.APPLY_GB IN ('A','P')
+		</if>
 		<if test='frontGb == "P"'> <!-- PC웹 -->
 		    AND A.FRONT_GB IN ('A','P')
 		</if>
@@ -211,14 +217,21 @@
 		</if> 
 		<if test='frontGb == "A"'> <!-- 전체 -->
 		    AND A.FRONT_GB IN ('A','M','P')
-		</if> 
-		AND A.APPLY_GB IN ('A', #{applyGb})
-		<if test="socialSq != null and socialSq != ''">
-		AND A.SOCIAL_SQ != #{socialSq}
 		</if>
+		AND A.SOCIAL_SQ != #{socialSq}
 		AND A.SOCIAL_EDDT <![CDATA[ >= ]]> DATE_FORMAT(#{socialStdt} , '%Y-%m-%d %H:%i:%S')
 		AND A.SOCIAL_STDT <![CDATA[ <= ]]> DATE_FORMAT(#{socialEddt} , '%Y-%m-%d %H:%i:%S')
 	</select>
+
+	<!-- 상품 저장 시 진행중인 소셜인지 확인 -->
+	<select id="getSocialGoodsGoOffCount" parameterType="Social" resultType="int">
+		/*  TsaSocial.getSocialGoodsGoOffCount */
+		SELECT COUNT(*)
+		FROM TB_SOCIAL
+		WHERE SOCIAL_SQ = #{socialSq}
+		AND   USE_YN    = 'Y'
+		AND   APPLY_GB  = 'A'
+	</select>
 	
 	
 	
@@ -239,11 +252,11 @@
 			AND (FRONT_GB = 'A' OR FRONT_GB = #{frontGb} )
 		</if>
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
-        AND    SOCIAL_STDT <![CDATA[ <= ]]> DATE_FORMAT(#{stDate},'%Y-%m-%d %H:%i:%S')
-        AND    SOCIAL_EDDT <![CDATA[ >= ]]> DATE_FORMAT(#{edDate},'%Y-%m-%d %H:%i:%S')
+        AND    SOCIAL_STDT <![CDATA[ >= ]]> DATE_FORMAT(#{stDate},'%Y-%m-%d %H:%i:%S')
+        AND    SOCIAL_EDDT <![CDATA[ <= ]]> DATE_FORMAT(#{stDate},'%Y-%m-%d %H:%i:%S')
 		</if>
 	</sql>
-	
+
 	<sql id="getListPagingCondition_sql">
 		<choose>
 			<when test="pageable != null">

+ 81 - 5
src/main/java/com/style24/persistence/mybatis/shop/TsaWithdraw.xml

@@ -183,12 +183,13 @@
 	        , (SELECT E.EXTMALL_NM FROM TB_EXTMALL E WHERE E.VENDOR_ID = Z.VENDOR_ID AND E.EXTMALL_ID = Z.EXTMALL_ID) AS SITE_CD
 	        , CASE WHEN Z.CHG_GB = 'G680_30' THEN FN_GET_CODE_NM('G688', Z.CHG_REASON)
 			       WHEN Z.CHG_GB = 'G680_40' THEN FN_GET_CODE_NM('G689', Z.CHG_REASON)   ELSE '' END AS CHG_REASON_NM  
-			, CASE WHEN Z.CHG_GB = 'EXC' THEN '출고예외'  ELSE IFNULL(FN_GET_CODE_NM('G680', Z.CHG_GB),'회수예외') END  AS CHG_GB_NM
+			, CASE WHEN Z.CHG_GB = 'EXC' THEN '출고예외'  WHEN Z.CHG_GB = 'WEXC' THEN '회수예외' ELSE FN_GET_CODE_NM('G680', Z.CHG_GB) END  AS CHG_GB_NM
 			, (SELECT CHG_STAT FROM TB_ORDER_CHANGE_DETAIL C WHERE C.ORD_DTL_NO = Z.ORDER_DTL_NO AND C.DEL_YN = 'N' AND C.ORD_CHG_SQ = Z.ORD_CHG_SQ) AS CHG_STAT
 			, (SELECT D.DELV_FEE_CD FROM TB_ORDER_DETAIL D WHERE D.ORD_DTL_NO = Z.ORDER_DTL_NO ) AS DELV_FEE_CD
 			, CASE WHEN Z.RECALL_STAT = 'P' THEN '대기' ELSE '완료' END AS RECALL_STAT_NM
-			, CASE WHEN Z.RECALL_STAT = 'P' AND (SELECT CHG_STAT FROM TB_ORDER_CHANGE_DETAIL C WHERE C.ORD_DTL_NO = Z.ORDER_DTL_NO AND C.DEL_YN = 'N' AND C.ORD_CHG_SQ = Z.ORD_CHG_SQ) IN ('G685_21','G685_51') THEN '추가결제대기'
-			       WHEN Z.RECALL_STAT = 'P' THEN '대기' ELSE '완료' END AS STAT_NM
+			, CASE WHEN Z.RECALL_STAT = 'P' AND Z.ADD_FEE_YN = 'Y' AND (SELECT CHG_STAT FROM TB_ORDER_CHANGE_DETAIL C WHERE C.ORD_DTL_NO = Z.ORDER_DTL_NO AND C.DEL_YN = 'N' AND C.ORD_CHG_SQ = Z.ORD_CHG_SQ) IN ('G685_32') THEN '추가결제대기'
+				   WHEN Z.RECALL_STAT = 'P' AND Z.ADD_FEE_YN = 'Y' AND (SELECT CHG_STAT FROM TB_ORDER_CHANGE_DETAIL C WHERE C.ORD_DTL_NO = Z.ORDER_DTL_NO AND C.DEL_YN = 'N' AND C.ORD_CHG_SQ = Z.ORD_CHG_SQ) NOT IN ('G685_32') THEN '추가결제완료'       
+				   WHEN Z.RECALL_STAT = 'P' THEN '대기' ELSE '완료' END AS STAT_NM
 		FROM (
 		    SELECT A.*, ROW_NUMBER() OVER(ORDER BY  A.ORDER_NO, A.RECALL_EXCEPTION_NO, A.RECALL_EXCEPTION_ITEM_NO)  RNUM 
 		          , CASE WHEN A.MALL_GB = 'G011_20' THEN (SELECT MAX(BB.EXTMALL_ID) FROM TB_ORDER_DETAIL BB WHERE BB.ORD_NO = A.ORDER_NO) ELSE 'APISHOP_0054' END AS EXTMALL_ID
@@ -235,6 +236,7 @@
 							, NULL   AS CHG_REASON
 							, 'EXC'  AS CHG_GB 
 							, 'N'    AS WD_BF_SEND_YN
+							, A.ADD_FEE_YN
 						  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 
@@ -304,13 +306,14 @@
 							, OC.CHG_REASON
 							, OC.CHG_GB 
 							, OC.WD_BF_SEND_YN
+							, A.ADD_FEE_YN
 						  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 
 						  LEFT JOIN TB_OPTION C ON C.OPT_CD = B.SKU_CODE
 						  LEFT OUTER JOIN TB_ORDER_CHANGE_DETAIL  CD ON B.ORDER_DTL_NO = CD.ORD_DTL_NO AND CD.DEL_YN ='N' AND A.ORDER_EXCEPTION_NO = CD.ORD_CHG_SQ 
 						  LEFT OUTER JOIN TB_ORDER_CHANGE         OC ON CD.ORD_CHG_SQ = OC.ORD_CHG_SQ 						  
-						  WHERE B.REASON_CODE IN('00','01','02','03','04','05','06','15')
+						  WHERE B.REASON_CODE IN('00','02','03','04','05','06','15')
 							<if test='customerName != null and customerName != ""'>
 							AND   A.CUSTOMER_NAME = #{customerName}
 							</if>
@@ -333,13 +336,86 @@
 							<if test='userNameCreated != null and userNameCreated != ""'>
 							AND A.USER_NAME_CREATED = #{userNameCreated}
 							</if>
+							
+						UNION ALL
+						
+						SELECT 
+							  A.RECALL_STAT   -- 반품대기처리상태
+							, A.STATUS_CD     -- 처리상태
+							, A.DATE_CREATED  -- 등록일자
+							, A.CUSTOMER_NAME -- 고객명
+							, A.ORDER_NO      -- 주문번호
+							, B.ORDER_DTL_NO  -- 주문상세번호 
+							, A.LOGISTICS_NAME -- 택배사명
+							, A.INVOICE_NO     -- 반송장번호
+							, A.CHARGE_TYPE    -- 요금구분
+							, A.CHARGE_AMOUNT  -- 배송비
+							, A.USER_NAME_CREATED -- 작업자
+							, B.REASON_CD -- 예외사유
+							, IFNULL((SELECT GROUP_CONCAT(ADMIN_MEMO ORDER BY RECALL_EXCEPTION_MEMO_NO ) 
+							     FROM TB_ORDER_RECALL_EXCEPTION_MEMO C WHERE C.RECALL_EXCEPTION_NO = A.RECALL_EXCEPTION_NO  AND ADMIN_MEMO !='.'),'-') AS ADMIN_MEMO -- WMS메시지
+							, IFNULL((SELECT BRAND_KNM FROM TB_BRAND BR JOIN TB_GOODS GD ON BR.BRAND_CD = GD.BRAND_CD WHERE GD.GOODS_CD = C.GOODS_CD),'') AS BRAND_NM           -- 브랜드명
+							, B.PRODUCT_CODE   -- 상품코드
+							, B.SKU_CODE       -- SKU코드
+							, B.PRODUCT_NAME   -- 상품명
+							, B.SKU_VALUE      -- 속성
+							, C.SKU_MODEL_NO   -- 원코드
+							, B.EXCEPTION_QTY  -- 수량 
+							, A.RECALL_EXCEPTION_NO -- 반품예외처리번호 
+							, IFNULL(C.GOODS_CD,'') AS GOODS_CD       -- 상품코드 
+							, B.RECALL_EXCEPTION_ITEM_NO 
+							, B.QTY
+							, B.REASON_CODE
+							, O.MALL_GB
+							, A.COD_FEE
+							, O.ORD_PHNNO 
+							, O.CUST_NO 
+							, CASE WHEN A.PAY_GB = 'NAVER' THEN 'Y' ELSE 'N' END AS PAY_GB  
+							, A.ORDER_EXCEPTION_NO 
+							, CD.CHG_STAT
+							, OC.ORD_CHG_SQ 
+							, OC.WD_GB 
+							, OC.CHG_REASON
+							, 'WEXC' AS CHG_GB 
+							, IFNULL(OC.WD_BF_SEND_YN,'N') AS WD_BF_SEND_YN
+							, A.ADD_FEE_YN
+						  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 
+						  LEFT JOIN TB_OPTION C ON C.OPT_CD = B.SKU_CODE
+						  LEFT OUTER JOIN TB_ORDER_CHANGE_DETAIL  CD ON B.ORDER_DTL_NO = CD.ORD_DTL_NO AND CD.DEL_YN ='N' AND A.ORDER_EXCEPTION_NO = CD.ORD_CHG_SQ 
+						  LEFT OUTER JOIN TB_ORDER_CHANGE         OC ON CD.ORD_CHG_SQ = OC.ORD_CHG_SQ 						  
+						  WHERE B.REASON_CODE IN('01')
+							<if test='customerName != null and customerName != ""'>
+							AND   A.CUSTOMER_NAME = #{customerName}
+							</if>
+							<if test='orderNo != null and orderNo != ""'>
+							AND   A.ORDER_NO  = #{orderNo}
+							</if>
+							<if test='recallStat != null and recallStat != ""'>
+							AND   A.RECALL_STAT  = #{recallStat}
+							</if>
+							<if test='stDate != null and stDate != ""'>
+							AND   A.DATE_CREATED <![CDATA[>= ]]> STR_TO_DATE(REPLACE(#{stDate},'-',''), '%Y%m%d%H%i%s') 
+							</if>
+							<if test='edDate != null and edDate != ""'>
+							AND   A.DATE_CREATED <![CDATA[<]]> DATE_ADD(STR_TO_DATE(REPLACE(#{edDate},'-','')+ 1, '%Y%m%d%H%i%s'), INTERVAL 1 DAY)
+							</if>
+							
+							<if test='reasonCode != null and reasonCode != ""'>
+							AND B.REASON_CODE = #{reasonCode}
+							</if>
+							<if test='userNameCreated != null and userNameCreated != ""'>
+							AND A.USER_NAME_CREATED = #{userNameCreated}
+							</if>
+														
 				) A
 				WHERE 1=1
 				<if test='chgGb != null and chgGb != "" and chgGb !="G680" and chgGb !="G680_00"'>
 				AND A.CHG_GB  = #{chgGb}
 				</if>
 				<if test='chgGb =="G680"'>
-				AND A.CHG_GB  IS NULL
+				AND A.CHG_GB = 'WEXC'
 				</if>
 				<if test='chgGb =="G680_00"'>
 				AND A.CHG_GB = 'EXC'

+ 7 - 2
src/main/webapp/WEB-INF/views/customer/LmsPopupForm.html

@@ -95,7 +95,7 @@
 		if(!gagajf.validation(formId)){
 			return;
 		}
-
+		
 		mcxDialog.confirm("저장하시겠습니까?", {
 			cancelBtnText: "취소",
 			sureBtnText: "확인",
@@ -103,9 +103,14 @@
 				let params = $(formId).serializeObject();
 				params.custNo = custNo;
 				let jsonData = JSON.stringify(params);
-				gagajf.ajaxJsonSubmit('/customer/message/send', jsonData, uifnPopupClose('popupLmsForm'));
+				if(gagajf.isNull(pageGb)){
+					gagajf.ajaxJsonSubmit('/customer/message/send', jsonData, uifnPopupClose('popupLmsForm'));
+				} else {
+					gagajf.ajaxJsonSubmit('/customer/message/send2', jsonData, uifnPopupClose('popupLmsForm'));
+				}
 			}
 		});
+		
 
 	});
 

+ 39 - 0
src/main/webapp/WEB-INF/views/display/MainContentsPopupForm.html

@@ -384,6 +384,26 @@
 					html += '		<label class="rdoBtn"><input type="radio" name="thumTextColor'+i+'" value="BLACK" />BLACK</label>';
 					html += '		<label class="rdoBtn"><input type="radio" name="thumTextColor'+i+'" value="WHITE" checked="checked"/>WHITE</label>';
 				}
+				if(contentsLoc=='SOM001'){
+					html += '<em>* 모바일에서 사용</em>';
+				}
+				html += '	</td>';
+				html += '</tr>';
+			}
+			if(contentsLoc=='SBM004' || contentsLoc=='SCM001'){
+				html += '<tr>';
+				html += '	<th>썸네일 <br>글자 색상</th>';
+				html += '	<td colspan="3">';
+				if(result[i].strVar7=='BLACK'){
+					html += '		<label class="rdoBtn"><input type="radio" name="thumTextColor'+i+'" value="BLACK" checked="checked"/>BLACK</label>';
+					html += '		<label class="rdoBtn"><input type="radio" name="thumTextColor'+i+'" value="WHITE" />WHITE</label>';
+				}else{
+					html += '		<label class="rdoBtn"><input type="radio" name="thumTextColor'+i+'" value="BLACK" />BLACK</label>';
+					html += '		<label class="rdoBtn"><input type="radio" name="thumTextColor'+i+'" value="WHITE" checked="checked"/>WHITE</label>';
+				}
+				if(contentsLoc=='SCM001'){
+					html += '<em>* 모바일에서 사용</em>';
+				}
 				html += '	</td>';
 				html += '</tr>';
 			}
@@ -866,6 +886,21 @@
 			html += '	<td colspan="3">\n';
 			html += '		<label class="rdoBtn"><input type="radio" name="thumTextColor'+dataIdx+'" value="BLACK" checked="checked"/>BLACK</label>\n';
 			html += '		<label class="rdoBtn"><input type="radio" name="thumTextColor'+dataIdx+'" value="WHITE" />WHITE</label>\n';
+			if(contentsLoc=='SOM001'){
+				html += '<em>* 모바일에서 사용</em>';
+			}
+			html += '	</td>\n';
+			html += '</tr>\n';
+		}
+		if(contentsLoc=='SBM004' || contentsLoc=='SCM001'){
+			html += '<tr>\n';
+			html += '	<th>썸네일 <br>글자 색상</th>\n';
+			html += '	<td colspan="3">\n';
+			html += '		<label class="rdoBtn"><input type="radio" name="thumTextColor'+dataIdx+'" value="BLACK" checked="checked"/>BLACK</label>\n';
+			html += '		<label class="rdoBtn"><input type="radio" name="thumTextColor'+dataIdx+'" value="WHITE" />WHITE</label>\n';
+			if(contentsLoc=='SCM001'){
+				html += '<em>* 모바일에서 사용</em>';
+			}
 			html += '	</td>\n';
 			html += '</tr>\n';
 		}
@@ -1416,6 +1451,10 @@
 				strVar6 = $(this).find("input[name=planSq"+thisIdx+"]").val();
 				strVar7 = $(this).find("input:radio[name=thumTextColor"+thisIdx+"]:checked").val();
 			}
+			if(contentsLoc=='SBM004' || contentsLoc=='SCM001'){
+				var thisIdx = $(this).find("input[name=tableIdx]").val();
+				strVar7 = $(this).find("input:radio[name=thumTextColor"+thisIdx+"]:checked").val();
+			}
 
 			if(contentsLoc=='SMM005'){
 				var thisIdx = $(this).find("input[name=tableIdx]").val();

+ 5 - 5
src/main/webapp/WEB-INF/views/goods/GoodsDetailForm.html

@@ -2704,24 +2704,24 @@
 				}
 			});
 			
-			if (goods.goodsType != 'N'){
+			if (goods.goodsType != 'G056_N'){
 				isExist = true;
 			}
 			if(!isExist){
 				
 				var data = { 
 						  goodsCd : $('#goodsDetailForm input[name=goodsCd]').val()
-						, extendGoodsCd: goods.goodsCd
+						, compsGoodsCd: goods.goodsCd
 						, goodsType: $('#goodsDetailForm input[name=goodsType]').val()
 						, dispOrd: idx
 						, qty: 1
 						, compsCurrPrice: goods.currPrice
-						, extendStaffCurrPrice: goods.currPrice
 						, baseYn: 'N'
+						, repYn: 'N'
 						, goodsStat : goods.goodsStat
 						, useYn: 'Y'
-						, extendGoodsOptNm : goods.goodsNm
-						, extendGoodsCdNm : goods.goodsNm
+						, compsGoodsOptNm : goods.goodsNm
+						, compsGoodsNm : goods.goodsNm
 						, currPrice : goods.currPrice
 						, selfGoodsYn : goods.selfGoodsYn
 						, sysImgNm : goods.sysImgNm

+ 19 - 26
src/main/webapp/WEB-INF/views/marketing/CouponListForm.html

@@ -36,15 +36,12 @@
 				<table class="frmStyle">
 					<colgroup>
 						<col style="width: 8%;"/>
-						<col style="width: 12%;"/>
+						<col style="width: 17%;"/>
 						<col style="width: 8%;"/>
-						<col style="width: 12%;"/>
+						<col style="width: 17%;"/>
 						<col style="width: 8%;"/>
-						<col style="width: 12%;"/>
+						<col style="width: 17%;"/>
 						<col style="width: 8%;"/>
-						<col style="width: 12%;"/>
-						<col style="width: 8%;"/>
-						<col style="width: 12%;"/>
 						<col/>
 					</colgroup>
 					<tr>
@@ -57,7 +54,11 @@
 						</td>
 						<th>쿠폰ID</th>
 						<td>
-							<input type="text" class="w900" name="cpnId" id="cpnId"/>
+							<input type="text" class="w100p" name="cpnId" id="cpnId"/>
+						</td>
+						<th>쿠폰명</th>
+						<td >
+							<input type="text" class="w100p" id="cpnNm" name="cpnNm">
 						</td>
 						<th>쿠폰유형</th>
 						<td>
@@ -66,10 +67,7 @@
 								<option th:if="${cpnTypeList}" th:each="oneData, status : ${cpnTypeList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 							</select>
 						</td>
-						<th>등록자</th>
-						<td>
-							<input type="text" class="w200" name="regNm" id="regNm">
-						</td>
+						
 					</tr>
 					<tr>
 						<th>할인유형</th>
@@ -79,29 +77,22 @@
 								<option th:if="${dcWayList}" th:each="oneData, status : ${dcWayList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 							</select>
 						</td>
-						<th>쿠폰명</th>
-						<td colspan="10">
-							<input type="text" class="w800" id="cpnNm" name="cpnNm">
-						</td>
-					</tr>
-					<tr>
-						<th>유효기간구분</th>
+						<th>등록자</th>
 						<td>
+							<input type="text" class="w200" name="regNm" id="regNm">
+						</td>
+						<th>기간/일수구분</th>
+						<td colspan="3">
 							<select name="pdGb" id="pdGb">
 								<option value="">[전체]</option>
 								<option value="P">기간</option>
 								<option value="D">일</option>
 							</select>
 						</td>
-						<th>유효기간</th>
-						<td colspan="5" id="sellTerms"></td>
 					</tr>
 					<tr>
-						<th colspan="1">
-						<td colspan="9">
-							<label class="chkBox"><input type="checkbox" id="endCpnExcep" name="chkExcep" value="Y" checked>종료쿠폰제외</label>
-						</td>
-						</th>
+						<th>유효기간</th>
+						<td colspan="7" id="sellTerms"></td>
 					</tr>
 				</table>
 				<ul class="panelBar">
@@ -323,7 +314,9 @@
 
 		$(document).ready(function() {
 			cfnCreateCalendar('#sellTerms', 'availStdt', 'availEddt', true, '기간', 'X');
-
+			var chkBeforSkipFlag = '&nbsp;&nbsp;<label class="chkBox"><input type="checkbox" id="endCpnExcep" name="chkExcep" value="Y" checked>종료쿠폰제외</label>';
+			$("#cpnSearchForm").find('#sellTerms').append(chkBeforSkipFlag);
+			
 			// Create a agGrid
 			gagaAgGrid.createGrid('gridList', gridOptions);
 		});

+ 42 - 7
src/main/webapp/WEB-INF/views/marketing/MorebetterPopupForm.html

@@ -625,6 +625,27 @@
 			}else{
 				$("#moreBetterForm .buttonSpan").hide();	//행추가,삭제버튼
 			}
+
+			// 대기모드 아닐시 수정안되게 비활성화
+			if(tmtbMstInfo.tmtbStat != "G232_10"){
+				$("#moreBetterForm").find("input[name=tmtbNm]").attr('disabled',true);		// 프로모션명
+				$("#moreBetterForm").find("input[name=eventStdt]").attr('disabled',true);		// 시작일
+				$("#moreBetterForm select[name=eventStHH]").attr("readonly", true);
+				$("#moreBetterForm select[name=eventStHH]").attr("disabled", true);
+				$("#moreBetterForm select[name=eventStMM]").attr("readonly", true);
+				$("#moreBetterForm select[name=eventStMM]").attr("disabled", true);
+				$("#moreBetterForm").find("input[name=eventEddt]").attr('disabled',true);		// 종료일
+				$("#moreBetterForm select[name=eventEdHH]").attr("readonly", true);
+				$("#moreBetterForm select[name=eventEdHH]").attr("disabled", true);
+				$("#moreBetterForm select[name=eventEdMM]").attr("readonly", true);
+				$("#moreBetterForm select[name=eventEdMM]").attr("disabled", true);
+				$("#moreBetterForm input:radio[name='sectionGb']").attr('readonly', true);		// 할인구간
+				$("#moreBetterForm input:radio[name='sectionGb']").prop('disabled', true);
+				$("#moreBetterForm input:radio[name='sectionGb']").parent().prop('disabled', true);
+				$("#moreBetterForm input:radio[name='dcWay']").attr('readonly', true);		// 할인구분
+				$("#moreBetterForm input:radio[name='dcWay']").prop('disabled', true);
+				$("#moreBetterForm input:radio[name='dcWay']").parent().prop('disabled', true);
+			}
 		}
 
 		// 구분 -> 대기로 체크
@@ -777,11 +798,15 @@
 
 		var multiApplyGoods = [];
 		$.each(allApplyGoodsData, function(agIdx, agItem) {
+			var dupCnt = 0;
 			$.each(allDefaultGoodsData, function(idx, item) {
-				if(agItem.goodsCd != item.goodsCd){
-					multiApplyGoods.push(agItem.goodsCd);
+				if(agItem.goodsCd == item.goodsCd){
+					dupCnt++;
 				}
 			});
+			if(dupCnt==0){
+				multiApplyGoods.push(agItem.goodsCd);
+			}
 		});
 
 		var multiExceptGoods = [];
@@ -815,7 +840,7 @@
 		};
 
 		var jsonData = JSON.stringify(data);
-// console.log(jsonData);
+console.log(jsonData);
 		gagajf.ajaxJsonSubmit($('#moreBetterForm').prop('action'), jsonData, fnMorebetterSaveCollback);
 	});
 
@@ -1008,7 +1033,7 @@
         gridOptionsFGBrandList.api.updateRowData({remove:gagaAgGrid.selectedRowData(gridOptionsFGBrandList)});
     });
 	// 기준상품 선택삭제 버튼 클릭시
-	$('#moreBetterForm #btnAddDefaultGoods').on('click', function() {
+	$('#moreBetterForm #btnDeleteDefaultGoods').on('click', function() {
 		gridOptionsDefaultGoodsList.api.updateRowData({remove:gagaAgGrid.selectedRowData(gridOptionsDefaultGoodsList)});
 	});
     // 적용상품 선택삭제 버튼 클릭시
@@ -1190,6 +1215,11 @@
 			return false;
 		}
 
+		// 기본상품 1개이상 있는지 체크
+		if(!fnGoodsGbCheck()) {
+			return false;
+		}
+
 		// 공급업체+브랜드 상품조회
 		var multiSupplyCompCd = [];
 		$.each(allSupplyCompData, function(idx, item) {
@@ -1208,11 +1238,15 @@
 
 		var multiApplyGoods = [];
 		$.each(allApplyGoodsData, function(agIdx, agItem) {
+			var dupCnt = 0;
 			$.each(allDefaultGoodsData, function(idx, item) {
-				if(agItem.goodsCd != item.goodsCd){
-					multiApplyGoods.push(agItem.goodsCd);
+				if(agItem.goodsCd == item.goodsCd){
+					dupCnt++;
 				}
 			});
+			if(dupCnt==0){
+				multiApplyGoods.push(agItem.goodsCd);
+			}
 		});
 
 		var multiExceptGoods = [];
@@ -1266,6 +1300,7 @@
 						, exceptGoodsList : allExceptGoodsData
 						, burdenList : allApplyBurdenData
 						, sectionGbList : allSectionGbData
+						, defaultGoodsList : allDefaultGoodsData
 						, multiSupplyCompCd : multiSupplyCompCd
 						, multiBrand : multiBrand
 						, multiApplyGoods : multiApplyGoods
@@ -1273,7 +1308,7 @@
 						, multiDefaultGoods : multiDefaultGoods
 					}
 					var jsonData = JSON.stringify(data);
-					// console.log('jsonData::'+jsonData);
+					console.log('jsonData::'+jsonData);
 					gagajf.ajaxJsonSubmit('/marketing/morebetter/changeStat', jsonData, fnMorebetterChangeStatCollback);
 				}
 			}

+ 16 - 2
src/main/webapp/WEB-INF/views/marketing/PlanDetailPopupForm.html

@@ -139,7 +139,7 @@
 								<input type="checkbox" name="usableCustGradeArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}"/>
 							</label>
 							<label class="chkBox">
-								<input type="checkbox" name="usableCustGradeArr" value="G110_60" th:text="비회원"/>
+								<input type="checkbox" id="nonCust" name="usableCustGradeArr" value="G110_60" th:text="비회원"/>
 							</label>
 						</td>
 						<th>사용가능고객구분<em class="required" title="필수"></em></th>
@@ -545,7 +545,7 @@
 								<input type="checkbox" name="usableCustGradeArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}" checked="checked"/>
 							</label>
 							<label class="chkBox">
-								<input type="checkbox" name="usableCustGradeArr" value="G110_60" th:text="비회원" checked="checked"/>
+								<input type="checkbox" name="usableCustGradeArr"  id="nonCust" value="G110_60" th:text="비회원" checked="checked"/>
 							</label>
 						</td>
 						<th>사용가능고객구분<em class="required" title="필수"></em></th>
@@ -941,10 +941,15 @@
 			$('.custJoinDateTr').css('display' , '');
 			$('#custJoinStdt').attr('required' , true);
 			$('#custJoinEddt').attr('required' , true);
+			$('#nonCust').prop('checked', false);
+			$('#nonCust').attr('disabled','disabled');
+
 		} else {
 			$('.custJoinDateTr').css('display' , 'none');
 			$('#custJoinStdt').attr('required' , false);
 			$('#custJoinEddt').attr('required' , false);
+			$('#nonCust').prop('checked', true);
+			$('#nonCust').removeAttr('disabled');
 		}
 		
 		if(planInfo.replyLoc == "D"){
@@ -1608,10 +1613,14 @@
 			$('.custJoinDateTr').css('display' , '');
 			$('#custJoinStdt').attr('required' , true);
 			$('#custJoinEddt').attr('required' , true);
+			$('#nonCust').prop('checked', false);
+			$('#nonCust').attr('disabled', 'disabled');
 		} else {
 			$('.custJoinDateTr').css('display' , 'none');
 			$('#custJoinStdt').attr('required' , false);
 			$('#custJoinEddt').attr('required' , false);
+			$('#nonCust').prop('checked', true);
+			$('#nonCust').removeAttr('disabled');
 		}
 	}
 	
@@ -1753,6 +1762,11 @@
 				 $('.custJoinDateTr').show();
 				 $("#planUpdateForm input[name=custJoinStDay]").val(planInfo.custJoinStdt.split(' ')[0]);
 				 $("#planUpdateForm input[name=custJoinEdDay]").val(planInfo.custJoinEddt.split(' ')[0]);
+				 $('#nonCust').prop('checked', false);
+				 $('#nonCust').attr('disabled','disabled');
+			 }else{
+			 	 $('#nonCust').prop('checked', true);
+				 $('#nonCust').removeAttr('disabled');
 			 }
 			 
 			 if(planCateList.length > 0){

+ 1 - 1
src/main/webapp/WEB-INF/views/marketing/ReviewDetailForm.html

@@ -46,7 +46,7 @@
 								<dt>고객명</dt>
 								<dd class="cBk" style="width: 100px;"><span th:text="*{custNm}"></span> <strong th:text="*{'(' + custNo + ')'}"></strong></dd>
 								<dt>구매옵션</dt>
-								<dd style="width: 100px;">베이지 / 100</dd>
+								<dd th:text="*{optInfo}">베이지 / 100</dd>
 							</dl>
 							<dl>
 								<dt>고객별점</dt>

+ 21 - 10
src/main/webapp/WEB-INF/views/marketing/SocialShoppingListForm.html

@@ -383,6 +383,11 @@
 		$(formId + ' input[name=edDate]').val(edDate);
 		$('#edTimeHour').val(edTime.substring(0,2));
 	}
+
+	// 초기화 클릭 시
+	var fnReset = function (){
+		$('#searchForm')[0].reset();
+	}
 	
 	// 신규버튼  클릭 시 
 	var afreshBtn = function() {
@@ -514,6 +519,12 @@
 		{headerName: '상품타입'	         , field:'goodsType'		, width:100 , cellClass: 'text-center', hide: true},
 		{headerName: '삭제여부'				, field:'delYn'		, width:100 , cellClass: 'text-center', hide: true},
 		{headerName: '변경전 할인율'				, field:'dcBrate'		, width:100 , cellClass: 'text-center', hide: true},
+		{headerName: '노출순서'				, field:'dispOrd'		, width:100 , cellClass: 'text-center', editable: true
+			//, valueGetter: function(params) { return params.node.rowIndex + 1 }
+		},
+		{headerName: '노출순서'				, field:'ord'		, width:100 , cellClass: 'text-center', hide: true
+			, valueGetter: function(params) { return params.node.rowIndex + 1 }
+		}
 	];
 
 	var gridOptionsGoods = gagaAgGrid.getGridOptions(columnDefsSocialGoods);
@@ -642,27 +653,28 @@
 				mcxDialog.alert('소셜을 선택 해주세요.');
 				return;
 			} */
-			
+			 var count = gagaAgGrid.getTotalCount(gridOptionsGoods);
 			for (var disp = 0; disp < result.length; disp++) {
 				var goods = { socialSq : Number(socialSq) ,
 							  scgoodsSq : Number(0) ,
-							  goodsCd : result[disp].goodsCd, 
+							  goodsCd : result[disp].goodsCd,
 							  goodsNm : result[disp].goodsNm,
 							  currBprice: result[disp].currPrice,
 							  dcBrate: result[disp].dcRate,
 							  listPrice : result[disp].listPrice,
 							  sysImgNm : result[disp].sysImgNm,
 							  goodsType : result[disp].goodsType,
-							  dispOrd : disp+1
+							  dispOrd : (count+ result.length+1) - (disp+1)
 							  };
-				
-				oldGoodsList.unshift(goods);
-				
+
+				//oldGoodsList.unshift(goods);
+				gridOptionsGoods.api.updateRowData({add: [goods], addIndex: oldGoodsList.length});
+				//gagaAgGrid.addRowData(gridOptionsGoods, goods, null);
 			}
 		}
 		mcxDialog.alert('상품이 적용되었습니다.');
 		uifnPopupClose('popupGoods');
-		gridOptionsGoods.api.setRowData(oldGoodsList);
+		//gridOptionsGoods.api.setRowData(oldGoodsList);
 	}
 	
 	// 상품 삭제
@@ -741,11 +753,10 @@
 				msg = '상품코드 : ' + goods.goodsCd + '<br/>판매가와 할인율 모두 값이 존재하지않습니다.';
 				return false;
 			}
-		/* 	if (gagajf.isNull(goods.dispOrd)) {
+		 	if (gagajf.isNull(goods.dispOrd)) {
 				msg = '상품코드 : ' + goods.goodsCd + '<br/>전시순서를  입력해주세요.';
 				return false;
-			} */
-			
+			}
 			if(!gagajf.isNull(goods.currAprice)){
 				dcRate =  100 - Math.floor(Number(goods.currAprice) / Number(goods.listPrice) * 100);	//절사
 				goods.dcArate = dcRate;

+ 2 - 2
src/main/webapp/WEB-INF/views/order/ExchangeRequestForm.html

@@ -42,7 +42,7 @@
 						<!-- <button type="button" class="btn btn-success" th:if="${chgStat == 'G685_20' or chgStat == 'G685_21' or (recallExceptionInfo != null and (chgStat == 'G685_30' or chgStat == 'G685_31'))}" id="fnExchangeCancelRequestSubmit" onclick="fnExchangeCancel()">교환철회</button> -->
 						<button type="button" class="btn btn-success" th:if="${chgStat == 'G685_20' or chgStat == 'G685_21' or (chgStat == 'G685_30' and (canRequestCancelYn == 'Y' or recallExceptionInfo != null)) or (chgStat == 'G685_31' and recallExceptionInfo != null)}" id="fnExchangeCancelRequestSubmit" onclick="fnExchangeCancel()">교환철회</button>
 					</th:block>
-					<th:block th:i="${ordChgSq > 0 and (ordChgGb == 'G681_20' or ordChgGb == 'G681_40')}">
+					<th:block th:if="${ordChgSq > 0 and (ordChgGb == 'G681_20' or ordChgGb == 'G681_40')}">
 						<!-- 선발송 처리 시 교TO교 접수 불가 처리 -->
 						<button type="button" class="btn btn-success" th:unless="${ordChgGb == 'G681_20' and wdBfSendYn == 'Y'}" id="fnReturnToExchangeSubmit" onclick="fnExchange()">교환변경</button>
 					</th:block>
@@ -95,7 +95,7 @@
 				</table>
 				
 				<h4 class="chger">회수지 정보</h4>
-				<button style="float: right" type="button" class="btn btn-success" th:if="${#strings.isEmpty(ordChgGb) and ordChgSq > 0 and (chgStat == 'G685_20' or chgStat == 'G685_21')}" onclick="fnChangeChgerInfo();">회수지 수정</button>
+				<button style="float: right" type="button" class="btn btn-success" th:if="${#strings.isEmpty(ordChgGb) and ordChgSq > 0 and wdGb == 'W' and (chgStat == 'G685_20' or chgStat == 'G685_21')}" onclick="fnChangeChgerInfo();">회수지 수정</button>
 				<table class="frmStyle chger">
 					<colgroup>
 						<col style="width:160px;" />

+ 2 - 2
src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -72,10 +72,10 @@
 							<td th:text="${orderInfo[0].ordNm}"></td>
 							<td>
 								<th:block th:if="${orderInfo[0].custNo} > 0">
-									<a href="script:void(0)" class="custDetailPop" th:attr="custNo=${orderInfo[0].custNo}"><th:block th:text="${orderInfo[0].custNo}"></a>
+									<a href="script:void(0)" class="custDetailPop" th:attr="custNo=${orderInfo[0].custNo}"><th:block th:text="${orderInfo[0].custNo}"></th:block></a>
 								</th:block>
 								<th:block th:unless="${orderInfo[0].custNo} > 0">
-									<th:block th:text="${orderInfo[0].custNo}">
+									<th:block th:text="${orderInfo[0].custNo}"></th:block>
 								</th:block>
 							</td>
 							<td th:text="${orderInfo[0].ordNo}"></td>

+ 1 - 1
src/main/webapp/WEB-INF/views/order/OrderMemoRegistForm.html

@@ -47,7 +47,7 @@
 							<th>파일</th>
 							<td><div class="uFile">
 								<input id="imageFile" name="imageFile" type="file" class="uFileInput"/>
-								<label for="imageFile" class="uFileLabel" th:text="${#strings.isEmpty(orderMemo.sysFileNm) ? '파일선택' : orderMemo.sysFileNm}">파일선택</label>
+								<label for="imageFile" class="uFileLabel" th:text="${mode == 'U' and orderMemo.sysFileNm != null and orderMemo.sysFileNm != '' ? orderMemo.sysFileNm : '파일선택'}">파일선택</label>
 								<input type="hidden" name="orgFileNm"/>
 								<input type="hidden" name="sysFileNm"/>
 							</div>

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

@@ -152,7 +152,7 @@
 	var columnDefs = [
 		{headerName: "반품예외처리번호",		field: "recallExceptionNo", width: 50,	cellClass: 'text-center', hide: true},
 		//{headerName: "No.",				field: "rnum",				width: 50,	cellClass: 'text-center'},
-		{headerName: "",			field: "recallStatNm",		width: 100,	cellClass: 'text-center',
+		{headerName: "",			field: "recall",		width: 100,	cellClass: 'text-center',
 			/*
 			rowSpan: params => params.data.rowspanRank === 1 ? params.data.rowspanCnt : 1,  
 		    cellClassRules: {
@@ -162,7 +162,7 @@
 				var btnText = '';
 				if(params.data.recallStat == 'P') {
 					if(params.data.chgStat == 'G685_21' || params.data.chgStat == 'G685_51'){
-						btnText= '추가결제대기';
+						btnText= '';
 					} else {
 						btnText= '<a href="javascript:void(0);"  class="btn btn-success btn-ssm">완료</a>';
 					}
@@ -251,7 +251,7 @@
 		{headerName: "WMS메시지",		field: "adminMemo",			width: 300,	cellClass: 'text-left'},
 		{headerName: "반품교환사유",		field: "chgReasonNm",		width: 150,	cellClass: 'text-left'},
 		{headerName: "네이버 주문형",		field: "payGb",				width: 100,	cellClass: 'text-center'},
-		{headerName: "반품/사유변경",	field: "chgReason",			width: 120,	cellClass: 'text-center',
+		{headerName: "반품/사유변경",	field: "chgReason2",			width: 120,	cellClass: 'text-center',
 			/*
 			rowSpan: params => params.data.rowspanRank === 1 ? params.data.rowspanCnt : 1,  
 			    cellClassRules: {

+ 5 - 6
src/main/webapp/WEB-INF/views/withdraw/WmsWithdrawListForm.html

@@ -158,14 +158,13 @@
 		{headerName: "주문상세번호",		field: "orderdtlno",		width: 100,	cellClass: 'text-center'},
 		{headerName: "상태",				field: "statuscd",			width: 100,	cellClass: 'text-center'},
 		{headerName: "반품구분",			field: "recalltypecdnm",	width: 80,	cellClass: 'text-center'},
-		{headerName: "수취인",			field: "receiver",			width: 100,	cellClass: 'text-center'},
-		{headerName: "수취인전화번호",	field: "receivertelnum",	width: 120,	cellClass: 'text-center'},
-		{headerName: "수취인휴대폰번호",	field: "receivercellnum",	width: 120,	cellClass: 'text-center'},
+		{headerName: "수취인",			field: "maskingReceiver",			width: 100,	cellClass: 'text-center'},
+		{headerName: "수취인휴대폰번호",	field: "maskingReceivercellnum",	width: 120,	cellClass: 'text-center'},
 		{headerName: "우편번호",			field: "deliverypostalcode",width: 80,	cellClass: 'text-center'},
 		{headerName: "기본주소",			field: "deliveryaddr1",		width: 300,	cellClass: 'text-left'},
-		{headerName: "상세주소",			field: "deliveryaddr2",		width: 200,	cellClass: 'text-left'},
-		{headerName: "주문자",			field: "customername",		width: 100,	cellClass: 'text-center'},
-		{headerName: "ID",				field: "loginid",			width: 100,	cellClass: 'text-center'},
+		{headerName: "상세주소",			field: "maskingDeliveryaddr2",		width: 200,	cellClass: 'text-left'},
+		{headerName: "주문자",			field: "maskingCustomername",		width: 100,	cellClass: 'text-center'},
+		{headerName: "ID",				field: "maskingLoginid",			width: 100,	cellClass: 'text-center'},
 		{headerName: "CS메모",			field: "csmemo",			width: 250,	cellClass: 'text-left'},	
 		{headerName: "CS메모 변경일",		field: "datecsmemoupdated",	width: 120,	cellClass: 'text-center'},
 		{headerName: "WMS메모",			field: "wmsmemo",			width: 250,	cellClass: 'text-left'},