package com.fjhx.purchase.service.invoice;

import com.fjhx.purchase.entity.invoice.po.InvoiceDetails;
import com.ruoyi.common.core.service.BaseService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
import com.fjhx.purchase.entity.invoice.dto.InvoiceDetailsSelectDto;
import com.fjhx.purchase.entity.invoice.dto.InvoiceDetailsDto;

import java.util.List;
import java.util.Map;


/**
 * <p>
 * 发票明细 服务类
 * </p>
 *
 * @author 
 * @since 2023-04-12
 */
public interface InvoiceDetailsService extends BaseService<InvoiceDetails> {

    /**
     * 发票明细分页
     */
    Page<InvoiceDetailsVo> getPage(InvoiceDetailsSelectDto dto);

    /**
     * 发票明细明细
     */
    InvoiceDetailsVo detail(Long id);

    /**
     * 发票明细新增
     */
    void add(InvoiceDetailsDto invoiceDetailsDto);

    /**
     * 发票明细编辑
     */
    void edit(InvoiceDetailsDto invoiceDetailsDto);

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

    /**
     * 根据采购单ids查询总发票金额
     * @param purchaseIds
     * @return
     */
    List<InvoiceDetailsVo> getSumMoneyByPurchaseIds(List<Long> purchaseIds);

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