Jelajahi Sumber

쿠폰 임시커밋

bin2107 5 tahun lalu
induk
melakukan
36b268dfe4

+ 19 - 17
src/main/java/com/style24/persistence/mybatis/shop/TsaMorebetter.xml

@@ -179,30 +179,31 @@
 	<select id="getMorebetterApplyGoodsList" parameterType="MoreBetterGoods" resultType="MoreBetterGoods">
 		/* TsaMorebetter.getMorebetterApplyGoodsList */
 		SELECT 	 A.TMTB_GOODS_SQ
-				 , A.TMTB_SQ
-				 , B.TMTB_APPLY_GOODS_SQ
-				 , A.GOODS_GB
-				 , A.TARGET_GB
-				 , A.TARGET_VAL
-				 , A.TARGET_VAL AS GOODS_CD
-				 , (SELECT  GOODS_NM
-					FROM  TB_GOODS
-					WHERE  GOODS_CD = A.TARGET_VAL) AS GOODS_NM
-				 , A.DEL_YN
-				 , A.REG_NO
-				 , A.REG_DT
-				 , A.UPD_NO
-				 , A.UPD_DT
+		       , A.TMTB_SQ
+		       , B.TMTB_APPLY_GOODS_SQ
+		       , A.GOODS_GB
+		       , A.TARGET_GB
+		       , A.TARGET_VAL
+		       , A.TARGET_VAL AS GOODS_CD
+		       , (SELECT  GOODS_NM
+		      	FROM  TB_GOODS
+		      	WHERE  GOODS_CD = A.TARGET_VAL) AS GOODS_NM
+		       , A.DEL_YN
+		       , A.REG_NO
+		       , A.REG_DT
+		       , A.UPD_NO
+		       , A.UPD_DT
 		FROM 		TB_TMTB_GOODS A
 		INNER JOIN 	TB_TMTB_APPLY_GOODS B
-				ON 	A.TMTB_SQ = B.TMTB_SQ
-				AND A.GOODS_GB = B.GOODS_GB
-				AND A.TARGET_VAL = B.GOODS_CD
+		      ON 	A.TMTB_SQ = B.TMTB_SQ
+		      AND A.GOODS_GB = B.GOODS_GB
+		      AND A.TARGET_VAL = B.GOODS_CD
 		WHERE 1=1
 		  AND A.TMTB_SQ = #{tmtbSq}
 		  AND A.TARGET_GB = 'G260_10'
 		  AND A.GOODS_GB IN ('G800_10','G800_20')
  		  AND A.DEL_YN = 'N'
+		GROUP BY A.TMTB_GOODS_SQ
 	</select>
 
 	<select id="getMorebetterExceptGoodsList" parameterType="MoreBetterGoods" resultType="MoreBetterGoods">
@@ -232,6 +233,7 @@
 		  AND A.TARGET_GB = 'G260_10'
 		  AND A.GOODS_GB IN ('G800_30')
 		  AND A.DEL_YN = 'N'
+		GROUP BY A.TMTB_GOODS_SQ
 	</select>
 
 	<select id="getMorebetterBurdenList" parameterType="Integer" resultType="MoreBetterBurden">

+ 552 - 74
src/main/webapp/WEB-INF/views/marketing/CouponPopupForm.html

@@ -14,7 +14,7 @@
  * 1.0  2020.12.23   xyzp1539       최초 작성
  *******************************************************************************
  -->
-<div class="modalPopup" data-width="1200">
+<div class="modalPopup" data-width="1500">
 	<div class="panelStyle" style="height: 750px;">
 		<div class="panelTitle">
 			<h2 th:text="${'쿠폰 ' + (mode == 'N' ? '등록' : '수정')}">쿠폰등록</h2>
@@ -60,14 +60,27 @@
 										</tr>
 										<tr>
 											<th>쿠폰명<em class="required" title="필수"></em></th>
-											<td colspan="5">
-												<input type="text" name="cpnNm" id="cpnNm" style="width: 70%;" required="required" data-valid-name="쿠폰명">
+											<td>
+												<input type="text" name="cpnNm" id="cpnNm" required="required" data-valid-name="쿠폰명">
+											</td>
+											<th>사이트<em class="required" title="필수"></em></th>
+											<td>
+												<select name="siteCd" id="siteCd" required="required" data-valid-name="사이트">
+													<option th:if="${siteCdList}" th:each="oneData , status : ${siteCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+												</select>
 											</td>
 										</tr>
 										<tr>
 											<th>쿠폰설명</th>
-											<td colspan="5">
-												<input type="text" name="cpnDesc" id="cpnDesc" style="width: 70%;" data-valid-name="쿠폰설명">
+											<td>
+												<input type="text" name="cpnDesc" id="cpnDesc" data-valid-name="쿠폰설명">
+											</td>
+											<th>만료알림여부<em class="required" title="필수"></em></th>
+											<td>
+												<select name="endAlimYn" id="endAlimYn" required="required" data-valid-name="만료알림여부">
+													<option value="Y">Y</option>
+													<option value="N" selected="selected">N</option>
+												</select>
 											</td>
 										</tr>
 										<tr>
@@ -104,33 +117,18 @@
 											</td>
 										</tr>
 										<tr>
-											<th>사용가능고객구분<em class="required" title="필수"></em></th>
-											<td>
+											<th class="usableCustGbArea">사용가능고객구분<em class="required" title="필수"></em></th>
+											<td class="usableCustGbArea">
 												<label class="chkBox" th:if="${usableCustGbList}" th:each="oneData, status : ${usableCustGbList}">
 													<input type="checkbox" name="usableCustGbArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}" checked="checked"/>
 												</label>
 											</td>
-											<th>사이트<em class="required" title="필수"></em></th>
-											<td>
-												<select name="siteCd" id="siteCd" required="required" data-valid-name="사이트">
-													<option th:if="${siteCdList}" th:each="oneData , status : ${siteCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-												</select>
-											</td>
-										</tr>
-										<tr>
-											<th>사용고객등급구분<em class="required" title="필수"></em></th>
-											<td>
+											<th class="usableCustGradeArea">사용고객등급구분<em class="required" title="필수"></em></th>
+											<td class="usableCustGradeArea">
 												<label class="chkBox" th:if="${usableCustGradeList}" th:each="oneData, status : ${usableCustGradeList}">
 													<input type="checkbox" name="usableCustGradeArr" th:value="${oneData.cd}" th:text="${oneData.cdNm}" checked="checked"/>
 												</label>
 											</td>
-											<th>만료알림여부<em class="required" title="필수"></em></th>
-											<td>
-												<select name="endAlimYn" id="endAlimYn" required="required" data-valid-name="만료알림여부">
-													<option value="Y">Y</option>
-													<option value="N" selected="selected">N</option>
-												</select>
-											</td>
 										</tr>
 										<tr>
 											<th>할인방식<em class="required" title="필수"></em></th>
@@ -138,35 +136,35 @@
 												<input type="hidden" name="dcWay" id="dcWay" required="required" data-valid-name="할인방식">
 												<label class="rdoBtn" th:if="${dcWayList}" th:each="oneData, status : ${dcWayList}"> <input type="radio" name="rdoDcWay"  th:text="${oneData.cdNm}" th:value="${oneData.cd}"/></label>
 											</td>
-											<th>구매제한금액<em class="required" title="필수"></em></th>
-											<td>
-												<input type="text" id="buyLimitAmt" name="buyLimitAmt" class="w200" required="required" value="0" style="text-align: right;" data-valid-name="구매제한금액" data-valid-type="numeric">원
-											</td>
-										</tr>
-										<tr>
 											<th>할인값(PC)<em class="required" title="필수"></em></th>
 											<td>
 												<input type="text" class="w200" id="dcPval" name="dcPval" value="0" required="required" data-valid-name="할인값(PC)" data-valid-type="numeric" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);"><span id="dcPvalSpan">원</span>
 												<button type="button" class="btn btn-default btn-lg" id="applySameValueBtn">동일적용</button>
 											</td>
+										</tr>
+										<tr>
 											<th>할인값(모바일웹)<em class="required" title="필수"></em></th>
 											<td>
 												<input type="text" class="w200" id="dcMval" name="dcMval" value="0" required="required" data-valid-name="할인값(모바일웹)" data-valid-type="numeric" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);"><span id="dcMvalSpan">원</span>
 											</td>
-										</tr>
-										<tr>
 											<th>할인값(모바일앱)<em class="required" title="필수"></em></th>
 											<td>
 												<input type="text" class="w200" id="dcAval" name="dcAval" value="0" required="required" data-valid-name="할인값(모바일앱)" data-valid-type="numeric" style="text-align: right" onkeyup="fnDcValOnkeyUp(this);"><span id="dcAvalSpan">원</span>
 											</td>
+										</tr>
+										<tr>
+											<th class="buyLimitAmtArea">구매제한금액<em class="required" title="필수"></em></th>
+											<td class="buyLimitAmtArea">
+												<input type="text" id="buyLimitAmt" name="buyLimitAmt" class="w200" required="required" value="0" style="text-align: right;" data-valid-name="구매제한금액" data-valid-type="numeric">원
+											</td>
 											<th class="maxDcAmtArea">최대할인금액<em class="required" title="필수"></em></th>
 											<td class="maxDcAmtArea">
 												<input type="text" class="w200" id="maxDcAmt" name="maxDcAmt" value="0" required="required" data-valid-name="최대할인금액" data-valid-type="numeric" style="text-align: right;"><span id="maxDcAmtSpan">원</span>
 											</td>
 										</tr>
 										<tr>
-											<th>다운로드시작일시<em class="required" title="필수"></em></th>
-											<td>
+											<th class="downStdtArea">다운로드시작일시<em class="required" title="필수"></em></th>
+											<td class="downStdtArea">
 												<input type="hidden" name="downStdt" id="downStdt" required="required" data-valid-name="다운로드시작일시">
 												<input type="text" class="schDate w100" name="downStDay" id="downStDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
 												<select name="downStHH" id="downStHH">
@@ -175,8 +173,8 @@
 												<select name="downStMM" id="downStMM">
 													<option th:if="${mmList}" th:each="oneData , status : ${mmList}" th:text="${oneData.cdNm}" th:value="${oneData.cd}"></option>
 												</select>
-											<th>다운로드종료일시<em class="required" title="필수"></em></th>
-											<td>
+											<th class="downEddtArea">다운로드종료일시<em class="required" title="필수"></em></th>
+											<td class="downEddtArea">
 												<input type="hidden" id="downEddt" name="downEddt" required="required" data-valid-name="다운로드종료일시">
 												<input type="text" class="schDate w100" name="downEdDay" id="downEdDay" maxlength="10" th:value="${#calendars.format(#calendars.createNow(), 'yyyy-MM-dd')}"/>
 												<select name="downEdHH" id="downEdHH" onclick="fnChangeEdHH(this);">
@@ -189,26 +187,24 @@
 											</td>
 										</tr>
 										<tr>
-											<th>기간/일수구분<em class="required" title="필수"></em></th>
-											<td>
+											<th class="pdGbArea">기간/일수구분<em class="required" title="필수"></em></th>
+											<td class="pdGbArea">
 												<select name="pdGb" id="pdGb" onchange="pdGbChange(this)" required="required" data-valid-name="기간/일수구분">
 													<option value="P">기간</option>
 													<option value="D">일수</option>
 												</select>
 											</td>
-											<th>적용범위<em class="required" title="필수"></em></th>
-											<td>
-												<input type="hidden" name="applyScope" id="applyScope" required="required" data-valid-name="적용범위">
-												<label class="rdoBtn"> <input type="radio" name="rdoApplyScope" value="A"/>전체</label>
-												<label class="rdoBtn"> <input type="radio" name="rdoApplyScope" value="I"/>개별</label>
-											</td>
-										</tr>
-										<tr class="availDayTr" style="display: none;">
-											<th>유효기간일수<em class="required" title="필수"></em></th>
-											<td>
+											<th class="availDaysArea">유효기간일수<em class="required" title="필수"></em></th>
+											<td class="availDaysArea">
 												<input type="text" name="availDays" id="availDays" class="w200" data-valid-name="유효기간일수">
 											</td>
 										</tr>
+<!--										<tr class="availDayTr" style="display: none;">-->
+<!--											<th>유효기간일수<em class="required" title="필수"></em></th>-->
+<!--											<td>-->
+<!--												<input type="text" name="availDays" id="availDays" class="w200" data-valid-name="유효기간일수">-->
+<!--											</td>-->
+<!--										</tr>-->
 										<tr>
 											<th class="availDateTr">유효기간시작일시<em class="required" title="필수"></em></th>
 											<td class="availDateTr">
@@ -316,8 +312,8 @@
 											<td class="dcCdCheck2">
 												<input type="text" class="w200" name="onePubQty" id="onePubQty" value="1" required="required" data-valid-name="1회발행수량" data-valid-type="numeric" style="text-align: right;">개
 											</td>
-											<th>다운로드가능여부<em class="required" title="필수"></em></th>
-											<td>
+											<th class="downAblArea">다운로드가능여부<em class="required" title="필수"></em></th>
+											<td class="downAblArea">
 												<select name="downAblYn" id="downAblYn" required="required" data-valid-name="다운로드가능여부">
 													<option value="Y">Y</option>
 													<option value="N" selected="selected">N</option>
@@ -347,8 +343,8 @@
 											</td>
 										</tr>
 										<tr>
-											<th>제휴채널</th>
-											<td colspan="1">
+											<th class="linkAfArea">제휴채널</th>
+											<td colspan="1" class="linkAfArea">
 												<!-- 수정시 프로모션명 입력 : before -->
 												<div class="padding10"	style="display: inline-block; width: 100%;">
 													<!--<span>공급업체 설정</span>-->
@@ -404,6 +400,14 @@
 											</colgroup>
 											<tbody>
 												<tr>
+													<th>적용범위<em class="required" title="필수"></em></th>
+													<td>
+														<input type="hidden" name="applyScope" id="applyScope" required="required" data-valid-name="적용범위">
+														<label class="rdoBtn"> <input type="radio" name="rdoApplyScope" value="A"/>전체</label>
+														<label class="rdoBtn"> <input type="radio" name="rdoApplyScope" value="I"/>개별</label>
+													</td>
+												</tr>
+												<tr class="supplyTrArea">
 													<th>공급처</th>
 													<td>
 														<div class="padding10 inner-tb-solid">
@@ -414,7 +418,7 @@
 														</div>
 													</td>
 												</tr>
-												<tr>
+												<tr class="brandTrArea">
 													<th>브랜드</th>
 													<td>
 														<div class="padding10 inner-tb-solid">
@@ -425,7 +429,7 @@
 														</div>
 													</td>
 												</tr>
-												<tr>
+												<tr class="categoryTrArea">
 													<th>카테고리</th>
 													<td>
 														<div class="padding10 inner-tb-solid">
@@ -436,7 +440,7 @@
 														</div>
 													</td>
 												</tr>
-												<tr>
+												<tr class="goodsTrArea">
 													<th>적용상품</th>
 													<td>
 														<div class="padding10 inner-tb-solid">
@@ -451,7 +455,7 @@
 										</table>
 									</div>
 								</div>
-								<div class="inner-panelContent">
+								<div class="inner-panelContent exceptArea">
 									<div class="panelContent">
 										<div class="panelBar">
 											<h4>적용 대상 상품 등록</h4>
@@ -587,8 +591,21 @@
 			// valueParser: function (params) { return gagaAgGrid.lookupKey(ibSupplyComList, params.newValue);}
 		} ,
 		{ headerName: "입점업체명"  , field: "supplyCompNm" , width: 120 , cellClass: 'text-center'},
-		{ headerName: "쿠폰분담율(%)", field:"burdenRate" , width:150, cellClass: "text-center" ,
-		  cellEditorParams: { maxlength: 10, required: true }
+		{ headerName: "쿠폰분담율(%)", field:"burdenRate" , width:150, cellClass: "text-center" , required: true
+			,valueFormatter: function(params) {
+				if(params.value && params.value > 0) {
+					if(params.value > 100){
+						mcxDialog.alert('할인율은 100이하로 설정해주세요.');
+						params.data.burdenRate = '0';
+						return '0';
+					}
+					return params.value.addComma();
+				} else {
+					return '0';
+				}
+			},
+			cellEditorParams: { maxlength: 4, validType: 'numeric'}
+			// cellEditorParams: { maxlength: 10, required: true }
 		} ,
 		/*{ headerName: "삭제여부" , field: "delYn"  , width:150, cellClass: "text-center" ,
 			cellEditor: 'agRichSelectCellEditor',
@@ -865,6 +882,7 @@
 			$("#CouponForm input[id=chkBoxTotPubQty]").prop("disabled", true);
 			$("#CouponForm input[id=totPubLimitQty]").prop("disabled", true);
 			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent("label").addClass("checked");
+			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('checked', true);
 			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").attr('readonly', true);
 			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('disabled', true);
 			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent().prop('disabled', true);
@@ -875,6 +893,7 @@
 			$("#CouponForm input[id=chkBoxTotPubQty]").prop("disabled", false);
 			$("#CouponForm input[id=totPubLimitQty]").prop("disabled", false);
 			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent("label").removeClass("checked");
+			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('checked', false);
 			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").attr('readonly', false);
 			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").prop('disabled', false);
 			$("#CouponForm input[id=chkNoLimitTotPubLimitQty]").parent().prop('disabled', false);
@@ -904,14 +923,13 @@
 
 	// 총발행 제한수량 -> 제한없음 처리
 	$("#CouponForm #chkBoxTotPubQty").bind('click', function (){
-
 		var chkBox= document.getElementById('chkNoLimitTotPubLimitQty').checked;
 		if(chkBox){ //true 체크가 되어있었는데 해제됐어 -> 값0 inputbox disabled 해제
 			$("#CouponForm #totPubLimitQty").val(0);
-			$("#CouponForm input[id=totPubLimitQty]").prop("disabled", false);
+			$("#CouponForm input[id=totPubLimitQty]").prop("disabled", true);
 		}else{	//false 체크가 안되어있었는데 체크됐어 -> 값0 inputbox disabled
 			$("#CouponForm #totPubLimitQty").val(0);
-			$("#CouponForm input[id=totPubLimitQty]").prop("disabled", true);
+			$("#CouponForm input[id=totPubLimitQty]").prop("disabled", false);
 		}
 	});
 
@@ -920,10 +938,10 @@
 		var chkBox= document.getElementById('chkNoLimitCustPubLimitQty').checked;
 		if(chkBox){ //true 체크가 되어있었는데 해제됐어 -> 값0 inputbox disabled 해제
 			$("#CouponForm #custPubLimitQty").val(0);
-			$("#CouponForm input[id=custPubLimitQty]").prop("disabled", false);
+			$("#CouponForm input[id=custPubLimitQty]").prop("disabled", true);
 		}else{	//false 체크가 안되어있었는데 체크됐어 -> 값0 inputbox disabled
 			$("#CouponForm #custPubLimitQty").val(0);
-			$("#CouponForm input[id=custPubLimitQty]").prop("disabled", true);
+			$("#CouponForm input[id=custPubLimitQty]").prop("disabled", false);
 		}
 	});
 
@@ -949,8 +967,374 @@
 		$("#CouponForm input[name=dcAval]").val(cdPval);
 	});
 
-	// 쿠폰 등록 버튼 클릭시
+	function checkValidation2(){
+		// 쿠폰명 체크
+		var chkCpnNm = $('#CouponForm input[name=cpnNm]').val();
+		if(gagajf.isNull(chkCpnNm)){
+			mcxDialog.alert("쿠폰명을 입력해주세요.");
+			$('#CouponForm input[name=cpnNm]').focus();
+			return false;
+		}
+
+		// 할인금액, 할인율 체크
+		var chkDcPval = $('#CouponForm input[name=dcPval]').val();
+		var chkDcMval = $('#CouponForm input[name=dcMval]').val();
+		var chkDcAval = $('#CouponForm input[name=dcAval]').val();
+		if(gagajf.isNull(chkDcPval)){
+			mcxDialog.alert("할인값(PC)을 입력해주세요.");
+			$('#CouponForm input[name=dcPval]').focus();
+			return false;
+		}
+		if(gagajf.isNull(chkDcMval)){
+			mcxDialog.alert("할인값(모바일웹)을 입력해주세요.");
+			$('#CouponForm input[name=dcMval]').focus();
+			return false;
+		}
+		if(gagajf.isNull(chkDcAval)){
+			mcxDialog.alert("할인값(모바일앱)을 입력해주세요.");
+			$('#CouponForm input[name=dcAval]').focus();
+			return false;
+		}
+
+		return true;
+	}
+
+	// 즉시할인쿠폰일때 데이터 validation 체크
+	var checkValidation10 = function (){
+		var stdt = $('#CouponForm #availStdt').val();
+		var eddt = $('#CouponForm #availEddt').val();
+		if(gagajf.isNull(stdt)){
+			mcxDialog.alert("유효기간 시작일시를 입력해주세요.");
+			return false;
+		}
+		if(gagajf.isNull(eddt)){
+			mcxDialog.alert("유효기간 종료일시를 입력해주세요.");
+			return false;
+		}
+		if(stdt>eddt){
+			mcxDialog.alert("시작일시가 종료일시보다 클 수 없습니다.");
+			return false;
+		}
+
+		return true;
+	}
+
+	var checkValidation20 = function (cpnType){
+		// 사용가능고객구분 체크박스 체크
+		var usableCustGbCnt = $('#CouponForm input:checkbox[name=usableCustGbArr]:checked').length;
+		if(usableCustGbCnt<1){
+			mcxDialog.alert("사용가능 고객구분을 체크해주세요.");
+			$('#CouponForm input:checkbox[name=usableCustGbArr]').focus();
+			return false;
+		}
+		// 사용가능고객등급 체크박스 체크
+		var usableCustGradeCnt = $('#CouponForm input:checkbox[name=usableCustGradeArr]:checked').length;
+		console.log('usableCustGradeCnt>>'+usableCustGradeCnt);
+		if(usableCustGradeCnt<1){
+			mcxDialog.alert("사용가능 고객등급을 체크해주세요.");
+			$('#CouponForm input:checkbox[name=usableCustGradeArr]').focus();
+			return false;
+		}
+
+		if(cpnType == 'G230_20'){
+			// 결제수단 체크박스 체크
+			var payTypeCnt = $('#CouponForm input:checkbox[name=payTypeArr]:checked').length;
+			console.log('payTypeCnt>>'+payTypeCnt);
+			if(payTypeCnt<1){
+				mcxDialog.alert("결제수단을 체크해주세요.");
+				$('#CouponForm input:checkbox[name=payTypeArr]').focus();
+				return false;
+			}
+		}
+
+		//신규가입 지급한다면 validation 체크
+		if( $('#newCustYn option:selected').val() == "Y" ){
+			var fromDate = $('#CouponForm input[name=custJoinStdt]').val();
+			var toDate = $('#CouponForm input[name=custJoinEddt]').val();
+
+			if (gagajf.isNull(fromDate) || gagajf.isNull(toDate)) {
+				mcxDialog.alertC("신규가입기간 시작일자와 종료일자를 입력하세요.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('#CouponForm input[name=custJoinStdt]').focus();
+					}
+				});
+				return false;
+			}
+
+			if (fromDate > toDate) {
+				mcxDialog.alertC("등록 시작일자는 종료일자 보다 클 수 없습니다.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('#CouponForm input[name=custJoinEddt]').focus();
+					}
+				});
+				return false;
+			}
+		}
+
+		// 첫구매 지급하면 validation 체크
+		if( $('#firstOrdYn option:selected').val() == "Y" ){
+			var fromDate = $('#CouponForm input[name=buyStdt]').val();
+			var toDate = $('#CouponForm input[name=buyEddt]').val();
+
+			if (gagajf.isNull(fromDate) || gagajf.isNull(toDate)) {
+				mcxDialog.alertC("신규가입기간 시작일자와 종료일자를 입력하세요.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('#CouponForm input[name=buyStdt]').focus();
+					}
+				});
+				return false;
+			}
+
+			if (fromDate > toDate) {
+				mcxDialog.alertC("등록 시작일자는 종료일자 보다 클 수 없습니다.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('#CouponForm input[name=buyEddt]').focus();
+					}
+				});
+				return false;
+			}
+		}
+
+		// 할인율 validation 체크 (100을 넘길수없음)
+		if($('#dcWay').val() == 'G240_11') {
+			if($('#dcPval').val() > 100) {
+				mcxDialog.alert('PC할인율은 100을 초과할수없습니다.');
+				$('#dcPval').focus();
+				return false;
+			} else if( $('#dcMval').val() > 100) {
+				mcxDialog.alert('모바일(웹)할인율은 100을 초과할수없습니다.');
+				$('#dcMval').focus();
+				return false;
+			}  else if( $('#dcAval').val() > 100) {
+				mcxDialog.alert('모바일(앱)할인율은 100을 초과할수없습니다.');
+				$('#dcAval').focus();
+				return false;
+			}
+		}
+
+		// 할인쿠폰 유형에 따른 총 발행수량 수정 (주문서 쿠폰이고 난수쿠폰일 경우)
+		if($('#CouponForm #cpnType').val() == "G230_20" && $('#CouponForm input:radio[name="dcCdGb"]:checked').val() == "G233_20") {
+			if($("#CouponForm input[name=randomCpnQty]").val() == "" || $("#CouponForm input[name=randomCpnQty]").val() < 1) {
+				mcxDialog.alert('쿠폰의 발급 수량을 입력해주세요.');
+				$("#CouponForm input[name=randomCpnQty]").focus();
+				return false;
+			}
+			if($("#CouponForm input[name=randomCpnQty]").val() > 10000) {
+				mcxDialog.alert('쿠폰의 발급 수량은 10000장을 초과할 수 없습니다.');
+				$("#CouponForm input[name=randomCpnQty]").focus();
+				return false;
+			}
+
+		} else if ($('#CouponForm #cpnType').val() == "G230_20" && $('#CouponForm input:radio[name="dcCdGb"]:checked').val() == "G233_10") {		// 주문서 쿠폰이고 시리얼 유형일 경우
+			if($("#CouponForm input[name=serialCpnNm]").val().length > 10) {
+				mcxDialog.alert('시리얼쿠폰키워드는 10글자를 넘을 수 없습니다.');
+				$("#CouponForm input[name=serialCpnNm]").focus();
+				return false;
+			}
+			if($("#CouponForm input[name=serialCpnQty]").val() == "" || $("#CouponForm input[name=serialCpnQty]").val() < 1) {
+				mcxDialog.alert('쿠폰의 발급 수량을 입력해주세요.');
+				$("#CouponForm input[name=serialCpnQty]").focus();
+				return false;
+			}
+			if($("#CouponForm input[name=randomCpnQty]").val() > 10000) {
+				mcxDialog.alert('쿠폰의 발급 수량은 10000장을 초과할 수 없습니다.');
+				$("#CouponForm input[name=serialCpnQty]").focus();
+				return false;
+			}
+		} else if ($('#CouponForm #cpnType').val() == "G230_11" && $("#limitedTimeCpnYn").val() == "Y") {	// 상품쿠폰이고 선착순쿠폰 체크되어 있을때
+			let cpnData = gagaAgGrid.getAllRowData(limitedTimeCpnGridOptions);
+			if(cpnData.length < 1){
+				mcxDialog.alert("선착순 쿠폰을 설정해주세요.");
+				return false;
+			}else{
+				for(i=0; i<cpnData.length; i++){
+
+					if(gagajf.isNull(cpnData[i].limitCpnNm)){
+						mcxDialog.alert(i+1 + "번 행의 선착순 쿠폰명을 입력해주세요.");
+						return false;
+					}
+
+					if(gagajf.isNull(cpnData[i].downStdt)){
+						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드시작일을 입력해주세요.");
+						return false;
+					}
+
+					if(gagajf.isNull(cpnData[i].downEddt)){
+						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드종료일을 입력해주세요.");
+						return false;
+					}else{
+						var tempEddt = cpnData[i].downEddt.replace(/[^0-9]/g, '');
+						if(tempEddt.substr(8,14) == '000000'){
+							tempEddt = tempEddt.substr(0,8)+'235959';
+							cpnData[i].downEddt = tempEddt;
+						}
+					}
+
+					if(gagajf.isNull(cpnData[i].downLimitQty)){
+						mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드가능수량을 입력해주세요.");
+						return false;
+					}else{
+						if(cpnData[i].downLimitQty<1){
+							mcxDialog.alert(i+1 + "번 행의 선착순쿠폰 다운로드가능수량을 1개이상 입력해주세요.");
+							return false;
+						}
+					}
+				}
+				limitedTimeCpnGridOptions.api.setRowData(cpnData);
+			}
+		}
+
+		var chkLimitCpnCnt = document.getElementById('chkNoLimitTotPubLimitQty').checked;
+		if(!chkLimitCpnCnt){
+			let cnt = $("#CouponForm").find("[name=totPubLimitQty]").val();
+			if(cnt < 1){
+				mcxDialog.alert("총발행 제한수량은 0보다 커야합니다.");
+				return false;
+			}
+		}
+
+		var chkCustLimitCpnCnt = document.getElementById('chkNoLimitCustPubLimitQty').checked;
+		if(!chkCustLimitCpnCnt){
+			let cnt = $("#CouponForm").find("[name=custPubLimitQty]").val();
+			if(cnt < 1){
+				mcxDialog.alert("1인당 발행 제한수량은 0보다 커야합니다.");
+				return false;
+			}
+		}
+
+		var chkIssueCnt = $("#CouponForm").find("[name=onePubQty]").val();
+		if(chkIssueCnt < 1){
+			mcxDialog.alert("1회발행 제한수량은 0보다 커야합니다.");
+			return false;
+		}
+
+		return true;
+	}
+
+	// 분담율 합 체크
+	var fnBurdenValueCheck = function (){
+		let burdenData = gagaAgGrid.getAllRowData(inComGridOptions);
+		let totalValue = 0;
+		$.each(burdenData, function(idx, item) {
+			totalValue += parseInt(item.burdenRate);
+		});
+
+		if(totalValue > 100) {
+			mcxDialog.alert("업체분담율의 합이 100을 넘을수 없습니다.");
+			return false;
+		}
+
+		return true;
+	};
+
+	// 쿠폰 등록
 	function fnCouponCreate(){
+		// 필수값들 셋팅
+		setReqValue();
+
+		// 데이터 validation 체크
+		if(!checkValidation2()) {
+			return false;
+		}
+
+		var chkCpnType = $("#CouponForm input[name=rdoCpnType]:checked").val();
+		if(chkCpnType == 'G230_10'){	// 즉시할인쿠폰일때
+			if(!checkValidation10()){
+				return false;
+			}
+		}else{
+			if(!checkValidation20(chkCpnType)){
+				return false;
+			}
+		}
+
+		// 업체분담율 토탈 100% 넘는지 체크
+		if(!fnBurdenValueCheck()) {
+			return false;
+		}
+
+		mcxDialog.confirm('저장하시겠습니까?' , {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function () {
+				var usableCustGbArr = [];
+				var chkCustGb  = $('#CouponForm input:checkbox[name=usableCustGbArr]:checked');
+				for(let i=0; i< chkCustGb.length; i++){
+					usableCustGbArr.push(chkCustGb.eq(i).val());
+				}
+
+				var usableCustGradeArr = [];
+				var chkCustGrade = $('#CouponForm input:checkbox[name=usableCustGradeArr]:checked');
+				for(let i=0; i< chkCustGrade.length; i++){
+					usableCustGradeArr.push(chkCustGrade.eq(i).val());
+				}
+
+				var payTypeArr = [];
+				var chkPayType = $('#CouponForm input:checkbox[name=payTypeArr]:checked');
+				for(let i=0; i< chkPayType.length; i++){
+					payTypeArr.push(chkPayType.eq(i).val());
+				}
+
+				var data = {
+					cpnId : $('#CouponForm input[name=cpnId]').val()
+					,cpnNm : $('#CouponForm input[name=cpnNm]').val()
+					,cpnDesc : $('#CouponForm input[name=cpnDesc]').val()
+					,siteCd : $('#CouponForm select[name=siteCd]').val()
+					// ,afLinkCd : $('#CouponForm select[name=afLinkCd]').val()
+					,cpnType : $('input:radio[name="rdoCpnType"]:checked').val()
+					,applyScope : $('input:radio[name="rdoApplyScope"]:checked').val()
+					,dcWay : $('input:radio[name="rdoDcWay"]:checked').val()
+					,dcPval : $('#CouponForm input[name=dcPval]').val().replace(',','')
+					,dcMval : $('#CouponForm input[name=dcMval]').val().replace(',','')
+					,dcAval : $('#CouponForm input[name=dcAval]').val().replace(',','')
+					,maxDcAmt : $('#CouponForm input[name=maxDcAmt]').val()
+					,pdGb : $('#CouponForm select[name=pdGb]').val()
+					,availStdt : $('#CouponForm input[name=availStdt]').val()
+					,availEddt : $('#CouponForm input[name=availEddt]').val()
+					,availDays : $('#CouponForm input[name=availDays]').val()
+					,custPubLimitQty : $('#CouponForm input[name=custPubLimitQty]').val()
+					,totPubLimitQty : $('#CouponForm input[name=totPubLimitQty]').val()
+					,onePubQtyy : $('#CouponForm input[name=onePubQtyy]').val()
+					,downStdt : $('#CouponForm input[name=downStdt]').val()
+					,downEddt : $('#CouponForm input[name=downEddt]').val()
+					,buyLimitAmt : $('#CouponForm input[name=buyLimitAmt]').val()
+					,cpnStat : $('input:radio[name="disCpnStat"]:checked').val()
+					,endAlimYn : $('#CouponForm select[name=endAlimYn]').val()
+					,firstOrdYn : $('#CouponForm select[name=firstOrdYn]').val()
+					,downAblYn : $('#CouponForm select[name=downAblYn]').val()
+					,custJoinStdt : $('#CouponForm input[name=custJoinStdt]').val()
+					,custJoinEddt : $('#CouponForm input[name=custJoinEddt]').val()
+					,buyStdt : $('#CouponForm input[name=buyStdt]').val()
+					,buyEddt : $('#CouponForm input[name=buyEddt]').val()
+					,newCustYn : $('#CouponForm select[name=newCustYn]').val()
+					// ,afChannel : $('#CouponForm select[name=afChannel]').val()
+					,dcCdGb : $('input:radio[name="dcCdGb"]:checked').val()
+					,rdCpnNm : $('input[name="serialCpnNm"]').val()
+					,supplyCompList : gagaAgGrid.getAllRowData(supplyGridOptions)
+					,brandList : gagaAgGrid.getAllRowData(brandGridOptions)
+					,applyGoodsList : gagaAgGrid.getAllRowData(goodsGridOptions)
+					,exceptGoodsList : gagaAgGrid.getAllRowData(excepGoodsGridOptions)
+					,cateList : gagaAgGrid.getAllRowData(cateGridOptions)
+					,burdenList : gagaAgGrid.getAllRowData(inComGridOptions)
+					,usableCustGbArr : usableCustGbArr
+					,usableCustGradeArr : usableCustGradeArr
+					,payTypeArr : payTypeArr
+					,limitedTimeCpnList : gagaAgGrid.getAllRowData(limitedTimeCpnGridOptions)
+					,afChannelList : gagaAgGrid.getAllRowData(afLinkOptions)
+				};
+				var jsonData = JSON.stringify(data);
+				console.log('jsonData::>>'+jsonData);
+				gagajf.ajaxJsonSubmit($('#CouponForm').prop('action'), jsonData, fnCouponSaveCollback);
+			}
+		});
+	}
+
+	// 쿠폰 등록 버튼 클릭시
+	function fnCouponCreate2(){
 		mcxDialog.confirm('저장하시겠습니까?' , {
 			cancelBtnText:"취소",
 			sureBtnText:"확인",
@@ -1074,7 +1458,7 @@ console.log('jsonData::'+jsonData);
 		});
 	}
 	// disabled 해제
-	function setDisabledFalse(){ debugger;
+	function setDisabledFalse(){ //debugger;
 
 
 	}
@@ -1254,7 +1638,7 @@ console.log('jsonData::'+jsonData);
 			return false;
 		}
 
-		if(radioValue == 'G240_10') {
+		if(radioValue == 'G240_10') {		//할인금액
 			$('#dcPvalSpan').text("원");
 			$('#dcMvalSpan').text("원");
 			$('#dcAvalSpan').text("원");
@@ -1262,8 +1646,13 @@ console.log('jsonData::'+jsonData);
 			$('#dcMval').val(0);
 			$('#dcAval').val(0);
 			$('#maxDcAmt').val(0);
+			// if($("#CouponForm input[name=rdoCpnType]:checked").val() == 'G230_10'){
+			// 	$("#CouponForm .maxDcAmtArea").hide();
+			// }else{
+			// 	$("#CouponForm .maxDcAmtArea").show();
+			// }
 			$("#CouponForm .maxDcAmtArea").hide();
-		} else {
+		} else {		//할인율
 			$('#dcPvalSpan').text("%");
 			$('#dcMvalSpan').text("%");
 			$('#dcAvalSpan').text("%");
@@ -1271,7 +1660,13 @@ console.log('jsonData::'+jsonData);
 			$('#dcMval').val(0);
 			$('#dcAval').val(0);
 			$('#maxDcAmt').val(0);
-			$("#CouponForm .maxDcAmtArea").show();
+
+			console.log('coupon type::'+$("#CouponForm input[name=rdoCpnType]:checked").val());
+			if($("#CouponForm input[name=rdoCpnType]:checked").val() == 'G230_10'){
+				$("#CouponForm .maxDcAmtArea").hide();
+			}else{
+				$("#CouponForm .maxDcAmtArea").show();
+			}
 		}
 	});
 
@@ -1283,6 +1678,19 @@ console.log('jsonData::'+jsonData);
 			radioValue = cpnDetail.cpnType;
 		}
 
+		// 즉시할인아닌 쿠폰들 할인금액체크시 최대할인금액 숨김
+		var rdoDcWayVal = $("#CouponForm input[name=rdoDcWay]:checked").val();
+
+		// 즉시할인쿠폰일때 유효기간 노출, 그외 유효기간/일수 선택
+		var pgGbVal = $('#CouponForm select[name="pdGb"] option:selected').val();
+		if(pgGbVal == 'P') {	//기간
+			$('#CouponForm .availDaysArea').hide();
+			$('#CouponForm .availDateTr').show();
+		}else{	//일수
+			$('#CouponForm .availDateTr').hide();
+			$('#CouponForm .availDaysArea').show();
+		}
+
 		// 즉시할인 쿠폰일때
 		if(radioValue == 'G230_10'){
 			$('#CouponForm .custJoinTr').hide();
@@ -1291,22 +1699,78 @@ console.log('jsonData::'+jsonData);
 			$('#CouponForm .buyDateTr').hide();
 			$('#CouponForm .dcCdCheck1').hide();
 			$('#CouponForm .limitedTimeCpnArea').hide();
+			$('#CouponForm .pdGbArea').hide();
+			$('#CouponForm .availDaysArea').hide();
+			// $("#CouponForm").find("input:radio[name='rdoApplyScope']:radio[value='A']").attr('disabled', true);
+			// 다운로드 시작,종료 , 기간/일수 , 제휴채널, 고객 등급, 구매제한 , 할인율일때 구매제한한도, 1회발행수량, 다운로드 가능여부 숨기기
+			$('#CouponForm .downStdtArea').hide();
+			$('#CouponForm .downEddtArea').hide();
+			$('#CouponForm .pdGbArea').hide();
+			$('#CouponForm .buyLimitAmtArea').hide();
+			$('#CouponForm .usableCustGbArea').hide();
+			$('#CouponForm .usableCustGradeArea').hide();
+			$('#CouponForm .downAblArea').hide();
+			$('#CouponForm .linkAfArea').hide();
+			$('#CouponForm .dcCdCheck2').hide();
+			$('#CouponForm .maxDcAmtArea').hide();
+			$('#CouponForm .availDateTr').show();
 		}else{
 			if(radioValue == 'G230_11'){ // 상품쿠폰일때 선착순쿠폰 등록 가능
 				$('#CouponForm .limitedTimeCpnArea').show();
 			}else{
 				$('#CouponForm .limitedTimeCpnArea').hide();
 			}
+
+			if(radioValue == 'G230_30'){	// 배송비쿠폰일때 할인금액만 적용
+				$("#CouponForm input:radio[name='rdoDcWay']:radio[value=G240_10]").prop('checked', true);
+				$("#CouponForm").find("input:radio[name='rdoDcWay']").attr('disabled', true);
+				$("#CouponForm").find("input:radio[name='rdoDcWay']").attr('readonly', true);
+				$('#CouponForm .maxDcAmtArea').hide();
+				// 적용대상 탭
+				$("#CouponForm .supplyTrArea").show();
+				$("#CouponForm .brandTrArea").hide();
+				$("#CouponForm .categoryTrArea").hide();
+				$("#CouponForm .goodsTrArea").hide();
+				$("#CouponForm .exceptArea").hide();
+			}else{
+				$("#CouponForm").find("input:radio[name='rdoDcWay']").attr('disabled', false);
+				$("#CouponForm").find("input:radio[name='rdoDcWay']").attr('readonly', false);
+				$('#CouponForm .maxDcAmtArea').show();
+				// 적용대상 탭
+				$("#CouponForm .supplyTrArea").show();
+				$("#CouponForm .brandTrArea").show();
+				$("#CouponForm .categoryTrArea").show();
+				$("#CouponForm .goodsTrArea").show();
+				$("#CouponForm .exceptArea").show();
+			}
+
 			$('#CouponForm .custJoinTr').show();
 			$('#CouponForm .firstBuyTr').show();
 			$('#CouponForm .dcCdCheck1').show();
+			$('#CouponForm .pdGbArea').show();
+			// 다운로드 시작,종료 , 기간/일수 , 제휴채널, 고객 등급, 구매제한 , 할인율일때 구매제한한도, 1회발행수량, 다운로드 가능여부 숨기기
+			$('#CouponForm .downStdtArea').show();
+			$('#CouponForm .downEddtArea').show();
+			$('#CouponForm .buyLimitAmtArea').show();
+			$('#CouponForm .usableCustGbArea').show();
+			$('#CouponForm .usableCustGradeArea').show();
+			$('#CouponForm .downAblArea').show();
+			$('#CouponForm .linkAfArea').show();
+			$('#CouponForm .dcCdCheck2').show();
+
+			// 즉시할인아닌 쿠폰들 할인금액체크시 최대할인금액 숨김
+			if(rdoDcWayVal == 'G240_10'){
+				$('#CouponForm .maxDcAmtArea').hide();
+			}else{
+				$('#CouponForm .maxDcAmtArea').show();
+			}
 		}
 
-		// 상품쿠폰 선택시 적용범위 개별로 변경 나머진 전체
-		if(radioValue == 'G230_11') {
-			$("input:radio[name='rdoApplyScope']:radio[value='I']").prop('checked', true);
-		} else {
+		// 즉시할인쿠폰만 전체/개별, 나머진 개별
+		if(radioValue == 'G230_10') {
 			$("input:radio[name='rdoApplyScope']:radio[value='A']").prop('checked', true);
+		} else {
+			$("input:radio[name='rdoApplyScope']:radio[value='I']").prop('checked', true);
 		}
 
 		// 주문서 쿠폰 선택시 결제수단 노출
@@ -1677,7 +2141,8 @@ console.log('jsonData::'+jsonData);
 
 		if(selectVal == "P") {
 			$('.availDateTr').css('display' , '');
-			$('.availDayTr').css('display' , 'none');
+			$("#CouponForm .availDaysArea").hide();
+			// $('.availDayTr').css('display' , 'none');
 			$('#CouponForm #availDays').attr('required' , false);
 			$('#CouponForm #availStDay').attr('required' , true);
 			$('#CouponForm #availEdDay').attr('required' , true);
@@ -1685,7 +2150,8 @@ console.log('jsonData::'+jsonData);
 			$('#CouponForm #availEddt').attr('required' , true);
 		} else {
 			$('.availDateTr').css('display' , 'none');
-			$('.availDayTr').css('display' , '');
+			// $('.availDayTr').css('display' , '');
+			$("#CouponForm .availDaysArea").show();
 			$('#CouponForm #availDays').attr('required' , true);
 			$('#CouponForm #availStDay').attr('required' , false);
 			$('#CouponForm #availEdDay').attr('required' , false);
@@ -1942,6 +2408,18 @@ console.log('jsonData::'+jsonData);
 				$('#CouponForm .firstBuyTr').hide();
 				$('#CouponForm .buyDateTr').hide();
 				$('#CouponForm .dcCdCheck1').hide();
+				// 다운로드 시작,종료 , 기간/일수 , 제휴채널, 고객 등급, 구매제한 , 할인율일때 구매제한한도, 1회발행수량, 다운로드 가능여부 숨기기
+				$('#CouponForm .downStdtArea').hide();
+				$('#CouponForm .downEddtArea').hide();
+				$('#CouponForm .pdGbArea').hide();
+				$('#CouponForm .buyLimitAmtArea').hide();
+				$('#CouponForm .usableCustGbArea').hide();
+				$('#CouponForm .usableCustGradeArea').hide();
+				$('#CouponForm .downAblArea').hide();
+				$('#CouponForm .linkAfArea').hide();
+				$('#CouponForm .dcCdCheck2').hide();
+				$('#CouponForm .maxDcAmtArea').hide();
+				// $("#CouponForm #afLinkCd").attr('disabled', true);
 			}
 			$("#btnCouponSave").show();	// 저장버튼
 			$("#CouponForm .buttonSpan").show();

+ 30 - 4
src/main/webapp/WEB-INF/views/marketing/MorebetterPopupForm.html

@@ -1046,10 +1046,7 @@
 
 	// 진행 버튼 클릭
 	$("#btnChangeStatIng").on("click", function() {
-		console.log('1111111111111');
-
-		fnCheckData();
-
+		// fnCheckData();
 		// 각 ag-grid list 수량
 		let allSupplyCompData = gagaAgGrid.getAllRowData(gridOptionsFGCompanyList);
 		let allBrandData = gagaAgGrid.getAllRowData(gridOptionsFGBrandList);
@@ -1084,6 +1081,34 @@
 			multiExceptGoods.push(item.goodsCd);
 		});
 
+		// 행사기간 확인
+		if (gagajf.isNull($('#moreBetterForm input[name=eventStdt]').val()) || gagajf.isNull($('#moreBetterForm input[name=eventEddt]').val())) {
+			mcxDialog.alert("행사 기간 시작일자와 종료일자를 입력하세요.");
+			$('#moreBetterForm input[name=tmtbStdt]').focus();
+			return false;
+		}
+		var eventStDt = "";
+		var eventEdDt = "";
+
+		eventStDt = $('#moreBetterForm input[name=eventStdt]').val()+$('#moreBetterForm select[name=eventStHH]').val()+$('#moreBetterForm select[name=eventStMM]').val()+'00';
+		if($('#moreBetterForm select[name=eventEdHH]').val() == "24"){
+			eventEdDt = $('#moreBetterForm input[name=eventEddt]').val()+'235959';
+		}else{
+			eventEdDt = $('#moreBetterForm input[name=eventEddt]').val()+$('#moreBetterForm select[name=eventEdHH]').val()+$('#moreBetterForm select[name=eventEdMM]').val()+'00';
+		}
+
+		eventStDt = eventStDt.replace(/[^0-9]/g, '');
+		eventEdDt = eventEdDt.replace(/[^0-9]/g, '');
+
+		let fromDate = $('#moreBetterForm input[name=tmtbStdt]').val(eventStDt);
+		let toDate = $('#moreBetterForm input[name=tmtbEddt]').val(eventEdDt);
+
+		if (fromDate > toDate) {
+			mcxDialog.alert("시작일자는 종료일자 보다 클 수 없습니다.");
+			$('#moreBetterForm input[name=tmtbStdt]').focus();
+			return false;
+		}
+
 		/*var data = {
 			mode : $('#moreBetterForm input[name=mode]').val()
 			, tmtbSq : $('#moreBetterForm input[name=disTmtbSq]').val()
@@ -1136,6 +1161,7 @@
 						, multiExceptGoods : multiExceptGoods
 					}
 					var jsonData = JSON.stringify(data);
+					console.log('jsonData::'+jsonData);
 					gagajf.ajaxJsonSubmit('/marketing/morebetter/changeStat', jsonData, fnMorebetterChangeStatCollback);
 				}
 			}