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
{
///
/// 业务相关费用状态表
///
[SqlSugar.SugarTable("op_business_fee_status", "业务相关费用状态表")]
public class BusinessFeeStatus : BaseModel
{
///
/// 业务Id
///
[SqlSugar.SugarColumn(ColumnDescription = "业务Id", IsNullable = false, Length = 100)]
public long BusinessId { get; set; }
///
/// 业务类型 1.海运出口
///
[SqlSugar.SugarColumn(ColumnDescription = "业务类型 1.海运出口", IsNullable = false, DefaultValue = "1")]
public BusinessType BusinessType { get; set; } = BusinessType.OceanShippingExport;
///
/// 应收费用状态
///
[SqlSugar.SugarColumn(ColumnDescription = "应收费用状态", IsNullable = false, DefaultValue = "0")]
public BillFeeStatus ARFeeStatus { get; set; } = BillFeeStatus.NotEntered;
///
/// 应付费用状态
///
[SqlSugar.SugarColumn(ColumnDescription = "应付费用状态", IsNullable = false, DefaultValue = "0")]
public BillFeeStatus APFeeStatus { get; set; } = BillFeeStatus.NotEntered;
///
/// 应收开票状态
///
[SqlSugar.SugarColumn(ColumnDescription = "应收开票状态", IsNullable = false, DefaultValue = "0")]
public BillInvoiceStatus ARInvoiceStatus { get; set; } = BillInvoiceStatus.NotIssued;
///
/// 应付开票状态
///
[SqlSugar.SugarColumn(ColumnDescription = "应付开票状态", IsNullable = false, DefaultValue = "0")]
public BillInvoiceStatus APInvoiceStatus { get; set; } = BillInvoiceStatus.NotIssued;
///
/// 应收对账状态
///
[SqlSugar.SugarColumn(ColumnDescription = "应收对账状态", IsNullable = false, DefaultValue = "0")]
public BillCheckStatusEnum ARCheckStatus { get; set; } = BillCheckStatusEnum.NotChecked;
///
/// Desc:是否业务锁定
///
[SugarColumn(ColumnDescription = "是否业务锁定", DefaultValue = "0")]
public bool? IsBusinessLocking { get; set; } = false;
///
/// Desc:是否费用锁定
///
[SugarColumn(ColumnDescription = "是否费用锁定", DefaultValue = "0")]
public bool? IsFeeLocking { get; set; } = false;
///
/// 整单费用审核状态
///
[SugarColumn(ColumnDescription = "整单费用审核状态", IsNullable = true, DefaultValue = "0")]
public BillAuditStatus? BillAuditStatus { get; set; }
///
/// 整单费用状态时间
///
[SugarColumn(ColumnDescription = "整单费用状态时间", IsNullable = true)]
public DateTime? BillFeeStatusTime { get; set; }
//[SugarColumn(ColumnDescription = "当前审批工作流ID", IsNullable = true)]
//public long? FlowId { get; set; }
///
/// Desc:业务锁定人Id
///
[SugarColumn(ColumnDescription = "业务锁定人Id", IsNullable = true, DefaultValue = "0")]
public long BusinessLockingUserId { get; set; }
///
/// Desc:业务锁定人
///
[SugarColumn(ColumnDescription = "业务锁定人", IsNullable = true, Length = 100)]
public string BusinessLockingUserName { get; set; }
///
/// 业务锁定时间
///
[SqlSugar.SugarColumn(ColumnDescription = "业务锁定时间", IsNullable = true)]
public DateTime BusinessLockingTime { get; set; }
///
/// Desc:业务解锁人Id
///
[SugarColumn(ColumnDescription = "业务解锁人Id", IsNullable = true, DefaultValue = "0")]
public long BusinessUnLockingUserId { get; set; }
///
/// Desc:业务解锁人
///
[SugarColumn(ColumnDescription = "业务解锁人", IsNullable = true, Length = 100)]
public string BusinessUnLockingUserName { get; set; }
///
/// 业务解锁时间
///
[SqlSugar.SugarColumn(ColumnDescription = "业务解锁时间", IsNullable = true)]
public DateTime BusinessUnLockingTime { get; set; }
///
/// Desc:费用锁定人Id
///
[SugarColumn(ColumnDescription = "费用锁定人Id", IsNullable = true, DefaultValue = "0")]
public long FeeLockingUserId { get; set; }
///
/// Desc:费用锁定人
///
[SugarColumn(ColumnDescription = "费用锁定人", IsNullable = true, Length = 100)]
public string FeeLockingUserName { get; set; }
///
/// 费用锁定时间
///
[SqlSugar.SugarColumn(ColumnDescription = "费用锁定时间", IsNullable = true)]
public DateTime FeeLockingTime { get; set; }
///
/// Desc:费用解锁人Id
///
[SugarColumn(ColumnDescription = "费用解锁人Id", IsNullable = true, DefaultValue = "0")]
public long FeeUnLockingUserId { get; set; }
///
/// Desc:费用解锁人
///
[SugarColumn(ColumnDescription = "费用解锁人", IsNullable = true, Length = 100)]
public string FeeUnLockingUserName { get; set; }
///
/// 费用解锁时间
///
[SugarColumn(ColumnDescription = "费用解锁时间", IsNullable = true)]
public DateTime FeeUnLockingTime { get; set; }
///
/// 整单利润
///
[SugarColumn(IsIgnore = true)]
public decimal ProfitMargin { get; set; }
///
/// 委托编号
///
[SugarColumn(IsIgnore = true)]
public string? CustomerNo { get; set; }
///
/// 业务初始化费用状态
///
///
///
public static BusinessFeeStatus Init(long businessId)
{
return new BusinessFeeStatus()
{
BusinessId = businessId,
ARFeeStatus = BillFeeStatus.NotEntered,
APFeeStatus = BillFeeStatus.NotEntered,
ARInvoiceStatus = BillInvoiceStatus.NotIssued,
APInvoiceStatus = BillInvoiceStatus.NotIssued,
ARCheckStatus = BillCheckStatusEnum.NotChecked,
IsBusinessLocking = false,
IsFeeLocking = false,
BillAuditStatus = Module.Core.BillAuditStatus.Pending
//BillFeeStatusTime = null,
};
}
}
///
/// 业务类型
///
public enum BusinessType
{
///
/// 未指定
///
[Description("未指定")]
NotSpecified = 0,
///
/// 海运出口
///
[Description("海运出口")]
OceanShippingExport = 1,
///
/// 海运进口
///
[Description("海运进口")]
OceanShippingImport = 2,
///
/// 箱管_租箱租入
///
[Description("箱管_租箱租入")]
CM_RentIn = 101,
///
/// 箱管_租箱租出
///
[Description("箱管_租箱租出")]
CM_RentOut = 102,
///
/// 箱管_单程租出业务
///
[Description("箱管_单程租出业务")]
CM_RentOneWay = 103,
///
/// 箱管_买箱
///
[Description("箱管_买箱")]
CM_BuyCtn = 104,
///
/// 箱管_卖箱
///
[Description("箱管_卖箱")]
CM_SellCtn = 105,
///
/// 箱管_月结账单
///
[Description("箱管_月结账单")]
CM_CustFeeDui = 106,
///
/// 箱管_卖箱
///
[Description("箱管_报废")]
CM_CtnScrap = 107,
///
/// 箱管_单程租出业务
///
[Description("箱管_单程租入业务")]
CM_RentOneWay_In = 108,
///
/// 报销单
///
[Description("报销单")]
Reimbursement = 200,
}
}