package com.lanyotech.pps.service;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import com.easyjf.core.support.query.IQueryObject;
import com.easyjf.web.tools.IPageList;
import com.lanyotech.pps.domain.PurchaseBill;
import com.lanyotech.pps.query.PurchaseItemQuery;
/**
* PurchaseBillService
* @author EasyJWeb 1.0-m2
* $Id: PurchaseBillService.java,v 0.0.1 2010-6-13 18:52:19 EasyJWeb 1.0-m2 Exp $
*/
public interface IPurchaseBillService {
/**
* 保存一个PurchaseBill,如果保存成功返回该对象的id,否则返回null
*
* @param instance
* @return 保存成功的对象的Id
*/
Long addPurchaseBill(PurchaseBill instance);
/**
* 根据一个ID得到PurchaseBill
*
* @param id
* @return
*/
PurchaseBill getPurchaseBill(Long id);
/**
* 删除一个PurchaseBill
* @param id
* @return
*/
boolean delPurchaseBill(Long id);
/**
* 批量删除PurchaseBill
* @param ids
* @return
*/
boolean batchDelPurchaseBills(List<Serializable> ids);
/**
* 通过一个查询对象得到PurchaseBill
*
* @param properties
* @return
*/
IPageList getPurchaseBillBy(IQueryObject queryObject);
/**
* 更新一个PurchaseBill
* @param id 需要更新的PurchaseBill的id
* @param dir 需要更新的PurchaseBill
*/
boolean updatePurchaseBill(Long id,PurchaseBill instance);
/**
* 删除采购单明细条目
* @param id
* @return
*/
boolean delPurchaseBillItem(Long id);
/**
* 采购统计分析
* @param query
* @param groupBy
* @return
*/
List<Map> statistics(PurchaseItemQuery query,String groupBy);
}