diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj
index 0312d6f50..2200593ce 100644
--- a/BeWo/BeWo.csproj
+++ b/BeWo/BeWo.csproj
@@ -634,6 +634,7 @@
+
@@ -665,6 +666,7 @@
SchulbegleitenderDienstEmployeeView.xaml
+
VertretenderKlientSearchView.xaml
diff --git a/BeWo/Converter/StringLengthVisibilityMultiConverter.cs b/BeWo/Converter/StringLengthVisibilityMultiConverter.cs
new file mode 100644
index 000000000..e39e0dfd2
--- /dev/null
+++ b/BeWo/Converter/StringLengthVisibilityMultiConverter.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Globalization;
+using System.Linq;
+using System.Windows;
+using System.Windows.Data;
+
+namespace BeWo.Converter
+{
+ public class StringLengthVisibilityMultiConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ if(values == null || values.Length < 2 || values.Any(a => string.IsNullOrWhiteSpace(a?.ToString())))
+ {
+ return Visibility.Collapsed;
+ }
+
+ return Visibility.Visible;
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) => throw new NotImplementedException();
+ }
+}
diff --git a/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml b/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml
index ff5d3e938..90d8c6a01 100644
--- a/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml
+++ b/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml
@@ -2,10 +2,9 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
- Background="Transparent" Height="130" Width="350" WindowStartupLocation="CenterScreen" WindowStyle="None">
-
-
-
+ Background="Transparent" WindowStartupLocation="CenterScreen" WindowStyle="None" SizeToContent="WidthAndHeight" AllowsTransparency="True">
+
+
@@ -19,18 +18,16 @@
-
-
-
-
+
+
+
-
-
-
+
+
+
-
diff --git a/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml.cs b/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml.cs
index 44914f35e..6c3b8d570 100644
--- a/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml.cs
+++ b/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml.cs
@@ -1,6 +1,7 @@
using System;
using System.Windows;
using System.Windows.Input;
+using System.Windows.Interop;
namespace BeWo.SchulbegleitenderDienst
{
@@ -25,6 +26,8 @@ namespace BeWo.SchulbegleitenderDienst
private void RootGroupBox_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
+ e.Handled = true;
+
DragMove();
}
diff --git a/BeWo/SchulbegleitenderDienst/SBDUtils/SBDUtils.cs b/BeWo/SchulbegleitenderDienst/SBDUtils/SBDUtils.cs
new file mode 100644
index 000000000..fdcdcd81f
--- /dev/null
+++ b/BeWo/SchulbegleitenderDienst/SBDUtils/SBDUtils.cs
@@ -0,0 +1,71 @@
+using System;
+using System.Collections.Generic;
+using BS.Shared;
+using BS.Shared.Extensions;
+
+namespace BeWo.SchulbegleitenderDienst.SBDUtils
+{
+ public static class SBDUtils
+ {
+ public static SubstitutionListObject GetListType(List viewModels)
+ {
+ var unwantedSubstitutionList = new List();
+ var employeeSubstitutionList = new List();
+ var customerSubstitutionList = new List();
+
+ foreach (var viewModel in viewModels)
+ {
+ if(viewModel.VertretungsStatus != VertretungsStatus.KlientKrank)
+ {
+ var substitutionStartingDayCountCondition = false;
+
+ if (viewModel.Customer != null)
+ {
+ var substitutionNeededDate = DateTime.Now.AddDays(-1 * viewModel.Customer.SubstitutionStartingDayCount);
+
+ if (viewModel.Absencetime?.Start.HasValue ?? false)
+ {
+ substitutionStartingDayCountCondition = viewModel.Customer.SubstitutionNeed != SubstitutionNeed.NoSubstitutionWanted && substitutionNeededDate < viewModel.Absencetime.Start && viewModel.Customer.SubstitutionStartingDayCount > 0;
+ }
+ }
+
+ if (substitutionStartingDayCountCondition || viewModel.Vertretung?.VertretenderMitarbeiterOid != null || viewModel.Customer != null && viewModel.Customer.SubstitutionNeed == SubstitutionNeed.NoSubstitutionWanted)
+ {
+ unwantedSubstitutionList.AddIfNotIn(viewModel);
+ }
+ else
+ {
+ employeeSubstitutionList.AddIfNotIn(viewModel);
+ }
+ }
+ else
+ {
+ if(viewModel.Customer.SubstitutionNeed == SubstitutionNeed.SubstitutionNeeded || viewModel.Customer.SubstitutionNeed == SubstitutionNeed.SubstitutionWanted)
+ {
+ customerSubstitutionList.Add(viewModel);
+ }
+ else
+ {
+ unwantedSubstitutionList.Add(viewModel);
+ }
+ }
+ }
+
+ return new SubstitutionListObject(employeeSubstitutionList, customerSubstitutionList, unwantedSubstitutionList);
+ }
+ }
+
+ public struct SubstitutionListObject
+ {
+ public List AbsentEmployeesList { get; set; }
+ public List AbsentCustomersList { get; set; }
+ public List SubstitutionUnwantedList { get; set; }
+
+ public SubstitutionListObject(List absentEmployees, List absentCustomers, List substitutionUnwanted)
+ {
+ AbsentEmployeesList = absentEmployees;
+ AbsentCustomersList = absentCustomers;
+ SubstitutionUnwantedList = substitutionUnwanted;
+ }
+ }
+}
diff --git a/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstCustomerView.xaml b/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstCustomerView.xaml
index 32be6ac7b..6a10261a8 100644
--- a/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstCustomerView.xaml
+++ b/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstCustomerView.xaml
@@ -2,144 +2,125 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
- xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
- xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
- xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
- xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
+ xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
VerticalAlignment="Stretch" Focusable="True">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstCustomerView.xaml.cs b/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstCustomerView.xaml.cs
index 5ada0d5c7..90efab3a9 100644
--- a/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstCustomerView.xaml.cs
+++ b/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstCustomerView.xaml.cs
@@ -1,47 +1,22 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text.RegularExpressions;
+using System.Collections.Generic;
using System.Windows;
-using System.Windows.Controls.Primitives;
-using System.Windows.Documents;
-using System.Windows.Forms;
-using System.Windows.Forms.VisualStyles;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Navigation;
-using System.Windows.Threading;
-
-using BeWo.Core;
-using BeWo.Core.Service;
using BeWo.ViewModel;
using BeWo.ServiceProxy;
-using BeWo.View.Detail;
-using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared;
-using BS.Shared.Core;
using BS.Shared.DataContracts.Compact;
using DevExpress.Xpf.Editors;
-using Microsoft.Win32;
-using CheckBox = System.Windows.Controls.CheckBox;
-using KeyEventArgs = System.Windows.Input.KeyEventArgs;
-using MessageBox = System.Windows.MessageBox;
namespace BeWo.SchulbegleitenderDienst
{
public partial class SchulbegleitenderDienstCustomerView
{
-
- //private CustomerVM _ViewModel;
private List tokenlist = new List();
-
-
- Dictionary verfuegbarerWunschToken = new Dictionary();
- Dictionary verfuegbarerAusschlussToken = new Dictionary();
- private CustomerVM viewModel = null;
+ readonly Dictionary verfuegbarerWunschToken = new Dictionary();
+ readonly Dictionary verfuegbarerAusschlussToken = new Dictionary();
+
+ private CustomerVM _ViewModel;
public SchulbegleitenderDienstCustomerView(CustomerVM customer)
{
@@ -50,23 +25,19 @@ namespace BeWo.SchulbegleitenderDienst
ViewModel = customer;
GetAllTokenItems();
-
}
-
public CustomerVM ViewModel
{
- get { return viewModel; }
+ get => _ViewModel;
set
{
- viewModel = value;
- this.DataContext = value;
+ _ViewModel = value;
+ DataContext = value;
}
}
-
-
- private void GetAllTokenItems()
+ private void GetAllTokenItems()
{
tokenlist.Clear();
@@ -150,7 +121,6 @@ namespace BeWo.SchulbegleitenderDienst
ComboWunschAnzeige.EditValue = valuelist;
}
-
private void TokenEditorWunschBehavior_OnTokensChanged(object sender, TokensChangedEventArgs e)
{
@@ -184,7 +154,6 @@ namespace BeWo.SchulbegleitenderDienst
}
}
-
private void ComboWunschAnzeige_OnIsKeyboardFocusWithinChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (ComboWunschAnzeige.IsKeyboardFocusWithin)
@@ -196,6 +165,16 @@ namespace BeWo.SchulbegleitenderDienst
if (ComboAusschlussAnzeige.IsKeyboardFocusWithin)
ComboAusschlussAnzeige.IsPopupOpen = true;
}
-
+
+ private void SubstitutionNeedComboBox_OnSelectedIndexChanged(object sender, RoutedEventArgs e)
+ {
+ var comboBoxEdit = (ComboBoxEdit) sender;
+
+ if(comboBoxEdit.SelectedItem is KeyValuePair keyValuePair)
+ {
+ AbWelchemTagCBox.Visibility = keyValuePair.Key == SubstitutionNeed.SubstitutionWanted || keyValuePair.Key == SubstitutionNeed.SubstitutionNeeded ? Visibility.Visible : Visibility.Collapsed;
+ AbWelchemTagLabel.Visibility = keyValuePair.Key == SubstitutionNeed.SubstitutionWanted || keyValuePair.Key == SubstitutionNeed.SubstitutionNeeded ? Visibility.Visible : Visibility.Collapsed;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/BeWo/SchulbegleitenderDienst/TagesVertretung.cs b/BeWo/SchulbegleitenderDienst/TagesVertretung.cs
index 14769a732..9fca1e8d4 100644
--- a/BeWo/SchulbegleitenderDienst/TagesVertretung.cs
+++ b/BeWo/SchulbegleitenderDienst/TagesVertretung.cs
@@ -4,6 +4,7 @@ using System.Linq;
using BeWo.ServiceProxy;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
+using BS.Shared.Extensions;
namespace BeWo.SchulbegleitenderDienst
{
@@ -17,43 +18,45 @@ namespace BeWo.SchulbegleitenderDienst
{
var tagesansichtVM = new TagesansichtVM
{
- Absencetime = vertretungsItem.Absencetime,
- VertretungsStatus = vertretungsItem.VertretungsStatus,
- Employee = vertretungsItem.Employee,
- Customer = vertretungsItem.Customer,
- Schule = vertretungsItem.Schule,
- Arbeitszeiten = vertretungsItem.Arbeitszeiten,
- Bemerkung = vertretungsItem.Bemerkung,
- Vertretung = vertretungsItem.Vertretung,
- Datum = vertretungsItem.Datum,
- Vertreter = vertretungsItem.Vertreter,
- Krankheitsmeldung = vertretungsItem.Krankheitsmeldung,
- Krankheitszeitraum = vertretungsItem.Krankheitszeitraum,
- MitarbeiterStatusColor = vertretungsItem.MitarbeiterStatusColor,
- KlientStatusColor = vertretungsItem.KlientStatusColor,
- WochenansichtBemerkung = vertretungsItem.WochenansichtBemerkung,
- Dringlichkeit = vertretungsItem.Dringlichkeit,
- DringlichkeitColor = vertretungsItem.DringlichkeitColor,
- Teamleitung = vertretungsItem.Teamleitung,
- Pflege = vertretungsItem.Pflege,
- Toilettengang = vertretungsItem.Toilettengang,
- Aggressiv = vertretungsItem.Aggressiv,
- Geschlecht = vertretungsItem.Geschlecht,
- MitarbeiterEinsatzBei = vertretungsItem.MitarbeiterEinsatzBei,
- CustomerContactInformation = vertretungsItem.CustomerContactInformation,
- EmployeeContactInformation = vertretungsItem.EmployeeContactInformation,
- Schools = vertretungsItem.Schools,
- LastSubstitutions = vertretungsItem.LastSubstitutions,
- CustomerPflege = vertretungsItem.CustomerPflege,
- CustomerSchutzstufe = vertretungsItem.CustomerSchutzstufe,
- CustomerHygienebelehrung = vertretungsItem.CustomerHygienebelehrung,
- CustomerAggressivitaet = vertretungsItem.CustomerAggressivitaet,
- CustomerToilettengang = vertretungsItem.CustomerToilettengang,
- EmployeeAggressivitaet = vertretungsItem.EmployeeAggressivitaet,
- EmployeeToilettengang = vertretungsItem.EmployeeToilettengang,
- EmployeeSchutzstufe = vertretungsItem.EmployeeSchutzstufe,
- EmployeeHygienebelehrung = vertretungsItem.EmployeeHygienebelehrung,
- EmployeePflege = vertretungsItem.EmployeePflege
+ Absencetime = vertretungsItem.Absencetime,
+ Aggressiv = vertretungsItem.Aggressiv,
+ Arbeitszeiten = vertretungsItem.Arbeitszeiten,
+ Bemerkung = vertretungsItem.Bemerkung,
+ Customer = vertretungsItem.Customer,
+ CustomerAggressivitaet = vertretungsItem.CustomerAggressivitaet,
+ CustomerContactInformation = vertretungsItem.CustomerContactInformation,
+ CustomerHygienebelehrung = vertretungsItem.CustomerHygienebelehrung,
+ CustomerPflege = vertretungsItem.CustomerPflege,
+ CustomerSchutzstufe = vertretungsItem.CustomerSchutzstufe,
+ CustomerToilettengang = vertretungsItem.CustomerToilettengang,
+ Datum = vertretungsItem.Datum,
+ Dringlichkeit = vertretungsItem.Dringlichkeit,
+ DringlichkeitColor = vertretungsItem.DringlichkeitColor,
+ Employee = vertretungsItem.Employee,
+ EmployeeAggressivitaet = vertretungsItem.EmployeeAggressivitaet,
+ EmployeeContactInformation = vertretungsItem.EmployeeContactInformation,
+ EmployeeHygienebelehrung = vertretungsItem.EmployeeHygienebelehrung,
+ EmployeePflege = vertretungsItem.EmployeePflege,
+ EmployeeSchutzstufe = vertretungsItem.EmployeeSchutzstufe,
+ EmployeeToilettengang = vertretungsItem.EmployeeToilettengang,
+ Geschlecht = vertretungsItem.Geschlecht,
+ KlientStatusColor = vertretungsItem.KlientStatusColor,
+ Krankheitsmeldung = vertretungsItem.Krankheitsmeldung,
+ Krankheitszeitraum = vertretungsItem.Krankheitszeitraum,
+ LastSubstitutions = vertretungsItem.LastSubstitutions,
+ MitarbeiterEinsatzBei = vertretungsItem.MitarbeiterEinsatzBei,
+ MitarbeiterStatusColor = vertretungsItem.MitarbeiterStatusColor,
+ Pflege = vertretungsItem.Pflege,
+ Schools = vertretungsItem.Schools,
+ Schule = vertretungsItem.Schule,
+ Teamleitung = vertretungsItem.Teamleitung,
+ Toilettengang = vertretungsItem.Toilettengang,
+ Vertreter = vertretungsItem.Vertreter,
+ Vertretung = vertretungsItem.Vertretung,
+ VertretungsStatus = vertretungsItem.VertretungsStatus,
+ WochenansichtBemerkung = vertretungsItem.WochenansichtBemerkung,
+ VertreterInfoString = vertretungsItem.VertreterInfoString,
+ EmployeeAddressString = vertretungsItem.EmployeeAddressString
};
if (vertretungsItem.Arbeitszeiten != null && vertretungsItem.Arbeitszeiten.Any())
@@ -113,15 +116,58 @@ namespace BeWo.SchulbegleitenderDienst
}
}
- public void DeleteKrankmeldung(TagesansichtVM viewModel)
+ public void DeleteKrankmeldung(TagesansichtVM viewModel, bool? shouldDeleteWholeAbsenceTime, DateTime selectedDate)
{
- if (viewModel.Absencetime?.AbsenceTimeOid != null && viewModel.Absencetime.AbsenceTimeVersion.HasValue)
+ if(shouldDeleteWholeAbsenceTime == null)
{
- var oid2Version = new Dictionary {{viewModel.Absencetime.AbsenceTimeOid.Value, viewModel.Absencetime.AbsenceTimeVersion.Value}};
+ return;
+ }
- ServiceFacade.DoOperationsServiceSync(s => s.DeactivateAbsenceTime(oid2Version));
+ var absenceTime = viewModel.Absencetime;
+
+ if (absenceTime?.AbsenceTimeOid != null && absenceTime.AbsenceTimeVersion.HasValue)
+ {
+ var oid2Version = new Dictionary {{ absenceTime.AbsenceTimeOid.Value, absenceTime.AbsenceTimeVersion.Value}};
+
+ if(shouldDeleteWholeAbsenceTime.Value)
+ {
+ ServiceFacade.DoOperationsServiceSync(s => s.DeactivateAbsenceTime(oid2Version));
- DeleteVertretung(viewModel);
+ DeleteVertretung(viewModel);
+ }
+ else if(absenceTime.Start.HasValue && absenceTime.End.HasValue && selectedDate.InBetween(absenceTime.Start.Value, absenceTime.End.Value, false))
+ {
+ var secondAbsenceTime = new AbsenceTimeDC
+ {
+ Start = selectedDate.AddDays(1),
+ End = absenceTime.End,
+ CustomerOid = absenceTime.CustomerOid,
+ EmployeeOid = absenceTime.EmployeeOid,
+ KrankheitsMeldung = absenceTime.KrankheitsMeldung,
+ Notice = absenceTime.Notice,
+ Reason = absenceTime.Reason
+ };
+
+ absenceTime.End = selectedDate.AddDays(-1);
+
+ if(secondAbsenceTime.CustomerOid.HasValue)
+ {
+ ServiceFacade.DoOperationsServiceSync(s => s.InsertNewCustomerAbsenceTime(secondAbsenceTime.CustomerOid.Value, secondAbsenceTime));
+ }
+ else if(secondAbsenceTime.EmployeeOid.HasValue)
+ {
+ ServiceFacade.DoOperationsServiceSync(s => s.InsertNewEmployeeAbsenceTime(secondAbsenceTime.EmployeeOid.Value, secondAbsenceTime));
+ }
+
+ if(viewModel.Vertretung != null)
+ {
+ ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretungAndAbsenceTime(viewModel.Vertretung, absenceTime));
+ }
+ else
+ {
+ ServiceFacade.DoOperationsServiceSync(s => s.UpdateAbsenceTime(absenceTime));
+ }
+ }
}
}
@@ -170,10 +216,10 @@ namespace BeWo.SchulbegleitenderDienst
var absenceTime = new AbsenceTimeDC
{
- AbsenceTimeOid = viewModel.Absencetime.AbsenceTimeOid,
- Start = viewModel.StartDate,
- End = viewModel.EndDate,
- Reason = viewModel.Absencetime.Reason,
+ AbsenceTimeOid = viewModel.Absencetime.AbsenceTimeOid,
+ Start = viewModel.StartDate,
+ End = viewModel.EndDate,
+ Reason = viewModel.Absencetime.Reason,
KrankheitsMeldung = viewModel.Absencetime.KrankheitsMeldung
};
diff --git a/BeWo/SchulbegleitenderDienst/TagesansichtVM.cs b/BeWo/SchulbegleitenderDienst/TagesansichtVM.cs
index b7373952d..ac8472246 100644
--- a/BeWo/SchulbegleitenderDienst/TagesansichtVM.cs
+++ b/BeWo/SchulbegleitenderDienst/TagesansichtVM.cs
@@ -69,42 +69,42 @@ namespace BeWo.SchulbegleitenderDienst
{
get
{
- var zeitraum = "";
+ var zeitraum = string.Empty;
if (Vertretung != null)
{
if (Vertretung.VertretungsZeitraumVon.Date != Vertretung.VertretungsZeitraumBis.Date)
{
- if (Vertretung.VertretungsZeitraumVon.Hour == 0 &&
+ if (Vertretung.VertretungsZeitraumVon.Hour == 0 &&
Vertretung.VertretungsZeitraumVon.Minute == 0 &&
- Vertretung.VertretungsZeitraumBis.Hour == 0 &&
+ Vertretung.VertretungsZeitraumBis.Hour == 0 &&
Vertretung.VertretungsZeitraumBis.Minute == 0)
{
zeitraum =
- Vertretung.VertretungsZeitraumVon.Date.ToString("dd.MM.yyyy") + " - " +
- Vertretung.VertretungsZeitraumBis.Date.ToString("dd.MM.yyyy");
+ Vertretung.VertretungsZeitraumVon.ToString("dd.MM.yyyy") + " - " +
+ Vertretung.VertretungsZeitraumBis.ToString("dd.MM.yyyy");
}
else
{
zeitraum =
- Vertretung.VertretungsZeitraumVon.Date.ToString("dd.MM.yyyy HH:mm") + " - " +
- Vertretung.VertretungsZeitraumBis.Date.ToString("dd.MM.yyyy HH:mm");
+ Vertretung.VertretungsZeitraumVon.ToString("dd.MM.yyyy HH:mm") + " - " +
+ Vertretung.VertretungsZeitraumBis.ToString("dd.MM.yyyy HH:mm");
}
}
else
{
- if (Vertretung.VertretungsZeitraumVon.Hour == 0 &&
+ if (Vertretung.VertretungsZeitraumVon.Hour == 0 &&
Vertretung.VertretungsZeitraumVon.Minute == 0 &&
- Vertretung.VertretungsZeitraumBis.Hour == 0 &&
+ Vertretung.VertretungsZeitraumBis.Hour == 0 &&
Vertretung.VertretungsZeitraumBis.Minute == 0)
{
- zeitraum = Vertretung.VertretungsZeitraumVon.Date.ToString("dd.MM.yyyy");
+ zeitraum = Vertretung.VertretungsZeitraumVon.ToString("dd.MM.yyyy");
}
else
{
zeitraum =
- Vertretung.VertretungsZeitraumVon.Date.ToString("dd.MM.yyyy HH:mm") + " - " +
- Vertretung.VertretungsZeitraumBis.Date.ToString("HH:mm");
+ Vertretung.VertretungsZeitraumVon.ToString("dd.MM.yyyy HH:mm") + " - " +
+ Vertretung.VertretungsZeitraumBis.ToString("HH:mm");
}
}
}
@@ -198,7 +198,7 @@ namespace BeWo.SchulbegleitenderDienst
}
// Vertretung gewünscht [ab x. Tag]
- if (Customer.IsSubstitutionWanted)
+ if (Customer.SubstitutionNeed == SubstitutionNeed.SubstitutionWanted)
{
if(result.Length > 0)
{
@@ -265,5 +265,7 @@ namespace BeWo.SchulbegleitenderDienst
return result;
}
}
+
+ public new string VertreterInfoString { get; set; }
}
}
diff --git a/BeWo/SchulbegleitenderDienst/VertretungsMainView.xaml.cs b/BeWo/SchulbegleitenderDienst/VertretungsMainView.xaml.cs
index f5b3d898c..931fcc684 100644
--- a/BeWo/SchulbegleitenderDienst/VertretungsMainView.xaml.cs
+++ b/BeWo/SchulbegleitenderDienst/VertretungsMainView.xaml.cs
@@ -1260,7 +1260,7 @@ namespace BeWo.SchulbegleitenderDienst
{
if (MessageBox.Show("Möchten Sie die Abwesenheit wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
- _tagesVertretung.DeleteKrankmeldung((TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem);
+ _tagesVertretung.DeleteKrankmeldung((TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem, null, Datepicker.DateTime.Date);
LadeTagesansicht(Datepicker.DateTime.Date);
}
diff --git a/BeWo/SchulbegleitenderDienst/VertretungsMainViewV2.xaml b/BeWo/SchulbegleitenderDienst/VertretungsMainViewV2.xaml
index d9182186a..381766960 100644
--- a/BeWo/SchulbegleitenderDienst/VertretungsMainViewV2.xaml
+++ b/BeWo/SchulbegleitenderDienst/VertretungsMainViewV2.xaml
@@ -22,6 +22,7 @@
+
@@ -324,7 +325,7 @@
-
+
@@ -355,9 +356,11 @@
-
-
-
+
+
+
+
+
@@ -378,6 +381,10 @@
+
+
+
+
@@ -464,15 +471,17 @@
-
+
-
-
-
+
+
+
+
+
@@ -482,7 +491,7 @@
-
+
-
@@ -907,42 +934,37 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -1169,7 +1191,11 @@
-
+
+
+
+
+
diff --git a/BeWo/SchulbegleitenderDienst/VertretungsMainViewV2.xaml.cs b/BeWo/SchulbegleitenderDienst/VertretungsMainViewV2.xaml.cs
index 11d5ef46a..711e30c23 100644
--- a/BeWo/SchulbegleitenderDienst/VertretungsMainViewV2.xaml.cs
+++ b/BeWo/SchulbegleitenderDienst/VertretungsMainViewV2.xaml.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Globalization;
-using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
@@ -78,45 +77,15 @@ namespace BeWo.SchulbegleitenderDienst
_AbwesendeMitarbeiter.Clear();
_SubstitutionUnwanteDayViewList.Clear();
- foreach (var item in vertretungsItems)
- {
- var tagesansichtVM = _Tagesvertretung.ErstelleTagesansichtVM(item);
+ var all = new List();
- if (tagesansichtVM.VertretungsStatus == VertretungsStatus.KlientKrank)
- {
- if(tagesansichtVM.Customer.IsSubstitutionWanted)
- {
- _AbwesendeKlienten.AddIfNotIn(tagesansichtVM);
- }
- else
- {
- _SubstitutionUnwanteDayViewList.AddIfNotIn(tagesansichtVM);
- }
- }
- else
- {
- var substitutionStartingDayCountCondition = false;
+ vertretungsItems.ForEach(item => all.Add(_Tagesvertretung.ErstelleTagesansichtVM(item)));
- if(tagesansichtVM.Customer != null)
- {
- var substitutionNeededDate = DateTime.Now.AddDays(-1 * tagesansichtVM.Customer.SubstitutionStartingDayCount);
+ var lists = SBDUtils.SBDUtils.GetListType(all);
- if(tagesansichtVM.Absencetime?.Start.HasValue ?? false)
- {
- substitutionStartingDayCountCondition = substitutionNeededDate < tagesansichtVM.Absencetime.Start;
- }
- }
-
- if(tagesansichtVM.Vertretung?.VertretenderMitarbeiterOid != null || substitutionStartingDayCountCondition)
- {
- _SubstitutionUnwanteDayViewList.AddIfNotIn(tagesansichtVM);
- }
- else
- {
- _AbwesendeMitarbeiter.AddIfNotIn(tagesansichtVM);
- }
- }
- }
+ _AbwesendeKlienten.AddRangeIfElementsNotIn(lists.AbsentCustomersList);
+ _AbwesendeMitarbeiter.AddRangeIfElementsNotIn(lists.AbsentEmployeesList);
+ _SubstitutionUnwanteDayViewList.AddRangeIfElementsNotIn(lists.SubstitutionUnwantedList);
});
});
}
@@ -140,30 +109,57 @@ namespace BeWo.SchulbegleitenderDienst
});
}
- private void GetWochenDienstFromItems(DateTime time, List items)
+ private void GetWochenDienstFromItems(DateTime time, IEnumerable items)
{
_ItemsWochenMitarbeiter.Clear();
_ItemsWochenKlienten.Clear();
_SubstitutionUnwantedWeekViewList.Clear();
- var itemsMitarbeiter = _Wochenvertretung.GetWochenAnsichtFromItems(time, items.Where(i => i.VertretungsStatus != VertretungsStatus.KlientKrank).ToList());
- var itemsKlienten = _Wochenvertretung.GetWochenAnsichtFromItems(time, items.Where(i => i.VertretungsStatus == VertretungsStatus.KlientKrank && i.Customer.IsSubstitutionWanted).ToList());
- var subsitutionUnwantedItems = _Wochenvertretung.GetWochenAnsichtFromItems(time, items.Where(i => i.VertretungsStatus == VertretungsStatus.KlientKrank && (!i.Customer.IsSubstitutionWanted || i.Vertretung?.EmployeeOid != null)).ToList());
-
- foreach (var item in itemsMitarbeiter)
+ var employeeList = new List();
+ var customerList = new List();
+ var unwantedList = new List();
+
+ foreach(var item in items)
{
- _ItemsWochenMitarbeiter.AddIfNotIn(item);
+ if(item.VertretungsStatus == VertretungsStatus.KlientKrank)
+ {
+ if(item.Customer.IsSubstitutionWanted)
+ {
+ customerList.Add(item);
+ }
+ else
+ {
+ unwantedList.Add(item);
+ }
+ }
+ else
+ {
+ var substitutionStartingDayCountCondition = false;
+
+ if (item.Customer != null)
+ {
+ var substitutionNeededDate = DateTime.Now.AddDays(-1 * item.Customer.SubstitutionStartingDayCount);
+
+ if (item.Absencetime?.Start.HasValue ?? false)
+ {
+ substitutionStartingDayCountCondition = substitutionNeededDate < item.Absencetime.Start;
+ }
+ }
+
+ if(item.Vertretung?.VertretenderMitarbeiterOid != null || substitutionStartingDayCountCondition)
+ {
+ unwantedList.Add(item);
+ }
+ else
+ {
+ employeeList.Add(item);
+ }
+ }
}
- foreach (var item in itemsKlienten)
- {
- _ItemsWochenKlienten.AddIfNotIn(item);
- }
-
- foreach(var item in subsitutionUnwantedItems)
- {
- _SubstitutionUnwantedWeekViewList.AddIfNotIn(item);
- }
+ _ItemsWochenMitarbeiter.AddRangeIfElementsNotIn(_Wochenvertretung.GetWochenAnsichtFromItems(time, employeeList));
+ _ItemsWochenKlienten.AddRangeIfElementsNotIn(_Wochenvertretung.GetWochenAnsichtFromItems(time, customerList));
+ _SubstitutionUnwantedWeekViewList.AddRangeIfElementsNotIn(_Wochenvertretung.GetWochenAnsichtFromItems(time, unwantedList));
}
private void MVDatepickerVon_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
@@ -326,7 +322,7 @@ namespace BeWo.SchulbegleitenderDienst
{
popup_newMitarbeiterVertretung.IsOpen = false;
- SaveEmployeeInVertretung();
+ SaveEmployeeAbsenceTime();
ClearAllMitarbeiterValues();
@@ -355,7 +351,7 @@ namespace BeWo.SchulbegleitenderDienst
//MVDatepicker_UhrzeitBis.Text = "";
}
- private void SaveEmployeeInVertretung()
+ private void SaveEmployeeAbsenceTime()
{
var absenceTime = new AbsenceTimeDC();
@@ -396,7 +392,7 @@ namespace BeWo.SchulbegleitenderDienst
absenceTime.Notice = MitarbeiterNotice.Text;
absenceTime.KrankheitsMeldung = KrankMeldungMitarbeiterDatepicker.DateTime.Date;
- ServiceFacade.DoOperationsServiceAsync(s1 => s1.CheckForOverlappingAbsenceTimes(absenceTime.Start.Value, absenceTime.End.Value, _CurrentEmployee.EmployeeOid, absenceTime.CustomerOid), isOverlapping =>
+ ServiceFacade.DoOperationsServiceAsync(s1 => s1.CheckForOverlappingAbsenceTimes(absenceTime.Start.Value, absenceTime.End.Value, _CurrentEmployee.EmployeeOid, null), isOverlapping =>
{
this.Dispatch(() =>
{
@@ -532,7 +528,7 @@ namespace BeWo.SchulbegleitenderDienst
{
popup_newKlientVertretung.IsOpen = false;
- SaveKlientInVertretung();
+ SaveCustomerAbsenceTime();
ClearAllKlientValues();
@@ -556,7 +552,7 @@ namespace BeWo.SchulbegleitenderDienst
KlientNotice.Text = string.Empty;
}
- private void SaveKlientInVertretung()
+ private void SaveCustomerAbsenceTime()
{
var absenceTime = new AbsenceTimeDC();
@@ -601,7 +597,7 @@ namespace BeWo.SchulbegleitenderDienst
absenceTime.Notice = KlientNotice.Text;
absenceTime.KrankheitsMeldung = KrankMeldungKlientDatepicker.DateTime.Date;
- ServiceFacade.DoOperationsServiceAsync(s1 => s1.CheckForOverlappingAbsenceTimes(absenceTime.Start.Value, absenceTime.End.Value, _CurrentEmployee?.EmployeeOid, _CurrentCustomer.CustomerOid), isOverlapping =>
+ ServiceFacade.DoOperationsServiceAsync(s1 => s1.CheckForOverlappingAbsenceTimes(absenceTime.Start.Value, absenceTime.End.Value, null, _CurrentCustomer.CustomerOid), isOverlapping =>
{
this.Dispatch(() =>
{
@@ -625,6 +621,9 @@ namespace BeWo.SchulbegleitenderDienst
private void Reload()
{
+ _CurrentEmployee = null;
+ _CurrentCustomer = null;
+
if (IsInTagesansicht)
{
LadeTagesansicht(Datepicker.DateTime);
@@ -674,14 +673,30 @@ namespace BeWo.SchulbegleitenderDienst
var url = $"{BeWoApp.SiteOfOrigin}/ReportView.aspx?type={ReportTypes.SBDCharacteristics}&customerOid={selectedTagesansichtVM.Customer.CustomerOid}";
- var tempToken = string.Empty;
- ServiceFacade.DoDownloadServiceSync(s => tempToken = s.CreateTemporaryToken(url, true));
- var addChar = (url.Contains("?")) ? "&" : "?";
- url = $"{url}{addChar}token={tempToken}";
+ //var tempToken = string.Empty;
- url = BeWoWpfUtils.GetHTMLEncodedURL(url);
+ ServiceFacade.DoDownloadServiceAsync(s => s.CreateTemporaryToken(url, true), delegate(string tempToken)
+ {
+ this.Dispatch(
+ () =>
+ {
+ var addChar = url.Contains("?") ? "&" : "?";
+ url = $"{url}{addChar}token={tempToken}";
- BeWoUtils.NavigateToReportUri(url, "Steckbrief");
+ url = BeWoWpfUtils.GetHTMLEncodedURL(url);
+
+ BeWoUtils.NavigateToReportUri(url, "Steckbrief");
+ }
+ );
+ });
+
+ //ServiceFacade.DoDownloadServiceSync(s => tempToken = s.CreateTemporaryToken(url, true));
+ //var addChar = url.Contains("?") ? "&" : "?";
+ //url = $"{url}{addChar}token={tempToken}";
+
+ //url = BeWoWpfUtils.GetHTMLEncodedURL(url);
+
+ //BeWoUtils.NavigateToReportUri(url, "Steckbrief");
}
}
@@ -696,7 +711,9 @@ namespace BeWo.SchulbegleitenderDienst
{
if (MessageBox.Show("Möchten Sie die Abwesenheit wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
- _Tagesvertretung.DeleteKrankmeldung((TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem);
+ var selectedViewModel = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
+
+ _Tagesvertretung.DeleteKrankmeldung(selectedViewModel, ShowDeletionMessageBox(selectedViewModel.Absencetime), Datepicker.DateTime.Date);
LadeTagesansicht(Datepicker.DateTime.Date);
}
@@ -706,15 +723,43 @@ namespace BeWo.SchulbegleitenderDienst
{
if (MessageBox.Show("Möchten Sie die Abwesenheit wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
- _Tagesvertretung.DeleteKrankmeldung((TagesansichtVM)GridDataControlTagesansichtKlient.SelectedItem);
+ var selectedViewModel = (TagesansichtVM) GridDataControlTagesansichtKlient.SelectedItem;
+
+ _Tagesvertretung.DeleteKrankmeldung(selectedViewModel, ShowDeletionMessageBox(selectedViewModel.Absencetime), Datepicker.DateTime.Date);
LadeTagesansicht(Datepicker.DateTime.Date);
}
}
+ private static bool? ShowDeletionMessageBox(AbsenceTimeDC absenceTime)
+ {
+ if(absenceTime.Start != null && absenceTime.End != null && absenceTime.Start.Value.Date == absenceTime.End.Value.Date)
+ {
+ return true;
+ }
+
+ var messageBoxResult = MessageBox.Show("Möchten Sie die gesamte Abwesenheit löschen?", "Abwesenheit löschen", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
+
+ if(messageBoxResult == MessageBoxResult.Yes)
+ {
+ return true;
+ }
+
+ if(messageBoxResult == MessageBoxResult.No)
+ {
+ return false;
+ }
+
+ return null;
+ }
+
private void KrankmeldungsZeitraumBearbeitungsView(object sender, RoutedEventArgs e)
{
- _Tagesvertretung.KrankMeldeZeitraumBearbeiten((TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem);
+ // TODO: Kann auch aus "Kein Vertretungsbedarf" stammen!
+ var comboBoxEdit = (ComboBoxEdit) sender;
+ var selectedTagesansichtVM = (TagesansichtVM) comboBoxEdit.Tag;
+
+ _Tagesvertretung.KrankMeldeZeitraumBearbeiten(selectedTagesansichtVM);
LadeTagesansicht(Datepicker.DateTime);
}
@@ -767,7 +812,6 @@ namespace BeWo.SchulbegleitenderDienst
{
ScrollViewerTagesansicht.Visibility = Visibility.Visible;
WochenansichtsContainerGrid.Visibility = Visibility.Collapsed;
- //GridMitarbeiterEinsatz.Visibility = Visibility.Collapsed;
TagesAnzeige();
}
@@ -1038,11 +1082,14 @@ namespace BeWo.SchulbegleitenderDienst
var barButtonItem = (BarButtonItem) sender;
var selectedTagesansichtVM = (TagesansichtVM) barButtonItem.Tag;
- _Tagesvertretung.DeleteKrankmeldung(selectedTagesansichtVM);
+ if(MessageBox.Show("Möchten Sie die Abwesenheit wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
+ {
+ _Tagesvertretung.DeleteKrankmeldung(selectedTagesansichtVM, ShowDeletionMessageBox(selectedTagesansichtVM.Absencetime), Datepicker.DateTime.Date);
- LadeTagesansicht(Datepicker.DateTime);
+ LadeTagesansicht(Datepicker.DateTime);
+ }
}
-
+
private void GridControlSubUnwanted_OnCellValueChanged(object sender, CellValueChangedEventArgs e)
{
_Tagesvertretung.UpdateRowData((TagesansichtVM) SubstitutionUnwantedDayViewGridControl.SelectedItem);
diff --git a/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml b/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml
index de1b4fcf3..3c6778905 100644
--- a/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml
+++ b/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml
@@ -5,8 +5,10 @@
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
- Title="Vertretung auswählen" Height="650" Width="800" MinHeight="450" WindowStartupLocation="CenterScreen"
- ResizeMode="CanResizeWithGrip" WindowStyle="None" Background="Transparent" >
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
+ Title="Vertretung auswählen" SizeToContent="WidthAndHeight" AllowsTransparency="True" WindowStartupLocation="CenterScreen"
+ ResizeMode="CanResizeWithGrip" WindowStyle="None" Background="Transparent" d:DataContext="{d:DesignData VertretungsSearchView}">
@@ -32,9 +34,9 @@
-
+
-
+
@@ -50,13 +52,15 @@
-
-
-
+
+
+
+
-
-
-
+
+
+
+
@@ -64,6 +68,7 @@
+
@@ -91,20 +96,8 @@
-
-
-
-
-
-
-
+
+
@@ -134,18 +127,18 @@
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
diff --git a/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml.cs b/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml.cs
index 3ff3f0135..cc3bb7d9a 100644
--- a/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml.cs
+++ b/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml.cs
@@ -6,17 +6,17 @@ using BS.Shared.Extensions;
using System.Windows.Controls;
using System.Collections.Generic;
using System.ComponentModel;
-using System.Globalization;
using System.Linq;
+using System.Runtime.CompilerServices;
+using BeWo.Annotations;
using BS.Shared;
using BS.Shared.DataContracts.Compact;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
-using MessageBox = System.Windows.MessageBox;
namespace BeWo.SchulbegleitenderDienst
{
- public partial class VertretungsSearchView
+ public partial class VertretungsSearchView : INotifyPropertyChanged
{
public event EventHandler RaiseCustomEvent;
@@ -30,15 +30,97 @@ namespace BeWo.SchulbegleitenderDienst
private readonly Dictionary _VerfuegbareWunschkriterien = new Dictionary();
private readonly Dictionary _VerfuegbareAusschlusskriterien = new Dictionary();
- private readonly TagesansichtVM _Tagesansicht;
+ private TagesansichtVM _Tagesansicht;
+ public TagesansichtVM Tagesansicht
+ {
+ get => _Tagesansicht;
+ set
+ {
+ if(!Equals(_Tagesansicht, value))
+ {
+ _Tagesansicht = value;
+ OnPropertyChanged(nameof(Tagesansicht));
+ }
+ }
+ }
+
+ public string CustomerName
+ {
+ get
+ {
+ if(_Tagesansicht?.Customer != null)
+ {
+ return _Tagesansicht.Customer.Name ?? string.Empty;
+ }
+
+ return string.Empty;
+ }
+ }
+
+ public string CustomerStreet
+ {
+ get
+ {
+ if(_Tagesansicht?.Customer != null)
+ {
+ return _Tagesansicht.Customer.Street ?? string.Empty;
+ }
+
+ return string.Empty;
+ }
+ }
+
+ public string CustomerCity => _Tagesansicht?.Customer != null ? $"{_Tagesansicht.Customer.PostalCode ?? string.Empty} {_Tagesansicht.Customer.Town ?? string.Empty}" : string.Empty;
private readonly WochenansichtVM _Wochenansicht;
-
+
+ private DateTime _SubstitutionStart;
+
+ public DateTime SubstitutionStart
+ {
+ get => _SubstitutionStart;
+ set
+ {
+ if(!Equals(_SubstitutionStart, value))
+ {
+ _SubstitutionStart = value;
+ OnPropertyChanged(nameof(SubstitutionStart));
+
+ if(_SubstitutionStart > _SubstitutionEnd)
+ {
+ SubstitutionEnd = _SubstitutionStart;
+ }
+ }
+ }
+ }
+
+ private DateTime _SubstitutionEnd;
+
+ public DateTime SubstitutionEnd
+ {
+ get => _SubstitutionEnd;
+ set
+ {
+ if(!Equals(_SubstitutionEnd, value))
+ {
+ _SubstitutionEnd = value;
+ OnPropertyChanged(nameof(SubstitutionEnd));
+
+ if(_SubstitutionEnd < _SubstitutionStart)
+ {
+ SubstitutionStart = _SubstitutionEnd;
+ }
+ }
+ }
+ }
+
public VertretungsSearchView(DateTime currentDate, CompactCustomerDC customer, TagesansichtVM tagesansicht, WochenansichtVM wochenansicht, CompactEmployeeDC employee)
{
InitializeComponent();
- _Tagesansicht = tagesansicht;
+ DataContext = this;
+
+ Tagesansicht = tagesansicht;
_Wochenansicht = wochenansicht;
_Customer = customer;
_Employee = employee;
@@ -50,8 +132,6 @@ namespace BeWo.SchulbegleitenderDienst
SetCustomerInfos();
- KVCheckBox.IsChecked = true;
-
Loaded += VertretungsSearchView_Loaded;
CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => { Close(); }));
@@ -95,10 +175,10 @@ namespace BeWo.SchulbegleitenderDienst
{
end = _Tagesansicht.Vertretung.VertretungsZeitraumBis;
}
+
+ SubstitutionStart = start.Value;
- KVDatepickerVon.EditValue = start;
-
- KVDatepickerBis.EditValue = end;
+ SubstitutionEnd = end.Value;
}
private void RootGroupBox_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
@@ -158,20 +238,21 @@ namespace BeWo.SchulbegleitenderDienst
dateTime = _Tagesansicht.Datum;
}
- var employeeList = ServiceFacade.DoEmployeeServiceSync(s => s.GetAllActiveVertreterEmployeesCompact(customerOid, dateTime)).ToList();
+ ServiceFacade.DoEmployeeServiceAsync(s => s.GetAllActiveVertreterEmployeesCompact(customerOid, dateTime), r => this.Dispatch(delegate
+ {
+ GridControlPossibleVertreter.Visibility = Visibility.Hidden;
+ ((TableView)GridControlPossibleVertreter.View).VerticalScrollbarVisibility = ScrollBarVisibility.Disabled;
- GridControlPossibleVertreter.Visibility = Visibility.Hidden;
- ((TableView) GridControlPossibleVertreter.View).VerticalScrollbarVisibility = ScrollBarVisibility.Disabled;
+ var list = CreateSuchergebnisListe(r);
- var list = CreateSuchergebnisListe(employeeList);
+ _dataListEmployee = list;
- _dataListEmployee = list;
-
- GridControlPossibleVertreter.ItemsSource = list;
- GridControlPossibleVertreter.Visibility = Visibility.Visible;
- ((TableView) GridControlPossibleVertreter.View).VerticalScrollbarVisibility = ScrollBarVisibility.Auto;
+ GridControlPossibleVertreter.ItemsSource = list;
+ GridControlPossibleVertreter.Visibility = Visibility.Visible;
+ ((TableView)GridControlPossibleVertreter.View).VerticalScrollbarVisibility = ScrollBarVisibility.Auto;
- _CurrentData = _dataListEmployee;
+ _CurrentData = _dataListEmployee;
+ }), true);
}
private List CreateSuchergebnisListe(IEnumerable employeeList)
@@ -215,51 +296,7 @@ namespace BeWo.SchulbegleitenderDienst
{
Close();
}
-
- private void KVCheckBox_OnUnchecked(object sender, RoutedEventArgs e)
- {
- KVDatepicker_UhrzeitBis.Text = string.Empty;
- KVDatepicker_UhrzeitBis.Visibility = Visibility.Visible;
- KVLabelUhrzeitVon.Visibility = Visibility.Visible;
- KVDatepicker_UhrzeitVon.Text = string.Empty;
- KVDatepicker_UhrzeitVon.Visibility = Visibility.Visible;
- KVLabelUhrzeitBis.Visibility = Visibility.Visible;
- }
-
- private void KVCheckBox_OnChecked(object sender, RoutedEventArgs e)
- {
- KVDatepicker_UhrzeitBis.Visibility = Visibility.Hidden;
- KVLabelUhrzeitVon.Visibility = Visibility.Hidden;
-
- KVDatepicker_UhrzeitVon.Visibility = Visibility.Hidden;
- KVLabelUhrzeitBis.Visibility = Visibility.Hidden;
- }
-
- private void KVDatepickerVon_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
- {
- var dateEdit = (DateEdit) sender;
-
- var date = dateEdit.DateTime;
-
- if (date > KVDatepickerBis.DateTime)
- {
- KVDatepickerBis.EditValue = date;
- }
- }
-
- private void KVDatepickerBis_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
- {
- var dateEdit = (DateEdit) sender;
-
- var date = dateEdit.DateTime;
-
- if (date < KVDatepickerVon.DateTime)
- {
- KVDatepickerVon.EditValue = date;
- }
- }
-
public void GetAllTokensAndSetAll()
{
if (_Customer != null)
@@ -667,18 +704,15 @@ namespace BeWo.SchulbegleitenderDienst
private void LetzteVertreter_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
- var selectedItem = ListBoxLetzteVertreter.SelectedItem as SearchViewDaten;
-
- if (selectedItem != null)
+ if (ListBoxLetzteVertreter.SelectedItem is SearchViewDaten selectedItem)
{
- var items = (BindingList) GridControlPossibleVertreter.ItemsSource;
+ var items = new BindingList((List) GridControlPossibleVertreter.ItemsSource);
foreach (var item in items)
{
if (item.Vorname == selectedItem.Vorname && item.Nachname == selectedItem.Nachname)
{
GridControlPossibleVertreter.SelectedItem = item;
- //GridControlPossibleVertreter.setf = item;
GridControlPossibleVertreter.View.ScrollIntoView(GridControlPossibleVertreter.View.FocusedRowHandle);
}
@@ -700,58 +734,17 @@ namespace BeWo.SchulbegleitenderDienst
{
var vertreter = item.EmployeeDC.CompactEmployee;
- var start = KVDatepickerVon.DateTime;
- var ende = KVDatepickerBis.DateTime;
+ RaiseCustomEvent?.Invoke(this, new VertretungSelectedEventArgs(vertreter, _SubstitutionStart, _SubstitutionEnd, _Tagesansicht, _Wochenansicht));
- if (KVCheckBox.IsChecked != null && KVCheckBox.IsChecked.Value)
- {
- RaiseCustomEvent?.Invoke(this, new VertretungSelectedEventArgs(vertreter, start, ende, _Tagesansicht, _Wochenansicht));
+ Close();
+ }
- Close();
- }
- else if (!KVDatepickerVon.Text.Equals("") && !KVDatepickerBis.Text.Equals("") && !KVDatepicker_UhrzeitVon.Text.Equals("") && !KVDatepicker_UhrzeitBis.Text.Equals(""))
- {
- var von = KVDatepicker_UhrzeitVon.Text;
- var bis = KVDatepicker_UhrzeitBis.Text;
+ public event PropertyChangedEventHandler PropertyChanged;
- if (von.Length < 5)
- {
- von = "0" + von;
- }
-
- if (bis.Length < 5)
- {
- bis = "0" + bis;
- }
-
- var dateVon = DateTime.ParseExact(von, "HH:mm", CultureInfo.CurrentCulture);
- var dateBis = DateTime.ParseExact(bis, "HH:mm", CultureInfo.CurrentCulture);
-
- if (dateVon > dateBis)
- {
- MessageBox.Show("Die Startzeit darf nicht größer sein als die Endzeit.");
- }
- else
- {
- var xVon = start.MergeDatesByDate(dateVon);
- var xBis = ende.MergeDatesByDate(dateBis);
-
- RaiseCustomEvent?.Invoke(this, new VertretungSelectedEventArgs(vertreter, xVon, xBis, _Tagesansicht, _Wochenansicht));
-
- Close();
- }
- }
- else
- {
- if ((KVDatepicker_UhrzeitVon.Text.Equals("") || KVDatepicker_UhrzeitBis.Text.Equals("")) && !KVCheckBox.IsChecked.Value)
- {
- MessageBox.Show("Bitte geben Sie eine Start- und Endzeit an.");
- }
- else
- {
- MessageBox.Show("Bitte geben Sie ein Start und ein Enddatum an.");
- }
- }
+ [NotifyPropertyChangedInvocator]
+ protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
+ {
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
diff --git a/BeWo/SchulbegleitenderDienst/ViewModel/SbdConfigVM.cs b/BeWo/SchulbegleitenderDienst/ViewModel/SbdConfigVM.cs
index cc929cf0d..837ff20d9 100644
--- a/BeWo/SchulbegleitenderDienst/ViewModel/SbdConfigVM.cs
+++ b/BeWo/SchulbegleitenderDienst/ViewModel/SbdConfigVM.cs
@@ -21,7 +21,7 @@ namespace BeWo.SchulbegleitenderDienst.ViewModel
{
get
{
- if (Utils.IsAnyNull(Stundensaetze, Feiertage))
+ if (BS.Shared.Core.Utils.IsAnyNull(Stundensaetze, Feiertage))
{
return false;
}
@@ -43,9 +43,9 @@ namespace BeWo.SchulbegleitenderDienst.ViewModel
public FeiertagListVM Feiertage
{
- get { return _Feiertage; }
+ get => _Feiertage;
- set
+ set
{
_Feiertage = value;
FirePropertyChanged(PropertyName_Feiertage);
diff --git a/BeWo/SchulbegleitenderDienst/ViewModel/VertretungsansichtBaseVM.cs b/BeWo/SchulbegleitenderDienst/ViewModel/VertretungsansichtBaseVM.cs
index fe4d02aa8..3aee55686 100644
--- a/BeWo/SchulbegleitenderDienst/ViewModel/VertretungsansichtBaseVM.cs
+++ b/BeWo/SchulbegleitenderDienst/ViewModel/VertretungsansichtBaseVM.cs
@@ -190,5 +190,9 @@ namespace BeWo.SchulbegleitenderDienst.ViewModel
public string CustomerSchutzstufe { get; set; }
public string EmployeeSchutzstufe { get; set; }
+
+ public string VertreterInfoString { get; set; }
+
+ public string EmployeeAddressString { get; set; }
}
}
diff --git a/BeWo/ServiceProxy/Generated.cs b/BeWo/ServiceProxy/Generated.cs
index 453fe006e..b1a758af9 100644
--- a/BeWo/ServiceProxy/Generated.cs
+++ b/BeWo/ServiceProxy/Generated.cs
@@ -187,6 +187,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/GetAllCompactEmployeesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List GetAllCompactEmployees();
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/LoadTeamsRelatedCustomerOids", ReplyAction="http://tempuri.org/IEmployeeService/LoadTeamsRelatedCustomerOidsResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/LoadTeamsRelatedCustomerOidsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ System.Collections.Generic.List LoadTeamsRelatedCustomerOids(long employeeOid);
+
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/ArchiveEmployee", ReplyAction="http://tempuri.org/IEmployeeService/ArchiveEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/ArchiveEmployeeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void ArchiveEmployee(long pOid, long pVersion);
@@ -609,6 +613,11 @@ namespace BeWo.ServiceProxy
return base.Channel.GetAllCompactEmployees();
}
+ public System.Collections.Generic.List LoadTeamsRelatedCustomerOids(long employeeOid)
+ {
+ return base.Channel.LoadTeamsRelatedCustomerOids(employeeOid);
+ }
+
public void ArchiveEmployee(long pOid, long pVersion)
{
base.Channel.ArchiveEmployee(pOid, pVersion);
@@ -1065,6 +1074,390 @@ namespace BeWo.ServiceProxy
"lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List LoadContactInformationForCustomer(long customerOid);
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/ConvertToNewSubstitutionType", ReplyAction="http://tempuri.org/ICustomerService/ConvertToNewSubstitutionTypeResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/ConvertToNewSubstitutionTypeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BeWo.ServiceProxy.BeWoFault))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BeWo.ServiceProxy.BeWoFaultType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactOrganisationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCustomerDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactEmployeeDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTeamDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactSupportConceptDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCostBearerDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactGroupOfPeopleDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactVertreterEmployeeDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTokenDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ActivationTypeId))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ValueListEntryType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ContactType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.FamilyStatus))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.CostRatePeriodType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Sex))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.PersonType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ControlType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SubstitutionNeed))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AppointmentDayOfWeek))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ScopeTypeId))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.GroupTypeId))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.CostBearer2SupportConceptStatus))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.TokenTyp))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.PersonDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ValueListEntryDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ContactDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Organisation2PersonDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CostRatePeriodDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.VarFieldDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceTimeDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceReasonDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ArbeitszeitDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ArbeitszeitEintragDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ContractDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmploymentTypeDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.OvertimeDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AuszahlungsartDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerEmployeeRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ChatBewoMessageSyncDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AssessmentSheetCategoryDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AssessmentSheetValueDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AssessmentSheetEntryDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.NewsItemDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.TeamDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GroupOfPeopleDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeAPPCodeDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeTokenRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerPersonRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptCostBearerRelDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptApprovalPeriodDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BudgetDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceCategoryDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptApprovalPeriodEmployeeRelDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerCostBearerRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerOrganisationRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MedikamentenverordnungslisteDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MedikamentenverordnungDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DarreichungsformDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DepotRhythmusDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MedArtDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.PlacementDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerTeamRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UserDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ResetPasswordInfoDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SettingsDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UserGroupDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceAccountingDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceDescriptionDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.OrganisationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.OrganisationPersonRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppointmentDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppointmentCategoryDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimbuchungDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Wohnheimbuchung2Costbearer2SupportConceptRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimbuchungEmployeeRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceRecordDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MedRecordDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ChatMessageDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerAPPCodeDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerTokenRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.TimeSheetStatusItemDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MailDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FileAttachmentDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.QuittierungsCheckViewListItemsDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.QuittierungsCheckDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimCustomerRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimEmployeeRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactPersonDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactWohnheimDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SupportConceptApprovalInterval))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Bewilligungsart))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SystemEntryID))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AccountingIntervalType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AccountingvisibilityType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Behinderungsart))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Merkzeichen))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Pflegegrad))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SettingsType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UserRightType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceUnit))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ZeiterfassungsDauer))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceRecordFormate))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceRecordTypeId))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.FileAttachmentType))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.TableID))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Priority))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Status))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/BeWo/View/StundenplanView.xaml.cs b/BeWo/View/StundenplanView.xaml.cs
index 35161604c..32bff9800 100644
--- a/BeWo/View/StundenplanView.xaml.cs
+++ b/BeWo/View/StundenplanView.xaml.cs
@@ -1,33 +1,15 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.IO;
-using System.Linq;
+using System.Linq;
using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
-using System.Windows.Documents;
-using System.Windows.Forms.VisualStyles;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Navigation;
-using System.Windows.Threading;
using BeWo.Controls;
-using BeWo.Core;
using BeWo.ViewModel;
using BeWo.ServiceProxy;
using BeWo.Validation;
using BeWo.View.Controls;
-using BeWo.View.Search;
using BeWo.ViewModel.ListViewModel;
-using BS.Shared.DataContracts;
using BS.Shared.Extensions;
-using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts.Compact;
-using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
-using Microsoft.Win32;
namespace BeWo.View
{
@@ -38,14 +20,10 @@ namespace BeWo.View
public partial class StundenplanView
{
-
- private IArbeitszeitenVM _ViewModel;
-
+ private ArbeitszeitListVM _ViewModel;
private CompactEmployeeDC _lastSeletedEmployee;
- //private CompactEmployeeDC _lastSeletedEmployee;
-
- public StundenplanView(IArbeitszeitenVM vm, String title)
+ public StundenplanView(ArbeitszeitListVM vm, string title)
{
InitializeComponent();
@@ -59,14 +37,12 @@ namespace BeWo.View
}
};
-
ViewModel = vm;
-
}
- public IArbeitszeitenVM ViewModel
+ public ArbeitszeitListVM ViewModel
{
- get { return _ViewModel; }
+ get => _ViewModel;
set
{
@@ -77,24 +53,22 @@ namespace BeWo.View
public void RefreshView()
{
- DataContext = null; // Sonst refresht die GUI nach den Save nicht richtig
-
+ DataContext = null;
DataContext = _ViewModel;
-
- //if (_ViewModel != null && _ViewModel.Arbeitszeiten != null)
- //{
- // tabcontrol_Arbeitszeit.ItemsSource = _ViewModel.Arbeitszeiten.VMList;
- //}
+
+ if (tabcontrol_Arbeitszeit.Items.Count > 0)
+ {
+ tabcontrol_Arbeitszeit.SelectedIndex = tabcontrol_Arbeitszeit.Items.Count - 1;
+ }
}
private void ButtonOpenAndAddArbeitszeitClick(object sender, RoutedEventArgs e)
{
- ViewModel.Arbeitszeiten.AddNewVMToList();
+ ViewModel.AddNewVMToList();
tabcontrol_Arbeitszeit.SelectedIndex = tabcontrol_Arbeitszeit.Items.Count - 1;
}
-
private void PopupNewArbeitszeit_Click(object sender, RoutedEventArgs e)
{
var vali = tabcontrol_Arbeitszeit.GetAllChildren().OfType();
@@ -105,9 +79,7 @@ namespace BeWo.View
{
var tab = tabcontrol_Arbeitszeit.Items.GetItemAt(tabcontrol_Arbeitszeit.SelectedIndex);
- var avm = tab as ArbeitszeitVM;
-
- if (avm != null)
+ if (tab is ArbeitszeitVM avm)
{
if (_lastSeletedEmployee != null)
{
@@ -115,9 +87,10 @@ namespace BeWo.View
_lastSeletedEmployee = null;
}
+
if (letztesPopUpEdit != null)
{
- letztesPopUpEdit.Text = "";
+ letztesPopUpEdit.Text = string.Empty;
}
avm.ArbeitszeitEintraege.AddNewVMToList();
@@ -131,7 +104,7 @@ namespace BeWo.View
{
var arbeitszeit = tabcontrol_Arbeitszeit.SelectedItem as ArbeitszeitVM;
- ViewModel.Arbeitszeiten.VMList.Remove(arbeitszeit);
+ ViewModel.VMList.Remove(arbeitszeit);
}
@@ -159,27 +132,31 @@ namespace BeWo.View
var grid_ArbeitszeitEintrag = popup.First(x => x.Name.Equals("grid_Arbeitszeiten"));
- var cv = grid_ArbeitszeitEintrag.GetCurrentValue().CommitToDataContract();
- var listenOid = cv.ArbeitszeitEintragOid;
- if (listenOid == null)
- return;
+ var selectedArbeitszeitEintrag = grid_ArbeitszeitEintrag.GetCurrentValue();
+
+ var selectedDataContract = selectedArbeitszeitEintrag.CommitToDataContract();
+ var listenOid = selectedDataContract.ArbeitszeitEintragOid;
+
+ var selectedTabItem = tabcontrol_Arbeitszeit.Items.GetItemAt(tabcontrol_Arbeitszeit.SelectedIndex);
+ var viewModel = (ArbeitszeitVM) selectedTabItem;
+
+ var eintrag2Delete = grid_ArbeitszeitEintrag.GetCurrentValue();
var antwort = MessageBox.Show("Sind Sie sicher, dass Sie den Arbeitszeit Eintrag löschen wollen?", "Löschen", MessageBoxButton.OKCancel, MessageBoxImage.Question);
if (antwort.Equals(MessageBoxResult.Cancel))
- return;
-
-
- ServiceFacade.DoEmployeeServiceSync(a => a.DeleteArbeitszeitEintrag(listenOid.Value));
-
- var tab = tabcontrol_Arbeitszeit.Items.GetItemAt(tabcontrol_Arbeitszeit.SelectedIndex);
-
- var avm = tab as ArbeitszeitVM;
-
- if (avm != null)
{
- avm.ArbeitszeitEintraege.VMList.Remove(grid_ArbeitszeitEintrag.GetCurrentValue());
+ return;
}
+ if (listenOid.HasValue)
+ {
+ ServiceFacade.DoEmployeeServiceSync(a => a.DeleteArbeitszeitEintrag(listenOid.Value));
+
+ return;
+ }
+
+ viewModel.ArbeitszeitEintraege.VMList.Remove(eintrag2Delete);
+
grid_ArbeitszeitEintrag.RefreshData();
}
@@ -192,7 +169,7 @@ namespace BeWo.View
}
- private PopUpEdit letztesPopUpEdit = null;
+ private PopUpEdit letztesPopUpEdit;
private ArbeitszeitEintragVM _lastSeletedEintrag;
private void Popupedit_MitarbeiterSearch_OnPopUpClick(object sender, RoutedEventArgs e)
@@ -217,7 +194,7 @@ namespace BeWo.View
_lastSeletedEmployee = e.Data;
if (letztesPopUpEdit != null)
{
- letztesPopUpEdit.Text = String.Format("{0} {1}", _lastSeletedEmployee.FirstName, _lastSeletedEmployee.LastName);
+ letztesPopUpEdit.Text = $"{_lastSeletedEmployee.FirstName} {_lastSeletedEmployee.LastName}";
letztesPopUpEdit.Focus();
}
}
@@ -226,11 +203,8 @@ namespace BeWo.View
{
popup_MitarbeiterColumn.IsOpen = false;
_lastSeletedEintrag.Employee = e.Data;
- if (letztesPopUpEdit != null)
- {
- //letztesPopUpEdit.Text = String.Format("{0} {1}", _lastSeletedEmployee.FirstName, _lastSeletedEmployee.LastName);
- letztesPopUpEdit.Focus();
- }
+ //letztesPopUpEdit.Text = String.Format("{0} {1}", _lastSeletedEmployee.FirstName, _lastSeletedEmployee.LastName);
+ letztesPopUpEdit?.Focus();
}
private void GridViewBase_OnShowingEditor(object sender, ShowingEditorEventArgs e)
@@ -244,5 +218,4 @@ namespace BeWo.View
_lastSeletedEintrag.Employee = null;
}
}
-
}
\ No newline at end of file
diff --git a/BeWo/ViewModel/ArbeitszeitEintragVM.cs b/BeWo/ViewModel/ArbeitszeitEintragVM.cs
index 524183748..4ef05d46f 100644
--- a/BeWo/ViewModel/ArbeitszeitEintragVM.cs
+++ b/BeWo/ViewModel/ArbeitszeitEintragVM.cs
@@ -1,11 +1,7 @@
using BS.Shared;
using BS.Shared.DataContracts;
-using System;
-using System.Collections.Generic;
-using BeWo.ServiceProxy;
using BeWo.Validation;
using BS.Shared.DataContracts.Compact;
-using BS.Shared.Extensions;
namespace BeWo.ViewModel
{
@@ -33,39 +29,26 @@ namespace BeWo.ViewModel
private string _Notice;
- private string _Klient;
-
private CompactCustomerDC _CompactCustomer;
private CompactEmployeeDC _CompactEmployee;
- public ArbeitszeitEintragVM()
+ public ArbeitszeitEintragVM(ArbeitszeitEintragDC pDC) : base(pDC, pDC.ArbeitszeitEintragOid == null)
{
-
- }
-
- public ArbeitszeitEintragVM(ArbeitszeitEintragDC pDC)
- : base(pDC, pDC.ArbeitszeitEintragOid == null)
- {
- }
-
- public override bool IsDirty
- {
- get { return base.IsDirty; }
}
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public string UhrzeitVon
{
- get { return this._UhrzeitVon; }
+ get => _UhrzeitVon;
set
{
- if (this.AreDifferent(this._UhrzeitVon, value))
+ if(AreDifferent(_UhrzeitVon, value))
{
- this._UhrzeitVon = value;
- this.StoreDirtyInformation(this.AreDifferent(this.DataContract.UhrzeitVon, value), PropertyName_UhrzeitVon);
- this.FirePropertyChanged(PropertyName_UhrzeitVon);
+ _UhrzeitVon = value;
+ StoreDirtyInformation(AreDifferent(DataContract.UhrzeitVon, value), PropertyName_UhrzeitVon);
+ FirePropertyChanged(PropertyName_UhrzeitVon);
}
}
}
@@ -73,15 +56,15 @@ namespace BeWo.ViewModel
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public string UhrzeitBis
{
- get { return this._UhrzeitBis; }
+ get => _UhrzeitBis;
set
{
- if (this.AreDifferent(this._UhrzeitBis, value))
+ if(AreDifferent(_UhrzeitBis, value))
{
- this._UhrzeitBis = value;
- this.StoreDirtyInformation(this.AreDifferent(this.DataContract.UhrzeitBis, value), PropertyName_UhrzeitBis);
- this.FirePropertyChanged(PropertyName_UhrzeitBis);
+ _UhrzeitBis = value;
+ StoreDirtyInformation(AreDifferent(DataContract.UhrzeitBis, value), PropertyName_UhrzeitBis);
+ FirePropertyChanged(PropertyName_UhrzeitBis);
}
}
}
@@ -89,22 +72,22 @@ namespace BeWo.ViewModel
public AppointmentDayOfWeek Tag
{
- get { return this._Tag; }
+ get => _Tag;
set
{
- if (this.AreDifferent(this._Tag, value))
+ if(AreDifferent(_Tag, value))
{
- this._Tag = value;
- this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Tag, value), PropertyName_Tag);
- this.FirePropertyChanged(PropertyName_Tag);
+ _Tag = value;
+ StoreDirtyInformation(AreDifferent(DataContract.Tag, value), PropertyName_Tag);
+ FirePropertyChanged(PropertyName_Tag);
}
}
}
public string Notice
{
- get { return _Notice; }
+ get => _Notice;
set
{
@@ -118,53 +101,37 @@ namespace BeWo.ViewModel
}
}
- public string Klient
- {
- get { return _Klient; }
-
- set
- {
- if (AreDifferent(_Klient, value))
- {
- _Notice = value;
- //StoreDirtyInformation(AreDifferent(DataContract.Klient, value), PropertyName_Klient);
- FirePropertyChanged(PropertyName_Klient);
- }
- }
- }
+ public string Klient => _CompactCustomer?.FullName;
public CompactCustomerDC CompactCustomer
{
- get { return _CompactCustomer; }
+ get => _CompactCustomer;
set
{
if (AreDifferent(_CompactCustomer, value))
{
_CompactCustomer = value;
- StoreDirtyInformation(AreDifferent(DataContract.CustomerOid, value.CustomerOid),
- PropertyName_CompactCustomer);
- FirePropertyChanged(PropertyName_CompactCustomer);
- this._Klient = value.FullName;
- FirePropertyChanged(PropertyName_Klient);
+ StoreDirtyInformation(AreDifferent(DataContract.CustomerOid, value.CustomerOid), PropertyName_CompactCustomer);
+
+ FirePropertyChanged(nameof(CompactCustomer));
+ FirePropertyChanged(nameof(Klient));
}
}
}
public CompactEmployeeDC Employee
{
- get { return _CompactEmployee; }
+ get => _CompactEmployee;
set
{
if (AreDifferent(_CompactEmployee, value))
{
_CompactEmployee = value;
- StoreDirtyInformation(AreDifferent(DataContract.Employee, value),
- PropertyName_CompactEmployee);
+ StoreDirtyInformation(AreDifferent(DataContract.Employee, value), PropertyName_CompactEmployee);
FirePropertyChanged(PropertyName_CompactEmployee);
-
}
}
}
@@ -172,25 +139,12 @@ namespace BeWo.ViewModel
protected override void InitByDataContract(ArbeitszeitEintragDC pDataContract)
{
- this._Tag = pDataContract.Tag;
- this._UhrzeitVon = pDataContract.UhrzeitVon;
- this._UhrzeitBis = pDataContract.UhrzeitBis;
- this._Notice = pDataContract.Notice;
- this._CompactEmployee = pDataContract.Employee;
-
- if (pDataContract.CustomerOid != null)
- {
- var kli = ServiceFacade.DoCustomerServiceSync(r => r.GetAllActiveCompactCustomers());
-
- foreach (var customer in kli)
- {
- if (customer.CustomerOid == pDataContract.CustomerOid.Value)
- {
- this._Klient = customer.FullName;
- this._CompactCustomer = customer;
- }
- }
- }
+ _Tag = pDataContract.Tag;
+ _UhrzeitVon = pDataContract.UhrzeitVon;
+ _UhrzeitBis = pDataContract.UhrzeitBis;
+ _Notice = pDataContract.Notice;
+ _CompactEmployee = pDataContract.Employee;
+ _CompactCustomer = pDataContract.Customer;
}
protected override ArbeitszeitEintragDC MapToDataContract(ArbeitszeitEintragDC pDataContract, bool doCommit)
@@ -200,9 +154,13 @@ namespace BeWo.ViewModel
pDataContract.Tag = _Tag;
pDataContract.Notice = _Notice;
pDataContract.Employee = _CompactEmployee;
- if(_CompactCustomer != null)
- pDataContract.CustomerOid = _CompactCustomer.CustomerOid;
+ pDataContract.Customer = _CompactCustomer;
+ if(_CompactCustomer != null)
+ {
+ pDataContract.CustomerOid = _CompactCustomer.CustomerOid;
+ }
+
return pDataContract;
}
}
diff --git a/BeWo/ViewModel/ArbeitszeitVM.cs b/BeWo/ViewModel/ArbeitszeitVM.cs
index bd0d24927..3e6e7391b 100644
--- a/BeWo/ViewModel/ArbeitszeitVM.cs
+++ b/BeWo/ViewModel/ArbeitszeitVM.cs
@@ -1,9 +1,6 @@
-using BS.Shared;
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
-using BeWo.ServiceProxy;
-using BeWo.Validation;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.DataContracts.Compact;
@@ -25,6 +22,8 @@ namespace BeWo.ViewModel
public static string PropertyName_Klient = "Klient";
+ private CompactCustomerDC _Customer;
+
private DateTime? _GueltigVon;
private DateTime? _GueltigBis;
@@ -33,68 +32,70 @@ namespace BeWo.ViewModel
private ArbeitszeitEintragListVM _ArbeitszeitEintraege;
- private string _Klient;
-
-
-
- public ArbeitszeitVM(ArbeitszeitDC pDC)
- : base(pDC, pDC.ArbeitszeitOid == null)
+ public ArbeitszeitVM(ArbeitszeitDC pDC) : base(pDC, pDC.ArbeitszeitOid == null)
{
}
- public override bool IsDirty
- {
- get
- {
- return base.IsDirty || (_ArbeitszeitEintraege != null && _ArbeitszeitEintraege.IsDirty);
- }
- }
+ public override bool IsDirty => base.IsDirty || ArbeitszeitEintraege != null && ArbeitszeitEintraege.IsDirty;
-
- public DateTime? GueltigVon
+ public CompactCustomerDC Customer
{
- get { return this._GueltigVon; }
+ get => _Customer;
set
{
- if (this.AreDifferent(this._GueltigVon, value))
+ if(AreDifferent(_Customer, value))
{
- this._GueltigVon = value;
- this.StoreDirtyInformation(this.AreDifferent(this.DataContract.GueltigVon, value), PropertyName_GueltigVon);
- this.FirePropertyChanged(PropertyName_GueltigVon);
- this.FirePropertyChanged(PropertyName_ArbeitszeitString);
+ _Customer = value;
+ StoreDirtyInformation(AreDifferent(DataContract.Customer, value), nameof(Customer));
+ FirePropertyChanged(nameof(Customer));
}
}
}
-
- public DateTime? GueltigBis
+ public DateTime? GueltigVon
{
- get { return this._GueltigBis; }
+ get => _GueltigVon;
set
{
- if (this.AreDifferent(this._GueltigBis, value))
+ if(AreDifferent(_GueltigVon, value))
{
- this._GueltigBis = value;
- this.StoreDirtyInformation(this.AreDifferent(this.DataContract.GueltigBis, value), PropertyName_GueltigBis);
- this.FirePropertyChanged(PropertyName_GueltigBis);
- this.FirePropertyChanged(PropertyName_ArbeitszeitString);
+ _GueltigVon = value;
+ StoreDirtyInformation(AreDifferent(DataContract.GueltigVon, value), nameof(GueltigVon));
+ FirePropertyChanged(nameof(GueltigVon));
+ FirePropertyChanged(nameof(ArbeitszeitString));
+ }
+ }
+ }
+
+ public DateTime? GueltigBis
+ {
+ get => _GueltigBis;
+
+ set
+ {
+ if(AreDifferent(_GueltigBis, value))
+ {
+ _GueltigBis = value;
+ StoreDirtyInformation(AreDifferent(DataContract.GueltigBis, value), nameof(GueltigBis));
+ FirePropertyChanged(nameof(GueltigBis));
+ FirePropertyChanged(nameof(ArbeitszeitString));
}
}
}
public string Notice
{
- get { return _Notice; }
+ get => _Notice;
set
{
- if (AreDifferent(_Notice, value))
+ if(AreDifferent(_Notice, value))
{
_Notice = value;
- StoreDirtyInformation(AreDifferent(DataContract.Notice, value), PropertyName_Notice);
- FirePropertyChanged(PropertyName_Notice);
+ StoreDirtyInformation(AreDifferent(DataContract.Notice, value), nameof(Notice));
+ FirePropertyChanged(nameof(Notice));
}
}
}
@@ -103,56 +104,54 @@ namespace BeWo.ViewModel
{
get
{
- String text = "Zeitraum: ";
- if (this._GueltigVon.HasValue)
+ var text = "Zeitraum: ";
+ if(_GueltigVon.HasValue)
{
- text = String.Format("{0:dd.MM.yyyy}", this._GueltigVon);
+ text = $"{_GueltigVon:dd.MM.yyyy}";
- if (this._GueltigBis.HasValue)
+ if(_GueltigBis.HasValue)
{
- text += String.Format(" - {0:dd.MM.yyyy}", this._GueltigBis);
+ text += $" - {_GueltigBis:dd.MM.yyyy}";
}
}
else
{
- if (this._GueltigBis.HasValue)
+ if(_GueltigBis.HasValue)
{
- text = String.Format("bis {0:dd.MM.yyyy}", this._GueltigBis);
+ text = $"bis {_GueltigBis:dd.MM.yyyy}";
}
}
- if (String.IsNullOrEmpty(text))
+
+ if(string.IsNullOrEmpty(text))
{
//if (this.IsNew)
- text = "";
+ text = "";
//else
// text = "Arbeitszeitplanung";
}
+
return text;
}
-
- set { }
}
-
-
public ArbeitszeitEintragListVM ArbeitszeitEintraege
{
- get { return _ArbeitszeitEintraege; }
+ get => _ArbeitszeitEintraege;
set
{
_ArbeitszeitEintraege = value;
- FirePropertyChanged(PropertyName_ArbeitszeitEintragListeVM);
+ FirePropertyChanged(nameof(ArbeitszeitEintraege));
}
}
-
+
protected override void InitByDataContract(ArbeitszeitDC pDataContract)
{
- this._GueltigBis = pDataContract.GueltigBis;
- this._GueltigVon = pDataContract.GueltigVon;
- this._Notice = pDataContract.Notice;
-
- ArbeitszeitEintraege = VMFactory.CreateArbeitszeitEintragListVm(pDataContract.Eintraege ?? (pDataContract.Eintraege = new List()));
+ _GueltigBis = pDataContract.GueltigBis;
+ _GueltigVon = pDataContract.GueltigVon;
+ _Notice = pDataContract.Notice;
+ _Customer = pDataContract.Customer;
+ ArbeitszeitEintraege = VMFactory.CreateArbeitszeitEintragListVm(pDataContract.Eintraege ?? (pDataContract.Eintraege = new List()));
}
protected override ArbeitszeitDC MapToDataContract(ArbeitszeitDC pDataContract, bool doCommit)
@@ -160,8 +159,9 @@ namespace BeWo.ViewModel
pDataContract.GueltigVon = _GueltigVon;
pDataContract.GueltigBis = _GueltigBis;
pDataContract.Notice = _Notice;
+ pDataContract.Customer = _Customer;
- pDataContract.Eintraege = _ArbeitszeitEintraege.CopyToDCList(doCommit);
+ pDataContract.Eintraege = ArbeitszeitEintraege.CopyToDCList(doCommit);
return pDataContract;
}
diff --git a/BeWo/ViewModel/CustomerVM.cs b/BeWo/ViewModel/CustomerVM.cs
index 5aa42c5ee..47f951a83 100644
--- a/BeWo/ViewModel/CustomerVM.cs
+++ b/BeWo/ViewModel/CustomerVM.cs
@@ -201,7 +201,7 @@ namespace BeWo.ViewModel
private bool _Hygienebelehrung;
private String _Schutzstufe;
private ActivationTypeId _ActivationType;
- private ArbeitszeitListVM _ArbeitszeitListe;
+ private ArbeitszeitListVM _Arbeitszeiten;
private ValueListEntryDC _Nationalitaet;
private ObservableSortCollection _Nationalitaeten;
@@ -211,22 +211,21 @@ namespace BeWo.ViewModel
private ObservableSortCollection _RoleInFamilys;
private ObservableSortCollection _EintragKategorien;
-
- public CustomerVM(CustomerDC pDataContract, IEnumerable pValueList, List pPossibleASCs,
- List pPossibleASVs, List pPossibleMedArten)
- : base(pDataContract, pDataContract.CustomerOid == null)
+ private SubstitutionNeed _SubstitutionNeed;
+
+ public CustomerVM(CustomerDC pDataContract, IEnumerable pValueList, List pPossibleASCs, List pPossibleASVs, List pPossibleMedArten) : base(pDataContract, pDataContract.CustomerOid == null)
{
var possibleDisabilities = pValueList.Where(vle => vle.Type == ValueListEntryType.DisabilityType);
var possibleCustomerCareTypes = pValueList.Where(vle => vle.Type == ValueListEntryType.CustomerCareType);
var possibleTerminationReasons = pValueList.Where(vle => vle.Type == ValueListEntryType.TerminationReasonType);
var possiblePlacementObjectives = pValueList.Where(vle => vle.Type == ValueListEntryType.PlacementObjectiveType);
- var possibleNationalitaeten = pValueList.Where(vle => vle.Type == ValueListEntryType.Nationality);
- var possibleAufenthaltsStatuse = pValueList.Where(vle => vle.Type == ValueListEntryType.Aufenthaltsstatus);
- var possibleFamilyStatuse = pValueList.Where(vle => vle.Type == ValueListEntryType.RoleInFamily);
- var possibleEintragKategorien = pValueList.Where(vle => vle.Type == ValueListEntryType.NotizenKategorieCustomer);
+ var possibleNationalitaeten = pValueList.Where(vle => vle.Type == ValueListEntryType.Nationality);
+ var possibleAufenthaltsStatuse = pValueList.Where(vle => vle.Type == ValueListEntryType.Aufenthaltsstatus);
+ var possibleFamilyStatuse = pValueList.Where(vle => vle.Type == ValueListEntryType.RoleInFamily);
+ var possibleEintragKategorien = pValueList.Where(vle => vle.Type == ValueListEntryType.NotizenKategorieCustomer);
- _PossibleDisabilities = pDataContract.Disabilities != null
+ _PossibleDisabilities = pDataContract.Disabilities != null
? new ObservableSortCollection(possibleDisabilities.Except(pDataContract.Disabilities), Comparer.ValueListEntryDCComparer)
: new ObservableSortCollection(possibleDisabilities, Comparer.ValueListEntryDCComparer);
@@ -234,11 +233,9 @@ namespace BeWo.ViewModel
_TerminationReasons = new ObservableSortCollection(possibleTerminationReasons, Comparer.ValueListEntryDCComparer);
_PlacementObjectives = new ObservableSortCollection(possiblePlacementObjectives, Comparer.ValueListEntryDCComparer);
_Nationalitaeten = new ObservableSortCollection(possibleNationalitaeten,Comparer.ValueListEntryDCComparer);
- _AufenthaltsStatuse = new ObservableSortCollection(possibleAufenthaltsStatuse, Comparer.ValueListEntryDCComparer);
- _RoleInFamilys = new ObservableSortCollection(possibleFamilyStatuse,Comparer.ValueListEntryDCComparer);
- _EintragKategorien = new ObservableSortCollection(possibleEintragKategorien, Comparer.ValueListEntryDCComparer);
-
- Arbeitszeiten = new ArbeitszeitListVM(DataContract.Arbeitszeiten);
+ _AufenthaltsStatuse = new ObservableSortCollection(possibleAufenthaltsStatuse, Comparer.ValueListEntryDCComparer);
+ _RoleInFamilys = new ObservableSortCollection(possibleFamilyStatuse,Comparer.ValueListEntryDCComparer);
+ _EintragKategorien = new ObservableSortCollection(possibleEintragKategorien, Comparer.ValueListEntryDCComparer);
_MedArten = new BindingList(pPossibleMedArten);
@@ -265,19 +262,37 @@ namespace BeWo.ViewModel
{
_IndividualAssessmentSheetCategories = new AssessmentSheetCategoryListVM(new List(), pPossibleASVs);
}
+
+ Arbeitszeiten = new ArbeitszeitListVM(DataContract.Arbeitszeiten);
}
public ArbeitszeitListVM Arbeitszeiten
{
- get { return _ArbeitszeitListe; }
+ get => _Arbeitszeiten;
- set
+ set
{
- _ArbeitszeitListe = value;
+ _Arbeitszeiten = value;
FirePropertyChanged(PropertyName_Arbeitszeiten);
}
}
+
+ public SubstitutionNeed SubstitutionNeed
+ {
+ get => _SubstitutionNeed;
+
+ set
+ {
+ if(AreDifferent(_SubstitutionNeed, value))
+ {
+ _SubstitutionNeed = value;
+ StoreDirtyInformation(AreDifferent(DataContract.SubstitutionNeed, value), nameof(SubstitutionNeed));
+ FirePropertyChanged(nameof(SubstitutionNeed));
+ }
+ }
+ }
+
//Wird noch benötigt
//public BargeldverwaltungsVM Bargeldverwaltung
//{
@@ -293,9 +308,9 @@ namespace BeWo.ViewModel
public AbsenceTimeListVM AbsenceTimes
{
- get { return _AbsenceTimes; }
+ get => _AbsenceTimes;
- set
+ set
{
_AbsenceTimes = value;
FirePropertyChanged(PropertyName_AbsenceTimes);
@@ -799,7 +814,7 @@ namespace BeWo.ViewModel
{
get
{
- if (Utils.IsAnyNull(EmployeeRelations, TeamRelations, _EnvironmentPersons, _EnvironmentPersonsWithFamily ,_EnvironmentOrganisations, _AbsenceTimes, CostBearers, _PlacementList, _VarFields, _IndividualAssessmentSheetCategories))
+ if (Utils.IsAnyNull(EmployeeRelations, TeamRelations, _EnvironmentPersons, _EnvironmentPersonsWithFamily ,_EnvironmentOrganisations, _AbsenceTimes, CostBearers, _PlacementList, _VarFields, _IndividualAssessmentSheetCategories, _Arbeitszeiten))
{
return false;
}
@@ -807,7 +822,7 @@ namespace BeWo.ViewModel
return base.IsDirty || TeamRelations.IsDirty || EmployeeRelations.IsDirty || _EnvironmentPersons.IsDirty ||
_EnvironmentOrganisations.IsDirty || _AbsenceTimes.IsDirty || _VarFields.IsDirty ||
CostBearers.IsDirty || _IndividualAssessmentSheetCategories.IsDirty ||
- _PlacementList.IsDirty || _MedVerordnungslisten.IsDirty || _EnvironmentPersonsWithFamily.IsDirty || (_ArbeitszeitListe != null && _ArbeitszeitListe.IsDirty);
+ _PlacementList.IsDirty || _MedVerordnungslisten.IsDirty || _EnvironmentPersonsWithFamily.IsDirty || _Arbeitszeiten.IsDirty;
}
}
@@ -1410,7 +1425,6 @@ namespace BeWo.ViewModel
}
}
}
-
public ObservableSortCollection Nationalitaeten
{
@@ -1437,7 +1451,6 @@ namespace BeWo.ViewModel
return this._RoleInFamilys;
}
}
-
public ObservableSortCollection AufenthaltsStatuse
{
@@ -1452,7 +1465,6 @@ namespace BeWo.ViewModel
}
}
-
public ObservableCollection BehinderungsartenListe
{
get { return _BehinderungsartenListe ?? (_BehinderungsartenListe = new ObservableCollection()); }
@@ -1596,7 +1608,7 @@ namespace BeWo.ViewModel
}
}
- public String Schutzstufe
+ public string Schutzstufe
{
get { return _Schutzstufe; }
@@ -1631,9 +1643,9 @@ namespace BeWo.ViewModel
public MedikamentenverordnungslisteListVM MedVerordnungslisten
{
- get { return _MedVerordnungslisten; }
+ get => _MedVerordnungslisten;
- set
+ set
{
if (AreDifferent(_MedVerordnungslisten, value))
{
@@ -1706,38 +1718,39 @@ namespace BeWo.ViewModel
protected override void InitByDataContract(CustomerDC pDataContract)
{
if (!IsNew)
- {
- _DateOfBirth = pDataContract.DateOfBirth;
- _FirstName = pDataContract.FirstName;
- _FamilyStatus = pDataContract.FamilyStatus;
- _LastName = pDataContract.LastName;
- _PostalCode = pDataContract.PostalCode;
- _Profession = pDataContract.Profession;
- _Street = pDataContract.Street;
- _AddressLine1 = pDataContract.AddressLine1;
- _DistanceInMeter = pDataContract.DistanceInMeter;
- _Town = pDataContract.Town;
- _InvoiceAddressLine1 = pDataContract.InvoiceAddressLine1;
- _InvoiceAddressLine2 = pDataContract.InvoiceAddressLine2;
- _InvoiceAddressPostalCode = pDataContract.InvoiceAddressPostalCode;
- _InvoiceAddressStreet = pDataContract.InvoiceAddressStreet;
- _InvoiceAddressTown = pDataContract.InvoiceAddressTown;
- _Medication = pDataContract.Medication;
- _Environment = pDataContract.Environment;
- _Diagnosis = pDataContract.Diagnosis;
- _Notice = pDataContract.Notice;
- _ICD10Diagnosis = pDataContract.ICD10Diagnosis;
- _Childs = pDataContract.Childs;
- _EquityContribution = pDataContract.EquityContribution;
- _ReferenceNumber = pDataContract.ReferenceNumber;
- _Kindesmutter = pDataContract.Kindesmutter;
- _Kindesvater = pDataContract.Kindesvater;
- _Geschwister = pDataContract.Geschwister;
- _Vormund = pDataContract.Vormund;
- _CustomerAlias = pDataContract.CustomerAlias;
- _Pflegegrad = pDataContract.Pflegegrad;
- _Nationalitaet = pDataContract.Nationalitaet;
- _AufenthaltsStatus = pDataContract.AufenthaltsStatus;
+ {
+ _SubstitutionNeed = pDataContract.SubstitutionNeed;
+ _DateOfBirth = pDataContract.DateOfBirth;
+ _FirstName = pDataContract.FirstName;
+ _FamilyStatus = pDataContract.FamilyStatus;
+ _LastName = pDataContract.LastName;
+ _PostalCode = pDataContract.PostalCode;
+ _Profession = pDataContract.Profession;
+ _Street = pDataContract.Street;
+ _AddressLine1 = pDataContract.AddressLine1;
+ _DistanceInMeter = pDataContract.DistanceInMeter;
+ _Town = pDataContract.Town;
+ _InvoiceAddressLine1 = pDataContract.InvoiceAddressLine1;
+ _InvoiceAddressLine2 = pDataContract.InvoiceAddressLine2;
+ _InvoiceAddressPostalCode = pDataContract.InvoiceAddressPostalCode;
+ _InvoiceAddressStreet = pDataContract.InvoiceAddressStreet;
+ _InvoiceAddressTown = pDataContract.InvoiceAddressTown;
+ _Medication = pDataContract.Medication;
+ _Environment = pDataContract.Environment;
+ _Diagnosis = pDataContract.Diagnosis;
+ _Notice = pDataContract.Notice;
+ _ICD10Diagnosis = pDataContract.ICD10Diagnosis;
+ _Childs = pDataContract.Childs;
+ _EquityContribution = pDataContract.EquityContribution;
+ _ReferenceNumber = pDataContract.ReferenceNumber;
+ _Kindesmutter = pDataContract.Kindesmutter;
+ _Kindesvater = pDataContract.Kindesvater;
+ _Geschwister = pDataContract.Geschwister;
+ _Vormund = pDataContract.Vormund;
+ _CustomerAlias = pDataContract.CustomerAlias;
+ _Pflegegrad = pDataContract.Pflegegrad;
+ _Nationalitaet = pDataContract.Nationalitaet;
+ _AufenthaltsStatus = pDataContract.AufenthaltsStatus;
_VertretungGewuenscht = pDataContract.VertretungGewuenscht;
_AbWelchemKrankheitsTag = pDataContract.AbWelchemKrankheitsTag;
_VertretungDringendErforderlich = pDataContract.VertretungDringendErforderlich;
@@ -1824,7 +1837,6 @@ namespace BeWo.ViewModel
}
}
}
-
Disabilities.CollectionChanged += (s, e) => StoreDirtyInformation(!_Disabilities.ContainsSameItemsAs(pDataContract.Disabilities), PropertyName_Disabilities);
CustomerCareTypes.CollectionChanged += (s, e) => StoreDirtyInformation(!_CustomerCareTypes.ContainsSameItemsAs(pDataContract.CustomerCareTypes), PropertyName_CustomerCareTypes);
@@ -1833,8 +1845,8 @@ namespace BeWo.ViewModel
TeamRelations = new CustomerTeamRelationListVM(pDataContract.RelatedTeams ?? (pDataContract.RelatedTeams = new List()));
- List dcListFamily = new List();
- List dcListUmfeld = new List();
+ var dcListFamily = new List();
+ var dcListUmfeld = new List();
if (pDataContract.EnvironmentPersons != null)
{
@@ -1850,6 +1862,7 @@ namespace BeWo.ViewModel
}
}
}
+
EnvironmentPersons = VMFactory.CreateCustomerEnvironmentPersonRelListVM(dcListUmfeld, ValueListEntryType.EnvironmentPersonType);
EnvironmentPersonsWithFamily = VMFactory.CreateCustomerEnvironmentPersonRelListVM(dcListFamily, ValueListEntryType.RoleInFamily);
@@ -1862,90 +1875,88 @@ namespace BeWo.ViewModel
_PlacementList = new PlacementListVM(pDataContract.PlacementList);
_VarFields = new VarFieldListVM(pDataContract.CustomerVarFields);
- ICD10Codes = pDataContract.ICD10DiagnosisCodes == null ? new BindingList() : new BindingList(pDataContract.ICD10DiagnosisCodes);
+ ICD10Codes = pDataContract.ICD10DiagnosisCodes == null ? new BindingList() : new BindingList(pDataContract.ICD10DiagnosisCodes);
ICD10Codes.ListChanged += (s, e) => StoreDirtyInformation(true, "ICD10Codes");
MedVerordnungslisten = VMFactory.CreateMedikementenverordnungslisteListVM(pDataContract.Medikamentenverordnungslisten);
-
}
protected override CustomerDC MapToDataContract(CustomerDC pDataContract, bool doCommit)
{
- pDataContract.DateOfBirth = _DateOfBirth;
- pDataContract.FirstName = _FirstName;
- pDataContract.FamilyStatus = _FamilyStatus;
- pDataContract.LastName = _LastName;
- pDataContract.PostalCode = _PostalCode;
- pDataContract.Profession = _Profession;
- pDataContract.Street = _Street;
- pDataContract.AddressLine1 = _AddressLine1;
- pDataContract.Town = _Town;
- pDataContract.DistanceInMeter = _DistanceInMeter;
- pDataContract.InvoiceAddressLine1 = _InvoiceAddressLine1;
- pDataContract.InvoiceAddressLine2 = _InvoiceAddressLine2;
- pDataContract.InvoiceAddressStreet = _InvoiceAddressStreet;
- pDataContract.InvoiceAddressTown = _InvoiceAddressTown;
- pDataContract.InvoiceAddressPostalCode = _InvoiceAddressPostalCode;
- pDataContract.Jugendamt = _Jugendamt;
- pDataContract.Ansprechpartner = _Ansprechpartner;
- pDataContract.Kindesmutter = _Kindesmutter;
- pDataContract.Kindesvater = _Kindesvater;
- pDataContract.Geschwister = _Geschwister;
- pDataContract.Vormund = _Vormund;
- pDataContract.Diagnosis = _Diagnosis;
- pDataContract.Notice = _Notice;
- pDataContract.ICD10Diagnosis = _ICD10Diagnosis;
- pDataContract.Childs = _Childs;
- pDataContract.EquityContribution = _EquityContribution;
- pDataContract.ReferenceNumber = _ReferenceNumber;
- pDataContract.Disabilities = _Disabilities.ToList();
- pDataContract.CustomerCareTypes = _CustomerCareTypes.ToList();
- pDataContract.ActivationType = _ActivationType;
- pDataContract.IsMigrant = _IsMigrant;
- pDataContract.AusstVersAmt = _AusstVersAmt;
- pDataContract.AusweisGueltigVon = _AusweisGueltigVon;
- pDataContract.AusweisGueltigBis = _AusweisGueltigBis;
- pDataContract.AusweisUnbefristetGueltig = _AusweisUnbefristetGueltig;
- pDataContract.BeiblattGueltigBis = _BeiblattGueltigBis;
- pDataContract.GradDerBehinderung = _GradDerBehinderung;
- pDataContract.Nationalitaet = _Nationalitaet;
- pDataContract.AufenthaltsStatus = _AufenthaltsStatus;
- pDataContract.VertretungGewuenscht = _VertretungGewuenscht;
- pDataContract.AbWelchemKrankheitsTag = _AbWelchemKrankheitsTag;
- pDataContract.VertretungDringendErforderlich = _VertretungDringendErforderlich;
+ pDataContract.DateOfBirth = _DateOfBirth;
+ pDataContract.FirstName = _FirstName;
+ pDataContract.FamilyStatus = _FamilyStatus;
+ pDataContract.LastName = _LastName;
+ pDataContract.PostalCode = _PostalCode;
+ pDataContract.Profession = _Profession;
+ pDataContract.Street = _Street;
+ pDataContract.AddressLine1 = _AddressLine1;
+ pDataContract.Town = _Town;
+ pDataContract.DistanceInMeter = _DistanceInMeter;
+ pDataContract.InvoiceAddressLine1 = _InvoiceAddressLine1;
+ pDataContract.InvoiceAddressLine2 = _InvoiceAddressLine2;
+ pDataContract.InvoiceAddressStreet = _InvoiceAddressStreet;
+ pDataContract.InvoiceAddressTown = _InvoiceAddressTown;
+ pDataContract.InvoiceAddressPostalCode = _InvoiceAddressPostalCode;
+ pDataContract.Jugendamt = _Jugendamt;
+ pDataContract.Ansprechpartner = _Ansprechpartner;
+ pDataContract.Kindesmutter = _Kindesmutter;
+ pDataContract.Kindesvater = _Kindesvater;
+ pDataContract.Geschwister = _Geschwister;
+ pDataContract.Vormund = _Vormund;
+ pDataContract.Diagnosis = _Diagnosis;
+ pDataContract.Notice = _Notice;
+ pDataContract.ICD10Diagnosis = _ICD10Diagnosis;
+ pDataContract.Childs = _Childs;
+ pDataContract.EquityContribution = _EquityContribution;
+ pDataContract.ReferenceNumber = _ReferenceNumber;
+ pDataContract.Disabilities = _Disabilities.ToList();
+ pDataContract.CustomerCareTypes = _CustomerCareTypes.ToList();
+ pDataContract.ActivationType = _ActivationType;
+ pDataContract.IsMigrant = _IsMigrant;
+ pDataContract.AusstVersAmt = _AusstVersAmt;
+ pDataContract.AusweisGueltigVon = _AusweisGueltigVon;
+ pDataContract.AusweisGueltigBis = _AusweisGueltigBis;
+ pDataContract.AusweisUnbefristetGueltig = _AusweisUnbefristetGueltig;
+ pDataContract.BeiblattGueltigBis = _BeiblattGueltigBis;
+ pDataContract.GradDerBehinderung = _GradDerBehinderung;
+ pDataContract.Nationalitaet = _Nationalitaet;
+ pDataContract.AufenthaltsStatus = _AufenthaltsStatus;
+ pDataContract.VertretungGewuenscht = _VertretungGewuenscht;
+ pDataContract.AbWelchemKrankheitsTag = _AbWelchemKrankheitsTag;
+ pDataContract.VertretungDringendErforderlich = _VertretungDringendErforderlich;
pDataContract.Pflege = _Pflege;
pDataContract.Toilettengang = _Toilettengang;
pDataContract.Aggressiv = _Aggressiv;
pDataContract.Schutzstufe = _Schutzstufe;
pDataContract.Hygienebelehrung = _Hygienebelehrung;
pDataContract.Migrationshintergrund = _Migrationshintergrund;
+ pDataContract.SubstitutionNeed = _SubstitutionNeed;
if (_MerkzeichenListe != null)
{
pDataContract.MerkzeichenListe = _MerkzeichenListe.ToList();
}
+
if (_BehinderungsartenListe != null)
{
pDataContract.BehinderungsartenListe = _BehinderungsartenListe.ToList();
}
+
pDataContract.CustomerAlias = _CustomerAlias;
pDataContract.Pflegegrad = _Pflegegrad;
+ pDataContract.Images?.Clear();
- if (pDataContract.Images != null)
- {
- pDataContract.Images.Clear();
- }
- if (_CustomerImage != null)
+ if (_CustomerImage != null)
{
if (pDataContract.Images == null)
{
pDataContract.Images = new List();
}
+
pDataContract.Images.Add(_CustomerImage);
}
-
-
CommitContact(_MobilePhone, ContactType.business_MobilePhone);
CommitContact(_Phone, ContactType.business_Phone);
@@ -1975,7 +1986,8 @@ namespace BeWo.ViewModel
{
pDataContract.EnvironmentPersons.Add(vm.CommitToDataContract());
}
- //pDataContract.EnvironmentPersons = _EnvironmentPersons.CopyToDCList(doCommit);
+
+ //pDataContract.EnvironmentPersons = _EnvironmentPersons.CopyToDCList(doCommit);
pDataContract.EnvironmentOrganisations = _EnvironmentOrganisations.CopyToDCList(doCommit);
pDataContract.AbsenceTimes = _AbsenceTimes.CopyToDCList(doCommit);
pDataContract.CostBearers = _CostBearers.CopyToDCList(doCommit);
@@ -2013,24 +2025,25 @@ namespace BeWo.ViewModel
pDataContract.AssessmentSheetCategoryDCs.Add(dc);
}
- if (_ArbeitszeitListe != null)
- {
- pDataContract.Arbeitszeiten = _ArbeitszeitListe.CopyToDCList(doCommit);
- }
+ if(_Arbeitszeiten != null)
+ {
+ pDataContract.Arbeitszeiten = _Arbeitszeiten.CopyToDCList(doCommit);
+ }
+
return pDataContract;
}
- private void CommitContact(String pValue, ContactType pContactType)
+ private void CommitContact(string pValue, ContactType pContactType)
{
var lOldContactDCs = DataContract.ContactInformations != null ? DataContract.ContactInformations.ToList() : new List();
var lContactDC = lOldContactDCs.SingleOrDefault(con => con.ContactType == pContactType);
- if (String.IsNullOrEmpty(pValue) && lContactDC != null)
+ if (string.IsNullOrEmpty(pValue) && lContactDC != null)
{
lOldContactDCs.Remove(lContactDC);
}
- else if (!String.IsNullOrEmpty(pValue))
+ else if (!string.IsNullOrEmpty(pValue))
{
if (lContactDC == null)
{
@@ -2038,6 +2051,7 @@ namespace BeWo.ViewModel
{
ContactType = pContactType
};
+
lOldContactDCs.Add(lContactDC);
}
@@ -2047,7 +2061,7 @@ namespace BeWo.ViewModel
DataContract.ContactInformations = lOldContactDCs;
}
- private void Log(String log)
+ private void Log(string log)
{
if (_EnableLogging && _Log != null)
{
diff --git a/BeWo/ViewModel/ListViewModel/AbsenceTimeListVM.cs b/BeWo/ViewModel/ListViewModel/AbsenceTimeListVM.cs
index 3321b9874..4453f200d 100644
--- a/BeWo/ViewModel/ListViewModel/AbsenceTimeListVM.cs
+++ b/BeWo/ViewModel/ListViewModel/AbsenceTimeListVM.cs
@@ -17,9 +17,9 @@ namespace BeWo.ViewModel.ListViewModel
public List PossibleReasons
{
- get { return _PossibleReasons; }
+ get => _PossibleReasons;
- set
+ set
{
if (AreDifferent(_PossibleReasons, value))
{
diff --git a/BeWo/ViewModel/ListViewModel/ArbeitszeitEintragListVM.cs b/BeWo/ViewModel/ListViewModel/ArbeitszeitEintragListVM.cs
index 845ea9b5a..99eb2c520 100644
--- a/BeWo/ViewModel/ListViewModel/ArbeitszeitEintragListVM.cs
+++ b/BeWo/ViewModel/ListViewModel/ArbeitszeitEintragListVM.cs
@@ -6,10 +6,8 @@ namespace BeWo.ViewModel.ListViewModel
{
public class ArbeitszeitEintragListVM : AbstractDCListMapperVM
{
- public ArbeitszeitEintragListVM(IEnumerable pList)
- : base(pList)
- {
-
+ public ArbeitszeitEintragListVM(IEnumerable pList) : base(pList)
+ {
}
}
}
\ No newline at end of file
diff --git a/BeWo/ViewModel/ListViewModel/ArbeitszeitListVM.cs b/BeWo/ViewModel/ListViewModel/ArbeitszeitListVM.cs
index 9e634f80b..7cbb0b5c8 100644
--- a/BeWo/ViewModel/ListViewModel/ArbeitszeitListVM.cs
+++ b/BeWo/ViewModel/ListViewModel/ArbeitszeitListVM.cs
@@ -6,14 +6,13 @@ namespace BeWo.ViewModel.ListViewModel
{
public class ArbeitszeitListVM : AbstractDCListMapperVM
{
- public ArbeitszeitListVM(List pDCs)
- : base(pDCs)
+ public ArbeitszeitListVM(IEnumerable pDCs) : base(pDCs)
{
}
protected override ArbeitszeitVM CreateVM(ArbeitszeitDC pDC)
{
- ArbeitszeitVM vm = base.CreateVM(pDC);
+ var vm = base.CreateVM(pDC);
return vm;
}
diff --git a/BeWo/ViewModel/ListViewModel/CustomerEmployeeRelationListVM.cs b/BeWo/ViewModel/ListViewModel/CustomerEmployeeRelationListVM.cs
index 67ca5887f..4c68aeac5 100644
--- a/BeWo/ViewModel/ListViewModel/CustomerEmployeeRelationListVM.cs
+++ b/BeWo/ViewModel/ListViewModel/CustomerEmployeeRelationListVM.cs
@@ -8,16 +8,11 @@ namespace BeWo.ViewModel.ListViewModel
{
public static string PropertyName_PossibleRoles = "PossibleRoles";
- private readonly List _PossibleRoles;
-
public CustomerEmployeeRelationListVM(IEnumerable pDCs, List pPossibleRoles) : base(pDCs)
{
- _PossibleRoles = pPossibleRoles;
+ PossibleRoles = pPossibleRoles;
}
- public List PossibleRoles
- {
- get { return _PossibleRoles; }
- }
+ public List PossibleRoles { get; }
}
}
\ No newline at end of file
diff --git a/BeWoPlanerMobil/BeWoPlanerMobil.csproj b/BeWoPlanerMobil/BeWoPlanerMobil.csproj
index 0d35675fa..557ed6fb0 100644
--- a/BeWoPlanerMobil/BeWoPlanerMobil.csproj
+++ b/BeWoPlanerMobil/BeWoPlanerMobil.csproj
@@ -292,7 +292,7 @@
- False
+ True
False
8808
/
diff --git a/BeWoPlanerMobil/Controllers/MainController.cs b/BeWoPlanerMobil/Controllers/MainController.cs
index 5a7183e12..1c4798bd6 100644
--- a/BeWoPlanerMobil/Controllers/MainController.cs
+++ b/BeWoPlanerMobil/Controllers/MainController.cs
@@ -109,6 +109,12 @@ namespace BeWoPlanerMobil.Controllers
}
var myRelatedCustomers = Model.Employee == null ? new List() : Model.Employee.RelatedCustomers;
+ var relatedCustomerOids = myRelatedCustomers.Select(employee2customer => employee2customer.Customer.CustomerOid).ToList();
+
+ if(Model.Employee?.EmployeeOid != null)
+ {
+ relatedCustomerOids.AddRangeIfElementsNotIn(EmployeeService.LoadTeamsRelatedCustomerOids(Model.Employee.EmployeeOid.Value));
+ }
if (MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreationForOtherEmployees))
{
@@ -129,14 +135,14 @@ namespace BeWoPlanerMobil.Controllers
}
else
{
- Model.SupportConcepts = CustomerService.GetAllActiveSupportConceptsByCustomers(myRelatedCustomers.Select(c => c.Customer.CustomerOid));
+ Model.SupportConcepts = CustomerService.GetAllActiveSupportConceptsByCustomers(relatedCustomerOids);
}
if(!Model.ShowExpiredSupportConcepts)
{
- Model.SupportConcepts = Model.SupportConcepts.Where(w =>
+ Model.SupportConcepts = Model.SupportConcepts.Where(supportConcept =>
{
- var endDate = MainModel.GetEndDateOfSupportConcept(w);
+ var endDate = MainModel.GetEndDateOfSupportConcept(supportConcept);
return endDate == null || endDate.Value >= DateTime.Now;
}).ToList();
diff --git a/BeWoPlanerMobil/Scripts/calendar.js b/BeWoPlanerMobil/Scripts/calendar.js
index e0077b0b9..0d9e02fb0 100644
--- a/BeWoPlanerMobil/Scripts/calendar.js
+++ b/BeWoPlanerMobil/Scripts/calendar.js
@@ -30,7 +30,8 @@ function loadAppointments(newtoday) {
appointmentList.empty();
- $.each(kalenderRec, function(index, termin) {
+ $.each(kalenderRec, function (index, termin) {
+ console.log(termin);
var description = termin.Description;
var startD = termin.StartDate;
var endD = termin.EndDate;
diff --git a/Data/Access/SearchDAO.cs b/Data/Access/SearchDAO.cs
index e5a8476da..76b040f0f 100644
--- a/Data/Access/SearchDAO.cs
+++ b/Data/Access/SearchDAO.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
@@ -1031,7 +1032,7 @@ namespace BeWo.Data.Access
)
)
);
-
+
return criteria.List().ToList();
}
@@ -3008,10 +3009,8 @@ namespace BeWo.Data.Access
{
var c = CreateCriteria();
- var employeeRestriction = Restrictions.Eq(nameof(AbsenceTime.EmployeeOid), employeeOid);
- var customerRestriction = Restrictions.Eq(nameof(AbsenceTime.CustomerOid), customerOid);
+ var peopleRestriction = employeeOid != null ? Restrictions.Eq(nameof(AbsenceTime.EmployeeOid), employeeOid) : Restrictions.Eq(nameof(AbsenceTime.CustomerOid), customerOid);
- var peopleRestriction = Restrictions.Or(employeeRestriction, customerRestriction);
var timeRestriction = CreateBetweenDateTimesCriterion(startDate, endDate, nameof(AbsenceTime.Start), nameof(AbsenceTime.End));
c.Add(peopleRestriction).Add(timeRestriction);
@@ -3031,5 +3030,108 @@ namespace BeWo.Data.Access
return criteria.List();
}
+
+ public Dictionary> GetAssistanceTimesForEmployee(long employeeOid, DateTime start, DateTime end)
+ {
+ // Arbeitszeit -> keine EmployeeOid, nur in den Arbeitszeiteinträgen
+
+ var criteria = CreateCriteria();
+
+ var detachedCriteria = DetachedCriteria.For().Add(Restrictions.Eq(nameof(ArbeitszeitEintrag.Employee) + ".Oid", employeeOid)).SetProjection(Projections.Property(nameof(ArbeitszeitEintrag.ArbeitszeitOid)));
+
+ var subquery = Subqueries.PropertyIn(nameof(BeWoEntityBase.Oid), detachedCriteria);
+
+ criteria.Add(subquery);
+
+ criteria.Add(CreateArbeitszeitenTimeRestictions(start, end));
+
+ var assistanceTimes = criteria.List();
+
+ var result = new Dictionary>();
+
+ foreach(var assistanceTimeEntry in assistanceTimes)
+ {
+ if(assistanceTimeEntry.Customer != null)
+ {
+ result.AddOrUpdateValueInDictionary(assistanceTimeEntry.Customer, assistanceTimeEntry.ArbeitszeitEintraege.ToList());
+ }
+ }
+
+ return result;
+ }
+
+ private ICriterion CreateArbeitszeitenTimeRestictions(DateTime start, DateTime end)
+ {
+ // GueltigVon und GueltigBis sind null
+ var gueltigVonAndGueltigBisAreNull = Restrictions.And(Restrictions.IsNull(nameof(Arbeitszeit.GueltigVon)), Restrictions.IsNull(nameof(Arbeitszeit.GueltigBis)));
+
+ // GueltigVon ist null, GueltigBis ist nicht null
+ var gueltigVonIsNullAndGueltigBisIsGtStart = Restrictions.And(Restrictions.And(Restrictions.IsNull(nameof(Arbeitszeit.GueltigVon)), Restrictions.Gt(nameof(Arbeitszeit.GueltigBis), start)), Restrictions.And(Restrictions.IsNull(nameof(Arbeitszeit.GueltigVon)), Restrictions.Ge(nameof(Arbeitszeit.GueltigBis), start)));
+
+ // GueltigVon ist nicht null, GueltigBis ist null
+ var gueltigBisIsNullAndGueltigVonIsLtEnd = Restrictions.And(Restrictions.IsNotNull(nameof(Arbeitszeit.GueltigVon)), Restrictions.And(Restrictions.IsNull(nameof(Arbeitszeit.GueltigBis)), Restrictions.Gt(nameof(Arbeitszeit.GueltigVon), end)));
+
+ var and1 = Restrictions.And(Restrictions.IsNotNull(nameof(Arbeitszeit.GueltigVon)), Restrictions.IsNotNull(nameof(Arbeitszeit.GueltigBis)));
+ var and3 = Restrictions.And(Restrictions.Le(nameof(Arbeitszeit.GueltigVon), start), Restrictions.Ge(nameof(Arbeitszeit.GueltigBis), start));
+ var and4 = Restrictions.And(Restrictions.Le(nameof(Arbeitszeit.GueltigVon), end), Restrictions.Gt(nameof(Arbeitszeit.GueltigBis), end));
+ var and5 = Restrictions.And(Restrictions.Ge(nameof(Arbeitszeit.GueltigVon), start), Restrictions.Le(nameof(Arbeitszeit.GueltigBis), end));
+
+ var or1 = Restrictions.Or(and4, and5);
+ var or2 = Restrictions.Or(and3, or1);
+
+ // GueltigVon und GueltigBis sind nicht null
+ var gueltigVonAndGueltigBisAreNotNull = Restrictions.And(and1, or2);
+
+ return Restrictions.Or(gueltigVonAndGueltigBisAreNull, Restrictions.Or(Restrictions.Or(gueltigVonIsNullAndGueltigBisIsGtStart, gueltigBisIsNullAndGueltigVonIsLtEnd), gueltigVonAndGueltigBisAreNotNull));
+ }
+
+ public IList GetCustomersWithSubstitutionNeedUnset()
+ {
+ var c = CreateCriteria();
+
+ c.Add(Restrictions.IsNull(nameof(Customer.SubstitutionNeed)));
+
+ return c.List();
+ }
+
+ public List FindTeamRelatedCustomerOids(long employeeOid)
+ {
+ var result = new List();
+
+ var teams = CreateCriteriaIsActive()
+ .Add(Restrictions.IsNotNull(nameof(BeWoEntityBase.Oid)))
+ .CreateCriteria(nameof(Team.MemberList), JoinType.InnerJoin)
+ .Add(Restrictions.Eq(nameof(BeWoEntityBase.Oid), employeeOid))
+ .List();
+
+ var members = new List();
+
+ foreach(var team in teams)
+ {
+ members.AddRangeIfElementsNotIn(team.MemberList);
+ }
+
+ foreach(var member in members)
+ {
+ foreach(var employee2customer in member.Employee2CustomerList)
+ {
+ if(employee2customer.CustomerOid.HasValue)
+ {
+ result.AddIfNotIn(employee2customer.CustomerOid.Value);
+ }
+ }
+ }
+
+ return result;
+ }
+
+ public List FindCustomersForAbsenceTimesByStartAndEnd(DateTime intervalStart, DateTime intervalEnd)
+ {
+ var criteria = CreateCriteriaIsActive();
+ // Arbeitszeiten im gewählten Intervall holen und dann die einträge nach customeroid durchsuchen
+ // TODO: implementieren
+
+ return criteria.List().ToList();
+ }
}
}
diff --git a/Data/DefaultHibernateSessionManager.cs b/Data/DefaultHibernateSessionManager.cs
index 6d5ba9d4f..b17f7a958 100644
--- a/Data/DefaultHibernateSessionManager.cs
+++ b/Data/DefaultHibernateSessionManager.cs
@@ -54,10 +54,10 @@ namespace BeWo.Data
{
#if DEBUG
//TODO: wieder einkommentieren!
- //var hierarchy = (Hierarchy)LogManager.GetRepository();
- //var logger = (Logger)hierarchy.GetLogger("NHibernate.SQL");
- //logger.AddAppender(new TraceAppender { Layout = new SimpleLayout() });
- //hierarchy.Configured = true;
+ var hierarchy = (Hierarchy)LogManager.GetRepository();
+ var logger = (Logger)hierarchy.GetLogger("NHibernate.SQL");
+ logger.AddAppender(new TraceAppender { Layout = new SimpleLayout() });
+ hierarchy.Configured = true;
#endif
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
diff --git a/Data/Entities/Arbeitszeit.cs b/Data/Entities/Arbeitszeit.cs
index 97d42214e..e9f635d55 100644
--- a/Data/Entities/Arbeitszeit.cs
+++ b/Data/Entities/Arbeitszeit.cs
@@ -1,6 +1,6 @@
-using BS.Shared;
-using System;
+using System;
using System.Collections.Generic;
+using BS.Shared;
namespace BeWo.Data.Entities
{
@@ -14,16 +14,21 @@ namespace BeWo.Data.Entities
public static string PropertyName_ArbeitsZeiteintragListe = "ArbeitszeitEintraege";
+ public Arbeitszeit()
+ {
+ _Tid = TableID.Arbeitszeit;
+ }
+
private DateTime? _GueltigVon;
private DateTime? _GueltigBis;
private long? _EmployeeOid;
+ private Customer _Customer;
+
private IList _ArbeitszeitEintraege;
-
-
public virtual DateTime? GueltigVon
{
get
@@ -56,19 +61,15 @@ namespace BeWo.Data.Entities
}
}
-
public virtual long? EmployeeOid
{
- get
- {
- return this._EmployeeOid;
- }
+ get => _EmployeeOid;
set
{
- if (this.AreDifferent(this._EmployeeOid, value))
+ if(AreDifferent(_EmployeeOid, value))
{
- this._EmployeeOid = value;
+ _EmployeeOid = value;
}
}
}
@@ -84,6 +85,18 @@ namespace BeWo.Data.Entities
}
}
}
-
+
+ public virtual Customer Customer
+ {
+ get => _Customer;
+
+ set
+ {
+ if(AreDifferent(_Customer, value))
+ {
+ _Customer = value;
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/Data/Entities/ArbeitszeitEintrag.cs b/Data/Entities/ArbeitszeitEintrag.cs
index 7c378ea3b..375af8167 100644
--- a/Data/Entities/ArbeitszeitEintrag.cs
+++ b/Data/Entities/ArbeitszeitEintrag.cs
@@ -1,5 +1,4 @@
using BS.Shared;
-using System;
namespace BeWo.Data.Entities
{
@@ -15,6 +14,11 @@ namespace BeWo.Data.Entities
public static string PropertyName_Klient = "Klient";
+ public ArbeitszeitEintrag()
+ {
+ _Tid = TableID.ArbeitszeitEintrag;
+ }
+
private string _UhrzeitVon;
private string _UhrzeitBis;
@@ -108,5 +112,7 @@ namespace BeWo.Data.Entities
}
public virtual Employee Employee { get; set; }
+
+ public virtual Customer Customer { get; set; }
}
}
\ No newline at end of file
diff --git a/Data/Entities/Customer.cs b/Data/Entities/Customer.cs
index fc5d6776d..3597e1acd 100644
--- a/Data/Entities/Customer.cs
+++ b/Data/Entities/Customer.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using BS.Shared;
using BS.Shared.Core;
-using BS.Shared.DataContracts;
namespace BeWo.Data.Entities
{
@@ -57,7 +56,6 @@ namespace BeWo.Data.Entities
public static string PropertyName_VertretungDringendErforderlich = "VertretungGewuenscht";
public static string PropertyName_Arbeitszeit = "Arbeitszeit";
- private Auszahlungsintervall _Auszahlungsintervall;
private IList _AbsenceTimes;
private Person _Ansprechpartner;
private IList _AssessmentSheetCategoryList;
@@ -103,6 +101,7 @@ namespace BeWo.Data.Entities
private int _AbWelchemKrankheitsTag;
private bool _VertretungDringendErforderlich;
private IList _Arbeitszeit;
+ private SubstitutionNeed _SubstitutionNeed;
public Customer()
{
@@ -136,7 +135,6 @@ namespace BeWo.Data.Entities
}
}
-
public virtual IList AssessmentSheetCategoryList
{
get { return _AssessmentSheetCategoryList ?? (_AssessmentSheetCategoryList = new List()); }
@@ -519,11 +517,12 @@ namespace BeWo.Data.Entities
public virtual Dictionary GetAbsencesTimesNotBillableWholeWeeks()
{
var lResult = new Dictionary();
- IList times = AbsenceTimes;
- foreach (AbsenceTime at in times)
+ var times = AbsenceTimes;
+
+ foreach (var at in times)
{
- IEnumerable weeks = at.AbsenceSpan.GetWholeWeeks();
- foreach (DateTimeSpan span in weeks)
+ var weeks = at.AbsenceSpan.GetWholeWeeks();
+ foreach (var span in weeks)
{
if (at.AbsenceReason.BillableMinutes.HasValue && at.AbsenceReason.BillableMinutes.Value > 0 && !lResult.ContainsKey(span))
{
@@ -532,7 +531,6 @@ namespace BeWo.Data.Entities
}
}
-
return lResult;
}
@@ -692,6 +690,19 @@ namespace BeWo.Data.Entities
}
}
+ public virtual SubstitutionNeed SubstitutionNeed
+ {
+ get => _SubstitutionNeed;
+
+ set
+ {
+ if(AreDifferent(_SubstitutionNeed, value))
+ {
+ _SubstitutionNeed = value;
+ }
+ }
+ }
+
public virtual IList Arbeitszeiten
{
get { return _Arbeitszeit ?? (_Arbeitszeit = new List()); }
@@ -709,7 +720,7 @@ namespace BeWo.Data.Entities
public virtual bool Toilettengang { get; set; }
public virtual bool Aggressiv { get; set; }
public virtual bool Hygienebelehrung { get; set; }
- public virtual String Schutzstufe { get; set; }
+ public virtual string Schutzstufe { get; set; }
public virtual string TeamSimpleString
{
diff --git a/Data/Mappings/Arbeitszeit.hbm.xml b/Data/Mappings/Arbeitszeit.hbm.xml
index aaae447cf..d1911528e 100644
--- a/Data/Mappings/Arbeitszeit.hbm.xml
+++ b/Data/Mappings/Arbeitszeit.hbm.xml
@@ -1,30 +1,27 @@
-
+
-
-
-
-
+
+
+
-
+
-
-
-
-
+
+
+
-
\ No newline at end of file
diff --git a/Data/Mappings/ArbeitszeitEintrag.hbm.xml b/Data/Mappings/ArbeitszeitEintrag.hbm.xml
index a9aa8e309..05cbb4627 100644
--- a/Data/Mappings/ArbeitszeitEintrag.hbm.xml
+++ b/Data/Mappings/ArbeitszeitEintrag.hbm.xml
@@ -7,23 +7,19 @@
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
-
\ No newline at end of file
diff --git a/Data/Mappings/Customer.hbm.xml b/Data/Mappings/Customer.hbm.xml
index 16c4540f3..0c6dbf17a 100644
--- a/Data/Mappings/Customer.hbm.xml
+++ b/Data/Mappings/Customer.hbm.xml
@@ -50,6 +50,7 @@
+
diff --git a/Data/WCFHibernateSessionManager.cs b/Data/WCFHibernateSessionManager.cs
index 7ffaaec53..729d4f501 100644
--- a/Data/WCFHibernateSessionManager.cs
+++ b/Data/WCFHibernateSessionManager.cs
@@ -47,10 +47,10 @@ namespace BeWo.Data
{
#if DEBUG
//TODO: wieder einkommentieren!
- //var hierarchy = (Hierarchy)LogManager.GetRepository();
- //var logger = (Logger)hierarchy.GetLogger("NHibernate.SQL");
- //logger.AddAppender(new TraceAppender { Layout = new SimpleLayout() });
- //hierarchy.Configured = true;
+ var hierarchy = (Hierarchy)LogManager.GetRepository();
+ var logger = (Logger)hierarchy.GetLogger("NHibernate.SQL");
+ logger.AddAppender(new TraceAppender { Layout = new SimpleLayout() });
+ hierarchy.Configured = true;
#endif
_SessionFactories[MultitenancyOperationContextExt.Current.Tenant] = new Configuration().Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Multitenancy\" + MultitenancyOperationContextExt.Current.Tenant + ".config")).BuildSessionFactory();
}
diff --git a/Host/Multitenancy/demo.config b/Host/Multitenancy/demo.config
index ab8931585..b3c03c5ef 100644
--- a/Host/Multitenancy/demo.config
+++ b/Host/Multitenancy/demo.config
@@ -30,8 +30,8 @@
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
none
- false
- false
+ true
+ true
diff --git a/Model/Changes_2019_09_17 SubstitutionNeed-Spalte zu Customer.txt b/Model/Changes_2019_09_17 SubstitutionNeed-Spalte zu Customer.txt
new file mode 100644
index 000000000..22f403bcf
--- /dev/null
+++ b/Model/Changes_2019_09_17 SubstitutionNeed-Spalte zu Customer.txt
@@ -0,0 +1 @@
+ALTER TABLE Customer ADD COLUMN SubstitutionNeed TINYINT(4);
\ No newline at end of file
diff --git a/Service/DCEntityMapper/ArbeitszeitDC_Arbeitszeit.cs b/Service/DCEntityMapper/ArbeitszeitDC_Arbeitszeit.cs
index fcacc7fd9..338c5cd6f 100644
--- a/Service/DCEntityMapper/ArbeitszeitDC_Arbeitszeit.cs
+++ b/Service/DCEntityMapper/ArbeitszeitDC_Arbeitszeit.cs
@@ -1,5 +1,4 @@
-using System.IO;
-using BeWo.Data.Entities;
+using BeWo.Data.Entities;
using BS.Shared.DataContracts;
@@ -12,14 +11,18 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.ArbeitszeitOid = pEntity.Oid;
pDataContract.EmployeeOid = pEntity.EmployeeOid;
- pDataContract.GueltigVon = pEntity.GueltigVon;
- pDataContract.GueltigBis = pEntity.GueltigBis;
- pDataContract.Notice = pEntity.Notice;
+ pDataContract.GueltigVon = pEntity.GueltigVon;
+ pDataContract.GueltigBis = pEntity.GueltigBis;
+ pDataContract.Notice = pEntity.Notice;
+
+ if(pEntity.Customer != null)
+ {
+ pDataContract.Customer = MapperFactory.CompactCustomerDC_Customer.MapToNewDC(pEntity.Customer);
+ }
if (pEntity.ArbeitszeitEintraege != null)
{
- pDataContract.Eintraege =
- MapperFactory.ArbeitszeitEintragDC_ArbeitszeitEintrag.MapToNewDCs(pEntity.ArbeitszeitEintraege);
+ pDataContract.Eintraege = MapperFactory.ArbeitszeitEintragDC_ArbeitszeitEintrag.MapToNewDCs(pEntity.ArbeitszeitEintraege);
}
return pDataContract;
@@ -28,12 +31,20 @@ namespace BeWo.Service.DCEntityMapper
public override Arbeitszeit MergeWithEntity(ArbeitszeitDC pDataContract, Arbeitszeit pEntity)
{
pEntity.EmployeeOid = pDataContract.EmployeeOid;
- pEntity.GueltigVon = pDataContract.GueltigVon;
- pEntity.GueltigBis = pDataContract.GueltigBis;
- pEntity.Notice = pDataContract.Notice;
- pEntity.Oid = pDataContract.ArbeitszeitOid;
-
- MapperFactory.ArbeitszeitEintragDC_ArbeitszeitEintrag.MergeWithEntitys(pDataContract.Eintraege, pEntity.ArbeitszeitEintraege);
+ pEntity.GueltigVon = pDataContract.GueltigVon;
+ pEntity.GueltigBis = pDataContract.GueltigBis;
+ pEntity.Notice = pDataContract.Notice;
+ pEntity.Oid = pDataContract.ArbeitszeitOid;
+
+ if(pDataContract.Customer != null)
+ {
+ MapperFactory.CompactCustomerDC_Customer.MapToNewEntity(pDataContract.Customer);
+ }
+
+ if(pDataContract.Eintraege != null)
+ {
+ MapperFactory.ArbeitszeitEintragDC_ArbeitszeitEintrag.MergeWithEntitys(pDataContract.Eintraege, pEntity.ArbeitszeitEintraege);
+ }
return pEntity;
}
diff --git a/Service/DCEntityMapper/ArbeitszeitEintragDC_ArbeitszeitEintrag.cs b/Service/DCEntityMapper/ArbeitszeitEintragDC_ArbeitszeitEintrag.cs
index dbcbfeca7..cbba39532 100644
--- a/Service/DCEntityMapper/ArbeitszeitEintragDC_ArbeitszeitEintrag.cs
+++ b/Service/DCEntityMapper/ArbeitszeitEintragDC_ArbeitszeitEintrag.cs
@@ -16,7 +16,13 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.UhrzeitVon = pEntity.UhrzeitVon;
pDataContract.UhrzeitBis = pEntity.UhrzeitBis;
pDataContract.Notice = pEntity.Notice;
- pDataContract.CustomerOid = pEntity.CustomerOid;
+ pDataContract.CustomerOid = pEntity.Customer?.Oid;
+
+ if(pEntity.Customer != null)
+ {
+ pDataContract.Customer = MapperFactory.CompactCustomerDC_Customer.MapToNewDC(pEntity.Customer);
+ }
+
if (pEntity.Employee != null)
{
pDataContract.Employee = MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(pEntity.Employee);
@@ -35,14 +41,9 @@ namespace BeWo.Service.DCEntityMapper
pEntity.Oid = pDataContract.ArbeitszeitEintragOid;
pEntity.CustomerOid = pDataContract.CustomerOid;
- if (pDataContract.Employee != null)
- {
- pEntity.Employee = DAOFactory.GenericDAO.LoadByID(pDataContract.Employee.EmployeeOid);
- }
- else
- {
- pEntity.Employee = null;
- }
+ pEntity.Employee = pDataContract.Employee != null ? DAOFactory.GenericDAO.LoadByID(pDataContract.Employee.EmployeeOid) : null;
+
+ pEntity.Customer = pDataContract.Customer != null ? DAOFactory.GenericDAO.LoadByID(pDataContract.Customer.CustomerOid) : null;
return pEntity;
}
diff --git a/Service/DCEntityMapper/CompactCustomerDC_Customer.cs b/Service/DCEntityMapper/CompactCustomerDC_Customer.cs
index 61b50fa22..1ebb8d208 100644
--- a/Service/DCEntityMapper/CompactCustomerDC_Customer.cs
+++ b/Service/DCEntityMapper/CompactCustomerDC_Customer.cs
@@ -23,8 +23,10 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.TerminationDate = pEntity.TerminationDate;
pDataContract.SubstitutionStartingDayCount = pEntity.AbWelchemKrankheitsTag;
pDataContract.IsSubstitutionWanted = pEntity.VertretungGewuenscht;
-
- if (pEntity.TerminationReason != null)
+ pDataContract.SubstitutionNeed = pEntity.SubstitutionNeed;
+ pDataContract.IsSubstitutionNeeded = pEntity.VertretungDringendErforderlich;
+
+ if (pEntity.TerminationReason != null)
{
pDataContract.TerminationReason = pEntity.TerminationReason.Value;
}
diff --git a/Service/DCEntityMapper/CustomerDC_Customer.cs b/Service/DCEntityMapper/CustomerDC_Customer.cs
index e7bfe1fd5..647c98a86 100644
--- a/Service/DCEntityMapper/CustomerDC_Customer.cs
+++ b/Service/DCEntityMapper/CustomerDC_Customer.cs
@@ -77,6 +77,22 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.Schutzstufe = pEntity.Schutzstufe;
pDataContract.Hygienebelehrung = pEntity.Hygienebelehrung;
+ if(pEntity.SubstitutionNeed == SubstitutionNeed.SubstitutionNeedUnset)
+ {
+ if(pEntity.VertretungDringendErforderlich)
+ {
+ pDataContract.SubstitutionNeed = SubstitutionNeed.SubstitutionNeeded;
+ }
+ else
+ {
+ pDataContract.SubstitutionNeed = pEntity.VertretungGewuenscht ? SubstitutionNeed.SubstitutionWanted : SubstitutionNeed.NoSubstitutionWanted;
+ }
+ }
+ else
+ {
+ pDataContract.SubstitutionNeed = pEntity.SubstitutionNeed;
+ }
+
if (pEntity.BehinderungsartenListe != null)
{
pDataContract.BehinderungsartenListe = pEntity.BehinderungsartenListe.ToList();
@@ -159,9 +175,9 @@ namespace BeWo.Service.DCEntityMapper
pEntity.AssistanceBegin = pDataContract.AssistanceBegin;
pEntity.TerminationDate = pDataContract.TerminationDate;
pEntity.CustomerAlias = pDataContract.CustomerAlias;
+ pEntity.SubstitutionNeed = pDataContract.SubstitutionNeed;
-
- //if(ContainsFamilyDataData(pDataContract))
+ //if(ContainsFamilyDataData(pDataContract))
//{
// ConcurrencyCheck(pDataContract.FamilyDataVersion, pEntity.FamilyData);
diff --git a/Service/SBD/VertretungsManager.cs b/Service/SBD/VertretungsManager.cs
index 265c92841..a948043c7 100644
--- a/Service/SBD/VertretungsManager.cs
+++ b/Service/SBD/VertretungsManager.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Text;
@@ -8,6 +9,7 @@ using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
+using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
@@ -16,18 +18,86 @@ namespace BeWo.Service.SBD
{
internal class VertretungsManager
{
+ private List CreateSubstitutionList(DateTime intervalStart, DateTime intervalEnd)
+ {
+ var result = new List();
+ var start = intervalStart;
+ var end = intervalEnd.AddDays(1).AddTicks(-1);
+
+ var allAbsenceTimes = DAOFactory.SearchDAO.FindAbsenceTimes(start, end).ToList();
+ var customerAbsenceTimes = allAbsenceTimes.Where(absenceTime => absenceTime.CustomerOid.HasValue);
+ var employeeAbsenceTimes = allAbsenceTimes.Where(absenceTime => absenceTime.EmployeeOid.HasValue);
+
+ var substitutions = DAOFactory.SearchDAO.FindVertretungen(start, end).ToList();
+
+ var customerOids = new List();
+ var employeeOids = new List();
+
+ // TODO: Eine SearchDAO Funktion schreiben, um die Klienten zu laden?
+
+ employeeAbsenceTimes.DoForEach(absenceTime =>
+ {
+ if(absenceTime.EmployeeOid.HasValue)
+ {
+ employeeOids.AddIfNotIn(absenceTime.EmployeeOid.Value);
+ }
+ });
+
+ substitutions.DoForEach(substitution =>
+ {
+ if(substitution.EmployeeOid.HasValue)
+ {
+ employeeOids.AddIfNotIn(substitution.EmployeeOid.Value);
+ }
+ });
+
+ var employees = DAOFactory.GenericDAO.LoadByIDs(employeeOids);
+ employees.DoForEach(employee =>
+ {
+ if(employee.Arbeitszeiten.Any())
+ {
+ foreach(var arbeitszeit in employee.Arbeitszeiten.Where(a => a.Customer != null))
+ {
+ var date = start;
+ do
+ {
+ if (date.InBetween(arbeitszeit.GueltigVon, arbeitszeit.GueltigBis))
+ {
+ customerOids.AddIfNotIn(arbeitszeit.Customer.Oid.Value);
+ }
+ date = date.AddDays(1);
+ } while ((end - date).TotalDays > 0);
+ }
+ }
+ });
+
+ customerAbsenceTimes.DoForEach(absenceTime =>
+ {
+ if(absenceTime.CustomerOid.HasValue)
+ {
+ customerOids.AddIfNotIn(absenceTime.CustomerOid.Value);
+ }
+ });
+
+ substitutions.DoForEach(substitution =>
+ {
+ if(substitution.CustomerOid.HasValue)
+ {
+ customerOids.AddIfNotIn(substitution.CustomerOid.Value);
+ }
+ });
+
+ var customers = DAOFactory.GenericDAO.LoadByIDs(customerOids);
+
+ // Klienten aus den employeeAbsenceTimes, customerAbsenceTimes und aus den Vertretungen
+
+
+ return result;
+ }
+
private static List LoadContactInformationForEntity(long entityOid) where T : BeWoEntityBase
{
- Person entity;
-
- if(typeof(T) == typeof(Employee))
- {
- entity = DAOFactory.GenericDAO.LoadByID(entityOid).Person;
- }
- else
- {
- entity = DAOFactory.GenericDAO.LoadByID(entityOid).Person;
- }
+ var entity = typeof(T) == typeof(Employee) ? DAOFactory.GenericDAO.LoadByID(entityOid).Person : DAOFactory.GenericDAO.LoadByID(entityOid).Person;
return MapperFactory.ContactDC_Contact.MapToNewDCs(entity.Contacts);
}
@@ -46,6 +116,16 @@ namespace BeWo.Service.SBD
var customers = DAOFactory.GenericDAO.LoadByIDs(customerOids);
var customerContactInformation = new Dictionary>();
+
+ var employeeOids = new List();
+ foreach(var absenceTime in absenceTimes)
+ {
+ if(absenceTime.EmployeeOid.HasValue)
+ {
+ employeeOids.AddIfNotIn(absenceTime.EmployeeOid.Value);
+ }
+ }
+
foreach (var customer in customers)
{
var contacts = MapperFactory.ContactDC_Contact.MapToNewDCs(customer.Person.Contacts);
@@ -67,16 +147,25 @@ namespace BeWo.Service.SBD
continue;
}
- foreach (var employee2Customer in employee.Employee2CustomerList.Where(e2c => e2c.Customer.IsActive == ActivationTypeId.Active))
+ var employeAssistanceTimes = DAOFactory.SearchDAO.GetAssistanceTimesForEmployee(employee.Oid.Value, start, end);
+
+ foreach(var item in employeAssistanceTimes)
+ {
+ var vertretungsItems = ErstelleVertretungsItemsForAbsenceEmployee(absenceTime, employee, item.Key, vertretungen, start, end, LoadContactInformationForEntity(item.Key.Oid.Value), MapperFactory.ContactDC_Contact.MapToNewDCs(employee.Person.Contacts), MapperFactory.CustomerOrganisationRelationDC_Customer2Organisation.MapToNewDCs(item.Key.Customer2OrganisationList));
+
+ result.AddRangeIfElementsNotIn(vertretungsItems);
+ }
+
+ foreach (var employee2Customer in employee.Employee2CustomerList.Where(e2c => e2c.Customer.IsActive == ActivationTypeId.Active && !employeAssistanceTimes.Values.Any(a => a.Any(b => b.Employee?.Oid != null && b.Employee.Oid.Value.Equals(e2c.EmployeeOid)))))
{
foreach (var valueListEntry2Object in employee2Customer.ValueList)
{
- if (valueListEntry2Object.Entry.Type == ValueListEntryType.StaffRoleType && !valueListEntry2Object.Entry.Value.Equals("ehemalige Betreuung")) // Nur Hauptbetreuer?
+ if (valueListEntry2Object.Entry.Type == ValueListEntryType.StaffRoleType) //TODO: Wie bei VKMAachen && !valueListEntry2Object.Entry.Value.Equals("ehemalige Betreuung")) // Nur Hauptbetreuer?
{
- var items = ErstelleVertretungsItemsForAbsenceEmployee(absenceTime, employee, employee2Customer.Customer, vertretungen, start, end, LoadContactInformationForEntity(employee2Customer.Customer.Oid.Value), MapperFactory.ContactDC_Contact.MapToNewDCs(employee.Person.Contacts), MapperFactory.CustomerOrganisationRelationDC_Customer2Organisation.MapToNewDCs(employee2Customer.Customer.Customer2OrganisationList));
- if (items != null)
+ var vertretungsItems = ErstelleVertretungsItemsForAbsenceEmployee(absenceTime, employee, employee2Customer.Customer, vertretungen, start, end, LoadContactInformationForEntity(employee2Customer.Customer.Oid.Value), MapperFactory.ContactDC_Contact.MapToNewDCs(employee.Person.Contacts), MapperFactory.CustomerOrganisationRelationDC_Customer2Organisation.MapToNewDCs(employee2Customer.Customer.Customer2OrganisationList));
+ if (vertretungsItems != null)
{
- result.AddRange(items);
+ result.AddRange(vertretungsItems);
}
}
}
@@ -85,11 +174,12 @@ namespace BeWo.Service.SBD
else if (absenceTime.CustomerOid.HasValue) // Abwesenheit Klient
{
var customer = DAOFactory.GenericDAO.GetActiveByIDs(new List{ absenceTime.CustomerOid.Value }).FirstOrDefault();
- if(customer == null)
+ if(customer == null || !customer.Arbeitszeiten.Any() && !customer.Employee2CustomerList.Any())
{
continue;
}
+
var addEmpty = true;
foreach (var employee2Customer in customer.Employee2CustomerList.Where(e2c => e2c.Employee.IsActive == ActivationTypeId.Active))
@@ -100,22 +190,19 @@ namespace BeWo.Service.SBD
{
var substitutions = vertretungen.Where(vertretung => vertretung.CustomerOid.HasValue && vertretung.CustomerOid == customer.Oid).ToList();
var items = ErstelleVertretungsItemsForAbsenceEmployee(absenceTime, employee2Customer.Employee, customer, substitutions, start, end, customerContactInformation[customer.Oid.Value], MapperFactory.ContactDC_Contact.MapToNewDCs(employee2Customer.Employee.Person.Contacts), MapperFactory.CustomerOrganisationRelationDC_Customer2Organisation.MapToNewDCs(customer.Customer2OrganisationList));
- if (items != null)
- {
- addEmpty = false;
- result.AddRange(items);
- }
+
+ addEmpty = false;
+ result.AddRange(items);
}
}
}
if (addEmpty)
{
- var items = ErstelleVertretungsItemsForAbsenceEmployee(absenceTime, null, customer, null, start, end, customerContactInformation[customer.Oid.Value], null, MapperFactory.CustomerOrganisationRelationDC_Customer2Organisation.MapToNewDCs(customer.Customer2OrganisationList))?.ToList();
- if (items != null)
- {
- result.AddRange(items);
- }
+ // TODO: Schulen hinzufügen bzw. filtern -> Rolle ist Schule
+ var items = ErstelleVertretungsItemsForAbsenceEmployee(absenceTime, null, customer, null, start, end, customerContactInformation[customer.Oid.Value], null, MapperFactory.CustomerOrganisationRelationDC_Customer2Organisation.MapToNewDCs(customer.Customer2OrganisationList)).ToList();
+
+ result.AddRange(items);
}
}
}
@@ -157,24 +244,33 @@ namespace BeWo.Service.SBD
{
var vertretungsItems = new List();
+
+
var dateTime = start;
while (dateTime <= end)
{
if (LiegtImZeitraum(dateTime, absenceTime))
{
+ // TODO: Vertretungen erzeugen ein zweites VertretungsItem!
+
var newVertretungsItem = new VertretungsItemDC {Datum = dateTime, Absencetime = MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDC(absenceTime)};
+ var vertretungsOids = new List();
+
+ // Mitarbeiterabwesenheit
if (employee != null)
{
newVertretungsItem.Employee = MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(employee);
+ newVertretungsItem.EmployeeAddressString = GetEmployeeAddressInfo(employee.Oid.Value);
+
var lastSubstitutions = DAOFactory.SearchDAO.GetLastSubstitutionItems(employee.Oid.Value, 3);
var lastSubstitutionDCs = MapperFactory.VertretungDC_Vertretung.MapToNewDCs(lastSubstitutions);
newVertretungsItem.LastSubstitutions = lastSubstitutionDCs;
- AddArbeitszeitToVertretungsItem(newVertretungsItem, employee, dateTime);
+ AddArbeitszeitToVertretungsItem(newVertretungsItem, employee, dateTime, customer);
}
newVertretungsItem.Customer = MapperFactory.CompactCustomerDC_Customer.MapToNewDC(customer);
@@ -184,17 +280,43 @@ namespace BeWo.Service.SBD
newVertretungsItem.EmployeeContactInformation = employeeContactInformation;
newVertretungsItem.Schools = schools;
- if(customer != null && customer.Arbeitszeiten.Any())
+ // Klientenabwesenheit von Klient mit Betreuungszeiten oder mit Schule
+ if (customer != null && customer.Arbeitszeiten.Any() || customer.Customer2OrganisationList.Any(a => a.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.Equals("Schule"))))
{
var betreuungszeiten = MapperFactory.ArbeitszeitDC_Arbeitszeit.MapToNewDCs(customer.Arbeitszeiten);
var time = dateTime;
- var interval = betreuungszeiten.Where(w => w.GueltigVon.HasValue && w.GueltigBis.HasValue && time.InBetween(w.GueltigVon.Value, w.GueltigBis.Value, true)).ToList();
+ var interval = betreuungszeiten.Where(
+ w =>
+ {
+ if(w.GueltigVon == null && w.GueltigBis == null)
+ {
+ return true;
+ }
+
+ if(w.GueltigVon.HasValue && w.GueltigBis.HasValue)
+ {
+ return time.InBetween(w.GueltigVon.Value, w.GueltigBis.Value, true);
+ }
+
+ if(w.GueltigVon == null && w.GueltigBis.HasValue)
+ {
+ return time <= w.GueltigBis;
+ }
+
+ if(w.GueltigVon.HasValue && w.GueltigBis == null)
+ {
+ return time >= w.GueltigVon;
+ }
+
+ return false;
+ }).ToList();
+
var assistanceTimeEntries = new List();
foreach(var item in interval)
{
- assistanceTimeEntries.AddRange(item.Eintraege.Where(assistanceTimeEntry => BS.Shared.Core.DateTimeUtils.ConvertAppointmentDayOfWeekToDayOfWeek(assistanceTimeEntry.Tag) == dateTime.DayOfWeek));
+ assistanceTimeEntries.AddRange(item.Eintraege.Where(assistanceTimeEntry => DateTimeUtils.ConvertAppointmentDayOfWeekToDayOfWeek(assistanceTimeEntry.Tag) == dateTime.DayOfWeek));
}
if(assistanceTimeEntries.Any())
@@ -211,39 +333,46 @@ namespace BeWo.Service.SBD
}
else
{
- if (customer.VertretungDringendErforderlich)
- {
- newVertretungsItem.VertretungsStatus = VertretungsStatus.MaKrankVertretungBenoetigt;
- newVertretungsItem.Dringlichkeit = "Dringend";
- newVertretungsItem.DringlichkeitColor = "#FF0000";
- }
-
- if (customer.VertretungGewuenscht && !customer.VertretungDringendErforderlich)
- {
- newVertretungsItem.Dringlichkeit = "Möglichst";
- newVertretungsItem.DringlichkeitColor = "#F3D04F";
- }
- if (customer.AbWelchemKrankheitsTag > 1 && dateTime < absenceTime.Start.Value.AddDays(customer.AbWelchemKrankheitsTag - 1))
- {
- newVertretungsItem.VertretungsStatus = VertretungsStatus.MaKrankKeineVertretungBenoetigt;
- newVertretungsItem.Dringlichkeit = $"Vertretung erst ab dem {customer.AbWelchemKrankheitsTag}.Tag benötigt";
- newVertretungsItem.DringlichkeitColor = "#FFFFFF";
- }
+ GetVertretungsstatus(newVertretungsItem, dateTime, absenceTime.Start.Value, customer);
}
if (vertretungen != null)
{
foreach (var vertretung in vertretungen)
{
- if (vertretung.EmployeeOid == employee.Oid && vertretung.CustomerOid == customer.Oid)
+ if (vertretung.EmployeeOid != null && vertretung.CustomerOid != null && vertretung.EmployeeOid == employee.Oid && vertretung.CustomerOid == customer.Oid)
{
- if (vertretung.VertretungsZeitraumVon <= dateTime && vertretung.VertretungsZeitraumBis >= dateTime)
+ if (vertretung.VertretungsZeitraumVon.Date <= dateTime && vertretung.VertretungsZeitraumBis.Date >= dateTime)
{
if (vertretung.VertretenderMitarbeiterOid.HasValue)
{
newVertretungsItem.Vertreter = MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(DAOFactory.GenericDAO.LoadByID(vertretung.VertretenderMitarbeiterOid.Value));
- newVertretungsItem.VertretungsStatus = VertretungsStatus.MaKrankVertretungVorhanden;
+ newVertretungsItem.VertreterInfoString = GetEmployeeAddressInfo(vertretung.VertretenderMitarbeiterOid.Value);
+
+ // Beachten, dass alle Betreuungszeiten vertreten sind!
+ // TODO: Wenn nur ein Teil einer Betreuungszeit vertreten wird, muss das VertretungsItem kopiert werden!
+ // TODO: Mitarbeiterarbeitszeiten berücksichtigen!
+ var arbeitsZeiten = customer.Arbeitszeiten.Where(w => dateTime.InBetween(w.GueltigVon, w.GueltigBis)).ToList();
+ arbeitsZeiten.AddRange(employee.Arbeitszeiten.Where(w => dateTime.InBetween(w.GueltigVon, w.GueltigBis) && w.Customer != null && w.Customer.Equals(customer)));
+ var possibleAssistanceTimes = new List();
+ foreach(var item in arbeitsZeiten)
+ {
+ if(dateTime.InBetween(item.GueltigVon, item.GueltigBis))
+ {
+ possibleAssistanceTimes.AddRangeIfElementsNotIn(item.ArbeitszeitEintraege.Where(w => DateTimeUtils.ConvertAppointmentDayOfWeekToDayOfWeek(w.Tag).Equals(dateTime.DayOfWeek)));
+ }
+ }
+
+ if(GetIsSubstitutedCompletely(possibleAssistanceTimes, vertretung, dateTime, absenceTime))
+ {
+ newVertretungsItem.VertretungsStatus = VertretungsStatus.MaKrankVertretungVorhanden;
+ }
+ else if(vertretung.Oid.HasValue)
+ {
+ // Oid speichern und am Ende die Vertretung kopieren
+ vertretungsOids.AddIfNotIn(vertretung.Oid.Value);
+ }
}
newVertretungsItem.Vertretung = MapperFactory.VertretungDC_Vertretung.MapToNewDC(vertretung);
@@ -312,6 +441,58 @@ namespace BeWo.Service.SBD
SetTeamleitung(employee, newVertretungsItem);
}
+ foreach(var substitutionOid in vertretungsOids)
+ {
+ var copy = new VertretungsItemDC
+ {
+ Datum = newVertretungsItem.Datum,
+ Arbeitszeiten = newVertretungsItem.Arbeitszeiten,
+ Customer = newVertretungsItem.Customer,
+ Employee = newVertretungsItem.Employee,
+ Schule = newVertretungsItem.Schule,
+ Dringlichkeit = newVertretungsItem.Dringlichkeit,
+ DringlichkeitColor = newVertretungsItem.DringlichkeitColor,
+ Teamleitung = newVertretungsItem.Teamleitung,
+ Geschlecht = newVertretungsItem.Geschlecht,
+ Pflege = newVertretungsItem.Pflege,
+ Toilettengang = newVertretungsItem.Toilettengang,
+ MitarbeiterEinsatzBei = newVertretungsItem.MitarbeiterEinsatzBei,
+ Aggressiv = newVertretungsItem.Aggressiv,
+ MitarbeiterStatusColor = newVertretungsItem.MitarbeiterStatusColor,
+ KlientStatusColor = newVertretungsItem.KlientStatusColor,
+ Krankheitszeitraum = newVertretungsItem.Krankheitszeitraum,
+ VertretungsStatus = newVertretungsItem.VertretungsStatus
+ };
+
+ copy.Krankheitszeitraum = newVertretungsItem.Krankheitszeitraum;
+ copy.Absencetime = newVertretungsItem.Absencetime;
+
+ copy.EmployeeContactInformation = newVertretungsItem.EmployeeContactInformation;
+ copy.Schools = newVertretungsItem.Schools;
+ copy.LastSubstitutions = newVertretungsItem.LastSubstitutions;
+
+ copy.EmployeePflege = newVertretungsItem.EmployeePflege;
+ copy.EmployeeAggressivitaet = newVertretungsItem.EmployeeAggressivitaet;
+ copy.EmployeeHygienebelehrung = newVertretungsItem.EmployeeHygienebelehrung;
+ copy.EmployeeSchutzstufe = newVertretungsItem.EmployeeSchutzstufe;
+ copy.EmployeeToilettengang = newVertretungsItem.EmployeeToilettengang;
+
+ copy.CustomerAggressivitaet = newVertretungsItem.CustomerAggressivitaet;
+ copy.CustomerContactInformation = newVertretungsItem.CustomerContactInformation;
+ copy.CustomerHygienebelehrung = newVertretungsItem.CustomerHygienebelehrung;
+ copy.CustomerPflege = newVertretungsItem.CustomerPflege;
+ copy.CustomerSchutzstufe = newVertretungsItem.CustomerSchutzstufe;
+
+ copy.Arbeitszeiten = newVertretungsItem.Arbeitszeiten;
+ copy.CustomerToilettengang = newVertretungsItem.CustomerToilettengang;
+ copy.Schools = newVertretungsItem.Schools;
+ copy.Schule = newVertretungsItem.Schule;
+
+ GetVertretungsstatus(copy, copy.Datum, copy.Absencetime.Start.Value, DAOFactory.GenericDAO.LoadByID(copy.Customer.Oid.Value));
+
+ vertretungsItems.AddIfNotIn(copy);
+ }
+
vertretungsItems.Add(newVertretungsItem);
}
@@ -432,7 +613,7 @@ namespace BeWo.Service.SBD
}
}
- private static void AddArbeitszeitToVertretungsItem(VertretungsItemDC vertretungsItem, Employee employee, DateTime datum)
+ private static void AddArbeitszeitToVertretungsItem(VertretungsItemDC vertretungsItem, Employee employee, DateTime datum, Customer customer)
{
var shouldAddArbeitszeit = false;
@@ -467,5 +648,127 @@ namespace BeWo.Service.SBD
}
}
}
+
+ private static bool GetIsSubstitutedCompletely(IEnumerable assistanceTimes, Vertretung substitution, DateTime dateTime, AbsenceTime absenceTime)
+ {
+ // TODO: absenceTime beachten!
+ /*
+ * Vertretung mit AssistanceTimes und AbsenceTime vergleichen
+ *
+ * AssistanceTimes: Do 08:00 - 10:30 und 10:45 - 12:15 und 12:30 - 14:00
+ * AbsenceTime: 19.09.2019 09:00 bis 30.09.2019 15:00
+ * Vertretung 1: 19.09.2019 10:00 bis 22.09.2019 13:00
+ * Vertretung 2:
+ *
+ * Das Ende der Abwesenheit darf nicht größer als das Ende der Vertretung sein
+ * Der Anfang der Abwesenheit darf nicht kleiner sein als der Anfang der Vertretung
+ */
+
+ //var valid = absenceTime.Start.HasValue && absenceTime.End.HasValue && absenceTime.End.Value <= substitution.VertretungsZeitraumBis && absenceTime.Start.Value >= substitution.VertretungsZeitraumVon;
+
+ //if(!valid)
+ //{
+ // return false;
+ //}
+
+ var isSubstituted = true;
+
+ if(substitution.CustomerOid == 46)
+ {
+
+ }
+
+ foreach(var assistanceTime in assistanceTimes)
+ {
+ var assistanceDateTimes = Utils.GetAssistanceTimeComparisonDateTime(assistanceTime.UhrzeitVon, assistanceTime.UhrzeitBis, dateTime);
+
+ isSubstituted = assistanceDateTimes.Start.AreInBetweenDates(assistanceDateTimes.End, substitution.VertretungsZeitraumVon, substitution.VertretungsZeitraumBis);
+
+ if(!isSubstituted)
+ {
+ break;
+ }
+ }
+
+ return isSubstituted;
+ }
+
+ private static void GetVertretungsstatus(VertretungsItemDC vertretungsItem, DateTime dateTime, DateTime absenceTimeStartDate, Customer customer)
+ {
+ if (customer.SubstitutionNeed == SubstitutionNeed.SubstitutionNeeded)
+ {
+ vertretungsItem.VertretungsStatus = VertretungsStatus.MaKrankVertretungBenoetigt;
+ vertretungsItem.Dringlichkeit = "Dringend";
+ vertretungsItem.DringlichkeitColor = "#FF0000";
+ }
+
+ if (customer.SubstitutionNeed == SubstitutionNeed.SubstitutionWanted && customer.SubstitutionNeed != SubstitutionNeed.SubstitutionNeeded)
+ {
+ vertretungsItem.Dringlichkeit = "Möglichst";
+ vertretungsItem.DringlichkeitColor = "#F3D04F";
+ }
+
+ if (customer.AbWelchemKrankheitsTag > 1 && dateTime < absenceTimeStartDate.AddDays(customer.AbWelchemKrankheitsTag - 1))
+ {
+ vertretungsItem.VertretungsStatus = VertretungsStatus.MaKrankKeineVertretungBenoetigt;
+ vertretungsItem.Dringlichkeit = $"Vertretung erst ab dem {customer.AbWelchemKrankheitsTag}.Tag benötigt";
+ vertretungsItem.DringlichkeitColor = "#FFFFFF";
+ }
+
+ if (customer.AbWelchemKrankheitsTag == 0 && customer.SubstitutionNeed == SubstitutionNeed.SubstitutionWanted == false && customer.SubstitutionNeed == SubstitutionNeed.SubstitutionNeeded == false)
+ {
+ vertretungsItem.VertretungsStatus = VertretungsStatus.MaKrankKeineVertretungBenoetigt;
+ }
+ }
+
+ private static string GetEmployeeAddressInfo(long employeeOid)
+ {
+ var result = string.Empty;
+
+ var employee = DAOFactory.GenericDAO.LoadByID(employeeOid);
+
+ var address = employee.Person.Address;
+
+ if (address != null)
+ {
+ var addressInfo = string.Empty;
+
+ addressInfo += employee.Person.LastNameFirstName;
+
+ if (!string.IsNullOrWhiteSpace(address.Street))
+ {
+ if (addressInfo.Length > 0)
+ {
+ addressInfo += "\n\n";
+ }
+
+ addressInfo += address.Street;
+ }
+
+ if (!string.IsNullOrWhiteSpace(address.PostalCode))
+ {
+ if (addressInfo.Length > 0)
+ {
+ addressInfo += "\n";
+ }
+
+ addressInfo += address.PostalCode;
+ }
+
+ if (!string.IsNullOrWhiteSpace(address.Town))
+ {
+ if (addressInfo.Length > 0)
+ {
+ addressInfo += " ";
+ }
+
+ addressInfo += address.Town;
+ }
+
+ result = addressInfo;
+ }
+
+ return result;
+ }
}
}
diff --git a/Service/ServiceContracts/ICustomerService.cs b/Service/ServiceContracts/ICustomerService.cs
index e6324823f..65a76f2be 100644
--- a/Service/ServiceContracts/ICustomerService.cs
+++ b/Service/ServiceContracts/ICustomerService.cs
@@ -712,5 +712,9 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List LoadContactInformationForCustomer(long customerOid);
+
+ [FaultContract(typeof(BeWoFault))]
+ [OperationContract]
+ object ConvertToNewSubstitutionType();
}
}
\ No newline at end of file
diff --git a/Service/ServiceContracts/IEmployeeService.cs b/Service/ServiceContracts/IEmployeeService.cs
index a7cfd3fab..526b58308 100644
--- a/Service/ServiceContracts/IEmployeeService.cs
+++ b/Service/ServiceContracts/IEmployeeService.cs
@@ -371,5 +371,9 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List GetAllCompactEmployees();
+
+ [FaultContract(typeof(BeWoFault))]
+ [OperationContract]
+ List LoadTeamsRelatedCustomerOids(long employeeOid);
}
}
\ No newline at end of file
diff --git a/Service/ServiceImplementations/AccountingServiceImp.cs b/Service/ServiceImplementations/AccountingServiceImp.cs
index f332b3a80..def26b7ca 100644
--- a/Service/ServiceImplementations/AccountingServiceImp.cs
+++ b/Service/ServiceImplementations/AccountingServiceImp.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using BeWo.Data;
-using BeWo.Service.Multitenancy;
using BeWo.Service.Plugins;
using BS.Shared.DataContracts.Compact;
using BeWo.Data.Access;
@@ -18,7 +17,6 @@ using BS.Shared.DataContracts;
using Utils = BeWo.Service.Core.Utils;
using BeWo.Service.Invoicing;
-using Castle.Components.DictionaryAdapter;
namespace BeWo.Service.ServiceImplementations
{
diff --git a/Service/ServiceImplementations/CustomerServiceImp.cs b/Service/ServiceImplementations/CustomerServiceImp.cs
index ca1234684..aa9ae6d74 100644
--- a/Service/ServiceImplementations/CustomerServiceImp.cs
+++ b/Service/ServiceImplementations/CustomerServiceImp.cs
@@ -4051,6 +4051,41 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(e);
}
}
+
+ public object ConvertToNewSubstitutionType()
+ {
+ try
+ {
+ var allCustomers = DAOFactory.SearchDAO.GetCustomersWithSubstitutionNeedUnset();
+
+ foreach(var customer in allCustomers)
+ {
+ if (customer.SubstitutionNeed == SubstitutionNeed.SubstitutionNeedUnset)
+ {
+ if (customer.VertretungDringendErforderlich)
+ {
+ customer.SubstitutionNeed = SubstitutionNeed.SubstitutionNeeded;
+ }
+ else if (customer.VertretungGewuenscht)
+ {
+ customer.SubstitutionNeed = SubstitutionNeed.SubstitutionWanted;
+ }
+ else
+ {
+ customer.SubstitutionNeed = SubstitutionNeed.NoSubstitutionWanted;
+ }
+ }
+ }
+
+ DAOFactory.GenericDAO.Update(allCustomers);
+
+ return null;
+ }
+ catch (Exception e)
+ {
+ throw Utils.CreateBeWoFaultException(e);
+ }
+ }
}
internal struct WohnheimbuchungsIntervallStruct
diff --git a/Service/ServiceImplementations/EmployeeServiceImp.cs b/Service/ServiceImplementations/EmployeeServiceImp.cs
index 95723b146..e53868526 100644
--- a/Service/ServiceImplementations/EmployeeServiceImp.cs
+++ b/Service/ServiceImplementations/EmployeeServiceImp.cs
@@ -1364,14 +1364,17 @@ namespace BeWo.Service.ServiceImplementations
var vertretungsManager = new VertretungsManager();
var vertretungsListe = vertretungsManager.CreateVertretungsListe(date, date);
+ // EmployeeOids der Mitarbeiter, die einen abwesenden Mitarbeiter vertreten
var ausgewaehlteVertreter = vertretungsListe.Where(vertretungsItem => vertretungsItem.VertretungsStatus != VertretungsStatus.KlientKrank &&
vertretungsItem.Vertreter != null &&
vertretungsItem.Vertreter.ActivationType == ActivationTypeId.Active).Select(item => item.Vertreter.EmployeeOid);
+ // EmployeeOids der Betreuer abwesender Klienten, die nicht schon einen anderen Klienten vertreten
var employeeOids = vertretungsListe.Where(vertretungsItem => vertretungsItem.Employee != null &&
vertretungsItem.VertretungsStatus == VertretungsStatus.KlientKrank &&
!ausgewaehlteVertreter.Contains(vertretungsItem.Employee.EmployeeOid)).Select(s => s.Employee.EmployeeOid);
+ // EmployeeOids von abwesenden Mitarbeitern
var abwesenendeEmployeeOids = vertretungsListe.Where(vertretungsItem => vertretungsItem.VertretungsStatus != VertretungsStatus.KlientKrank &&
vertretungsItem.Employee != null).Select(item => item.Employee.EmployeeOid);
@@ -1506,51 +1509,70 @@ namespace BeWo.Service.ServiceImplementations
public void MakeNewEmployeeHistoryEntry(Employee employee, StatementType statementType)
{
- var employeeHistory = new EmployeeHistory
- {
- ChangeType = statementType,
+ try
+ {
+ var employeeHistory = new EmployeeHistory
+ {
+ ChangeType = statementType,
- Employee_Aggressiv = employee.Aggressiv,
- //Employee_ApplicationUserOid,
- //Employee_CancellationPeriod,
- Employee_EmployeeColor = employee.EmployeeColor,
- //Employee_EntryDate,
- Employee_HealthInsurance = employee.HealthInsurance,
- //Employee_HourlyRate,
- Employee_Hygienebelehrung = employee.Hygienebelehrung,
- Employee_InsTs = employee.InsTs,
- Employee_InsuranceNumber = employee.InsuranceNumber,
- Employee_InsUser = employee.InsUser,
- Employee_IsActive = employee.IsActive,
- Employee_IsQualified = employee.IsQualified,
- //Employee_leavedays,
- Employee_Notice = employee.Notice,
- Employee_Notice2 = employee.Notice2,
- Employee_Oid = employee.Oid,
- Employee_PersonnelNumber = employee.PersonnelNumber,
- //Employee_PersonOid,
- Employee_Pflege = employee.Pflege,
- //Employee_ProbationPeriod,
- Employee_Schutzstufe = employee.Schutzstufe,
- //Employee_Sequence,
- Employee_SystemEntryID = employee.SystemEntryID,
- Employee_TaxNumber = employee.TaxNumber,
- Employee_Text1 = employee.Text1,
- Employee_Text2 = employee.Text2,
- Employee_Text3 = employee.Text3,
- Employee_Text4 = employee.Text4,
- Employee_Text5 = employee.Text5,
- Employee_Tid = employee.Tid,
- Employee_Toilettengang = employee.Toilettengang,
- Employee_UdpUser = employee.UdpUser,
- Employee_Version = employee.Version,
- //Employee_weeklyfls = employee,
- //Employee_weeklytotalhours,
- };
+ Employee_Aggressiv = employee.Aggressiv,
+ //Employee_ApplicationUserOid,
+ //Employee_CancellationPeriod,
+ Employee_EmployeeColor = employee.EmployeeColor,
+ //Employee_EntryDate,
+ Employee_HealthInsurance = employee.HealthInsurance,
+ //Employee_HourlyRate,
+ Employee_Hygienebelehrung = employee.Hygienebelehrung,
+ Employee_InsTs = employee.InsTs,
+ Employee_InsuranceNumber = employee.InsuranceNumber,
+ Employee_InsUser = employee.InsUser,
+ Employee_IsActive = employee.IsActive,
+ Employee_IsQualified = employee.IsQualified,
+ //Employee_leavedays,
+ Employee_Notice = employee.Notice,
+ Employee_Notice2 = employee.Notice2,
+ Employee_Oid = employee.Oid,
+ Employee_PersonnelNumber = employee.PersonnelNumber,
+ //Employee_PersonOid,
+ Employee_Pflege = employee.Pflege,
+ //Employee_ProbationPeriod,
+ Employee_Schutzstufe = employee.Schutzstufe,
+ //Employee_Sequence,
+ Employee_SystemEntryID = employee.SystemEntryID,
+ Employee_TaxNumber = employee.TaxNumber,
+ Employee_Text1 = employee.Text1,
+ Employee_Text2 = employee.Text2,
+ Employee_Text3 = employee.Text3,
+ Employee_Text4 = employee.Text4,
+ Employee_Text5 = employee.Text5,
+ Employee_Tid = employee.Tid,
+ Employee_Toilettengang = employee.Toilettengang,
+ Employee_UdpUser = employee.UdpUser,
+ Employee_Version = employee.Version,
+ //Employee_weeklyfls = employee,
+ //Employee_weeklytotalhours,
+ };
- CustomerServiceImp.MakeNewPersonHistoryEntry(employee.Person, statementType);
+ CustomerServiceImp.MakeNewPersonHistoryEntry(employee.Person, statementType);
- DAOFactory.GenericDAO.Insert(employeeHistory);
- }
+ DAOFactory.GenericDAO.Insert(employeeHistory);
+ }
+ catch (Exception e)
+ {
+ throw Utils.CreateBeWoFaultException(e);
+ }
+ }
+
+ public List LoadTeamsRelatedCustomerOids(long employeeOid)
+ {
+ try
+ {
+ return DAOFactory.SearchDAO.FindTeamRelatedCustomerOids(employeeOid);
+ }
+ catch (Exception e)
+ {
+ throw Utils.CreateBeWoFaultException(e);
+ }
+ }
}
}
\ No newline at end of file
diff --git a/Shared/BeWoEntityEnums.cs b/Shared/BeWoEntityEnums.cs
index d321b8d75..aeb2772dc 100644
--- a/Shared/BeWoEntityEnums.cs
+++ b/Shared/BeWoEntityEnums.cs
@@ -145,6 +145,8 @@ namespace BS.Shared
Team2Customer = 138,
HomeViewPanel = 139,
ReportTemplate = 140,
+ Arbeitszeit = 141,
+ ArbeitszeitEintrag = 142,
}
public enum SystemEntryID
@@ -1030,4 +1032,12 @@ namespace BS.Shared
CustomReportPanel = 6,
CustomXamlPanel = 7
}
+
+ public enum SubstitutionNeed
+ {
+ SubstitutionNeedUnset = 0,
+ NoSubstitutionWanted = 1,
+ SubstitutionWanted = 2,
+ SubstitutionNeeded = 3
+ }
}
\ No newline at end of file
diff --git a/Shared/Core/DisplayEnum.cs b/Shared/Core/DisplayEnum.cs
index 9c4898c2b..778e38629 100644
--- a/Shared/Core/DisplayEnum.cs
+++ b/Shared/Core/DisplayEnum.cs
@@ -47,13 +47,12 @@ namespace BS.Shared.Core
IList Values { get; }
IList SortedValues { get; }
- IEnumValue this[Object enumObj] { get; }
+ IEnumValue this[object enumObj] { get; }
}
- public class DisplayEnum : IDisplayEnum
- where T : struct, IComparable, IFormattable, IConvertible
+ public class DisplayEnum : IDisplayEnum where T : struct, IComparable, IFormattable, IConvertible
{
- private readonly Object lockObj = new Object();
+ private readonly object lockObj = new object();
private readonly ISet excludedValues;
private IList> enumValues;
@@ -119,7 +118,7 @@ namespace BS.Shared.Core
protected virtual EnumValue CreateEnumValue(T enumValue)
{
- var value = new EnumValue(enumValue, EnumTranslations.AllTranslations[(Enum)(Object)enumValue]);
+ var value = new EnumValue(enumValue, EnumTranslations.AllTranslations[(Enum)(object)enumValue]);
return value;
}
@@ -133,34 +132,23 @@ namespace BS.Shared.Core
}
}
- public EnumValue this[T? enumObj]
+ public EnumValue this[T? enumObj] => enumObj != null ? this[enumObj.Value] : null;
+
+ #region IDisplayEnum Implementation
+
+ IList IDisplayEnum.Values => Values.Cast().ToList();
+
+ IList IDisplayEnum.SortedValues => SortedValues.Cast().ToList();
+
+ IEnumValue IDisplayEnum.this[object enumObj]
{
get
{
- return enumObj != null ? this[enumObj.Value] : null;
- }
- }
-
- #region IDisplayEnum Implementation
-
- IList IDisplayEnum.Values
- {
- get { return this.Values.Cast().ToList(); }
- }
-
- IList IDisplayEnum.SortedValues
- {
- get { return SortedValues.Cast().ToList(); }
- }
-
- IEnumValue IDisplayEnum.this[Object enumObj]
- {
- get
- {
- if (enumObj is T)
+ if (enumObj is T obj)
{
- return this[(T)enumObj];
+ return this[obj];
}
+
return null;
}
}
diff --git a/Shared/Core/EnumTranslations.cs b/Shared/Core/EnumTranslations.cs
index feb7578f9..ff67ee3ca 100644
--- a/Shared/Core/EnumTranslations.cs
+++ b/Shared/Core/EnumTranslations.cs
@@ -51,6 +51,8 @@ namespace BS.Shared.Core
public static Dictionary