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

Merge branch 'develop' into card007

card007 4 лет назад
Родитель
Сommit
dd955ac0df
20 измененных файлов с 364 добавлено и 709 удалено
  1. 84 55
      src/main/java/com/style24/admin/biz/service/TsaShoplinkerService.java
  2. 24 0
      src/main/java/com/style24/admin/biz/web/TsaGoodsController.java
  3. 0 249
      src/main/java/com/style24/admin/biz/web/TsaOrderController.java
  4. 15 1
      src/main/java/com/style24/persistence/domain/Itemkind.java
  5. 13 0
      src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml
  6. 3 0
      src/main/java/com/style24/persistence/mybatis/shop/TsaOcm.xml
  7. 12 9
      src/main/java/com/style24/persistence/mybatis/shop/TsaShoplinker.xml
  8. 6 0
      src/main/webapp/WEB-INF/views/display/GoodsCategoryForm.html
  9. 2 2
      src/main/webapp/WEB-INF/views/display/MainContentsPopupForm.html
  10. 2 2
      src/main/webapp/WEB-INF/views/display/MainMultiContentsPopupForm.html
  11. 6 0
      src/main/webapp/WEB-INF/views/goods/GoodsListForm.html
  12. 5 1
      src/main/webapp/WEB-INF/views/goods/GoodsNaverPriceForm.html
  13. 5 0
      src/main/webapp/WEB-INF/views/goods/GoodsPopupListForm.html
  14. 5 0
      src/main/webapp/WEB-INF/views/goods/GoodsQuikDeliverySkipForm.html
  15. 138 0
      src/main/webapp/WEB-INF/views/goods/ItemkindPopupForm.html
  16. 9 5
      src/main/webapp/WEB-INF/views/marketing/FreeGoodsPromotionRegiForm.html
  17. 2 2
      src/main/webapp/WEB-INF/views/ocm/ExtmallSearchForm.html
  18. 0 378
      src/main/webapp/WEB-INF/views/order/OrderSellerListForm.html
  19. 11 4
      src/main/webapp/WEB-INF/views/withdraw/WithdrawExceptionListForm.html
  20. 22 1
      src/main/webapp/ux/js/admin.popup.js

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

@@ -281,20 +281,28 @@ public class TsaShoplinkerService {
 
 		String htmlDesc = "";
 
-		// 상세폼신규사용여부 N: 기존 정보 / Y : html 형식
-		if( "N".equals(goodsMap.getTobeFormYn())){
-			String descStr = goodsMap.getDetailDesc();
-			if( null != descStr) {
-				htmlDesc = descStr;
+		// 1. 기존 상세내용
+		String descStr = goodsMap.getDetailDesc();
+		if( null != descStr) {
+			descStr = descStr.replace("http://www.istyle24.com/Upload/", "http://image.istyle24.com/Local/")
+					.replace("http://www.istyle24.com/Images", "http://image.istyle24.com/Statics/design/Images");
+
+			// src 처음시작이 /Upload인 경우만체크, 중간인경우는 제외
+			if( -1 < descStr.indexOf("\"/Upload")) {
+				descStr = descStr.replace("/Upload", "http://image.istyle24.com/Local");
 			}
 
-		}else {
+			htmlDesc = descStr;
+		}
+
+		// 2. 신규 상세내용 (상세폼신규사용여부 N: 기존 정보 / Y : html 형식)
+		if( "Y".equals(goodsMap.getTobeFormYn())){
+			htmlDesc = ""; // 초기화
 
 			String imgPath = env.getProperty("upload.goods.view");
-			imgPath = imgPath.replace("http://www.istyle24.com/Upload/", "http://image.istyle24.com/Local/")
-					.replace("http://www.istyle24.com/Images", "http://image.istyle24.com/Statics/design/Images")
-					.replace("/Upload", "/Local");
 
+			// 메인컬러에 매칭되는 이미지만 가져옴.(상세,페브릭,라벨등..)
+			shoplinkerGoods.setExtmallDescImgYn("Y");
 			Collection<ShoplinkerGoods> imgList = admShoplinkerDao.getGoodsImageList(shoplinkerGoods);
 
 			String dColor = goodsMap.getMainColorEnm(); //대표컬러
@@ -334,10 +342,7 @@ public class TsaShoplinkerService {
 
 			// 제대로된 정보 없을 경우, 기존 상세내용으로 보냄
 			if( "".equals(dImgFront)) {
-				String descStr = goodsMap.getDetailDesc();
-				if( null != descStr) {
-					htmlDesc = descStr;
-				}
+				htmlDesc = descStr;
 
 			}else {
 
@@ -345,37 +350,43 @@ public class TsaShoplinkerService {
 				htmlDesc = "<div class=\"st_descrp_box\" style=\"max-height:1100px; overflow:hidden;\">";
 				htmlDesc += "<div class=\"st_desc_simple\" style=\"position:relative; margin-top:0px; margin-left:auto; margin-right:auto;\">";
 				htmlDesc += "<span class=\"st_tit_desc\" style=\"display:block; margin-bottom:10px; font-size:18px; font-weight:500; letter-spacing:-0.025em;\">"+goodsMap.getDetailDescNew10()+"</span>";
-				htmlDesc += "<p class=\"st_ptxt01\" style=\"font-size:16px;font-weight:200;line-height:1.5;word-break:keep-all;color:#666666;\">";
+				htmlDesc += "<span class=\"st_ptxt01\" style=\"font-size:16px;font-weight:200;line-height:1.5;word-break:keep-all;color:#666666;\">";
 				htmlDesc += goodsMap.getDetailDescNew20();
-				htmlDesc += "</p>";
+				htmlDesc += "</span>";
 				htmlDesc += "</div>";
 				htmlDesc += "<div class=\"st_desc_character\" style=\"position:relative; margin-top:40px; margin-left:auto; margin-right:auto;\">";
 				htmlDesc += "<span class=\"st_tit_desc\" style=\"display:block; margin-bottom:10px; font-size:18px; font-weight:500; letter-spacing:-0.025em;\">상품특징</span>";
-				htmlDesc += "<p class=\"st_ptxt01\" style=\"font-size:16px;font-weight:200;line-height:1.5;word-break:keep-all;color:#666666;\">";
+				htmlDesc += "<span class=\"st_ptxt01\" style=\"font-size:16px;font-weight:200;line-height:1.5;word-break:keep-all;color:#666666;\">";
 				htmlDesc += goodsMap.getDetailDescNew30();
-		        htmlDesc += "</p>";
+		        htmlDesc += "</span>";
         		htmlDesc += "</div>";
 				htmlDesc += "</div>";
 
 				// 2) 상세내용 - 상품옵션별 색상
 				String colorDesc = "";
-				shoplinkerGoods.setColorListYn("Y"); // 상품이미지정보 색상별
+				shoplinkerGoods.setExtmallDescImgYn("N");
+				shoplinkerGoods.setColorListYn("Y"); // 색상별 이미지 정보만 가져옴
 				Collection<ShoplinkerGoods> imgColorList = admShoplinkerDao.getGoodsImageList(shoplinkerGoods);
 				colorDesc = "<div class=\"st_view_option_box\" style=\"margin-top: 100px;text-align: center;\">";
 				String tmpColor = "";
 				for(ShoplinkerGoods ic : imgColorList ) {
 
 					if( !tmpColor.equals(ic.getColorCd())) {
+						tmpColor = ic.getColorCd();
+
 						colorDesc += "<span class=\"st_tit_desc\" style=\"display:block; margin-bottom:10px; font-size:18px; font-weight:500; letter-spacing:-0.025em;\">컬러 : ";
 						colorDesc += "<span>"+ ic.getColorKnm() +"</span></span>";
-					}
-					colorDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
-					colorDesc += "<img src=\""+ imgPath+"/"+ic.getSysImgNm()+"\" alt=\"\" style=\"max-width:100%;margin: 10px auto 0;margin-top: 0;display: block;\">";
-					colorDesc += "<img src=\""+ imgPath+"/"+ic.getSysImgNm()+"\" alt=\"\" style=\"max-width:100%;display: block;margin: 10px auto 0;\">";
-	                colorDesc += "</div>";
-		            if( !tmpColor.equals(ic.getColorCd())) {
+						colorDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
+
+						// 동일색상끼리 이미지 세팅
+						for(ShoplinkerGoods ic2 : imgColorList ) {
+							if( tmpColor.equals(ic2.getColorCd())) {
+								colorDesc += "<img src=\""+ imgPath+"/"+ic2.getSysImgNm()+"\" alt=\"\" style=\"max-width:100%;margin: 10px auto 0;display: block;\">";
+							}
+						}
+
+						colorDesc += "</div>";
 		            	colorDesc += "<div style=\"height:100px;\"></div>";
-		            	tmpColor = ic.getColorCd();
 					}
 				}
 				colorDesc += "</div>";
@@ -383,47 +394,65 @@ public class TsaShoplinkerService {
 
 				// 3) 상세내용 - 모델 착용컷
 				String dtlDesc = "";
-				dtlDesc += "<div class=\"st_view_outfit_box\" style=\"margin-top: 100px;text-align: center;\">";
-				dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">OUTFIT VIEW</span>";
-				dtlDesc += "<span class=\"st_model_info\" style=\"display: block;margin-top: 20px;color: #666;font-size: 16px;font-weight: 200;text-align: center;\">"+goodsMap.getModelInfo()+"</span>";
-				dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
-				for(String img : dImgModelList) {
-					dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;\">";
+				if( 0 < dImgModelList.size()) {
+					dtlDesc += "<div class=\"st_view_outfit_box\" style=\"margin-top: 100px;text-align: center;\">";
+					dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">OUTFIT VIEW</span>";
+					dtlDesc += "<span class=\"st_model_info\" style=\"display: block;margin-top: 20px;color: #666;font-size: 16px;font-weight: 200;text-align: center;\">"+goodsMap.getModelInfo()+"</span>";
+					dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
+					for(String img : dImgModelList) {
+						dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;\">";
+					}
+					dtlDesc += "</div>";
+					dtlDesc += "</div>";
 				}
-				dtlDesc += "</div>";
-				dtlDesc += "</div>";
 
 				// 4) 상세내용 - 상품컷
-				dtlDesc += "<div class=\"st_view_detail_box\" style=\"margin-top: 100px;text-align: center;\">";
-				dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">PRODUCT VIEW</span>";
-				dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
-				for(String img : dImgDetailList) {
-					dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;\">";
+				if( 0 < dImgDetailList.size()) {
+					dtlDesc += "<div class=\"st_view_detail_box\" style=\"margin-top: 100px;text-align: center;\">";
+					dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">PRODUCT VIEW</span>";
+					dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
+					for(String img : dImgDetailList) {
+						dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;\">";
+					}
+	                dtlDesc += "</div>";
+	        		dtlDesc += " </div>";
 				}
-                dtlDesc += "</div>";
-        		dtlDesc += " </div>";
 
         		// 5) 상세내용 - 원단
-        		dtlDesc += "<div class=\"st_view_fabric_box\" style=\"margin-top: 100px;text-align: center;\">";
-        		dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">FABRIC</span>";
-        		dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
-        		dtlDesc += "<img src=\""+dMaterial +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;margin-top: 0;\">";
-                dtlDesc += "</div>";
-                dtlDesc += "</div>";
+				if( !"".equals(dMaterial)){
+	        		dtlDesc += "<div class=\"st_view_fabric_box\" style=\"margin-top: 100px;text-align: center;\">";
+	        		dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">FABRIC</span>";
+	        		dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
+	        		dtlDesc += "<img src=\""+dMaterial +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;margin-top: 0;\">";
+	                dtlDesc += "</div>";
+	                dtlDesc += "</div>";
+				}
 
                 // 6) 상세내용 - 라벨
-                dtlDesc += "<div class=\"st_view_label_box\" style=\"margin-top: 100px;text-align: center;\">";
-                dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">LABEL INFO</span>";
-                dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
-                dtlDesc += "<span style=\"display:inline-block;\">";
-                for(String img : dLabelList) {
-					dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"float:left; margin-top:0; margin-left:20px;\">";
+				if( 0 < dLabelList.size()) {
+	                dtlDesc += "<div class=\"st_view_label_box\" style=\"margin-top: 100px;text-align: center;\">";
+	                dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">LABEL INFO</span>";
+	                dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
+	                dtlDesc += "<span style=\"display:inline-block;\">";
+	                for(String img : dLabelList) {
+						dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"float:left; margin-top:0; margin-left:20px;\">";
+					}
+	                dtlDesc += "</span>";
+	                dtlDesc += "</div>";
+	                dtlDesc += "</div>";
 				}
-                dtlDesc += "</span>";
-                dtlDesc += "</div>";
-                dtlDesc += "</div>";
+
                 htmlDesc += dtlDesc;
 
+                // 이미지 경로 수정
+                htmlDesc = htmlDesc.replace("http://www.istyle24.com/Upload/", "http://image.istyle24.com/Local/")
+    					.replace("http://www.istyle24.com/Images", "http://image.istyle24.com/Statics/design/Images");
+
+    			if( -1 < htmlDesc.indexOf("\"/Upload")) {
+    				htmlDesc = htmlDesc.replace("/Upload", "http://image.istyle24.com/Local");
+    			}
+    			// 이미지 경로 수정
+
                 // 7) 상세내용 - 사이즈
                 Collection<ShoplinkerGoods> sizeList = admShoplinkerDao.getGoodsSizeList(shoplinkerGoods);
                 if (sizeList == null || sizeList.isEmpty()) {

+ 24 - 0
src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -152,6 +152,15 @@ public class TsaGoodsController extends TsaBaseController {
 	@PostMapping("/itemkind/base/list")
 	@ResponseBody
 	public Collection<Itemkind> getItemkindList(@RequestBody Itemkind itemkind) {
+		
+		// multi row 검색관련 처리
+		if (!StringUtils.isBlank(itemkind.getSearchItemkindCd())) {
+			itemkind.setMultiItemkindCd(itemkind.getSearchItemkindCd().replaceAll("\r", "").trim().split("\n"));
+		}
+		if (!StringUtils.isBlank(itemkind.getSearchItemkindNm())) {
+			itemkind.setMultiItemkindNm(itemkind.getSearchItemkindNm().replaceAll("\r", "").trim().split("\n"));
+		}
+		
 		return goodsService.getItemkindList(itemkind);
 	}
 
@@ -3491,5 +3500,20 @@ public class TsaGoodsController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0003"));
 	}
 
+	/**
+	 * 품목 목록 화면(팝업)
+	 * @param
+	 * @return
+	 * @author eskim
+	 * @since 2021. 07. 16
+	 */
+	@GetMapping("/itemkind/popup/form")
+	public ModelAndView itemkindPopupForm(Itemkind itemkind) {
+		ModelAndView mav = new ModelAndView();
+
+		mav.addObject("params", itemkind);
+		mav.setViewName("goods/ItemkindPopupForm");
+		return mav;
+	}
 
 }

+ 0 - 249
src/main/java/com/style24/admin/biz/web/TsaOrderController.java

@@ -259,173 +259,6 @@ public class TsaOrderController extends TsaBaseController {
 		return mav;
 	}
 
-	/**
-	 * 입점업체미발주목록화면
-	 *
-	 * @return ModelAndView
-	 * @author jsh77b
-	 * @since 2020. 11. 30
-	 */
-	@GetMapping("/seller/unorder/list/form")
-	public ModelAndView orderSellerUnorderListForm() {
-		ModelAndView mav = new ModelAndView();
-
-		mav.addObject("supplyCompList"	, rendererService.getSupplyCompanyList());				// 공급업제목록
-		mav.addObject("ordStatList"		, rendererService.getAvailCommonCodeList("G012"));		// 주문상태코드
-		mav.addObject("ordDtlStatList"	, rendererService.getAvailCommonCodeList("G013"));		// 주문상세상태코드
-		mav.addObject("shipCompanyList"	, rendererService.getShipCompanyList());				// 택배사 목록
-
-		mav.setViewName("order/OrderSellerListForm");
-
-		return mav;
-	}
-
-	/**
-	 * 입점업체미발주 주문목록 조회
-	 *
-	 * @param order - 주문정보
-	 * @return Collection<Order>
-	 * @author jsh77b
-	 * @since 2020. 11. 16
-	 */
-	@PostMapping("/seller/unorder/list")
-	@ResponseBody
-	public GagaMap getOrderSellerUnorderList(@RequestBody Order order) throws Exception {
-		GagaMap result = new GagaMap();
-
-		order.setPageable(new TscPageRequest(0, 10000));
-
-		// 주문전체건수 조회
-		int totalCount = orderService.getOrderSellerUnorderListCount(order);
-		order.getPageable().setTotalCount(totalCount);
-
-		Collection<Order> orderList = orderService.getOrderSellerUnorderList(order);
-
-		result.set("pageing"	, order);
-		result.set("orderList"	, orderList);
-
-		return result;
-	}
-
-	/**
-	 * 입점업체미발주목록 - 엑셀다운로드시 주문상태값 변경(출고완료)
-	 *
-	 * @param orderList - 미발주목록
-	 * @return GagaResponse
-	 * @author jsh77b
-	 * @since 2020. 12. 01
-	 */
-	@PostMapping("/seller/unorder/status/save")
-	@ResponseBody
-	public GagaResponse saveUnorderStatus(@RequestBody Collection<Order> orderList) {
-		int userNo = TsaSession.getInfo().getUserNo();
-		orderService.saveUnorderStatus(orderList, userNo);
-		return super.ok("");
-	}
-
-	/**
-	 * 입점업체미발주목록 - 엑셀다운로드
-	 *
-	 * @param request - request
-	 * @return ResponseEntity<InputStreamResource>
-	 * @throws Exception - exception
-	 * @author jsh77b
-	 * @since 2020. 12. 01
-	 */
-	@GetMapping("/seller/unorder/excel/list")
-	public ResponseEntity<InputStreamResource> downloadPickingGoodsExcelList(HttpServletRequest request) throws Exception {
-		String excelfileName 	= "입점출고목록_" + GagaDateUtil.getTodayDateTime() + ".xlsx";
-		String excelFilePath 	= GagaFileUtil.getConcatenationPath(env.getProperty("download.path"), "excel", excelfileName);
-
-		Order order = new Order();
-		order.setRegNo(TsaSession.getInfo().getUserNo());
-		order.setSearch("EXCEL");
-
-		orderService.geSellerUnorderExcelList(order, excelFilePath);
-
-		return GagaFileUtil.writeFile(request, excelFilePath);
-	}
-
-	/**
-	 * 입점 송장 엑셀 업로드
-	 *
-	 * @param order - 주문정보
-	 * @return GagaMap
-	 * @throws Exception - exception
-	 * @author jsh77b
-	 * @since 2020. 12. 01
-	 */
-	@PostMapping("/seller/unorder/invoice/excelupload/save")
-	@ResponseBody
-	public GagaMap saveSellerUnorderInvoiceExcelupload(@RequestBody Order order) throws Exception {
-
-		ObjectMapper mapper = new ObjectMapper();
-
-		// 1. UPLOAD 경로 조회
-		String targetPath = GagaFileUtil.getConcatenationPath(env.getProperty("upload.excel.target.path"), "excel");
-
-		// 2. DB 처리 시 사용되는 파라미터명(셀명) 설정
-		String[] cellName = {
-			  "ordNo"
-			, "ordDtlNo"
-			, "goodsCd"
-			, "optCd2"
-			, "ordQty"
-			, "shipCompCd"
-			, "invoiceNo"
-		};
-
-		Collection<GagaMap> ecxelList = GagaExcelUtil.getList(GagaFileUtil.getConcatenationPath(targetPath, order.getExcelFileNm()), 0, cellName, 0);
-
-		// 3. 주문목록 매퍼 등록
-		Collection<Order> orderList = new ArrayList<>();
-		for (GagaMap map : ecxelList) {
-			Order tmpGoods = mapper.convertValue(map, Order.class);
-			orderList.add(tmpGoods);
-		}
-
-		// 4. 업로드된 임시 엑셀파일 삭제
-		if (CollectionUtils.isEmpty(orderList)) {
-			try {
-				GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(targetPath, order.getExcelFileNm()));
-			} catch (IOException e) {
-				// Nothing Do
-			}
-			//throw new IllegalStateException(message.getMessage("FAIL_1001"));
-			throw new IllegalStateException("실패 했습니다.");
-		}
-
-		// 4. 주문상세번호 기준으로 송장번호 등록
-		int userNo = TsaSession.getInfo().getUserNo();
-		String result = orderService.saveUnorderInvoice(orderList, userNo);
-		GagaMap map = new GagaMap();
-		map.set("msg", result);
-
-		// 5. 파일 삭제 (중복처리?)
-		GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(targetPath, order.getExcelFileNm()));
-
-		return map;
-	}
-
-	/**
-	 * 입점업체미발주목록 - 송장번호 입력(출고완료)
-	 *
-	 * @param orderList - 송방번호 입력된 주문리스트
-	 * @return GagaMap
-	 * @author jsh77b
-	 * @since 2020. 12. 01
-	 */
-	@PostMapping(value = "/seller/unorder/invoice/save")
-	@ResponseBody
-	public GagaMap saveUnorderInvoice(@RequestBody Collection<Order> orderList) {
-		// 1. 송장번호 개별 등록
-		int userNo = TsaSession.getInfo().getUserNo();
-		String result = orderService.saveUnorderInvoice(orderList, userNo);
-		GagaMap map = new GagaMap();
-		map.set("msg", result);
-		return map;
-	}
-
 	/**
 	 * 주문상세 > 주문요청 관리자 메모 > 등록폼
 	 *
@@ -750,88 +583,6 @@ public class TsaOrderController extends TsaBaseController {
 	}
 	
 	/* //주문 샘플 데이터 (추후 삭제 예정) */
-
-	/**
-	 * 입점업체 최종 배송 확인
-	 *
-	 * @return ModelAndView
-	 * @author xodud1202
-	 * @since 2021. 04. 20
-	 */
-	@GetMapping("/seller/final/delv/list/form")
-	public ModelAndView sellerFinalDelvListForm() {
-		ModelAndView mav = new ModelAndView();
-		mav.addObject("shipCompanyList", rendererService.getShipCompanyList());						// 택배사 목록
-		mav.setViewName("order/OrderSellerDelvListForm");
-		return mav;
-	}
-
-	/**
-	 * 입점업체 배송준비중 목록 조회
-	 * @param order - 주문정보
-	 * @return Collection<Order>
-	 * @author jsh77b
-	 * @since 2020. 11. 16
-	 */
-	@PostMapping("/seller/final/delv/list")
-	@ResponseBody
-	public Collection<Order> sellerFinalDelvList(@RequestBody Order order) throws Exception {
-		Collection<Order> orderList = orderService.getOrderSellerUnorderList(order);
-		return orderList;
-	}
-
-	/**
-	 * 입점 상품 배송중 처리
-	 *
-	 * @param orderList - 미발주목록
-	 * @return GagaResponse
-	 * @author jsh77b
-	 * @since 2020. 12. 01
-	 */
-	@PostMapping("/seller/delv/started")
-	@ResponseBody
-	public GagaResponse sellerDelvStarted(@RequestBody Collection<Order> orderList) {
-		int userNo = TsaSession.getInfo().getUserNo();
-		orderService.updateSellerDelvStartAndPartCancel(orderList, userNo);
-		return super.ok("");
-	}
-
-	/**
-	 * 입점 상품 주문 목록
-	 * @param orderList - 주문목록화면
-	 * @return ModelAndView
-	 * @author xodud1202
-	 * @since 2020. 06. 07
-	 */
-	@GetMapping("/seller/delv/list/form")
-	public ModelAndView sellerDelvListForm() {
-		ModelAndView mav = new ModelAndView();
-
-		mav.addObject("supplyCompList"	, rendererService.getSupplyCompanyList());				// 공급업제목록
-		mav.addObject("ordStatList"		, rendererService.getAvailCommonCodeList("G012"));		// 주문상태코드
-		mav.addObject("ordDtlStatList"	, rendererService.getAvailCommonCodeList("G013"));		// 주문상세상태코드
-		mav.addObject("shipCompanyList"	, rendererService.getShipCompanyList());				// 택배사 목록
-
-		mav.setViewName("order/OrderSellerDelvEndListForm");
-
-		return mav;
-	}
-
-	/**
-	 * 입점업체 주문 목록 조회
-	 *
-	 * @param order - 주문정보
-	 * @return Collection<Order>
-	 * @author xodud1202
-	 * @since 2021. 06. 07
-	 */
-	@PostMapping("/seller/order/list")
-	@ResponseBody
-	public Collection<Order> getOrderSellerOrderList(@RequestBody Order order) {
-		order.setIfYn("Y");			// 취소, 반품 신청/대기 건 제외하지 않도록 구분값 지정
-		Collection<Order> orderList = orderService.getOrderSellerUnorderList(order);
-		return orderList;
-	}
 	
 	/**
 	 * 스윗트래커 정보 조회

+ 15 - 1
src/main/java/com/style24/persistence/domain/Itemkind.java

@@ -1,5 +1,6 @@
 package com.style24.persistence.domain;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 
 import lombok.Data;
@@ -21,7 +22,20 @@ public class Itemkind extends TscBaseDomain {
 	private String sizeGb;			// 사이즈구분(T:상의, B:하의, S:신발)
 	private String useYn;			// 사용여부
 	private String itemkindLeafNm;		// leaf 품목명
+	
+	// 검색조건
+	private String searchTxt;		// 검색어
+	private String callbackFn;		// 콜백함수
+	private String multiGb;			// 멀티 셀렉트 구분
+	private String searchItemkindCd;
+	private String searchItemkindNm;
+	
+	/* 품목검색 Multi CheckBox 항목*/
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiItemkindCd;
 
-//	private String index;
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiItemkindNm;
+	/* 품목검색 Multi CheckBox 항목*/
 
 }

+ 13 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -22,6 +22,19 @@
 		<if test="useYn != null and useYn != ''">
 		AND USE_YN = #{useYn} 
 		</if>
+		<if test="multiItemkindCd != null and multiItemkindCd.length > 0">
+		AND ITEMKIND_CD IN
+		    <foreach collection="multiItemkindCd" item="item" index="index"  open="(" close=")" separator=",">
+		     UPPER(#{item})
+		    </foreach>
+		</if>
+		<if test="multiItemkindNm != null and multiItemkindNm.length > 0">
+		AND (
+		    <foreach collection="multiItemkindNm" item="item" index="index" separator="or">
+		    ITEMKIND_NM LIKE CONCAT('%',#{item},'%')
+		  </foreach>
+		 )
+		</if>
 		ORDER BY ITEMKIND_CD
 	</select>
 

+ 3 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaOcm.xml

@@ -26,6 +26,9 @@
 		<if test="vendorId != null and vendorId != ''">
 		AND    VENDOR_ID = #{vendorId}
 		</if>
+		<if test="searchTxt != null and searchTxt != ''">
+		AND    EXTMALL_NM LIKE CONCAT('%', #{searchTxt}, '%')
+		</if>
 		ORDER  BY VENDOR_ID, EXTMALL_ID, EXTMALL_USER_ID
 	</select>
 

+ 12 - 9
src/main/java/com/style24/persistence/mybatis/shop/TsaShoplinker.xml

@@ -117,6 +117,9 @@
 			AND A.MAIN_COLOR_CD = B.COLOR_CD
         	AND (B.DEFAULT_IMG_YN = 'Y' OR B.EXTMALL_IMG_YN = 'Y')
         </if>
+        <if test='extmallDescImgYn != null and extmallDescImgYn == "Y"'>
+        	AND A.MAIN_COLOR_CD = B.COLOR_CD
+        </if>
         <if test='colorListYn != null and colorListYn == "Y"'>
 			AND (B.SYS_IMG_NM LIKE '%_01.jpg' or B.SYS_IMG_NM LIKE '%_02.jpg' )
         </if>
@@ -368,17 +371,17 @@
 	<sql id="getListCondition_sql">
 
 		        <if test="goodsCd != null and goodsCd != ''">
-		        AND UPPER(A.GOODS_CD) LIKE CONCAT('%',UPPER(#{goodsCd}),'%')
+		        AND A.GOODS_CD LIKE CONCAT('%',UPPER(#{goodsCd}),'%')
 		        </if>
 		    	<if test="conditionList != null and conditionList.length>0">
-		        AND UPPER(A.GOODS_CD) IN
+		        AND A.GOODS_CD IN
 		            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
 		       		UPPER(#{item})
 		            </foreach>
 		        </if>
 
 		        <if test="goodsNm != null and goodsNm != ''">
-		        AND UPPER(B.GOODS_NM) LIKE CONCAT('%',UPPER(#{goodsNm}),'%')
+		        AND B.GOODS_NM LIKE CONCAT('%',UPPER(#{goodsNm}),'%')
 		        </if>
 		        <if test="brandCd != null and brandCd != ''">
 		        AND BRAND_CD = #{brandCd}
@@ -624,9 +627,9 @@
 	              </when>
 
 	              <when test='search != null and search == "ordNo"'>
-	              	AND UPPER(B.ORD_NO) IN
+	              	AND B.ORD_NO IN
 			            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-			       		UPPER(#{item})
+			       		#{item}
 			            </foreach>
 	              </when>
 	            </choose>
@@ -761,16 +764,16 @@
 	              </when>
 
 	              <when test='search != null and search == "ordNo"'>
-	              	AND UPPER(OD.ORD_NO) IN
+	              	AND OD.ORD_NO IN
 			            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-			       		UPPER(#{item})
+			       		#{item}
 			            </foreach>
 	              </when>
 
 	              <when test='search != null and search == "deliveryInvoice"'>
-	              	AND UPPER(OD.INVOICE_NO) IN
+	              	AND OD.INVOICE_NO IN
 			            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-			       		UPPER(#{item})
+			       		#{item}
 			            </foreach>
 	              </when>
 

+ 6 - 0
src/main/webapp/WEB-INF/views/display/GoodsCategoryForm.html

@@ -733,6 +733,7 @@
 				$("#cateGb"+i).val('');
 				$("#leafYn"+i).val('');
 			}
+			
 		});
 
 		// 전시카테고리 삭제
@@ -851,6 +852,11 @@
 			$('#goodsSearchForm input[name=supplyCompList]').val('');
 			$('#goodsSearchForm').find('#brandText').html('');
 			$('#goodsSearchForm').find('#supplyCompText').html('');
+			
+			$(document).find('#goodsSearchForm').find(".multiCheckBox").each(function(i, e){
+				let btnNm = $(this).find(".sltBtn").attr("data-name");
+				$(this).find(".sltBtn").text(btnNm);
+			});
 		});
 
 		$(document).ready(function() {

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

@@ -948,9 +948,9 @@
 				$("#addMobImg"+dataIdx).click();
 			}
 		}
-		if(contentsLoc=='SGNB002' || contentsLoc=='SMM008' || contentsLoc=='SBM006' || contentsLoc=='SCM005' || contentsLoc=='SOM005' || contentsLoc=='SAD001'){
+		if(contentsLoc=='SGNB002' || contentsLoc=='SMM008' || contentsLoc=='SBM006' || contentsLoc=='SBM014' || contentsLoc=='SBM015' || contentsLoc=='SBM016' || contentsLoc=='SCM005' || contentsLoc=='SOM005' || contentsLoc=='SAD001'){
 			$("#addTitle"+dataIdx).click();
-			if(contentsLoc=='SMM008'|| contentsLoc=='SBM006' || contentsLoc=='SCM005' || contentsLoc=='SOM005' || contentsLoc=='SAD001'){
+			if(contentsLoc=='SMM008'|| contentsLoc=='SBM006' || contentsLoc=='SBM014' || contentsLoc=='SBM015' || contentsLoc=='SBM016' || contentsLoc=='SCM005' || contentsLoc=='SOM005' || contentsLoc=='SAD001'){
 				$("#addImg"+dataIdx).click();
 			}
 			$("#addLink"+dataIdx).click();

+ 2 - 2
src/main/webapp/WEB-INF/views/display/MainMultiContentsPopupForm.html

@@ -422,7 +422,7 @@ console.log('brandGroupNo:'+brandGroupNo);
 			changeYear: true,
 			defaultDate: $('.schDate').val()
 		});
-		if(contentsLoc == 'SBM007' || contentsLoc == 'SBM008' || contentsLoc == 'SBM009' || contentsLoc == 'SMM003' || contentsLoc == 'SMM007' || contentsLoc == 'SMM009'
+		if(contentsLoc == 'SBM007' || contentsLoc == 'SBM008' || contentsLoc == 'SBM009' || contentsLoc == 'SBM017'|| contentsLoc == 'SBM018'|| contentsLoc == 'SBM019' || contentsLoc == 'SMM003' || contentsLoc == 'SMM007' || contentsLoc == 'SMM009'
 				|| contentsLoc == 'SCM002' || contentsLoc == 'SCM003' || contentsLoc == 'SOM002' || contentsLoc == 'SOM003'){
 			$("#addGoodsBtn"+brandIdx).click();
 		}
@@ -768,7 +768,7 @@ console.log('brandGroupNo:'+brandGroupNo);
 			return false;
 		}
 
-		if(contentsLoc == 'SBM007' || contentsLoc == 'SBM008' || contentsLoc == 'SBM009' || contentsLoc == 'SMM003' || contentsLoc == 'SMM007' || contentsLoc == 'SMM009'
+		if(contentsLoc == 'SBM007' || contentsLoc == 'SBM008' || contentsLoc == 'SBM009'|| contentsLoc == 'SBM017'|| contentsLoc == 'SBM018'|| contentsLoc == 'SBM019' || contentsLoc == 'SMM003' || contentsLoc == 'SMM007' || contentsLoc == 'SMM009'
 				|| contentsLoc == 'SCM002' || contentsLoc == 'SCM003' || contentsLoc == 'SOM002' || contentsLoc == 'SOM003'){
 			if(!goodsArrValidation()){
 				return false;

+ 6 - 0
src/main/webapp/WEB-INF/views/goods/GoodsListForm.html

@@ -571,6 +571,12 @@
 		$('#searchForm input[name=supplyCompList]').val('');
 		$('#searchForm').find('#brandText').html('');
 		$('#searchForm').find('#supplyCompText').html('');
+		
+		$(document).find('#searchForm').find(".multiCheckBox").each(function(i, e){
+			let btnNm = $(this).find(".sltBtn").attr("data-name");
+			$(this).find(".sltBtn").text(btnNm);
+		});
+		
 	});
 
 	// 조회클릭시

+ 5 - 1
src/main/webapp/WEB-INF/views/goods/GoodsNaverPriceForm.html

@@ -215,7 +215,11 @@
 		//$("#searchForm input[type=radio]").parent("label").removeClass("checked");
 		$("#searchForm input[type=checkbox]").parent("label").removeClass("checked");
 		$("#searchForm input[type=radio][checked]").parent("label").addClass("checked");
-
+		
+		$(document).find('#searchForm').find(".multiCheckBox").each(function(i, e){
+			let btnNm = $(this).find(".sltBtn").attr("data-name");
+			$(this).find(".sltBtn").text(btnNm);
+		});
 	});
 
 	// 조회클릭시

+ 5 - 0
src/main/webapp/WEB-INF/views/goods/GoodsPopupListForm.html

@@ -356,6 +356,11 @@
 		$('#goodsPopupForm input[name=supplyCompList]').val('');
 		$('#goodsPopupForm').find('#brandText').html('');
 		$('#goodsPopupForm').find('#supplyCompText').html('');
+		
+		$(document).find('#goodsPopupForm').find(".multiCheckBox").each(function(i, e){
+			let btnNm = $(this).find(".sltBtn").attr("data-name");
+			$(this).find(".sltBtn").text(btnNm);
+		});
 	});
 
 	// 조회클릭시

+ 5 - 0
src/main/webapp/WEB-INF/views/goods/GoodsQuikDeliverySkipForm.html

@@ -192,6 +192,11 @@
 		//$("#searchForm input[type=radio]").parent("label").removeClass("checked");
 		$("#searchForm input[type=checkbox]").parent("label").removeClass("checked");
 		$("#searchForm input[type=radio][checked]").parent("label").addClass("checked");
+		
+		$(document).find('#searchForm').find(".multiCheckBox").each(function(i, e){
+			let btnNm = $(this).find(".sltBtn").attr("data-name");
+			$(this).find(".sltBtn").text(btnNm);
+		});
 
 	});
 

+ 138 - 0
src/main/webapp/WEB-INF/views/goods/ItemkindPopupForm.html

@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : ItemkindPopupForm.html
+ * @desc    : 품복 팝업 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.07.16   eskim       최초 작성
+ *******************************************************************************
+ -->
+<div class="modalPopup" data-width="600" id="popupItemkindList">
+	<div class="panelStyle"  style="max-height:700px;">
+		<!-- TITLE -->
+		<div class="panelTitle">
+			<strong>품목 목록</strong>
+			<button type="button" class="close" onclick="uifnPopupClose('popupItemkindList');"><em class="fa fa-times"></em></button>
+		</div>
+		<!-- //TITLE -->
+		<!-- 검색 조건 -->
+		<div class="panelContent">
+			<form id="searchItemkindListForm" name="searchItemkindListForm" action="#" th:action="@{'/goods/itemkind/base/list'}" onsubmit="$('#btnSearchItemkindList').trigger('click'); return false;">
+				<table class="frmStyle" aria-describedby="검색조건">
+					<colgroup>
+						<col style="width:15%;"/>
+						<col style="width:35%;"/>
+						<col style="width:15%;"/>
+						<col/>
+					</colgroup>
+					<tbody>
+						<tr>
+							<th>품목코드</th>
+							<td>
+								<textarea class="textareaR2" name="searchItemkindCd" id="searchItemkindCd"></textarea>
+							</td>
+							<th>품목명</th>
+							<td>
+								<textarea class="textareaR2" name="searchItemkindNm" id="searchItemkindNm"></textarea>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+				<ul class="panelBar">
+					<li class="center">
+						<button type="button" class="btn btn-base btn-lg" id="btnSearchItemkindList">조회</button>
+					</li>
+				</ul>
+			</form>
+			<!-- 리스트 영역 -->
+			<div class="panelContent">
+				<div id="gridItemkindList" style="width: 100%; height: 380px" class="ag-theme-balham"></div>
+			</div>
+			<!-- //리스트 영역 -->
+			
+			<!-- 버튼 배치 영역 -->
+			<ul class="panelBar">
+				<li class="right">
+					<button type="button" class="btn btn-info btn-lg" id="btnConfirmItemkind">확인</button>
+				</li>
+			</ul>
+		</div>
+		<!-- //검색 조건 -->
+	</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	let headerSelection = false;
+	if([[${params.multiGb}]] == "M") headerSelection = true;
+	let columnDefsMdList = [
+		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: headerSelection, checkboxSelection: true, filter: false},
+		{headerName: "품목코드", field: "itemkindCd", width: 150, cellClass: 'text-center'},
+		{headerName: "품목명", field: "itemkindNm", width: 370, cellClass: 'text-left',
+			cellRenderer: function(params) {
+				return params.value.replaceAll("&gt;", ">");
+			}
+		}
+	];
+
+	let gridOptionsItemkindList = gagaAgGrid.getGridOptions(columnDefsMdList);
+	if(headerSelection) {	gridOptionsItemkindList.rowSelection = "multiple";	}
+
+	// Row double click
+	gridOptionsItemkindList.onRowDoubleClicked = function(event) {
+		$('#btnConfirmItemkind').trigger('click');
+	}
+
+	// 조회
+	$('#btnSearchItemkindList').on('click', function() {
+		// Fetch data
+		gagaAgGrid.fetch($('#searchItemkindListForm').prop('action'), gridOptionsItemkindList, '#searchItemkindListForm');
+	});
+	
+	// 확인
+	$('#btnConfirmItemkind').on('click', function() {
+		var selectedData = gagaAgGrid.selectedRowData(gridOptionsItemkindList);
+		
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 품목이 없습니다.');
+			return false;
+		}
+		
+		var callbackFn = [[${params.callbackFn}]];
+
+		var jsonData = JSON.stringify(selectedData);
+
+		if (typeof callbackFn != 'undefined' && callbackFn) {
+			if (typeof callbackFn == 'function') {
+				callbackFn(jsonData);
+			} else {
+				if (callbackFn) {
+					if (callbackFn.indexOf("(") == -1) {
+						(new Function(callbackFn + "(" + jsonData + ");"))();
+					} else {
+						(new Function(callbackFn(jsonData)))();
+					}
+				}
+			}
+			uifnPopupClose('popupItemkindList');
+		}
+	});
+	
+	$(document).ready(function() {
+		// Create a agGrid
+		gagaAgGrid.createGrid('gridItemkindList', gridOptionsItemkindList);
+		
+		//$('#btnSearchItemkindList').trigger('click');
+	});
+/*]]>*/
+</script>
+
+</div>
+
+</html>

+ 9 - 5
src/main/webapp/WEB-INF/views/marketing/FreeGoodsPromotionRegiForm.html

@@ -751,12 +751,16 @@
 			return false;
 		}
 
-		// 행사기간 확인
-		let fromDate = $('#freeGoodsPromotionForm input[name=freegiftStdt]').val();
-		let toDate = $('#freeGoodsPromotionForm input[name=freegiftEddt]').val();
+		let fromDate = $("#freeGoodsPromotionForm input[name=freegiftStDate]").val() + " " + $("#freeGoodsPromotionForm select[name=freegiftStHH]").val() + ":" + $("#freeGoodsPromotionForm select[name=freegiftStMM]").val() + ":00";
+		let toDate = $("#freeGoodsPromotionForm input[name=freegiftEdDate]").val();
+		if($("#freeGoodsPromotionForm select[name=freegiftEdHH]").val() == "24") {
+			toDate += " 23:59:59";
+		} else {
+			toDate += " " + $("#freeGoodsPromotionForm select[name=freegiftEdHH]").val() + ":" + $("#freeGoodsPromotionForm select[name=freegiftEdMM]").val() + ":00";
+		}
 
-		if (fromDate > toDate) {
-			mcxDialog.alert("시작일자는 종료일자 보다 늦을 수 없습니다.");
+		if (fromDate >= toDate) {
+			mcxDialog.alert("시작일자는 종료일자 보다 늦거나 같을 수 없습니다.");
 			return false;
 		}
 

+ 2 - 2
src/main/webapp/WEB-INF/views/ocm/ExtmallSearchForm.html

@@ -25,8 +25,7 @@
 
 		<!-- 검색 조건 -->
 		<div class="panelContent">
-			<form id="searchExtmallListForm" name="searchExtmallListForm" action="#" th:action="@{'/ocm/extmall/list'}" onsubmit="$('#btnSearchExtmallList').trigger('click'); return false;">
-
+			<form id="searchExtmallListForm" class="searchExtmallListForm" name="searchExtmallListForm" action="#" th:action="@{'/ocm/extmall/list'}" onsubmit="$('#btnSearchExtmallList').trigger('click'); return false;">
 				<table class="frmStyle" aria-describedby="검색조건">
 					<colgroup>
 						<col style="width:15%;"/>
@@ -90,6 +89,7 @@
 		$('#btnSearchExtmallList').on('click', function() {
 			// Fetch data
 			gagaAgGrid.fetch($('#searchExtmallListForm').prop('action'), gridOptionsExtmallPopupList, '#searchExtmallListForm');
+			gridOptions.api.setRowData(result.morebetterList);
 		});
 
 		// 확인

+ 0 - 378
src/main/webapp/WEB-INF/views/order/OrderSellerListForm.html

@@ -1,378 +0,0 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : OrderSellerListForm.html
- * @desc    : 입점업체미발주목록조회 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2020.11.16   jsh77b       최초 작성
- *******************************************************************************
- -->
- 
-<div id="main">
-	<!-- 메인타이틀 영역 -->
-	<div class="main-title">
-	</div>
-	<!-- //메인타이틀 영역 -->
-	
-	<!-- 메뉴 설명 -->
-	<div class="infoBox menu-desc">
-	</div>
-	
-	<form id="searchForm" name="searchForm" action="#" th:action="@{'/order/seller/unorder/list'}">
-		<input type="hidden" id="searchGb" name="searchGb" />
-		<input type="hidden" id="imageViewYn" name="imageViewYn" />
-		<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
-		
-		<!-- 패널 영역1 -->
-		<div class="panelStyle" >
-			<!-- 검색조건 영역 -->
-			<!-- TITLE -->
-			<div class="panelTitle">
-				<h3>
-					<i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">주문번호</font> 또는 <font color="red">검색조건</font> 하나를 꼭 입력해 주세요.
-				</h3>
-				<span class="panelControl">
-					<i class="fa fa-chevron-up"></i>
-				</span>
-			</div>
-			
-			<div class="panelContent">
-				<table class="frmStyle">
-					<colgroup>
-						<col style="width:10%;"/>
-						<col style="width:15%;"/>
-						<col style="width:10%;"/>
-						<col style="width:15%;"/>
-						<col style="width:10%;"/>
-						<col style="width:15%;"/>
-						<col style="width:10%;"/>
-						<col style="width:15%;"/>
-					</colgroup>
-					<tr>
-						<th>업체/브랜드<em class="required" title="필수"></em></th>
-						<td colspan="7">
-							<!-- <label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnY" value="N" />자사</label> -->
-							<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnN" value="Y" checked/>입점</label>
-							<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>
-						</td>
-					</tr>
-					<tr>
-						<th>주문번호</th>
-						<td>
-							<input type="text" name="ordNo" placeholder="" maxlength="20"/>
-						</td>
-						<th>주문자명</th>
-						<td>
-							<input type="text" name="ordNm" placeholder="" maxlength="20"/>
-						</td>
-						<th>상품코드</th>
-						<td>
-							<input type="text" name="goodsCd" placeholder="" maxlength="20"/>
-						</td>
-						<th>주문상세상태</th>
-						<td>
-							<select name="ordDtlStat" id="ordDtlStat">
-								<option value="G013_20" selected>결제완료</option>
-								<option value="G013_30">상품준비중</option>
-								<option value="G013_40">배송준비중</option>
-							</select>
-						</td>
-					</tr>
-					<tr>
-						<th>조회일자</th>
-						<td colspan="7">
-							<select name="searchDateGb">
-								<option value="ordDt">주문일자</option>
-							</select>
-							<span id="terms"></span>
-						</td>
-					</tr>
-				</table>
-				
-				<ul class="panelBar">
-					<li class="center">
-						<button type="button" class="btn btn-info btn-lg" id="btnOrderSearch">조회</button>
-						<button type="button" class="btn btn-gray btn-lg" id="btnInit">초기화</button>
-					</li>
-				</ul>
-				
-			</div>
-		</div>
-
-		<div class="panelStyle">
-			<!--<ul class="panelBar">
-				<li>
-					<button type="button" class="btn btn-info btn-lg" onclick="cfnDownloadSampleFile('SF020');">입점송장번호등록다운로드</button>
-				</li>
-				<li class="aR">
-					<button type="button" id="btnExcelDown" class="btn btn-info btn-lg">엑셀다운로드</button>
-					<button type="button" id="btnInvoiceExcelUpLoad" class="btn btn-success btn-lg">송장엑셀업로드</button>
-					<button type="button" id="btnSave" class="btn btn-success btn-lg">저장</button>
-				</li>
-			</ul>-->
-			
-			<div class="panelContent" style="overflow: hidden;">
-				<div id="gridList" style="width: 100%; height: 600px;" class="ag-theme-balham lh30"></div>
-			</div>
-		</div>
-		
-		<!-- //리스트 영역 -->
-		<label class="off">
-			<a href="javascript:void(0);" id="excelList" style="display: none;">엑셀다운로드</a>
-		</label>
-
-	</form>
-</div>
-
-<label class="off">
-	<a href="javascript:void(0);" id="hdOrderExcelList" style="display: none;">엑셀다운로드</a>
-</label>
-
-<script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js?v=20210114"></script>
-
-<script th:inline="javascript">
-/*<![CDATA[*/
-var sessRoleCd 		= [[${sessionInfo.roleCd}]];
-var shipCompanyList = gagajf.convertToArray([[${shipCompanyList}]]);
-
-var columnDefs = [
-	{width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
-	{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
-	{headerName: "입점업체",			field:"supplyCompNm",		width:100, cellClass: 'text-center'},
-	{headerName: "입점업체코드",		field:"supplyCompCd",		width:100, cellClass: 'text-center', hide: true},
-	{headerName: "브랜드",			field:"brandKnm",			width:100, cellClass: 'text-center'},
-	{headerName: "주문번호",			field:"ordNo",				width:100, cellClass: 'text-center'},
-	{headerName: "주문상세번호",		field:"ordDtlNo",			width:100, cellClass: 'text-center'},
-	{headerName: "주문상세상태",		field:"ordDtlStat", 		width:100, cellClass: 'text-center', hide: true},
-	{headerName: "주문상세상태",		field:"ordDtlStatNm", 		width:100, cellClass: 'text-center'},
-	{headerName: "주문자명",			field:"ordNm",				width:100, cellClass: 'text-center'},
-	{headerName: "주문일시",			field:"ordDt",				width:100, cellClass: 'text-center',
-		cellRenderer		: function (params) {
-			return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
-		}
-	},
-	{headerName: "결제수단",			field:"payMeansNm",			width:100, cellClass: 'text-center'},
-	{headerName: "주문자휴대전화",		field:"ordPhnno",			width:100, cellClass: 'text-center'},
-	{headerName: "수령자명",			field:"recipNm",			width:100, cellClass: 'text-center'},
-	{headerName: "수령자휴대전화",		field:"recipPhnno",			width:120, cellClass: 'text-center'},
-	{headerName: "수령자우편번호",		field:"recipZipcode",		width:120, cellClass: 'text-center'},
-	{headerName: "수령자기본주소",		field:"recipBaseAddr",		width:120, cellClass: 'text-center'},
-	{headerName: "수령자상세주소",		field:"recipDtlAddr",		width:120, cellClass: 'text-center'},
-	{headerName: "업체상품코드",		field:"supplyGoodsCd",		width:100, cellClass: 'text-center'},
-	{headerName: "상품코드",			field:"goodsCd",			width:100, cellClass: 'text-center'},
-	{headerName: "상품명",			field:"goodsNm",			width:100, cellClass: 'text-center'},
-	{headerName: "옵션1",			field:"optCd1",				width:100, cellClass: 'text-center'},
-	{headerName: "옵션2",			field:"optCd2",				width:100, cellClass: 'text-center'},
-	{headerName: "주문수량",			field:"ordQty",				width:100, cellClass: 'text-center'},
-	{headerName: "취소수량",			field:"cnclRtnQty",			width:100, cellClass: 'text-center'},
-	{headerName: "주문금액",			field:"ordAmt",				width:100, cellClass: 'text-center'},
-	{headerName: "할인금액",			field:"totDcAmt",			width:100, cellClass: 'text-center'},
-	{headerName: "실결제금액",		field:"realOrdAmt",			width:100, cellClass: 'text-center'},
-	{headerName: "배송업체",			field:"shipCompCd",			width:150, cellClass: 'text-left'
-		, valueFormatter: function (params) {
-			return gagaAgGrid.lookupValue(shipCompanyList, params.value);
-		}
-		, valueParser: function (params) {
-			return gagaAgGrid.lookupKey(shipCompanyList, params.newValue);
-		}
-	},
-	{headerName: "송장",				field:"invoiceNo",			width:150, cellClass: 'text-left'}
-];
-
-var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
-gridOptions.suppressRowClickSelection = true;
-gridOptions.rowSelection = 'multiple';
-gridOptions.stopEditingWhenGridLosesFocus = true;
-
-// 조회버튼
-$('#btnOrderSearch').on('click', function() {
-	fnSearch();
-});
-
-// 검색
-var fnSearch = function() {
-	var formId = '#searchForm';
-	var ordNo = $('#searchForm input[name=ordNo]').val();
-	var stDate = $('#stDate').val();
-	var edDate = $('#edDate').val();
-
-	if (!gagajf.isNull(stDate)) {
-		if (gagajf.isNull(edDate)) {
-			mcxDialog.alert('종료 기간을 입력하세요.');
-			return;
-		}
-	}
-
-	if (!gagajf.isNull(edDate)) {
-		if (gagajf.isNull(stDate)) {
-			mcxDialog.alert('종료 기간을 입력하세요.');
-			return;
-		}
-	}
-
-	gagaPaging.init('searchForm', fnSearchCallBack, 'orderListPagination', 100);
-	gagaPaging.load($("#searchForm input[name=pageNo]").val());
-	// gagaAgGrid.fetch($(formId).prop('action'), gridOptions, formId);
-}
-
-var fnSearchCallBack = function(result){
-	$('#searchForm').find('#gridRowTotalCount').html(result.pageing.pageable.totalCount.addComma());
-	$('#searchForm').find('#pageNo').val(result.pageing.pageable.pageNo.addComma());
-	$('#searchForm').find('#pgNo').html(result.pageing.pageable.pageNo.addComma());
-	$('#searchForm').find('#endPgNo').html(result.pageing.pageable.totalPage.addComma());
-
-	gridOptions.api.setRowData(result.orderList);
-	gagaPaging.createPagination(result.pageing.pageable);
-}
-
-// 엑셀다운로드 시 주문상태 변경
-$('#btnExcelDown').on('click', function () {
-	var selectedData = gridOptions.api.getSelectedRows();
-
-	if (selectedData.length == 0) {
-		mcxDialog.alert('선택된 행이 없습니다.');
-		return;
-	}
-	
-	mcxDialog.confirm('엑셀 다운로드 하시겠습니까?', {
-		cancelBtnText	: "취소",
-		sureBtnText		: "확인",
-		sureBtnClick	: function(){
-			var jsonData = JSON.stringify(selectedData);
-			gagajf.ajaxJsonSubmit('/order/seller/unorder/status/save', jsonData, fnExcelDownCollback);
-		}
-	});
-});
-
-// 엑셀다운로드
-var fnExcelDownCollback = function(flag){
-	$('#excelList').attr({ href : '/order/seller/unorder/excel/list' }).get(0).click();
-}
-
-// 송장 엑셀 업로드
-$('#btnInvoiceExcelUpLoad').on('click', function() {
-	cfnExcelUploadPopup('invoiceExcelUpload', 'invoiceExcelUpload');
-});
-
-var invoiceExcelUpload = function(result){
-	mcxDialog.confirm('송장 변경을 진행하시겠습니까?', {
-		cancelBtnText	: "취소"
-		, sureBtnText	: "확인"
-		, sureBtnClick	: function(){
-			var data = {
-				procJob 		: result.procJob
-				, excelFileNm 	: result.excelFileNm
-			};
-			
-			var jsonData = JSON.stringify(data);
-			gagajf.ajaxJsonSubmit('/order/seller/unorder/invoice/excelupload/save', jsonData, fnInvoiceSaveCollback);
-		}
-	});	
-}
-
-// 송장번호 저장후 
-var fnInvoiceSaveCollback = function(result){
-	mcxDialog.alert(result.msg);
-	fnSearch();
-	return;
-}
-
-// 송장번호 저장시
-$('#btnSave').on('click', function () {
-	var selectedData = gridOptions.api.getSelectedRows();
-
-	if (selectedData.length == 0) {
-		mcxDialog.alert('선택된 행이 없습니다.');
-		return;
-	}
-	
-	var checkFlag = false;
-	$.each(selectedData, function(idx, item) {
-		if (gagajf.isNull(item.shipCompCd)){
-			checkFlag = true;
-			mcxDialog.alert('배송업체를 선택하세요.');
-			return;
-		}
-		
-		if (gagajf.isNull(item.invoiceNo)){
-			checkFlag = true;
-			mcxDialog.alert('송장번호를 입력하세요.');
-			return;
-		}
-	});
-	
-	if (checkFlag){
-		return false;
-	}
-	
-	mcxDialog.confirm('저장 하시겠습니까?', {
-		cancelBtnText	: "취소",
-		sureBtnText		: "확인",
-		sureBtnClick	: function(){
-			var jsonData = JSON.stringify(selectedData);
-			gagajf.ajaxJsonSubmit('/order/seller/unorder/invoice/save', jsonData, fnInvoiceSaveCollback);
-
-		}
-	});
-	
-});
-
-// 초기화 클릭시
-$('#btnInit').on('click', function() {
-	$('#searchForm')[0].reset();
-	$("#multiBrand").empty();
-});
-
-// 자사/입점 변경여부
-$("#searchForm input[name=selfYn]").bind('click change', function () {
-	var radioValue = $(this).val();
-	var selfGb = "S";	// 자사 공급 업체
-	
-	if (radioValue == "N"){
-		selfGb = "E";	//입점 공급업체
-	}
-	
-	var actionUrl = '/renderer/supply/company/list/'+ selfGb;	
-
-	$('#searchForm').find('#multiBrand').empty();
-
-	cfnCreateCombo(actionUrl, $('#searchForm select[name=supplyCompCd]'), "[전체]", "");
-});
-	
-// 업체변경시
-$('#searchForm select[name=supplyCompCd]').on('change', function() {
-	var actionUrl = '/renderer/supplyCompany/brand/list/' + $(this).val();
-
-	if (sessRoleCd == "G001_B000") {
-		actionUrl = '/renderer/brand/AuthBrandlist';
-	}
-	
-	cfnCreateMultiCombo(actionUrl,"multiBrand",  "[전체]",null, 'Y');
-});
-
-//초기설정
-$(document).ready(function() {
-	// 달력기능 활성화
-	cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '주문');
-	gagaAgGrid.createGrid('gridList', gridOptions);
-	gridOptions.api.hideOverlay();
-});
-
-</script>
-
-</html>
-
-
-
-
-

+ 11 - 4
src/main/webapp/WEB-INF/views/withdraw/WithdrawExceptionListForm.html

@@ -443,7 +443,8 @@
 			if(event.data.chgStat == "G685_21" || event.data.chgStat == "G685_51"){
 				return;
 			}
-			if(event.data.recallStat == "P" && event.data.rowspanRank == "1"){
+			//if(event.data.recallStat == "P" && event.data.rowspanRank == "1"){
+			if(event.data.recallStat == "P"){	
 				var params = {};
 				params.recallExceptionNo = event.data.recallExceptionNo;
 				params.csAddFee = event.data.csAddFee;
@@ -459,11 +460,13 @@
 				});
 			}
 		} else if(event.colDef.field == 'chgReason'){
-			if(event.data.recallStat == "P" && event.data.rowspanRank == "1" && event.data.chgStat != null){
+			//if(event.data.recallStat == "P" && event.data.rowspanRank == "1" && event.data.chgStat != null){
+			if(event.data.recallStat == "P"  && event.data.chgStat != null){
 				if (event.data.reasonCode == '00'){
 					
 				} else if(event.data.reasonCode == '01'){ // 반품미접수 
-					
+					// ?? 확인~~~
+					/*
 					if (event.data.chgGb == 'G680_30') { // 반품요청
 						refreshFlag  = "ban";
 						var ordChgSq = 0;
@@ -482,6 +485,7 @@
 						param += "&ordNo=" 			+ event.data.orderNo;
 						param += "&ordDtlNo=" 		+ event.data.orderDtlNo;
 						param += "&delvFeeCd="		+ event.data.delvFeeCd;
+						param += "&ordChgGb="		+ "G681_50"";
 						param += "&delvFeeCdGrp="	+ "WMS";
 						param += "&ordChgSq=" 		+ ordChgSq;
 						param += "&ordDtlNoArr=" 	+ ordDtlNoList.split(",");
@@ -489,6 +493,7 @@
 						var actionUrl = "/orderChange/rtn/req/form?" + param;
 						cfnOpenModalPopup(actionUrl, 'popupReturnRequestForm');
 					}
+				*/
 
 					
 				} else if (event.data.reasonCode == '02' || event.data.reasonCode == '03') { // 미착 , 과착 
@@ -537,7 +542,8 @@
 					
 				}
 				
-			} else if(event.data.recallStat == "P" && event.data.rowspanRank == "1" && event.data.chgStat == null){
+			//} else if(event.data.recallStat == "P" && event.data.rowspanRank == "1" && event.data.chgStat == null){
+			} else if(event.data.recallStat == "P" && event.data.chgStat == null){
 				refreshFlag  = "ban";
 				var ordChgSq = 0;
 				var param    = "";
@@ -557,6 +563,7 @@
 				param += "&ordNo=" 			+ event.data.orderNo;
 				param += "&ordDtlNo=" 		+ event.data.orderDtlNo;
 				param += "&delvFeeCd="		+ event.data.delvFeeCd;
+				param += "&ordChgGb="		+ "G681_50"";
 				param += "&delvFeeCdGrp="	+ "WMS";
 				param += "&ordChgSq=" 		+ ordChgSq;
 				param += "&ordDtlNoArr=" 	+ ordDtlNoList.split(",");

+ 22 - 1
src/main/webapp/ux/js/admin.popup.js

@@ -1030,4 +1030,25 @@ var cfnOpenExtmallOrderPopup = function(ordNo) {
 	var actionUrl = "/shoplinker/order/extmall/info";
 	if (typeof(ordNo) != 'undefined') actionUrl += "?ordNo=" + ordNo;
 	cfnOpenModalPopup(actionUrl, "popupExtmallOrderDetail");
-}
+}
+
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 품목 목록 팝업
+ * <pre>
+ *     cfnOpenItemkindListPopup('fnResult');
+ *     or
+ *     cfnOpenItemkindListPopup('fnResult', 'S');
+ *     or
+ *     cfnOpenItemkindListPopup('fnResult', 'S', 'TBJ');
+ * </pre>
+ * @since  : 2021/07/16
+ * @author : eskim
+ */
+var cfnOpenItemkindListPopup = function(callbackfn, multiGb, searchTxt) {
+	var actionUrl = '/goods/itemkind/popup/form?callbackFn=' + callbackfn;
+	if (typeof(multiGb) != 'undefined' && multiGb != null && multiGb == "M") actionUrl += "&multiGb=" + multiGb; else actionUrl += "&multiGb=S";
+	if (typeof(searchTxt) != 'undefined') actionUrl += "&searchTxt=" + encodeURIComponent(searchTxt);
+	cfnOpenModalPopup(actionUrl, "popupItemkindList");
+}