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

Merge branch 'develop' into bin2107

bin2107 4 лет назад
Родитель
Сommit
ee7e2f885f

+ 4 - 3
src/main/java/com/style24/admin/biz/dao/TsaGoodsDao.java

@@ -21,6 +21,7 @@ import com.style24.persistence.domain.GoodsPriceRes;
 import com.style24.persistence.domain.GoodsResSell;
 import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSearch;
+import com.style24.persistence.domain.GoodsSupplyPrice;
 import com.style24.persistence.domain.GoodsTnmRes;
 import com.style24.persistence.domain.GoodsVideo;
 import com.style24.persistence.domain.IfIncomelot;
@@ -811,7 +812,7 @@ public interface TsaGoodsDao {
 	 * @author eskim
 	 * @since 2020. 11. 26
 	 */
-	Collection<GoodsPriceRes> getGoodsSupplyPriceList(GoodsPriceRes goodsPriceRes);
+	Collection<GoodsSupplyPrice> getGoodsSupplyPriceList(GoodsSupplyPrice goodsSupplyPrice);
 
 	/**
 	 * 상품 가격수정
@@ -834,11 +835,11 @@ public interface TsaGoodsDao {
 	/**
 	 * 상품 가격승인 적용일자 변경
 	 *
-	 * @param goodsPriceRes
+	 * @param goodsSupplyPrice
 	 * @author eskim
 	 * @since 2020. 11. 26
 	 */
-	void updateGoodsSupplyPricecfrmDt(GoodsPriceRes goodsPriceRes);
+	void updateGoodsSupplyPricecfrmDt(GoodsSupplyPrice goodsSupplyPrice);
 
 	/**
 	 * 상품 네이버 최저가 목록

+ 16 - 15
src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -41,6 +41,7 @@ import com.style24.persistence.domain.GoodsPriceRes;
 import com.style24.persistence.domain.GoodsResSell;
 import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSearch;
+import com.style24.persistence.domain.GoodsSupplyPrice;
 import com.style24.persistence.domain.GoodsTnmRes;
 import com.style24.persistence.domain.GoodsVideo;
 import com.style24.persistence.domain.IfIncomelot;
@@ -2329,14 +2330,14 @@ public class TsaGoodsService {
 	/**
 	 * 상품 가격승인관리 목록 조회
 	 *
-	 * @param goodsPriceHst
+	 * @param goodsSupplyPrice
 	 * @return
 	 * @author eskim
 	 * @since 2020. 11. 26
 	 */
-	public Collection<GoodsPriceRes> getGoodsSupplyPriceList(GoodsPriceRes goodsPriceHst) {
+	public Collection<GoodsSupplyPrice> getGoodsSupplyPriceList(GoodsSupplyPrice goodsSupplyPrice) {
 
-		return goodsDao.getGoodsSupplyPriceList(goodsPriceHst);
+		return goodsDao.getGoodsSupplyPriceList(goodsSupplyPrice);
 	}
 
 	/**
@@ -2347,34 +2348,34 @@ public class TsaGoodsService {
 	 * @since 2020. 11. 26
 	 */
 	@Transactional("shopTxnManager")
-	public void saveGoodsSupplyPrice(Collection<GoodsPriceRes> goodsPriceHstList) {
+	public void saveGoodsSupplyPrice(Collection<GoodsSupplyPrice> goodsSupplyPriceList) {
 
-		for (GoodsPriceRes goodsPriceRes : goodsPriceHstList) {
-			goodsPriceRes.setRegNo(TsaSession.getInfo().getUserNo());
-			goodsPriceRes.setUpdNo(TsaSession.getInfo().getUserNo());
+		for (GoodsSupplyPrice goodsSupplyPrice : goodsSupplyPriceList) {
+			goodsSupplyPrice.setRegNo(TsaSession.getInfo().getUserNo());
+			goodsSupplyPrice.setUpdNo(TsaSession.getInfo().getUserNo());
 
 			Goods goods = new Goods();
 			goods.setRegNo(TsaSession.getInfo().getUserNo());
 			goods.setUpdNo(TsaSession.getInfo().getUserNo());
-			goods.setGoodsCd(goodsPriceRes.getGoodsCd());
+			goods.setGoodsCd(goodsSupplyPrice.getGoodsCd());
 
 			goodsDao.createGoodsHst(goods);
 
 			// 판매가 변경
-			if (goodsPriceRes.getResGoodsPrice() > 0) {
-				goods.setDcRate((int)(this.getDcRate(goodsPriceRes.getListPrice(), goodsPriceRes.getResGoodsPrice())));
-				goods.setCurrBprice(goodsPriceRes.getCurrPrice());
-				goods.setCurrPrice(goodsPriceRes.getResGoodsPrice());
+			if (goodsSupplyPrice.getSupplyGoodsPrice() > 0) {
+				goods.setDcRate((int)(this.getDcRate(goodsSupplyPrice.getListPrice(), goodsSupplyPrice.getSupplyGoodsPrice())));
+				goods.setCurrBprice(goodsSupplyPrice.getCurrPrice());
+				goods.setCurrPrice(goodsSupplyPrice.getSupplyGoodsPrice());
 				goodsDao.updateGoodsPrice(goods);
 			}
 
 			// 판매수수료율 변경
-			if (Float.compare(goodsPriceRes.getSellFeeRate(), 0) > 0) {
-				goods.setSellFeeRate(goodsPriceRes.getSellFeeRate());
+			if (Float.compare(goodsSupplyPrice.getSupplySellFeeRate(), 0) > 0) {
+				goods.setSellFeeRate(goodsSupplyPrice.getSupplySellFeeRate());
 				goodsDao.updateSellFeeRate(goods);
 			}
 
-			goodsDao.updateGoodsSupplyPricecfrmDt(goodsPriceRes);
+			goodsDao.updateGoodsSupplyPricecfrmDt(goodsSupplyPrice);
 		}
 	}
 

+ 1 - 1
src/main/java/com/style24/admin/biz/service/TsaShoplinkerService.java

@@ -70,7 +70,7 @@ public class TsaShoplinkerService {
 		int optionAll=0, optionSucc=0;
 		int excelCnt= ecxelGoodsList.size();
 		int tProdSucc = 0, productSucc=0, goodsNotiSucc=0, certSucc=0, imageSucc=0;
-
+		log.info(" #### SHOPLINKER CHK3 - "+excelCnt);
 		for (GagaMap gagaMap : ecxelGoodsList) {
 			if( !"".equals(gagaMap.getString("goodsCd").trim())) {
 				shoplinkerGoods.setGoodsCd(gagaMap.getString("goodsCd"));

+ 32 - 12
src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -54,6 +54,7 @@ import com.style24.persistence.domain.GoodsPriceRes;
 import com.style24.persistence.domain.GoodsResSell;
 import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSearch;
+import com.style24.persistence.domain.GoodsSupplyPrice;
 import com.style24.persistence.domain.GoodsTnmRes;
 import com.style24.persistence.domain.GoodsVideo;
 import com.style24.persistence.domain.IfIncomelot;
@@ -1562,29 +1563,29 @@ public class TsaGoodsController extends TsaBaseController {
 	 */
 	@PostMapping("/supply/price/list")
 	@ResponseBody
-	public Collection<GoodsPriceRes> getGoodsSupplyPriceList(@RequestBody GoodsPriceRes goodsPriceRes) {
+	public Collection<GoodsSupplyPrice> getGoodsSupplyPriceList(@RequestBody GoodsSupplyPrice goodsSupplyPrice) {
 
 		// multi row 검색관련 처리
-		if (!StringUtils.isBlank(goodsPriceRes.getBrandList())) {
+		if (!StringUtils.isBlank(goodsSupplyPrice.getBrandList())) {
 			try {
-				String[] arrBrandCd = mapper.readValue(goodsPriceRes.getBrandList(), String[].class);
-				goodsPriceRes.setMultiBrand(arrBrandCd);
+				String[] arrBrandCd = mapper.readValue(goodsSupplyPrice.getBrandList(), String[].class);
+				goodsSupplyPrice.setMultiBrand(arrBrandCd);
 			} catch (Exception e) {
 				e.printStackTrace();
 				throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
 			}
 		}
 
-		if (!StringUtils.isBlank(goodsPriceRes.getSupplyCompList())) {
+		if (!StringUtils.isBlank(goodsSupplyPrice.getSupplyCompList())) {
 			try {
-				String[] arrSupplyComp = mapper.readValue(goodsPriceRes.getSupplyCompList(), String[].class);
-				goodsPriceRes.setMultiSupplyComp(arrSupplyComp);
+				String[] arrSupplyComp = mapper.readValue(goodsSupplyPrice.getSupplyCompList(), String[].class);
+				goodsSupplyPrice.setMultiSupplyComp(arrSupplyComp);
 			} catch (Exception e) {
 				e.printStackTrace();
 				throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
 			}
 		}
-		return goodsService.getGoodsSupplyPriceList(goodsPriceRes);
+		return goodsService.getGoodsSupplyPriceList(goodsSupplyPrice);
 	}
 
 	/**
@@ -1597,14 +1598,14 @@ public class TsaGoodsController extends TsaBaseController {
 	 */
 	@PostMapping("/supply/price/save")
 	@ResponseBody
-	public GagaResponse saveGoodsSupplyPrice(@RequestBody Collection<GoodsPriceRes> goodsPriceResList) {
+	public GagaResponse saveGoodsSupplyPrice(@RequestBody Collection<GoodsSupplyPrice> goodsSupplyPriceList) {
 
 		if (!"G001_0000".equals(TsaSession.getInfo().getRoleCd()) && !"G001_A000".equals(TsaSession.getInfo().getRoleCd())
 			&& !"G001_A001".equals(TsaSession.getInfo().getRoleCd()) && !"G001_A100".equals(TsaSession.getInfo().getRoleCd())
 			&& !"G001_A101".equals(TsaSession.getInfo().getRoleCd())) {
 			throw new IllegalStateException("권한이 없습니다.");
 		}
-		goodsService.saveGoodsSupplyPrice(goodsPriceResList);
+		goodsService.saveGoodsSupplyPrice(goodsSupplyPriceList);
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
 
@@ -2396,8 +2397,8 @@ public class TsaGoodsController extends TsaBaseController {
 		ModelAndView mav = new ModelAndView();
 
 		// 공급업체
-		String supplyCompCd = "";
-		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
+//		String supplyCompCd = "";
+//		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList(supplyCompCd, "Y"));
 		// 상품상태
 		String[] exceptCds = {"G008_00"};
 		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
@@ -2440,6 +2441,25 @@ public class TsaGoodsController extends TsaBaseController {
 			goodsSearch.setMdNo(TsaSession.getInfo().getUserNo().toString());
 		}
 
+		if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
+			try {
+				String[] arrBrandCd = mapper.readValue(goodsSearch.getBrandList(), String[].class);
+				goodsSearch.setMultiBrand(arrBrandCd);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+
+		if (!StringUtils.isBlank(goodsSearch.getSupplyCompList())) {
+			try {
+				String[] arrSupplyComp = mapper.readValue(goodsSearch.getSupplyCompList(), String[].class);
+				goodsSearch.setMultiSupplyCompCd(arrSupplyComp);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
 		goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
 		goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
 		goodsSearch.getPageable().setTotalCount(goodsService.getGoodsPriceResCount(goodsSearch));

+ 19 - 0
src/main/java/com/style24/admin/biz/web/TsaShoplinkerController.java

@@ -171,6 +171,7 @@ public class TsaShoplinkerController extends TsaBaseController {
 		slkSearch.setApiType("GOODS");
 		ShoplinkerSearch runMap = tscShoplinkerService.getCallRunableInfo(slkSearch);
 
+log.info(" #### SHOPLINKER CHK1 - "+runMap.getRunCnt() +" || "+GagaDateUtil.getTodayDateTime());
 		if( runMap.getRunCnt() < 1 ) {
 			try {
 				// 1. API 호출 이력 저장 시작(실행중 재호출 금지하기 위함)
@@ -207,6 +208,7 @@ public class TsaShoplinkerController extends TsaBaseController {
 				// 3. xml 데이터 생성
 				shoplinkerGoods.setCustomerId(env.getProperty("shoplinker.customer_id"));
 				shoplinkerGoods.setRegNo(TsaSession.getInfo().getUserNo());
+				log.info(" #### SHOPLINKER CHK2 ");
 				rtnMap = admShoplinkerService.createShoplinkerXml(ecxelGoodsList, shoplinkerGoods);
 
 				// 4. 파일 삭제
@@ -890,6 +892,23 @@ System.out.println("####### : "+re.getResult());
 			//1 상품등록 테스트
 			String testXmlUrl;
 
+			/*for( i=2; i< 87; i++) {
+				testXmlUrl = "http://ts5000.ipdisk.co.kr:8999/shoplinker/goods_reg/T142TS200P/option_"+i+".xml";
+				responseXmlData =    shoplinkerUtil.callShoplinkerApiByGet(GagaShoplinkerConstants.API_DOMAIN+"/Product/attribute_insert.php?iteminfo_url="+URLEncoder.encode(testXmlUrl), "" );
+				shoplinkerResult =  (com.gagaframework.shoplinker.domain.goods.result.Shoplinker)shoplinkerUtil.unmarshal(com.gagaframework.shoplinker.domain.goods.result.Shoplinker.class, responseXmlData);
+				resultMsg = shoplinkerResult.getResultMessage();
+				System.out.println(i+"\n### 1.단품 result1 :: "+resultMsg.getResult());
+			  	System.out.println(i+"### 1.단품 result2 :: "+resultMsg.getMessage());
+			}*/
+
+			testXmlUrl = "http://ts5000.ipdisk.co.kr:8999/shoplinker/goods_reg/T142TS200P/product.xml";
+			responseXmlData =   shoplinkerUtil.callShoplinkerApiByGet(GagaShoplinkerConstants.API_DOMAIN+"/Product/attribute_prod_insert.php?iteminfo_url="+URLEncoder.encode(testXmlUrl), "");
+			shoplinkerResult =  (com.gagaframework.shoplinker.domain.goods.result.Shoplinker)shoplinkerUtil.unmarshal(com.gagaframework.shoplinker.domain.goods.result.Shoplinker.class, responseXmlData);
+			resultMsg = shoplinkerResult.getResultMessage();
+			System.out.println("\n\n\n### 2.상품 result1 :: "+resultMsg.getResult());
+			System.out.println(" :: "+responseXmlData);
+			System.out.println("### 2.상품 result2 :: "+resultMsg.getMessage());
+
 	for( i=1; i< 1; i++) {
 
 			testXmlUrl = "http://ts5000.ipdisk.co.kr:8999/shoplinker/goods_reg/option_1.xml";

+ 65 - 0
src/main/java/com/style24/persistence/domain/GoodsSupplyPrice.java

@@ -0,0 +1,65 @@
+package com.style24.persistence.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.style24.persistence.TscBaseDomain;
+import com.style24.persistence.TscPageRequest;
+
+import lombok.Data;
+
+/**
+ * 입점상품가격관리 Domain
+ * @author eskim
+ * @since 2021. 07. 09
+ */
+@SuppressWarnings("serial")
+@Data
+public class GoodsSupplyPrice extends TscBaseDomain {
+
+	private Integer goodsSupplyPriceSq;
+	private String goodsCd;
+	private int supplyGoodsPrice;
+	private float supplySellFeeRate;
+	private String cfrmYn;
+	private int cfrmNo;
+	private String cfrmDt;
+
+	private String cfrmNm;
+
+	private String goodsNm;
+	private String supplyGoodsCd;
+	private String goodsStat;
+	private String supplyCompCd;
+	private String supplyCompNm;
+	private String brandCd;
+	private String brandEnm;
+	private int listPrice;
+	private int currPrice;
+	private String dateGbn;
+	private String stDate;
+	private String edDate;
+	private String confirmY;
+	private Float goodsSellFeeRate;
+	private String goodsPriceYn;
+	private String brandList;
+	private String supplyCompList;
+	
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] arrGoodsCd;
+
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private int[] arrSupplyGoodsPriceSq;
+
+
+	/* Multi CheckBox 항목*/
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiBrand;
+
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiSupplyComp;
+	// Pagination
+	private TscPageRequest pageable;
+	private int pageNo = 1;
+	private int pageSize = 50;
+	private int pageUnit = 10;
+
+}

+ 12 - 20
src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -2827,7 +2827,6 @@
 		                   )
 		        </if>
 		        WHERE 1=1
-		        AND G.SELF_GOODS_YN = #{selfGoodsYn}
 		        <if test="searchGb == null or searchGb =='BASIC'" >
 		        <include refid="getGoodsListCondition_sql"/>
 		        ORDER BY  GR.APPLY_STDT DESC, GR.APPLY_EDDT DESC, G.GOODS_CD, GR.GOODS_PRICE_RES_SQ
@@ -3020,19 +3019,17 @@
 	</select>
 	
 	<!-- 상품 가격 승인 목록 -->
-	<select id="getGoodsSupplyPriceList"  parameterType="GoodsPriceRes" resultType="GoodsPriceRes">
+	<select id="getGoodsSupplyPriceList"  parameterType="GoodsSupplyPrice" resultType="GoodsSupplyPrice">
 		/* TsaGoods.getGoodsSupplyPriceList */
-		SELECT X.GOODS_PRICE_RES_SQ
+		SELECT X.GOODS_SUPPLY_PRICE_SQ
 		     , X.GOODS_CD
 		     , X.GOODS_NM
-		     , X.RES_GOODS_PRICE
-		     , X.END_GOODS_PRICE
-		     , X.SELL_FEE_RATE
+		     , X.SUPPLY_GOODS_PRICE
+		     , X.SUPPLY_SELL_FEE_RATE
 		     , X.CFRM_YN
 		     , X.CFRM_NM
 		     , X.CFRM_NO
 		     , X.CFRM_DT
-		     , X.APPLY_YN
 		     , X.REG_NM
 		     , X.REG_DT
 		     , X.UPD_NM
@@ -3046,16 +3043,14 @@
 		     , X.BRAND_CD
 		     , X.BRAND_ENM
 		FROM (
-		    SELECT A.GOODS_PRICE_RES_SQ
+		    SELECT A.GOODS_SUPPLY_PRICE_SQ
 		         , A.GOODS_CD
-		         , A.RES_GOODS_PRICE
-		         , A.END_GOODS_PRICE
-		         , A.SELL_FEE_RATE
+		         , A.SUPPLY_GOODS_PRICE
+		         , A.SUPPLY_SELL_FEE_RATE
 		         , A.CFRM_YN
 		         , FN_GET_USER_NM(A.CFRM_NO) AS CFRM_NM
 		         , A.CFRM_NO
 		         , DATE_FORMAT(A.CFRM_DT,'%Y%m%d%H%i%S') AS CFRM_DT
-		         , A.APPLY_YN
 		         , FN_GET_USER_NM(A.REG_NO) AS REG_NM
 		         , DATE_FORMAT(A.REG_DT,'%Y%m%d%H%i%S') AS REG_DT
 		         , FN_GET_USER_NM(A.UPD_NO) AS UPD_NM
@@ -3070,7 +3065,7 @@
 		         , B.BRAND_ENM
 		         , G.SUPPLY_COMP_CD
 		         , S.SUPPLY_COMP_NM
-		    FROM TB_GOODS_PRICE_RES A
+		    FROM TB_GOODS_SUPPLY_PRICE A
 		    INNER JOIN TB_GOODS G ON A.GOODS_CD = G.GOODS_CD
 		                          AND G.SELF_GOODS_YN = 'N'
 		    INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
@@ -3085,9 +3080,6 @@
 		    <if test="brandCd != null and brandCd != ''">
 		    AND G.BRAND_CD = #{brandCd}
 		    </if>
-		    <if test="searchBrandCd != null and searchBrandCd != ''">
-		    AND G.BRAND_CD = #{searchBrandCd}
-		    </if>
 		    <if test="multiSupplyComp != null and multiSupplyComp != ''">
 		    AND G.SUPPLY_COMP_CD IN
 		        <foreach collection="multiSupplyComp" item="item" index="index"  open="(" close=")" separator=",">
@@ -3158,17 +3150,16 @@
 	</update>
 	
 	<!-- 상품 가격승인 적용일자 변경 -->
-	<update id="updateGoodsSupplyPricecfrmDt" parameterType="GoodsPriceRes">
+	<update id="updateGoodsSupplyPricecfrmDt" parameterType="GoodsSupplyPrice">
 		/* TsaGoods.updateGoodsSupplyPricecfrmDt */
-		UPDATE TB_GOODS_PRICE_RES
+		UPDATE TB_GOODS_SUPPLY_PRICE
 		SET UPD_NO = #{updNo}
 		  , UPD_DT = NOW()
 		  , CFRM_DT = NOW()
 		  , CFRM_NO = #{regNo}
 		  , CFRM_YN = 'Y'
-		  , APPLY_YN = 'Y'
 		WHERE GOODS_CD = #{goodsCd}
-		AND GOODS_PRICE_RES_SQ = #{goodsPriceResSq}
+		AND GOODS_SUPPLY_PRICE_SQ = #{goodsSupplyPriceSq}
 		AND CFRM_DT IS NULL
 	</update>
 	
@@ -4923,6 +4914,7 @@
 		     , GOODS_REG_GB
 		FROM TB_WMS_GOODS
 		WHERE MODEL_NO = #{goodsCd}
+		LIMIT 1
 	</select>
 	
 	<!-- wms 상품 색상, 재고판매율 적용 조회 -->

+ 86 - 13
src/main/webapp/WEB-INF/views/goods/GoodsPriceReserveForm.html

@@ -43,13 +43,20 @@
 						<col/>
 					</colgroup>
 					<tr>
-						<th>업체/브랜드</th>
-						<td colspan="3">
-							<select name="supplyCompCd" id="supplyCompCd">
-								<option value="" th:if="${sessionInfo.roleCd} != 'G001_B000'">[전체]</option>
-								<option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
-							</select>
-							<span id="multiBrand"></span>
+						<th>업체</th>
+						<td>
+							<input type="text" class="w100" name="supplyCompSearchTxt" id="supplyCompSearchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchSupplyComp"><i class="fa fa-search"></i></button>
+							<span id="supplyCompText"></span>
+							<input type="hidden" name="supplyCompList"/>
+						</td>
+						<th>브랜드</th>
+						<td>
+							<input type="text" class="w100" name="searchTxt" id="searchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchBrand"><i class="fa fa-search"></i></button>
+							<!-- <input type="text" class="w100" name="brandCd" readonly="readonly"/> -->
+							<span id="brandText"></span>
+							<input type="hidden" name="brandList"/>
 						</td>
 						<th rowspan="3">키워드</th>
 						<td rowspan="3">
@@ -230,7 +237,11 @@
 		//$("#goodsPriceResForm input[type=radio]").parent("label").removeClass("checked");
 		$("#goodsPriceResForm input[type=checkbox]").parent("label").removeClass("checked");
 		$("#goodsPriceResForm input[type=radio][checked]").parent("label").addClass("checked");
-		$("#multiBrand").empty();
+		
+		$('#goodsPriceResForm input[name=brandList]').val('');
+		$('#goodsPriceResForm input[name=supplyCompList]').val('');
+		$('#goodsPriceResForm').find('#brandText').html('');
+		$('#goodsPriceResForm').find('#supplyCompText').html('');
 	}
 	
 	// 조회클릭시
@@ -282,12 +293,13 @@
 		var searchFlag = false;
 		var cnt = 0;
 
-		/* if( !gagajf.isNull($("#goodsPriceResForm select[name=supplyCompCd]").val())
-				|| !gagajf.isNull($("#goodsPriceResForm input[name=condition]").val())
-				|| (!gagajf.isNull($("#goodsPriceResForm input[name=stDate]").val()) && !gagajf.isNull($("#goodsPriceResForm input[name=edDate]").val()))
+		if( !gagajf.isNull($("#goodsPriceResForm input[name=supplyCompList]").val()) 
+				|| !gagajf.isNull($("#goodsPriceResForm textarea[name=condition]").val())
+				|| (!gagajf.isNull($("#goodsPriceResForm input[name=applyStdt]").val()) && !gagajf.isNull($("#goodsPriceResForm input[name=applyEddt]").val()))
+				|| !gagajf.isNull($("#goodsPriceResForm input[name=brandList]").val())
 			){
 			searchFlag = true;
-		}else{ */
+		}else{
 			for (i = 0; i < form.elements.length; i++ ) {
 				var el = form.elements[i];
 				if ($(el).prop("type") == "text" || $(el).prop("type") == "textarea" || ($(el).prop("type") == "select-one" && el.name != "search" && el.name != "pageSize")) {
@@ -299,7 +311,7 @@
 			
 			if(cnt > 0) searchFlag = true;
 			
-		/* } */
+		 } 
 		
 		if(searchFlag == false){
 			mcxDialog.alert("검색조건을 입력하세요.");
@@ -361,6 +373,67 @@
 		cfnCreateMultiCombo(actionUrl,"multiBrand",  "[전체]",null, 'Y');
 	});
 	
+	// 업체 조회 선택시
+	$('#btnSearchSupplyComp').on('click', function() {
+		cfnOpenCompanyListPopup('fnSetSupplyCompInfo', 'M');
+	});
+	
+	// 업체 조회 팝업에서 호출
+	var fnSetSupplyCompInfo = function(result) {
+		var arrSupplyComp = [];
+		var supplyCompText = "";
+		var sIndex = 0;
+		$('#goodsPriceResForm').find('#supplyCompText').html('');
+		$('#goodsPriceResForm input[name=supplyCompSearchTxt]').val('');
+		result.forEach(function(supplyComp){
+			sIndex++; 
+			arrSupplyComp.push(supplyComp.supplyCompCd);
+		});
+
+		// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리 
+		if (sIndex == 1) {
+			$('#goodsPriceResForm input[name=supplyCompSearchTxt]').val(arrSupplyComp[0]);
+		}else{
+			supplyCompText = sIndex + " 개";
+			$('#goodsPriceResForm').find('#supplyCompText').html(supplyCompText);	
+		}
+		var jsonData = JSON.stringify(arrSupplyComp);
+		$("#goodsPriceResForm input[name=supplyCompList]").val(jsonData);
+	}
+	
+	// 브랜드 조회 선택시
+	$('#btnSearchBrand').on('click', function() {
+		/* if (gagajf.isNull($("#goodsPriceResForm input[name=searchTxt]").val())){
+			mcxDialog.alert('브랜드 검색어를 입력하세요.');
+			return false;
+		} */
+		cfnOpenBrandListPopup('fnSetBrandInfo', 'M');
+	});
+	
+	// 브랜드 조회 팝업에서 호출
+	var fnSetBrandInfo = function(result) {
+		var arrbrandCd = [];
+		var brandText = "";
+		var bIndex = 0;
+		$('#goodsPriceResForm').find('#brandText').html('');
+		$('#goodsPriceResForm input[name=searchTxt]').val('');
+		result.forEach(function(brand){
+			bIndex++; 
+			arrbrandCd.push(brand.brandCd);
+		});
+
+		// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리 
+		if (bIndex == 1) {
+			$('#goodsPriceResForm input[name=searchTxt]').val(arrbrandCd[0]);
+		}else{
+			brandText = bIndex + " 개";
+			$('#goodsPriceResForm').find('#brandText').html(brandText);	
+		}
+		var jsonData = JSON.stringify(arrbrandCd);
+		$("#goodsPriceResForm input[name=brandList]").val(jsonData);
+	}
+	
+	
 	//엑셀 상품 조회
 	$('#btnGoodsExcelUpLoad').on('click', function() {
 		cfnExcelUploadPopup('goodsPriceExcelUpload', 'goodsPriceExcelUpload');

+ 6 - 3
src/main/webapp/WEB-INF/views/goods/GoodsPriceReservePopupForm.html

@@ -108,6 +108,9 @@
 		var oldData = gagaAgGrid.getAllRowData(rsvtGoodsPriceGridOptions);
 		$.each(result, function(idx, item) {
 			var isInvalid = false;
+			if(item.goodsType == 'G056_D'){
+				return true;
+			}
 			if (oldData != null && oldData.length != 0){
 				oldData.forEach(function(oneData){
 					if(oneData.goodsCd == item.goodsCd){
@@ -186,7 +189,7 @@
 		$.each(allRowData, function(index, item) {
 			if (item.listPrice < $("#goodsPriceRsvtForm input[name=resGoodsPrice]").val()){
 				optCheck = true;
-				mcxDialog.alertC("가격예약 상품중 정상가보다 높은 상품이 존재합니다.<br/>확인해 주세요", {
+				mcxDialog.alertC("가격예약 상품중 정상가가 예약가 보다 낮은 상품이 상품이 존재합니다.<br/>확인해 주세요", {
 					sureBtnText: "확인",
 					sureBtnClick: function() {
 						rsvtGoodsPriceGridOptions.api.setFocusedCell(index, "goodsCd", null);
@@ -220,7 +223,7 @@
 		var toDateStr = new Date().format("YYYYMMDDHHmmss");
 
 		if (toDateStr >= applyStdt){
-			mcxDialog.alertC("예약 시작일자는 현재일자 보다 작거나 같을 수 없습니다.",  {
+			mcxDialog.alertC("예약 시작일시는 현재일시 보다 작거나 같을 수 없습니다.",  {
 				sureBtnText: "확인",
 				sureBtnClick: function() {
 					$('#goodsPriceRsvtForm input[name=applyStYMD]').focus();
@@ -230,7 +233,7 @@
 		}
 
 		if (toDateStr >= applyEddt){
-			mcxDialog.alertC("예약 종료일자는 현재일자 보다 작거나 같을 수 없습니다.", {
+			mcxDialog.alertC("예약 종료일시는 현재일시 보다 작거나 같을 수 없습니다.", {
 				sureBtnText: "확인",
 				sureBtnClick: function() {
 					$('#goodsPriceRsvtForm input[name=applyEdYMD]').focus();

+ 8 - 8
src/main/webapp/WEB-INF/views/goods/GoodsSupplyPriceForm.html

@@ -137,12 +137,12 @@
 		{headerName: "온라인 현재판매가", field: "currPrice", width: 120, cellClass: 'text-right'
 			,valueFormatter: function(params) {return params.value.addComma();}
 		},
-		{headerName: "판매가조정대상금액", field: "resGoodsPrice", width: 140, cellClass: 'text-right'
+		{headerName: "판매가조정대상금액", field: "supplyGoodsPrice", width: 140, cellClass: 'text-right'
 			,cellRenderer: function(params) {
-				if (params.data.resGoodsPrice <= 0){
+				if (params.data.supplyGoodsPrice <= 0){
 					return "-";
 				}else{
-					var gapPrice = Number(params.data.currPrice) - Number(params.data.resGoodsPrice);
+					var gapPrice = Number(params.data.currPrice) - Number(params.data.supplyGoodsPrice);
 					
 					if (gapPrice >= 0){
 						return '<font color="red"> '+ params.value.addComma() +'</font>';
@@ -156,17 +156,17 @@
 		{headerName: "온라인 판매수수료", field: "goodsSellFeeRate", width: 140, cellClass: 'text-right'
 			,valueFormatter: function(params) {return params.value.addComma();}
 		},
-		{headerName: "판매수수료 조정대상수수료", field: "sellFeeRate", width: 180, cellClass: 'text-right'
+		{headerName: "판매수수료 조정대상수수료", field: "supplySellFeeRate", width: 180, cellClass: 'text-right'
 			,cellRenderer: function(params) {
-				if (gagajf.isNull(params.data.sellFeeRate)){
+				if (gagajf.isNull(params.data.supplySellFeeRate)){
 					return "-";
 				}else{
-					var gapRate = Number(params.data.goodsSellFeeRate) - Number(params.data.sellFeeRate);
+					var gapRate = Number(params.data.goodsSellFeeRate) - Number(params.data.supplySellFeeRate);
 					
 					if (gapRate >= 0){
-						return '<font color="red"> '+ params.data.sellFeeRate +'</font>';
+						return '<font color="red"> '+ params.data.supplySellFeeRate +'</font>';
 					}else{
-						return '<font color="blue"> '+ params.data.sellFeeRate +'</font>';
+						return '<font color="blue"> '+ params.data.supplySellFeeRate +'</font>';
 					}
 				}	
 			}

+ 12 - 9
src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -312,15 +312,18 @@ var columnDefsGoodsInfo = [
 					// 네이버페이 주문형은 버튼 생성X
 					if(params.data.pgGb == "NAVER_ORDER") return retStr;
 
-					// 결제완료, 상품준비중, 출고처지정, 배송준비중 (주문취소) 
-					if (params.value == 'G013_20' || params.value == 'G013_30' || params.value == 'G013_35' || params.value == 'G013_40') {
-						if (params.data.ordQty > (params.data.cnclRtnQty + params.data.ordReqChgQty)) {
-							var paramData 	= params.data.ordNo;
-							paramData 		+= '@' + params.data.ordDtlNo;
-							paramData 		+= '@' + params.data.delvFeeCd;
-							paramData 		+= '@' + params.data.delvFeeCdGrp;
-							paramData 		+= '@' + params.data.ordDtlStat;
-							retStr 			+= '<button type="button" class="btn btn-base btn-sm" onclick="fnCancelRequest(\'' + paramData + '\', null);">취소요청</button>';
+					// 결제완료, 상품준비중, 출고처지정, 배송준비중 (주문취소)
+					// 2021.07.08 card007 교환상품은 취소 안되게 수정
+					if (params.data.ordExchGb == 'O') {
+						if (params.value == 'G013_20' || params.value == 'G013_30' || params.value == 'G013_35' || params.value == 'G013_40') {
+							if (params.data.ordQty > (params.data.cnclRtnQty + params.data.ordReqChgQty)) {
+								var paramData = params.data.ordNo;
+								paramData += '@' + params.data.ordDtlNo;
+								paramData += '@' + params.data.delvFeeCd;
+								paramData += '@' + params.data.delvFeeCdGrp;
+								paramData += '@' + params.data.ordDtlStat;
+								retStr += '<button type="button" class="btn btn-base btn-sm" onclick="fnCancelRequest(\'' + paramData + '\', null);">취소요청</button>';
+							}
 						}
 					}
 					

+ 3 - 15
src/main/webapp/WEB-INF/views/shoplinker/ShoplinkerGoodsSendForm.html

@@ -358,12 +358,13 @@
 
 	/**************** 엑셀업로드 ********************************************************/
 	$('#btnGoodsUpload').on('click', function() {
-
+		console.log(" excel click");
 		var jsonData = JSON.stringify({apiType : "GOODS"});
 		gagajf.ajaxJsonSubmit('/shoplinker/check/api_runable', jsonData, function(result) {
 
 			// 현재실행중인건 없음.
 			if( 0 == result.runCnt){
+				console.log(" excel pupup");
 				cfnExcelUploadPopup('shoplinkerUploadGoods', 'shoplinkerUploadGoods');
 
 			}else{
@@ -374,6 +375,7 @@
 
 	var shoplinkerUploadGoods = function(result){
 
+		console.log(" excel post !!! ");
 		var actionUrl = "/shoplinker/goods/send/excelupload/register";
 		let params = {};
 		params.procJob = result.procJob;
@@ -404,20 +406,6 @@
 		var jsonData = JSON.stringify(data);
 		gagajf.ajaxJsonSubmit('/shoplinker/apiTest2', jsonData, null);
 	}
-
-	// 테스트- 엑셀업로드2
-	var fnGoodsExcelDownLoad = function(flag){
-		cfnExcelUploadPopup('shoplinkerSearchGoods', 'shoplinkerSearchGoods');
-	};
-
-	var shoplinkerSearchGoods = function(result){
-
-		var data = {procJob : result.procJob
-					,excelFileNm : result.excelFileNm
-					};
-		var jsonData = JSON.stringify(data);
-		gagajf.ajaxJsonSubmit('/shoplinker/goods/excel/list', jsonData, null);
-	}
 	/**************** 테스트용 // *****************************************************/