package com.uas.platform.b2b.service;

import java.util.List;

import org.springframework.data.domain.Page;

import com.uas.platform.b2b.model.PurchaseAccept;
import com.uas.platform.b2b.model.PurchaseAcceptItem;
import com.uas.platform.b2b.model.SearchFilter;
import com.uas.platform.core.model.PageInfo;

public interface PurchaseAcceptService {

	/**
	 * 批量保存、修改客户采购验收单
	 * 
	 * @param changeItems
	 * @return
	 */
	public void save(List<PurchaseAcceptItem> acceptItems);
	
	/**
	 * 批量反过账客户采购验收单
	 * 
	 * @param changeItems
	 * @return
	 */
	public void nonPosting(List<PurchaseAccept> accepts);
	
	/**
	 * 获取需要上传（到卖方）的以反过账的验收单
	 * @return
	 */
	public List<PurchaseAccept> getNonPosting();
	
	/**
	 * 获取需要上传（到卖方）的未上传验收入库单
	 * @return
	 */
	public List<PurchaseAccept> findNotUpload();

	/**
	 * 删除已上传（到卖方）的反过账验收单
	 * @param idArray
	 */
	public void onNonPostingUploadSuccess(String[] idArray);
	
	/**
	 * 上传好需要上传的客户采购验收单后修改单据的上传状态
	 * @param idArray
	 */
	public void onUploadSuccess(String[] idArray);
	

	/**
	 * 分页查找客户采购验收，包括明细
	 * 
	 * @param pageInfo
	 * @param keyword 查找关键字
	 * @return
	 */
	public Page<PurchaseAccept> findAllByPageInfo(PageInfo pageInfo, SearchFilter filter);
	
	/**
	 * 用客户采购验收单ID查找客户采购验收
	 * 
	 * @param id
	 * @return
	 */
	public PurchaseAccept findById(Long id);
}
