Initial commit: JDE Scoping Tool migration project

Set up repository with legacy .NET Framework 4.8 source (OLD/),
new .NET 10 Blazor solution (NEW/), OpenSpec specifications,
documentation, and project configuration.
This commit is contained in:
Joseph Doherty
2026-01-02 07:43:29 -05:00
commit 26ff8d9b4f
1761 changed files with 596509 additions and 0 deletions
@@ -0,0 +1,49 @@
using JdeScoping.Core.Helpers;
namespace JdeScoping.Core.Models.Inventory;
/// <summary>
/// JDE item (part type) master entity
/// </summary>
public class Item
{
/// <summary>
/// Item unique short number
/// </summary>
public long ShortItemNumber { get; set; }
/// <summary>
/// Item unique number
/// </summary>
public string ItemNumber { get; set; } = string.Empty;
/// <summary>
/// Item description
/// </summary>
public string Description { get; set; } = string.Empty;
/// <summary>
/// Item master planning family
/// </summary>
public string? PlanningFamily { get; set; }
/// <summary>
/// Item master stocking type code
/// </summary>
public string? StockingType { get; set; }
/// <summary>
/// JDE date of last update to record (private backing field for Dapper mapping)
/// </summary>
private int LastUpdateDate { get; set; }
/// <summary>
/// JDE time of day of last update to record (private backing field for Dapper mapping)
/// </summary>
private int LastUpdateTime { get; set; }
/// <summary>
/// Timestamp of last update to record (computed from JDE date/time)
/// </summary>
public DateTime? LastUpdateDt => JdeDateConverter.ToDateTime(LastUpdateDate, LastUpdateTime);
}
@@ -0,0 +1,69 @@
using JdeScoping.Core.Helpers;
namespace JdeScoping.Core.Models.Inventory;
/// <summary>
/// JDE lot entity
/// </summary>
public class Lot
{
/// <summary>
/// Lot unique number
/// </summary>
public string LotNumber { get; set; } = string.Empty;
/// <summary>
/// Business unit unique code
/// </summary>
public string BranchCode { get; set; } = string.Empty;
/// <summary>
/// Short item number
/// </summary>
public long ShortItemNumber { get; set; }
/// <summary>
/// Item number
/// </summary>
public string ItemNumber { get; set; } = string.Empty;
/// <summary>
/// Supplier address number
/// </summary>
public long SupplierCode { get; set; }
/// <summary>
/// Lot status code
/// </summary>
public char StatusCode { get; set; }
/// <summary>
/// Memo line 1
/// </summary>
public string? Memo1 { get; set; }
/// <summary>
/// Memo line 2
/// </summary>
public string? Memo2 { get; set; }
/// <summary>
/// Memo line 3
/// </summary>
public string? Memo3 { get; set; }
/// <summary>
/// JDE date of last update to record (private backing field for Dapper mapping)
/// </summary>
private int LastUpdateDate { get; set; }
/// <summary>
/// JDE time of day of last update to record (private backing field for Dapper mapping)
/// </summary>
private int LastUpdateTime { get; set; }
/// <summary>
/// Timestamp of last update to record (computed from JDE date/time)
/// </summary>
public DateTime? LastUpdateDt => JdeDateConverter.ToDateTime(LastUpdateDate, LastUpdateTime);
}
@@ -0,0 +1,32 @@
namespace JdeScoping.Core.Models.Inventory;
/// <summary>
/// JDE lot location entity
/// </summary>
public class LotLocation
{
/// <summary>
/// Lot unique number
/// </summary>
public string LotNumber { get; set; } = string.Empty;
/// <summary>
/// Short item number
/// </summary>
public long ShortItemNumber { get; set; }
/// <summary>
/// Business unit unique code
/// </summary>
public string BranchCode { get; set; } = string.Empty;
/// <summary>
/// Location code where lot is located
/// </summary>
public string Location { get; set; } = string.Empty;
/// <summary>
/// Timestamp of last update to record
/// </summary>
public DateTime? LastUpdateDt { get; set; }
}
@@ -0,0 +1,54 @@
using JdeScoping.Core.Helpers;
namespace JdeScoping.Core.Models.Inventory;
/// <summary>
/// Cardex (lot usage) entry entity
/// </summary>
public class LotUsage
{
/// <summary>
/// Record unique / PK ID
/// </summary>
public long UniqueId { get; set; }
/// <summary>
/// Work order unique number
/// </summary>
public long WorkOrderNumber { get; set; }
/// <summary>
/// Lot number of component
/// </summary>
public string LotNumber { get; set; } = string.Empty;
/// <summary>
/// Component issuance branch code
/// </summary>
public string BranchCode { get; set; } = string.Empty;
/// <summary>
/// Component item short number
/// </summary>
public long ShortItemNumber { get; set; }
/// <summary>
/// Transaction quantity
/// </summary>
public decimal Quantity { get; set; }
/// <summary>
/// JDE date of last update to record (private backing field for Dapper mapping)
/// </summary>
private int LastUpdateDate { get; set; }
/// <summary>
/// JDE time of day of last update to record (private backing field for Dapper mapping)
/// </summary>
private int LastUpdateTime { get; set; }
/// <summary>
/// Timestamp of last update to record (computed from JDE date/time)
/// </summary>
public DateTime? LastUpdateDt => JdeDateConverter.ToDateTime(LastUpdateDate, LastUpdateTime);
}