using System; namespace WorkerService.Models.Reporting { /// /// JDE search result reporting model /// [OutputTable(TabName = "Search Results", TableName = "Search_Results")] public class SearchResult { /// /// Order unique number /// [OutputColumn(Order = 10, HeaderText = "Work Order Number")] public long WorkOrderNumber { get; set; } /// /// Order branch code /// [OutputColumn(Order = 20, HeaderText = "Work Order Branch Code")] public string WorkOrderBranchCode { get; set; } /// /// Order lot number /// [OutputColumn(Order = 30, HeaderText = "Lot Number")] public string LotNumber { get; set; } /// /// Order item number /// [OutputColumn(Order = 40, HeaderText = "Item Number")] public string ItemNumber { get; set; } /// /// Item master planning family /// [OutputColumn(Order = 50, HeaderText = "Planning Family")] public string PlanningFamily { get; set; } /// /// Item master stocking type /// [OutputColumn(Order = 55, HeaderText = "Stocking Type")] public string StockingType { get; set; } /// /// Order quantity /// [OutputColumn(Order = 60, HeaderText = "Order Quantity")] public decimal OrderQuantity { get; set; } /// /// Quantity on hold /// [OutputColumn(Order = 70, HeaderText = "Held Quantity")] public decimal HeldQuantity { get; set; } /// /// Quantity scrapped/cancelled /// [OutputColumn(Order = 80, HeaderText = "Scrapped Quantity")] public decimal ScrappedQuantity { get; set; } /// /// Quantity shipped /// [OutputColumn(Order = 90, HeaderText = "Shipped Quantity")] public decimal ShippedQuantity { get; set; } /// /// Operation branch code /// [OutputColumn(Order = 100, HeaderText = "Operation Step Branch Code")] public string StepBranchCode { get; set; } /// /// Operation step number /// [OutputColumn(Order = 110, HeaderText = "Operation Step")] public decimal StepNumber { get; set; } /// /// Operation step description /// [OutputColumn(Order = 120, HeaderText = "Operation Step Description")] public string StepDescription { get; set; } /// /// Function operation description (long text) /// [OutputColumn(Order = 130, HeaderText = "Function Operation Description")] public string FunctionOperationDescription { get; set; } /// /// Timestamp of last update to operation step number /// [OutputColumn(Order = 140, HeaderText = "Operation Step Update Timestamp", Format = OutputColumnAttribute.TIMESTAMP_FORMAT)] public DateTime StepUpdateDT { get; set; } /// /// Order status code /// [OutputColumn(Order = 150, HeaderText = "Status Code")] public string StatusCode { get; set; } /// /// Order status description /// [OutputColumn(Order = 160, HeaderText = "Status Description")] public string StatusDescription { get; set; } /// /// Timestam of last update to order status /// [OutputColumn(Order = 170, HeaderText = "Status Update Timestamp", Format = OutputColumnAttribute.DATE_FORMAT)] public DateTime? StatusUpdateDT { get; set; } /// /// Work order was included because it was manually specified /// public bool ManuallySpecified { get; set; } /// /// Work order was included because it was split from a from flagged work order /// public bool SplitOrder { get; set; } /// /// Work order was included because it received parts from a flagged work order (CARDEX / F4111) /// public bool CARDEX { get; set; } /// /// Work order was included because it received parts from a flagged work order (parts list / F3111) /// public bool PartsList { get; set; } /// /// Work order was included because it met the filter criteria /// public bool Flagged { get; set; } /// /// Reason work order was included in results /// [OutputColumn(Order = 180, HeaderText = "Inclusion Reason")] public string InclusionReason { get { if (ManuallySpecified) { return "ManuallySpecified"; } if (Flagged) { return "Flagged"; } if (CARDEX && PartsList) { return "ComponentUsage (CARDEX + Parts List)"; } if (CARDEX && !PartsList) { return "ComponentUsage (CARDEX)"; } if (!CARDEX && PartsList) { return "ComponentUsage (Parts List)"; } if (SplitOrder) { return "Split order"; } return "UNKNOWN"; } } } }