package com.fjhx.sale.service.purchase;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fjhx.purchase.entity.pay.vo.PayVo;
import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseDto;
import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseSelectDto;
import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
import com.fjhx.sale.entity.purchase.vo.EhsdPurchaseVo;
import com.ruoyi.common.core.service.BaseService;

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


/**
 * <p>
 * ehsd采购表 服务类
 * </p>
 *
 * @author 
 * @since 2023-05-17
 */
public interface EhsdPurchaseService extends BaseService<EhsdPurchase> {

    /**
     * ehsd采购表分页
     */
    Page<EhsdPurchaseVo> getPage(EhsdPurchaseSelectDto dto);

    /**
     * ehsd采购表明细
     */
    EhsdPurchaseVo detail(Long id);

    /**
     * 尔泓采购付款明细
     */
    PayVo payDetail(Long id);

    /**
     * ehsd采购表新增
     */
    void add(EhsdPurchaseDto ehsdPurchaseDto);

    /**
     * ehsd采购表编辑
     */
    void edit(EhsdPurchaseDto ehsdPurchaseDto);

    /**
     * ehsd采购表删除
     */
    void delete(Long id);

    /**
     * 采购合同作废
     */
    void cancellation(Long id);

    void updateSubscribeStatus(Long businessId);

    /**
     * 根据供应商查询无发票的采购合同
     */
    List<EhsdPurchaseVo> getListBySupplyId(String supplyId);

    boolean updatePurchaseId(Long id, Long newId, Long userId, Long oldPurchaseId);

    /**
     * 获取产品采购指导价
     */
    Map<Long, Map<String, Object>> getProductPriceInfo(EhsdPurchaseDto dto);

    List<EhsdPurchase> getNoInvoiceListBySupplyId(String supplyId);
}
