package com.style24.admin.biz.dao;

import java.util.Collection;

import org.springframework.dao.DataAccessException;

//import com.style24.persistence.domain.Order;
import com.style24.persistence.domain.Withdraw;
import com.style24.core.support.annotation.ShopDs;
import org.springframework.stereotype.Repository;

/**
 * 회수관리 Dao
 * 
 * @author Daehyoung
 * @since 2020. 02. 06
 */
@ShopDs
@Repository
public interface TsaWithdrawDao {

	/**
	 * 회수등록 - 조회(송장번호용)
	 * 
	 * @param Withdraw
	 * @return Collection<Withdraw>
	 * @author yujung
	 * @since 2020. 02. 11
	 */
	//Collection<Withdraw> getWithdrawRegisterInvoiceList(Withdraw withdraw);

	/**
	 * 회수등록 - 조회(상품코드용)
	 * 
	 * @param Withdraw
	 * @return Collection<Withdraw>
	 * @author yujung
	 * @since 2020. 02. 12
	 */
	//Collection<Withdraw> getWithdrawRegisterGoodsList(Withdraw withdraw);

	/**
	 * 회수등록 - 회수 마스터 등록처리
	 * 
	 * @param Withdraw
	 * @author yujung
	 * @since 2020. 02. 12
	 */
	//void saveWithdrawInfo(Withdraw withdraw);

	/**
	 * 회수등록 - 회수 상세 등록처리
	 * 
	 * @param Withdraw
	 * @author yujung
	 * @since 2020. 02. 12
	 */
	//void createWithdrawDetailInfo(Withdraw withdraw);

	/**
	 * 주문변경 마스터 회수종료일 저장
	 * 
	 * @param Withdraw
	 * @author yujung
	 * @since 2020. 02. 12
	 */
	//void updateOrderChangeInfo(Withdraw withdraw);

	/**
	 * 회수송장번호 수정
	 * 
	 * @param withdraw
	 * @author yujung
	 * @since 2020. 02. 27
	 */
	//void updateRegisterWdInvoiceNo(Withdraw withdraw);

	/**
	 * 회수송장번호 조회
	 * 
	 * @param withdraw
	 * @author yujung
	 * @since 2020. 05. 31
	 */
	//Collection<Withdraw> getWdInvoiceNo(Withdraw withdraw);

	/**
	 * 환불관리 목록
	 * 
	 * @param withdraw
	 * @return Collection<Withdraw>
	 * @author moon
	 * @since 2020. 11. 16
	 */
	Collection<Withdraw> getRefundList(Withdraw withdraw);
	//Collection<Withdraw> getWithdrawRegisterList(Withdraw withdraw);
	/**
	 * 회수관리 회수데이터 삭제처리
	 * 
	 * @param withdraw
	 * @author moon
	 * @since 2020. 11. 16
	 */
	void deleteWithdraw(Withdraw withdraw);

	/**
	 * 회수관리 회수 상세 데이터 삭제처리
	 * 
	 * @param withdraw
	 * @author moon
	 * @since 2020. 11. 16
	 */
	void deleteWithdrawDetail(Withdraw withdraw);

	/**
	 * 환불등록 팝업 목록
	 * 
	 * @param withdraw
	 * @return Collection<Withdraw>
	 * @author moon
	 * @since 2020. 11. 16
	 */
	Collection<Withdraw> getRefundRegisterPopupList(Withdraw withdraw);
	//Collection<Withdraw> getWithdrawRegisterPopupList(Withdraw withdraw);
	/**
	 * 회수관리 아웃바운드 수정
	 * 
	 * @param withdraw
	 * @author yujung
	 * @since 2020. 03. 25
	 */
	//void updateWithdrawOutbound(Withdraw withdraw);

	/**
	 * 주문변경 수정
	 * 
	 * @param withdraw
	 * @author yujung
	 * @since 2020. 03. 25
	 */
	//void updateWithdrawOrderChange(Withdraw withdraw);

	/**
	 * 회수상세 상품정보 수정
	 * 
	 * @param withdraw
	 * @author yujung
	 * @since 2020. 03. 25
	 */
	//void updateWithdrawDetailGoodsInfo(Withdraw withdraw);

	/**
	 * 회수상세 정보 수정
	 * 
	 * @param withdraw
	 * @author yujung
	 * @since 2020. 03. 25
	 */
	//void updateWithdrawDetailInfo(Withdraw withdraw);

	/**
	 * 환불관리 - 상세 정보 조회
	 * 
	 * @param withdraw - 주문변경번호
	 * @return Collection<Withdraw>
	 * @author moon
	 * @since 2020. 11. 16
	 */
	Collection<Withdraw> getRefundDetailList(Withdraw withdraw);

	/**
	 * 회수배송비 등록
	 * 
	 * @param withdraw - 회수배송비 정보
	 * @author yujung
	 * @since 2020. 02. 20
	 */
	//void createWithdrawDeliveryFeeInfo(Withdraw withdraw);

	/**
	 * 쿠폰정보 조회
	 * 
	 * @param withdraw - 쿠폰정보
	 * @author moon
	 * @since 2020. 11. 16
	 */
	Withdraw getCouponInfo(Withdraw withdraw);

	/**
	 * 남은주문 리스트
	 * 
	 * @param withdraw - 주문번호, 주문변경번호
	 * @author moon
	 * @since 2020. 11. 16
	 */
	Collection<Withdraw> getWithdrawRemainOrderDetailList(Withdraw withdraw);

	/**
	 * 회원포인트 이력 등록
	 * 
	 * @param withdraw - 회원 포인트 정보
	 * @author yujung
	 * @since 2020. 02. 24
	 */
	//void createWithdrawCustPointHst(Withdraw withdraw);

	/**
	 * 회원포인트 조회
	 * 
	 * @param custNo
	 * @author yujung
	 * @since 2020. 02. 24
	 */
	//Withdraw getCustPointInfo(int custNo);

	/**
	 * 회원포인트 수정
	 * 
	 * @param withdraw - 포인트정보
	 * @author yujung
	 * @since 2020. 02. 24
	 */
	//void updateWithdrawCustPoint(Withdraw withdraw);

	/**
	 * 주문상세정보 수정
	 * 
	 * @param withdraw - 주문상세 정보
	 * @author yujung
	 * @since 2020. 02. 20
	 */
	//void updateWithdrawOrderDetailInfo(Withdraw withdraw);

	/**
	 * 주문상세이력 등록
	 * 
	 * @param withdraw - 주문상세번호
	 * @author yujung
	 * @since 2020. 02. 20
	 */
	//void createWithdrawOrderDetailHstInfo(Withdraw withdraw);

	/**
	 * 주문상세이력 등록2
	 * 
	 * @param withdraw - 주문상세번호
	 * @author yujung
	 * @since 2020. 02. 20
	 */
	//void createWithdrawOrderDetailHstInfo2(Withdraw withdraw);

	/**
	 * 주문변경상세 수정
	 * 
	 * @param withdraw - 주문상세번호
	 * @author yujung
	 * @since 2020. 02. 20
	 */
	//void updateWithdrawOrderChangeDetailInfo(Withdraw withdraw);

	/**
	 * 정산 등록
	 * 
	 * @param withdraw - 정산 정보
	 * @author yujung
	 * @since 2020. 02. 21
	 */
	//void createWithdrawUsac(Withdraw withdraw);

	/**
	 * 판매분재고 등록
	 * 
	 * @param withdraw - 판매분재고 정보
	 * @author yujung
	 * @since 2020. 02. 21
	 */
	//void createWithdrawSellQty(Withdraw withdraw);

	/**
	 * 환불정보 계산
	 * 
	 * @param ordNo
	 * @return Withdraw
	 * @author yujung
	 * @since 2020. 02. 21
	 */
	//Withdraw getRefundInfo(Long ordNo);

	/**
	 * 주문마스터 수정
	 * 
	 * @param withdraw - 주문상태
	 * @author yujung
	 * @since 2020. 02. 24
	 */
	//void updateWithdrawOrderInfo(Withdraw withdraw);

	/**
	 * 환불정보 등록
	 * 
	 * @param withdraw - 환불정보
	 * @author yujung
	 * @since 2020. 02. 21
	 */
	//void createWithdrawRefund(Withdraw withdraw);

	/**
	 * 결제정보 조회
	 * 
	 * @param ordNo - 결제정보
	 * @return Withdraw
	 * @author yujung
	 * @since 2020. 02. 24
	 */
	//Withdraw getPaymentInfo(Long ordNo);

	/**
	 * 기존결제 정보 수정
	 * 
	 * @param withdraw - 결제정보
	 * @author yujung
	 * @since 2020. 02. 25
	 */
	//void updateWithdrawPayment(Withdraw withdraw);

	/**
	 * 결제정보 등록
	 * 
	 * @param withdraw - 결제정보
	 * @author yujung
	 * @since 2020. 02. 21
	 */
	//void createWithdrawPayment(Withdraw withdraw);

	/**
	 * 남은 상품 정보
	 * 
	 * @param withdraw
	 * @return Withdraw
	 * @author moon
	 * @since 2020. 11. 16
	 */
	Withdraw getRemainGoodsInfo(Withdraw withdraw);

	/**
	 * 남은 회수 수량
	 * 
	 * @param ordChgSq
	 * @return 남은회수수량
	 * @author yujung
	 * @since 2020. 02. 20
	 */
	//int getRemainWithdrawCount(Long ordChgSq);

	/**
	 * 취소가 아닌 수량
	 * 
	 * @param
	 * @throws DataAccessException
	 * @author swkim
	 * @since 2020. 04. 14
	 */
	//public int getOrderNotCancelCnt(Long ordNo);

	/**
	 * 동봉비 수정
	 * 
	 * @param
	 * @throws DataAccessException
	 * @author swkim
	 * @since 2020. 04. 14
	 */
	//public void updateWithdrawEncloseFee(Withdraw withdraw);

	/**
	 * 반품 매출반영 차수
	 * 
	 * @param delvLocCd
	 * @return 반품 매출반영 차수
	 * @author yujung
	 * @since 2020. 02. 20
	 */
	//int getIfOnlineSalesMaxOutSeq(String delvLocCd);

	/**
	 * 반품 매출반영
	 * 
	 * @param
	 * @throws DataAccessException
	 * @author swkim
	 * @since 2020. 05. 11
	 */
	//public void createReturnIfOnlineSales(Withdraw withdraw);

	/**
	 * 주문번호에 대한 합계 금액
	 * 
	 * @param withdraw
	 * @return Withdraw
	 * @author moon
	 * @since 2020. 11. 16
	 */
	Withdraw getOrderDetailSumAmt(String ordNo);

	/**
	 * 환불완료 목록
	 * 
	 * @param 검색조건
	 * @return Collection<Withdraw>
	 * @author yujung
	 * @since 2020. 05. 29
	 */
	//Collection<Withdraw> getRefundCompleteList(Withdraw withdraw);

	/**
	 * 반품신청, 회수수량 비교 데이터
	 * 
	 * @param 검색조건
	 * @return Withdraw
	 * @author moon
	 * @since 2020. 11. 16
	 */
	Withdraw getSumChgQtyWdQty(Withdraw withdraw);

	/**
	 * ERP 환입매출 반영
	 * 
	 * @param 검색조건
	 * @return Withdraw
	 * @author cjs
	 * @since 2020. 08. 04
	 */
	//void createIfEcpTbSalesReturn(Withdraw withdraw);

	/**
	 * 교환출고처 지정대기를 출고처예정상태로 변경
	 * 
	 * @param 검색조건
	 * @return Withdraw
	 * @author cjs
	 * @since 2020. 08. 04
	 */
	//void updateExchangeLocAssignStatus(Withdraw withdraw);

	/**
	 * 아이템 단위 상세정보
	 * 
	 * @param 검색조건
	 * @return Withdraw
	 * @author cjs
	 * @since 2020. 08. 04
	 */
	//Collection<Withdraw> getWithdrawDetailList2(Withdraw withdraw);

	/**
	 * 교환배송비 등록
	 * 
	 * @param TsaOrder
	 * @return
	 * @author cjs
	 * @since 2020. 08. 23
	 */
	//void mergeDeliveryFee(TsaOrder setParams);

}
