Files
jdescopingtool/NEW/src/JdeScoping.Client/Models/ValidCombination.cs
T
Joseph Doherty 7e36bb4225 refactor: remove unused classes and consolidate ViewModels in Core
Remove 9 unused types from Core (duplicate extension classes, TableSpec, ColumnSpec, LotLocation), move ComponentLotViewModel and OperatorViewModel from Client to Core, and refactor DataSync.Dev to use pipeline-based configuration. Fix Login.razor to use UserInfoDto directly.
2026-01-19 00:13:12 -05:00

277 lines
8.3 KiB
C#

namespace JdeScoping.Client.Models;
/// <summary>
/// Represents a valid combination of search filter criteria.
/// Each combination defines which filter panels should be visible for a given search type.
/// </summary>
public class ValidCombination
{
public int Id { get; private init; }
public string Name { get; private init; } = string.Empty;
public bool Timespan { get; private init; }
public bool WorkOrder { get; private init; }
public bool ItemNumber { get; private init; }
public bool ProfitCenter { get; private init; }
public bool WorkCenter { get; private init; }
public bool ComponentLot { get; private init; }
public bool Operator { get; private init; }
public bool ItemOperationMis { get; private init; }
public bool ExtractMis { get; private init; }
/// <summary>
/// Checks if the given filter flags match this combination.
/// </summary>
public bool Matches(
bool timespan,
bool workOrder,
bool itemNumber,
bool profitCenter,
bool workCenter,
bool componentLot,
bool @operator,
bool itemOperationMis,
bool extractMis)
{
return Timespan == timespan &&
WorkOrder == workOrder &&
ItemNumber == itemNumber &&
ProfitCenter == profitCenter &&
WorkCenter == workCenter &&
ComponentLot == componentLot &&
Operator == @operator &&
ItemOperationMis == itemOperationMis &&
ExtractMis == extractMis;
}
/// <summary>
/// Gets all 16 valid search type combinations.
/// </summary>
public static IReadOnlyList<ValidCombination> GetAll() =>
[
new()
{
Id = 10,
Name = "Work Order",
Timespan = false,
WorkOrder = true,
ItemNumber = false,
ProfitCenter = false,
WorkCenter = false,
ComponentLot = false,
Operator = false,
ItemOperationMis = false,
ExtractMis = false
},
new()
{
Id = 20,
Name = "Component Lot",
Timespan = false,
WorkOrder = false,
ItemNumber = false,
ProfitCenter = false,
WorkCenter = false,
ComponentLot = true,
Operator = false,
ItemOperationMis = false,
ExtractMis = false
},
new()
{
Id = 30,
Name = "Time Span + Profit Center",
Timespan = true,
WorkOrder = false,
ItemNumber = false,
ProfitCenter = true,
WorkCenter = false,
ComponentLot = false,
Operator = false,
ItemOperationMis = false,
ExtractMis = false
},
new()
{
Id = 40,
Name = "Time Span + Work Center",
Timespan = true,
WorkOrder = false,
ItemNumber = false,
ProfitCenter = false,
WorkCenter = true,
ComponentLot = false,
Operator = false,
ItemOperationMis = false,
ExtractMis = false
},
new()
{
Id = 50,
Name = "Time Span + Operator",
Timespan = true,
WorkOrder = false,
ItemNumber = false,
ProfitCenter = false,
WorkCenter = false,
ComponentLot = false,
Operator = true,
ItemOperationMis = false,
ExtractMis = false
},
new()
{
Id = 60,
Name = "Time Span + Profit Center + Item Number",
Timespan = true,
WorkOrder = false,
ItemNumber = true,
ProfitCenter = true,
WorkCenter = false,
ComponentLot = false,
Operator = false,
ItemOperationMis = false,
ExtractMis = false
},
new()
{
Id = 70,
Name = "Time Span + Profit Center + Item/Operation/MIS",
Timespan = true,
WorkOrder = false,
ItemNumber = false,
ProfitCenter = true,
WorkCenter = false,
ComponentLot = false,
Operator = false,
ItemOperationMis = true,
ExtractMis = false
},
new()
{
Id = 80,
Name = "Time Span + Profit Center + Work Order + Item/Operation/MIS",
Timespan = true,
WorkOrder = true,
ItemNumber = false,
ProfitCenter = true,
WorkCenter = false,
ComponentLot = false,
Operator = false,
ItemOperationMis = true,
ExtractMis = false
},
new()
{
Id = 90,
Name = "Time Span + Profit Center + Extract MIS",
Timespan = true,
WorkOrder = false,
ItemNumber = false,
ProfitCenter = true,
WorkCenter = false,
ComponentLot = false,
Operator = false,
ItemOperationMis = false,
ExtractMis = true
},
new()
{
Id = 100,
Name = "Time Span + Work Center + Item Number",
Timespan = true,
WorkOrder = false,
ItemNumber = true,
ProfitCenter = false,
WorkCenter = true,
ComponentLot = false,
Operator = false,
ItemOperationMis = false,
ExtractMis = false
},
new()
{
Id = 110,
Name = "Time Span + Work Center + Extract MIS",
Timespan = true,
WorkOrder = false,
ItemNumber = false,
ProfitCenter = false,
WorkCenter = true,
ComponentLot = false,
Operator = false,
ItemOperationMis = false,
ExtractMis = true
},
new()
{
Id = 120,
Name = "Time Span + Work Center + Item/Operation/MIS",
Timespan = true,
WorkOrder = false,
ItemNumber = false,
ProfitCenter = false,
WorkCenter = true,
ComponentLot = false,
Operator = false,
ItemOperationMis = true,
ExtractMis = false
},
new()
{
Id = 130,
Name = "Time Span + Work Center + Work Order + Item/Operation/MIS",
Timespan = true,
WorkOrder = true,
ItemNumber = false,
ProfitCenter = false,
WorkCenter = true,
ComponentLot = false,
Operator = false,
ItemOperationMis = true,
ExtractMis = false
},
new()
{
Id = 140,
Name = "Time Span + Item Number",
Timespan = true,
WorkOrder = false,
ItemNumber = true,
ProfitCenter = false,
WorkCenter = false,
ComponentLot = false,
Operator = false,
ItemOperationMis = false,
ExtractMis = false
},
new()
{
Id = 150,
Name = "Time Span + Work Center + Operator",
Timespan = true,
WorkOrder = false,
ItemNumber = false,
ProfitCenter = false,
WorkCenter = true,
ComponentLot = false,
Operator = true,
ItemOperationMis = false,
ExtractMis = false
},
new()
{
Id = 160,
Name = "Time Span + Profit Center + Operator",
Timespan = true,
WorkOrder = false,
ItemNumber = false,
ProfitCenter = true,
WorkCenter = false,
ComponentLot = false,
Operator = true,
ItemOperationMis = false,
ExtractMis = false
}
];
}