package com.dayou.service;

import com.dayou.dto.ItemAddFinanceInvoiceDTO;
import com.dayou.dto.MajorProductionSimpleDTO;
import com.dayou.entity.FinanceInvoice;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dayou.vo.FinanceInvoiceVo;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 财务开票 服务类
 * </p>
 *
 * @author wucl
 * @since 2023-12-08
 */
public interface IFinanceInvoiceService extends IService<FinanceInvoice> {

    Page<FinanceInvoiceVo> selectPage(Page page, FinanceInvoice financeInvoice, String keyword);

    /**
     * 开票信息导出
     * @param financeInvoice 查询条件
     * @param keyword 关键
     * @return List<FinanceInvoiceVo>
     */
    List<FinanceInvoiceVo> exportPage(FinanceInvoice financeInvoice, String keyword);

    FinanceInvoice detail(Long id);

    Boolean add(FinanceInvoice financeInvoice);

    /**
     * 土规开票
     * @param dto 开票信息
     * @return Boolean
     */
    Long itemAdd(ItemAddFinanceInvoiceDTO dto);

    Boolean update(FinanceInvoice financeInvoice);

    Boolean invoiceCheck(FinanceInvoice financeInvoice);

    Boolean delete(Long id);

    List<FinanceInvoice> getList(Long id, Long productionFundId);

    Boolean cancellation(FinanceInvoice financeInvoice);

    List<FinanceInvoiceVo> getInvoiceAmountInfo(MajorProductionSimpleDTO simpleDTO);

    Boolean cancelling(Long id);
}
