فهرست منبع

상품상세 출고처 추가, 딜상품 출고처 처리

eskim 4 سال پیش
والد
کامیت
83eec1d931

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

@@ -25,6 +25,7 @@ public class GoodsMass extends TscBaseDomain {
 	private String listPrice;	//정상가(최초판매가)
 	private String currPrice;	//현재판매가
 	private String costPrice;	//원가
+	private String delvLocCd;	//출고처코드
 	private String delvFeeCd;	//배송비정책코드
 	private String originCd;	//제조국(원산지)
 	private String makeYmd;		//제조연월일

+ 1 - 0
src/main/java/com/style24/persistence/mybatis/shop/TssGoods.xml

@@ -118,6 +118,7 @@
 		              , G.RETURNABLE_YN
 		              , G.NEW_CUST_ORD_YN
 		              , G.GIFT_PACK_YN
+		              , G.DELV_LOC_CD
 		              , G.DELV_FEE_CD
 		              , G.MAIN_COLOR_CD
 		              , DATE_FORMAT(G.FRST_CFRM_DT, '%Y%m%d%H%i%S') AS FRST_CFRM_DT

+ 11 - 0
src/main/java/com/style24/persistence/mybatis/shop/TssRenderer.xml

@@ -381,4 +381,15 @@
 		ORDER  BY SUPPLY_COMP_CD, DISP_ORD
 	</select>
 
+	<!-- 업체별 출고처 목록 -->
+	<select id="getSupplyDeliveryLocList" parameterType="String" resultType="CommonCode">
+		/* TsaRenderer.getSupplyDeliveryLocList */
+		SELECT DELV_LOC_CD   AS CD
+		     , DELV_LOC_NM   AS CD_NM
+		FROM   TB_DELIVERY_LOC
+		WHERE  1 = 1
+		AND    SUPPLY_COMP_CD = #{supplyCompCd}
+		AND    USE_YN = 'Y'
+		ORDER  BY DELV_LOC_CD
+	</select>
 </mapper>

+ 13 - 0
src/main/java/com/style24/scm/biz/dao/TssRendererDao.java

@@ -231,5 +231,18 @@ public interface TssRendererDao {
 	 * @since  2021-01-14
 	 */
 	Collection<CommonCode> getSelfBrandList();
+	
+	
+	/**
+	 * 업체별 출고처 목록
+	 *
+	 * @param supplyCompCd - 업체코드
+	 * @return 업체별 출고처 목록
+	 * @author eskim
+	 * @since 2021. 06. 16
+	 */
+	Collection<CommonCode> getSupplyDeliveryLocList(String supplyCompCd);
+	
+	
 
 }

+ 72 - 30
src/main/java/com/style24/scm/biz/service/TssGoodsService.java

@@ -761,44 +761,60 @@ public class TssGoodsService {
 		goodsDao.createGoodsDetailDescHst(goodsDesc);
 
 		// 상세 타이틀
-		goodsDesc.setDescGb("10");
-		goodsDesc.setGoodsDesc(goods.getGoodsTitlesDesc());
-		this.saveGoodsDesc(goodsDesc);
+		if (!StringUtils.isEmpty(goods.getGoodsTitlesDesc())) {
+			goodsDesc.setDescGb("10");
+			goodsDesc.setGoodsDesc(goods.getGoodsTitlesDesc());
+			this.saveGoodsDesc(goodsDesc);
+		}
 
 		// 상세 내용
-		goodsDesc.setDescGb("20");
-		goodsDesc.setGoodsDesc(goods.getGoodsContentsDesc());
-		this.saveGoodsDesc(goodsDesc);
+		if (!StringUtils.isEmpty(goods.getGoodsContentsDesc())) {
+			goodsDesc.setDescGb("20");
+			goodsDesc.setGoodsDesc(goods.getGoodsContentsDesc());
+			this.saveGoodsDesc(goodsDesc);
+		}
 
 		// 상세 특징
-		goodsDesc.setDescGb("30");
-		goodsDesc.setGoodsDesc(goods.getGoodsCharacterDesc());
-		this.saveGoodsDesc(goodsDesc);
+		if (!StringUtils.isEmpty(goods.getGoodsCharacterDesc())) {
+			goodsDesc.setDescGb("30");
+			goodsDesc.setGoodsDesc(goods.getGoodsCharacterDesc());
+			this.saveGoodsDesc(goodsDesc);
+		}
 
 		// PC 상단
-		goodsDesc.setDescGb("40");
-		goodsDesc.setGoodsDesc(goods.getGoodsPcTopDesc());
-		this.saveGoodsDesc(goodsDesc);
+		if (!StringUtils.isEmpty(goods.getGoodsPcTopDesc())) {
+			goodsDesc.setDescGb("40");
+			goodsDesc.setGoodsDesc(goods.getGoodsPcTopDesc());
+			this.saveGoodsDesc(goodsDesc);
+		}	
 
 		// PC 하단
-		goodsDesc.setDescGb("50");
-		goodsDesc.setGoodsDesc(goods.getGoodsPcDownDesc());
-		this.saveGoodsDesc(goodsDesc);
+		if (!StringUtils.isEmpty(goods.getGoodsPcTopDesc())) {
+			goodsDesc.setDescGb("50");
+			goodsDesc.setGoodsDesc(goods.getGoodsPcTopDesc());
+			this.saveGoodsDesc(goodsDesc);
+		}	
 
 		// MO 상단
-		goodsDesc.setDescGb("60");
-		goodsDesc.setGoodsDesc(goods.getGoodsMobileTopDesc());
-		this.saveGoodsDesc(goodsDesc);
+		if (!StringUtils.isEmpty(goods.getGoodsMobileTopDesc())) {
+			goodsDesc.setDescGb("60");
+			goodsDesc.setGoodsDesc(goods.getGoodsMobileTopDesc());
+			this.saveGoodsDesc(goodsDesc);
+		}
 
 		// MO 하단
-		goodsDesc.setDescGb("70");
-		goodsDesc.setGoodsDesc(goods.getGoodsMobileDownDesc());
-		this.saveGoodsDesc(goodsDesc);
-
-		// 상품상세(as-is,입점
-		goodsDesc.setDescGb("80");
-		goodsDesc.setGoodsDesc(goods.getGoodsDesc());
-		this.saveGoodsDesc(goodsDesc);
+		if (!StringUtils.isEmpty(goods.getGoodsMobileDownDesc())) {
+			goodsDesc.setDescGb("70");
+			goodsDesc.setGoodsDesc(goods.getGoodsMobileDownDesc());
+			this.saveGoodsDesc(goodsDesc);
+		}	
+
+		// 상품상세(as-is,입점)
+		if (!StringUtils.isEmpty(goods.getGoodsDesc())) {
+			goodsDesc.setDescGb("80");
+			goodsDesc.setGoodsDesc(goods.getGoodsDesc());
+			this.saveGoodsDesc(goodsDesc);
+		}	
 	}
 
 	/**
@@ -1846,10 +1862,11 @@ public class TssGoodsService {
 	 * @since 2021. 01. 19
 	 */
 	@Transactional("shopTxnManager")
-	public String createExceluploadGoods(GagaMap gagaMap, String procJob, String delvFeeCd) {
+	public String createExceluploadGoods(GagaMap gagaMap, String procJob, String delvFeeCd, String delvLocCd) {
 
 		GoodsMass goodsMass = mapper.convertValue(gagaMap, GoodsMass.class);
-		goodsMass.setDelvFeeCd(delvFeeCd);	// 화면입력값 적용
+		goodsMass.setDelvFeeCd(delvFeeCd);	// 화면입력값 적용- 배송비
+		goodsMass.setDelvLocCd(delvLocCd);	// 화면입력값 적용- 출고처
 
 		// 상품기본정보
 		Goods goods = this.createGoodsInfo(goodsMass, procJob);
@@ -2350,7 +2367,31 @@ public class TssGoodsService {
 
 		// 배송비 정책
 		goods.setDelvFeeCd(goodsMass.getDelvFeeCd()); // 화면에서 받은값
+		
+		// 출고처 적용
+		boolean delvLocCd = false;
+		Collection<CommonCode> supplyDeliveryLocList = rendererService.getSupplyDeliveryLocList(goods.getSupplyCompCd());
+		if (supplyDeliveryLocList != null && !supplyDeliveryLocList.isEmpty()) {
+			for (CommonCode supplyDeliveryLoc : supplyDeliveryLocList) {
+				if (goodsMass.getDelvLocCd().equals(supplyDeliveryLoc.getCd())) {
+					delvLocCd = true;
+					break;
+				}
+			}
+			if (!delvLocCd) {
+				goods.setGoodsRegMsg("출고처 오류");
+				goods.setGoodsStat("10");
+				return goods;
+			}
+		} else {
+			goods.setGoodsRegMsg("출고처 오류");
+			goods.setGoodsStat("10");
+			return goods;
+		}
 
+		// 출고처 정책
+		goods.setDelvLocCd(goodsMass.getDelvLocCd()); // 화면에서 받은값
+		
 		// 원산지 / 제조국
 		if (StringUtils.isBlank(goodsMass.getOriginCd())) {
 			goods.setGoodsRegMsg("원산지 오류");
@@ -3849,6 +3890,7 @@ public class TssGoodsService {
 		regGoods.setFormalGb("G009_10"); // 정상 기본값 처리
 		regGoods.setGoodsGb("G073_11"); // 신규
 		regGoods.setTaxGb("10"); // 과세구분
+		regGoods.setTobeFormYn("N"); 
 
 		Collection<GoodsCompose> goodsComposeList = null;
 		try {
@@ -3874,12 +3916,13 @@ public class TssGoodsService {
 				regGoods.setSupplyCompCd(extendGoods.getSupplyCompCd());
 				regGoods.setFormalGb(extendGoods.getFormalGb());
 				regGoods.setSelfGoodsYn(extendGoods.getSelfGoodsYn());
+				regGoods.setDelvLocCd(extendGoods.getDelvLocCd()); //출고처
 			}
 
 			if ("Y".equals(goodsCompose.getRepYn())) {
 				regGoods.setListPrice(extendGoods.getCurrPrice());
 				regGoods.setCurrPrice(extendGoods.getCurrPrice());
-				regGoods.setDcRate((int)(this.getDcRate(goods.getCurrPrice(), goods.getCurrPrice())));
+				regGoods.setDcRate((int)(this.getDcRate(regGoods.getListPrice(), regGoods.getCurrPrice())));
 			}
 		}
 
@@ -3956,7 +3999,6 @@ public class TssGoodsService {
 		// 판매기간설정
 		regGoods.setSellStdt(GagaDateUtil.getToday() + "000000");
 		regGoods.setSellEddt("30001231235959");
-		regGoods.setTobeFormYn("Y");
 
 		goodsDao.createGoods(regGoods); // 상품기본 저장
 		goodsDao.createGoodsSmmary(regGoods); // 상품통계 생성

+ 11 - 0
src/main/java/com/style24/scm/biz/service/TssRendererService.java

@@ -512,5 +512,16 @@ public class TssRendererService {
 	public Collection<CommonCode> getSelfBrandList() {
 		return rendererDao.getSelfBrandList();
 	}
+	
+	/**
+	 * 업체별 출고처 목록
+	 * @param supplyCompCd - 공급업체코드
+	 * @return 업체별 출고처 목록
+	 * @author eskim
+	 * @since 2021. 06. 16
+	 */
+	public Collection<CommonCode> getSupplyDeliveryLocList(String supplyCompCd) {
+		return rendererDao.getSupplyDeliveryLocList(supplyCompCd);
+	}
 
 }

+ 8 - 2
src/main/java/com/style24/scm/biz/web/TssGoodsController.java

@@ -452,6 +452,8 @@ public class TssGoodsController extends TssBaseController {
 		mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
 		// 회원등급
 		//mav.addObject("custGradeList", rendererService.getAvailCommonCodeList("G110"));
+		// 출고처
+		mav.addObject("deliveryLocList", rendererService.getSupplyDeliveryLocList(supplyCompCd));
 
 		mav.addObject("params", goods);
 
@@ -1134,6 +1136,8 @@ public class TssGoodsController extends TssBaseController {
 		String supplyCompCd = TssSession.getInfo().getSupplyCompCd();
 		// 업체별 배송비 목록
 		mav.addObject("supplyDeliveryFeePolicyList", rendererService.getSupplyDeliveryFeePolicyList(supplyCompCd));
+		// 업체별 출고처 목록
+		mav.addObject("supplyDeliveryLocList", rendererService.getSupplyDeliveryLocList(supplyCompCd));
 
 		mav.addObject("supplyCompCd", supplyCompCd);
 		mav.setViewName("goods/GoodsMassRegisterForm");
@@ -1227,7 +1231,7 @@ public class TssGoodsController extends TssBaseController {
 			}
 
 			for (GagaMap gagaMap : ecxelGoodsList) {
-				goodsService.createExceluploadGoods(gagaMap, goodsMass.getProcJob(), goodsMass.getDelvFeeCd());
+				goodsService.createExceluploadGoods(gagaMap, goodsMass.getProcJob(), goodsMass.getDelvFeeCd(), goodsMass.getDelvLocCd());
 			}
 
 		}
@@ -1692,7 +1696,7 @@ public class TssGoodsController extends TssBaseController {
 		// 정보고시 분류
 		mav.addObject("niClsfCdList", rendererService.getAvailCommonCodeList("G004"));
 		// 사용자 브랜드 조회
-		mav.addObject("authBrandList", rendererService.getSupplyCompanyBrandList(TssSession.getInfo().getSupplyCompCd()));
+		mav.addObject("authBrandList", rendererService.getSupplyCompanyBrandList(supplyCompCd));
 		// 상품타입
 		mav.addObject("goodsTypeList", rendererService.getAvailCommonCodeList("G056"));
 		// 상품구분
@@ -1715,6 +1719,8 @@ public class TssGoodsController extends TssBaseController {
 		mav.addObject("styleYearList", rendererService.getYearList(toYear, 0, 5));
 		// 회원등급
 		//mav.addObject("custGradeList", rendererService.getAvailCommonCodeList("G110"));
+		// 출고처
+		mav.addObject("delvLocCdList", rendererService.getSupplyDeliveryLocList(supplyCompCd));
 
 		//mav.addObject("params", goods);
 		mav.setViewName("goods/GoodsRegisterForm");

+ 13 - 0
src/main/java/com/style24/scm/biz/web/TssRendererController.java

@@ -188,5 +188,18 @@ public class TssRendererController extends TssBaseController {
 	public Collection<CommonCode> getDeliveryFeeList(@PathVariable String supplyCompCd) {
 		return rendererService.getSupplyDeliveryFeePolicyList(supplyCompCd);
 	}
+	
+	/**
+	 * 출고처 목록
+	 * @param supplyCompCd - 공급업체코드
+	 * @return
+	 * @author eskim
+	 * @since 2021. 06. 17
+	 */
+	@GetMapping("/delvLoc/list/{supplyCompCd}")
+	@ResponseBody
+	public Collection<CommonCode> getDeliveryLocList(@PathVariable String supplyCompCd) {
+		return rendererService.getSupplyDeliveryLocList(supplyCompCd);
+	}
 
 }

+ 3 - 0
src/main/webapp/WEB-INF/views/goods/GoodsDealForm.html

@@ -144,6 +144,8 @@
 			valueParser: function (params) { return gagaAgGrid.lookupKey(goodsStatList, params.newValue); }
 		},
 		{headerName: "수량", field: "qty" , width: 80, cellClass: 'text-right',hide:true}
+		,
+		{headerName: "출고처", field: "delvLocCd" , width: 80, cellClass: 'text-right',hide:true}
 	];
 
 	// Get GridOptions
@@ -264,6 +266,7 @@
 						, currPrice : goods.currPrice
 						, selfGoodsYn : goods.selfGoodsYn
 						, sysImgNm : goods.sysImgNm
+						, delvLocCd : goods.delvLocCd
 						};
 				//그리드 마지막에 추가해야함
 				gridGoodsDealOptions.api.updateRowData({add: [data], addIndex: idx});

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

@@ -267,7 +267,7 @@
 									</tr>
 									<tr>
 										<th>품목코드<em class="required" title="필수"></em></th>
-										<td colspan="5">
+										<td colspan="3">
 											<select  name="itemkindCd" id="itemkindCd" th:disabled="${sessionInfo.roleCd != 'G001_B000'}">
 												<option th:if="${itemkindList}" th:each="oneData, status : ${itemkindList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 											</select>
@@ -276,7 +276,12 @@
 											<button type="button" class="btn btn-success btn-lg" id="btnGoodsItemkindChange">품목변경</button>
 											</th:block>
 										</td>
-										
+										<th>출고처<em class="required" title="필수"></em></th>
+										<td>
+											<select name="delvLocCd"  id="delvLocCd">
+											</select>
+											<input type="hidden" id="delvLocCdOrg" name="delvLocCdOrg"/>
+										</td>
 									</tr>
 									<tr>
 										<th>반품여부<em class="required" title="필수"></em></th>
@@ -1054,6 +1059,9 @@
 			cfnCreateCombo('/renderer/delvFee/list/' + 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=delvLocdOrg]').val(result.delvLocCd);
+			
 			//상품상세
 			$('#goodsDetailForm input[name=goodsTitlesDesc]').val(result.goodsTitlesDesc);
 			// 공지내용. Summernote에 값 세팅
@@ -1434,7 +1442,7 @@
 			}
 
 			//이미지가 등록되지 않은 상품은 상태변경 불가
-			if($("#goodsDetailForm input[name=goodsImageYn]").val() == "N"){
+			/* if($("#goodsDetailForm input[name=goodsImageYn]").val() == "N"){
 				mcxDialog.alertC("이미지가 등록되지 않은 상품은 '승인대기'나 '승인완료' 상태로 변경할 수 없습니다.", {
 					sureBtnText: "확인",
 					sureBtnClick: function() {
@@ -1442,7 +1450,7 @@
 					}
 				});
 				return;
-			}
+			} */
 
 			//고시정보가 등록되지 않은 상품은 상태변경 불가 - 일반상품만 체크
 			if ("G056_N" == $("#goodsDetailForm input[name=goodsType]").val()){
@@ -1459,16 +1467,24 @@
 				idx = 0;
 				//고시정보 필수나 전시표시값 입력여부 확인
 				$("#goodsDetailForm #notiArea").find("#infoContents tr").each(function() {
-				if (typeof($(this).find("td input[name=niContent]").val()) != 'undefined' && gagajf.isNull($(this).find("td input[name=niContent]").val())){
-					optCheck = true;
-					mcxDialog.alertC("고시정보를 입력해주세요.");
+					if (typeof($(this).find("td input[name=niContent]").val()) != 'undefined' && gagajf.isNull($(this).find("td input[name=niContent]").val())){
+						optCheck = true;
+						mcxDialog.alertC("고시정보를 입력해주세요.");
+						return false;
+					}
+	
+					idx++;
+				});
+			}
+			
+			// 상품상세 - 입점
+			if ("N" == $("#goodsDetailForm input[name=selfGoodsYn]").val() && $("#goodsDetailForm input[name=goodsType]").val() == "G056_N"){ 
+				if (gagajf.isNull($("#goodsDetailForm textarea[name=goodsDesc]").val()) || "<p><br></p>" == $("#goodsDetailForm textarea[name=goodsDesc]").val() ){
+					mcxDialog.alert("상품상세정보탭의 상품상세내용을 입력해주세요.");
 					return false;
 				}
+			}	
 
-				idx++;
-			});
-			}
-			
 			// 자사일 경우 대표색상 선택 여부
 			if ("Y" == $('#goodsDetailForm input[name=selfGoodsYn]').val()){
 				
@@ -1590,6 +1606,17 @@
 			return false;
 		}
 		
+		// 출고처
+		if(gagajf.isNull($("#goodsDetailForm select[name=delvLocCd]").val())){
+			mcxDialog.alertC("출고처를 선택해 주세요.", {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$("#goodsDetailForm select[name=delvLocCd]").focus();
+				}
+			});
+			return;
+		}
+		
 		// 배송비구분
 		if(gagajf.isNull($("#goodsDetailForm select[name=delvFeeCd]").val())){
 			mcxDialog.alertC("배송비정책을 선택해 주세요.", {
@@ -1735,6 +1762,14 @@
 			return false;
 		}
 		
+		// 상품상세 - 입점
+		if ("N" == $("#goodsDetailForm input[name=selfGoodsYn]").val() && $("#goodsDetailForm input[name=goodsType]").val() == "G056_N"){ 
+			if (gagajf.isNull($("#goodsDetailForm textarea[name=goodsDesc]").val()) || "<p><br></p>" == $("#goodsDetailForm textarea[name=goodsDesc]").val() ){
+				mcxDialog.alert("상품상세정보탭의 상품상세내용을 입력해주세요.");
+				return false;
+			}
+		}
+		
 		idx = 0;
 
 		//재고 옵션 관련 확인
@@ -2195,6 +2230,10 @@
 		if ($("#goodsDetailForm input[name=returnableYnOrg]").val() != $("input[name=returnableYn]:checked").val()){
 			return true;
 		}
+		// 출고처
+		if ($("#goodsDetailForm input[name=delvLocCdOrg]").val() != $("#goodsDetailForm select[name=delvLocCd]").val()){
+			return true;
+		}
 		// 배송비정책
 		if ($("#goodsDetailForm input[name=delvFeeCdOrg]").val() != $("#goodsDetailForm select[name=delvFeeCd]").val()){
 			return true;

+ 19 - 1
src/main/webapp/WEB-INF/views/goods/GoodsMassRegisterForm.html

@@ -43,11 +43,17 @@
 					</th:block>
 					<th:block th:if="${sessionInfo.roleCd == 'G001_B000'}">
 					<span>
-						<em><b><th:block th:text="${sessionInfo.supplyCompNm}"></th:block></b></em> 업체의 배송비 정책 : &nbsp;&nbsp;
+						<em><b><th:block th:text="${sessionInfo.supplyCompNm}"></th:block></b></em> 
+						배송비 정책 : &nbsp;&nbsp;
 						<select name="delvFeeCd" id="delvFeeCd">
 							<option value="" >[선택]</option>
 							<option th:if="${supplyDeliveryFeePolicyList}" th:each="oneData, status : ${supplyDeliveryFeePolicyList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 						</select>
+						출고처 : &nbsp;&nbsp;
+						<select name="delvLocCd" id="delvLocCd">
+							<option value="" >[선택]</option>
+							<option th:if="${supplyDeliveryLocList}" th:each="oneData, status : ${supplyDeliveryLocList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+						</select>
 						<button type="button" class="btn btn-default btn-lg"  onclick="cfnDownloadSampleFile('SF005');">입점상품 등록양식 다운로드</button>
 						<button type="button" class="btn btn-primary btn-lg" id="btnGoodsCreate" >대량입점상품 등록</button>
 					</span>
@@ -229,14 +235,26 @@
 			return false;
 		}
 		
+		if (gagajf.isNull($("#massForm select[name=delvLocCd]").val())){
+			mcxDialog.alertC("출고처을 선택해주세요.",  {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$('#massForm select[name=delvLocCd]').focus();
+				}
+			});
+			return false;
+		}
+		
 		cfnExcelUploadPopup('createGoods', 'createGoods');
 	});
 
 	var createGoods = function(result){
 		var delvFeeCd = $("#massForm select[name=delvFeeCd]").val();
+		var delvLocCd = $("#massForm select[name=delvLocCd]").val();
 		var data = {procJob : result.procJob
 					,excelFileNm : result.excelFileNm
 					,delvFeeCd : delvFeeCd
+					,delvLocCd : delvLocCd 
 					};
 		var jsonData = JSON.stringify(data);
 		gagajf.ajaxJsonSubmit('/goods/mass/excelupload/create', jsonData, fnGoodsCreateCallBack);

+ 34 - 16
src/main/webapp/WEB-INF/views/goods/GoodsRegisterForm.html

@@ -231,12 +231,19 @@
 									</tr>
 									<tr>
 										<th>품목코드<em class="required" title="필수"></em></th>
-										<td colspan="5">
+										<td colspan="3">
 											<select  name="itemkindCd" id="itemkindCd"  required="required" data-valid-name="품목코드">
 												<option value="">[선택]</option>
 												<option th:if="${itemkindList}" th:each="oneData, status : ${itemkindList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
 											</select>
 										</td>
+										<th>출고처<em class="required" title="필수"></em></th>
+										<td>
+											<select name="delvLocCd" id="delvLocCd" required="required" data-valid-name="출고처">
+												<option value="">[선택]</option>
+												<option th:if="${delvLocCdList}" th:each="oneData, status : ${delvLocCdList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
+											</select>
+										</td>
 									</tr>
 									<tr>
 										<th>반품여부<em class="required" title="필수"></em></th>
@@ -370,17 +377,17 @@
 								<div class="tabsJr">
 									<!-- TABS NAVI -->
 									<ul class="tabsJrNav">
-										<li class="on"><a href="#goodstab11">타이틀/내용/특징</a></li>
-										<li><a href="#goodstab12">상세html</a></li>
+										<!-- <li class="on"><a href="#goodstab11">타이틀/내용/특징</a></li> -->
+										<li class="on"><a href="#goodstab12">상세html</a></li>
 									</ul>
 									<!-- //TABS NAVI -->
 									<!-- TABS CONTENT -->
 									<ul class="tabsJrCont">
 										<!-- TAB11 CONTENTS AREA -->
 										<!-- TAB -->
-										<li class="tabJr on" id="goodstab11">
+										<!-- <li class="tabJr on" id="goodstab11">
 											<div class="panelStyle">
-											<!-- TAB11 CONTENTS AREA -->
+											TAB11 CONTENTS AREA
 											<table class="frmStyle">
 											<colgroup>
 												<col width="15%"/>
@@ -407,8 +414,8 @@
 											</tr>
 											</table>
 											</div>
-										</li>
-										<li class="tabJr" id="goodstab12">
+										</li> -->
+										<li class="tabJr on" id="goodstab12">
 											<div class="panelStyle">
 												<!-- TAB11 CONTENTS AREA -->
 												<table class="frmStyle">
@@ -417,7 +424,7 @@
 												<col/>
 											</colgroup>
 											<tr>
-												<th>상품상세</th>
+												<th>상품상세<em class="required" title="필수"></em></th>
 												<td><div class="tabJrContArea">
 													<textarea class="textareaR4 summernote" name="goodsDesc" id="goodsDesc"></textarea>
 													</div>
@@ -878,6 +885,11 @@
 		if (!gagajf.validation(formId))
 			return false;
 
+		// 상품상세
+		if (gagajf.isNull($("#goodsDetailForm textarea[name=goodsDesc]").val()) || "<p><br></p>" == $("#goodsDetailForm textarea[name=goodsDesc]").val() ){
+			mcxDialog.alert("상품상세정보탭의 상품상세내용을 입력해주세요.");
+			return false;
+		}
 
 		//list가 등록되지 않은 상품은 상태변경 불가
 		if(Number($("#goodsDetailForm input[name=listPrice]").val()) == 0){
@@ -1236,14 +1248,20 @@
 		$('#goodsDetailForm  input[name=sellEdYMD]').val("2030-12-31");
 		
 		// Create a summernote
-		var snOptions = gagaSn.getToolbarOptions('media');
-		gagaSn.createSummernote(snOptions, '#goodsContentsDesc');
-		gagaSn.createSummernote(snOptions, '#goodsCharacterDesc');
-		gagaSn.createSummernote(snOptions, '#goodsPcTopDesc');
-		gagaSn.createSummernote(snOptions, '#goodsMobileTopDesc');
-		gagaSn.createSummernote(snOptions, '#goodsPcDownDesc');
-		gagaSn.createSummernote(snOptions, '#goodsMobileDownDesc');
-		gagaSn.createSummernote(snOptions, '#goodsDesc');
+//		var snOptions1 = gagaSn.getToolbarOptions('media');
+//		var snOptions2 = gagaSn.getToolbarOptions('media');
+		var snOptions3 = gagaSn.getToolbarOptions('media');
+		var snOptions4 = gagaSn.getToolbarOptions('media');
+		var snOptions5 = gagaSn.getToolbarOptions('media');
+		var snOptions6 = gagaSn.getToolbarOptions('media');
+		var snOptions7 = gagaSn.getToolbarOptions('media');
+//		gagaSn.createSummernote(snOptions1, '#goodsContentsDesc');
+//		gagaSn.createSummernote(snOptions2, '#goodsCharacterDesc');
+		gagaSn.createSummernote(snOptions3, '#goodsDesc');
+		gagaSn.createSummernote(snOptions4, '#goodsPcTopDesc');
+		gagaSn.createSummernote(snOptions5, '#goodsMobileTopDesc');
+		gagaSn.createSummernote(snOptions6, '#goodsPcDownDesc');
+		gagaSn.createSummernote(snOptions7, '#goodsMobileDownDesc');
 	});
 	
 /*]]>*/