using DS.Module.Core;
using Masuit.Tools.Systems;
using SqlSugar;
namespace DS.WMS.Core.Fee.Entity
{
///
/// 往来单位费用模板明细
///
[SugarTable("fee_cust_template_detail", "往来单位费用模板明细")]
public class FeeCustTemplateDetail
{
///
/// 模板ID
///
[SugarColumn(ColumnDescription = "模板ID", IsNullable = false)]
public long TemplateId { get; set; }
///
/// 所属模板
///
[Navigate(NavigateType.OneToOne, nameof(TemplateId))]
public FeeCustTemplate? Template { get; set; }
///
/// 主键ID
///
[SugarColumn(IsPrimaryKey = true)]
public long Id { get; set; }
///
/// 结算对象Id
///
[SugarColumn(ColumnDescription = "结算对象Id", IsNullable = false)]
public long CustomerId { get; set; }
///
/// 结算对象
///
[SugarColumn(ColumnDescription = "结算对象", Length = 100, IsNullable = false)]
public string CustomerName { get; set; } = string.Empty;
///
/// 结算对象类型
///
[SugarColumn(ColumnDescription = "结算对象类型", IsNullable = true)]
public string? CustomerType { get; set; }
///
/// 费用Id
///
[SugarColumn(ColumnDescription = "费用Id")]
public long FeeId { get; set; }
///
/// 费用代码 录入费用是作为检索
///
[SugarColumn(ColumnDescription = "费用代码", Length = 50, IsNullable = true)]
public string? FeeCode { get; set; }
///
/// 费用名称
///
[SugarColumn(ColumnDescription = "费用名称", Length = 100, IsNullable = false)]
public string FeeName { get; set; } = string.Empty;
///
/// 费用类型
///
[SugarColumn(ColumnDescription = "费用类型", IsNullable = false)]
public FeeType FeeType { get; set; }
///
/// 费用类型文本
///
[SugarColumn(IsIgnore = true)]
public string FeeTypeText => FeeType.GetDescription();
///
/// 费用标准
///
[SugarColumn(ColumnDescription = "费用标准", Length = 20, IsNullable = true)]
public string? Unit { get; set; }
///
/// 是否箱型
///
[SugarColumn(ColumnDescription = "是否箱型", DefaultValue = "0")]
public bool IsCtn { get; set; }
///
/// 币别
///
[SugarColumn(ColumnDescription = "币别", Length = 100, IsNullable = false)]
public string Currency { get; set; } = string.Empty;
///
/// 单价
///
[SugarColumn(ColumnDescription = "单价", IsNullable = true, Length = 18, DecimalDigits = 2, DefaultValue = "0")]
public decimal? UnitPrice { get; set; }
///
/// 汇率,为空时取默认汇率
///
[SugarColumn(ColumnDescription = "汇率", IsNullable = true, Length = 18, DecimalDigits = 4)]
public decimal? ExchangeRate { get; set; }
///
/// 费用默认税率
///
[SugarColumn(ColumnDescription = "费用默认税率", IsNullable = true, Length = 18, DecimalDigits = 4, DefaultValue = "0")]
public decimal? TaxRate { get; set; }
///
/// 财务税率
///
[SugarColumn(ColumnDescription = "财务税率", IsNullable = true, Length = 18, DecimalDigits = 4, DefaultValue = "0")]
public decimal? AccTaxRate { get; set; }
///
/// 税额
///
[SugarColumn(ColumnDescription = "税额", IsNullable = true, Length = 18, DecimalDigits = 4, DefaultValue = "0")]
public decimal? Tax { get; set; }
///
/// 含税单价
///
[SugarColumn(ColumnDescription = "含税单价", IsNullable = true, Length = 18, DecimalDigits = 2, DefaultValue = "0")]
public decimal? TaxUnitPrice { get; set; }
///
/// 是否开票
///
[SugarColumn(ColumnDescription = "是否开票", DefaultValue = "0")]
public bool IsInvoice { get; set; }
///
/// 是否垫付费用
///
[SugarColumn(ColumnDescription = "是否垫付费用", DefaultValue = "0")]
public bool IsAdvancedPay { get; set; }
///
/// 创建时间
///
[SugarColumn(ColumnDescription = "创建时间", IsNullable = false)]
public DateTime CreateTime { get; set; }
///
/// 创建人
///
[SugarColumn(ColumnDescription = "创建人", IsNullable = false)]
public long CreateBy { get; set; }
}
}