using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Fab2ApprovalSystem.ViewModels; namespace Fab2ApprovalSystem.Models; /// /// /// [Serializable] public class MRB { public int MRBNumber { get; set; } public string Title { get; set; } public int MRBRaisedAreaID { get; set; } public int OriginatorID { get; set; } public int Owner { get; set; } public int Module { get; set; } public DateTime? MRBRaisedDate { get; set; } public string Process { get; set; } public int ApprovalStatus { get; set; } public string Tool { get; set; } public string ToolCSV { get; set; } public int NumberOfLotsAffected { get; set; } public int NumberOfWafersAffected { get; set; } public int NumberOfDiesAffected { get; set; } public DateTime? ApprovalDate { get; set; } public int CANo { get; set; } public string IssueDescription { get; set; } public DateTime? IssueDetectedDate { get; set; } public DateTime? IssueStartDate { get; set; } public DateTime? IssueEndDate { get; set; } // viewmodel public string OwnerName { get; set; } public List PartGroupIDs { get; set; } public List ModuleIDs { get; set; } public List DispositionIDs { get; set; } public List RiskAssessmentIDs { get; set; } public string Notes { get; set; } public string OwnerApprover { get; set; } public string MfgEngineeringAppover { get; set; } public string YEApprover { get; set; } public string PEApprover { get; set; } public string OtherApprovers { get; set; } public string QualityApprovers { get; set; } public byte CurrentStep { get; set; } public string DetailsFolder { get; set; } public bool CustomerImpacted { get; set; } public int WorkFlowNumber { get; set; } public string ApprovalStatusString { get { switch (ApprovalStatus) { case 0: return "PENDING"; case 1: return "APPROVED"; default: return "CLOSED"; } } } /// /// /// public MRB() { PartGroupIDs = new List(); ModuleIDs = new List(); DispositionIDs = new List(); RiskAssessmentIDs = new List(); } } public class PartGroup { public int PartGroupID { get; set; } public string PartGroupName { get; set; } } public class Module { public int ModuleID { get; set; } public string ModuleName { get; set; } } public class RiskAssessment { public int RiskAssessmentID { get; set; } public string RiskAssessmentName { get; set; } } public class Disposition { public int DispositionID { get; set; } public int MRBNumber { get; set; } [Display(Name = "Type")] public string DispositionType { get; set; } [Display(Name = "Dispo Desc")] public string DispositionName { get; set; } public string DispositionNotes { get; set; } //Duplicated as the CloseToQDBOptionID is being used in the dropdown in the Grid kept the old code public int CloseToQDBOption_ID { get; set; } [UIHint("CloseToQDBTemplate")] [Display(Name = "Close To QDB(Yes/No)")] public CloseToQDBOptionViewModel CloseToQDBOption { get; set; } [Display(Name = "MRB Flag to SPN")] public string CloseToQDBOptionString { get { switch (CloseToQDBOption_ID) { case 0: return "No"; case 1: return "Yes"; default: return "No"; } } } } public class MRBAttachment { public int AttachmentID { set; get; } public int MRBNumber { get; set; } public string FileName { get; set; } public int UserID { get; set; } // extrafield public string FullName { get; set; } public string UploadDate { get; set; } public string Path { get; set; } } public class ContainmentActionObj { public int ContainmentActionID { get; set; } public int MRBNumber { get; set; } public string ContainmentAction { get; set; } public int ResponsibilityOwnerID { get; set; } public int CurrentResponsibilityOwnerID { get; set; } public string ResponsibilityOwner { get; set; } //[DataType(DataType.Date)] public DateTime? ECD { get; set; } [DataType(DataType.Date)] public DateTime? ImplementedDate { get; set; } } public class SPN_MRB { public int MRBNumber; public char? DispoType; }