bin2107 5 роки тому
батько
коміт
7a28eedbb6
1 змінених файлів з 133 додано та 26 видалено
  1. 133 26
      src/main/webapp/WEB-INF/views/marketing/CouponPopupForm.html

+ 133 - 26
src/main/webapp/WEB-INF/views/marketing/CouponPopupForm.html

@@ -135,20 +135,21 @@
 										<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"><span id="dcPvalSpan">원</span>
+												<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>
 											<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"><span id="dcMvalSpan">원</span>
+												<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"><span id="dcAvalSpan">원</span>
+												<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>
-											<th>최대할인금액<em class="required" title="필수"></em></th>
-											<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>
@@ -219,7 +220,7 @@
 												</select>
 											</td>
 										</tr>
-										<tr>
+										<tr class="firstBuyTr">
 											<th>첫구매여부<em class="required" title="필수"></em></th>
 											<td>
 												<select name="firstYn" id="firstYn" onchange="firstYnChange(this)" required="required" data-valid-name="첫구매여부">
@@ -227,13 +228,6 @@
 													<option value="N" selected="selected">N</option>
 												</select>
 											</td>
-											<th>다운로드가능여부<em class="required" title="필수"></em></th>
-											<td>
-												<select name="downYn" id="downYn" required="required" data-valid-name="다운로드가능여부">
-													<option value="Y">Y</option>
-													<option value="Y" selected="selected">N</option>
-												</select>
-											</td>
 										</tr>
 										<tr>
 											<th class="buyDateTr">첫구매기간시작일시<em class="required" title="필수"></em></th>
@@ -258,7 +252,7 @@
 												</select>
 											</td>
 										</tr>
-										<tr>
+										<tr class="custJoinTr">
 											<th>신규회원여부<em class="required" title="필수"></em></th>
 											<td>
 												<select name="custJoinYn" id="custJoinYn" onchange="custJoinYnChange(this)" required="required" data-valid-name="신규회원여부">
@@ -266,10 +260,6 @@
 													<option value="N" selected="selected">N</option>
 												</select>
 											</td>
-											<th class="dcCdCheck">총발행제한수량<em class="required" title="필수"></em></th>
-											<td class="dcCdCheck">
-												<input type="text" class="w200" name="totPubLimitQty" id="totPubLimitQty" value="0" required="required" data-valid-name="총발행제한수량" data-valid-type="numeric" style="text-align: right;">개<span class="cRed" id="totPubLimitQtySpan"> *제한없음</span>
-											</td>
 										</tr>
 										<tr>
 											<th class="custJoinDateTr">신규회원기간시작일시<em class="required" title="필수"></em></th>
@@ -294,15 +284,32 @@
 												</select>
 											</td>
 										</tr>
-										<tr class="dcCdCheck">
+										<tr class="dcCdCheck1">
+											<th>총발행제한수량<em class="required" title="필수"></em></th>
+											<td>
+												<input type="text" class="w200" name="totPubLimitQty" id="totPubLimitQty" value="0" required="required" data-valid-name="총발행제한수량" data-valid-type="numeric" style="text-align: right;">개
+												<label class="chkBox" id="chkBoxTotPubQty"><input type="checkbox" id="chkNoLimitTotPubLimitQty"/>제한없음</label>
+											</td>
 											<th>1인당발행제한수량<em class="required" title="필수"></em></th>
 											<td>
-												<input type="text" class="w200" name="custPubLimitQty" id="custPubLimitQty" value="0" required="required" data-valid-name="1인당발행제한수량" data-valid-type="numeric" style="text-align: right;">개<span class="cRed" id="custPubLimitQtySpan"> *제한없음</span>
+												<input type="text" class="w200" name="custPubLimitQty" id="custPubLimitQty" value="0" required="required" data-valid-name="1인당발행제한수량" data-valid-type="numeric" style="text-align: right;">개
+												<label class="chkBox" id="chkBoxCustPubQty"><input type="checkbox" id="chkNoLimitCustPubLimitQty"/>제한없음</label>
 											</td>
-											<th>1회발행수량<em class="required" title="필수"></em></th>
-											<td><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>
 										</tr>
 										<tr>
+											<th class="dcCdCheck2">1회발행수량<em class="required" title="필수"></em></th>
+											<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>
+												<select name="downYn" id="downYn" required="required" data-valid-name="다운로드가능여부">
+													<option value="Y">Y</option>
+													<option value="Y" selected="selected">N</option>
+												</select>
+											</td>
+										</tr>
+										<!--<tr>
 											<th>재발급여부<em class="required" title="필수"></em></th>
 											<td>
 												<select name="reissuance" id="reissuance" required="required" data-valid-name="재발급여부" >
@@ -315,7 +322,7 @@
 													<option th:if="${dnGbList}" th:each="oneData , status:${dnGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 												</select>
 											</td>
-										</tr>
+										</tr>-->
 										<tr class="payTypeTr" style="display: none;">
 											<th>결제수단<em class="required" title="필수"></em></th>
 											<td colspan="5">
@@ -605,6 +612,52 @@
 	brandGridOptions.rowSelection = "multiple";
 	inComGridOptions.stopEditingWhenGridLosesFocus = true;
 
+	// 총발행 제한수량 -> 제한없음 처리
+	$("#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);
+		}else{	//false 체크가 안되어있었는데 체크됐어 -> 값0 inputbox disabled
+			$("#CouponForm #totPubLimitQty").val(0);
+			$("#CouponForm input[id=totPubLimitQty]").prop("disabled", true);
+		}
+	});
+
+	// 1인당발행 제한수량 -> 제한없음 처리
+	$("#CouponForm #chkBoxCustPubQty").bind('click', function (){
+		var chkBox= document.getElementById('chkNoLimitCustPubLimitQty').checked;
+		if(chkBox){ //true 체크가 되어있었는데 해제됐어 -> 값0 inputbox disabled 해제
+			$("#CouponForm #custPubLimitQty").val(0);
+			$("#CouponForm input[id=custPubLimitQty]").prop("disabled", false);
+		}else{	//false 체크가 안되어있었는데 체크됐어 -> 값0 inputbox disabled
+			$("#CouponForm #custPubLimitQty").val(0);
+			$("#CouponForm input[id=custPubLimitQty]").prop("disabled", true);
+		}
+	});
+
+	// 할인방식 할인율 일때, 할인값 체크
+	var fnDcValOnkeyUp = function (obj){
+		var inputName = $(obj).attr("name");
+		var rdoDcWay = $('#CouponForm input:radio[name="rdoDcWay"]:checked').val();
+		var dcVal = $("#CouponForm input[name="+inputName+"]").val();
+		if(rdoDcWay == "G240_11"){
+			if(dcVal > 100){
+				mcxDialog.alert('할인율은 100을 넘을수 없습니다.');
+				$("#CouponForm input[name="+inputName+"]").val('');
+				$("#CouponForm input[name="+inputName+"]").focus();
+				return;
+			}
+		}
+	}
+
+	// 할인값 동일적용
+	$("#applySameValueBtn").bind('click change', function () {
+		var cdPval = $("#CouponForm input[name=dcPval]").val();
+		$("#CouponForm input[name=dcMval]").val(cdPval);
+		$("#CouponForm input[name=dcAval]").val(cdPval);
+	});
+
 	// 쿠폰 등록 버튼 클릭시
 	function fnCouponCreate(){
 		mcxDialog.confirm('저장하시겠습니까?' , {
@@ -780,10 +833,20 @@
 			$('#dcPvalSpan').text("원");
 			$('#dcMvalSpan').text("원");
 			$('#dcAvalSpan').text("원");
+			$('#dcPval').val(0);
+			$('#dcMval').val(0);
+			$('#dcAval').val(0);
+			$('#maxDcAmt').val(0);
+			$("#CouponForm .maxDcAmtArea").hide();
 		} else {
 			$('#dcPvalSpan').text("%");
 			$('#dcMvalSpan').text("%");
 			$('#dcAvalSpan').text("%");
+			$('#dcPval').val(0);
+			$('#dcMval').val(0);
+			$('#dcAval').val(0);
+			$('#maxDcAmt').val(0);
+			$("#CouponForm .maxDcAmtArea").show();
 		}
 	});
 
@@ -794,6 +857,20 @@
 		if(mode == "U") {
 			radioValue = cpnDetail.cpnType;
 		}
+
+		// 즉시할인 쿠폰일때
+		if(radioValue == 'G230_10'){
+			$('#CouponForm .custJoinTr').hide();
+			$('#CouponForm .custJoinDateTr').hide();
+			$('#CouponForm .firstBuyTr').hide();
+			$('#CouponForm .buyDateTr').hide();
+			$('#CouponForm .dcCdCheck1').hide();
+		}else{
+			$('#CouponForm .custJoinTr').show();
+			$('#CouponForm .firstBuyTr').show();
+			$('#CouponForm .dcCdCheck1').show();
+		}
+
 		// 상품쿠폰 선택시 적용범위 개별로 변경 나머진 전체
 		if(radioValue == 'G230_11') {
 			$("input:radio[name='rdoApplyScope']:radio[value='I']").prop('checked', true);
@@ -819,7 +896,8 @@
 	// 할인 쿠폰 유형 변경
 	$("#CouponForm input[name=dcCdGb]").bind('click change', function () {
 		if(this.value == "G233_00") {			// 일반 유형
-			$("#CouponForm .dcCdCheck").show();
+			$("#CouponForm .dcCdCheck1").show();
+			$("#CouponForm .dcCdCheck2").show();
 			$("#CouponForm .serialCpnArea").hide();
 			$("#CouponForm .randomCpnArea").hide();
 			$("#CouponForm #custJoinYn").parent().attr("colspan", "");
@@ -843,7 +921,8 @@
 				$('#CouponForm input[name="serialCpnQty"]').attr('required' , false);
 				$('#CouponForm input[name="randomCpnQty"]').attr('required' , true);
 			}
-			$("#CouponForm .dcCdCheck").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
+			$("#CouponForm .dcCdCheck1").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
+			$("#CouponForm .dcCdCheck2").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
 			$("#CouponForm #custJoinYn").parent().attr("colspan", "5");		// 총발행제한 수량을 없애면서 신규회원여부 colspan 수정
 		}
 	});
@@ -1332,6 +1411,14 @@
 			$("#CouponForm #afChannel option:first").attr("selected" , "selected");
 			$("#CouponForm .normalCol").attr("colspan", "5");
 			$("#CouponForm .randomCpnArea").hide();
+			$("#CouponForm .maxDcAmtArea").hide();
+			if($('input:radio[name="rdoCpnType"]:checked').val() == 'G230_10'){
+				$('#CouponForm .custJoinTr').hide();
+				$('#CouponForm .custJoinDateTr').hide();
+				$('#CouponForm .firstBuyTr').hide();
+				$('#CouponForm .buyDateTr').hide();
+				$('#CouponForm .dcCdCheck1').hide();
+			}
 		} else {
 			// 수정모드시 그리드 세팅
 			inComGridOptions.api.setRowData(cpnDtlBurdenList);
@@ -1380,6 +1467,25 @@
 			$("#CouponForm input[name='serialCpnQty']").prop("disabled", true);
 			$("#CouponForm input[name='randomCpnQty']").prop("disabled", true);
 
+			// 즉시할인 쿠폰이면
+			if(cpnDetail.cpnType == "G230_10") {
+				$('#CouponForm .custJoinTr').hide();
+				$('#CouponForm .custJoinDateTr').hide();
+				$('#CouponForm .firstBuyTr').hide();
+				$('#CouponForm .buyDateTr').hide();
+				$('#CouponForm .dcCdCheck1').hide();
+			}else{
+				$('#CouponForm .custJoinTr').show();
+				$('#CouponForm .custJoinDateTr').show();
+				$('#CouponForm .firstBuyTr').show();
+				$('#CouponForm .buyDateTr').show();
+				$('#CouponForm .dcCdCheck1').show();
+			}
+
+			// 할인방식이 할인율이면 최대할인금액 노출
+			if(cpnDetail.dcWay == "G240_11"){
+				$("#CouponForm .maxDcAmtArea").show();
+			}
 			// 주문서 쿠폰이면 할인쿠폰유형 노출
 			if(cpnDetail.cpnType == "G230_20") {
 				$("#CouponForm .dcCdGb").show();
@@ -1387,7 +1493,8 @@
 			// 할인코드유형이 일반유형이 아니면
 			if(cpnDetail.dcCdGb != "G233_00" ) {
 				$("#CouponForm .randomCpnTab").show();							// 시리얼 및 난수 TAB 노출
-				$("#CouponForm .dcCdCheck").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
+				$("#CouponForm .dcCdCheck1").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
+				$("#CouponForm .dcCdCheck2").hide();								// 총발행제한수량, 1회발행수량, 1인당발행제한수량 숨김
 				if(cpnDetail.dcCdGb == "G233_10") {		// 시리얼 유형
 					$("#CouponForm input[name='serialCpnQty']").val(cpnDetail.totPubLimitQty);
 					$("#CouponForm input[name='serialCpnNm']").val(cpnDetail.rdCpnNm);