using DS.WMS.Core.Application.Dtos; using DS.WMS.Core.Invoice.Dtos; using DS.WMS.Core.Op.Entity; using DS.WMS.Core.Settlement.Entity; using SqlSugar; namespace DS.WMS.Core.Settlement.Dtos { /// /// 提交结算单请求参数 /// public class SettlementRequest where TEntity : SettlementBase { /// /// 结算单 /// public TEntity Settlement { get; set; } /// /// 费用明细(自由结算适用) /// public List? Details { get; set; } /// /// 结算单据信息(付费申请/发票结算适用) /// public List? Documents { get; set; } /// /// 查询条件 /// public string? QueryCondition { get; set; } /// /// 获取当前实例的查询条件 /// /// SqlSugar对象 /// /// 为null时引发 public List GetConditionalModels(ISqlSugarClient client) { if (string.IsNullOrEmpty(QueryCondition)) return []; ArgumentNullException.ThrowIfNull(client, nameof(client)); return client.Utilities.JsonToConditionalModels(QueryCondition); } } /// /// 结算单据 /// public class SettlementDocument { /// /// 单据ID /// public long Id { get; set; } /// /// 仅自由结算使用 /// public BusinessType? BusinessType { get; set; } /// /// 费用对象ID /// public long CustomerId { get; set; } /// /// 费用对象名称 /// public string? CustomerName { get; set; } /// /// 本次RMB结算金额 /// public decimal? SettlementRMB { get; set; } /// /// 本次USD结算金额 /// public decimal? SettlementUSD { get; set; } /// /// 本次其他币别结算金额 /// public decimal? SettlementOther { get; set; } /// /// 汇率(当收/付申请单币别与结算币别一致时,此字段可为null,发票结算需要提前获取原始币别) /// public List? ExchangeRates { get; set; } } }