package com.uas.platform.b2b.service;

import java.util.List;

import org.springframework.data.domain.Page;

import com.uas.platform.b2b.erp.model.QuotationDown;
import com.uas.platform.b2b.model.Attach;
import com.uas.platform.b2b.model.PurchaseInquiry;
import com.uas.platform.b2b.model.PurchaseInquiryItem;
import com.uas.platform.core.model.PageInfo;

public interface PurchaseInquiryService {

	/**
	 * 批量保存、修改采购询价
	 * 
	 * @param inquiryItems
	 *            询价明细
	 * @return
	 */
	public void save(List<PurchaseInquiryItem> inquiryItems);

	/**
	 * 附件ID写到询价单
	 * 
	 * @return
	 */
	public void saveAttach(List<Attach> attachs);

	/**
	 * 分页查找询价单
	 * 
	 * @param pageInfo
	 * @return
	 */
	public Page<PurchaseInquiryItem> findAllByPageInfo(PageInfo pageInfo);

	/**
	 * 用询价单ID查找询价单
	 * 
	 * @param id
	 * @return
	 */
	public PurchaseInquiry findById(Long id);

	/**
	 * 用询价单明细ID查找询价单明细
	 * 
	 * @param id
	 * @return
	 */
	public PurchaseInquiryItem findItemByItemId(Long itemId);

	/**
	 * 查找所有待上传到买家ERP的报价信息
	 * 
	 * @return
	 */
	List<PurchaseInquiryItem> findNotUploadReply();

	/**
	 * 报价信息成功传到买家ERP之后
	 * 
	 * @param idArray
	 */
	public void onReplyUploadSuccess(String[] idArray);

	/**
	 * 报价信息（不）采纳之后，写到平台
	 * 
	 * @param inquiryItems
	 */
	public void onReplyDecide(List<PurchaseInquiryItem> inquiryItems);

	/**
	 * 查找所有待上传到卖家ERP的客户询价明细
	 * 
	 * @return
	 */
	List<PurchaseInquiryItem> findNotUploadInquiry();

	/**
	 * 查找所有待上传到卖家ERP的报价信息
	 * 
	 * @return
	 */
	List<PurchaseInquiryItem> findNotUploadInquiryReply();

	/**
	 * 平台的客户询价单传到供应商ERP之后，修改平台里面的询价单的上传状态
	 * 
	 * @param idArray
	 */
	public void onQuotationDownSuccess(String[] idArray);

	/**
	 * 平台的客户询价单的报价信息传到供应商ERP之后，修改平台里面的询价单的报价信息上传状态
	 * 
	 * @param idArray
	 */
	public void onReplyDownSuccess(String[] idArray);

	/**
	 * 保存编辑的回复信息
	 * 
	 * @param inquiryItem
	 */
	public void save(PurchaseInquiryItem inquiryItem);

	/**
	 * 来自供应商ERP端的报价
	 * 
	 * @param downs
	 */
	public void reply(List<QuotationDown> downs);

	/**
	 * B2B回复报价
	 * 
	 * @param inquiryItem
	 */
	public void reply(PurchaseInquiryItem inquiryItem);

	/**
	 * 查找所有待上传到卖家ERP的报价信息的采纳结果
	 * 
	 * @return
	 */
	List<PurchaseInquiryItem> findNotUploadInquiryReplyDecide();

	/**
	 * 平台的客户询价单的报价信息的采纳结果传到供应商ERP之后，修改平台里面的采纳结果上传状态
	 * 
	 * @param idArray
	 */
	public void onReplyDecideDownSuccess(String[] idArray);

	/**
	 * 获取待报价的客户询价单条数
	 * 
	 * @return
	 */
	public int getOnhandCount();

	/**
	 * 用询价单明细ID查找同产品的报价历史
	 * 
	 * @param id
	 * @return
	 */
	public List<PurchaseInquiryItem> findHistoryByItemId(Long itemId);

}
