namespace MMDAL.DTO.InventoryReports { // One row per Item+SKU+Store currently below its reorder level, with pending PO supply and // pending demand netted against it. Modeled on legacy GB4's RegisterQueryBuilder // .GET_BELOW_ROL_STORE_SKU_REPORT (Type 2, Store+SKU level) -- see // Docs/AccountReports/AccountReports_DeveloperPlaybook.md for the migration process this // followed. public class ReorderBreachReportDTO { public int ItemCategoryId { get; set; } public string ItemCategoryCode { get; set; } = string.Empty; public string ItemCategoryName { get; set; } = string.Empty; public int StoreId { get; set; } public string StoreCode { get; set; } = string.Empty; public string StoreName { get; set; } = string.Empty; public int ItemId { get; set; } public string ItemCode { get; set; } = string.Empty; public string ItemName { get; set; } = string.Empty; public int SKUId { get; set; } public string SKUCode { get; set; } = string.Empty; public string SKUName { get; set; } = string.Empty; public decimal ROL { get; set; } public int LeadTime { get; set; } public decimal LotSize { get; set; } public decimal MaxLevel { get; set; } public decimal MinLevel { get; set; } public decimal AvailableQuantity { get; set; } public decimal ReservedQuantity { get; set; } public decimal SOH { get; set; } public string UOMCode { get; set; } = string.Empty; public string BinNumber { get; set; } = string.Empty; public decimal LastPurchaseRate { get; set; } // Demand/supply netting via TPENDINGALLOCATION.DEMANDSUPPLYTYPE (4=Supply, 1=Demand). public decimal SupplyPending { get; set; } public decimal DemandPending { get; set; } public decimal SupplyOpenQuantity { get; set; } public decimal DemandOpenQuantity { get; set; } public decimal NetSupplyDemand { get; set; } // Pending quantity from open documents whose BizTransactionType's class is the // Purchase-Order supply class (sentinel -1499999975 -- confirmed still live on this schema, // reused by GB5Solution/Compliance/ComplianceDAL/Query/GSTEWayBill/EWayBillPayloadQB.cs). public decimal POPendingQuantity { get; set; } // Recommended order quantity: MinLevel-SOH if below min, else MaxLevel-SOH. public decimal RequiredQuantity { get; set; } // RequiredQuantity net of already-open PO supply -- the actual quantity still to raise. public decimal BalanceQuantity { get; set; } } }