private void LoadMaintainCostComplete() { if (_loadedApuMaintainCost && _loadedFhaMaintainCost && _loadedNonFhaMaintainCost && _loadedRegularCheckMaintainCost && _loadedSpecialRefitMaintainCost && _loadedUndercartMaintainCost) { Annuals.ToList().ForEach(p => { var maintainCostReport = MaintainCostReports.FirstOrDefault(q => q.Annual.Year == p.Year); var exist = true; if (maintainCostReport == null) { exist = false; maintainCostReport = new MaintainCost {Annual = new DateTime(p.Year, 1, 1)}; } maintainCostReport.ApuBudget = ApuMaintainCosts.Where(q => q.Year == p.Year).Sum(t => t.IncludeAddedValue); maintainCostReport.TotalBudget += maintainCostReport.ApuBudget; maintainCostReport.ApuActual = ApuMaintainCosts.Where(q => q.Year == p.Year) .Sum(t => t.AcutalAmount); maintainCostReport.TotalActual += maintainCostReport.ApuActual; maintainCostReport.FhaBudget = FhaMaintainCosts.Where(q => q.Year == p.Year).Sum(t => t.CustomAdded); maintainCostReport.TotalBudget += maintainCostReport.FhaBudget; maintainCostReport.FhaActual = FhaMaintainCosts.Where(q => q.Year == p.Year) .Sum(t => t.AcutalAmount); maintainCostReport.TotalActual += maintainCostReport.FhaActual; maintainCostReport.NonFhaBudget = NonFhaMaintainCosts.Where(q => q.Year == p.Year).Sum(t => t.FinancialApprovalAmount); maintainCostReport.TotalBudget += maintainCostReport.NonFhaBudget; maintainCostReport.NonFhaActual = NonFhaMaintainCosts.Where(q => q.Year == p.Year).Sum(t => t.AcutalAmount); maintainCostReport.TotalActual += maintainCostReport.NonFhaActual; maintainCostReport.RegularCheckBudget = RegularCheckMaintainCosts.Where(q => q.Year == p.Year).Sum(t => t.FinancialApprovalAmount); maintainCostReport.TotalBudget += maintainCostReport.RegularCheckBudget; maintainCostReport.RegularCheckActual = RegularCheckMaintainCosts.Where(q => q.Year == p.Year).Sum(t => t.AcutalAmount); maintainCostReport.TotalActual += maintainCostReport.RegularCheckActual; maintainCostReport.SpecialRefitBudget = SpecialRefitMaintainCosts.Where(q => q.Year == p.Year).Sum(t => t.FinancialApprovalAmount); maintainCostReport.TotalBudget += maintainCostReport.SpecialRefitBudget; maintainCostReport.SpecialRefitActual = SpecialRefitMaintainCosts.Where(q => q.Year == p.Year).Sum(t => t.AcutalAmount); maintainCostReport.TotalActual += maintainCostReport.SpecialRefitActual; maintainCostReport.UndercartBudget = UndercartMaintainCosts.Where(q => q.Year == p.Year).Sum(t => t.FinancialApprovalAmount); maintainCostReport.TotalBudget += maintainCostReport.UndercartBudget; maintainCostReport.UndercartActual = UndercartMaintainCosts.Where(q => q.Year == p.Year).Sum(t => t.AcutalAmount); maintainCostReport.TotalActual += maintainCostReport.UndercartActual; if (!exist && maintainCostReport.TotalBudget != 0 && maintainCostReport.TotalActual != 0) MaintainCostReports.Add(maintainCostReport); }); RaisePropertyChanged(() => MaintainCostReports); var maintainCost = MaintainCostReports.LastOrDefault(); GenerateDetail(maintainCost); IsBusy = false; } }
private void GenerateDetail(MaintainCost maintainCost) { if (maintainCost != null) { SelectTitle = maintainCost.Annual.Year + "年维修成本明细"; MaintainCostDetails = new ObservableCollection<MaintainCostDetail> { new MaintainCostDetail { Name = "年度定检", Actual = maintainCost.RegularCheckActual, Budget = maintainCost.RegularCheckBudget, Color = maintainCost.RegularCheckActual > maintainCost.RegularCheckBudget ? "#FFF90202" : "#FFCCCCCC" }, new MaintainCostDetail { Name = "非FHA.超包修", Actual = maintainCost.NonFhaActual, Budget = maintainCost.NonFhaBudget, Color = maintainCost.NonFhaActual > maintainCost.NonFhaBudget ? "#FFF90202" : "#FFCCCCCC" }, new MaintainCostDetail { Name = "起落架", Actual = maintainCost.UndercartActual, Budget = maintainCost.UndercartBudget, Color = maintainCost.UndercartActual > maintainCost.UndercartBudget ? "#FFF90202" : "#FFCCCCCC" }, new MaintainCostDetail { Name = "特修改装", Actual = maintainCost.SpecialRefitActual, Budget = maintainCost.SpecialRefitBudget, Color = maintainCost.SpecialRefitActual > maintainCost.SpecialRefitBudget ? "#FFF90202" : "#FFCCCCCC" }, new MaintainCostDetail { Name = "FHA", Actual = maintainCost.FhaActual, Budget = maintainCost.FhaBudget, Color = maintainCost.FhaActual > maintainCost.FhaBudget ? "#FFF90202" : "#FFCCCCCC" }, new MaintainCostDetail { Name = "APU", Actual = maintainCost.ApuActual, Budget = maintainCost.ApuBudget, Color = maintainCost.ApuActual > maintainCost.ApuBudget ? "#FFF90202" : "#FFCCCCCC" }, }; } }