using System; using System.Collections.Generic; using System.Linq; namespace ODCWeb.Models.ViewModels { public class MaterialListtViewModel { public ODCProject Project { get; set; } public List Floors { get; set; } public List Actions { get; set; } public List Tasks { get; set; } public List Materials { get; set; } public Dictionary> MaterialsByCategory { get; set; } public List MaterialSummary { get; set; } // Statistics public int TotalMaterialTypes { get; set; } public int TotalMaterialItems { get; set; } public double TotalPlannedCost { get; set; } public double TotalActualCost { get; set; } public int TasksWithMaterials { get; set; } public int TasksWithoutMaterials { get; set; } // Calculated properties public double CostVariance => TotalActualCost - TotalPlannedCost; public double CostVariancePercentage => TotalPlannedCost > 0 ? (CostVariance / TotalPlannedCost) * 100 : 0; } public class MaterialSummaryItem { public string MaterialName { get; set; } public string Unit { get; set; } public double TotalPlannedQuantity { get; set; } public double TotalActualQuantity { get; set; } public double AverageRate { get; set; } public double TotalPlannedCost { get; set; } public double TotalActualCost { get; set; } public double Variance { get; set; } public double VariancePercentage { get; set; } public double CostVariance { get; set; } public int UsageCount { get; set; } public List Locations { get; set; } public string Category { get; set; } } }