namespace MMDAL.DTO.InventoryReports { // Stock Movement tile -- composite dashboard object (same "Kpi+section+section" shape as // Finance's AccountReceivableDashboardReport), not a flat row list. Fresh design: legacy's // equivalent (StockLedgerDAL.GetStockLedger) is HQL/NHibernate object-graph navigation, not // portable SQL -- see the InventoryReportsQB provenance comment. Built directly against // TSTOCKLEDGER's real columns (STOCKPOSTTYPE 0=IN,1=OUT,2=WIP IN,3=WIP OUT -- confirmed via // GB5's own StockLedgerRowDTO.cs comment). public class StockMovementDashboardDTO { public List DailyTrend { get; set; } = new(); public List BySource { get; set; } = new(); public List TopMovers { get; set; } = new(); } public class DailyMovementDTO { public DateTime MovementDate { get; set; } public decimal InwardQuantity { get; set; } public decimal InwardValue { get; set; } public decimal OutwardQuantity { get; set; } public decimal OutwardValue { get; set; } } public class MovementBySourceDTO { public int BizTransactionTypeId { get; set; } public string SourceLabel { get; set; } = string.Empty; public decimal Quantity { get; set; } public decimal Value { get; set; } } public class TopMovingItemDTO { public int ItemId { get; set; } public string ItemCode { get; set; } = string.Empty; public string ItemName { get; set; } = string.Empty; public decimal InwardQuantity { get; set; } public decimal OutwardQuantity { get; set; } } }