package com.hzs.scm.pub;

import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.EApprovalBusiness;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.scm.ic.IcAvailableNum;
import com.hzs.common.domain.scm.ic.ext.IcAvailableNumExt;
import com.hzs.scm.pub.dto.BillDTO;
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;

import java.util.List;

/**
 * 供应链单据对外接口发布
 */
public interface IScmBillServiceApi {

    /**
     * 活动服务信息处理回调
     *
     * @param approvalBusinessResultDTO 参数
     * @return
     */
    R<Boolean> approvalCallback(ApprovalBusinessResultDTO approvalBusinessResultDTO);

    /*
     *  查询单据信息
     **/
    R<List<BillDTO>> queryBillDtoByCondition(EApprovalBusiness eApprovalBusiness, String businessCode);

    /*
     *  下单时验证可用量
     **/
    R<List<IcAvailableNumExt>> queryAvailableNumByProduct(List<IcAvailableNum> availableNumList);

    /*
     *  更新可用量
     **/
    R<Boolean> updateDeductIcAvailableNumByList(List<IcAvailableNumExt> availableNumList);

    /*
     *  更新单据号规则
     **/
    R<Boolean> updateScmBillNoNextValue();

    /*
     *  撤单、退单回退可用量
     **/
    R<Boolean> backSaOrderAvailable(SaOrderExt saOrderExt);

}
