diff --git a/.gitignore b/.gitignore index 6118de6ca..0c658d2d9 100644 --- a/.gitignore +++ b/.gitignore @@ -479,3 +479,4 @@ /ReportImp/VerbandEvKirchengemeindenDorsten/obj/Release /ReportImp/MVZMedikusGmbH/obj /ReportImp/BetreuungsbueroFrankRoehrig/obj +/ReportImp/PassgenauUG/obj/Debug diff --git a/BeWo.sln b/BeWo.sln index 3d992d536..780f82cab 100644 --- a/BeWo.sln +++ b/BeWo.sln @@ -419,6 +419,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BetreuungsbueroFrankRoehrig EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MVZMedikusGmbH", "ReportImp\MVZMedikusGmbH\MVZMedikusGmbH.csproj", "{D71875ED-CD52-43D9-B066-843E891EDA0E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PassgenauUG", "ReportImp\PassgenauUG\PassgenauUG.csproj", "{87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|.NET = Debug|.NET @@ -3158,6 +3160,22 @@ Global {D71875ED-CD52-43D9-B066-843E891EDA0E}.Release|Mixed Platforms.Build.0 = Release|Any CPU {D71875ED-CD52-43D9-B066-843E891EDA0E}.Release|x86.ActiveCfg = Release|Any CPU {D71875ED-CD52-43D9-B066-843E891EDA0E}.Release|x86.Build.0 = Release|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Debug|.NET.ActiveCfg = Debug|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Debug|.NET.Build.0 = Debug|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Debug|x86.ActiveCfg = Debug|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Debug|x86.Build.0 = Debug|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Release|.NET.ActiveCfg = Release|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Release|.NET.Build.0 = Release|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Release|Any CPU.Build.0 = Release|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Release|x86.ActiveCfg = Release|Any CPU + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -3363,6 +3381,7 @@ Global {CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0} = {D8A691C5-146D-4613-86CC-438F02FE9106} {C252012D-4EE1-4262-B599-28297AE41E9C} = {D8A691C5-146D-4613-86CC-438F02FE9106} {D71875ED-CD52-43D9-B066-843E891EDA0E} = {D8A691C5-146D-4613-86CC-438F02FE9106} + {87D57693-C3EB-4DD0-8C32-4C8D7BE9066E} = {D8A691C5-146D-4613-86CC-438F02FE9106} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9} diff --git a/BeWo/View/Controls/DPCtrlDay.cs b/BeWo/View/Controls/DPCtrlDay.cs index df599c9cd..8bc443476 100644 --- a/BeWo/View/Controls/DPCtrlDay.cs +++ b/BeWo/View/Controls/DPCtrlDay.cs @@ -29,46 +29,69 @@ namespace BeWo.View.Controls if (c != null && info != null) { - var dc = info.DienstInfoDC; - - var right = info.DayOfWeek == DayOfWeek.Sunday || info.IsLastColumn; - var bottom = info.IsLastRow; - - c.Border = new Thickness(0, 0, Convert.ToDouble(right), Convert.ToDouble(bottom)); - - if (!info.IsInContractRange) + if(info.StatusInformation == null) { - c.Background = Brushes.Gray; - c.Foreground = Brushes.Red; - c.Text = string.Empty; - c.ToolTip = "Kein gültiger Arbeitsvertrag"; - } - else if (info.Reason != null) - { - c.Background = Brushes.White; - c.Foreground = Brushes.Red; - c.Text = $"{info.Reason.Description[0]}"; - c.ToolTip = $"{info.Reason.Description}"; - } - else if (dc != null) - { - var bg = string.IsNullOrEmpty(dc.Farbe) ? Brushes.White : (SolidColorBrush)new BrushConverter().ConvertFrom(dc.Farbe); - var grey = 0.2989 * bg.Color.R + 0.5870 * bg.Color.G + 0.1140 * bg.Color.B; + var dc = info.DienstInfoDC; - c.Background = bg; - c.Foreground = grey < 70 ? Brushes.White : Brushes.Black; - c.ToolTip = new DPCtrlDienstTooltip(dc); + var right = info.DayOfWeek == DayOfWeek.Sunday || info.IsLastColumn; + var bottom = info.IsLastRow; + + c.Border = new Thickness(0, 0, Convert.ToDouble(right), Convert.ToDouble(bottom)); + + if (!info.IsInContractRange) + { + c.Background = Brushes.Gray; + c.Foreground = Brushes.Red; + c.Text = string.Empty; + c.ToolTip = "Kein gültiger Arbeitsvertrag"; + } + else if (info.Reason != null) + { + c.Background = Brushes.White; + c.Foreground = Brushes.Red; + c.Text = $"{info.Reason.Description[0]}"; + c.ToolTip = $"{info.Reason.Description}"; + } + else if (dc != null) + { + var bg = string.IsNullOrEmpty(dc.Farbe) ? Brushes.White : (SolidColorBrush)new BrushConverter().ConvertFrom(dc.Farbe); + var grey = 0.2989 * bg.Color.R + 0.5870 * bg.Color.G + 0.1140 * bg.Color.B; + + c.Background = bg; + c.Foreground = grey < 70 ? Brushes.White : Brushes.Black; + c.ToolTip = new DPCtrlDienstTooltip(dc); + } + else + { + c.Background = ((int)info.DayOfWeek % 6 == 0) ? new SolidColorBrush(ColorExtensions.FromHexString("EFEFEF")) : Brushes.White; + c.Text = string.Empty; + c.ToolTip = null; + } + + if (dc != null) + { + c.Text = $"{dc.Kurz}"; + } } else { - c.Background = ((int)info.DayOfWeek % 6 == 0) ? new SolidColorBrush(ColorExtensions.FromHexString("EFEFEF")) : Brushes.White; - c.Text = string.Empty; - c.ToolTip = null; - } + var right = info.DayOfWeek == DayOfWeek.Sunday || info.IsLastColumn; + c.Border = new Thickness(0, 0, Convert.ToDouble(right), 1); - if (dc != null) - { - c.Text = $"{dc.Kurz}"; + if (info.StatusInformation.BesetzungsStatus != null) + { + if (info.StatusInformation.BesetzungsStatus) + { + //var color = ServiceFacade.DoOperationsServiceSync(se => se.GetColorForStatus(info.StatusInformation.WenigerAls8Stunden)); + c.Background = Brushes.ForestGreen; + c.ToolTip = "Dienste decken 24 Stunden ab"; + } + else + { + c.Background = Brushes.IndianRed; + c.ToolTip = "Achtung: Dienste decken nicht 24 Stunden ab"; + } + } } } })); @@ -126,6 +149,13 @@ namespace BeWo.View.Controls public bool IsLastRow { get; set; } public bool IsLastColumn { get; set; } public DayOfWeek DayOfWeek { get; set; } + public StatusInformation StatusInformation { get; set; } } + public class StatusInformation + { + public bool BesetzungsStatus { get; set; } + public DayOfWeek DayOfWeek { get; set; } + public bool IsLastColumn { get; set; } + } } diff --git a/BeWo/View/Controls/DPCtrlEmployee.cs b/BeWo/View/Controls/DPCtrlEmployee.cs index 11b20d834..d6c261aa7 100644 --- a/BeWo/View/Controls/DPCtrlEmployee.cs +++ b/BeWo/View/Controls/DPCtrlEmployee.cs @@ -24,19 +24,30 @@ namespace BeWo.View.Controls { if (information != null) { - switch (information.Row) + if(information.Employee != null) { - case 0: - case 1: - case 2: - ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0); - ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 1); - break; - case 3: - ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1); - ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 1); - break; + switch (information.Row) + { + case 0: + ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0); + ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 1); + break; + case 1: + ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0); + ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 1); + break; + case 2: + ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1); + ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 1); + break; + } } + else + { + ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1); + ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 1); + } + ctrl.Text = ctrl.DisplayMember; @@ -70,49 +81,57 @@ namespace BeWo.View.Controls get { var sb = new StringBuilder(); - switch (EmployeeInformation.Row) + if (EmployeeInformation.Employee != null) { - case 0: return EmployeeInformation.Employee.LastNameFirstName; + switch (EmployeeInformation.Row) + { - case 1: + case 0: return EmployeeInformation.Employee.LastNameFirstName; - foreach (var contract in EmployeeInformation.Contracts) - { - sb.Append(contract.EmploymentType?.Name); - sb.Append('/'); - } + case 1: - sb.Remove(sb.Length - 1, 1); + foreach (var contract in EmployeeInformation.Contracts) + { + sb.Append(contract.EmploymentType?.Name); + sb.Append('/'); + } - return sb.ToString(); + sb.Remove(sb.Length - 1, 1); - case 2: + return sb.ToString(); - foreach (var contract in EmployeeInformation.Contracts) - { - sb.Append('('); + case 2: - if (contract.EntryDate.HasValue) - sb.Append(contract.EntryDate.Value.ToString("dd.MM")); - else - sb.Append("k.A."); + foreach (var contract in EmployeeInformation.Contracts) + { + sb.Append('('); - sb.Append('-'); + if (contract.EntryDate.HasValue) + sb.Append(contract.EntryDate.Value.ToString("dd.MM")); + else + sb.Append("k.A."); - if (contract.ContractEndDate.HasValue) - sb.Append(contract.ContractEndDate.Value.ToString("dd.MM")); - else - sb.Append("unbefr."); + sb.Append('-'); - sb.Append(')'); + if (contract.ContractEndDate.HasValue) + sb.Append(contract.ContractEndDate.Value.ToString("dd.MM")); + else + sb.Append("unbefr."); - sb.Append('/'); - } + sb.Append(')'); - sb.Remove(sb.Length - 1, 1); + sb.Append('/'); + } - return sb.ToString(); + sb.Remove(sb.Length - 1, 1); + return sb.ToString(); + + } + } + else + { + return "Besetzungsstatus"; } return null; diff --git a/BeWo/View/Controls/DPCtrlEmployeeTooltip.xaml.cs b/BeWo/View/Controls/DPCtrlEmployeeTooltip.xaml.cs index e4867f7fe..c6e71e910 100644 --- a/BeWo/View/Controls/DPCtrlEmployeeTooltip.xaml.cs +++ b/BeWo/View/Controls/DPCtrlEmployeeTooltip.xaml.cs @@ -20,58 +20,62 @@ namespace BeWo.View.Controls { InitializeComponent(); - TxtMitarbeiter.Text = employeeDC.LastNameFirstName; - - var separator = new Separator(); - - foreach (var contract in contractDCs) + if(employeeDC != null) { - var sep = new Separator(); - var txtType1 = new TextBlock(); - var txtType2 = new TextBlock(); - var txtArbeit1 = new TextBlock(); - var txtArbeit2 = new TextBlock(); + TxtMitarbeiter.Text = employeeDC.LastNameFirstName; - txtType1.Text = "Beschäftigungsart:"; - txtType2.Text = $"{contract.EmploymentType?.Name}"; + var separator = new Separator(); - txtArbeit1.Text = "Vereinbarte Regelarbeitszeit:"; - - if (contract.MonthlyTotalHours != null) + foreach (var contract in contractDCs) { - txtArbeit2.Text = $"{contract.MonthlyTotalHours.Value} Std/Monat"; + var sep = new Separator(); + var txtType1 = new TextBlock(); + var txtType2 = new TextBlock(); + var txtArbeit1 = new TextBlock(); + var txtArbeit2 = new TextBlock(); + + txtType1.Text = "Beschäftigungsart:"; + txtType2.Text = $"{contract.EmploymentType?.Name}"; + + txtArbeit1.Text = "Vereinbarte Regelarbeitszeit:"; + + if (contract.MonthlyTotalHours != null) + { + txtArbeit2.Text = $"{contract.MonthlyTotalHours.Value} Std/Monat"; + } + else if (contract.WeeklyTotalHours != null) + { + txtArbeit2.Text = $"{contract.WeeklyTotalHours.Value} Std/Woche"; + } + else + { + txtArbeit2.Text = $"k.A."; + } + + RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); + RootGrid.Children.Add(sep); + + Grid.SetRow(sep, RootGrid.RowDefinitions.Count - 1); + Grid.SetColumnSpan(sep, 3); + + RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); + RootGrid.Children.Add(txtType1); + RootGrid.Children.Add(txtType2); + + Grid.SetRow(txtType1, RootGrid.RowDefinitions.Count - 1); + Grid.SetRow(txtType2, RootGrid.RowDefinitions.Count - 1); + Grid.SetColumn(txtType2, 2); + + RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); + RootGrid.Children.Add(txtArbeit1); + RootGrid.Children.Add(txtArbeit2); + + Grid.SetRow(txtArbeit1, RootGrid.RowDefinitions.Count - 1); + Grid.SetRow(txtArbeit2, RootGrid.RowDefinitions.Count - 1); + Grid.SetColumn(txtArbeit2, 2); } - else if (contract.WeeklyTotalHours != null) - { - txtArbeit2.Text = $"{contract.WeeklyTotalHours.Value} Std/Woche"; - } - else - { - txtArbeit2.Text = $"k.A."; - } - - RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); - RootGrid.Children.Add(sep); - - Grid.SetRow(sep, RootGrid.RowDefinitions.Count - 1); - Grid.SetColumnSpan(sep, 3); - - RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); - RootGrid.Children.Add(txtType1); - RootGrid.Children.Add(txtType2); - - Grid.SetRow(txtType1, RootGrid.RowDefinitions.Count - 1); - Grid.SetRow(txtType2, RootGrid.RowDefinitions.Count - 1); - Grid.SetColumn(txtType2, 2); - - RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); - RootGrid.Children.Add(txtArbeit1); - RootGrid.Children.Add(txtArbeit2); - - Grid.SetRow(txtArbeit1, RootGrid.RowDefinitions.Count - 1); - Grid.SetRow(txtArbeit2, RootGrid.RowDefinitions.Count - 1); - Grid.SetColumn(txtArbeit2, 2); } + } } } \ No newline at end of file diff --git a/BeWo/View/Controls/DPCtrlWeek.cs b/BeWo/View/Controls/DPCtrlWeek.cs index ae13e7d54..4a434024a 100644 --- a/BeWo/View/Controls/DPCtrlWeek.cs +++ b/BeWo/View/Controls/DPCtrlWeek.cs @@ -40,7 +40,7 @@ namespace BeWo.View.Controls } else { - c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0); + c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1); c.Text = ""; } diff --git a/BeWo/View/Detail/Report/DienstplanerView.xaml b/BeWo/View/Detail/Report/DienstplanerView.xaml index ff286f949..013f67494 100644 --- a/BeWo/View/Detail/Report/DienstplanerView.xaml +++ b/BeWo/View/Detail/Report/DienstplanerView.xaml @@ -24,9 +24,7 @@ - - - + @@ -84,7 +82,7 @@