d49330e697
Add comprehensive XML documentation (param/returns tags) across 132 source files to improve IntelliSense and API discoverability. Include ConfigManager design documents and implementation plans for phases 1-9.
330 lines
10 KiB
C#
330 lines
10 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
|
|
{
|
|
/// <summary>
|
|
/// The unique identifier for this combination.
|
|
/// </summary>
|
|
public int Id { get; private init; }
|
|
|
|
/// <summary>
|
|
/// The display name for this combination.
|
|
/// </summary>
|
|
public string Name { get; private init; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Whether the timespan filter is included in this combination.
|
|
/// </summary>
|
|
public bool Timespan { get; private init; }
|
|
|
|
/// <summary>
|
|
/// Whether the work order filter is included in this combination.
|
|
/// </summary>
|
|
public bool WorkOrder { get; private init; }
|
|
|
|
/// <summary>
|
|
/// Whether the item number filter is included in this combination.
|
|
/// </summary>
|
|
public bool ItemNumber { get; private init; }
|
|
|
|
/// <summary>
|
|
/// Whether the profit center filter is included in this combination.
|
|
/// </summary>
|
|
public bool ProfitCenter { get; private init; }
|
|
|
|
/// <summary>
|
|
/// Whether the work center filter is included in this combination.
|
|
/// </summary>
|
|
public bool WorkCenter { get; private init; }
|
|
|
|
/// <summary>
|
|
/// Whether the component lot filter is included in this combination.
|
|
/// </summary>
|
|
public bool ComponentLot { get; private init; }
|
|
|
|
/// <summary>
|
|
/// Whether the operator filter is included in this combination.
|
|
/// </summary>
|
|
public bool Operator { get; private init; }
|
|
|
|
/// <summary>
|
|
/// Whether the item operation MIS filter is included in this combination.
|
|
/// </summary>
|
|
public bool ItemOperationMis { get; private init; }
|
|
|
|
/// <summary>
|
|
/// Whether the extract MIS filter is included in this combination.
|
|
/// </summary>
|
|
public bool ExtractMis { get; private init; }
|
|
|
|
/// <summary>
|
|
/// Checks if the given filter flags match this combination.
|
|
/// </summary>
|
|
/// <param name="timespan">Whether timespan filter is enabled.</param>
|
|
/// <param name="workOrder">Whether work order filter is enabled.</param>
|
|
/// <param name="itemNumber">Whether item number filter is enabled.</param>
|
|
/// <param name="profitCenter">Whether profit center filter is enabled.</param>
|
|
/// <param name="workCenter">Whether work center filter is enabled.</param>
|
|
/// <param name="componentLot">Whether component lot filter is enabled.</param>
|
|
/// <param name="operator">Whether operator filter is enabled.</param>
|
|
/// <param name="itemOperationMis">Whether item operation MIS filter is enabled.</param>
|
|
/// <param name="extractMis">Whether extract MIS filter is enabled.</param>
|
|
/// <returns>True if all flags match this combination.</returns>
|
|
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
|
|
}
|
|
];
|
|
}
|