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.

524 lines
11 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System.Runtime.Serialization;
using DS.Module.Core.Enums;
using FluentValidation;
namespace DS.WMS.Core.Info.Dtos;
/// <summary>
/// 客户基本信息请求实体
/// </summary>
public class ClientInfoReq
{
/// <summary>
/// 主键Id
/// </summary>
public long Id { get; set; }
/// <summary>
/// Desc:客户代码
/// </summary>
public string CodeName { get; set; }
/// <summary>
/// Desc:客户简称
/// </summary>
public string ShortName { get; set; }
/// <summary>
/// Desc:客户中文名称或描述信息
/// </summary>
public string Description { get; set; }
/// <summary>
/// Desc:客户英文简称
/// </summary>
public string Name { get; set; }
/// <summary>
/// Desc:客户英文全称
/// </summary>
public string EnFullName { get; set; }
/// <summary>
/// Desc:通讯地址
/// </summary>
public string Address { get; set; }
/// <summary>
/// Desc:邮箱
/// </summary>
public string Email { get; set; }
/// <summary>
/// Desc:网页
/// </summary>
public string Web { get; set; }
/// <summary>
/// Desc:电话
/// </summary>
public string Tel { get; set; }
/// <summary>
/// Desc:传真
/// </summary>
public string Fax { get; set; }
/// <summary>
/// Desc:负责人
/// </summary>
public string Chief { get; set; }
/// <summary>
/// Desc:国家
/// </summary>
public string Country { get; set; }
/// <summary>
/// Desc:省或州
/// </summary>
public string Province { get; set; }
/// <summary>
/// Desc:城市
/// </summary>
public string City { get; set; }
/// <summary>
/// Desc:提单信息
/// </summary>
public string BLContent { get; set; }
/// <summary>
/// Desc:是否停用
/// </summary>
public bool IsStop { get; set; }
///// <summary>
///// Desc:发票抬头1
///// </summary>
//public string BillRises1 { get; set; }
///// <summary>
///// Desc:发票抬头2
///// </summary>
//public string BillRises2 { get; set; }
///// <summary>
///// Desc:美元支票抬头
///// </summary>
//public string USDBillRises { get; set; }
///// <summary>
///// Desc:人民币支票抬头
///// </summary>
//public string RMBBillRises { get; set; }
///// <summary>
///// Desc:人民币开户银行
///// </summary>
//public string RMBBank { get; set; }
///// <summary>
///// Desc:人民币账号
///// </summary>
//public string RMBAccount { get; set; }
///// <summary>
///// Desc:人民币联机行号
///// </summary>
//public string RMBOnlineNO { get; set; }
///// <summary>
///// Desc:美元开户银行
///// </summary>
//public string USDBank { get; set; }
///// <summary>
///// Desc:美元账号
///// </summary>
//public string USDAccount { get; set; }
///// <summary>
///// Desc:美元联机行号
///// </summary>
//public string USDOnlineNO { get; set; }
///// <summary>
///// Desc:自定义属性1
///// </summary>
//public string CustomAttributes1 { get; set; }
///// <summary>
///// Desc:自定义属性2
///// </summary>
//public string CustomAttributes2 { get; set; }
///// <summary>
///// Desc:美元信用最大金额
///// </summary>
//public decimal? USDMaxAmountCredit { get; set; } = 0;
///// <summary>
///// Desc:人民币信用最大金额
///// </summary>
//public decimal? RMBMaxAmountCredit { get; set; } = 0;
///// <summary>
///// Desc:信用最大金额RMB+USD
///// </summary>
//public decimal? MaxAmountCredit { get; set; } = 0;
///// <summary>
///// Desc:结算方式编码
///// </summary>
//public string StlName { get; set; }
///// <summary>
///// Desc:美金汇率
///// </summary>
//public decimal? USDExchangeRate { get; set; }
///// <summary>
///// Desc:月结算时间
///// </summary>
//public string StlDate { get; set; }
///// <summary>
///// Desc:上半月结算时间
///// </summary>
//public string StlFirstHalfDate { get; set; }
///// <summary>
///// Desc:下半月结算时间
///// </summary>
//public string StlMiddleDate { get; set; }
///// <summary>
///// Desc:票结结算时间
///// </summary>
//public string InvoiceStlDate { get; set; }
/// <summary>
/// Desc:等级
/// </summary>
public string Level { get; set; }
/// <summary>
/// Desc:QQ
/// </summary>
public string QQ { get; set; }
/// <summary>
/// Desc:MSN
/// </summary>
public string MSN { get; set; }
/// <summary>
/// Desc:财务应收账款代码
/// </summary>
public string FARCode { get; set; }
/// <summary>
/// Desc:财务应付账款代码
/// </summary>
public string FAPCode { get; set; }
/// <summary>
/// Desc:冷藏费率
/// </summary>
public string UnitPrice { get; set; }
/// <summary>
/// Desc:企业备案号
/// </summary>
public string RegistrationNo { get; set; }
/// <summary>
/// Desc:财务序号
/// </summary>
public string OrderNo { get; set; }
/// <summary>
/// Desc:纳税人识别号
/// </summary>
public string TaxNo { get; set; }
/// <summary>
/// Desc:EDI代码
/// </summary>
public string EDICode { get; set; }
/// <summary>
/// Desc:EDI代码2
/// </summary>
public string EDICode2 { get; set; }
/// <summary>
/// Desc:EDI代码3
/// </summary>
public string EDICode3 { get; set; }
/// <summary>
/// Desc:组织机构代码
/// </summary>
public string OrganizationCode { get; set; }
/// <summary>
/// 所属集团ID
/// </summary>
public long? PcorpId { get; set; }
/// <summary>
/// Desc: 所属集团
/// </summary>
public string? PcorpName { get; set; }
/// <summary>
/// Desc:企业商检备案号
/// </summary>
public string InspectionNo { get; set; }
/// <summary>
/// 审批时间
/// </summary>
public DateTime? AuditTime { get; set; }
/// <summary>
/// 审批意见
/// </summary>
public string AuditNote { get; set; }
/// <summary>
/// Desc:默认付费方式
/// </summary>
public string FeeFRT { get; set; }
/// <summary>
/// Desc:业务来源Id
/// </summary>
public long SourceId { get; set; }
/// <summary>
/// Desc:发票银行
/// </summary>
public string InvoiceBank { get; set; }
/// <summary>
/// Desc:发票地址电话
/// </summary>
public string InvoiceAddrTel { get; set; }
/// <summary>
/// 所属分部
/// </summary>
public long[]? SaleOrgIdList { get; set; }
///// <summary>
///// 所属分部值
///// </summary>
//[IgnoreDataMember]
//public string? SaleOrgId => SaleOrgIdList == null ? null : string.Join(",", SaleOrgIdList);
/// <summary>
/// Desc:所属分部值
/// </summary>
public string? SaleOrgId { get; set; }
/// <summary>
/// Desc:提成比例
/// </summary>
public decimal CommissionRate { get; set; }
/// <summary>
/// Desc:分成比例
/// </summary>
public decimal ProportionRate { get; set; }
/// <summary>
/// Desc:提成参与人
/// </summary>
public long CommissionUserId { get; set; }
/// <summary>
/// Desc:运输公司列表
/// </summary>
public string CarrierList { get; set; }
/// <summary>
/// Desc:集装箱尺寸
/// </summary>
public string CtnType { get; set; }
/// <summary>
/// Desc:英文简称
/// </summary>
public string EnShortName { get; set; }
/// <summary>
/// Desc:仓储费开始日期模式
/// </summary>
public string WMSFeeRateType { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Note { get; set; }
/// <summary>
/// 客户标识
/// </summary>
public ClientTagReq ClientTag { get; set; }
/// <summary>
/// 是否共享
/// </summary>
public bool IsShared { get; set; }
/// <summary>
/// 揽货人Id
/// </summary>
public long? SaleId { get; set; }
/// <summary>
/// 揽货人
/// </summary>
public string Sale { get; set; }
/// <summary>
/// Desc:单证
/// </summary>
public long? Doc { get; set; }
/// <summary>
/// Desc:单证人员
/// </summary>
public string DocName { get; set; }
/// <summary>
/// 操作员
/// </summary>
public long? OperatorId { get; set; }
/// <summary>
/// 操作员名称
/// </summary>
public string OperatorName { get; set; }
/// <summary>
/// 客服
/// </summary>
public long? CustomerService { get; set; }
/// <summary>
/// 客服名称
/// </summary>
public string CustomerServiceName { get; set; }
/// <summary>
/// 开票方式
/// </summary>
public InvoicingMethod? InvoicingMethod { get; set; }
/// <summary>
/// 推送设置
/// </summary>
public PushNotification[]? Notifications { get; set; }
[IgnoreDataMember]
public PushNotification Notification
{
get
{
if (Notifications == null || Notifications.Length == 0)
return PushNotification.None;
PushNotification flags = PushNotification.None;
for (int i = 0; i < Notifications.Length; i++)
flags |= Notifications[i];
return flags;
}
}
/// <summary>
/// 是否超期扣单
/// </summary>
public bool IsOverdueDeduction { get; set; }
/// <summary>
/// 超期天数
/// </summary>
public int OverdueDays { get; set; }
/// <summary>
/// 是否押最后一单
/// </summary>
public bool IsMortgageLastOrder { get; set; }
/// <summary>
/// Desc:业务来源明细Id
/// </summary>
public long SourceDetailId { get; set; }
/// <summary>
/// Desc:业务来源名称
/// </summary>
public string SourceName { get; set; }
/// <summary>
/// Desc:业务来源明细名称
/// </summary>
public string SourceDetailName { get; set; }
/// <summary>
/// 所属分部名称
/// </summary>
public string? SaleOrgName { get; set; }
/// <summary>
/// 服务项目代码
/// </summary>
public string[]? ServiceItemCodes { get; set; }
/// <summary>
/// 是否为客户
/// </summary>
public bool IsCustomer { get; set; }
/// <summary>
/// 是否为供应商
/// </summary>
public bool IsSupplier { get; set; }
/// <summary>
/// 客户等级A/B/C/D
/// </summary>
public string? Grade { get; set; }
/// <summary>
/// 注册资金
/// </summary>
public decimal? RegisteredCapital { get; set; }
/// <summary>
/// 注册时间
/// </summary>
public DateTime? RegistrationTime { get; set; }
}
/// <summary>
/// 验证
/// </summary>
public class ClientInfoReqValidator : AbstractValidator<ClientInfoReq>
{
/// <summary>
/// 构造函数
/// </summary>
public ClientInfoReqValidator()
{
//this.RuleFor(o => o.CodeName)
// .NotEmpty().WithName("客户代码");
this.RuleFor(o => o.ShortName)
.NotEmpty().WithName("客户简称");
}
}