Explorar o código

Merge remote-tracking branch 'origin/develop' into card007

card007 %!s(int64=4) %!d(string=hai) anos
pai
achega
8907bec016

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

@@ -1047,12 +1047,12 @@ public class TsaShoplinkerService {
 	public void getOrderExcelList(ShoplinkerOrder shoplinkerOrder, String excelFilenameWithPath) {
 
 		// 헤더 title 설정
-		String[] listTitles = { "제휴몰주문등록상태", "실패사유", "업로드실패사유", "스타일24 주문번호", "샵링커 주문번호", "쇼핑몰 주문번호", "쇼핑몰 명", "배송상태[발주확인]"
+		String[] listTitles = { "제휴몰주문등록상태", "실패사유", "업로드실패사유", "스타일24 주문번호", "샵링커 주문번호", "쇼핑몰 주문번호", "배송번호", "쇼핑몰 명", "배송상태[발주확인]"
 				,"주문 상품번호", "샵링커 상품번호", "자사 상품코드", "상품명", "주문수량", "주문금액", "판매단가", "공급가"
 				, "옵션코드", "옵션명", "옵션1", "옵션2", "교환접수여부", "주문수집일자", "제휴몰등록일", "등록자"};
 
 		// DB 처리 시 사용되는 파라미터명(셀명) 설정
-		String[] cellNames = {"UPLOAD_STAT", "UPLOAD_FAIL_CD", "UPLOAD_FAIL_REASON", "ORD_NO", "SHOPLINKER_ORDER_ID", "MALL_ORDER_ID", "MALL_NAME", "BAESONG_STATUS"
+		String[] cellNames = {"UPLOAD_STAT", "UPLOAD_FAIL_CD", "UPLOAD_FAIL_REASON", "ORD_NO", "SHOPLINKER_ORDER_ID", "MALL_ORDER_ID", "SHIP_NO", "MALL_NAME", "BAESONG_STATUS"
 				, "ORDER_PRODUCT_ID", "SHOPLINKER_PRODUCT_ID", "PARTNER_PRODUCT_ID", "PRODUCT_NAME", "QUANTITY", "ORDER_PRICE", "SALE_PRICE", "SUPPLY_PRICE"
 				, "SKU_MATCH_CODE", "SKU", "OPT_CD1", "OPT_CD2", "EXCHANGE_ORDER_YN", "ORDER_REG_DATE", "EXTMALL_REG_DT", "REG_NM"};
 
@@ -1068,14 +1068,16 @@ public class TsaShoplinkerService {
 			GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
 			GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
 			GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
-			GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name()};
+			GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
+			GagaExcelConstants.CellType.CHAR_CENTER.name()};
 
+		shoplinkerOrder.setExcelDownType("1");
 		Collection<GagaMap> dataList = admShoplinkerDao.getOrderExcelList(shoplinkerOrder);
 
 		try {
 
-			GagaExcelUtil.createExcel(excelFilenameWithPath, dataList, "샵링커 주문 정보", listTitles, cellNames, cellTypes, TsaConstants.EXCEL_FOOTER_TITLE);
-
+			//GagaExcelUtil.createExcel(excelFilenameWithPath, dataList, "샵링커 주문 정보", listTitles, cellNames, cellTypes, TsaConstants.EXCEL_FOOTER_TITLE);
+			GagaExcelUtil.createExcel(excelFilenameWithPath, dataList, listTitles, cellNames, cellTypes);
 		} catch (Exception e) {
 			throw new IllegalStateException(e);
 		}
@@ -1093,7 +1095,7 @@ public class TsaShoplinkerService {
 	public void getOrderExcelExtmallFormList(ShoplinkerOrder shoplinkerOrder, String excelFilenameWithPath) {
 
 		// 헤더 title 설정
-		String[] listTitles = { "일련번호", "제휴몰ID", "제휴주문번호", "물품주문번호", "제휴상품코드", "상품명", "SKUCode"
+		String[] listTitles = { "일련번호", "제휴몰ID", "제휴주문번호(배송번호)", "물품주문번호", "제휴상품코드", "상품명", "SKUCode"
 				,"판매가", "주문수량", "배송비", "주문자", "주문자-전화", "주문자-휴대폰", "주문자-이메일", "수령자", "수령자-전화", "수령자-휴대폰"
 				, "수령자-우편번호","수령자-도로명주소", "수령자-상세주소", "배송메시지"};
 
@@ -1115,6 +1117,7 @@ public class TsaShoplinkerService {
 			GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_LEFT.name(),
 			GagaExcelConstants.CellType.CHAR_LEFT.name(), GagaExcelConstants.CellType.CHAR_LEFT.name()};
 
+		shoplinkerOrder.setExcelDownType("2");
 		Collection<GagaMap> dataList = admShoplinkerDao.getOrderExcelList(shoplinkerOrder);
 		
 		GagaMap addrMap; 	//주소 분리
@@ -1132,7 +1135,8 @@ public class TsaShoplinkerService {
 		
 		try {
 
-			GagaExcelUtil.createExcel(excelFilenameWithPath, dataList, "샵링커 주문 정보", listTitles, cellNames, cellTypes, TsaConstants.EXCEL_FOOTER_TITLE);
+			//GagaExcelUtil.createExcel(excelFilenameWithPath, dataList, "샵링커 주문 정보", listTitles, cellNames, cellTypes, TsaConstants.EXCEL_FOOTER_TITLE);
+			GagaExcelUtil.createExcel(excelFilenameWithPath, dataList, listTitles, cellNames, cellTypes);
 
 		} catch (Exception e) {
 			throw new IllegalStateException(e);

+ 7 - 6
src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -11,6 +11,8 @@ import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletRequest;
 import javax.swing.ImageIcon;
 
+import com.style24.admin.biz.service.*;
+import com.style24.core.biz.service.TscExcelService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -35,11 +37,6 @@ import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.gagaframework.web.util.GagaDateUtil;
 import com.gagaframework.web.util.GagaFileUtil;
 import com.gagaframework.web.util.GagaStringUtil;
-import com.style24.admin.biz.service.TsaCommonService;
-import com.style24.admin.biz.service.TsaCustomerService;
-import com.style24.admin.biz.service.TsaGoodsService;
-import com.style24.admin.biz.service.TsaRendererService;
-import com.style24.admin.biz.service.TsaSystemService;
 import com.style24.admin.support.controller.TsaBaseController;
 import com.style24.admin.support.security.session.TsaSession;
 import com.style24.core.biz.service.TscKakaotalkService;
@@ -121,6 +118,9 @@ public class TsaGoodsController extends TsaBaseController {
 	@Autowired
 	private ObjectMapper mapper;
 
+	@Autowired
+	private TscExcelService excelService;
+
 	private static final int EXCEL_ROW_COUNT = 500;
 
 	/**
@@ -3094,7 +3094,8 @@ public class TsaGoodsController extends TsaBaseController {
 			"niContent17", "niContent18", "niContent19", "niContent20", "niContent21", "niContent22", "niContent23",
 			"niContent24", "niContent25", "niContent26", "niContent27", "niContent28"};
 
-		ecxelGoodsList = GagaExcelUtil.getList(GagaFileUtil.getConcatenationPath(targetPath, goodsMass.getExcelFileNm()), 0, goodsNames, 0);
+
+		ecxelGoodsList = excelService.getExcelList(GagaFileUtil.getConcatenationPath(targetPath, goodsMass.getExcelFileNm()), 0, goodsNames, 0);
 
 		//건수
 		if (ecxelGoodsList != null && ecxelGoodsList.size() > EXCEL_ROW_COUNT) {

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

@@ -347,9 +347,14 @@ public class TsaOrderChangeController extends TsaBaseController {
 			coreOrderChangeService.addPayCostCncl(cnclReq);
 		}
 		
+		// 2021.10.13 알림톡 메세지 알림톡, 메일 송부 X
+		if ("Y".equals(cnclReq.getMsgStat())) {
+			return super.ok("성공");
+		}
+		
 		// 5. 취소 알림톡 및 메일 발송
 		int ordChgSq = result.getInt("ordChgSq");
-
+		
 		if (ordChgSq > 0) {
 			Payment payment = new Payment();
 			payment.setOrdNo(cnclReq.getOrdNo());
@@ -612,6 +617,11 @@ public class TsaOrderChangeController extends TsaBaseController {
 		// 4. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
 		GagaMap result = coreOrderChangeService.returnRequest(map);
 		int ordChgSq = result.getInt("ordChgSq");
+		
+		// 2021.10.13 알림톡 메세지 알림톡, 메일 송부 X
+		if ("Y".equals(rtnReq.getMsgStat())) {
+			return super.ok(message.getMessage("RETURN_0001"));
+		}
 
 		if (ordChgSq > 0) {
 			String pgGb = refundPreInfo.getString("pgGb");
@@ -930,6 +940,18 @@ public class TsaOrderChangeController extends TsaBaseController {
 
 		// 교환처리
 		result = coreOrderChangeService.exchReq(excReq);
+		
+		// 2021.10.13 알림톡 메세지 알림톡, 메일 송부 X
+		if ("Y".equals(excReq.getMsgStat())) {
+			// 처리 결과 코드에 따른 메세지 설정
+			if (result.get("status").equals(GagaResponseStatus.SUCCESS.getCode())) {
+				result.set("message", message.getMessage("EXCHANGE_0001"));
+			} else {
+				result.set("message", message.getMessage("FAIL_0004"));
+			}
+			return result;
+		}
+		
 		int ordChgSq = result.getInt("ordChgSq");
 
 		if (ordChgSq > 0) {

+ 5 - 0
src/main/java/com/style24/admin/biz/web/TsaWithdrawController.java

@@ -218,6 +218,11 @@ public class TsaWithdrawController extends TsaBaseController {
 		order.setRefundAmt(refundInfo.getRefundAmt());
 		order.setGoodsCnt(refundInfo.getGoodsCnt()+"");
 		order.setGoodsNm(refundInfo.getGoodsNm());
+		
+		// 2021.10.13 알림톡 메세지 알림톡, 메일 송부 X
+		if ("Y".equals(orderChange.getString("msgStat"))) {
+			return super.ok(message.getMessage("SUCC_0004"));
+		}
 
 		try {
 			kakaotalkService.sendRefundComplete(order, userNo);

+ 2 - 1
src/main/java/com/style24/persistence/domain/Extmall.java

@@ -27,7 +27,8 @@ public class Extmall extends TscBaseDomain {
 	private String dwdpYn;			// 직접회수여부(Y:제휴몰에서회수, N:자사몰에서회수)
 	private String cnclsmsSendYn;	// 취소문자발송여부(Y:제휴몰에서발송, N:자사몰에서발송)
 	private String useYn;			// 사용여부
-
+	private String delvFeeSumYn;	// 샵링커 주문수집 배송비 산정방식 -> 합산여부 YN
+	
 	// 검색조건
 	private String searchTxt;		// 검색어
 	private String callbackFn;		// 콜백함수

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

@@ -18,6 +18,7 @@
 		     , DWDP_YN           /*직접회수처리여부*/
 		     , CNCLSMS_SEND_YN   /*취소문자발송여부*/
 		     , USE_YN            /*사용여부*/
+		     , DELV_FEE_SUM_YN	 /*배송비합산여부*/
 		FROM   TB_EXTMALL A
 		WHERE  1 = 1
 		<if test="extmallId != null and extmallId != ''">
@@ -48,6 +49,7 @@
 		     , DWDP_YN
 		     , CNCLSMS_SEND_YN
 		     , EXTMALL_TEL
+		     , DELV_FEE_SUM_YN
 		     , USE_YN
 		     , REG_NO
 		     , REG_DT
@@ -67,6 +69,7 @@
 		     , #{dwdpYn}
 		     , #{cnclsmsSendYn}
 		     , #{extmallTel}
+		     , #{delvFeeSumYn}
 		     , #{useYn}
 		     , #{regNo}
 		     , NOW()
@@ -84,6 +87,7 @@
 		     , DWDP_YN = #{dwdpYn}
 		     , CNCLSMS_SEND_YN = #{cnclsmsSendYn}
 		     , EXTMALL_TEL = #{extmallTel}
+		     , DELV_FEE_SUM_YN = #{delvFeeSumYn}
 		     , USE_YN = #{useYn}
 		     , UPD_NO = #{updNo}
 		     , UPD_DT = NOW()

+ 31 - 6
src/main/java/com/style24/persistence/mybatis/shop/TsaShoplinker.xml

@@ -428,7 +428,8 @@
 		/* TsaShoplinker.getShoplinkerOrderListCount */
 		select count(1) from (
 			SELECT
-				ROW_NUMBER() OVER(PARTITION BY B.VENDOR_ID, B.EXTMALL_ID, B.AGENT_ORDER_ID, B.EXTMALL_ORDER_ID ORDER by B.UPLOAD_GB desc, B.UPLOAD_STAT) AS RANKING
+				ROW_NUMBER() OVER(PARTITION BY B.VENDOR_ID, ifnull(B.EXTMALL_ID, A.MALL_ID), ifnull(B.AGENT_ORDER_ID, A.SHOPLINKER_ORDER_ID)
+								, ifnull(B.EXTMALL_ORDER_ID, A.MALL_ORDER_ID) ORDER by B.UPLOAD_GB desc, B.UPLOAD_STAT) AS RANKING
 				, IFNULL(A.SHOPLINKER_ORDER_ID, B.AGENT_ORDER_ID) AS SHOPLINKER_ORDER_ID
 				, IFNULL(A.MALL_ORDER_ID, B.EXTMALL_ORDER_ID) AS MALL_ORDER_ID
 				, CASE 
@@ -546,9 +547,11 @@
 		SELECT * FROM
 		(
 			SELECT
-				ROW_NUMBER() OVER(PARTITION BY B.VENDOR_ID, B.EXTMALL_ID, B.AGENT_ORDER_ID, B.EXTMALL_ORDER_ID ORDER by B.UPLOAD_GB desc, B.UPLOAD_STAT) AS RANKING
+				ROW_NUMBER() OVER(PARTITION BY B.VENDOR_ID, ifnull(B.EXTMALL_ID, A.MALL_ID), ifnull(B.AGENT_ORDER_ID, A.SHOPLINKER_ORDER_ID)
+								, ifnull(B.EXTMALL_ORDER_ID, A.MALL_ORDER_ID) ORDER by B.UPLOAD_GB desc, B.UPLOAD_STAT) AS RANKING
 				, IFNULL(A.SHOPLINKER_ORDER_ID, B.AGENT_ORDER_ID) AS SHOPLINKER_ORDER_ID
 				, IFNULL(A.MALL_ORDER_ID, B.EXTMALL_ORDER_ID) AS MALL_ORDER_ID
+				, A.SHIP_NO
 				, CASE 
 					WHEN A.MALL_NAME IS NULL THEN 
 						(SELECT S.EXTMALL_NM FROM TB_EXTMALL S WHERE S.EXTMALL_ID = IFNULL(A.MALL_ID, B.EXTMALL_ID))
@@ -593,7 +596,7 @@
 				, IFNULL(B.ORD_NO, '') AS ORD_NO
 				, B.DELV_ADDR_SQ
 				, B.REG_DT AS EXTMALL_REG_DT
-				, 'SYSTEM' AS REG_NM
+				, FN_GET_USER_NM(ifnull(B.REG_NO, 99999)) AS REG_NM
 				
 				, OP.OPT_CD1 
 				, OP.OPT_CD2 
@@ -610,6 +613,7 @@
 				1 AS RANKING
 				, IFNULL(A.SHOPLINKER_ORDER_ID, B.AGENT_ORDER_ID) AS SHOPLINKER_ORDER_ID
 				, IFNULL(A.MALL_ORDER_ID, B.EXTMALL_ORDER_ID) AS MALL_ORDER_ID
+				, '' AS SHIP_NO
 				, CASE 
 					WHEN A.MALL_NAME IS NULL THEN 
 						(SELECT S.EXTMALL_NM FROM TB_EXTMALL S WHERE S.EXTMALL_ID = IFNULL(A.MALL_ID, B.EXTMALL_ID))
@@ -768,9 +772,17 @@
 		SELECT * FROM
 		(
 			SELECT
-				ROW_NUMBER() OVER(PARTITION BY B.VENDOR_ID, B.EXTMALL_ID, B.AGENT_ORDER_ID, B.EXTMALL_ORDER_ID ORDER by B.UPLOAD_GB desc, B.UPLOAD_STAT) AS RANKING
+				ROW_NUMBER() OVER(PARTITION BY B.VENDOR_ID, ifnull(B.EXTMALL_ID, A.MALL_ID), ifnull(B.AGENT_ORDER_ID, A.SHOPLINKER_ORDER_ID)
+								, ifnull(B.EXTMALL_ORDER_ID, A.MALL_ORDER_ID) ORDER by B.UPLOAD_GB desc, B.UPLOAD_STAT) AS RANKING
 				, IFNULL(A.SHOPLINKER_ORDER_ID, B.AGENT_ORDER_ID) AS SHOPLINKER_ORDER_ID
-				, IFNULL(A.MALL_ORDER_ID, B.EXTMALL_ORDER_ID) AS MALL_ORDER_ID
+				
+				, CASE 
+					WHEN '2' = #{excelDownType} and (A.MALL_ID = 'APISHOP_0003' or a.mall_id = 'APISHOP_0010' or a.mall_id = 'APISHOP_0286' or a.mall_id = 'APISHOP_0287') THEN
+						IFNULL(A.SHIP_NO, B.EXTMALL_ORDER_ID) 
+					ELSE IFNULL(A.MALL_ORDER_ID, B.EXTMALL_ORDER_ID) 
+				  END MALL_ORDER_ID
+				, A.SHIP_NO
+				
 				, CASE 
 					WHEN A.MALL_NAME IS NULL THEN 
 						(SELECT S.EXTMALL_NM FROM TB_EXTMALL S WHERE S.EXTMALL_ID = IFNULL(A.MALL_ID, B.EXTMALL_ID))
@@ -815,7 +827,7 @@
 				, IFNULL(B.ORD_NO, '') AS ORD_NO
 				, B.DELV_ADDR_SQ
 				, B.REG_DT AS EXTMALL_REG_DT
-				, 'SYSTEM' AS REG_NM
+				, FN_GET_USER_NM(ifnull(B.REG_NO, 99999)) AS REG_NM
 				
 				, OP.OPT_CD1 
 				, OP.OPT_CD2 
@@ -832,6 +844,7 @@
 				1 as RANKING
 				, IFNULL(A.SHOPLINKER_ORDER_ID, B.AGENT_ORDER_ID) AS SHOPLINKER_ORDER_ID
 				, IFNULL(A.MALL_ORDER_ID, B.EXTMALL_ORDER_ID) AS MALL_ORDER_ID
+				, '' AS SHIP_NO
 				, CASE 
 					WHEN A.MALL_NAME IS NULL THEN 
 						(SELECT S.EXTMALL_NM FROM TB_EXTMALL S WHERE S.EXTMALL_ID = IFNULL(A.MALL_ID, B.EXTMALL_ID))
@@ -923,6 +936,13 @@
 			       		#{item}
 			            </foreach>
 	              </when>
+	              
+	              <when test='search != null and search == "shipNo"'>
+	              	AND IFNULL(A.SHIP_NO, B.EXTMALL_ORDER_ID) IN
+			            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
+			       		#{item}
+			            </foreach>
+	              </when>
 
 	              <when test='search != null and search == "ordNo"'>
 	              	AND B.ORD_NO IN
@@ -947,6 +967,11 @@
 	              <when test='searchOne != null and searchOne == "orderCel"'>
 	              	AND replace(IFNULL(A.ORDER_CEL, B.ORD_TELNO), '-', '') like CONCAT('%',replace(#{conditionOne}, '-', ''),'%')
 	              </when>
+	              
+	              <when test='searchOne != null and searchOne == "regNm"'>
+	              	AND FN_GET_USER_NM(ifnull(B.REG_NO, 99999)) like CONCAT('%',replace(#{conditionOne}, '-', ''),'%')
+	              </when>
+	              
 	            </choose>
 	        </if>
 	</sql>

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

@@ -88,6 +88,9 @@
 		<if test="useYn != null and useYn != ''">
 		AND    A.USE_YN  = #{useYn}
 		</if>
+		<if test="supplyVendorCd != null and supplyVendorCd != ''">
+		AND    A.ROLE_REF_VAL = #{supplyVendorCd}
+		</if>
 		<if test="supplyCompCd != null and supplyCompCd != ''">
 		AND    A.ROLE_REF_VAL = (SELECT SUPPLY_VENDOR_CD
 		                         FROM   TB_SUPPLY_COMPANY

+ 1 - 2
src/main/webapp/WEB-INF/views/delivery/ExchangeDelvFailListForm.html

@@ -195,8 +195,7 @@ var fnCancelRequest = function (paramData, ordChgSq) {
 	param += "&chgStat="		+ 'NOT';
 	
 	var actionUrl = "/orderChange/cncl/req/form?" + param;
-	
-	alert(paramArr[4]);
+
 	// 2021.08.31 품절취소 완료 일때 
 	if (paramArr[4] == "Y") {
 		actionUrl = "/orderChange/cnclRtn/complete/view?" + param;	

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

@@ -57,6 +57,7 @@
 			<col width="10%"/>
 			<col width="15%"/>
 			<col/>
+			<col width="10%"/>
 			<col width="7%"/>
 			<col width="7%"/>
 			<col width="5%"/>
@@ -84,6 +85,7 @@
 			<th>상품코드</th>
 			<th>옵션1(색상)</th>
 			<th>옵션2(사이즈)</th>
+			<th>옵션코드</th>
 			<th>추가가격</th>
 			<th>노출순서</th>
 			<th>노출여부</th>
@@ -100,12 +102,14 @@
 			<td th:rowspan="${goodsSize.rcount}" th:text="${goodsSize.compsGoodsCd}" th:if="${goodsSize.rnum == 1}"></td>
 			<td><th:block th:text="${goodsSize.optCd1}"></th:block>
 				<input type="hidden" name="compsGoodsCd" th:value="${goodsSize.compsGoodsCd}" />
-				<input type="hidden" name="optCd" th:value="${goodsSize.optCd}" />
 				<input type="hidden" name="optCd1" th:value="${goodsSize.optCd1}" />
 			</td>
 			<td><th:block th:text="${goodsSize.optCd2}"></th:block>
 				<input type="hidden" name="optCd2" th:value="${goodsSize.optCd2}" />
 			</td>
+			<td><th:block th:text="${goodsSize.optCd}"></th:block>
+				<input type="hidden" name="optCd" th:value="${goodsSize.optCd}" />
+			</td>
 			<td><input type="text" class="w100p aR" name="addPrice" th:value="${goodsSize.addPrice}"  maxlength="7"  data-valid-type="numeric"/>
 				<input type="hidden" name="hidAddPrice" th:value="${goodsSize.addPrice}" />
 			</td>

+ 24 - 1
src/main/webapp/WEB-INF/views/ocm/ExtmallForm.html

@@ -122,7 +122,23 @@
 						<td>
 							<input type="text" class="w100 aR" name="sellFeeRate" maxlength="3" required="required" data-valid-type="real" data-valid-name="수수료율(관리용)"/>%
 						</td>
-						<td colspan="2"></td>
+						<th>
+							<!-- 아이콘 툴팁 -->
+							<div class="iconTooltip">
+								<i class="fa fa-info" aria-hidden="true"></i>
+								<span class="left aL" style="width:350px;">
+									샵링커 주문수집 시 제휴몰 별 배송비 산정방식
+									<br>- YES : 주문서별 배송비 합산(SUM) 
+									<br>- NO : 주문서별 배송비 1개로 계산
+								</span>
+							</div>
+							<!-- //아이콘 툴팁 -->
+							배송비합산여부
+						</th>
+						<td>
+							<label class="rdoBtn"><input type="radio" name="delvFeeSumYn" value="Y" checked="checked">Yes<span></span></label>
+							<label class="rdoBtn"><input type="radio" name="delvFeeSumYn" value="N">No<span></span></label>
+						</td>
 						<!-- 숨김처리 사용안하기로 함
 						<th>판매매장코드</th>
 						<td>
@@ -254,6 +270,13 @@
 		} else {
 			$('#detailForm input:radio[name=useYn]').eq(1).trigger('click');
 		}
+		
+		if (event.data.delvFeeSumYn == 'Y') {
+			$('#detailForm input:radio[name=delvFeeSumYn]').eq(0).trigger('click');
+		} else {
+			$('#detailForm input:radio[name=delvFeeSumYn]').eq(1).trigger('click');
+		}
+		
 	}
 
 	// 검색

+ 11 - 2
src/main/webapp/WEB-INF/views/order/CnclReqForm.html

@@ -128,7 +128,9 @@
 								</select>
 							</td>
 							<th>귀책사유</th>
-							<td><span id="imputeReason"></span></td>
+							<td colspan="5"><span id="imputeReason"></span></td>
+						</tr>
+						<tr>
 							<th>PG점프</th>
 							<td>
 								<label class="chkBox">
@@ -139,6 +141,12 @@
 							<td>
 								<input type="text" name="depositAmt" id="depositAmt" value="0" readonly="readonly"/>
 							</td>
+							<th>알림톡미전송여부</th>
+							<td colspan="3">
+								<label class="chkBox">
+									<input type="checkbox" name="msgStat" id="msgStat" checked/>
+								</label>
+							</td>
 						</tr>
 						<tr>
 							<th>요청메모<br/><span id="dpLocAnsContent">0</span>/1,000Byte</th>
@@ -356,7 +364,7 @@ var columnCancelReqList = [
 	{headerName: "주문상세"		, field: "ordDtlStat"		, width: 80		, cellClass: 'text-center'	, hide: temp1},
 	{headerName: "주문상세상태"	, field: "ordDtlStatNm"		, width: 100	, cellClass: 'text-center'	, hide: temp1},
 	{headerName: "상품코드"		, field: "goodsCd"			, width: 100	, cellClass: 'text-left'	, hide: temp2},
-	{headerName: "상품명"		, field: "goodsNm"			, width: 200	, cellClass: 'text-left'	, hide: temp2},
+	{headerName: "상품명"			, field: "goodsNm"			, width: 200	, cellClass: 'text-left'	, hide: temp2},
 	{headerName: "상품타입"		, field: "goodsTypeNm"		, width: 100	, cellClass: 'text-center'	, hide: temp2},
 	{headerName: "옵션1"			, field: "colorNm"			, width: 80		, cellClass: 'text-center'	, hide: temp2},
 	{headerName: "옵션2"			, field: "optCd2"			, width: 80		, cellClass: 'text-center'	, hide: temp2},
@@ -1357,6 +1365,7 @@ var fnCnclReq = function (reqGbn) {
 		,"wdGb"						: wdGb
 		,"addPayCost"				: addPayCost
 		,"pgStat"					: $('#pgStat').is(':checked') ? 'Y' : 'N'
+		,"msgStat"					: $('#msgStat').is(':checked') ? 'Y' : 'N'
 		,"depositAmt"				: depositAmt
 	}
 

+ 8 - 1
src/main/webapp/WEB-INF/views/order/ExchangeRequestForm.html

@@ -94,7 +94,13 @@
 								<label class="rdoBtn"><input type="radio" name="wdGb" th:id="wdGb" value="D" onclick="fnChangeWdGb(this)"/>직접발송<span></span></label>
 							</td>
 							<th>추가배송비</th>
-							<td id="addDelvFee" colspan="3"></td>
+							<td id="addDelvFee"></td>
+							<th>알림톡미전송여부</th>
+							<td>
+								<label class="chkBox">
+									<input type="checkbox" name="msgStat" id="msgStat" checked/>
+								</label>
+							</td>
 						</tr>
 						<tr>
 							<th>요청메모<br/><span id="chgMemoCount">0</span>/1,000Byte</th>
@@ -885,6 +891,7 @@ var fnExchange = function () {
 		,"ordChgSq"			: ordChgSq
 		,"wdBfSendYn"		: wdBfSendYn
 		,"ordChgGb"			: ordChgGb
+		,"msgStat"			: $('#msgStat').is(':checked') ? 'Y' : 'N'
 	}
 
 	// 주문번호, 교환사유, 교환메모, (취소, 반품, 교환 신청 정보 목록)

+ 9 - 0
src/main/webapp/WEB-INF/views/order/RtnReqForm.html

@@ -78,6 +78,14 @@
 							<th>귀책사유</th>
 							<td><span id="imputeReason"></span></td>
 						</tr>
+						<tr>
+							<th>알림톡미전송여부</th>
+							<td colspan="5">
+								<label class="chkBox">
+									<input type="checkbox" name="msgStat" id="msgStat" checked/>
+								</label>
+							</td>
+						</tr>
 						<tr>
 							<th>요청메모<br/><span id="chgMemoCount">0</span>/1,000Byte</th>
 							<td colspan="5">
@@ -1511,6 +1519,7 @@ var fnCnclReq = function (reqGbn) {
 		,"custNo"					: custNo
 		,"ordNm"					: ordNm
 		,"ordPhnno"					: ordPhnno
+		,"msgStat"					: $('#msgStat').is(':checked') ? 'Y' : 'N'
 	}
 
 	// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌

+ 6 - 0
src/main/webapp/WEB-INF/views/shoplinker/ShoplinkerOrderForm.html

@@ -74,6 +74,8 @@
 					<p class="dot">샵링커 주문수집 => 제휴몰 주문등록 => (제휴몰 주문등록 성공목록만) STYLE24에 주문등록이 됩니다.</p>
 					<p class="dot">샵링커 주문수집 시 동일한 목록은 '제휴몰 주문등록'이 되지 않습니다. </p>
 					<p class="dot">[제휴몰 주문등록 상태]가 <font color="red">미매핑</font>건은 옵션정보가 없는것으로 <font color="red">제휴몰주문업로드</font> 해주세요.(딜상품)</p>
+					<p class="dot">옥션, 지마켓, 카카오톡스토어, 위메프의 경우 '쇼핑몰 주문번호'가 '배송번호(팩번호)'로 변경되어 주문됩니다.(자동 주문등록 시)</p>
+					<p class="dot">옥션, 지마켓, 카카오톡스토어, 위메프의 경우 '엑셀다운로드(제휴몰주문업로드 폼)'시 '쇼핑몰 주문번호'가 '배송번호(팩번호)'로 변경되어 보여집니다.</p>
 				</div>
 			</div>
 		</form>
@@ -105,6 +107,7 @@
 								<option value="ordNo">스타일24주문번호</option>
 								<option value="shoplinkerOrderId">샵링커주문번호</option>
 								<option value="mallOrderId">쇼핑몰주문번호</option>
+								<option value="shipNo">배송번호(팩번호)</option>
 							</select><br>
 							<textarea class="textareaR2 w90p" name="condition" id="condition"></textarea>
 						</td>
@@ -126,6 +129,7 @@
 								<option value="mallOrderId">쇼핑몰주문번호</option>
 								<option value="orderName">주문자명</option>
 								<option value="orderCel">주문자연락처</option>
+								<option value="regNm">등록자명</option>
 							</select>
 							<input type="text" class="w40p" name="conditionOne" id="conditionOne">
 						</td>
@@ -155,6 +159,7 @@
 						<!-- <button type="button" class="btn btn-default btn-lg" onclick="fnTest();">테스트</button> -->
 					</li>
 				</ul>
+							
 			</div>
 			<!-- 검색조건 영역 -->
 
@@ -274,6 +279,7 @@
 			}
 		},
 		{headerName: "쇼핑몰 주문번호", field: "mallOrderId", width: 130, cellClass: 'text-center'},
+		{headerName: "배송번호(팩번호)", field: "shipNo", width: 130, cellClass: 'text-center'},		
 		{headerName: "쇼핑몰 명", field: "mallName", width: 130, cellClass: 'text-center'},
 		{headerName: "주문자명", field: "orderName", width: 130, cellClass: 'text-center'},
 		{headerName: "주문자연락처", field: "orderCel", width: 130, cellClass: 'text-center'},

+ 13 - 5
src/main/webapp/WEB-INF/views/system/UserForm.html

@@ -40,16 +40,16 @@
 						<col style="width:10%;"/>
 					</colgroup>
 					<tr>
-						<th>업체</th>
+						<th>입점벤더</th>
 						<td>
 <!-- 							<select name="supplyCompCd"> -->
 <!-- 								<option th:if="${sessionInfo.supplyCompCd == null}" value="">[전체]</option> -->
 <!-- 								<option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option> -->
 <!-- 							</select> -->
-							<input type="text" class="w100" name="supplyCompSearchTxt" id="supplyCompSearchTxt" maxlength="20"/>
-							<button type="button" class="btn icn" onclick="cfnOpenCompanyListPopup('fnSetSupplyCompInfo', 'M');"><i class="fa fa-search"></i></button>
-							<span id="supplyCompTxt"></span>
-							<input type="hidden" name="supplyCompList"/>
+							<input type="text" class="w100" name="supplyVendorCd" id="supplyCompSearchTxt" maxlength="20"/>
+							<button type="button" class="btn icn" onclick="fnOpenSupplyVendorPopup('input[name=supplyVendorCd]', 'M');"><i class="fa fa-search"></i></button>
+<!--							<span id="supplyCompTxt"></span>-->
+<!--							<input type="hidden" name="supplyCompList"/>-->
 						</td>
 						<th>권한</th>
 						<td>
@@ -254,6 +254,14 @@
 		var actionUrl = "/system/user/menu/" + userNo;
 		cfnOpenModalPopup(actionUrl, "popupUserMenu");
 	}
+
+	// 공급벤더 팝업
+	var fnOpenSupplyVendorPopup = function(strReturnCode, strReturnName) {
+		var oParam = new Object();
+		oParam.returnCode = strReturnCode;
+		oParam.returnName = strReturnName;
+		cfnOpenSupplyVendorPopup($(strReturnName).val(), oParam);
+	}
 	
 	$(document).ready(function() {
 		// Create a agGrid

+ 17 - 5
src/main/webapp/WEB-INF/views/withdraw/RefundDetailForm.html

@@ -72,9 +72,23 @@
 						<td>
 							<input type="text" name="addPayCost" data-valid-type="integer" readonly="readonly" onChange="fnChangeAmt()" class="w100 aR"/>원
 						</td>
-						<th>입금액<br/>* 별도 고객 임금처리 했을 시 입력</th>
+						<th>알림톡미전송여부</th>
 						<td>
-							<input type="text" name="depositAmt" data-valid-type="integer" readonly="readonly" class="w100 aR" />원
+							<label class="chkBox">
+								<input type="checkbox" name="msgStat" id="msgStat" checked/>
+							</label>
+						</td>
+					</tr>
+					<tr>
+						<th>PG점프</th>
+						<td>
+							<label class="chkBox" onclick="fnChangePgStat();">
+								<input type="checkbox" name="pgStats" id="pgStats"/>
+							</label>
+						</td>
+						<th>입금액</th>
+						<td>
+							<input type="text" name="depositAmt" id="depositAmt" data-valid-type="integer" readonly="readonly" class="w100 aR" />원
 						</td>
 					</tr>
 					<tr>
@@ -245,9 +259,6 @@
 				
 				<div>
 					<h4 style="width:85%;">회수대상 상품 정보</h4>	
-					<span class="btnRight" id="pgBtn" onclick="fnChangePgStat()">
-						<label ><input type="checkbox" name="pgStats" value="N" th:if="${sessionInfo.roleCd == 'G001_0000' or sessionInfo.roleCd == 'G001_A300'}">&nbsp;&nbsp;PG 전문 미전송</label>
-					</span>
 					<div id="refundGridList" style="width: 100%; height: 200px; padding-top:10PX;" class="ag-theme-balham"></div>
 				</div>
 			</form>
@@ -784,6 +795,7 @@
 		reFundInfo.enCloseFeeYn		= enCloseFeeYn;
 		reFundInfo.enCloseFee		= enCloseFeeAmt;
 		reFundInfo.depositAmt		= depositAmt;
+		reFundInfo.msgStat			= $('#msgStat').is(':checked') ? 'Y' : 'N';
 		
 		var jsonData = JSON.stringify(reFundInfo);
 		

+ 2 - 2
src/main/webapp/ux/plugins/gaga/gaga.validation.js

@@ -618,7 +618,7 @@ var gagajf = {
 					}
 				} else { // 실패
 					if (!gagajf.isNull(result.error.message)) {
-						mcxDialog.alert(result.error.message);
+						mcxDialog.alert(result.error.message.replaceAll("&lt;", "<").replaceAll("&gt;", ">"));
 					}
 
 					return;
@@ -695,7 +695,7 @@ var gagajf = {
 					}
 				} else { // 실패
 					if (!gagajf.isNull(result.error.message)) {
-						mcxDialog.alert(result.error.message);
+						mcxDialog.alert(result.error.message.replaceAll("&lt;", "<").replaceAll("&gt;", ">"));
 					}
 
 					return;