Parcourir la source

Merge branch 'develop' into eskim

eskim il y a 5 ans
Parent
commit
882867cf56

+ 10 - 0
src/main/java/com/style24/admin/biz/dao/TsaDisplayDao.java

@@ -4,6 +4,8 @@ import java.util.Collection;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.Category;
+import com.style24.persistence.domain.GoodsCategory;
+import com.style24.persistence.domain.GoodsSearch;
 import com.style24.persistence.domain.ItemkindCategory;
 
 /**
@@ -136,4 +138,12 @@ public interface TsaDisplayDao {
 	 */
 	Collection<ItemkindCategory> getItemkindCategoryMappingList(String itemkindCd);
 
+	/**
+	 * 상품별카테고리전시관리 목록 건수 조회
+	 * @param goodsCategory
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 15
+	 */
+	int getGoodsCategoryListCount(GoodsCategory goodsCategory);
 }

+ 8 - 1
src/main/java/com/style24/admin/biz/dao/TsaOrderDao.java

@@ -330,7 +330,14 @@ public interface TsaOrderDao {
 	 */
 	int changedOrdDtlStat(Order order);
 
-
+	/**
+	 * 배송 > 배송지 정보 수정
+	 *
+	 * @param deliveryAddr
+	 * @author jsh77b
+	 * @since 2021. 01. 15
+	 */
+	void updateOrderAddr(Order order);
 
 
 

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

@@ -2,6 +2,8 @@ package com.style24.admin.biz.service;
 
 import java.util.Collection;
 
+import com.style24.persistence.domain.GoodsCategory;
+import com.style24.persistence.domain.GoodsSearch;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.stereotype.Service;
@@ -157,4 +159,14 @@ public class TsaDisplayService {
 		return displayDao.getItemkindCategoryMappingList(itemkindCd);
 	}
 
+	/**
+	 * 상품별카테고리전시관리 목록 건수 조회
+	 * @param goodsCategory
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 15
+	 */
+	public int getGoodsCategoryListCount(GoodsCategory goodsCategory) {
+		return displayDao.getGoodsCategoryListCount(goodsCategory);
+	}
 }

+ 13 - 0
src/main/java/com/style24/admin/biz/service/TsaOrderService.java

@@ -538,5 +538,18 @@ public class TsaOrderService {
 			orderDao.createOrderDetailHst(order);
 		}
 	}
+	
+	/**
+	 * 배송 > 배송지 정보 수정
+	 *
+	 * @param Order - 배송지 정보
+	 * @author jsh77b
+	 * @since 2021. 01. 15
+	 */
+	@Transactional("shopTxnManager")
+	public void updateOrderAddr(Order order) {
+		order.setUpdNo(TsaSession.getInfo().getUserNo());;
+		orderDao.updateOrderAddr(order);
+	}
 
 }

+ 26 - 3
src/main/java/com/style24/admin/biz/web/TsaDisplayController.java

@@ -2,8 +2,11 @@ package com.style24.admin.biz.web;
 
 import java.util.Collection;
 
+import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.util.GagaDateUtil;
-import com.style24.persistence.domain.Brand;
+import com.style24.admin.support.security.session.TsaSession;
+import com.style24.persistence.TscPageRequest;
+import com.style24.persistence.domain.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -18,8 +21,6 @@ import com.style24.admin.biz.service.TsaDisplayService;
 import com.style24.admin.biz.service.TsaRendererService;
 import com.style24.admin.support.controller.TsaBaseController;
 import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.persistence.domain.Category;
-import com.style24.persistence.domain.ItemkindCategory;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -241,4 +242,26 @@ public class TsaDisplayController extends TsaBaseController {
 		return mav;
 	}
 
+	/**
+	 * 상품별카테고리전시관리 조회
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 1. 15
+	 */
+	@PostMapping("/goods/category/list")
+	@ResponseBody
+	public GagaMap getGoodsCategoryList(@RequestBody GoodsCategory goodsCategory) {
+		GagaMap result = new GagaMap();
+		log.info("[getGoodsCategoryList GoodsCategory]{}",goodsCategory);
+
+		goodsCategory.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
+		goodsCategory.setPageable(new TscPageRequest(goodsCategory.getPageNo() - 1, goodsCategory.getPageSize()));
+		goodsCategory.getPageable().setTotalCount(displayService.getGoodsCategoryListCount(goodsCategory));
+
+		result.set("pageing", goodsCategory);
+		//result.set("goodsList", goodsService.getGoodsList(goodsSearch));
+
+		return null;
+	}
+
 }

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

@@ -601,6 +601,21 @@ public class TsaOrderController extends TsaBaseController {
 
 		return super.ok("성공");
 	}
+	
+	/**
+	 * 배송 > 배송지 정보 수정
+	 *
+	 * @param deliveryAddr - 배송지정보
+	 * @return GagaResponse
+	 * @author jsh77b
+	 * @since 2021. 01. 15
+	 */
+	@PostMapping("/deliver/addr/update")
+	@ResponseBody
+	public GagaResponse udpateDeliveryAddrUpdate(@RequestBody Order order) {
+		orderService.updateOrderAddr(order);
+		return super.ok("수정이 완료되었습니다.");
+	}
 }
 
 

+ 7 - 0
src/main/java/com/style24/persistence/domain/GoodsCategory.java

@@ -3,6 +3,7 @@ package com.style24.persistence.domain;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 
+import com.style24.persistence.TscPageRequest;
 import lombok.Data;
 
 /**
@@ -90,4 +91,10 @@ public class GoodsCategory extends TscBaseDomain {
 	private String[] goodsCdList;
 
 	private String goodsCds;
+
+	// Pagination
+	private TscPageRequest pageable;
+	private int pageNo = 1;
+	private int pageSize = 50;
+	private int pageUnit = 10;
 }

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

@@ -168,6 +168,8 @@ public class Order extends TscBaseDomain {
 	private String recipDtlAddr;
 	private String ordEmail;
 	private String delvMemo;
+	private String delvAddrEditYn;
+	private String exchGbNm;
 	
 	private String escrowYn;
 	private String payMeansNm;

+ 45 - 12
src/main/java/com/style24/persistence/mybatis/shop/TsaOrder.xml

@@ -215,6 +215,10 @@
 				     , OD.SOLDOUT_MEMO
 				     , DATE_FORMAT(OD.SOLDOUT_REG_DT,'%Y%m%d%H%i%S') AS SOLDOUT_REG_DT 
 				     , OD.SOLDOUT_REG_NO     
+		             , CASE WHEN OD.ORD_EXCH_GB = 'O'
+			                THEN '주문'
+			                ELSE '교환'
+			                END   EXCH_GB_NM 
 				FROM   TB_ORDER O
 				INNER  JOIN TB_ORDER_DETAIL OD
 				ON     O.ORD_NO = OD.ORD_NO
@@ -457,6 +461,10 @@
 	<select id="getOrderDetailList" parameterType="Order" resultType="Order">
 		/* order.getOrderDetailList */
 		SELECT OD.ORD_NO
+		     , CASE WHEN OD.ORD_EXCH_GB = 'O'
+			        THEN '주문'
+			        ELSE '교환'
+			        END   EXCH_GB_NM 
 		     , OD.ORD_DTL_NO
 		     , G1.GOODS_CD 
 		     , G1.GOODS_NM
@@ -505,6 +513,7 @@
 		     , X.G50
 		     , X.G55
 		     , X.G60
+		     , OD.DELV_ADDR_SQ
 		FROM   TB_ORDER O
 		INNER  JOIN TB_ORDER_DETAIL OD
 		ON     O.ORD_NO = OD.ORD_NO
@@ -598,9 +607,28 @@
 	<!-- 주문상세 > 배송정보 -->
 	<select id="getDeliveryAddrList" parameterType="Order" resultType="Order">
 		/* order.getDeliveryAddrList */
-		SELECT Z.*
+		SELECT Z.DELV_ADDR_SQ
+		     , SUM(Z.DELV_ADDR_EDIT_YN) AS DELV_ADDR_EDIT_YN
+		     , Z.EXCH_GB_NM
+		     , Z.RECIP_NM
+		     , Z.RECIP_PHNNO
+		     , Z.RECIP_TELNO
+		     , Z.RECIP_ZIP_NO
+		     , Z.RECIP_BASE_ADDR
+		     , Z.RECIP_DTL_ADDR
+		     , Z.ORD_EMAIL
+		     , Z.DELV_MEMO
 		FROM   (
-			SELECT OD.DELV_ADDR_SQ 
+			SELECT OD.DELV_ADDR_SQ
+			     , CASE WHEN ORD_DTL_STAT IN ('G013_10', 'G013_20', 'G013_30', 'G013_40')
+			            THEN 0
+			            ELSE 1
+			            END DELV_ADDR_EDIT_YN
+			     , OD.ORD_EXCH_GB
+			     , CASE WHEN OD.ORD_EXCH_GB = 'O'
+			            THEN '주문'
+			            ELSE '교환'
+			            END   EXCH_GB_NM 
 			     , DA.RECIP_NM 
 			     , DA.RECIP_PHNNO 
 			     , DA.RECIP_TELNO 
@@ -616,15 +644,6 @@
 			ON     OD.DELV_ADDR_SQ  = DA.DELV_ADDR_SQ
 			WHERE  1=1
 			AND    OD.ORD_NO = #{ordNo}
-			GROUP  BY OD.DELV_ADDR_SQ 
-			     , DA.RECIP_NM 
-			     , DA.RECIP_PHNNO 
-			     , DA.RECIP_TELNO 
-			     , DA.RECIP_ZIP_NO 
-			     , DA.RECIP_BASE_ADDR
-			     , DA.RECIP_DTL_ADDR
-			     , O.ORD_EMAIL
-			     , DA.DELV_MEMO
 		) Z
 		ORDER  BY Z.DELV_ADDR_SQ
 	</select>
@@ -1519,7 +1538,21 @@
 		AND    ORD_DTL_NO = #{ordDtlNo}
 	</update>
 	
-
+	<!-- 배송 > 배송지 정보 수정 -->
+	<update id="updateOrderAddr" parameterType="Order">
+		/* order.updateOrderAddr : 주문 변경 업데이트(주문자 주소) */
+		UPDATE TB_DELIVERY_ADDR
+		SET    RECIP_NM        = #{recipNm}
+		     , RECIP_PHNNO     = #{recipPhnno}
+		     , RECIP_TELNO     = #{recipTelno}
+		     , RECIP_ZIP_NO    = #{recipZipNo}
+		     , RECIP_BASE_ADDR = #{recipBaseAddr}
+		     , RECIP_DTL_ADDR  = #{recipDtlAddr}
+		     , DELV_MEMO       = #{delvMemo}
+		     , UPD_NO          = #{updNo}
+		     , UPD_DT          = SYSDATE()
+		WHERE  DELV_ADDR_SQ = #{delvAddrSq}
+	</update>
 
 
 

+ 26 - 31
src/main/webapp/WEB-INF/views/display/GoodsCategoryForm.html

@@ -28,6 +28,7 @@
 		<!-- 검색조건 영역 -->
 		<div class="panelStyle">
 			<form id="goodsCateForm" name="goodsCateForm" action="#" th:action="@{'/display/goods/category/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
+				<input type="hidden" id="searchGb" name="searchGb" />
 				<table class="frmStyle" aria-describedby="검색조건">
 					<colgroup>
 						<col width="7%"/>
@@ -185,39 +186,12 @@
 			<div id="gridList" style="width: 100%; height: 500px;" class="ag-theme-balham lh60"></div>
 			<ul class="panelBar">
 				<li class="center">
-					<div class="tablePaging" id="goodsListPagination"></div>
+					<div class="tablePaging" id="goodsCateListPagination"></div>
 				</li>
 			</ul>
 		</div>
 		<!-- //리스트 영역 -->
-		
-		<!-- 등록/수정 -->
-		<div class="panelStyle">
-			<form id="detailForm" name="detailForm" action="#" th:action="@{'/display/category/save'}">
-				<table class="frmStyle" aria-describedby="등록/수정 폼">
-					<colgroup>
-						<col style="width:10%;"/>
-						<col style="width:23%;"/>
-						<col style="width:10%;"/>
-						<col style="width:23%;"/>
-						<col style="width:10%;"/>
-						<col/>
-					</colgroup>
 
-				</table>
-			</form>
-			
-			<!-- 버튼 배치 영역 -->
-			<ul class="panelBar">
-				<li class="right">
-					<button type="button" class="btn btn-info btn-lg" id="btnNew">신규</button>
-					<button type="button" class="btn btn-success btn-lg" id="btnSave">저장</button>
-					<button type="button" class="btn btn-base btn-lg" id="btnRefresh4Srch" th:if="${sessionInfo.roleCd == 'G001_0000'}">4SRCH 갱신</button>
-				</li>
-			</ul>
-			<!-- //버튼 배치 영역 -->
-		</div>
-		<!-- 등록/수정 -->
 	</div>
 
 <script th:inline="javascript">
@@ -226,7 +200,7 @@
 	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 cfnGridNumner('searchForm',params.node.rowIndex, 'A');}
+			valueGetter: function(params) { return cfnGridNumner('goodsCateForm',params.node.rowIndex, 'A');}
 		},
 		{headerName: "이미지", field: "sysImgNm", width: 100, height: 60, cellClass: 'text-center'
 			,cellRenderer: function(params) {
@@ -239,12 +213,13 @@
 			}
 		},
 		{headerName: "상품명", field: "goodsNm", width: 200, cellClass: 'text-left'},
-		{headerName: "품목명", field: "itemkindNm", width: 250, cellClass: 'text-left'},
+		{headerName: "기존품목코드", field: "itemkindCd", width: 150, cellClass: 'text-center' }
+		/*{headerName: "품목명", field: "itemkindNm", width: 250, cellClass: 'text-left'},
 		{headerName: "기존품목코드", field: "itemkindCd", width: 150, cellClass: 'text-center' },
 		{headerName: "변경품목코드", field: "itemkindCdNew", width: 150, cellClass: 'text-center', editable : true,
 			cellEditor: 'textCellEditor',
 			cellEditorParams: { maxlength: 5, required: true, onblur: '$(this).val($(this).val().toUpperCase())' }
-		}
+		}*/
 	];
 
 	// Get GridOptions
@@ -257,6 +232,26 @@
 
 	gridOptions.stopEditingWhenGridLosesFocus = true;
 
+	// 조회
+	$('#btnSearch').on('click', function() {
+		// 검색조건 추가해야함 ㅠㅠ
+
+		$("#goodsCateForm input[name=searchGb]").val("BASIC");
+		fnSearch();
+	});
+
+	$("#pageSize").on("change", function(){
+		var rowCnt = gridOptions.api.getDisplayedRowCount();
+		if(rowCnt > 0){
+			fnSearch();
+		}
+	});
+
+	var fnSearch = function(){
+		gagaPaging.init('goodsCateForm', fnSearchCallBack, 'goodsCateListPagination', $('#goodsCateForm').find('#pageSize').val());
+		gagaPaging.load(1);
+	};
+
 	// 업체변경시
 	$('#goodsCateForm select[name=supplyCompCd]').on('change', function() {
 		var actionUrl = '/renderer/supplyCompany/brand/list/' + $(this).val();

+ 66 - 147
src/main/webapp/WEB-INF/views/order/OrderDetailForm.html

@@ -95,7 +95,6 @@
 				<div id="gridOrderFreeGiftInfo" style="width:100%; height:120px;" class="ag-theme-balham"></div>
 				
 				<h4>배송정보</h4>
-				<button type="button" style="margin-left:10px;" class="btn btnRight btn-base btn-sm off" id="btnUpdateOrderAddr">수정</button>
 				<div id="gridDeliveryAddrInfo" style="width:100%; height:100px;" class="ag-theme-balham"></div>
 				
 				<table style="width:100%;">
@@ -167,85 +166,18 @@ var orderChangeInfo 		= [[${orderChangeInfo}]];				// 취소/반품/교환요청
 var orderRefundInfo 		= [[${orderRefundInfo}]];				// 환불정보
 var orderCounselInfo 		= [[${orderCounselInfo}]];				// 상담내역
 var orderAdminMemoInfo 		= [[${orderAdminMemoInfo}]];			// 관리자메모
-
-// 쿠폰,포인트,적립금 컬럼배경색설정
-//var goodsCpnDcAmtClass 	= (orderGoodsInfo[0].goodsCpnDcAmt > 0) 	? 'bgPink' : 'text-right';
-//var cartCpnDcAmtClass 	= (orderGoodsInfo[0].cartCpnDcAmt > 0) 		? 'bgPink' : 'text-right';
-//var plusCpnDcAmtClass 	= (orderGoodsInfo[0].plusCpnDcAmt > 0) 		? 'bgPink' : 'text-right';
-//var pntDcAmtClass 		= (orderGoodsInfo[0].pntDcAmt > 0) 			? 'bgPink' : 'text-right';
-//var prePntDcAmtClass 		= (orderGoodsInfo[0].prePntDcAmt > 0) 		? 'bgPink' : 'text-right';
-//var savePntAmtClass 		= (orderGoodsInfo[0].savePntAmt > 0) 		? 'bgSky' : 'text-right';
-
-//var custNo 				= orderInfo[0].custNo;
-//var mallGb 				= orderInfo[0].mallGb;
 </script>
 
 <!-- AgGrid 컬럼 세팅 -->
 <script>
 // 1.주문기본정보 그리드 바인딩
-var columnDefsOrderInfo = [
-	{
-		headerName			: "사이트"
-		, field				: "siteCd"
-		, width				: 100
-		, cellClass			: 'text-center'
-		, valueFormatter	: function (params) {
-			return gagaAgGrid.lookupValue(siteCdList, params.value);
-		}
-	},
-	{headerName: "몰구분"		, field: "mallGbNm"		, width: 80		, cellClass: 'text-center'},
-	{headerName: "웹구분"		, field: "frontGbNm"	, width: 80		, cellClass: 'text-center'},
-	{headerName: "외부몰"		, field: "extmallNm"	, width: 80		, cellClass: 'text-center'},
-	{
-		headerName			: "주문일시"	
-		, field				: "ordDt"
-		, width				: 130
-		, cellClass			: 'text-center' 
-		, cellRenderer		: function(params) {
-			return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmm").format("YYYY-MM-DD HH:mm") : '';
-		}
-	},
-	{headerName: "주문자"		, field: "ordNm"		, width: 80		, cellClass: 'text-center'},
-	{
-		headerName			: "고객번호"
-		, field				: "custNo"
-		, width				: 100
-		, cellClass			: 'text-center'
-		, valueFormatter	: function (params) {
-			return (params.data.mallGb == '20') ? '' : params.value;
-		}
-	},
-	{headerName: "주문번호", field: "ordNo", width: 100, cellClass: 'text-center'},
-	{
-		headerName			: "이메일"
-		, field				: "ordEmail"
-		, width				: 240
-		, cellClass			: 'text-center'
-		, cellRenderer		: function (params) {
-			return params.value ? params.value + '&nbsp&nbsp<button type="button" class="btn btn-base btn-sm" onclick="fnOpenEmailForm(\'' + params.data.orderEmail + '\',\'' + params.data.orderNm + '\',\'' + params.data.custNo + '\');"> 메일발송 </button>' : '';
-		}
-	},
-	{
-		headerName			: "핸드폰번호"
-		, field				: "ordPhnno"
-		, width				: 220
-		, cellClass			: 'text-center'
-		, cellRenderer		: function (params) {
-			return params.value + '&nbsp&nbsp<button type="button" class="btn btn-base btn-sm" onclick="fnOpenLmsForm(\'' + params.data.orderPhnno + '\',\'' + params.data.custNo + '\');"> LMS발송 </button>';
-		}
-	},
-	{headerName: "회원구분"	, field: "custGbNm"		, width: 80		, cellClass: 'text-center'},
-	{headerName: "관리대상"	, field: "managedRsnNm"	, width: 80		, cellClass: 'text-center'},
-	{headerName: "등급"		, field: "custGradeNm"	, width: 80		, cellClass: 'text-center'}
-];
-var gridOptionsOrderInfo = gagaAgGrid.getGridOptions(columnDefsOrderInfo);
-
 // 2.상품별 상세정보
 var columnDefsGoodsInfo = [
 	{
 		headerName	: "주문상세",
 		children	: [
-			{headerName: "번호"		, field: "ordDtlNo"		, width: 80, cellClass: 'text-center'}
+			{headerName: "번호"		, field: "ordDtlNo"		, width: 80, cellClass: 'text-center'},
+			{headerName: "주문구분"	, field: "exchGbNm"		, width: 80, cellClass: 'text-center'},
 		],
 	},
 	{
@@ -285,7 +217,7 @@ var columnDefsGoodsInfo = [
 				headerName		: "단품금액"
 				, field			: "itemPrice"
 				, width			: 100
-				, cellClass		: 'text-right' //cartCpnDcAmtClass
+				, cellClass		: 'text-right'
 				, cellRenderer	: function (params) {
 					return params.value.addComma();
 				}
@@ -294,7 +226,7 @@ var columnDefsGoodsInfo = [
 				headerName		: "옵션추가금액"
 				, field			: "optAddPrice"
 				, width			: 100
-				, cellClass		: 'text-right' //cartCpnDcAmtClass
+				, cellClass		: 'text-right'
 				, cellRenderer	: function (params) {
 					return params.value.addComma();
 				}
@@ -352,6 +284,7 @@ var columnDefsGoodsInfo = [
 					// G013_98	결제전주문취소
 					// G013_99	결제후주문취소
 					// 2020.12.22 추가적인 개발은 추후 물류개발이 완료된 후 추가할 예정
+					// To Do List
 					// @ 재고정보수정
 					// @ 정산정보수정
 					strVal += "<select class='ordDtlStatChg' name='ordDtlStatChg' ordDtlNo='"+params.data.ordDtlNo+"' ordNo='"+params.data.ordNo+"' onChange='fnChangOrdDtlStat(this);'>";
@@ -444,7 +377,7 @@ var columnDefsGoodsInfo = [
 				headerName		: "사용"
 				, field			: "pntDcAmt"
 				, width			: 80
-				, cellClass		: 'text-right' //pntDcAmtClass
+				, cellClass		: 'text-right'
 				, cellRenderer	: function (params) {
 					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderPointHst('" + params.data.ordNo + "');\">" + params.value.addComma() + "</a>";
 				}
@@ -453,7 +386,7 @@ var columnDefsGoodsInfo = [
 				headerName		: "즉시사용"
 				, field			: "prePntDcAmt"
 				, width			: 80
-				, cellClass		: 'text-right' //prePntDcAmtClass
+				, cellClass		: 'text-right'
 				, cellRenderer	: function (params) {
 					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderPointHst('" + params.data.ordNo + "');\">" + params.value.addComma() + "</a>";
 				}
@@ -462,7 +395,7 @@ var columnDefsGoodsInfo = [
 				headerName		: "적립"
 				, field			: "savePntAmt"
 				, width			: 80
-				, cellClass		: 'text-right' //savePntAmtClass
+				, cellClass		: 'text-right'
 				, cellRenderer	: function (params) {
 					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderPointHst('" + params.data.ordNo + "');\">" + params.value.addComma() + "</a>";
 				}
@@ -476,7 +409,7 @@ var columnDefsGoodsInfo = [
 				headerName		: "사용"
 				, field			: "gfcdUseAmt"
 				, width			: 80
-				, cellClass		: 'text-right' //pntDcAmtClass
+				, cellClass		: 'text-right'
 				, cellRenderer	: function (params) {
 					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderGiftcardHst('" + params.data.ordNo + "');\">" + params.value.addComma() + "</a>";
 				}
@@ -530,7 +463,8 @@ var columnDefsGoodsInfo = [
 					return retStr;
 				}
 			},
-			{headerName: "출고처", field: "delvLocNm", width: 120, cellClass: 'text-center'}
+			{headerName: "출고처"		, field: "delvLocNm"	, width: 120, cellClass: 'text-center'},
+			{headerName: "배송지번호"	, field: "delvAddrSq"	, width: 120, cellClass: 'text-center'}
 		]
 	}
 ];
@@ -564,27 +498,35 @@ var gridOptionsOrderFreeGiftInfo = gagaAgGrid.getGridOptions(columnDefsOrderFree
 
 // 3.배송정보
 var columnDefsDeliveryInfo = [
-	{headerName: "배송지번호"		, field: "delvAddrSq"	, width: 80, cellClass: 'text-center'},
-	{headerName: "받는분"			, field: "recipNm"		, width: 80, cellClass: 'text-left', editable: true},
-	{headerName: "핸드폰번호"		, field: "recipPhnno"	, width: 120, cellClass: 'text-left', editable: true},
-	{headerName: "전화번호"		, field: "recipTelno"	, width: 120, cellClass: 'text-left', editable: true},
+	{headerName: "배송지번호"		, field: "delvAddrSq"		, width: 80, cellClass: 'text-center'},
+	{headerName: "주문구분"		, field: "exchGbNm"			, width: 80, cellClass: 'text-center'},
+	{headerName: "수정여부"		, field: "delvAddrEditYn"	, width: 80, cellClass: 'text-center', hide: true},
+	{headerName: "받는분"			, field: "recipNm"			, width: 80, cellClass: 'text-left', editable: true},
+	{headerName: "핸드폰번호"		, field: "recipPhnno"		, width: 120, cellClass: 'text-left', editable: true},
+	{headerName: "전화번호"		, field: "recipTelno"		, width: 120, cellClass: 'text-left', editable: true},
 	{
 		headerName		: "우편번호"		
 		, field			: "recipZipNo"
-		, width			: 200
-		, cellClass		: 'text-left'
+		, width			: 220
+		, cellClass		: 'text-center'
 		, cellRenderer	: function (params) {
 			var rtnStr = ""
 			
-			rtnStr += params.value;
-			rtnStr += "<button type=\"button\" style=\"margin-left:10px\" class=\"btn btn-info\" onclick=\"fnOpenDaumAddr('"+params.data.delvAddrSq+"');\">우편번호찾기</button>";
+			if (params.data.delvAddrEditYn < 1) {
+				// 배송지 수정 (주문배송, 교환배송)
+				rtnStr += params.value;			
+				rtnStr += "<button type=\"button\" style=\"margin-left:10px\" class=\"btn btn-info\" onclick=\"fnOpenDaumAddr('" + params.node.rowIndex + "', 'ADDR');\">POST</button>";
+				rtnStr += "<button type=\"button\" class=\"btn btn-info\" onclick=\"fnUpdateOrderAddr('" + params.node.rowIndex + "');\">저장</button>";
+			} else {
+				rtnStr += params.value;
+			}
 			
 			return rtnStr;
 		}
 	},
-	{headerName: "주소(기본)"		, field: "recipBaseAddr"	, width: 300, cellClass: 'text-left'},
-	{headerName: "주소(상세)"		, field: "recipDtlAddr"		, width: 200, cellClass: 'text-left', editable: true},
-	{headerName: "배송메모"		, field: "delvMemo"			, width: 280, cellClass: 'text-left', editable: true}
+	{headerName: "주소(기본)"		, field: "recipBaseAddr"	, width: 220, cellClass: 'text-left'},
+	{headerName: "주소(상세)"		, field: "recipDtlAddr"		, width: 220, cellClass: 'text-left', editable: true},
+	{headerName: "배송메모"		, field: "delvMemo"			, width: 250, cellClass: 'text-left', editable: true}
 ];
 var gridOptionsDeliveryInfo = gagaAgGrid.getGridOptions(columnDefsDeliveryInfo);
 
@@ -682,27 +624,27 @@ var columnDefsOrderChangeInfo = [
 	{headerName: "요청메모"		, field: "chgMemo"		, width: 150	, cellClass: 'text-center'},
 	{headerName: "변경자명"		, field: "chgerNm"		, width: 100	, cellClass: 'text-center'},
 	{headerName: "변경자핸드폰"		, field: "chgerPhnno"	, width: 120	, cellClass: 'text-center', editable: true},
-	{headerName: "우편번호"		, field: "chgerPostNo"	, width: 120	, cellClass: 'text-center'},
 	{
-		headerName		: "주소(기본)"
-		, field			: "chgerBaseAddr"
-		, width			: 250
+		headerName		: "우편번호"		
+		, field			: "chgerZipNo"
+		, width			: 220
 		, cellClass		: 'text-center'
 		, cellRenderer	: function (params) {
-			var retStr = "";
+			var rtnStr = ""
 			
-			// 교환요청, 반품요청일때만 버튼 활성화
-			if (params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_40' ) {
-				if (params.data.wdInvoiceSendYn == 'N') {
-					retStr += "<button type=\"button\" class=\"btn btn-info\" onclick=\"fnOpenPostFindPopup('" + params.node.rowIndex + "');\">POST</button>";
-					retStr += "<button type=\"button\" class=\"btn btn-info\" onclick=\"fnSaveChgerAddr('" + params.node.rowIndex + "');\">저장</button>";
-				}
+				if (params.data.chgStat == 'G685_30' || params.data.chgStat == 'G685_40' ) {
+				// 배송지 수정 (주문배송, 교환배송)
+				rtnStr += params.value;			
+				rtnStr += "<button type=\"button\" style=\"margin-left:10px\" class=\"btn btn-info\" onclick=\"fnOpenDaumAddr('" + params.node.rowIndex + "', 'CLAIM');\">POST</button>";
+				rtnStr += "<button type=\"button\" class=\"btn btn-info\" onclick=\"fnSaveChgerAddr('" + params.node.rowIndex + "');\">저장</button>";
+			} else {
+				rtnStr += params.value;
 			}
-
-			retStr += (gagajf.isNull(params.value)) ? '' : (gagajf.isNull(params.data.chgerDtlAddr)) ? params.value : params.value + params.data.chgerDtlAddr;
-			return retStr;
+			
+			return rtnStr;
 		}
 	},
+	{headerName: "주소(기본)"		, field: "chgerBaseAddr"	, width: 220, cellClass: 'text-left'},
 	{headerName: "주소(상세)"		, field: "chgerDtlAddr"	, width: 150	, cellClass: 'text-center'	, editable: true},
 	{
 		headerName		: "택배사전송"
@@ -722,11 +664,11 @@ var columnDefsOrderChangeInfo = [
 			var retStr = "";
 
 			if (params.data.chgGb == "G680_30" && params.data.chgStat == "G685_40") {
-				retStr = ' <button type="button" class="btn btn-success" onclick="fnReturnReqeustCancel(\'' + params.data.ordChgSq + '\',\'' + params.value + '\',\'' + params.node.rowIndex + '\');"> 반품취소 </button>';
+				retStr = ' <button type="button" class="btn btn-success" onclick="fnReturnReqeustCancel(\'' + params.data.ordChgSq + '\',\'' + params.value + '\',\'' + params.node.rowIndex + '\');">반품취소</button>';
 			} else if (params.data.chgGb == "G680_40" && params.data.chgStat == "G685_30") {
-				retStr = ' <button type="button" class="btn btn-success" onclick="fnExchangeReqeustCancel(\'' + params.data.ordChgSq + '\',\'' + ordNo + '\',\'' + params.value + '\',\'' + params.node.rowIndex + '\');"> 교환취소 </button>';
+				retStr = ' <button type="button" class="btn btn-success" onclick="fnExchangeReqeustCancel(\'' + params.data.ordChgSq + '\',\'' + ordNo + '\',\'' + params.value + '\',\'' + params.node.rowIndex + '\');">교환취소</button>';
 			} else if (params.data.chgGb == "G680_20" && params.data.chgStat == "G685_20") {
-				retStr = '<button type="button" class="btn btn-success" onclick="fnCancelConfirmRequestCancel(\'' + params.data.ordChgSq + '\')">요청철회 </button>';
+				retStr = '<button type="button" class="btn btn-success" onclick="fnCancelConfirmRequestCancel(\'' + params.data.ordChgSq + '\')">요청철회</button>';
 			}
 
 			return retStr;
@@ -1013,10 +955,10 @@ $(document).ready(function () {
 var gridOrderChangeInfoSelectedIdx = '';
 
 // 배송지변경
-var fnUpdateOrderAddr = function () {
+var fnUpdateOrderAddr = function (rowIdx) {	
 	gridOptionsDeliveryInfo.api.stopEditing();
+	var jsonData = JSON.stringify(gridOptionsDeliveryInfo.api.getRowNode(rowIdx).data);
 	
-	var jsonData = JSON.stringify(gridOptionsDeliveryInfo.api.getRowNode(0).data);
 	mcxDialog.confirm("주소를 변경하시겠습니까?", {
 		cancelBtnText	: "취소",
 		sureBtnText		: "확인",
@@ -1207,34 +1149,6 @@ var fnBindDeliveryAddrCallBack = function(result) {
 	gridOptionsDeliveryInfo.api.setRowData(result);
 };
 
-// 우편번호 찾기관련
-var fnSetPostValue = function(zipNo, baseRoadAddr1, baseRoadAddr2, etcAddr, postPosition) {
-	if (postPosition == 'grid') {
-		gridOptionsDeliveryInfo.api.getRowNode(0).data.recipPostNo = zipNo;
-		gridOptionsDeliveryInfo.api.getRowNode(0).data.recipBaseAddr = baseRoadAddr1;
-		gridOptionsDeliveryInfo.api.getRowNode(0).data.recipDtlAddr = baseRoadAddr2;
-		gridOptionsDeliveryInfo.api.refreshCells();
-	} 
-	else if (postPosition == 'returnRequest') {
-		$("#returnRequestFrm input[name=chgerPostNo]").val(zipNo);
-		$("#returnRequestFrm input[name=chgerBaseAddr]").val(baseRoadAddr1);
-		$("#returnRequestFrm input[name=chgerDtlAddr]").val(baseRoadAddr2);
-	} 
-	else if (postPosition == 'updateOrderChangeAddr') {
-		gridOptionsOrderChangeInfo.api.getRowNode(gridOrderChangeInfoSelectedIdx).data.chgerPostNo = zipNo;
-		gridOptionsOrderChangeInfo.api.getRowNode(gridOrderChangeInfoSelectedIdx).data.chgerBaseAddr = baseRoadAddr1;
-		gridOptionsOrderChangeInfo.api.getRowNode(gridOrderChangeInfoSelectedIdx).data.chgerDtlAddr = baseRoadAddr2;
-		gridOptionsOrderChangeInfo.api.refreshCells();
-
-	}
-}
-
-// 변경요청 > 우편번호찾기
-var fnOpenPostFindPopup = function (idx) {
-	gridOrderChangeInfoSelectedIdx = idx;
-	cfnOpenPostFindPopup('updateOrderChangeAddr');
-}
-
 // 변경요청 > 회수지정보 저장
 var fnSaveChgerAddr = function (rowIdx) {
 	gridOptionsOrderChangeInfo.api.stopEditing();
@@ -1446,20 +1360,25 @@ var fnChangOrdDtlStat = function (obj) {
 };
 
 // DAUM을 이용한 우편번호 팝업 레이어
-var fnOpenDaumAddr = function(idx) {
-	alert(idx);
-	
+var fnOpenDaumAddr = function(idx, addrGb) {
+		
 	let daumZip = new daum.Postcode({
 		oncomplete: function(data) {
-			// 우편번호와 주소 정보를 해당 필드에 넣는다.
-			$('#detailForm input[name=bizZipcode]').val(data.zonecode);
-			$('#detailForm input[name=bizBaseAddr]').val(cfnGetDaumRoadAddr(data));
-			$('#detailForm input[name=bizDtlAddr]').focus();
-
-			gridOptionsOrderChangeInfo.api.getRowNode(gridOrderChangeInfoSelectedIdx).data.chgerPostNo = zipNo;
-			gridOptionsOrderChangeInfo.api.getRowNode(gridOrderChangeInfoSelectedIdx).data.chgerBaseAddr = baseRoadAddr1;
-			gridOptionsOrderChangeInfo.api.getRowNode(gridOrderChangeInfoSelectedIdx).data.chgerDtlAddr = baseRoadAddr2;
-			gridOptionsOrderChangeInfo.api.refreshCells();
+			// 배송지주소 수정
+			if ("ADDR" == addrGb) {
+				gridOptionsDeliveryInfo.api.gre
+				gridOptionsDeliveryInfo.api.getRowNode(idx).data.recipZipNo 		= data.zonecode;
+				gridOptionsDeliveryInfo.api.getRowNode(idx).data.recipBaseAddr 		= cfnGetDaumRoadAddr(data);
+				gridOptionsDeliveryInfo.api.getRowNode(idx).data.recipDtlAddr 		= "";
+				gridOptionsDeliveryInfo.api.refreshCells();
+			}
+			// 회수지주소 수정
+			else {
+				gridOptionsOrderChangeInfo.api.getRowNode(idx).data.chgerZipNo 		= data.zonecode;
+				gridOptionsOrderChangeInfo.api.getRowNode(idx).data.chgerBaseAddr 	= cfnGetDaumRoadAddr(data);
+				gridOptionsOrderChangeInfo.api.getRowNode(idx).data.chgerDtlAddr 	= "";
+				gridOptionsOrderChangeInfo.api.refreshCells();
+			}
 			
 			cfnCloseDaumAddr();
 		},