demo20230512/Models/LCA/ProductLCAReplyRequest.cs
2023-05-12 10:20:28 +08:00

195 lines
5.0 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Core.Objects;
using System.Linq;
using System.Web;
using System.Runtime.Serialization;
using Resources;
using Newtonsoft.Json;
using Weee.Models.Survey_form_metadata;
using Weee.Models.ExtensionMethods;
namespace Weee.Models
{
[Table("ProductLCAReplyRequests")]
public class ProductLCAReplyRequest
{
public ProductLCAReplyRequest()
{
Uid = Guid.NewGuid();
//CreatedDate = DateTime.UtcNow;//DL-13
CreatedDate = DateTime.Now;
AcceptDate = null;
ReplyDate = null;
AcceptReplyDate = null;
}
public int ID { get; set; }
public string Distribute { get; set; }
public decimal? RepliedValue { get; set; }
public string ReferenceFileLink { get; set; }
public string DescriptionFromReceiver { get; set; }
public string DescriptionFromSender { get; set; }
public DivideByOptions DivideBy { get; set; }
public enum DivideByOptions
{
[Display(Name = "Weight", ResourceType = typeof(Resource))]
byWeight,
[Display(Name = "AreaB", ResourceType = typeof(Resource))]
byArea,
[Display(Name = "WorkHour", ResourceType = typeof(Resource))]
byWorkHour
}
[Column(TypeName = "DateTime2")]
public DateTime CreatedDate { get; set; }
[Column(TypeName = "DateTime2")]
public DateTime? AcceptDate { get; set; }
[Column(TypeName = "DateTime2")]
public DateTime? ReplyDate { get; set; }
[Column(TypeName = "DateTime2")]
public DateTime? AcceptReplyDate { get; set; }
[Column(TypeName = "DateTime2")]
public DateTime? LastResentDate { get; set; }
[Required]
public string SenderCompanyName { get; set; }
[JsonIgnore]
[IgnoreDataMember]
public virtual Material SentByWhichMaterial { get; set; }
public Guid Uid { get; set; }
public int? RepliedLCAID { get; set; }
[ForeignKey("RepliedLCAID")]
[JsonIgnore]
[IgnoreDataMember]
public virtual ProductLCA RepliedByWhichLCA { get; set; }
[NotMapped]
public string MaterialSupplierName
{
get
{
return SentByWhichMaterial.SupplierCompanyName;
}
}
[NotMapped]
public string MaterialSupplierEmail
{
get
{
return SentByWhichMaterial.SupplierCompanyEmail;
}
}
[NotMapped]
public string MaterialPartNumber
{
get
{
return SentByWhichMaterial.PartNumber;
}
}
[NotMapped]
public string MaterialName
{
get
{
return SentByWhichMaterial.Name;
}
}
[NotMapped]
public string ReplyStatusDisplay
{
get
{
if (RepliedValue == null)
return Resource.NoReply;
else
return Resource.Replied;
}
}
[NotMapped]
public string RequestLink
{
get
{
return Weee.ProgramConstants.RequestLink + Uid.ToString();
}
}
[NotMapped]
public string AnonymousReplyLink
{
get
{
return Weee.ProgramConstants.AnonymousReplyLink + Uid.ToString();
}
}
[NotMapped]
public string SupplierLCAStatus
{
get
{
if (RepliedByWhichLCA != null)
return RepliedByWhichLCA.StatusDisplayName;
else if (RepliedValue != null)
return Resource.AnonymousReply;
else
return null;
}
}
[NotMapped]
public bool CanBeReplied
{
get
{
return AcceptReplyDate == null;
}
}
[NotMapped]
public bool CanBeDelete
{
get
{
return ReceiverCompanyID == null && AcceptReplyDate == null;
}
}
[NotMapped]
public bool CanBeApply
{
get
{
return AcceptReplyDate == null && RepliedValue != null;
}
}
[NotMapped]
public int SendLCAID
{
get
{
return SentByWhichMaterial.LCAID;
}
}
public int? ReceiverCompanyID { get; set; }
[ForeignKey("ReceiverCompanyID")]
[Display(Name = "LCAReceiveby", ResourceType = typeof(Resource))]
[JsonIgnore]
[IgnoreDataMember]
public virtual NormalCompany ReceiveBy { get; set; }
}
}