diff --git a/BeWo/BeWoApp.xaml.cs b/BeWo/BeWoApp.xaml.cs index 16ba83807..43da3999d 100644 --- a/BeWo/BeWoApp.xaml.cs +++ b/BeWo/BeWoApp.xaml.cs @@ -200,6 +200,7 @@ namespace BeWo bool dontShowSpitzabrechnung = false; bool showDienstplanung = false; var showEmployeeSignature = false; + var showMultipleResourceColors = false; AppSettings.ShowAdvisedAttendedFlag = false; @@ -429,6 +430,12 @@ namespace BeWo showEmployeeSignature = true; } + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowMultipleResourceColors); + if(val != null && val.Equals("1")) + { + showMultipleResourceColors = true; + } + switch (_Mandator.BeWoClientType) { case 1: @@ -523,7 +530,7 @@ namespace BeWo AppSettings.DontShowSpitzabrechnung = dontShowSpitzabrechnung; AppSettings.ShowDienstplanung = showDienstplanung; AppSettings.ShowEmployeeSignature = showEmployeeSignature; - + AppSettings.ShowMultipleResourceColors = showMultipleResourceColors; BS.Shared.Settings.ApplicationSettings.SupportConceptExpirationLimitInMonths = AppSettings.HilfeplanAuslaufAuswahl; } diff --git a/BeWo/Core/Config/AppSettings.cs b/BeWo/Core/Config/AppSettings.cs index 9cf49475d..c052ee94d 100644 --- a/BeWo/Core/Config/AppSettings.cs +++ b/BeWo/Core/Config/AppSettings.cs @@ -356,6 +356,8 @@ namespace BeWo.Core.Config public bool PrinterSettingsUseMargins { get; set; } + public bool ShowMultipleResourceColors { get; set; } + public bool ShowPivotGrid { get; set; } public string ExpandedAdministrationItems { get; set; } diff --git a/BeWo/Scheduler/View/NewSchedulerView.xaml b/BeWo/Scheduler/View/NewSchedulerView.xaml index b206aab27..04b8147ca 100644 --- a/BeWo/Scheduler/View/NewSchedulerView.xaml +++ b/BeWo/Scheduler/View/NewSchedulerView.xaml @@ -151,7 +151,7 @@ - + @@ -211,6 +211,7 @@ + diff --git a/BeWo/Scheduler/View/NewSchedulerView.xaml.cs b/BeWo/Scheduler/View/NewSchedulerView.xaml.cs index d540530fc..6fcbccb88 100644 --- a/BeWo/Scheduler/View/NewSchedulerView.xaml.cs +++ b/BeWo/Scheduler/View/NewSchedulerView.xaml.cs @@ -2909,18 +2909,35 @@ namespace BeWo.Scheduler.View switch(farbKollektion.Count) { case 1: - var first = aptResources.FirstOrDefault(); + if (BeWoApp.AppSettings.ShowMultipleResourceColors) + { + AddResourceColors(gradientCollection, aptResources, false); + } + else + { + var first = aptResources.FirstOrDefault(); - gradientCollection.Add(first != null ? new GradientStop((Color) (ColorConverter.ConvertFromString(first.Color) ?? Color.FromRgb(4, 180, 208)), 1) : new GradientStop(farbKollektion[0], 1)); + gradientCollection.Add(first != null ? new GradientStop((Color)(ColorConverter.ConvertFromString(first.Color) ?? Color.FromRgb(4, 180, 208)), 1) : new GradientStop(farbKollektion[0], 1)); + } + break; case 2: + // 1. Klientenfarbe gradientCollection.Add(new GradientStop(farbKollektion[0], 0.5)); - var first2 = aptResources.FirstOrDefault(); - - if(first2 != null) + // 2. Resourcenfarben + if(BeWoApp.AppSettings.ShowMultipleResourceColors) { - gradientCollection.Add(new GradientStop((Color) (ColorConverter.ConvertFromString(first2.Color) ?? Color.FromRgb(4, 180, 208)), 0.5)); + AddResourceColors(gradientCollection, aptResources, true); + } + else + { + var first2 = aptResources.FirstOrDefault(); + + if (first2 != null) + { + gradientCollection.Add(new GradientStop((Color)(ColorConverter.ConvertFromString(first2.Color) ?? Color.FromRgb(4, 180, 208)), 0.5)); + } } break; @@ -2941,6 +2958,43 @@ namespace BeWo.Scheduler.View { throw new NotImplementedException(); } + + private static void AddResourceColors(GradientStopCollection gradientCollection, IReadOnlyList resourceList, bool hasCustomers) + { + var previousOffset = hasCustomers ? 0.5 : 0; + + var numberOfResources = resourceList.Count; + + if(numberOfResources == 0) + { + return; + } + + if(numberOfResources > 4) + { + numberOfResources = 4; + } + + var iterator = hasCustomers == false ? 1d / numberOfResources : previousOffset / numberOfResources; + + for(var i = 0; i < numberOfResources; i++) + { + var resource = resourceList[i]; + + var currentOffset = previousOffset; + var nextOffset = currentOffset + iterator; + + if(nextOffset > 1) + { + nextOffset = 1; + } + + previousOffset = nextOffset; + + gradientCollection.Add(new GradientStop((Color)(ColorConverter.ConvertFromString(resource.Color) ?? Color.FromRgb(4, 180, 208)), currentOffset)); + gradientCollection.Add(new GradientStop((Color)(ColorConverter.ConvertFromString(resource.Color) ?? Color.FromRgb(4, 180, 208)), nextOffset)); + } + } } public class AppointmentBorderZusageConverter : IValueConverter diff --git a/BeWoPlanerMobil/Controllers/MainController.cs b/BeWoPlanerMobil/Controllers/MainController.cs index 3f36f2e54..86ac647c5 100644 --- a/BeWoPlanerMobil/Controllers/MainController.cs +++ b/BeWoPlanerMobil/Controllers/MainController.cs @@ -553,12 +553,15 @@ namespace BeWoPlanerMobil.Controllers var statisticPeriod = new StatisticPeriod(); - statisticPeriod.Header2Values.AddIfNotIn(new Header2Values("Bewilligungszeitraum:", "Gesamt")); - statisticPeriod.Header2Values.AddIfNotIn(new Header2Values("Geleistet diese Woche/gesamt:", $"{provided:0.00}/{providedTotal:0.00}")); - statisticPeriod.Header2Values.AddIfNotIn(new Header2Values("Bewilligt pro Woche/gesamt:", $"{approved:0.00}/{approvedTotal:0.00}")); - statisticPeriod.Header2Values.AddIfNotIn(new Header2Values("Frei pro Woche(Ø)/gesamt:", $"{freePerWeek:0.00}/{freePerWeekTotal:0.00}")); + if(supportConceptStatistics.PeriodStatistics.Count != 1) + { + statisticPeriod.Header2Values.AddIfNotIn(new Header2Values("Bewilligungszeitraum:", "Gesamt")); + statisticPeriod.Header2Values.AddIfNotIn(new Header2Values("Geleistet diese Woche/gesamt:", $"{provided:0.00}/{providedTotal:0.00}")); + statisticPeriod.Header2Values.AddIfNotIn(new Header2Values("Bewilligt pro Woche/gesamt:", $"{approved:0.00}/{approvedTotal:0.00}")); + statisticPeriod.Header2Values.AddIfNotIn(new Header2Values("Frei pro Woche(Ø)/gesamt:", $"{freePerWeek:0.00}/{freePerWeekTotal:0.00}")); - supportConceptStatisticsData.StatisticPeriods.Add(statisticPeriod); + supportConceptStatisticsData.StatisticPeriods.Add(statisticPeriod); + } foreach(var periodStatistics in supportConceptStatistics.PeriodStatistics) { diff --git a/Shared/Core/SettingsKeys.cs b/Shared/Core/SettingsKeys.cs index 45865bbe9..1d772034a 100644 --- a/Shared/Core/SettingsKeys.cs +++ b/Shared/Core/SettingsKeys.cs @@ -60,6 +60,7 @@ public static string SchedulerViewType => "SchedulerViewType"; public static string SchedulerTimelineViewDayCount => "SchedulerTimelineViewDayCount"; public static string SchedulerDayViewDayCount => "SchedulerDayViewDayCount"; + public static string ShowMultipleResourceColors => "ShowMultipleResourceColors"; // Keys Für die Web.config von Host