using DS.Module.Core;
using DS.WMS.Core.Fee.Dtos;
using DS.WMS.Core.Fee.Entity;
using DS.WMS.Core.Op.Entity;
namespace DS.WMS.Core.Fee.Interface;
///
/// 费用记录定义
///
public interface IFeeRecordService
{
///
/// 列表
///
///
///
Task>> GetListByPageAsync(PageRequest request);
///
/// 根据查询条件获取费用数据
///
///
///
Task>> GetListAsync(string query);
///
/// 获取已申请修改的费用记录值
///
/// 费用记录ID
///
Task> GetModifyValue(long id);
///
/// 提交
///
/// 要提交的费用记录
/// 是否排除总价为零的费用,默认为false
/// 是否使用事务,默认为true
///
Task SaveAsync(IEnumerable items, bool excludeZeroFee = false, bool useTransaction = true);
///
/// 费用保存后提交审核
///
/// 要提交的费用记录
/// 是否排除总价为零的费用
/// 是否使用事务
///
Task SaveAndSubmitAsync(IEnumerable items, bool excludeZeroFee = false, bool useTransaction = true);
///
/// 根据费用模板引入
///
/// 业务ID
/// 业务类型
/// 模板ID
///
Task CreateByTemplateAsync(long bid, BusinessType type, params long[] tidArray);
///
/// 删除
///
///
///
Task DeleteAsync(params long[] ids);
///
/// 发起审批工作流
///
/// 审批类型
/// 备注
/// 费用记录ID
///
Task SubmitForApprovalAsync(TaskBaseTypeEnum auditType, string remark, params long[] idArray);
///
/// 发起费用修改申请
///
/// 费用修改信息
///
Task SubmitForModificationAsync(IEnumerable items);
///
/// 撤销审批
///
/// 费用记录ID
///
Task WithdrawAsync(params long[] ids);
///
/// 发起整票审核
///
/// 业务ID
/// 业务类型
///
Task SubmitBusinessAuditAsync(long bid, BusinessType type);
///
/// 撤销整票审批
///
/// 业务ID
/// 业务类型
///
Task WithdrawBusinessAsync(long bid, BusinessType type);
///
/// 回写业务表费用状态
///
///
/// 业务ID
/// 业务类型
///
Task WriteBackStatusAsync(long businessId, BusinessType businessType);
///
/// 获取费用打印信息
///
/// 数据提供程序
/// 业务类型
/// 费用记录ID
///
Task> GetPrintInfoAsync(string providerName, BusinessType businessType, params long[] idArray);
///
/// 设置发票启用状态
///
/// 是否启用
/// 费用记录ID
///
Task SetInvoiceEnabledAsync(bool enabled, params long[] idArray);
}