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.

200 lines
7.3 KiB
C#

using System.ComponentModel;
using DS.Module.Core;
using DS.Module.Core.Data;
using DS.Module.Core.Enums;
using SqlSugar;
namespace DS.WMS.Core.Op.Entity
{
/// <summary>
/// 业务相关费用状态表
/// </summary>
[SqlSugar.SugarTable("op_business_fee_status", "业务相关费用状态表")]
public class BusinessFeeStatus : BaseModel<long>
{
/// <summary>
/// 业务Id
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "业务Id", IsNullable = false, Length = 100)]
public long BusinessId { get; set; }
/// <summary>
/// 业务类型 1.海运出口
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "业务类型 1.海运出口", IsNullable = false, DefaultValue = "1")]
public BusinessType BusinessType { get; set; } = BusinessType.OceanShippingExport;
/// <summary>
/// 应收费用状态
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "应收费用状态", IsNullable = false, DefaultValue = "0")]
public BillFeeStatus ARFeeStatus { get; set; } = BillFeeStatus.NotEntered;
/// <summary>
/// 应付费用状态
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "应付费用状态", IsNullable = false, DefaultValue = "0")]
public BillFeeStatus APFeeStatus { get; set; } = BillFeeStatus.NotEntered;
/// <summary>
/// 应收开票状态
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "应收开票状态", IsNullable = false, DefaultValue = "0")]
public BillInvoiceStatus ARInvoiceStatus { get; set; } = BillInvoiceStatus.NotIssued;
/// <summary>
/// 应付开票状态
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "应付开票状态", IsNullable = false, DefaultValue = "0")]
public BillInvoiceStatus APInvoiceStatus { get; set; } = BillInvoiceStatus.NotIssued;
/// <summary>
/// 应收对账状态
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "应收对账状态", IsNullable = false, DefaultValue = "0")]
public BillCheckStatusEnum ARCheckStatus { get; set; } = BillCheckStatusEnum.NotChecked;
/// <summary>
/// Desc:是否业务锁定
/// </summary>
[SugarColumn(ColumnDescription = "是否业务锁定", DefaultValue = "0")]
public bool? IsBusinessLocking { get; set; } = false;
/// <summary>
/// Desc:是否费用锁定
/// </summary>
[SugarColumn(ColumnDescription = "是否费用锁定", DefaultValue = "0")]
public bool? IsFeeLocking { get; set; } = false;
/// <summary>
/// 整单费用审核状态
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "整单费用审核状态", IsNullable = true, DefaultValue = "0")]
public BillAuditStatus BillAuditStatus { get; set; } = 0;
/// <summary>
/// 整单费用状态时间
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "整单费用状态时间", IsNullable = true)]
public DateTime BillFeeStatusTime { get; set; }
[SugarColumn(ColumnDescription = "当前审批工作流ID", IsNullable = true)]
public long? FlowId { get; set; }
/// <summary>
/// Desc:业务锁定人Id
/// </summary>
[SugarColumn(ColumnDescription = "业务锁定人Id", IsNullable = true, DefaultValue = "0")]
public long BusinessLockingUserId { get; set; }
/// <summary>
/// Desc:业务锁定人
/// </summary>
[SugarColumn(ColumnDescription = "业务锁定人", IsNullable = true, Length =100)]
public string BusinessLockingUserName { get; set; }
/// <summary>
/// 业务锁定时间
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "业务锁定时间", IsNullable = true)]
public DateTime BusinessLockingTime { get; set; }
/// <summary>
/// Desc:业务解锁人Id
/// </summary>
[SugarColumn(ColumnDescription = "业务解锁人Id", IsNullable = true, DefaultValue = "0")]
public long BusinessUnLockingUserId { get; set; }
/// <summary>
/// Desc:业务解锁人
/// </summary>
[SugarColumn(ColumnDescription = "业务解锁人", IsNullable = true, Length = 100)]
public string BusinessUnLockingUserName { get; set; }
/// <summary>
/// 业务解锁时间
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "业务解锁时间", IsNullable = true)]
public DateTime BusinessUnLockingTime { get; set; }
/// <summary>
/// Desc:费用锁定人Id
/// </summary>
[SugarColumn(ColumnDescription = "费用锁定人Id", IsNullable = true, DefaultValue = "0")]
public long FeeLockingUserId { get; set; }
/// <summary>
/// Desc:费用锁定人
/// </summary>
[SugarColumn(ColumnDescription = "费用锁定人", IsNullable = true, Length = 100)]
public string FeeLockingUserName { get; set; }
/// <summary>
/// 费用锁定时间
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "费用锁定时间", IsNullable = true)]
public DateTime FeeLockingTime { get; set; }
/// <summary>
/// Desc:费用解锁人Id
/// </summary>
[SugarColumn(ColumnDescription = "费用解锁人Id", IsNullable = true, DefaultValue = "0")]
public long FeeUnLockingUserId { get; set; }
/// <summary>
/// Desc:费用解锁人
/// </summary>
[SugarColumn(ColumnDescription = "费用解锁人", IsNullable = true, Length = 100)]
public string FeeUnLockingUserName { get; set; }
/// <summary>
/// 费用解锁时间
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "费用解锁时间", IsNullable = true)]
public DateTime FeeUnLockingTime { get; set; }
/// <summary>
/// 业务初始化费用状态
/// </summary>
/// <param name="businessId"></param>
/// <returns></returns>
public static BusinessFeeStatus Init(long businessId)
{
return new BusinessFeeStatus()
{
BusinessId = businessId,
ARFeeStatus = BillFeeStatus.Entering,
APFeeStatus = BillFeeStatus.Entering,
ARInvoiceStatus = BillInvoiceStatus.NotIssued,
APInvoiceStatus = BillInvoiceStatus.NotIssued,
ARCheckStatus = BillCheckStatusEnum.NotChecked,
IsBusinessLocking = false,
IsFeeLocking = false,
BillAuditStatus = BillAuditStatus.Pending,
//BillFeeStatusTime = null,
};
}
}
/// <summary>
/// 业务类型
/// </summary>
public enum BusinessType
{
/// <summary>
/// 费用更改单
/// </summary>
[Description("费用更改单")]
ChangeOrder = 0,
/// <summary>
/// 海运出口
/// </summary>
[Description("海运出口")]
OceanShippingExport = 1,
/// <summary>
/// 海运进口
/// </summary>
[Description("海运进口")]
OceanShippingImport = 2
}
}