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);
///
/// 提交
///
/// 要提交的费用记录
/// 是否排除总价为零的费用
///
Task SaveAsync(IEnumerable items, bool excludeZeroFee = false);
///
/// 根据费用模板引入
///
/// 业务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 WriteBackStatusAsync(long businessId, BusinessType businessType);
///
/// 获取费用核算单打印信息
///
/// 业务类型
/// 费用记录ID
///
Task> GetPrintInfoAsync(BusinessType businessType, params long[] idArray);
///
/// 设置发票启用状态
///
/// 是否启用
/// 费用记录ID
///
Task SetInvoiceEnabledAsync(bool enabled, params long[] idArray);
}