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

배송비정책용 콤보 생성

eskim 4 лет назад
Родитель
Сommit
c30b389721

+ 11 - 0
src/main/java/com/style24/admin/biz/dao/TsaRendererDao.java

@@ -7,6 +7,7 @@ import com.style24.persistence.domain.Brand;
 import com.style24.persistence.domain.Color;
 import com.style24.persistence.domain.CommonCode;
 import com.style24.persistence.domain.DeliveryLoc;
+import com.style24.persistence.domain.DelvFeePolicy;
 import com.style24.persistence.domain.Itemkind;
 import com.style24.persistence.domain.SupplyCompany;
 
@@ -234,6 +235,16 @@ public interface TsaRendererDao {
 	 * @since 2020. 11. 24
 	 */
 	Collection<CommonCode> getSupplyDeliveryFeePolicyList(String supplyCompCd);
+	
+	/**
+	 * 업체별 배송비정책 목록(정책명)
+	 *
+	 * @param supplyCompCd - 업체코드
+	 * @return 배송비정책 목록
+	 * @author eskim
+	 * @since 2021. 07. 19
+	 */
+	Collection<DelvFeePolicy> getSupplyDeliveryPolicyList(String supplyCompCd);
 
 	/**
 	 * 전체 제휴채널 목록

+ 12 - 0
src/main/java/com/style24/admin/biz/service/TsaRendererService.java

@@ -11,6 +11,7 @@ import com.style24.persistence.domain.Brand;
 import com.style24.persistence.domain.Color;
 import com.style24.persistence.domain.CommonCode;
 import com.style24.persistence.domain.DeliveryLoc;
+import com.style24.persistence.domain.DelvFeePolicy;
 import com.style24.persistence.domain.Itemkind;
 import com.style24.persistence.domain.SupplyCompany;
 
@@ -379,6 +380,17 @@ public class TsaRendererService {
 	public Collection<CommonCode> getSupplyDeliveryFeePolicyList(String supplyCompCd) {
 		return rendererDao.getSupplyDeliveryFeePolicyList(supplyCompCd);
 	}
+	
+	/**
+	 * 업체별 배송비정책 목록(정책명)
+	 * @param supplyCompCd - 공급업체코드
+	 * @return 배송비정책 목록
+	 * @author eskim
+	 * @since 2021. 07. 19
+	 */
+	public Collection<DelvFeePolicy> getSupplyDeliveryPolicyList(String supplyCompCd) {
+		return rendererDao.getSupplyDeliveryPolicyList(supplyCompCd);
+	}
 
 //	/**
 //	 * 직송매장 목록

+ 14 - 0
src/main/java/com/style24/admin/biz/web/TsaRendererController.java

@@ -13,6 +13,7 @@ import com.style24.admin.biz.service.TsaRendererService;
 import com.style24.admin.support.controller.TsaBaseController;
 import com.style24.persistence.domain.Color;
 import com.style24.persistence.domain.CommonCode;
+import com.style24.persistence.domain.DelvFeePolicy;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -107,6 +108,19 @@ public class TsaRendererController extends TsaBaseController {
 	public Collection<CommonCode> getDeliveryFeeList(@PathVariable String supplyCompCd) {
 		return rendererService.getSupplyDeliveryFeePolicyList(supplyCompCd);
 	}
+	
+	/**
+	 * 업체별 배송비정책 목록(정책명)
+	 * @param supplyCompCd - 공급업체코드
+	 * @return
+	 * @author eskim
+	 * @since 2021. 07. 19
+	 */
+	@GetMapping("/delvPolicy/list/{supplyCompCd}")
+	@ResponseBody
+	public Collection<DelvFeePolicy> getSupplyDeliveryPolicyList(@PathVariable String supplyCompCd) {
+		return rendererService.getSupplyDeliveryPolicyList(supplyCompCd);
+	}
 
 	/**
 	 * 벤더외부몰 목록

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

@@ -22,5 +22,7 @@ public class DelvFeePolicy extends TscBaseDomain {
 	private int rtnDelvFee;			// 반품배송비
 	private String useYn;			// 사용여부
 	private String distributionGb;	// 유통구분
+	
+	private String delvFeeNm;		// 배송비정책명
 
 }

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

@@ -393,6 +393,22 @@
 		ORDER BY DELV_FEE_CD
 	</select>
 	
+	<!-- 업체별 배송비정책 목록(정책명) -->
+	<select id="getSupplyDeliveryPolicyList" parameterType="String" resultType="DelvFeePolicy">
+		/* TsaRenderer.getSupplyDeliveryPolicyList */
+		SELECT DELV_FEE_CD
+			 , CASE WHEN DELV_FEE_CRITE = 'G078_10' THEN CONCAT('무료배송',MIN_ORD_AMT,'원/','배송비', DELV_FEE,'원' )
+		            WHEN DELV_FEE_CRITE = 'G078_20' THEN '무료배송'
+		            ELSE CONCAT('유료배송', DELV_FEE,'원' ) END DELV_FEE_NM
+		     , MIN_ORD_AMT
+		     , DELV_FEE
+		FROM TB_DELV_FEE_POLICY
+		WHERE 1=1
+		AND SUPPLY_COMP_CD = #{supplyCompCd}
+		AND USE_YN = 'Y'
+		ORDER BY DELV_FEE_CD
+	</select>
+	
 	<!-- 전체 제휴채널 목록 -->
 	<select id="getAllAflinkList" resultType="CommonCode">
 		/* TsaRenderer.getAllAflinkList */

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

@@ -1096,7 +1096,8 @@
 			$('#goodsDetailForm input[name=sellEdYMD]').val(result.sellEddt.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD") );
 			$('#goodsDetailForm input[name=sellEdHH]').val(result.sellEddt.toDate("YYYYMMDDHHmmss").format("HH") );
 			
-			cfnCreateCombo('/renderer/delvFee/list/' + result.supplyCompCd, $('#goodsDetailForm select[name=delvFeeCd]'), "[선택]", result.delvFeeCd);
+			//cfnCreateCombo('/renderer/delvFee/list/' + result.supplyCompCd, $('#goodsDetailForm select[name=delvFeeCd]'), "[선택]", result.delvFeeCd);
+			cfnCreateDelvPolicyCombo( result.supplyCompCd, $('#goodsDetailForm select[name=delvFeeCd]'), "[선택]", result.delvFeeCd);
 			$('#goodsDetailForm input[name=delvFeeCdOrg]').val(result.delvFeeCd);
 			cfnCreateCombo('/renderer/delvloc/list/' + result.supplyCompCd, $('#goodsDetailForm select[name=delvLocCd]'), "[선택]", result.delvLocCd);
 			$('#goodsDetailForm input[name=delvLocCdOrg]').val(result.delvLocCd);
@@ -2544,6 +2545,20 @@
 		});
 	});
 	
+	//배송비정책변경시
+	$('#goodsDetailForm select[name=delvFeeCd]').on('change', function() {
+		var delvFeeCd = $("#goodsDetailForm select[name=delvFeeCd]").val();
+		
+		if (gagajf.isNull(delvFeeCd)){
+			$("#goodsDetailForm input[name=delvFee]").val('');
+			$("#goodsDetailForm input[name=minOrdAmt]").val('');
+		}else{
+			
+			var obj = $('#goodsDetailForm select[name=delvFeeCd] option:selected');
+			$("#goodsDetailForm input[name=delvFee]").val(obj.attr("delvFee").addComma());
+			$("#goodsDetailForm input[name=minOrdAmt]").val(obj.attr("minOrdAmt").addComma());
+		}
+	});	
 
 	//품목코드변경시
 	$('#goodsDetailForm select[name=itemkindCd]').on('change', function() {

+ 16 - 3
src/main/webapp/WEB-INF/views/goods/GoodsListForm.html

@@ -380,7 +380,7 @@
 							<th>판매일시</th>
 							<td colspan="7">
 								<input name="sellStYMDC" id="sellStYMDC" type="text" class="w80 schDate" maxlength="10" required="required" data-valid-name="판매시작일" />
-								<select name="sellStHHC" id="sellStHCHC" required="required" data-valid-name="판매 시작시간">
+								<select name="sellStHHC" id="sellStHHC" required="required" data-valid-name="판매 시작시간">
 									<th:block th:each="num, index  : ${#numbers.sequence(0,23)}">
 									<option  th:value="${#numbers.formatInteger(num,2)}" th:text="|${#numbers.formatInteger(num,2)}시|" th:selected="${#numbers.formatInteger(num,2)}==0 ? 'true'">시간</option>
 									</th:block>
@@ -785,6 +785,19 @@
 				});	
 				return false;
 			}
+			
+			var fromDate = $("#searchForm input[name=sellStYMDC]").val().replaceAll('-', '')+ $("#searchForm select[name=sellStHHC]").val();
+			var toDate = $("#searchForm input[name=sellEdYMDC]").val().replaceAll('-', '')+ $("#searchForm select[name=sellEdHHC]").val();
+
+			if (fromDate > toDate) {
+				mcxDialog.alertC("판매기간의 시작일시는 종료일시 보다 클 수 없습니다.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() {
+						$('#searchForm input[name=sellStYMDC]').focus();
+					}
+				});
+				return false;
+			}
 
 		}else{
 			if (gagajf.isNull($(objId).val())){
@@ -1154,9 +1167,9 @@
 			sIndex++; 
 			arrSupplyComp.push(supplyComp.supplyCompCd);
 		});
-		
+
 		$('#searchForm input[name=statSupplyCompCd]').val(arrSupplyComp[0]);
-		cfnCreateCombo('/renderer/delvFee/list/' + $('#searchForm input[name=statSupplyCompCd]').val(), $('#searchForm select[name=delvFeeCdC]'), "[선택]");
+		cfnCreateDelvPolicyCombo( $('#searchForm input[name=statSupplyCompCd]').val(), $('#searchForm select[name=delvFeeCdC]'), "[선택]");
 	}
 	
 	// 상품이미지 미리보기 레이어에서 창 종료 이벤트

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

@@ -661,7 +661,8 @@
 		
 		//배송지 정책
 		$("#goodsDetailForm select[name=delvFeeCd] option:gt(0)").remove();
-		cfnCreateCombo("/renderer/delvFee/list/" + supplyCompCd, $('#goodsDetailForm select[name=delvFeeCd]'), "[선택]", '');
+		cfnCreateDelvPolicyCombo( supplyCompCd, $('#goodsDetailForm select[name=delvFeeCd]'), "[선택]");
+		//cfnCreateCombo("/renderer/delvFee/list/" + supplyCompCd, $('#goodsDetailForm select[name=delvFeeCd]'), "[선택]", '');
 		
 		//출고처
 		$("#goodsDetailForm select[name=delvLocCd] option:gt(0)").remove();
@@ -691,10 +692,10 @@
 			$("#goodsDetailForm input[name=delvFee]").val('');
 			$("#goodsDetailForm input[name=minOrdAmt]").val('');
 		}else{
-			var arrDelvFeeed = $('#goodsDetailForm select[name=delvFeeCd] option:selected').text().split('/');
-			$("#goodsDetailForm input[name=delvFee]").val(arrDelvFeeed[1].addComma());
-			var minOrdAmt = arrDelvFeeed[0].split(']');
-			$("#goodsDetailForm input[name=minOrdAmt]").val(minOrdAmt[1].addComma());
+			
+			var obj = $('#goodsDetailForm select[name=delvFeeCd] option:selected');
+			$("#goodsDetailForm input[name=delvFee]").val(obj.attr("delvFee").addComma());
+			$("#goodsDetailForm input[name=minOrdAmt]").val(obj.attr("minOrdAmt").addComma());
 		}
 	});	
 	

+ 52 - 0
src/main/webapp/ux/js/admin.common.js

@@ -207,6 +207,58 @@ var cfnCreateMultiCombo = function(actionUrl, oTarget, defaultTxt, chooseValArr,
 	}
 }
 
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : Combobox 구성
+ * <pre>
+ *     cfnCreateDelvPolicyCombo("3", oTarget, "[선택]");
+ * </pre>
+ * @param  : supplyCompCd - 업체코드. 필수
+ *           oTarget - target 오브젝트. 필수
+ *           defaultTxt - default 텍스트([선택]/[전체]). option
+ *           chooseCd - 선택된 코드 값. option
+ *           isCodeDisp - 코드표시(true/false). option
+ * @return : None
+ * @since  : 2021/07/19
+ * @author : eskim
+ */
+var cfnCreateDelvPolicyCombo = function(supplyCompCd, oTarget, defaultTxt, chooseCd, isCodeDisp) {
+	if (gagajf.isNull(isCodeDisp)) isCodeDisp = true;
+
+	var actionUrl = '/renderer/delvPolicy/list/' + supplyCompCd;
+	$.getJSON(actionUrl
+		, function(result, status) {
+			if (status == 'success') {
+				$('option', oTarget).remove();
+
+				if (!gagajf.isNull(defaultTxt)) {
+					$(oTarget).append('<option value="">' + defaultTxt + '</option>');
+				}
+
+				$.each(result, function(idx, data) {
+					var tag = '<option value="' + data.delvFeeCd + '"';
+
+					if (!gagajf.isNull(chooseCd) && chooseCd == data.delvFeeCd) {
+						tag += ' selected';
+					}
+					
+					tag += ' minOrdAmt="' + data.minOrdAmt+ '"' ;
+					tag += ' delvFee="' + data.delvFee+ '"' ;
+
+					if (isCodeDisp) {
+						tag += '>[' + data.delvFeeCd + '] ' + data.delvFeeNm + '</option>';
+					} else {
+						tag += '>' + data.delvFeeNm + '</option>';
+					}
+
+					$(oTarget).append(tag);
+				});
+			}
+		});
+}
+
+
 /**
  * @type   : function
  * @access : public