ds8-solution-pro/ds-wms-service/DS.WMS.Core/Invoice/Interface/IInvoiceService`1.cs

64 lines
2.0 KiB
C#

using DS.Module.Core;
using DS.WMS.Core.Application.Dtos;
using DS.WMS.Core.Invoice.Dtos;
namespace DS.WMS.Core.Invoice.Interface
{
/// <summary>
/// 开票基础服务定义
/// </summary>
/// <typeparam name="TEntity">实体的类型声明</typeparam>
public interface IInvoiceService<TEntity> where TEntity : Entity.Invoice, new()
{
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
Task<DataResult<InvoiceList>> GetListAsync(PageRequest<NumberQuery> request);
/// <summary>
/// 获取发票详情
/// </summary>
/// <param name="id">发票ID</param>
/// <returns></returns>
Task<DataResult<InvoiceDto>> GetAsync(long id);
/// <summary>
/// 提交发票开票
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
Task<DataResult<TEntity>> SaveAsync(InvoiceRequest<TEntity> request);
/// <summary>
/// 删除发票明细
/// </summary>
/// <param name="ids">发票明细ID</param>
/// <returns></returns>
Task<DataResult> DeleteInvoiceDetailAsync(params long[] ids);
/// <summary>
/// 删除发票明细
/// </summary>
/// <param name="ids">明细ID</param>
/// <returns></returns>
Task<DataResult> DeleteDetailAsync(params long[] ids);
/// <summary>
/// 删除发票
/// </summary>
/// <param name="ids">发票ID</param>
/// <returns></returns>
Task<DataResult> DeleteAsync(params long[] ids);
/// <summary>
/// 设置发票的锁定状态
/// </summary>
/// <param name="isLocked">是否锁定</param>
/// <param name="ids">发票ID</param>
/// <returns></returns>
Task<DataResult> SetLockAsync(bool isLocked, params long[] ids);
}
}