package com.fjhx.sale.service.contract;

import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
import com.fjhx.sale.entity.contract.po.ContractInvoiceDetails;
import com.ruoyi.common.core.service.BaseService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fjhx.sale.entity.contract.vo.ContractInvoiceDetailsVo;
import com.fjhx.sale.entity.contract.dto.ContractInvoiceDetailsSelectDto;
import com.fjhx.sale.entity.contract.dto.ContractInvoiceDetailsDto;

import java.util.List;


/**
 * <p>
 * 合同发票明细 服务类
 * </p>
 *
 * @author 
 * @since 2023-09-08
 */
public interface ContractInvoiceDetailsService extends BaseService<ContractInvoiceDetails> {

    /**
     * 合同发票明细分页
     */
    Page<ContractInvoiceDetailsVo> getPage(ContractInvoiceDetailsSelectDto dto);

    /**
     * 合同发票明细明细
     */
    ContractInvoiceDetailsVo detail(Long id);

    /**
     * 合同发票明细新增
     */
    void add(ContractInvoiceDetailsDto contractInvoiceDetailsDto);

    /**
     * 合同发票明细编辑
     */
    void edit(ContractInvoiceDetailsDto contractInvoiceDetailsDto);

    /**
     * 合同发票明细删除
     */
    void delete(Long id);


    /**
     * 根据发票ID查询明细
     * @param invoiceId
     * @return
     */
    List<ContractInvoiceDetailsVo> getDetail(Long invoiceId);

    /**
     * 根据合同ids查询总发票金额
     * @param contractIds
     * @return
     */
    List<ContractInvoiceDetailsVo> getSumMoneyByContractIds(List<Long> contractIds);
}
