package com.uas.platform.b2b.service;

import java.util.List;

import com.uas.platform.b2b.erp.model.ProdInOutRefreshPrice;
import org.springframework.data.domain.Page;

import com.uas.platform.b2b.model.MakeReturn;
import com.uas.platform.b2b.model.MakeReturnItem;
import com.uas.platform.core.model.PageInfo;

public interface MakeReturnService {
	/**
	 * 批量保存、修改客户委外验退单
	 * 
	 * @param changeItems
	 * @return
	 */
	public void save(List<MakeReturnItem> returnItems);

	/**
	 * 获取需要上传（到卖方）的未上委外验退单
	 * 
	 * @return
	 */
	public List<MakeReturn> findNotUpload();

	/**
	 * 上传好需要上传的客户委外验退单后修改单据的上传状态
	 * 
	 * @param idArray
	 */
	public void onUploadSuccess(String[] idArray);

	/**
	 * 获取需要上传（到卖方）的反过账委外验退单
	 * 
	 * @return
	 */
	public List<MakeReturn> getNonPosting();

	/**
	 * 删除已上传（到卖方）的反过账委外验退单
	 * 
	 * @param idArray
	 */
	public void onNonPostingUploadSuccess(String[] idArray);

	/**
	 * 批量反过账客户委外验退单
	 * 
	 * @param changeItems
	 * @return
	 */
	public void nonPosting(List<MakeReturn> returns);

	/**
	 * 分页查找委外验退单据
	 * 
	 * @param pageInfo
	 * @param keyword
	 * @return
	 */
	public Page<MakeReturn> findAllByPageInfo(PageInfo pageInfo, String keyword, Long fromDate, Long endDate);

	/**
	 * 用变更单ID查找客户采购验收
	 * 
	 * @param id
	 * @return
	 */
	public MakeReturn findById(Long id);

	/**
	 * 批量更新价格转换成委外验退单
	 *
	 * @param prodInOuts
	 * @return
	 */
	List<MakeReturnItem> convertPirceForProdIn(List<ProdInOutRefreshPrice> prodInOuts);
}
