package nccloud.pubitf.ic.pub.service;

import nc.vo.ic.general.define.ICBillHeadVO;
import nc.vo.ic.general.define.ICBillVO;
import nc.vo.ic.transtype.TransTypeExtendVO;
import nc.vo.pub.ISuperVO;
import nc.vo.scmpub.res.billtype.ICBillType;
import nccloud.dto.ic.pub.entity.BillVOWithExtendInfo;

/**
 * 库存单据查询接口
 * @author hujieh
 *
 */
public interface IICBillVOQueryService {

    /**
     * 根据父类主键，查询聚合VO
     * @param hids
     * @return
     */
    public ICBillVO[] query(ICBillType billtype, String[] hids);
    /**
     * 根据主键查询表头信息
     * @param T
     * @param hids
     * @return
     *
     */
    public ICBillHeadVO[] query(Class<?> T,String[] hids);

    /**
     * 查询库存单据,并且包含扩展信息
     * @param billtype
     * @param hid
     * @return
     */
    public BillVOWithExtendInfo queryBillExt(ICBillType billtype, String hid);
    public BillVOWithExtendInfo[] queryBillDev(ICBillType billtype, String[] hids);
    /**
     *查询交易类型扩展属性vo
     * @param pk
     * @return
     *
     */
    public TransTypeExtendVO qryTransTypeExtendVOByPK(String pk);

    /**
     * 库存出入库单据根据表头vo，补充toSign(是否可以签字)标志并返回
     * @param headvos
     * @return
     */
    public ICBillHeadVO[] queryHeadWithInfo(ICBillType billtype, ISuperVO[] headvos);

    /**
     * 查询库存单据,并且包含扩展信息
     * @param vo
     * @return
     */
    public BillVOWithExtendInfo queryBillExtByVO(ICBillVO vo);
}
