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

Merge branch 'develop' into eskim

eskim 5 лет назад
Родитель
Сommit
e906b2960a

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

@@ -3,6 +3,7 @@ package com.style24.admin.biz.service;
 import java.util.Collection;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -44,6 +45,7 @@ public class TsaAnswerPhaseService {
 	 * @since 2020. 10. 29
 	 */
 	@Transactional("shopTxnManager")
+	@CacheEvict(value = "answerPhase", allEntries = true)
 	public void saveAnswerPhase(AnswerPhase ansPhase) {
 		ansPhase.setRegNo(TsaSession.getInfo().getUserNo());
 		ansPhase.setUpdNo(TsaSession.getInfo().getUserNo());

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

@@ -569,6 +569,7 @@ public class TsaDisplayController extends TsaBaseController {
 		mav.addObject("brandGroupNo", brandGroupNo);
 		mav.addObject("contentsDesc", displayService.getContentsDesc(contentsLoc));
 		mav.addObject("contentsLocList", rendererService.getAvailCommonCodeList("G028"));
+		mav.addObject("cate1List", rendererService.getCate1List());
 
 		mav.setViewName("display/MainContentsPopupForm");
 		return mav;

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

@@ -1395,7 +1395,7 @@ public class TsaMarketingController extends TsaBaseController {
 		Integer userNo = TsaSession.getInfo().getUserNo();
 		custCoupon.setRegNo(userNo);
 		custCoupon.setUpdNo(userNo);
-		coreCouponService.saveCouponIssue(custCoupon);
+		coreCouponService.createCustCoupon(custCoupon);
 		return super.ok(message.getMessage("SUCC_0006"));
 	}
 

+ 15 - 14
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -171,25 +171,26 @@ public class TsaOrderChangeController extends TsaBaseController {
 		mav = orderRefundService.cnclRtnRefundAmt(cnclReqList);
 		
 		// 3. 주문변경 기본정보 설정
-		mav.set("ordNo"			, cnclReq.getOrdNo());				// 주문번호
-		mav.set("ordChgSq"		, cnclReq.getOrdChgSq());			// 주문변경번호
-		mav.set("chgReason"		, cnclReq.getChgReason());			// 변경사유
-		mav.set("chgMemo"		, cnclReq.getChgMemo());			// 변경메모
+		mav.set("ordNo"					, cnclReq.getOrdNo());					// 주문번호
+		mav.set("ordChgSq"				, cnclReq.getOrdChgSq());				// 주문변경번호
+		mav.set("chgReason"				, cnclReq.getChgReason());				// 변경사유
+		mav.set("chgMemo"				, cnclReq.getChgMemo());				// 변경메모
 		
-		mav.set("accountNo"		, cnclReq.getAccountNo());			// 환불계좌번호
-		mav.set("accountNm"		, cnclReq.getAccountNm());			// 환불계좌예금주명
-		mav.set("bankCd"		, cnclReq.getBankCd());				// 환불계좌은행코드
+		mav.set("accountNo"				, cnclReq.getAccountNo());				// 환불계좌번호
+		mav.set("accountNm"				, cnclReq.getAccountNm());				// 환불계좌예금주명
+		mav.set("bankCd"				, cnclReq.getBankCd());					// 환불계좌은행코드
 		
-		mav.set("allCanYn"		, cnclReq.getAllCanYn());			// 무통장입금전 전체취소 여부
-		mav.set("isCustomer"	, cnclReq.getIsCustomer());			// 변경사유 (고객, 회사)
+		mav.set("allCanYnBeforePayment"	, cnclReq.getAllCanYnBeforePayment());	// 무통장입금전 전체취소 여부
+		mav.set("allCanYn"				, cnclReq.getAllCanYn());				// 전체취소 여부
+		mav.set("isCustomer"			, cnclReq.getIsCustomer());				// 변경사유 (고객, 회사)
 		
 		// 4. 주문변경 회수지정보 추가
-		mav.set("chgerNm"		, cnclReq.getChgerNm());			// 변경자명
-		mav.set("chgerEmail"	, cnclReq.getChgerEmail());			// 변경자이메일주소
-		mav.set("chgerPhnno"	, cnclReq.getChgerPhnno());			// 변경자핸드폰번호
-		mav.set("chgerTelno"	, cnclReq.getChgerTelno());			// 변경자전화번호
+		mav.set("chgerNm"				, cnclReq.getChgerNm());				// 변경자명
+		mav.set("chgerEmail"			, cnclReq.getChgerEmail());				// 변경자이메일주소
+		mav.set("chgerPhnno"			, cnclReq.getChgerPhnno());				// 변경자핸드폰번호
+		mav.set("chgerTelno"			, cnclReq.getChgerTelno());				// 변경자전화번호
 		
-		mav.set("reqGbn"		, cnclReq.getReqGbn());				// 신청구분
+		mav.set("reqGbn"				, cnclReq.getReqGbn());					// 신청구분
 				
 		// 5. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL)
 		orderChangeService.cnclComplete(mav, userNo);

+ 0 - 34
src/main/java/com/style24/persistence/domain/CustCoupon.java

@@ -1,34 +0,0 @@
-package com.style24.persistence.domain;
-
-import com.style24.persistence.TscBaseDomain;
-import com.style24.persistence.TscPageRequest;
-import lombok.Data;
-import org.codehaus.groovy.runtime.dgmimpl.arrays.IntegerArrayGetAtMetaMethod;
-
-/**
- * 고객쿠폰 도메인
- * @author xyzp1539
- * @since 2020-12-21
- */
-@SuppressWarnings("serial")
-@Data
-public class CustCoupon extends TscBaseDomain {
-    private Integer custCpnSq;              // 고객쿠폰일련번호
-    private Integer custNo;                 // 고객번호
-    private int     cpnId;                  // 쿠폰아이디
-    private String  availStdt;              // 유효시작일시
-    private String  availEddt;              // 유효종료일시
-    private String  pubReason;              // 발행사유(공통코드G250)
-    private String  pubReasonDtl;           // 발행사유상세
-    private String  usedDt;                 // 사용된일시
-    private String  endAlimSendYn;          // 만료알림발송여부
-    private String  useYn;                  // 사용여부
-    private String  rdCpnNm;                // 랜덤쿠폰 및 시리얼쿠폰 키
-    private String  custId;                 // 고객 아이디
-    private String  custNm;                 // 고객명
-
-    // 그리드 컬럼
-    private String  custList;
-    private String  cpnNm;                  // 쿠폰명
-    private Integer ordNo;                  // 주문번호
-}

+ 2 - 0
src/main/java/com/style24/persistence/domain/Plan.java

@@ -247,6 +247,8 @@ public class Plan extends TscBaseDomain{
 		private String benefit;				// 혜택구분
 		private int pntAmt;				//포인트
 		private Integer cpnId;				//쿠폰아이디
+		private int pntUsableDay;		//포인트사용가능일
+		
 		
 		// Pagination
 		private TscPageRequest pageable;

+ 13 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsaAnswerPhase.xml

@@ -10,6 +10,9 @@
 		      , ANS_CLSF                                     /*답변종류코드*/
 		      , ANS_TITLE                                    /*답변제목*/
 		      , ANS_CONTENT                                  /*답변내용*/
+		      , KAKAO_CD                                     /*카카오템플릿코드*/
+		      , BUTTON_NM                                    /*카카오버튼명*/
+		      , BUTTON_URL                                   /*카카오버튼URL*/
 		      , USE_YN                                       /*사용여부*/
 		      , FN_GET_USER_NM(REG_NO)             AS REG_NM /*등록자*/
 		      , DATE_FORMAT(REG_DT,'%Y%m%d%H%i%S') AS REG_DT /*등록일자*/
@@ -41,6 +44,9 @@
 		     , SITE_CD
 		     , ANS_TITLE
 		     , ANS_CONTENT
+		     , KAKAO_CD
+		     , BUTTON_NM
+		     , BUTTON_URL
 		     , USE_YN
 		     , REG_NO
 		     , REG_DT
@@ -48,11 +54,14 @@
 		     , UPD_DT
 		)
 		VALUES (
-		       NULL
+		       #{ansSq}
 		     , #{ansClsf}
 		     , #{siteCd}
 		     , #{ansTitle}
 		     , #{ansContent}
+		     , #{kakaoCd}
+		     , #{buttonNm}
+		     , #{buttonUrl}
 		     , #{useYn}
 		     , #{regNo}
 		     , NOW()
@@ -64,6 +73,9 @@
 		     , ANS_CLSF = #{ansClsf}
 		     , ANS_TITLE = #{ansTitle}
 		     , ANS_CONTENT = #{ansContent}
+		     , KAKAO_CD = #{kakaoCd}
+		     , BUTTON_NM = #{buttonNm}
+		     , BUTTON_URL = #{buttonUrl}
 		     , USE_YN = #{useYn}
 		     , UPD_NO = #{updNo}
 		     , UPD_DT = NOW()

+ 7 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsaPlan.xml

@@ -1253,6 +1253,7 @@
 		      , BAS_DAYS
 		      , BENEFIT_GB
 		      , PNT_AMT
+		      , PNT_USABLE_DAY
 		      , CPN_ID
 		      , REG_NO
 		      , REG_DT
@@ -1264,6 +1265,7 @@
 		      , #{basDays}
 		      , #{benefitGb}
 		      , #{pntAmt}
+		      , #{pntUsableDay}
 		      , #{cpnId}
 		      , #{regNo}
 		      , CURRENT_TIMESTAMP
@@ -1274,6 +1276,7 @@
 		UPDATE
 		  BENEFIT_GB = #{benefitGb}  
 		, PNT_AMT    = #{pntAmt}
+		, PNT_USABLE_DAY  = #{pntUsableDay}
 		, CPN_ID     = #{cpnId}
 		, UPD_DT     = now()                                             
 		, UPD_NO     = #{updNo}      
@@ -1287,6 +1290,7 @@
 		      ,PA.BENEFIT_GB 
 		      ,PA.CPN_ID 
 		      ,PA.PNT_AMT 
+		      ,PA.PNT_USABLE_DAY
 		      ,(CASE PA.BENEFIT_GB WHEN 'P' THEN '포인트' 
                            WHEN 'C' THEN '쿠폰'
                            ELSE '포인트/쿠폰' END) AS BENEFIT
@@ -1310,6 +1314,7 @@
 		      , BAS_DAYS
 		      , BENEFIT_GB
 		      , PNT_AMT
+		      , PNT_USABLE_DAY
 		      , CPN_ID
 		      , REG_NO
 		      , REG_DT
@@ -1320,7 +1325,8 @@
 		       #{planSq}
 		      , BAS_DAYS  
 		      , BENEFIT_GB
-		      , PNT_AMT   
+		      , PNT_AMT
+		      , PNT_USABLE_DAY  
 		      , CPN_ID    
 		      , #{regNo}
 		      , CURRENT_TIMESTAMP

+ 191 - 139
src/main/webapp/WEB-INF/views/display/MainContentsPopupForm.html

@@ -46,6 +46,7 @@
 	var tdWidth = $("#sortable").find("td").width();
 	var tdDeleteWidth = parseInt(tdWidth/11, 10);
 	tdWidth = tdWidth - tdDeleteWidth;
+	var cate1List = [[${cate1List}]];
 
 	var tableLen = 0;		// 테이블 ID
 
@@ -66,6 +67,7 @@
 		for(var i=0; i<result.length; i++){
 			var dispStdt = result[i].dispStdt.split(" ");
 			var dispEddt = result[i].dispEddt.split(" ");
+			var cate1No = result[i].contentsType;
 			html += '<table class="frmStyle mcTable" style="margin-bottom:30px" id="mcTable'+i+'">';
 			html += '<input type="hidden" name="tableIdx" value="'+i+'" data-id="'+i+'">';
 			html += '<colgroup>';
@@ -101,10 +103,10 @@
 				if(contentsLoc=='SBM005' || contentsLoc=='SBMM005'){
 					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddBrandDescRow(this);">브랜드소개추가</button>';
 				}
-				if(contentsLoc!='SMM005' && contentsLoc!='SBM005' && contentsLoc!='SBMM005'){
+				if(contentsLoc!='SMM005' && contentsLoc!='SBM005' && contentsLoc!='SBMM005' && contentsLoc!='SGNB001'){
 					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddImgPopRow(this);">이미지추가</button>';
 				}
-					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddLinkPopRow(this);">링크추가</button>';
+				html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddLinkPopRow(this);">링크추가</button>';
 				html += '<button type="button" class="btn btn-danger btn-lg" onclick="fnDeleteContentsRow(this);">삭제</button></td>';
 			}
 			html += '</tr>';
@@ -127,22 +129,75 @@
 				}
 				html += '	</td>';
 				html += '</tr>';
-				html += '	<tr name="tabBgColorRow'+i+'"';
+
+				if(result[i].contentsType=='OPEN'){
+					var src = $("#uploadDefaultUrlPop").val().replace('/contents/', '')+result[i].imgPath1;
+					var src2 = $("#uploadDefaultUrlPop").val().replace('/contents/', '')+result[i].imgPath2;
+					html += '<tr name="imgPopRow" id="openBanner0">';
+					html += '	<th>띠배너<br>이미지</th>';
+					html += '	<td><div class="uFile w300">';
+					html += '			<input id="filePop_0" name="file" type="file" class="uFileInput w300" onchange="fnPopFileUpload(this, 0)"/>';
+					html += '			<label for="filePop_0" class="uFileLabel">파일선택</label>';
+					html += '			<input type="hidden" name="imgPath" value="'+result[i].imgPath1+'"/>';
+					html += '			<input type="hidden" name="newImgFile" value="" />';
+					html += '		</div>';
+					html += '	<div id="imgViewPop_0" class=';
+					if(src!=''){
+						html += '"on">';
+					}else{
+						html += '"off">';
+					}
+					html += '		<img id="bannerPreViewUrlPop_0" src="'+src+'" style="height:100px; max-width:500px;"  onclick="cfnOpenImagePreViewPopup(\'bannerPreimgViewPop\',$(this).attr(\'src\'));"/>';
+					html += '	</div></td>';
+					html += '</tr>';
+
+					html += '<tr name="imgPopRow" id="openBanner1">';
+					html += '	<th>오픈배너<br>이미지</th>';
+					html += '	<td><div class="uFile w300">';
+					html += '			<input id="filePop_1" name="file" type="file" class="uFileInput w300" onchange="fnPopFileUpload(this, 1)"/>';
+					html += '			<label for="filePop_1" class="uFileLabel">파일선택</label>';
+					html += '			<input type="hidden" name="imgPath" value="'+result[i].imgPath2+'"/>';
+					html += '			<input type="hidden" name="newImgFile" value="" />';
+					html += '		</div>';
+					html += '	<div id="imgViewPop_1" class=';
+					if(src!=''){
+						html += '"on">';
+					}else{
+						html += '"off">';
+					}
+					html += '		<img id="bannerPreViewUrlPop_1" src="'+src2+'" style="height:100px; max-width:500px;"  onclick="cfnOpenImagePreViewPopup(\'bannerPreimgViewPop\',$(this).attr(\'src2\'));"/>';
+					html += '	</div></td>';
+					html += '</tr>';
+				}
+
 				if(result[i].contentsType=='IMG'){
-					html += 'style="display:none;"';
+					var src = $("#uploadDefaultUrlPop").val().replace('/contents/', '')+result[i].imgPath1;
+					html += '<tr name="imgPopRow" id="openBanner0">';
+					html += '	<th>띠배너<br>이미지</th>';
+					html += '	<td><div class="uFile w300">';
+					html += '			<input id="filePop_0" name="file" type="file" class="uFileInput w300" onchange="fnPopFileUpload(this, 0)"/>';
+					html += '			<label for="filePop_0" class="uFileLabel">파일선택</label>';
+					html += '			<input type="hidden" name="imgPath" value="'+result[i].imgPath1+'"/>';
+					html += '			<input type="hidden" name="newImgFile" value="" />';
+					html += '		</div>';
+					html += '	<div id="imgViewPop_0" class=';
+					if(src!=''){
+						html += '"on">';
+					}else{
+						html += '"off">';
+					}
+					html += '		<img id="bannerPreViewUrlPop_0" src="'+src+'" style="height:100px; max-width:500px;"  onclick="cfnOpenImagePreViewPopup(\'bannerPreimgViewPop\',$(this).attr(\'src\'));"/>';
+					html += '	</div></td>';
+					html += '</tr>';
 				}
-				html += ' >';
-				html += '		<th>배경 RGB코드</th>';
-				html += '		<td><input name="gnbBgColor' + i + '" type="text" maxlength="200" data-valid-name="배경 RGB코드" value="' + result[i].strVar5 + '"/></td>';
-				html += '	</tr>';
 
-				html += '	<tr name="tabTextColorRow'+i+'"';
-				if(result[i].contentsType!='TEXT'){
+				html += '	<tr name="tabBgColorRow'+i+'"';
+				if(result[i].contentsType=='TEXT'){
 					html += 'style="display:none;"';
 				}
 				html += ' >';
-				html += '		<th>텍스트 RGB코드</th>';
-				html += '		<td><input name="gnbTextColor'+i+'" type="text" maxlength="200" data-valid-name="텍스트 RGB코드" value="' + result[i].strVar6 + '"/></td>';
+				html += '		<th>배경 RGB코드</th>';
+				html += '		<td><input name="gnbBgColor' + i + '" type="text" maxlength="200" data-valid-name="배경 RGB코드" value="' + result[i].strVar5 + '"/></td>';
 				html += '	</tr>';
 
 				html += '	<tr name="tabShowYnRow'+i+'"';
@@ -241,44 +296,23 @@
 					}
 					html += '	</td>';
 					html += '</tr>';
-					/*html += '<tr id="bannerImgTr1" name="imgPopRow">';
-					html += '	<th>이미지1</th>';
-					html += '	<td>';
-					html += '		<div id="ImageArea1" style="height:33px;">';
-					html += '			<span className="uFile w300">';
-					html += '									<input id="file_1" name="file" type="file" className="uFileInput w300" data-valid-name="이미지파일" onChange="fnPopFileUpload(this, 1)"/>';
-					html += '									<label htmlFor="file_1" className="uFileLabel"></label>';
-					html += '									<input type="hidden" name="imgPath" value="'+result[i].imgPath1+'"/>';
-					html += '									<input type="hidden" name="newImgFile" value="" />';
-					html += '								</span>';
-					html += '			<span className="memAdd off" id="imgFileNm1"></span>';
-					html += '		</div>';
-					html += '	</td>';
-					html += '</tr>';
-					html += '<tr id="bannerLinkTr1" name="linkRow">';
-					html += '	<th>링크1</th>';
-					html += '	<td><input type="text" class="w400" name="linkUrl" maxlength="300" required="required" data-valid-name="LINK" value="'+result[i].strVar1+'"/></td>';
-					html += '</tr>';
-					if(result[i].contentsType==2){
-						html += '<tr id="bannerImgTr2" name="imgPopRow">';
-						html += '	<th>이미지2</th>';
-						html += '	<td>';
-						html += '		<div id="ImageArea2" style="height:33px;">';
-						html += '			<span className="uFile w300">';
-						html += '									<input id="file_2" name="file" type="file" className="uFileInput w300" data-valid-name="이미지파일" onChange="fnPopFileUpload(this, 2)"/>';
-						html += '									<label htmlFor="file_2" className="uFileLabel"></label>';
-						html += '									<input type="hidden" name="imgPath" value="'+result[i].imgPath2+'"/>';
-						html += '									<input type="hidden" name="newImgFile" value="" />';
-						html += '								</span>';
-						html += '			<span className="memAdd off" id="imgFileNm2"></span>';
-						html += '		</div>';
-						html += '	</td>';
-						html += '</tr>';
-						html += '<tr id="bannerLinkTr2" name="linkRow" >';
-						html += '	<th>링크2</th>';
-						html += '	<td><input type="text" class="w400" name="linkUrl" maxlength="300" required="required" data-valid-name="LINK" value="'+result[i].strVar2+'"/></td>';
-						html += '</tr>';
-					}*/
+			}
+			if(contentsLoc=='STAB003'){
+				html += '	<tr name="tabCateRow">';
+				html += '		<th>카테고리</th>';
+				html += '		<td colspan="3">카테고리선택';
+				html += '			<select name="cate1List">';
+				html += '				<option value="">[선택]</option>';
+				for(let i=0; i<cate1List.length; i++){
+					if(cate1No == cate1List[i].cd){
+						html += '<option value="'+cate1List[i].cd+'" selected="selected">['+cate1List[i].cd+'] '+cate1List[i].cdNm+'</option>';
+					}else{
+						html += '<option value="'+cate1List[i].cd+'">['+cate1List[i].cd+'] '+cate1List[i].cdNm+'</option>';
+					}
+				}
+				html += '			</select>';
+				html += '		</td>';
+				html += '	</tr>';
 			}
 			html += '</thead><tbody>';
 			if(contentsLoc!='SCM002' && contentsLoc!='SCM003'){
@@ -290,8 +324,10 @@
 					if(strTitle!=null && strTitle!='null' && strTitle!='' ){
 						html += fnAddTitlePopRow(strTitle);
 					}
-					if(imgPath!=null && imgPath!='null' && imgPath!='' ){
-						html += fnAddImgPopRow(imgPath);
+					if(contentsLoc!='SGNB001'){
+						if(imgPath!=null && imgPath!='null' && imgPath!='' ){
+							html += fnAddImgPopRow(imgPath);
+						}
 					}
 					if(strVar!=null && strVar!='null' && strVar!='' ){
 						html += fnAddLinkPopRow(strVar);
@@ -322,15 +358,39 @@
 		if(cateType=='OPEN'){
 			$(obj).closest("table").find("[name=tabBgColorRow"+idx+"]").show();
 			$(obj).closest("table").find("[name=tabShowYnRow"+idx+"]").show();
-			$(obj).closest("table").find("[name=tabTextColorRow"+idx+"]").hide();
+			$(obj).closest("table").find("[id=openBanner0]").show();
+			$(obj).closest("table").find("[id=openBanner1]").show();
+			$(obj).closest("table").find("[name=file]").closest('div').find('label').text('파일선택');
+			$(obj).closest("table").find("[name=imgPath]").val('');
+			$(obj).closest("table").find("[name=newImgFile]").val('');
+			$("#bannerPreViewUrlPop_0").attr('src', '');
+			$("#imgViewPop_0").removeClass("on").addClass("off");
+			$("#bannerPreViewUrlPop_1").attr('src', '');
+			$("#imgViewPop_1").removeClass("on").addClass("off");
 		}else if(cateType=='IMG'){
-			$(obj).closest("table").find("[name=tabBgColorRow"+idx+"]").hide();
+			$(obj).closest("table").find("[name=tabBgColorRow"+idx+"]").show();
 			$(obj).closest("table").find("[name=tabShowYnRow"+idx+"]").hide();
-			$(obj).closest("table").find("[name=tabTextColorRow"+idx+"]").hide();
+			$(obj).closest("table").find("[id=openBanner0]").show();
+			$(obj).closest("table").find("[id=openBanner1]").hide();
+			$(obj).closest("table").find("[name=file]").closest('div').find('label').text('파일선택');
+			$(obj).closest("table").find("[name=imgPath]").val('');
+			$(obj).closest("table").find("[name=newImgFile]").val('');
+			$("#bannerPreViewUrlPop_0").attr('src', '');
+			$("#imgViewPop_0").removeClass("on").addClass("off");
+			$("#bannerPreViewUrlPop_1").attr('src', '');
+			$("#imgViewPop_1").removeClass("on").addClass("off");
 		}else if(cateType=='TEXT'){
-			$(obj).closest("table").find("[name=tabBgColorRow"+idx+"]").show();
+			$(obj).closest("table").find("[name=tabBgColorRow"+idx+"]").hide();
 			$(obj).closest("table").find("[name=tabShowYnRow"+idx+"]").hide();
-			$(obj).closest("table").find("[name=tabTextColorRow"+idx+"]").show();
+			$(obj).closest("table").find("[id=openBanner0]").hide();
+			$(obj).closest("table").find("[id=openBanner1]").hide();
+			$(obj).closest("table").find("[name=file]").closest('div').find('label').text('파일선택');
+			$(obj).closest("table").find("[name=imgPath]").val('');
+			$(obj).closest("table").find("[name=newImgFile]").val('');
+			$("#bannerPreViewUrlPop_0").attr('src', '');
+			$("#imgViewPop_0").removeClass("on").addClass("off");
+			$("#bannerPreViewUrlPop_1").attr('src', '');
+			$("#imgViewPop_1").removeClass("on").addClass("off");
 		}
 	}
 
@@ -382,7 +442,7 @@
 			if(contentsLoc=='SBM005' || contentsLoc=='SBMM005'){
 				html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddBrandDescRow(this);">브랜드소개추가</button>';
 			}
-			if(contentsLoc!='SBM005' && contentsLoc!='SBMM005') {
+			if(contentsLoc!='SBM005' && contentsLoc!='SBMM005' && contentsLoc!='SGNB001') {
 				html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddImgPopRow(this);">이미지추가</button>';
 			}
 				html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddLinkPopRow(this);">링크추가</button>';
@@ -398,14 +458,48 @@
 			html += '		<label class="rdoBtn"><input type="radio" name="cateType'+dataIdx+'" value="TEXT" onclick="fnChangeGnbCateType(this,'+dataIdx+');"/>텍스트배너</label>';
 			html += '	</td>';
 			html += '</tr>';
+
+			var src = '';
+			html += '<tr name="imgPopRow" id="openBanner0">';
+			html += '	<th>띠배너<br>이미지</th>';
+			html += '	<td><div class="uFile w300">';
+			html += '			<input id="filePop_0" name="file" type="file" class="uFileInput w300" onchange="fnPopFileUpload(this, 0)"/>';
+			html += '			<label for="filePop_0" class="uFileLabel">파일선택</label>';
+			html += '			<input type="hidden" name="imgPath" value=""/>';
+			html += '			<input type="hidden" name="newImgFile" value="" />';
+			html += '		</div>';
+			html += '	<div id="imgViewPop_0" class=';
+			if(src!=''){
+				html += '"on">';
+			}else{
+				html += '"off">';
+			}
+			html += '		<img id="bannerPreViewUrlPop_0" src="'+src+'" style="height:100px; max-width:500px;"  onclick="cfnOpenImagePreViewPopup(\'bannerPreimgViewPop\',$(this).attr(\'src\'));"/>';
+			html += '	</div></td>';
+			html += '</tr>';
+
+			html += '<tr name="imgPopRow" id="openBanner1">';
+			html += '	<th>오픈배너<br>이미지</th>';
+			html += '	<td><div class="uFile w300">';
+			html += '			<input id="filePop_1" name="file" type="file" class="uFileInput w300" onchange="fnPopFileUpload(this, 1)"/>';
+			html += '			<label for="filePop_1" class="uFileLabel">파일선택</label>';
+			html += '			<input type="hidden" name="imgPath" value=""/>';
+			html += '			<input type="hidden" name="newImgFile" value="" />';
+			html += '		</div>';
+			html += '	<div id="imgViewPop_1" class=';
+			if(src!=''){
+				html += '"on">';
+			}else{
+				html += '"off">';
+			}
+			html += '		<img id="bannerPreViewUrlPop_1" src="'+src+'" style="height:100px; max-width:500px;"  onclick="cfnOpenImagePreViewPopup(\'bannerPreimgViewPop\',$(this).attr(\'src\'));"/>';
+			html += '	</div></td>';
+			html += '</tr>';
+
 			html += '	<tr name="tabBgColorRow'+dataIdx+'">';
 			html += '		<th>배경 RGB코드</th>';
 			html += '		<td><input name="gnbBgColor'+dataIdx+'" type="text" maxlength="200" data-valid-name="배경 RGB코드" value=""/></td>';
 			html += '	</tr>';
-			html += '	<tr name="tabTextColorRow'+dataIdx+'" style="display:none;">';
-			html += '		<th>텍스트 RGB코드</th>';
-			html += '		<td><input name="gnbTextColor'+dataIdx+'" type="text" maxlength="200" data-valid-name="텍스트 RGB코드" value=""/></td>';
-			html += '	</tr>';
 			html += '	<tr name="tabShowYnRow'+dataIdx+'">';
 			html += '		<th>오늘하루 보지않기<br>노출여부</th>';
 			html += '		<td>';
@@ -457,42 +551,19 @@
 			html += '		<label class="rdoBtn"><input type="radio" name="bannerType'+dataIdx+'" value="2" >2단</label>';
 			html += '	</td>';
 			html += '</tr>';
-			/*html += '<tr id="bannerImgTr1" name="imgPopRow" style="display: none;">';
-			html += '	<th>이미지1</th>';
-			html += '	<td>';
-			html += '		<div id="ImageArea1" style="height:33px;">';
-			html += '			<span className="uFile w300">';
-			html += '									<input id="file_1" name="file" type="file" className="uFileInput w300" data-valid-name="이미지파일" onChange="fnPopFileUpload(this, 1)"/>';
-			html += '									<label htmlFor="file_1" className="uFileLabel"></label>';
-			html += '									<input type="hidden" name="imgPath" value=""/>';
-			html += '									<input type="hidden" name="newImgFile" value="" />';
-			html += '								</span>';
-			html += '			<span className="memAdd off" id="imgFileNm1"></span>';
-			html += '		</div>';
-			html += '	</td>';
-			html += '</tr>';
-			html += '<tr id="bannerLinkTr1" name="linkRow" style="display: none;">';
-			html += '	<th>링크1</th>';
-			html += '	<td><input type="text" class="w400" name="linkUrl" maxlength="300" required="required" data-valid-name="LINK" value="#"/></td>';
-			html += '</tr>';
-			html += '<tr id="bannerImgTr2" name="imgPopRow" style="display: none;">';
-			html += '	<th>이미지2</th>';
-			html += '	<td>';
-			html += '		<div id="ImageArea2" style="height:33px;">';
-			html += '			<span className="uFile w300">';
-			html += '									<input id="file_2" name="file" type="file" className="uFileInput w300" data-valid-name="이미지파일" onChange="fnPopFileUpload(this, 2)"/>';
-			html += '									<label htmlFor="file_2" className="uFileLabel"></label>';
-			html += '									<input type="hidden" name="imgPath" value=""/>';
-			html += '									<input type="hidden" name="newImgFile" value="" />';
-			html += '								</span>';
-			html += '			<span className="memAdd off" id="imgFileNm2"></span>';
-			html += '		</div>';
-			html += '	</td>';
-			html += '</tr>';
-			html += '<tr id="bannerLinkTr2" name="linkRow" style="display: none;">';
-			html += '	<th>링크2</th>';
-			html += '	<td><input type="text" class="w400" name="linkUrl" maxlength="300" required="required" data-valid-name="LINK" value="#"/></td>';
-			html += '</tr>';*/
+		}
+		if(contentsLoc=='STAB003'){
+			html += '	<tr name="tabCateRow">';
+			html += '		<th>카테고리</th>';
+			html += '		<td colspan="3">카테고리선택';
+			html += '			<select name="cate1List">';
+			html += '				<option value="">[선택]</option>';
+			for(let i=0; i<cate1List.length; i++){
+				html += '<option value="'+cate1List[i].cd+'">['+cate1List[i].cd+'] '+cate1List[i].cdNm+'</option>';
+			}
+			html += '			</select>';
+			html += '		</td>';
+			html += '	</tr>';
 		}
 		html += '</thead><tbody>';
 		html += '</tbody></table>';
@@ -547,40 +618,6 @@
 		$("#mcTable"+tableDataId+" .planArea").find("input[name=planSq"+tableDataId+"]").val(result[0].planSq);
 	}
 
-	// SMM005 데이터 validation 체크
-	/*function smm005DataValidation(){
-		$(".mcTable").each(function(i){
-			var thisIdx = $(this).find("input[name=tableIdx]").val();
-			var contentsType = $(this).find("input:radio[name=bannerType"+thisIdx+"]:checked").val();
-
-			var imgPath1 = $(this).find("[id=ImageArea1]").find("input[name=imgPath]").val();
-			var imgPath2 = $(this).find("[id=ImageArea2]").find("input[name=imgPath]").val();
-			var link1 = $(this).find("[id=bannerLinkTr1]").find("input[name=linkUrl]").val();
-			var link2 = $(this).find("[id=bannerLinkTr2]").find("input[name=linkUrl]").val();
-
-			if(gagajf.isNull(imgPath1)){
-				mcxDialog.alert('배너1 이미지를 선택해주세요.');
-				return false;
-			}
-			if(gagajf.isNull(link1)){
-				mcxDialog.alert('배너1 링크를 선택해주세요.');
-				return false;
-			}
-
-			if(contentsType==2){
-				if(gagajf.isNull(imgPath2)){
-					mcxDialog.alert('배너2 이미지를 선택해주세요.');
-					return false;
-				}
-				if(gagajf.isNull(link2)){
-					mcxDialog.alert('배너2 링크를 선택해주세요.');
-					return false;
-				}
-			}
-		});
-		return true;
-	}*/
-
 	// SMM001 데이터 validation 체크
 	function smm001DataValidation(){
 		$(".mcTable").each(function(i){
@@ -607,6 +644,20 @@
 		return true;
 	}
 
+	// STAB003 데이터 validation 체크
+	function stab003DataValidation(){
+		$(".mcTable").each(function(i){
+			var cateValue = $(this).find("tr[name=tabCateRow]").find("select[name=cate1List] option:selected").val();
+			console.log('cateValue::'+cateValue);
+			if(gagajf.isNull(cateValue)){
+				mcxDialog.alert('적용할 카테고리를 선택해주세요.');
+				return false;
+			}
+		});
+
+		return true;
+	}
+
 	/**
 	 * 임시저장
 	 */
@@ -622,11 +673,11 @@
 			}
 		}
 
-		/*if(contentsLoc=='SMM005'){
-			if(!smm005DataValidation()){
+		if(contentsLoc=='STAB003'){
+			if(!stab003DataValidation()){
 				return false;
 			}
-		}*/
+		}
 
 		var titleBool = true;
 		$("#popSortable").find('input[name=title]').each(function(idx, title) {
@@ -719,10 +770,6 @@
 			if(contentsLoc=='SMM005'){
 				var thisIdx = $(this).find("input[name=tableIdx]").val();
 				contentsType = $(this).find("input:radio[name=bannerType"+thisIdx+"]:checked").val();
-				/*imgPath1 = $(this).find("#ImageArea1").find("input[name=imgPath]").val();
-				strVar1 = $(this).find("#bannerLinkTr1").find("input[name=linkUrl]").val();
-				imgPath2 = $(this).find("#ImageArea2").find("input[name=imgPath]").val();
-				strVar2 = $(this).find("#bannerLinkTr2").find("input[name=linkUrl]").val();*/
 			}
 
 			if(contentsLoc=='SCM002' || contentsLoc=='SCM003'){
@@ -732,6 +779,11 @@
 				strVar1 = $(this).find("input:radio[name=dispCnt]:checked").val();
 			}
 
+			if(contentsLoc=='STAB003'){
+				var cateValue = $(this).find("tr[name=tabCateRow]").find("select[name=cate1List] option:selected").val();
+				contentsType = cateValue;
+			}
+
 			var data = {cateNo : cateNo
 				, contentsLoc : contentsLoc
 				, contentsType : contentsType

+ 5 - 3
src/main/webapp/WEB-INF/views/display/MainListForm.html

@@ -406,12 +406,14 @@
 			contentsLocHtml += '<option value="SGNB001">[SGNB001] STYLE24MALL > GNB > TOP배너</option>';
 			contentsLocHtml += '<option value="STAB001">[STAB001] STYLE24MALL > GNB > 브랜드</option>';
 			contentsLocHtml += '<option value="STAB002">[STAB002] STYLE24MALL > GNB > 카테고리</option>';
+			contentsLocHtml += '<option value="STAB003">[STAB003] STYLE24MALL > GNB > 기획전배너</option>';
 			contentsLocHtml += '<option value="SKEY001">[SKEY001] STYLE24MALL > GNB > 검색어</option>';
 		}
 		if(cate1No=='1720'){
 			contentsLocHtml += '<option value="SGNB002">[SGNB001] STYLE24MALL > GNB > TOP배너(모바일)</option>';
 			contentsLocHtml += '<option value="STAB001">[STAB001] STYLE24MALL > GNB > 브랜드</option>';
 			contentsLocHtml += '<option value="STAB002">[STAB002] STYLE24MALL > GNB > 카테고리</option>';
+			contentsLocHtml += '<option value="STAB003">[STAB003] STYLE24MALL > GNB > 기획전배너</option>';
 			contentsLocHtml += '<option value="SKEY001">[SKEY001] STYLE24MALL > GNB > 검색어</option>';
 		}
 		for(var i=0; i<contentsLocList.length; i++){
@@ -560,7 +562,7 @@
 		var contentLocCheck = true;
 
 		$("#mainSortable tbody").each(function(ind){
-			var contentsTitle = $(this).find('input[name="contentsTitle"]').val();
+
 			var orgFileNm = $(this).find('input:hidden[name="orgFileNm"]').val();
 			var sysFileNm = $(this).find('input:hidden[name="sysFileNm"]').val();
 			var newSysFileNm = $(this).find('input:hidden[name="newSysFileNm"]').val();
@@ -596,7 +598,7 @@
 						, sysFileNm : sysFileNm
 						, newSysFileNm : newSysFileNm
 						, brandGroupNo : brandGroupNo
-						, contentsTitle : contentsTitle
+						, contentsTitle : $(this).find('input[name="contentsTitle"]').val()
 					};
 					dataArr.push(data);
 				}
@@ -614,7 +616,7 @@
 			mcxDialog.alert("저장할 데이터가 없습니다.");
 			return;
 		}
-		
+		//console.log(dataArr);
 		var jsonData = JSON.stringify(dataArr);
 		mcxDialog.confirm('레이아웃을 저장 하시겠습니까?', {
 			cancelBtnText: "취소",

+ 23 - 4
src/main/webapp/WEB-INF/views/envset/AnswerPhaseForm.html

@@ -131,12 +131,25 @@
 						<td colspan="5">
 							<input type="text" name="ansTitle" maxlength="100" required="required" data-valid-name="답변제목"/>
 						</td>
-						
 					</tr>
 					<tr>
 						<th>답변내용<em class="required" title="필수"></em></th>
 						<td colspan="5">
-							<textarea name="ansContent" class="textareaR3" required="required"  data-valid-name="답변내용"></textarea>
+							<textarea name="ansContent" class="textareaR4" required="required"  data-valid-name="답변내용"></textarea>
+						</td>
+					</tr>
+					<tr>
+						<th>카카오템플릿코드</th>
+						<td>
+							<input type="text" name="kakaoCd" maxlength="20"/>
+						</td>
+						<th>카카오버튼명</th>
+						<td>
+							<input type="text" name="buttonNm" maxlength="50"/>
+						</td>
+						<th>카카오버튼URL</th>
+						<td>
+							<input type="text" name="buttonUrl" maxlength="100"/>
 						</td>
 					</tr>
 				</table>
@@ -162,17 +175,20 @@
 	var columnDefs = [
 		{headerName: "답변번호", field: "ansSq", width: 100, cellClass: 'text-center'},
 		{
-			headerName: "사이트", field: "siteCd", width: 150, cellClass: 'text-center',
+			headerName: "사이트", field: "siteCd", width: 100, cellClass: 'text-center',
 			valueGetter: function (params) { return gagaAgGrid.lookupValue(siteList, params.data.siteCd); }
 		},
 		{
-			headerName: "답변종류", field: "ansClsf", width: 150, cellClass: 'text-center',
+			headerName: "답변종류", field: "ansClsf", width: 100, cellClass: 'text-center',
 			valueGetter: function (params) { return gagaAgGrid.lookupValue(ansClsfList, params.data.ansClsf); }
 		},
 		{
 			headerName: "답변제목", field: "ansTitle", width: 350,
 			cellRenderer: function(params) { return '<a href="javascript:void(0);">' + params.value + '</a>'; }
 		},
+		{headerName: "카카오템플릿코드", field: "kakaoCd", width: 150, cellClass: 'text-center'},
+		{headerName: "카카오버튼명", field: "buttonNm", width: 150, cellClass: 'text-center'},
+		{headerName: "카카오버튼URL", field: "buttonUrl", width: 300},
 		{headerName: "사용여부", field: "useYn", width: 80, cellClass: 'text-center'},
 		{headerName: "등록자", field: "regNm", width: 150, cellClass: 'text-center'},
 		{
@@ -207,6 +223,9 @@
 		
 		$('#detailForm input[name=ansTitle]').val(event.data.ansTitle.replaceAll('&gt;','>')); // 답변제목
 		$('#detailForm textarea[name=ansContent]').val(event.data.ansContent); // 답변내용
+		$('#detailForm input[name=kakaoCd]').val(event.data.kakaoCd); // 카카오템플릿코드
+		$('#detailForm input[name=buttonNm]').val(event.data.buttonNm); // 카카오버튼명
+		$('#detailForm input[name=buttonUrl]').val(event.data.buttonUrl); // 카카오버튼URL
 	}
 
 	// 검색

+ 12 - 8
src/main/webapp/WEB-INF/views/marketing/CouponIssuePopupForm.html

@@ -199,7 +199,7 @@
 			headerName: "유효기간", field: "availPeriod", width: 300, cellClass: "text-center",
 			cellRenderer: function(params) {
 				return params.data.pdGb == 'P' ? gagaAgGrid.toDateTimeFormat(params.data.availStdt)
-					+ '~' + gagaAgGrid.toDateTimeFormat(params.data.availStdt) : gagaAgGrid.toAddComma(params.data.availDays) + '일';
+					+ '~' + gagaAgGrid.toDateTimeFormat(params.data.availEddt) : gagaAgGrid.toAddComma(params.data.availDays) + '일';
 			}
 		},
 		{headerName: "발행제한여부", field: "pubLimitYn", width: 100, cellClass: "text-center"},
@@ -296,13 +296,17 @@
 	var fnBindCouponInfo = function(params) {
 		$('#couponIssueForm input[name=cpnId]').val(params.cpnId);
 		$('#couponIssueForm input[name=pdGb]').val(params.pdGb);
-		$('#couponIssueForm input[name=availStdt]').val(gagaAgGrid.toDateFormat(params.availStdt));
-		$("#couponIssueForm select[name=availStHH]").val(params.availStdt.substring(8,10));
-		$("#couponIssueForm select[name=availStMM]").val(params.availStdt.substring(10,12));
-		$('#couponIssueForm input[name=availEddt]').val(gagaAgGrid.toDateFormat(params.availEddt));
-		$("#couponIssueForm select[name=availEdHH]").val(params.availEddt.substring(8,10));
-		$("#couponIssueForm select[name=availEdMM]").val(params.availEddt.substring(10,12));
-		$('#couponIssueForm input[name=availDays]').val(params.availDays);
+
+		if (params.pdGb === 'P') {
+			$('#couponIssueForm input[name=availStdt]').val(gagaAgGrid.toDateFormat(params.availStdt));
+			$("#couponIssueForm select[name=availStHH]").val(params.availStdt.substring(8,10));
+			$("#couponIssueForm select[name=availStMM]").val(params.availStdt.substring(10,12));
+			$('#couponIssueForm input[name=availEddt]').val(gagaAgGrid.toDateFormat(params.availEddt));
+			$("#couponIssueForm select[name=availEdHH]").val(params.availEddt.substring(8,10));
+			$("#couponIssueForm select[name=availEdMM]").val(params.availEddt.substring(10,12));
+		} else {
+			$('#couponIssueForm input[name=availDays]').val(params.availDays);
+		}
 
 		//유효기간 숨김처리
 		if (params.pdGb === 'P') {

+ 12 - 4
src/main/webapp/WEB-INF/views/marketing/PlanDetailPopupForm.html

@@ -14,7 +14,7 @@
  * 1.0  2020.02.04   sowon   최초 작성
  *******************************************************************************
  -->
-<div class="modalPopup" data-width="1280" id="planRegisterFormDiv">
+<div class="modalPopup" data-width="1395" id="planRegisterFormDiv">
 	<div class="panelStyle">
 		<div class="panelTitle">
 			<h2 th:text="${'기획전 ' + (mode == 'N' ? '등록' : '수정')}"></h2>
@@ -179,7 +179,7 @@
 						<th>PC 메인 이미지<i id="pMimgStar"></i><br/>[삭제여부<label class="chkBox"><input type="checkbox" name="orgMainPimgDelYn" value="Y"/></label>]</th>
 						<td>
 							<div th:if=*{mainPimg} id="mainPimgView" style="float:left;">
-								<img id="PreMainPimgUrl" th:src="${@environment.getProperty('upload.image.view')} + *{mainPimg}" style="max-width:720px;"/>
+								<img id="PreMainPimgUrl" th:src="${@environment.getProperty('upload.image.view')} + *{mainPimg}" style="max-width:470px;"/>
 							</div>
 						</td>
 						<td colspan="4">
@@ -195,7 +195,7 @@
 						<th>모바일 메인 이미지<i id="mMimgStar"></i><br/>[삭제여부<label class="chkBox"><input type="checkbox" name="orgMainMimgDelYn" value="Y"/></label>]</th>
 						<td>
 							<div th:if=*{mainMimg} id="imgFileView" style="float:left;">
-								<img id="PreMainMimgUrl" th:src="${@environment.getProperty('upload.image.view')} + *{mainMimg}" style="max-width:720px;"/>
+								<img id="PreMainMimgUrl" th:src="${@environment.getProperty('upload.image.view')} + *{mainMimg}" style="max-width:470px;"/>
 							</div>
 						</td>
 						<td colspan="4">
@@ -1596,7 +1596,7 @@
 				}else{false;}
 	    	}
 	    },
-		{headerName: "쿠폰아이디", field: "cpnId", width: 100, cellClass: 'text-center', cellEditor: 'numericCellEditor'
+		{headerName: "쿠폰ID", field: "cpnId", width: 80, cellClass: 'text-center', cellEditor: 'numericCellEditor'
 			,cellEditorParams: { maxlength: 3, required: true }
     	    , editable: function(params) { 
 	    		if (params.data.benefit == '쿠폰' || params.data.benefit == '포인트/쿠폰') {
@@ -1604,6 +1604,14 @@
 				}else{false;}
     		}
     	},
+    	{headerName: "포인트적용일", field: "pntUsableDay", width: 100, cellClass: 'text-center', cellEditor: 'numericCellEditor'
+			,cellEditorParams: { maxlength: 3, required: true }
+    	    , editable: function(params) { 
+	    		if (params.data.benefit == '포인트' || params.data.benefit == '포인트/쿠폰') {
+					return true;
+				}else{false;}
+    		}
+    	},
 	];
 
 	

+ 32 - 26
src/main/webapp/WEB-INF/views/order/CnclReqForm.html

@@ -909,17 +909,18 @@ var fnChangeChgReason = function(reasonCd){
 
 // 취소신청/완료
 var fnCnclReq = function (reqGbn) {
-	var temp 		= false;
-	var ordDtlStat	= cancelRequestTargetList[0].ordDtlStat;
-	var allCanYn 	= "N";
+	var temp 					= false;
+	var ordDtlStat				= cancelRequestTargetList[0].ordDtlStat;
+	var allCanYn 				= "N";
+	var allCanYnBeforePayment	= "N";
 	
-	var accountNo 	= "";
-	var accountNm 	= "";
-	var bankCd 		= "";
+	var accountNo 				= "";
+	var accountNm 				= "";
+	var bankCd 					= "";
 	
 	if (reqGbn == "cnclReq" || reqGbn == "cnclComplete") {
 		// 1. 취소수량 체크
-		for (i=0 ; i<cancelRequestTargetList.length ; i++) {		
+		for (i=0 ; i<cancelRequestTargetList.length ; i++) {
 			if (cancelRequestTargetList[i].ordCanChgQty > 0) {
 				temp = true;
 			}
@@ -938,7 +939,11 @@ var fnCnclReq = function (reqGbn) {
 		
 		// 2.1 전체취소 여부 적용
 		if (ordDtlStat == "G013_10" && $("#spanPayAmt").text() == $("#spanRefundAmt").text()) {
-			allCanYn = "Y";	
+			if (ordDtlStat == "G013_10") {
+				allCanYnBeforePayment = "Y";
+			} else {
+				allCanYn = "Y";
+			}
 		}
 		
 		// 3. 취소사유 체크
@@ -997,24 +1002,25 @@ var fnCnclReq = function (reqGbn) {
 	}
 
 	var jsonObj = {
-		"ordNo"				: $('#cancelRequestFrm input[name=ordNo]').val()
-		,"chgReason" 		: $('#cancelRequestFrm input[name=chgReason]').val()
-		,"chgMemo"			: $('#chgMemo').val()
-		,"cancelReqList" 	: cancelRequestTargetList
-		,"accountNo" 		: accountNo
-		,"accountNm" 		: accountNm
-		,"bankCd" 			: bankCd
-		,"allCanYn" 		: allCanYn
-		,"isCustomer" 		: isCustomer
-		,"chgerNm"			: chgerNm
-		,"chgerEmail"		: chgerEmail
-		,"chgerZipcode"		: ""
-		,"chgerBaseAddr"	: ""
-		,"chgerDtlAddr"		: ""
-		,"chgerPhnno"		: chgerPhnno
-		,"chgerTelno"		: chgerTelno
-		,"reqGbn"			: reqGbn
-		,"ordChgSq"			: ordChgSq
+		"ordNo"						: $('#cancelRequestFrm input[name=ordNo]').val()
+		,"chgReason" 				: $('#cancelRequestFrm input[name=chgReason]').val()
+		,"chgMemo"					: $('#chgMemo').val()
+		,"cancelReqList" 			: cancelRequestTargetList
+		,"accountNo" 				: accountNo
+		,"accountNm" 				: accountNm
+		,"bankCd" 					: bankCd
+		,"allCanYn"					: allCanYn
+		,"allCanYnBeforePayment"	: allCanYnBeforePayment
+		,"isCustomer" 				: isCustomer
+		,"chgerNm"					: chgerNm
+		,"chgerEmail"				: chgerEmail
+		,"chgerZipcode"				: ""
+		,"chgerBaseAddr"			: ""
+		,"chgerDtlAddr"				: ""
+		,"chgerPhnno"				: chgerPhnno
+		,"chgerTelno"				: chgerTelno
+		,"reqGbn"					: reqGbn
+		,"ordChgSq"					: ordChgSq
 	}
 
 	// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌