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.MakeAccept;
import com.uas.platform.b2b.model.MakeAcceptItem;
import com.uas.platform.core.model.PageInfo;

public interface MakeAcceptService {
	/**
	 * 批量保存、委外验收单
	 * 
	 * @param changeItems
	 * @return
	 */
	public void save(List<MakeAcceptItem> acceptItems);

	/**
	 * 用变更单ID查找客户委外验收
	 * 
	 * @param id
	 * @return
	 */
	public MakeAccept findById(Long id);

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

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

	/**
	 * 获取需要上传（到卖方）的未上传验收入库单
	 * 
	 * @return
	 */
	public List<MakeAccept> findNotUpload();

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

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

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

	/**
	 * 将批量更改价格转换成委外验收单
	 *
	 * @param prodInOuts
	 * @return
	 */
	List<MakeAcceptItem> convertPirceForProdIn(List<ProdInOutRefreshPrice> prodInOuts);
}
