<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.style24.batch.biz.dao.TsbWmsDeliveryDao">

	<!-- WMS_IF 총알배송 권역정보 조회   -->	
	<select id="getWmsIfDailyDeliveryZoneList" resultType="Delivery" timeout="600">
		/*TsbWmsDelivery.getWmsIfDailyDeliveryZoneList*/
		SELECT
			  ZIP_NO	
			, PND_BRAN	
			, PND_BRAN_NM	
			, OPER_ABOVE_BRAN	
			, TR_BRAN_NM	
			, CITY_DO	
			, GU_GUN	
			, DONG_YUP_MEUN	
			, DELIVERY_TIME	
			, DELIVERY_PROBABILITY	
			, DELIVERYCLASSCD	 
			, CASE WHEN ISUSE = 0 THEN 'N' ELSE 'Y' END AS ISUSE
		FROM iSTYLE24_WmsIf.DBO.TB_IF_DAILYDELIVERYZONE
	   WHERE ISUSE = 1
	/*	WHERE DATELASTUPDATE > CONVERT(datetime,'20200311'+' 00:00:00') */
	</select>
	
	<!-- WMS_IF 회수예외 목록  -H -->	
	<select id="getWmsIfWithdrawExcList" resultType="Delivery" timeout="600">
		/*TsbWmsDelivery.getWmsIfWithdrawExcList*/
		SELECT 
			  RecallExceptionNo
			, DeliveryOrderNo
			, OrderNo
			, CustomerName
			, StatusCd
			, LogisticsName
			, InvoiceNo
			, ChargeType
			, ChargeAmount
			, UserIdCreated
			, UserNameCreated
			, DateCreated
			, UserIdModified
			, UserNameModified
			, DateLastModified
			, IfStat
			, IfDate
			, CodFee
			, PayGb
			, OrderExceptionNo
		  FROM iSTYLE24_WmsIf.DBO.TB_IF_RecallException
		WHERE 1=1
		  AND IfStat = '0'
		  AND StatusCd = '대기'
		  AND DateCreated > CONVERT(datetime,'20210620'+' 00:00:00') -- 임시임 
	</select>
	
	<!-- WMS_IF 회수예외 목록 -D -->	
	<select id="getWmsIfWithdrawExcItemList" resultType="Delivery" timeout="600">
		/*TsbWmsDelivery.getWmsIfWithdrawExcItemList*/
		SELECT 
			  A.RecallExceptionItemNo
			, A.RecallExceptionNo
			, A.DeliveryOrderItemNo
			, A.ProductNo
			, A.ProductCode
			, A.ProductName
			, A.SKUCode
			, A.SKUValue
			, A.ExceptionQty
			, A.ReasonCd
			, A.OrderDtlNo
			, A.IfStat
			, A.IfDate
			, B.OrderNo
			, A.Qty
			, A.ReasonCode
		  FROM iSTYLE24_WmsIf.DBO.TB_IF_RecallExceptionItem A, iSTYLE24_WmsIf.DBO.TB_IF_RecallException B
		 WHERE A.RecallExceptionNo = B.RecallExceptionNo
		   AND A.IfStat = 0
		   AND B.StatusCd = '대기'
		   AND B.DateCreated > CONVERT(datetime,'20210620'+' 00:00:00') -- 임시임 
	</select>
	
	
	<!-- WMS_IF 회수예외 목록  -M -->	
	<select id="getWmsIfWithdrawExcMemoList" resultType="Delivery" timeout="600">
		/*TsbWmsDelivery.getWmsIfWithdrawExcMemoList*/
		SELECT   
			  A.RecallExceptionMemoNo
			, A.RecallExceptionNo
			, A.MemoType
			, A.AdminMemo
			, A.UserIdCreated
			, A.UserNameCreated
			, A.DateCreated
			, A.IfStat
			, A.IfDate
		  FROM iSTYLE24_WmsIf.DBO.TB_IF_RecallExceptionMemo A, iSTYLE24_WmsIf.DBO.TB_IF_RecallException B
		 WHERE A.RecallExceptionNo = B.RecallExceptionNo
		   AND A.IfStat = 0
		   AND B.StatusCd = '대기'
		   AND B.DateCreated > CONVERT(datetime,'20210620'+' 00:00:00') -- 임시임
	</select>
	
	
	<!-- 회수예외 수정 -H   -->
	<update id="updateWmsIfWithdrawExcList" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsIfWithdrawExcList*/
		UPDATE iSTYLE24_WmsIf.DBO.TB_IF_RecallException SET 
			   IfStat = #{ifstat}
			 , IfDate = GETDATE()
			 <if test='ifstat == "2"'>
			 , CSenCloseFee = #{csAddFee}
			 , CSMemo       = #{csmemo}
			 </if>
		WHERE RecallExceptionNo = #{recallexceptionno}
		
	</update>
		
	<!-- 회수예외 수정 -D   -->
	<update id="updateWmsIfWithdrawExcItemList" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsIfWithdrawExcItemList*/
		UPDATE iSTYLE24_WmsIf.DBO.TB_IF_RecallExceptionItem SET 
			   IfStat = #{ifstat}
			 , IfDate = GETDATE()
		WHERE RecallExceptionNo = #{recallexceptionno}
	</update>
	
	<!-- 회수예외 수정 -M   -->
	<update id="updateWmsIfWithdrawExcMemoList" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsIfWithdrawExcMemoList*/
		UPDATE iSTYLE24_WmsIf.DBO.TB_IF_RecallExceptionMemo SET 
			   IfStat = #{ifstat}
			 , IfDate = GETDATE()
		WHERE RecallExceptionNo = #{recallexceptionno}
	</update>
			
	<!-- WMS_IF 출고예외 목록  -H -->	
	<select id="getWmsIfDeliveryExcList" resultType="Delivery" timeout="600">
		/*TsbWmsDelivery.getWmsIfDeliveryExcList*/	
		SELECT 
			  DeliveryExceptionNo
			, DeliveryOrderNo
			, StatusCd
			, AdminMemo
			, UserIdCreated
			, UserNameCreated
			, DateCreated
			, UserIdModified
			, UserNameModified
			, DateLastModified
			, (SELECT B.OrderNo FROM iSTYLE24_WmsIf.DBO.TB_IF_DeliveryOrder B WHERE B.DeliveryOrderNo = A.DeliveryOrderNo ) AS OrderNo  -- OrderNo
			, IfYn
			, IfDate
		 FROM iSTYLE24_WmsIf.DBO.TB_IF_DeliveryException A
		WHERE IfYn = 'N'	
	</select>			
			
	<!-- WMS_IF 출고예외 목록  -D -->	
	<select id="getWmsIfDeliveryExcItemList" resultType="Delivery" timeout="600">
		/*TsbWmsDelivery.getWmsIfDeliveryExcItemList*/		
		SELECT 
			  A.DeliveryExceptionItemNo
			, A.DeliveryExceptionNo
			, A.DeliveryOrderItemNo
			, A.ExceptionQty
			, A.ReasonCd
			, A.OrderDtlNo
			, A.IfYn
			, A.IfDate
			, C.GiftYn
			, C.ProductNo
			, C.ProductCode 
			, C.SKUCode
		 FROM iSTYLE24_WmsIf.DBO.TB_IF_DeliveryExceptionItem A 
		 JOIN iSTYLE24_WmsIf.DBO.TB_IF_DeliveryException B ON  A.DeliveryExceptionNo = B.DeliveryExceptionNo
		 JOIN iSTYLE24_WmsIf.DBO.TB_IF_DeliveryOrderItem C ON  A.DeliveryOrderItemNo = C.DeliveryOrderItemNo
		WHERE A.IfYn = 'N'
	</select>	
				
	<!-- 출고예외 수정 -H   -->
	<update id="updateWmsIfDeliveryExc" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsIfDeliveryExc*/
		UPDATE iSTYLE24_WmsIf.DBO.TB_IF_DeliveryException SET 
			   IfYn = #{ifyn}
			 , IfDate = GETDATE()
		WHERE DeliveryExceptionNo = #{deliveryexceptionno}	
		  AND IfYn ='N'	
	</update>			
				
	<!-- 출고예외 수정 -D   -->
	<update id="updateWmsIfDeliveryExcItem" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsIfDeliveryExcItem*/
		UPDATE iSTYLE24_WmsIf.DBO.TB_IF_DeliveryExceptionItem SET 
			   IfYn = #{ifyn}
			 , IfDate = GETDATE()
		WHERE DeliveryExceptionItemNo = #{deliveryexceptionitemno}
		  AND IfYn ='N'
	</update>	
				
	<!-- WMS_IF 출고결과 목록   -->	
	<select id="getWmsIfDeliveryOrdRsltList" resultType="Delivery" timeout="600">
		/*TsbWmsDelivery.getWmsIfDeliveryOrdRsltList*/		
		SELECT 
			    A.OrderNo
			  , ISNULL(B.OrderDtlNo,999999999) AS OrderDtlNo
			  , B.Qty
			  , B.DateSent
			  , A.DeliveryOrderNo 
			  , B.DeliveryOrderItemNo 
			  , B.ProductNo
			  , B.SKUCode
		  FROM iSTYLE24_Wmsif.dbo.TB_IF_DeliveryOrder A 
		  JOIN iSTYLE24_Wmsif.dbo.TB_IF_DeliveryOrderItem B ON A.DeliveryOrderNo = B.DeliveryOrderNo 
		 WHERE B.IfYn     = 'N'
		   AND B.StatusCd = '30'
		   AND B.GiftYn   = 'N'
		   AND B.IsCancel = 0
	</select>				
				 
	<!-- 출고결과수신완료    -->
	<update id="updateWmsIfDeliveryOrdRslt" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsIfDeliveryOrdRslt*/
		UPDATE iSTYLE24_Wmsif.dbo.TB_IF_DeliveryOrder SET
			  IfYn   = #{ifyn}
			, IfDate = GETDATE() 
		WHERE DeliveryOrderNo = #{deliveryorderno}
		  AND IfYn = 'N'
	</update>	
	
	<!-- 출고결과수신완료    -->
	<update id="updateWmsIfDeliveryOrdRsltItem" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsIfDeliveryOrdRsltItem*/
		UPDATE iSTYLE24_Wmsif.dbo.TB_IF_DeliveryOrderItem SET
		  IfYn   = #{ifyn}
		, IfDate = GETDATE() 
		WHERE DeliveryOrderItemNo = #{deliveryorderitemno}
		  AND IfYn = 'N'
	</update>
	
	<!-- WMS_IF 회수결과 목록   -->	
	<select id="getWmsIfRecallDeliveryList" resultType="Delivery" timeout="600">
		/*TsbWmsDelivery.getWmsIfRecallDeliveryList*/		
		SELECT 
			  A.RecallNo			-- 반품 번호
			, A.OrderExceptionNo	AS ORD_CHG_SQ -- 주문변경번호 (주문 예외 번호 ASIS) 
			, A.RecallTypeCd		-- 반품 타입
			, A.Receiver			-- 받는자
			, A.ReceiverTelNum		-- 받는자 전화번호
			, A.ReceiverCellNum		-- 받는자 핸드폰 번호
			, A.DeliveryPostalCode	-- 우편 번호
			, A.DeliveryAddr1		-- 기본 주소
			, A.DeliveryAddr2		-- 상세 주소
			, A.OrderNo				-- 주문 번호
			, A.CSMemo				-- CS 메모
			, A.DateCSMemoUpdated	-- CS 메모 변경일
			, A.WMSMemo				-- WMS 메모
			, A.DateWMSMemoUpdated	-- WMS 메모 변경일
			, A.DeliveryAddrNew		-- 도로명 주소
			, A.RecallRequestYn		-- 회수요청여부
			, B.RecallItemNo        -- 반품 항목 번호 
			, B.ProductNo			-- 상품 번호
			, B.ProductCode			-- 상품 코드
			, B.ProductName			-- 상품명
			, B.SKUCode				-- 옵션 코드
			, B.SKUValue			-- 옵션 내용
			, B.RecallQty			-- 수량
			, B.StatusCd			-- 상태
			, B.DateCompleted		-- 완료일
			, B.LogisticsName		-- 택배사 명
			, B.RecallInvoiceNo		-- 반품 명세서(회수운송장번호)
			, B.OrderDtlNo AS ORD_DTL_NO	-- 주문상세번호
			, B.InvoiceNo			-- 원운송장번호
			, A.encloseFee          -- 동봉비 
			, B.logisticscode
			, CASE WHEN A.DateCreated > '20210620 00:00:00' THEN 'N' ELSE 'Y' END AS ASIS_YN 
			, A.CodFee
		  FROM istyle24_Wmsif.dbo.TB_IF_RECALLDELIVERY A, istyle24_Wmsif.dbo.TB_IF_RECALLDELIVERYITEM B
		 WHERE A.RecallNo  = B.RecallNo
		   AND A.IsDeleted = 0
		   AND B.StatusCd  = '입고완료'   
		   AND B.IfStat    = '2' -- 회수완료 

	</select>
	
	<!-- 회수결과수신완료    -->
	<update id="updateWmsIfRecallDeliveryRslt" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsIfRecallDeliveryRslt*/
			UPDATE istyle24_Wmsif.dbo.TB_IF_RECALLDELIVERY SET
			  IfStat = #{ifstat}
			, IfDate = GETDATE()
			WHERE RecallNo = #{recallno}
			  AND IfStat = '2'
	</update>	
	
	<!-- 회수상세결과수신완료    -->
	<update id="updateWmsIfRecallDeliveryItemRslt" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsIfRecallDeliveryItemRslt*/
		UPDATE istyle24_Wmsif.dbo.TB_IF_RECALLDELIVERYITEM SET
			  IfStat = #{ifstat}
			, IfDate = GETDATE()
		WHERE RecallNo     = #{recallno}
		  AND RecallItemNo = #{recallitemno}
		  AND IfStat       = '2'
	</update>	
		
	<!-- 출고 송장번호 조회  -->
	<select id="getWmsTbIfDeliveryInvoiceRslt" resultType="Delivery" timeout="600" >
		/*TsbWmsDelivery.getWmsTbIfDeliveryInvoiceRslt*/
		SELECT 
			  InvoiceNoSeq
			, orderNo
			, orderDtlNo
			, LogisticsNo
			, InvoiceNo
			, DateShip
			, DateCompleted
			, Qty
			, AddInvoiceYn
			, DateFirstCreated
			, DateLastModified
			, ProductNo
			, SKUCode
			, CASE WHEN orderDtlNo IS NULL THEN 'N' ELSE 'Y' END AS ORD_DTL_NO_YN
		  FROM istyle24_Wmsif.dbo.TB_IF_DELIVERYINVOICE
		 WHERE IfYn = 'N'
		   AND SKUCode IS NOT NULL
	</select>
	
	<!-- 출고 송장번호 수신완료    -->
	<update id="updateWmsTbIfDeliveryInvoiceRslt" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsTbIfDeliveryInvoiceRslt*/
		UPDATE istyle24_Wmsif.dbo.TB_IF_DELIVERYINVOICE  SET
			  IfYn   = #{ifyn}
			, IfDate = GETDATE()
		WHERE InvoiceNoSeq = #{invoicenoseq}
	</update>		
	
	<!-- 출고처지정 지연재고 등록     -->
	<insert id="insertWmsTbIfDelifixQty" parameterType="Delivery" >
		/*TsbWmsDelivery.insertWmsTbIfDelifixQty*/
		INSERT INTO iSTYLE24_WmsIf.dbo.TB_IF_DELIFIX_QTY
		(
			  OrderNo
			, OrderDtlNo
			, SKUCode
			, ProductNo
			, Qty
			, DateCreated
		)
		VALUES
		(
			  #{ordNo}
			, #{ordDtlNo}
			, #{optCd}
			, #{productno}
			, #{ordQty}
			, GETDATE()
		)
	</insert>	
	
	<!-- 출고처지정 지연재고 삭제     -->
	<insert id="deleteWmsTbIfDelifixQty" parameterType="Delivery" >
		/*TsbWmsDelivery.deleteWmsTbIfDelifixQty*/
		DELETE FROM iSTYLE24_WmsIf.dbo.TB_IF_DELIFIX_QTY 
		WHERE OrderNo    = #{ordNo}
		  AND OrderDtlNo = #{ordDtlNo}
	</insert>
		
	<!-- 출고요청 M     -->
	<insert id="insertWmsTbIfDeliveryOrder" parameterType="Delivery" useGeneratedKeys="true" keyProperty="deliveryorderno">
		/*TsbWmsDelivery.insertWmsTbIfDeliveryOrder*/
		INSERT INTO iSTYLE24_WmsIf.dbo.TB_IF_DeliveryOrder
		(
			  OrderGUID				-- 주문서 고유번호
			, OrderNo				-- 주문번호
			, DeliveryTypeCd		-- 배송타입형태
			, IssueTypeCd			-- 주문타입
			, DeliveryUnitNo		-- 물류단위 번호
			, DateIssued			-- 배송 데이터 수집일
			, StatusCd				-- 배송 상태
			, LoginId				-- 로그인 아이디
			, CustomerName			-- 주문자 명
			, DateOrdered			-- 주문 일
			, Grade					-- 회원 등급
			, Receiver				-- 주문자
			, ReceiverTelNum		-- 주문자 전화번호
			, ReceiverCellNum		-- 주문자 핸드폰 번호
			, DeliveryPostalCode	-- 우편번호
			, DeliveryAddr1			-- 기본 주소
			, DeliveryAddr2			-- 상세 주소
			, LogisticsNo			-- 택배사 고유번호
			, LogisticsName			-- 택배사 명
			, DeliveryMemo			-- 배송 메모
			, ProductSummary		-- 상품명
			, IsCancel				-- 배송 취소 여부
			, IsChangeAddress		-- 배송지 변경 여부
			, IsReOrder				-- 재주문 여부
			, OrderPath				-- 주문 경로
			, DeliveryClassCd		-- 배송 형태 (당일)
			, ShippingTypeCd		-- 출고 구분
			, IsBeautyDelivery		-- 선물 포장 여부
			, DeliveryAddrNew		-- 도로명 주소
			, IfYn					-- I/F여부
			, PayGb
		)
		VALUES
		(
			  #{orderguid}
			, #{orderno}				
			, #{deliverytypecd}		
			, #{issuetypecd}			
			, 0	
			, GETDATE()				
			, #{statuscd}				
			, #{loginid}				
			, #{customername}			
			, #{dateordered}			
			, #{grade}					
			, #{receiver}				
			, #{receivertelnum}		
			, #{receivercellnum}		
			, #{deliverypostalcode}	
			, #{deliveryaddr1}			
			, #{deliveryaddr2}			
			, #{logisticsno}			
			, #{logisticsname}			
			, #{deliverymemo}			
			, #{productsummary}				
			, #{iscancel}				
			, #{ischangeaddress}		
			, #{isreorder}				
			, #{orderpath}				
			, #{deliveryclasscd}		
			, #{shippingtypecd}				
			, CASE WHEN #{isbeautydelivery} = 'N' THEN 0 ELSE 1 END 		    
			, #{deliveryaddrnew}	
			, 'N'					
			, #{payGb}
		)
	</insert>		
	
	<!-- 출고요청 D     -->
	<insert id="insertWmsTbIfDeliveryOrderItem" parameterType="Delivery" useGeneratedKeys="true" keyProperty="deliveryorderitemno" >
		/*TsbWmsDelivery.insertWmsTbIfDeliveryOrderItem*/
		INSERT INTO iSTYLE24_WmsIf.dbo.TB_IF_DeliveryOrderItem
		(
			  DeliveryOrderNo		-- 배송번호
			, ProviderNo			-- 공급자 번호
			, ProductNo				-- 상품 번호
			, ProductCode			-- 상품 코드
			, ProductName			-- 상품 명
			, ProductTypeCd			-- 상품 타입
			, SKUCode				-- 옵션 코드
			, SKUValue				-- 옵션 값
			, UnitPrice				-- 단가(판매가)
			, Qty					-- 수량
			, StatusCd				-- 배송상태
			, DateLastModified		-- 수정일
			, IsCancel				-- 취소
			, StockMgmtTypeCd		-- 재고관리 타입
			, GiftYn				-- 사은품여부
			, SetProductCode		-- 세트상품코드
			, SetProductYn			-- 세트상품여부
			, SetproductName		-- 세트상품명
			, OrderDtlNo			-- 주문상세번호
			, IfYn					-- I/F여부
			, IfDate				-- I/F일자
			, Cqty					-- 취소수량
			, SetQty				-- 세트수량
			, SetItemQty			-- 세트구성수량
		)
		VALUES 
		(
			  #{deliveryorderno}		-- 배송번호
			, #{providerno}				-- 공급자 번호
			, #{productno}				-- 상품 번호
			, #{productcode}			-- 상품 코드
			, #{productname}			-- 상품 명
			, #{producttypecd}			-- 상품 타입
			, #{skucode}				-- 옵션 코드
			, #{skuvalue}				-- 옵션 값
			, #{unitprice}				-- 단가(판매가)
			, #{qty}					-- 수량
			, #{statuscd}				-- 배송상태
			, GETDATE()						-- 수정일
			, #{iscancel}				-- 취소
			, #{stockmgmttypecd}		-- 재고관리 타입
			, #{giftyn}					-- 사은품여부
			, #{setproductcode}			-- 세트상품코드
			, #{setproductyn}			-- 세트상품여부
			, #{setproductname}			-- 세트상품명
			, #{orderdtlno}				-- 주문상세번호
			, #{ifyn}					-- I/F여부
			, #{ifdate}					-- I/F일자
			, #{cqty}					-- 취소수량
			, #{setqty}					-- 세트수량
			, #{setitemqty}				-- 세트구성수량
		)		
	</insert>		
	
	
	<!-- 회수요청 M     -->
	<insert id="insertWmsRecallDelivery" parameterType="Delivery" useGeneratedKeys="true" keyProperty="recallno" >
		/*TsbWmsDelivery.insertWmsRecallDelivery*/
		INSERT INTO iSTYLE24_WmsIf.dbo.TB_IF_RecallDelivery
		(
			  OrderExceptionNo		-- 주문 예외 번호
			, RecallTypeCd			-- 반품 타입
			, Receiver				-- 받는자
			, ReceiverTelNum		-- 받는자 전화번호
			, ReceiverCellNum		-- 받는자 핸드폰 번호
			, DeliveryPostalCode	-- 우편 번호
			, DeliveryAddr1			-- 기본 주소
			, DeliveryAddr2			-- 상세 주소
			, OrderNo				-- 주문 번호
			, OrderGUID				-- 주문 고유 번호
			, CustomerName			-- 주문자
			, LoginId				-- 아이디
			, CSMemo				-- CS 메모
			, DateCSMemoUpdated		-- CS 메모 변경일
			, DateCreated			-- 생성일
			, IsDeleted				-- 삭제 여부
			, DeliveryAddrNew		-- 도로명 주소
			, RecallRequestYn		-- 회수요청여부
			, IfStat				-- I/F상태
			, IfDate
			, encloseFee			-- 동봉비
			, chgerRtnMemo			-- 반품메모
			, PayGb
		)
		VALUES 
		(
			  #{orderexceptionno}	-- 주문 예외 번호
			, #{recalltypecd}		-- 반품 타입
			, #{receiver}			-- 받는자
			, #{receivertelnum}		-- 받는자 전화번호
			, #{receivercellnum}	-- 받는자 핸드폰 번호
			, #{deliverypostalcode}	-- 우편 번호
			, #{deliveryaddr1}		-- 기본 주소
			, #{deliveryaddr2}		-- 상세 주소
			, #{orderno}			-- 주문 번호
			, (SELECT MAX(AA.OrderGUID) FROM iSTYLE24_WmsIf.dbo.TB_IF_DeliveryOrder AA WHERE AA.OrderNo = #{orderno}) -- 주문 고유 번호
			, #{customername}		-- 주문자
			, #{loginid}			-- 아이디S
			, #{csmemo}				-- cs 메모
			, #{datecsmemoupdated}	-- cs 메모 변경일
			, GETDATE()				-- 생성일
			, #{isdeleted}			-- 삭제 여부
			, #{deliveryaddrnew}	-- 도로명 주소
			, #{recallrequestyn}	-- 회수요청여부
			, #{ifstat}				-- i/f상태
			, GETDATE()				-- i/f 생성일
			, 0						-- 동봉비
			, #{chgerrtnmemo}
			, #{payGb}
		)
	</insert>
	
	<!-- 회수요청 D     -->
	<insert id="insertWmsRecallDeliveryItem" parameterType="Delivery" useGeneratedKeys="true" keyProperty="recallitemno" >
		/*TsbWmsDelivery."insertWmsRecallDeliveryItem"*/
		INSERT INTO iSTYLE24_WmsIf.dbo.TB_IF_RecallDeliveryItem
		(
			  RecallNo			-- 반품 번호
			, ProductNo			-- 상품 번호
			, ProductCode		-- 상품 코드
			, ProductName		-- 상품명
			, SKUCode			-- 옵션 코드
			, SKUValue			-- 옵션 내용
			, RecallQty			-- 수량
			, StatusCd			-- 상태
			, DateCompleted		-- 완료일
			, LogisticsName		-- 택배사 명
			, LogisticsCode     -- 택배사 코드 
			, RecallInvoiceNo	-- 반품 명세서(회수운송장번호)
			, OrderDtlNo		-- 주문상세번호
			, InvoiceNo			-- 원운송장번호
			, IfStat			-- I/F상태
			, IfDate
		)
		VALUES
		(
			  #{recallno}			-- 반품 번호
			, #{productno}			-- 상품 번호
			, #{productcode}		-- 상품 코드
			, #{productname}		-- 상품명
			, #{skucode}			-- 옵션 코드
			, #{skuvalue}			-- 옵션 내용
			, #{recallqty}			-- 수량
			, #{statuscd}			-- 상태
			, #{datecompleted}		-- 완료일
			, #{logisticsname}		-- 택배사 명
			, #{logisticscode}      -- 택배사 코드 
			, #{recallinvoiceno}	-- 반품 명세서(회수운송장번호)
			, #{orderdtlno}			-- 주문상세번호
			, #{invoiceno}			-- 원운송장번호
			, #{ifstat}				-- i/f상태
			, GETDATE()				-- i/f일자
		)

	</insert>
		
	<!-- 회수 송장번호 업데이트    -->
	<update id="updateWmsRecallInvoice" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsRecallInvoice*/
		UPDATE istyle24_Wmsif.dbo.TB_IF_RECALLDELIVERYITEM  SET
			  LogisticsName     = 'CJ 대한통운'
			, RecallInvoiceNo   = #{recallinvoiceno}
			, LogisticsCode     = '05'
			, IfDate            = GETDATE()
		WHERE RecallNo = (SELECT MAX(RecallNo) FROM istyle24_Wmsif.dbo.TB_IF_RECALLDELIVERY A WHERE A.OrderExceptionNo = #{ordChgSq} AND A.OrderNo = #{ordNo} )	
	</update>
		
	<!-- 사은품 취소    -->
	<update id="updateWmsGiftCancel" parameterType="Delivery" >
		/*TsbWmsDelivery.updateWmsGiftCancel*/
		UPDATE iSTYLE24_Wmsif.dbo.TB_IF_DeliveryOrderItem SET
		  IsCancel   = 1
		WHERE DeliveryOrderItemNo = #{deliveryorderitemno}
		  AND GiftYn              = 'Y' 
	</update>
	
</mapper>