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; }
}
}