using System; using System.Collections.Generic; using System.Linq; namespace ODCWeb.Models.ViewModels { public class TaskVsMaterialViewModel { 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 List TaskDetails { get; set; } // Summary Statistics public int TotalTasks { get; set; } public int TasksWithMaterials { get; set; } public int TasksWithoutMaterials { get; set; } public int TotalMaterials { get; set; } public double TotalMaterialCost { get; set; } public double TotalActualMaterialCost { get; set; } } public class TaskMaterialDetail { public ActionTask Task { get; set; } public string FloorName { get; set; } public string ActionName { get; set; } public List Materials { get; set; } public int MaterialCount { get; set; } public double TotalMaterialCost { get; set; } public double TotalPlannedQuantity { get; set; } public double TotalActualQuantity { get; set; } public bool HasMaterials { get; set; } public double QuantityVariance => TotalActualQuantity - TotalPlannedQuantity; public double VariancePercentage => TotalPlannedQuantity > 0 ? (QuantityVariance / TotalPlannedQuantity) * 100 : 0; } }