diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj
index 9d879a3f6..388313a3c 100644
--- a/BeWo/BeWo.csproj
+++ b/BeWo/BeWo.csproj
@@ -291,6 +291,14 @@
MSBuild:Compile
Designer
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
MSBuild:Compile
@@ -630,6 +638,7 @@
+
@@ -653,6 +662,7 @@
Component
+
@@ -697,9 +707,13 @@
+
+
+ AbsenceTimeEditView.xaml
+
SbdAdminView.xaml
@@ -875,6 +889,9 @@
BudgetView.xaml
+
+
+ AbsenceTimesView.xaml
AbwesenheitstabelleView.xaml
diff --git a/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml b/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml
index 6665ca588..6e62e273a 100644
--- a/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml
+++ b/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml
@@ -81,10 +81,19 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml.cs b/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml.cs
index af5587ab3..12cc8acb2 100644
--- a/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml.cs
+++ b/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml.cs
@@ -71,6 +71,18 @@ namespace BeWo.View.Detail.Report
_SchedulerControl.RemoveService(typeof(IMouseHandlerService));
_SchedulerControl.AddService(typeof(IMouseHandlerService), newMouseHandler);
}
+
+ var kategorien = ServiceFacade.DoOperationsServiceSync(x => x.GetAllAbsenceReason());
+ foreach (var item in kategorien)
+ {
+ FilterAbwesenheit.Items.Add(item);
+ }
+
+ var arbeitsarten = ServiceFacade.DoEmployeeServiceSync(x => x.GetAllEmploymentTypes());
+ foreach (var item in arbeitsarten)
+ {
+ FilterBeschaftigungsart.Items.Add(item);
+ }
}
private void _SchedularStorage_AppointmentInserting(object sender, PersistentObjectCancelEventArgs e)
@@ -134,6 +146,7 @@ namespace BeWo.View.Detail.Report
.Where(emp => empIDs.Contains(emp.EmployeeOid.Value)))
.ToList()
.OrderBy(x => x.LastNameFirstName);
+
try
{
@@ -150,7 +163,8 @@ namespace BeWo.View.Detail.Report
}
_ResourceStorage.Clear();
- foreach (var employee in empWithAbsence)
+ var listEmps = FilterBeschaftigungsart.SelectedItems.Count == 0 ? empWithAbsence : empWithAbsence.Where(x => x.Contracts.Exists(y => FilterBeschaftigungsart.SelectedItems.Contains(y.EmploymentType)));
+ foreach (var employee in listEmps)
{
var resource = _SchedularStorage.CreateResource(employee.EmployeeOid.Value.ToString());
@@ -160,7 +174,10 @@ namespace BeWo.View.Detail.Report
}
_AppointmentStorage.Clear();
- foreach (var absenceTime in absenceTimes)
+ var listAbs = (FilterAbwesenheit.SelectedItems.Count == 0 ? absenceTimes : absenceTimes.Where(x => FilterAbwesenheit.SelectedItems.Contains(x.Reason)))
+ .Where(y => listEmps.Select(x => x.EmployeeOid).Contains(y.EmployeeOid));
+
+ foreach (var absenceTime in listAbs)
{
var appointment = _SchedularStorage.CreateAppointment(AppointmentType.Normal);