144 lines
3.8 KiB
C#
144 lines
3.8 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace Dlhis.External.EMealVoucher.Request;
|
|
|
|
public class EMealVoucherReceiveRequest : IValidatableObject
|
|
{
|
|
/// <summary>
|
|
/// 流水号
|
|
/// </summary>
|
|
[Required(ErrorMessage = "流水号不能为空")]
|
|
public string No { get; set; }
|
|
|
|
/// <summary>
|
|
/// 标题
|
|
/// </summary>
|
|
[Required(ErrorMessage = "标题不能为空")]
|
|
public string Title { get; set; }
|
|
|
|
/// <summary>
|
|
/// 工号
|
|
/// </summary>
|
|
[Required(ErrorMessage = "工号不能为空")]
|
|
public string Code { get; set; }
|
|
|
|
/// <summary>
|
|
/// 手机号
|
|
/// </summary>
|
|
[MinLength(11, ErrorMessage = "手机号不合法")]
|
|
[MaxLength(11, ErrorMessage = "手机号不合法")]
|
|
public string Phone { get; set; }
|
|
|
|
/// <summary>
|
|
/// 申请日期
|
|
/// </summary>
|
|
public DateTime Date { get; set; }
|
|
|
|
/// <summary>
|
|
/// 成本中心
|
|
/// </summary>
|
|
[Required(ErrorMessage = "成本中心不能为空")]
|
|
public string CostId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 来宾来源
|
|
/// </summary>
|
|
public string Source { get; set; }
|
|
|
|
/// <summary>
|
|
/// 来宾数量
|
|
/// </summary>
|
|
[Range(1, int.MaxValue, ErrorMessage = "来宾数量有误")]
|
|
public int Number { get; set; }
|
|
|
|
/// <summary>
|
|
/// 申请事由
|
|
/// </summary>
|
|
[Required(ErrorMessage = "申请事由不能为空")]
|
|
public string Reason { get; set; }
|
|
|
|
/// <summary>
|
|
/// 餐别组合 早餐1;午餐2;晚餐3;夜宵4,凌晨餐5
|
|
/// </summary>
|
|
[MinLength(1, ErrorMessage = "餐别不能为空")]
|
|
[MaxLength(5, ErrorMessage = "餐别不能为空")]
|
|
public List<int> Shifts { get; set; }
|
|
|
|
/// <summary>
|
|
/// 餐券可消费厂区代码,逗号分隔
|
|
/// </summary>
|
|
[MinLength(1, ErrorMessage = "消费厂区不能为空")]
|
|
public List<string> Factories { get; set; }
|
|
|
|
/// <summary>
|
|
/// 明细
|
|
/// </summary>
|
|
[MinLength(1, ErrorMessage = "明细不能为空")]
|
|
public List<EMealVoucherReceiveDetailRequest> Details { get; set; }
|
|
|
|
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
|
{
|
|
if (Details.DistinctBy(x => x.IdNo).Count() != Details.Count)
|
|
{
|
|
yield return new ValidationResult("证件信息重复", new[] { "IdNo" });
|
|
}
|
|
}
|
|
}
|
|
|
|
public class EMealVoucherReceiveDetailRequest : IValidatableObject
|
|
{
|
|
/// <summary>
|
|
/// 用户类型 新员工/外来人员
|
|
/// </summary>
|
|
[Required(ErrorMessage = "用户类型不可为空")]
|
|
public string UserType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 身份证号
|
|
/// </summary>
|
|
[Required(ErrorMessage = "身份证号不可为空")]
|
|
public string IdNo { get; set; }
|
|
|
|
/// <summary>
|
|
/// 姓名
|
|
/// </summary>
|
|
[Required(ErrorMessage = "姓名不可为空")]
|
|
public string Name { get; set; }
|
|
|
|
/// <summary>
|
|
/// 手机号
|
|
/// </summary>
|
|
[MinLength(11, ErrorMessage = "手机号不合法")]
|
|
[MaxLength(11, ErrorMessage = "手机号不合法")]
|
|
public string Phone { get; set; }
|
|
|
|
/// <summary>
|
|
/// 使用开始
|
|
/// </summary>
|
|
public DateTime Start { get; set; }
|
|
|
|
/// <summary>
|
|
/// 使用结束
|
|
/// </summary>
|
|
public DateTime End { get; set; }
|
|
|
|
/// <summary>
|
|
/// 金额
|
|
/// </summary>
|
|
[Range(0.01, double.MaxValue, ErrorMessage = "金额有误")]
|
|
public decimal Amount { get; set; }
|
|
|
|
|
|
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
|
{
|
|
if (End <= DateTime.Now)
|
|
{
|
|
yield return new ValidationResult("使用结束时间不可小于当前时间", new[] { nameof(End) });
|
|
}
|
|
|
|
if (Start >= End)
|
|
{
|
|
yield return new ValidationResult("使用开始,使用结束时间有误", new[] { nameof(Start) });
|
|
}
|
|
}
|
|
} |