Align .editorconfig files Move Controller logic to DMO classes GlobalVars.AppSettings = Models.AppSettings.GetFromConfigurationManager(); Question EditorConfig Project level editorconfig Format White Spaces AppSetting when EnvironmentVariable not set Corrective Actions Tests Schedule Actions Tests DMO Tests Controller Tests Get ready to use VSCode IDE
381 lines
12 KiB
C#
381 lines
12 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace Fab2ApprovalSystem.Models;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
[Serializable]
|
|
public class LTWorkRequest {
|
|
|
|
public int ID { get; set; }
|
|
public int SWRNumber { get; set; }
|
|
public bool RecordLockIndicator { get; set; }
|
|
public int RecordLockedBy { get; set; }
|
|
public string RecordLockByName { get; set; }
|
|
public byte CurrentStep { get; set; }
|
|
public int Revision { get; set; }
|
|
public bool IsCurrentRevision { get; set; }
|
|
public int OriginatorID { get; set; }
|
|
public DateTime? OriginatedDate { get; set; }
|
|
public DateTime? SubmitedDate { get; set; }
|
|
public DateTime? CloseDate { get; set; }
|
|
public int Status { get; set; }
|
|
public bool IsITAR { get; set; }
|
|
public string Title { get; set; }
|
|
public char? LotType { get; set; }
|
|
public string PCRBNumber { get; set; }
|
|
public int? EngLotStartRequired { get; set; }
|
|
public int? LotTypeConversion { get; set; }
|
|
public int? QualLot { get; set; }
|
|
public string PurposeOfRequest { get; set; }
|
|
public DateTime? PlannedLotStartDate { get; set; }
|
|
public DateTime? PlannedScheduledCloseDate { get; set; }
|
|
public string ChargeDepartment { get; set; }
|
|
public string AllocationToUse { get; set; }
|
|
public int? PredictedCyleTime { get; set; }
|
|
public string ChargesForRawWafers { get; set; }
|
|
public string DeptChargedForRawWafers { get; set; }
|
|
public string DeptOwnerForRawWafers { get; set; }
|
|
public string FabCost { get; set; }
|
|
public string DeptChargedForFabCost { get; set; }
|
|
public string SignOn { get; set; }
|
|
public string Verb1 { get; set; }
|
|
public DateTime? EstimatedBinCLoseDate { get; set; }
|
|
public int? TotalQty { get; set; }
|
|
public int? StartQty { get; set; }
|
|
public string Verb2 { get; set; }
|
|
public string WIPArea { get; set; }
|
|
public DateTime? LotStartDate { get; set; }
|
|
public string LotNumber { get; set; }
|
|
public string WIPPartNumber { get; set; }
|
|
public string PartDescription { get; set; }
|
|
public string DefaultEPISiliconPartNumber { get; set; }
|
|
public string ProcessFlow { get; set; }
|
|
public string EmployeeID { get; set; }
|
|
public string VerbComment { get; set; }
|
|
public int? RecordSiliconLotInSPNTapeTagTotrav { get; set; }
|
|
public string SiliconLotNoCassette1 { get; set; }
|
|
public bool SiliconOnHand { get; set; }
|
|
public DateTime? SiliconExpectedDueDate { get; set; }
|
|
public string SiliconComments { get; set; }
|
|
public bool ReticleOnHand { get; set; }
|
|
public DateTime? ReticleExpectedDueDate { get; set; }
|
|
public string ReticleComments { get; set; }
|
|
public bool SPNTransferOnHand { get; set; }
|
|
public DateTime? SPNTransferExpectedDueDate { get; set; }
|
|
public string SPNTransferComments { get; set; }
|
|
public bool ProbeCardOnHand { get; set; }
|
|
public DateTime? ProbeCardExpectedDueDate { get; set; }
|
|
public string ProbeCardComments { get; set; }
|
|
public bool ProbeRecipeOnHand { get; set; }
|
|
public DateTime? ProbeRecipeExpectedDueDate { get; set; }
|
|
public string ProbeRecipeComments { get; set; }
|
|
public bool ProcessChangeDetailsOnHand { get; set; }
|
|
public DateTime? ProcessChangeDetailsDueDate { get; set; }
|
|
public string LotStartCheckListComments { get; set; }
|
|
public LTHoldStep LTHoldStep { get; set; }
|
|
public LTWorkRequestAttachment WorkRequestAttachment { get; set; }
|
|
public int LotCount { get; set; }
|
|
|
|
// View Model attributes
|
|
public List<int> DepartmentIDs { get; set; }
|
|
public List<int> ModuleIDs { get; set; }
|
|
public string OriginatorName { get; set; }
|
|
public string RevisionComments { get; set; }
|
|
public LTMaterial LTMaterial { get; set; }
|
|
public int PreviousWorkRequestID { get; set; }
|
|
public int WorkFlowNumber { get; set; }
|
|
public string ApprovalStatus {
|
|
get {
|
|
return Status == 1 ? "Approved" : "Pending";
|
|
}
|
|
|
|
}
|
|
|
|
public LTWorkRequest() {
|
|
DepartmentIDs = new List<int>();
|
|
ModuleIDs = new List<int>();
|
|
LTHoldStep = new LTHoldStep();
|
|
LTMaterial = new LTMaterial();
|
|
}
|
|
|
|
}
|
|
|
|
public class LTMaterial {
|
|
|
|
public int ID { get; set; }
|
|
[Display(Name = "WIP Part #")]
|
|
public string WIPPartNumber { get; set; }
|
|
[Display(Name = "EPI Silicon Part#")]
|
|
public string EPISiliconPartNumber { get; set; }
|
|
public int Quantity { get; set; }
|
|
public string Supplier { get; set; }
|
|
public string Source { get; set; }
|
|
public int LTWorkRequestID { get; set; }
|
|
public int PreviousMaterialID { get; set; }
|
|
|
|
}
|
|
|
|
public class LTAffectedDepartment {
|
|
|
|
public int ID { get; set; }
|
|
public int DepartmentID { get; set; }
|
|
public int LTWorkRequestID { get; set; }
|
|
|
|
}
|
|
|
|
public class LTAffectedModule {
|
|
|
|
public int ID { get; set; }
|
|
public int ModuleID { get; set; }
|
|
public int LTWorkRequestID { get; set; }
|
|
|
|
}
|
|
|
|
public class LTLotStartCheckList {
|
|
|
|
public int ID { get; set; }
|
|
public string Item { get; set; }
|
|
public bool OnHand { get; set; }
|
|
public DateTime? ExpectedDueDate { get; set; }
|
|
public int LTWorkRequestID { get; set; }
|
|
public string Comments { get; set; }
|
|
|
|
}
|
|
|
|
public class LTHoldStep {
|
|
|
|
public int ID { get; set; }
|
|
public string BaseFlow { get; set; }
|
|
public string Location { get; set; }
|
|
|
|
[Display(Name = "Seq")]
|
|
public string OperSequence { get; set; }
|
|
public string Operation { get; set; }
|
|
public string OperationDescription { get; set; }
|
|
public string ChangeInstructions { get; set; }
|
|
public string FileNames { get; set; }
|
|
public int LTWorkRequestID { get; set; }
|
|
public int UpdatedBy { get; set; }
|
|
public LTWorkRequestAttachment LTWorkRequestAttachment { get; set; }
|
|
public int Revision { get; set; }
|
|
public int SWRNumber { get; set; }
|
|
public int currentStep { get; set; }
|
|
public int PreviousHoldStepID { get; set; }
|
|
public LTHoldStep() =>
|
|
LTWorkRequestAttachment = new LTWorkRequestAttachment();
|
|
|
|
}
|
|
|
|
public class LTWorkRequestAttachment {
|
|
|
|
public int ID { get; set; }
|
|
public string FileGUID { get; set; }
|
|
public string FileName { get; set; }
|
|
public string DocType { get; set; }
|
|
public string Comments { get; set; }
|
|
public DateTime? UploadDateTime { get; set; }
|
|
public int LTHoldStepID { get; set; }
|
|
public string UploadedByName { get; set; }
|
|
public int UploadedByID { get; set; }
|
|
public int Revision { get; set; }
|
|
public int WorkRequestID { get; set; }
|
|
public int SWRNumber { get; set; }
|
|
public string FileExtension { get; set; }
|
|
public int PreviousWorkRequestAttachmentID { get; set; }
|
|
|
|
}
|
|
|
|
public class LTLotTravelerHeaderViewModel {
|
|
|
|
public int ID { get; set; }
|
|
public int SWRNumber { get; set; }
|
|
public string LotNumber { get; set; }
|
|
public string Title { get; set; } //
|
|
public string Status { get; set; } //
|
|
public string Originator { get; set; } //
|
|
public string WIPPartNumber { get; set; }
|
|
public string PartDescription { get; set; }
|
|
public string BaseFlow { set; get; }
|
|
public bool IsITAR { set; get; }
|
|
public DateTime? LastUpdate { get; set; }
|
|
public string LastUpdatedBy { get; set; }
|
|
public string PurposeOfRequest { get; set; }
|
|
public int LotTravCurrentRevision { get; set; }
|
|
public LTLotTravelerHoldSteps LTLotTravelerHoldStep { get; set; }
|
|
public bool IsCurrentRevision { get; set; }
|
|
public int LTWorkRequestID { get; set; }
|
|
public int LotTravRevID { get; set; }
|
|
public bool RecordLockIndicator { get; set; }
|
|
public int RecordLockedBy { get; set; }
|
|
public int RecordLockedByName { get; set; }
|
|
public List<Revision> Revisions { get; set; }
|
|
public bool TravelerClosed { get; set; }
|
|
public DateTime? TravelerClosedDate { get; set; }
|
|
public string TravelerClosedBy { get; set; }
|
|
public string TravelerClosedReason { get; set; }
|
|
public int WorkReqRevision { get; set; }
|
|
public string TravelerStatus {
|
|
get {
|
|
return TravelerClosedDate == null ? "Open" : "Closed";
|
|
}
|
|
}
|
|
|
|
public LTLotTravelerHeaderViewModel() =>
|
|
LTLotTravelerHoldStep = new LTLotTravelerHoldSteps();
|
|
|
|
}
|
|
|
|
public class LTLot {
|
|
|
|
public int ID { get; set; }
|
|
public int WorkRequestID { get; set; }
|
|
public string LotNumber { get; set; }
|
|
public string WIPPartNumber { get; set; }
|
|
public int WaferQty { get; set; }
|
|
public string PartDescription { get; set; }
|
|
public string Process { get; set; }
|
|
public string Location { get; set; }
|
|
public string Operation { get; set; }
|
|
public string LotStatus { get; set; }
|
|
public bool IsTravelerGenerated { get; set; }
|
|
[Display(Name = "Revision")]
|
|
public int LotTravelerCurrentRevision { get; set; }
|
|
public int LotUploadedBy { get; set; }
|
|
public string UploadedByName { get; set; }
|
|
public DateTime LotUploadDatetime { get; set; }
|
|
public int WRWithExistingLot { get; set; }
|
|
public string TravelerStatus { get; set; }
|
|
public bool TravelerClosed { get; set; }
|
|
public DateTime? TravelerClosedDate { get; set; }
|
|
|
|
[Display(Name = "")]
|
|
public string ButtonAttrib {
|
|
get {
|
|
return (IsTravelerGenerated ? "True" : "False") + "~" + ID + "~" + WorkRequestID + "~" + LotStatus + "~" + TravelerStatus;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public class LTLotTravelerRevisionAttrib {
|
|
|
|
public int ID { get; set; }
|
|
public int LTLotID { get; set; }
|
|
public int RevisionNumber { get; set; }
|
|
public bool IsCurrentRevision { get; set; }
|
|
public string Comments { get; set; }
|
|
public int RecordLockIndicator { get; set; }
|
|
public int RecordLockedBy { get; set; }
|
|
public DateTime? RecordLockedDate { get; set; }
|
|
public int TravelerLastUpdatedBy { get; set; }
|
|
public DateTime? TraverlerLastUpdatedDatetime { get; set; }
|
|
|
|
}
|
|
|
|
public class LTLotTravlerHistory {
|
|
|
|
}
|
|
|
|
public class LTLotTravelerHoldSteps {
|
|
|
|
public int ID { get; set; }
|
|
public string Location { get; set; }
|
|
public string Operation { get; set; }
|
|
public string OperSequence { get; set; }
|
|
public string Description { get; set; }
|
|
public string OperationDescription { get; set; }
|
|
public string ChangeInstructions { get; set; }
|
|
public bool OLHoldInSPN { get; set; }
|
|
public string ExecutionTaskComments { get; set; }
|
|
public string EmployeeID { get; set; }
|
|
public bool Completed { get; set; }
|
|
public DateTime? SignOffTime { get; set; }
|
|
public int SignedOffBy { get; set; }
|
|
[Display(Name = "SignedOff By")]
|
|
public string SignedOffByName { get; set; }
|
|
public int LotTravelerRevisionID { get; set; }
|
|
public string RevisionComments { get; set; }
|
|
public DateTime? UpdatedDateTime { get; set; }
|
|
public int? UpdatedBy { get; set; }
|
|
public int CurrentRevision { get; set; }
|
|
// view model fields
|
|
public string FileNames { get; set; }
|
|
public int SWRNumber { get; set; }
|
|
public int LTLotID { get; set; }
|
|
public int WorkRequestID { get; set; }
|
|
|
|
}
|
|
|
|
public class LTLotTravAttachment {
|
|
|
|
public int ID { get; set; }
|
|
public string FileGUID { get; set; }
|
|
public string FileName { get; set; }
|
|
public string DocType { get; set; }
|
|
public string Comments { get; set; }
|
|
public int LotTravelerRevisionID { get; set; }
|
|
public int LTLotTravHoldStepID { get; set; }
|
|
public DateTime? UploadTime { get; set; }
|
|
public int UploadedByID { get; set; }
|
|
public string UploadedByName { get; set; }
|
|
|
|
}
|
|
|
|
/// </summary>
|
|
public class BaseFlowLocation {
|
|
|
|
public string Location { get; set; }
|
|
|
|
}
|
|
|
|
public class BaseFlowOperations {
|
|
|
|
public string Operation { get; set; }
|
|
public string OperationDesc { get; set; }
|
|
public string OperCode { get; set; }
|
|
public string SeqCode { get; set; }
|
|
|
|
}
|
|
|
|
/// </summary>
|
|
public class BaseFlowLocationOperation {
|
|
|
|
public string BaseFlow { get; set; }
|
|
public string Location { get; set; }
|
|
public string Operation { get; set; }
|
|
|
|
}
|
|
|
|
public class PartNumberAttrib {
|
|
|
|
public string PartNumber { get; set; }
|
|
public string SiliconAndDesc { get; set; }
|
|
|
|
}
|
|
|
|
public class Revision {
|
|
|
|
public int ID { get; set; }
|
|
public int RevisionNumber { get; set; }
|
|
|
|
}
|
|
|
|
public class LotWithTraveler {
|
|
|
|
public int LotID { get; set; }
|
|
public string LotNumber { get; set; }
|
|
|
|
}
|
|
|
|
public class RevisionHistory {
|
|
|
|
public int ID { get; set; }
|
|
public string RevisionedBy { get; set; }
|
|
public string Comments { get; set; }
|
|
public DateTime RevisionCreateDate { get; set; }
|
|
|
|
} |