You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

169 lines
5.2 KiB
C#

using System.Collections.Generic;
using System.Runtime.Serialization;
using DS.Module.Core.Data;
using DS.WMS.Core.Info.Entity;
using SqlSugar;
namespace DS.WMS.Core.Application.Entity
{
/// <summary>
/// 申请相关业务基类
/// </summary>
public abstract class ApplicationBase : BaseOrgModelV2<long>
{
/// <summary>
/// 申请单编号
/// </summary>
[SugarColumn(ColumnDescription = "申请单编号", Length = 50, IsNullable = false)]
public string ApplicationNO { get; set; } = string.Empty;
/// <summary>
/// 申请单状态
/// </summary>
[SugarColumn(ColumnDescription = "申请单状态", IsNullable = false)]
public virtual int Status { get; set; }
/// <summary>
/// 客户ID
/// </summary>
[SugarColumn(ColumnDescription = "客户ID", IsNullable = false)]
public long CustomerId { get; set; }
/// <summary>
/// 客户
/// </summary>
[Navigate(NavigateType.OneToOne, nameof(CustomerId))]
public InfoClient? Customer { get; set; }
/// <summary>
/// 客户名称
/// </summary>
[SugarColumn(ColumnDescription = "客户名称", Length = 200)]
public string? CustomerName { get; set; }
/// <summary>
/// 客户银行账号ID
/// </summary>
[SugarColumn(ColumnDescription = "客户银行账号ID", IsNullable = true)]
public long? CustomerBankId { get; set; }
/// <summary>
/// 客户银行账号
/// </summary>
[Navigate(NavigateType.OneToOne, nameof(CustomerBankId))]
public InfoClientBank? CustomerBank { get; set; }
/// <summary>
/// 币别
/// </summary>
[SugarColumn(ColumnDescription = "币别", IsNullable = true, Length = 3)]
public string? Currency { get; set; }
/// <summary>
/// 所属分部
/// </summary>
[SugarColumn(ColumnDescription = "所属分部", IsNullable = true)]
public long? SaleDeptId { get; set; }
/// <summary>
/// 费用明细
/// </summary>
[Navigate(NavigateType.OneToMany, nameof(ApplicationDetail.ApplicationId))]
public List<ApplicationDetail> Details { get; set; } = [];
///// <summary>
///// 新增的费用明细
///// </summary>
//[IgnoreDataMember, SugarColumn(IsIgnore = true)]
//public List<ApplicationDetail> NewDetails => Details.FindAll(x => x.Id == 0);
[IgnoreDataMember, SugarColumn(IsIgnore = true)]
public int DetailCount { get; set; }
}
/// <summary>
/// 申请单扩展基类
/// </summary>
public class ApplicationForm : ApplicationBase
{
/// <summary>
/// 审核人
/// </summary>
[SugarColumn(ColumnDescription = "审核人", IsNullable = true)]
public long? AuditerId { get; set; }
/// <summary>
/// 审核人名称
/// </summary>
[SugarColumn(ColumnDescription = "审核人名称", IsNullable = true)]
public string? AuditerName { get; set; }
/// <summary>
/// 审核时间
/// </summary>
[SugarColumn(ColumnDescription = "审核时间", IsNullable = true)]
public DateTime? AuditTime { get; set; }
/// <summary>
/// 审核备注
/// </summary>
[SugarColumn(ColumnDescription = "审核备注", Length = 200, IsNullable = true)]
public string? AuditRemark { get; set; }
/// <summary>
/// 驳回原因
/// </summary>
[SugarColumn(ColumnDescription = "驳回原因", Length = 200, IsNullable = true)]
public string? Reason { get; set; }
/// <summary>
/// 是否已打印
/// </summary>
[SugarColumn(ColumnDescription = "是否已打印", DefaultValue = "0")]
public bool IsPrinted { get; set; }
/// <summary>
/// 打印次数
/// </summary>
[SugarColumn(ColumnDescription = "打印次数", DefaultValue = "0")]
public int PrintTimes { get; set; }
/// <summary>
/// 打印人
/// </summary>
[SugarColumn(ColumnDescription = "打印人", IsNullable = true)]
public long? PrinterId { get; set; }
/// <summary>
/// 打印人名称
/// </summary>
[SugarColumn(ColumnDescription = "打印人名称", IsNullable = true)]
public string? PrinterName { get; set; }
/// <summary>
/// 打印时间
/// </summary>
[SugarColumn(ColumnDescription = "打印时间", IsNullable = true)]
public DateTime? PrintTime { get; set; }
/// <summary>
/// 发票号
/// </summary>
[SugarColumn(ColumnDescription = "发票号")]
public string? InvoiceNO { get; set; }
/// <summary>
/// 发票日期
/// </summary>
[SugarColumn(ColumnDescription = "发票日期")]
public DateTime? InvoiceDate { get; set; }
/// <summary>
/// 开票金额
/// </summary>
[SugarColumn(ColumnDescription = "开票金额")]
public decimal? InvoiceAmount { get; set; }
}
}