package com.fjhx.service;
import com.fjhx.base.BaseService;
import com.fjhx.entity.ApplyPurchase;
import java.math.BigDecimal;
import java.util.List;
/**
*
* 申购单 服务类
*
*
* @author ${author}
* @since 2022-08-25
*/
public interface ApplyPurchaseService extends BaseService {
/**
* 添加申购单
*
* @param applyPurchase 申购对象
*/
void add(ApplyPurchase applyPurchase);
/**
* 发起申购
*
* @param applyPurchaseList 申购列表
* @param flowLinkNo 流程关联编号
*/
void initiateSubscription(List applyPurchaseList, Long flowLinkNo);
/**
* 审批通过
*
* @param flowLinkNo 流程关联编号
*/
void flowPass(Long flowLinkNo);
/**
* 审批不通过
*
* @param flowLinkNo 流程关联编号
*/
void flowNotPass(Long flowLinkNo);
/**
* 申购绑定订单
*
* @param applyPurchaseList 申购列表
* @param orderId 订单id
* @param orderCode 订单编码
* @param supplierId 供应商id
* @param accountPeriod 供应商账期/天
*/
void bindingOrder(List applyPurchaseList, Long orderId, String orderCode, Long supplierId, Integer accountPeriod);
/**
* 到货
*
* @param applyPurchaseId 订单id
* @param arrivalQuantity 到货数量
* @param autoComplete 是否自动更新订单完成
*/
void arrival(Long applyPurchaseId, BigDecimal arrivalQuantity, Boolean autoComplete);
/**
* 结束申购单
*
* @param applyPurchaseId 申购单id
*/
void endApplyPurchase(Long applyPurchaseId);
/**
* 作废申购单
*
* @param applyPurchaseId 申购单id
*/
void discardApplyPurchase(Long applyPurchaseId);
}