diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj
index d630e4b5c..06203b650 100644
--- a/BeWo/BeWo.csproj
+++ b/BeWo/BeWo.csproj
@@ -329,6 +329,14 @@
MSBuild:Compile
Designer
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
MSBuild:Compile
Designer
@@ -337,7 +345,7 @@
MSBuild:Compile
Designer
-
+
MSBuild:Compile
Designer
@@ -977,11 +985,17 @@
AbsenceTimesView.xaml
+
+ AbwesenheitsEmployeeHeaderTooltip.xaml
+
+
+ AbwesenheitsEmployeeHeader.xaml
+
DienstplanerView.xaml
-
- AbwesenheitstabelleView.xaml
+
+ AbwesenheitsView.xaml
AbwesenheitsEditView.xaml
diff --git a/BeWo/ServiceProxy/Generated.cs b/BeWo/ServiceProxy/Generated.cs
index d23e51250..9f351951b 100644
--- a/BeWo/ServiceProxy/Generated.cs
+++ b/BeWo/ServiceProxy/Generated.cs
@@ -1321,6 +1321,7 @@ namespace BeWo.ServiceProxy
[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(System.Collections.Generic.Dictionary))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BeWo.ServiceProxy.BeWoFault))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BeWo.ServiceProxy.BeWoFaultType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
@@ -1351,6 +1352,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerEmployeeRelationDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UrlaubskontoDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeAPPCodeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
@@ -1517,12 +1519,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Employee2SchedulerAppointmentDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary>))]
- [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisRootDC))]
- [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
- [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisEmployeeDC))]
- [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
- [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisSupportConceptDC))]
- [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Tuple, System.Collections.Generic.List>))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FlexibleReportFilterDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FlexibleReportResultDC))]
@@ -1545,6 +1542,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstBlockDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstEintragDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceOverviewFilterDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BargeldkassenDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
@@ -1640,7 +1638,11 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary>))]
- [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisRootDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisEmployeeDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisSupportConceptDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AccountingReportDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
@@ -4742,26 +4744,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetReportTemplatesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List GetReportTemplates(string url);
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee11", ReplyAction="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee11Response")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee11BeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- System.Tuple, System.Collections.Generic.List> GetAbsenceTimeDCEmployee11();
-
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee21", ReplyAction="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee21Response")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee21BeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- System.Tuple, System.Collections.Generic.List> GetAbsenceTimeDCEmployee21(System.Collections.Generic.List absenceReasons, System.Collections.Generic.List employmentTypes);
-
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee31", ReplyAction="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee31Response")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee31BeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- System.Tuple, System.Collections.Generic.List> GetAbsenceTimeDCEmployee31(System.DateTime start, System.DateTime end);
-
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee41", ReplyAction="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee41Response")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee41BeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- System.Tuple, System.Collections.Generic.List> GetAbsenceTimeDCEmployee41(System.DateTime start, System.DateTime end, System.Collections.Generic.List absenceReasons, System.Collections.Generic.List employmentTypes);
-
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee51", ReplyAction="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee51Response")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCEmployee51BeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- System.Tuple, System.Collections.Generic.List> GetAbsenceTimeDCEmployee51(System.DateTime start, System.DateTime end, System.Collections.Generic.List absenceReasonIDs, System.Collections.Generic.List employmentTypeIDs);
-
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAllAbsenceReason", ReplyAction="http://tempuri.org/IOperationsService/GetAllAbsenceReasonResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAllAbsenceReasonBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List GetAllAbsenceReason();
@@ -4875,6 +4857,14 @@ namespace BeWo.ServiceProxy
"ult", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List GetAbsenceTimeVacationByWohnheim(long wohnId, int year, int month);
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAbsenceOverview", ReplyAction="http://tempuri.org/IOperationsService/GetAbsenceOverviewResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAbsenceOverviewBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ System.Collections.Generic.List GetAbsenceOverview(BS.Shared.DataContracts.AbsenceOverviewFilterDC filter);
+
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetUrlaubskontoByEmployee", ReplyAction="http://tempuri.org/IOperationsService/GetUrlaubskontoByEmployeeResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetUrlaubskontoByEmployeeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ BS.Shared.DataContracts.UrlaubskontoDC GetUrlaubskontoByEmployee(long empOid, int year);
+
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDC", ReplyAction="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDCResponse" +
"")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDCBeWoFaul" +
@@ -5820,31 +5810,6 @@ namespace BeWo.ServiceProxy
return base.Channel.GetReportTemplates(url);
}
- public System.Tuple, System.Collections.Generic.List> GetAbsenceTimeDCEmployee11()
- {
- return base.Channel.GetAbsenceTimeDCEmployee11();
- }
-
- public System.Tuple, System.Collections.Generic.List> GetAbsenceTimeDCEmployee21(System.Collections.Generic.List absenceReasons, System.Collections.Generic.List employmentTypes)
- {
- return base.Channel.GetAbsenceTimeDCEmployee21(absenceReasons, employmentTypes);
- }
-
- public System.Tuple, System.Collections.Generic.List> GetAbsenceTimeDCEmployee31(System.DateTime start, System.DateTime end)
- {
- return base.Channel.GetAbsenceTimeDCEmployee31(start, end);
- }
-
- public System.Tuple, System.Collections.Generic.List> GetAbsenceTimeDCEmployee41(System.DateTime start, System.DateTime end, System.Collections.Generic.List absenceReasons, System.Collections.Generic.List employmentTypes)
- {
- return base.Channel.GetAbsenceTimeDCEmployee41(start, end, absenceReasons, employmentTypes);
- }
-
- public System.Tuple, System.Collections.Generic.List> GetAbsenceTimeDCEmployee51(System.DateTime start, System.DateTime end, System.Collections.Generic.List absenceReasonIDs, System.Collections.Generic.List employmentTypeIDs)
- {
- return base.Channel.GetAbsenceTimeDCEmployee51(start, end, absenceReasonIDs, employmentTypeIDs);
- }
-
public System.Collections.Generic.List GetAllAbsenceReason()
{
return base.Channel.GetAllAbsenceReason();
@@ -5970,6 +5935,16 @@ namespace BeWo.ServiceProxy
return base.Channel.GetAbsenceTimeVacationByWohnheim(wohnId, year, month);
}
+ public System.Collections.Generic.List GetAbsenceOverview(BS.Shared.DataContracts.AbsenceOverviewFilterDC filter)
+ {
+ return base.Channel.GetAbsenceOverview(filter);
+ }
+
+ public BS.Shared.DataContracts.UrlaubskontoDC GetUrlaubskontoByEmployee(long empOid, int year)
+ {
+ return base.Channel.GetUrlaubskontoByEmployee(empOid, year);
+ }
+
public void UpdateIsChatActiveCustomerAPPCodeDC(long customerOid, int activeType)
{
base.Channel.UpdateIsChatActiveCustomerAPPCodeDC(customerOid, activeType);
diff --git a/BeWo/View/Detail/Report/AbwesenheitsEditView.xaml.cs b/BeWo/View/Detail/Report/AbwesenheitsEditView.xaml.cs
index 035d6ad48..53770460a 100644
--- a/BeWo/View/Detail/Report/AbwesenheitsEditView.xaml.cs
+++ b/BeWo/View/Detail/Report/AbwesenheitsEditView.xaml.cs
@@ -20,42 +20,33 @@ using SchedulerControl = DevExpress.Xpf.Scheduler.SchedulerControl;
namespace BeWo.View.Detail.Report
{
- ///
- /// Interaktionslogik für TestEMailControl.xaml
- ///
public partial class AbwesenheitsEditView : UserControl
{
- private SchedulerControl _SchedulerControl;
+ private AbwesenheitstabelleView Parent;
public bool IsEditMode { get; set; }
public AbsenceTimeDC AbsenceTime { get; set; }
public Appointment Appointment { get; }
-
- ///
- /// Für Appointment-Bearbeitung
- ///
- ///
- ///
- ///
- public AbwesenheitsEditView(SchedulerControl schedulerControl, Appointment appointment, AbsenceTimeDC absenceTimeDC, List reasons)
+
+ public AbwesenheitsEditView(AbwesenheitstabelleView abwesenheitstabelleView, Appointment appointment, List reasons)
{
InitializeComponent();
- _SchedulerControl = schedulerControl;
+ Parent = abwesenheitstabelleView;
_ReasonPicker.Items.AddRange(reasons.ToArray());
Appointment = appointment;
- IsEditMode = appointment.CustomFields["AbsenceTime"] != null;
+ IsEditMode = (AbsenceTimeDC)appointment.CustomFields[nameof(AbsenceTimeDC)] != null;
if (IsEditMode)
{
_DeleteBtn.Visibility = Visibility.Visible;
- AbsenceTime = absenceTimeDC;
+ AbsenceTime = (AbsenceTimeDC)appointment.CustomFields[nameof(AbsenceTimeDC)];
- _ReasonPicker.SelectedItem = absenceTimeDC.Reason;
- _NoticeTxt.Text = absenceTimeDC.Notice;
+ _ReasonPicker.SelectedItem = AbsenceTime.Reason;
+ _NoticeTxt.Text = AbsenceTime.Notice;
}
else
{
@@ -79,17 +70,17 @@ namespace BeWo.View.Detail.Report
{
if (MessageBox.Show("Möchten Sie den Eintrag wirklich löschen?", "Eintrag löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) != MessageBoxResult.Yes)
return;
-
- _SchedulerControl.Storage.AppointmentStorage.Remove(Appointment);
- ServiceFacade.DoOperationsServiceAsync(x => x.DeleteAbsenceTime(AbsenceTime));
+
+ Parent._SchedulerControl.Storage.AppointmentStorage.Remove(Appointment);
+ ServiceFacade.DoOperationsServiceSync(x => x.DeleteAbsenceTime(AbsenceTime));
SchedulerFormBehavior.Close(this, true);
+
+ Parent.UpdateUrlaubkonto(AbsenceTime.EmployeeOid.Value);
}
private void SaveBtn_Click(object sender, RoutedEventArgs e)
{
-
-
var start = _DatePickerStartDate.DateTime;
var end = string.IsNullOrEmpty(_DatePickerEndDate.Text) ? null : _DatePickerEndDate.DateTime as DateTime?;
@@ -110,18 +101,20 @@ namespace BeWo.View.Detail.Report
var t = AbsenceTime.AbsenceTimeVersion;
- SchedulerHelper.OverrideAWithB(Appointment, AbsenceTime);
+ SchedulerHelper.OverrideAppointmentWithAbsenceTime(Appointment, AbsenceTime);
}
else
{
AbsenceTime = ServiceFacade.DoOperationsServiceSync(x => x.InsertAbsenceTimeWithReturn(AbsenceTime));
- SchedulerHelper.OverrideAWithB(Appointment, AbsenceTime);
+ SchedulerHelper.OverrideAppointmentWithAbsenceTime(Appointment, AbsenceTime);
- _SchedulerControl.Storage.AppointmentStorage.Add(Appointment);
+ Parent._SchedulerControl.Storage.AppointmentStorage.Add(Appointment);
}
SchedulerFormBehavior.Close(this, true);
+
+ Parent.UpdateUrlaubkonto(AbsenceTime.EmployeeOid.Value);
}
}
}
diff --git a/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml
new file mode 100644
index 000000000..9c14e5937
--- /dev/null
+++ b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml.cs b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml.cs
new file mode 100644
index 000000000..83a01bade
--- /dev/null
+++ b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml.cs
@@ -0,0 +1,56 @@
+using BS.Shared.DataContracts;
+using DevExpress.Xpf.Core;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace BeWo.View.Detail.Report
+{
+ public partial class AbwesenheitsEmployeeHeader : UserControl
+ {
+ public static readonly DependencyProperty EmployeeDCProperty = DependencyProperty.Register(
+ "EmployeeDC",
+ typeof(EmployeeDC),
+ typeof(AbwesenheitsEmployeeHeader),
+ new UIPropertyMetadata(
+ (s, e) =>
+ {
+ var dc = (EmployeeDC)e.NewValue;
+ var c = (AbwesenheitsEmployeeHeader)s;
+
+ if (c != null)
+ {
+ if (dc != null)
+ {
+ c._EmployeeName.Text = dc.LastNameFirstName;
+ c._EmployeeUrlaub.Text = $"Urlaub: {dc.Urlaubskonto.Resturlaub.ToString("0.00")}/{dc.Urlaubskonto.Urlaubsanspruch.ToString("0.00")} Tage";
+ ((AbwesenheitsEmployeeHeaderTooltip)c.ToolTip).Set(dc);
+ }
+ }
+ }));
+
+ public AbwesenheitsEmployeeHeader()
+ {
+ InitializeComponent();
+ ToolTip = new AbwesenheitsEmployeeHeaderTooltip();
+ }
+
+ public EmployeeDC EmployeeDC
+ {
+ get { return (EmployeeDC)GetValue(EmployeeDCProperty); }
+
+ set { SetValue(EmployeeDCProperty, value); }
+ }
+ }
+}
diff --git a/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeaderTooltip.xaml b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeaderTooltip.xaml
new file mode 100644
index 000000000..f1508daea
--- /dev/null
+++ b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeaderTooltip.xaml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeaderTooltip.xaml.cs b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeaderTooltip.xaml.cs
new file mode 100644
index 000000000..3984a3a24
--- /dev/null
+++ b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeaderTooltip.xaml.cs
@@ -0,0 +1,37 @@
+using BS.Shared.DataContracts;
+using DevExpress.Xpf.Core;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace BeWo.View.Detail.Report
+{
+ public partial class AbwesenheitsEmployeeHeaderTooltip : UserControl
+ {
+ public AbwesenheitsEmployeeHeaderTooltip()
+ {
+ InitializeComponent();
+ }
+
+ public void Set(EmployeeDC emp)
+ {
+ var konto = emp.Urlaubskonto;
+
+ _TxtResturlaub.Text = konto.Resturlaub.ToString("0.00") + " Tage";
+ _TxtResturlaubVorjahr.Text = konto.ResturlaubVorjahr.ToString("0.00") + " Tage";
+ _TxtUrlaubsanspruch.Text = konto.Urlaubsanspruch.ToString("0.00") + " Tage";
+ _TxtUrlaubsanspruchVorjahr.Text = konto.ResturlaubVorjahrTotal.ToString("0.00") + " Tage";
+ }
+ }
+}
diff --git a/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml b/BeWo/View/Detail/Report/AbwesenheitsView.xaml
similarity index 57%
rename from BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml
rename to BeWo/View/Detail/Report/AbwesenheitsView.xaml
index 255fac032..cc3107c4e 100644
--- a/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml
+++ b/BeWo/View/Detail/Report/AbwesenheitsView.xaml
@@ -10,7 +10,9 @@
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxschi="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
xmlns:XtraScheduler="clr-namespace:DevExpress.XtraScheduler;assembly=DevExpress.XtraScheduler.v17.1.Core"
- x:Class="BeWo.View.Detail.Report.AbwesenheitstabelleView"
+ xmlns:controls="clr-namespace:BeWo.View.Controls"
+ xmlns:report="clr-namespace:BeWo.View.Detail.Report"
+ x:Class="BeWo.View.Detail.Report.AbwesenheitstabelleView"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Focusable="True">
@@ -21,9 +23,9 @@
@@ -32,11 +34,9 @@
-
+
+
+
@@ -47,7 +47,7 @@
-
+
@@ -56,72 +56,41 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -129,7 +98,9 @@
-
+
diff --git a/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml.cs b/BeWo/View/Detail/Report/AbwesenheitsView.xaml.cs
similarity index 57%
rename from BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml.cs
rename to BeWo/View/Detail/Report/AbwesenheitsView.xaml.cs
index 0fb41c9dc..0ecb18af7 100644
--- a/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml.cs
+++ b/BeWo/View/Detail/Report/AbwesenheitsView.xaml.cs
@@ -8,6 +8,7 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
using System.Windows.Forms;
+using System.Windows.Navigation;
using System.Windows.Media;
using BeWo.Controls;
@@ -23,17 +24,16 @@ using BS.Shared.Extensions;
using BS.Shared.Translation;
using DevExpress.Services;
-using DevExpress.XtraScheduler;
using DevExpress.Xpf.Scheduler;
-using DevExpress.Xpf.Scheduler.Native;
using SchedulerStorage = DevExpress.Xpf.Scheduler.SchedulerStorage;
using ResourceStorage = DevExpress.Xpf.Scheduler.ResourceStorage;
using AppointmentStorage = DevExpress.Xpf.Scheduler.AppointmentStorage;
using IAppointmentLabelStorage = DevExpress.Xpf.Scheduler.AppointmentLabelCollection;
-using BeWo.Scheduler.View;
-using AppointmentLabel = DevExpress.Xpf.Scheduler.AppointmentLabel;
-using System.Windows.Navigation;
+using ColorConverter = System.Windows.Media.ColorConverter;
+using SchedulerControl = DevExpress.Xpf.Scheduler.SchedulerControl;
+using AppointmentViewInfoCustomizingEventArgs = DevExpress.Xpf.Scheduler.AppointmentViewInfoCustomizingEventArgs;
+using DevExpress.XtraScheduler;
namespace BeWo.View.Detail.Report
{
@@ -48,26 +48,34 @@ namespace BeWo.View.Detail.Report
private AppointmentStorage _AppointmentStorage;
private List _AbsenceReasonDCs;
+ private Dictionary _EmployeeDict;
+
+ private AbsenceOverviewFilterDC _SelectedFilter;
+
public AbwesenheitstabelleView()
{
InitializeComponent();
- InitFilter();
- InitDateStuff();
- InitSchedulerStuff();
+ InitializeFilter();
+ InitializeDateSelction();
+ InitializeScheduler();
linkPdfExport.NavigateUri = BeWoApp.SiteOfOrigin;
- //_SchedulerControl.Start = new DateTime(2020, 02, 01);
+
+ _EmployeeDict = new Dictionary();
}
public List SelectedAbsenceReasons => FilterAbwesenheit.SelectedItems.Cast().ToList();
public List SelectedEmploymentTypes => FilterBeschaftigungsart.SelectedItems.Cast().ToList();
-
-
- private void Button_Click(object sender, RoutedEventArgs e) => UpdateScheduler();
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ UpdateFilter();
+ UpdateScheduler();
+ }
private void SchedularControl_EditAppointmentFormShowing(object sender, EditAppointmentFormEventArgs e)
{
@@ -75,7 +83,7 @@ namespace BeWo.View.Detail.Report
e.AllowResize = false;
- e.Form = new AbwesenheitsEditView(_SchedulerControl, apt, (AbsenceTimeDC)apt.CustomFields["AbsenceTime"], _AbsenceReasonDCs);
+ e.Form = new AbwesenheitsEditView(this, apt, _AbsenceReasonDCs);
}
private void SchedularControl_EditRecurrentAppointmentFormShowing(object sender, EditAppointmentFormEventArgs e)
@@ -83,9 +91,9 @@ namespace BeWo.View.Detail.Report
e.Cancel = true;
}
- private void SchedulerControl_AppointmentViewInfoCustomizing(object sender, DevExpress.Xpf.Scheduler.AppointmentViewInfoCustomizingEventArgs e)
+ private void SchedulerControl_AppointmentViewInfoCustomizing(object sender, AppointmentViewInfoCustomizingEventArgs e)
{
-
+
}
private void SpinEdit_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
@@ -93,20 +101,10 @@ namespace BeWo.View.Detail.Report
if (e.NewValue == null || !int.TryParse(e.NewValue.ToString(), out var count))
return;
- if (count > 0)
+ if (count > 0 && count <= DateTime.DaysInMonth(_SelectedFilter.Year, _SelectedFilter.Month))
_SchedulerControl.TimelineView.IntervalCount = count;
}
- private void DateEdit_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
- {
- var dp = _DateTimePicker.DateTime;
-
- _DateTimePicker.DateTime = dp.AddDays(1 - dp.Day);
- _SpinEdit.Value = DateTime.DaysInMonth(dp.Year, dp.Month);
-
- _SchedulerControl.Start = _DateTimePicker.DateTime;
- }
-
private void LinkPdfExport_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
var control = new AbwesenheitsPrintControl(_SchedulerControl.Start);
@@ -133,7 +131,12 @@ namespace BeWo.View.Detail.Report
beWoWindow.ShowDialog();
}
- private void InitFilter()
+ private void SchedulerControl_PopupMenuShowing(object sender, SchedulerMenuEventArgs e)
+ {
+ e.Handled = true;
+ }
+
+ private void InitializeFilter()
{
var absenceReasons = ServiceFacade.DoOperationsServiceSync(x => x.GetAllAbsenceReason());
var employmentTypes = ServiceFacade.DoEmployeeServiceSync(x => x.GetAllEmploymentTypes());
@@ -143,50 +146,101 @@ namespace BeWo.View.Detail.Report
_AbsenceReasonDCs = absenceReasons;
}
- private void InitDateStuff()
+ private void InitializeDateSelction()
{
- var today = DateTime.Today;
- _DateTimePicker.DateTime = today.AddDays(1 - today.Day);
- _SpinEdit.Text = DateTime.DaysInMonth(today.Year, today.Month).ToString();
+ var year = new List();
+ for (int i = 1900; i < DateTime.Today.Year + 100; i++)
+ {
+ year.Add(i);
+ }
+
+ _YearPicker.ItemsSource = year;
+
+ _MonthPicker.SelectedMonth = DateTime.Today.Month;
+ _YearPicker.SelectedItem = DateTime.Today.Year;
}
- private void InitSchedulerStuff()
+ private void InitializeScheduler()
{
- _SchedulerStorage = _SchedulerControl.Storage;
- _LabelStorage = _SchedulerControl.Storage.AppointmentStorage.Labels;
- _ResourceStorage = _SchedulerControl.Storage.ResourceStorage;
- _AppointmentStorage = _SchedulerControl.Storage.AppointmentStorage;
-
- _AppointmentStorage.CustomFieldMappings.Add(new SchedulerCustomFieldMapping("AbsenceTime", "AbsenceTime"));
- _SchedulerControl.TimelineView.VerticalResourceHeaderStyle = (Style)this.FindResource("VerticalResourceHeaderStyle");
-
- IMouseHandlerService oldMouseHandler = (IMouseHandlerService)_SchedulerControl.GetService(typeof(IMouseHandlerService));
-
- if (oldMouseHandler != null)
+ try
{
- MouseHandlerService newMouseHandler =
- new MouseHandlerService(_SchedulerControl, oldMouseHandler);
- _SchedulerControl.RemoveService(typeof(IMouseHandlerService));
- _SchedulerControl.AddService(typeof(IMouseHandlerService), newMouseHandler);
+ _SchedulerControl.BeginInit();
+
+ _SchedulerStorage = _SchedulerControl.Storage;
+ _LabelStorage = _SchedulerControl.Storage.AppointmentStorage.Labels;
+ _ResourceStorage = _SchedulerControl.Storage.ResourceStorage;
+ _AppointmentStorage = _SchedulerControl.Storage.AppointmentStorage;
+
+ _AppointmentStorage.CustomFieldMappings.Add(new SchedulerCustomFieldMapping(nameof(AbsenceTimeDC), nameof(AbsenceTimeDC)));
+ _ResourceStorage.CustomFieldMappings.Add(new SchedulerCustomFieldMapping(nameof(EmployeeDC), nameof(EmployeeDC)));
+
+ _SchedulerControl.TimelineView.VerticalResourceHeaderStyle = (Style)FindResource("VerticalResourceHeaderStyle");
+
+ IMouseHandlerService oldMouseHandler = (IMouseHandlerService)_SchedulerControl.GetService(typeof(IMouseHandlerService));
+
+ if (oldMouseHandler != null)
+ {
+ MouseHandlerService newMouseHandler =
+ new MouseHandlerService(_SchedulerControl, oldMouseHandler);
+ _SchedulerControl.RemoveService(typeof(IMouseHandlerService));
+ _SchedulerControl.AddService(typeof(IMouseHandlerService), newMouseHandler);
+ }
+
+ _SchedulerControl.TimelineView.VerticalResourceHeaderStyle = (Style)FindResource("VerticalResourceHeaderStyle");
}
+ finally
+ {
+ _SchedulerControl.EndInit();
+ }
+ }
+
+ public void UpdateUrlaubkonto(long empOid)
+ {
+ _EmployeeDict[empOid].Urlaubskonto = ServiceFacade.DoOperationsServiceSync(x => x.GetUrlaubskontoByEmployee(empOid, 2020));
+
+ var xx = _ResourceStorage.GetResourceById(empOid.ToString());
+
+ xx.CustomFields[nameof(EmployeeDC)] = null;
+ xx.CustomFields[nameof(EmployeeDC)] = _EmployeeDict[empOid];
+ }
+
+ private void UpdateFilter()
+ {
+ _SelectedFilter = new AbsenceOverviewFilterDC
+ {
+ Year = (int)_YearPicker.SelectedItem,
+ Month = _MonthPicker.SelectedMonth
+ };
+
+ if (SelectedAbsenceReasons.Any())
+ _SelectedFilter.AbsenceReasons = SelectedAbsenceReasons.Select(x => x.AbsenceReasonOid.Value).ToList();
+
+ if (SelectedEmploymentTypes.Any())
+ _SelectedFilter.EmploymentType = SelectedEmploymentTypes.Select(x => x.EmploymentTypeOid.Value).ToList();
+
}
private void UpdateScheduler()
{
var absenceReasons = ServiceFacade.DoOperationsServiceSync(x => x.GetAllAbsenceReason());
- var tuple = ServiceFacade.DoOperationsServiceSync(x => x.GetAbsenceTimeDCEmployee21(SelectedAbsenceReasons, SelectedEmploymentTypes));
- var absenceTimes = tuple.Item1;
- var employees = tuple.Item2;
+ var absenceOverview = ServiceFacade.DoOperationsServiceSync(x => x.GetAbsenceOverview(_SelectedFilter));
+ var start = new DateTime(_SelectedFilter.Year, _SelectedFilter.Month, 1);
try
{
_SchedulerStorage.BeginUpdate();
+ _SchedulerControl.LimitInterval = new TimeInterval(start, start.AddMonths(1).AddTicks(-1));
+ _SchedulerControl.Start = start;
+ _SpinEdit.MinValue = 1;
+ _SpinEdit.MaxValue = DateTime.DaysInMonth(_SelectedFilter.Year, _SelectedFilter.Month);
+ _SpinEdit.Value = _SpinEdit.MaxValue.Value;
+
_LabelStorage.Clear();
foreach (var reason in absenceReasons)
{
var label = _LabelStorage.CreateNewLabel(reason.AbsenceReasonOid.ToString(), reason.Description);
- if (!String.IsNullOrEmpty(reason.Color))
+ if (!string.IsNullOrEmpty(reason.Color))
{
label.Color = (Color)ColorConverter.ConvertFromString(reason.Color);
}
@@ -194,24 +248,27 @@ namespace BeWo.View.Detail.Report
_LabelStorage.Add(label);
}
+ _EmployeeDict.Clear();
_ResourceStorage.Clear();
- foreach (var employee in employees)
+ _AppointmentStorage.Clear();
+ foreach (var employee in absenceOverview)
{
var resource = _SchedulerStorage.CreateResource(employee.EmployeeOid.Value.ToString());
resource.Caption = employee.LastNameFirstName;
+ resource.CustomFields[nameof(EmployeeDC)] = employee;
+ _EmployeeDict.Add(employee.EmployeeOid.Value, employee);
_ResourceStorage.Add(resource);
- }
- _AppointmentStorage.Clear();
- foreach (var absenceTime in absenceTimes)
- {
- var appointment = _SchedulerStorage.CreateAppointment(AppointmentType.Normal);
+ foreach (var absence in employee.AbsenceTimes)
+ {
+ var appointment = _SchedulerStorage.CreateAppointment(AppointmentType.Normal);
- SchedulerHelper.OverrideAWithB(appointment, absenceTime);
+ SchedulerHelper.OverrideAppointmentWithAbsenceTime(appointment, absence);
- _AppointmentStorage.Add(appointment);
+ _AppointmentStorage.Add(appointment);
+ }
}
}
finally
@@ -236,11 +293,6 @@ namespace BeWo.View.Detail.Report
linkPdfExport.NavigateUri = new Uri(url);
}
-
- private void _SchedulerControl_PopupMenuShowing(object sender, SchedulerMenuEventArgs e)
- {
- e.Handled = false;
- }
}
public class MouseHandlerService : MouseHandlerServiceWrapper
@@ -262,7 +314,7 @@ namespace BeWo.View.Detail.Report
public static class SchedulerHelper
{
- public static void OverrideAWithB(Appointment appointment, AbsenceTimeDC absenceTime)
+ public static void OverrideAppointmentWithAbsenceTime(Appointment appointment, AbsenceTimeDC absenceTime)
{
appointment.AllDay = true;
appointment.Subject = absenceTime.Reason.Description;
@@ -271,8 +323,8 @@ namespace BeWo.View.Detail.Report
appointment.ResourceId = absenceTime.EmployeeOid.Value.ToString();
appointment.LabelKey = absenceTime.Reason.AbsenceReasonOid.ToString();
appointment.Description = absenceTime.Notice;
- appointment.CustomFields["AbsenceTime"] = null;
- appointment.CustomFields["AbsenceTime"] = absenceTime;
+ appointment.CustomFields[nameof(AbsenceTimeDC)] = null;
+ appointment.CustomFields[nameof(AbsenceTimeDC)] = absenceTime;
}
}
}
\ No newline at end of file
diff --git a/BeWo/View/Detail/Report/DienstplanerView.xaml.cs b/BeWo/View/Detail/Report/DienstplanerView.xaml.cs
index 038c75a19..363a789f7 100644
--- a/BeWo/View/Detail/Report/DienstplanerView.xaml.cs
+++ b/BeWo/View/Detail/Report/DienstplanerView.xaml.cs
@@ -197,7 +197,7 @@ namespace BeWo.View.Detail.Report
private void InitDateComboBox()
{
var year = new List();
- for (int i = 1900; i < 2100; i++)
+ for (int i = 1900; i < DateTime.Today.Year + 100; i++)
{
year.Add(i);
}
diff --git a/BeWo/View/Master/ReportView.xaml.cs b/BeWo/View/Master/ReportView.xaml.cs
index e96d8b9d5..8ff4d1767 100644
--- a/BeWo/View/Master/ReportView.xaml.cs
+++ b/BeWo/View/Master/ReportView.xaml.cs
@@ -146,6 +146,7 @@ namespace BeWo.View.Master
#if DEBUG
tabitem_serviceOverview.Visibility = Visibility.Visible;
tabitem_abwesenheitsTabelle.Visibility = Visibility.Visible;
+
tabitem_dienstPlaner.Visibility = Visibility.Visible;
#endif
}
diff --git a/Host/ReportView.aspx.cs b/Host/ReportView.aspx.cs
index 879f7e06e..2ee682985 100644
--- a/Host/ReportView.aspx.cs
+++ b/Host/ReportView.aspx.cs
@@ -612,7 +612,7 @@ namespace Host
if (Request.Params["et"] != null)
absenceIDs = Request.Params["et"].Split(';').Select(long.Parse).ToList();
-
+
return reportCreator.CreateAbsenceReport(dt, absenceIDs, empIDs);
}
diff --git a/Report/AbstractReportCreator.cs b/Report/AbstractReportCreator.cs
index a87dde687..946934495 100644
--- a/Report/AbstractReportCreator.cs
+++ b/Report/AbstractReportCreator.cs
@@ -77,7 +77,9 @@ namespace BeWo.Report
public abstract XtraReport CreateCustomReport(long employeeOid, String reportName);
public abstract XtraReport CreateAbsenceReport(DateTime dt, List abs, List empTypes);
+
public abstract XtraReport CreateRosterReport(long wOid, DateTime dt);
+
public abstract XtraReport CreateKilometerauswertung(long customerOid, DateTime rangeDate);
public abstract XtraReport CreateKilometerauswertungForAllCustomers(List customerOids, DateTime rangeDate);
diff --git a/Report/DefaultReportCreator.cs b/Report/DefaultReportCreator.cs
index d966ef166..df2e6c92b 100644
--- a/Report/DefaultReportCreator.cs
+++ b/Report/DefaultReportCreator.cs
@@ -179,10 +179,10 @@ namespace BeWo.Report
return report as XtraReport;
}
- public override XtraReport CreateFlsReport(String flsReportId, String subType)
- {
- string flsReportPath = BS.Shared.Core.Utils.CreateSavePath(TempPath, flsReportId + ".xml");
- var lFLSAnalysisDataReportDC = Utils.XMLDeserialize(flsReportPath);
+ public override XtraReport CreateFlsReport(String flsReportId, String subType)
+ {
+ string flsReportPath = BS.Shared.Core.Utils.CreateSavePath(TempPath, flsReportId + ".xml");
+ var lFLSAnalysisDataReportDC = Utils.XMLDeserialize(flsReportPath);
IBeWoReport lFLSReportObject = null;
@@ -199,14 +199,14 @@ namespace BeWo.Report
return lFLSReportObject as XtraReport;
}
- public override XtraReport CreateQueryReport(long queryOid, String queryReportId)
- {
- var query = DAOFactory.GenericDAO.LoadByID(queryOid);
+ public override XtraReport CreateQueryReport(long queryOid, String queryReportId)
+ {
+ var query = DAOFactory.GenericDAO.LoadByID(queryOid);
- if (query == null)
- return new XtraReport();
-
- var path = BS.Shared.Core.Utils.CreateSavePath(TempPath, queryReportId + ".xml");
+ if (query == null)
+ return new XtraReport();
+
+ var path = BS.Shared.Core.Utils.CreateSavePath(TempPath, queryReportId + ".xml");
var table = Utils.XMLDeserialize(path);
@@ -402,48 +402,48 @@ namespace BeWo.Report
return new XtraReport();
}
- private IList GetMeineKlientenOids()
- {
- IList customerOids = new List();
+ private IList GetMeineKlientenOids()
+ {
+ IList customerOids = new List();
ApplicationUser loggedInUser = null;
- if (LoggedInUserOperationContextExt.Current != null && LoggedInUserOperationContextExt.Current.User != null)
- {
- loggedInUser = LoggedInUserOperationContextExt.Current.User;
- }
- else
- {
- loggedInUser = SessionFacade.LoggedInUser;
- }
+ if (LoggedInUserOperationContextExt.Current != null && LoggedInUserOperationContextExt.Current.User != null)
+ {
+ loggedInUser = LoggedInUserOperationContextExt.Current.User;
+ }
+ else
+ {
+ loggedInUser = SessionFacade.LoggedInUser;
+ }
- if (loggedInUser != null && loggedInUser.Employee != null)
- {
- foreach (var e2c in loggedInUser.Employee.Employee2CustomerList)
- {
- if (e2c.Customer.IsActive == ActivationTypeId.Active)
- {
- foreach (var v2o in e2c.ValueList)
- {
- if (v2o.Entry.Type == ValueListEntryType.StaffRoleType && v2o.Entry.SystemEntryID.HasValue && v2o.Entry.SystemEntryID.Value == SystemEntryID.EmployeeRoleMainAttendant)
+ if (loggedInUser != null && loggedInUser.Employee != null)
+ {
+ foreach (var e2c in loggedInUser.Employee.Employee2CustomerList)
+ {
+ if (e2c.Customer.IsActive == ActivationTypeId.Active)
+ {
+ foreach (var v2o in e2c.ValueList)
+ {
+ if (v2o.Entry.Type == ValueListEntryType.StaffRoleType && v2o.Entry.SystemEntryID.HasValue && v2o.Entry.SystemEntryID.Value == SystemEntryID.EmployeeRoleMainAttendant)
{
- if (!customerOids.Contains(e2c.Customer.Oid.Value))
- {
- customerOids.Add(e2c.Customer.Oid.Value);
- }
+ if (!customerOids.Contains(e2c.Customer.Oid.Value))
+ {
+ customerOids.Add(e2c.Customer.Oid.Value);
+ }
- }
- }
- }
- }
- }
+ }
+ }
+ }
+ }
+ }
- return customerOids;
- }
+ return customerOids;
+ }
- public virtual IList GetKlientenOidsMeinesTeams(long? teamOid)
- {
- IList customerOids = new List();
+ public virtual IList GetKlientenOidsMeinesTeams(long? teamOid)
+ {
+ IList customerOids = new List();
ApplicationUser loggedInUser = null;
@@ -469,7 +469,7 @@ namespace BeWo.Report
teams.AddRange(DAOFactory.SearchDAO.FindLeadingTeams(loggedInUser.Employee.Oid.Value));
teams.AddRange(DAOFactory.SearchDAO.FindTeamsOfEmployee(loggedInUser.Employee.Oid.Value));
}
-
+
foreach (var team in teams)
{
@@ -487,7 +487,7 @@ namespace BeWo.Report
{
customerOids.Add(e2c.Customer.Oid.Value);
}
-
+
}
}
}
@@ -497,97 +497,97 @@ namespace BeWo.Report
}
}
- return customerOids;
- }
+ return customerOids;
+ }
- public virtual XtraReport CreateServiceOverviewReportForCustomers(IList customerOids, int month, int year, long? orgaOid, long? empOid, long? serviceCategoryOid, int startDay, int endDay)
- {
- var roList = new List();
+ public virtual XtraReport CreateServiceOverviewReportForCustomers(IList customerOids, int month, int year, long? orgaOid, long? empOid, long? serviceCategoryOid, int startDay, int endDay)
+ {
+ var roList = new List();
- foreach (var coid in customerOids)
- {
- var ro = ServicesOverviewRO.Create(coid, month, year, true, orgaOid ?? 0, empOid ?? 0, startDay, endDay, serviceCategoryOid);
+ foreach (var coid in customerOids)
+ {
+ var ro = ServicesOverviewRO.Create(coid, month, year, true, orgaOid ?? 0, empOid ?? 0, startDay, endDay, serviceCategoryOid);
- if (ro != null)
- {
- roList.Add(ro);
- }
- }
+ if (ro != null)
+ {
+ roList.Add(ro);
+ }
+ }
var sortedList = roList.OrderBy(r => r.CustomerLastName + ", " + r.CustomerFirstName).ToList();
- if (sortedList.Count > 0)
- {
- String reportId = null;
- if (orgaOid.HasValue && orgaOid > 0)
- {
- var organisation = DAOFactory.GenericDAO.LoadByID(orgaOid.Value);
- if (organisation != null)
- reportId = organisation.Name;
- }
+ if (sortedList.Count > 0)
+ {
+ String reportId = null;
+ if (orgaOid.HasValue && orgaOid > 0)
+ {
+ var organisation = DAOFactory.GenericDAO.LoadByID(orgaOid.Value);
+ if (organisation != null)
+ reportId = organisation.Name;
+ }
var rootReport = CreateReportForServicesOverviewRo(sortedList[0], reportId);
- if (rootReport.Pages.Count == 0)
- {
- rootReport.CreateDocument();
- }
+ if (rootReport.Pages.Count == 0)
+ {
+ rootReport.CreateDocument();
+ }
for (int i = 1; i < sortedList.Count; i++)
- {
- var lNext = CreateReportForServicesOverviewRo(sortedList[i], reportId);
- if (lNext.Pages.Count == 0)
- {
- lNext.CreateDocument();
- }
+ {
+ var lNext = CreateReportForServicesOverviewRo(sortedList[i], reportId);
+ if (lNext.Pages.Count == 0)
+ {
+ lNext.CreateDocument();
+ }
- rootReport.Pages.AddRange(lNext.Pages);
+ rootReport.Pages.AddRange(lNext.Pages);
}
- return rootReport;
- }
- return new XtraReport();
- }
+ return rootReport;
+ }
+ return new XtraReport();
+ }
+
-
public virtual XtraReport CreateReportForServicesOverviewRo(ServicesOverviewRO ro, String reportId)
{
-
+
var serviceOverviewReport = this.FindReportImp(reportId);
serviceOverviewReport.SetReportDataSource(ro);
-
+
return serviceOverviewReport as XtraReport;
}
- public virtual XtraReport AddSubServicesOverviewReportToReport(XtraReport masterReport, IBeWoReport newReport, ServicesOverviewRO ro)
- {
- if (ro.Services.Count > 0)
- {
- newReport.SetReportDataSource(ro);
- ((XtraReport)newReport).CreateDocument();
- if (masterReport == null)
- {
- masterReport = newReport as XtraReport;
- }
- else
- {
- if (masterReport.Pages.Count == 0)
- {
- masterReport.CreateDocument();
- }
+ public virtual XtraReport AddSubServicesOverviewReportToReport(XtraReport masterReport, IBeWoReport newReport, ServicesOverviewRO ro)
+ {
+ if (ro.Services.Count > 0)
+ {
+ newReport.SetReportDataSource(ro);
+ ((XtraReport)newReport).CreateDocument();
+ if (masterReport == null)
+ {
+ masterReport = newReport as XtraReport;
+ }
+ else
+ {
+ if (masterReport.Pages.Count == 0)
+ {
+ masterReport.CreateDocument();
+ }
- masterReport.Pages.AddRange(((XtraReport)newReport).Pages);
+ masterReport.Pages.AddRange(((XtraReport)newReport).Pages);
- }
- }
- return masterReport;
- }
+ }
+ }
+ return masterReport;
+ }
public override XtraReport CreateSbdLeistungsnachweisForAllCustomers(int month, int year, long orgaOid, long empOid, long serviceCategoryOid, int startDay, int endDay)
- {
- return CreateReportForStundenaufstellungROs(SbdStundenaufstellungRO.Create(month, year, orgaOid, empOid, serviceCategoryOid, startDay, endDay));
+ {
+ return CreateReportForStundenaufstellungROs(SbdStundenaufstellungRO.Create(month, year, orgaOid, empOid, serviceCategoryOid, startDay, endDay));
//var lROs = SbdStundenaufstellungRO.Create(month, year, orgaOid, empOid, serviceCategoryOid, startDay, endDay);
@@ -660,25 +660,25 @@ namespace BeWo.Report
long result;
- if (string.IsNullOrEmpty(dcId) && invoiceBaseOid.HasValue)
- {
- lSettlementDC = MapperFactory.SettlementDC_SettlementInvoice.MapToNewDC(DAOFactory.SearchDAO.GetSettlementInvoiceByInvoiceBaseOid(invoiceBaseOid.Value));
- }
- else if (Int64.TryParse(dcId, out result))
- {
- lSettlementDC = MapperFactory.SettlementDC_SettlementInvoice.MapToNewDC(DAOFactory.GenericDAO.LoadByID(result)); // = Utils.XMLDeserialize(lPath);
- }
- else
- {
- string lPath = BS.Shared.Core.Utils.CreateSavePath(TempPath, dcId);
- lSettlementDC = Utils.XMLDeserialize(lPath);
- }
- String reportId = null;
- if (lSettlementDC.CostBearer2SupportConceptOid.HasValue)
- {
- CostBearer2SupportConcept c2s = DAOFactory.GenericDAO.LoadByID(lSettlementDC.CostBearer2SupportConceptOid.Value);
- reportId = c2s.CostBearer.ID;
- }
+ if (string.IsNullOrEmpty(dcId) && invoiceBaseOid.HasValue)
+ {
+ lSettlementDC = MapperFactory.SettlementDC_SettlementInvoice.MapToNewDC(DAOFactory.SearchDAO.GetSettlementInvoiceByInvoiceBaseOid(invoiceBaseOid.Value));
+ }
+ else if (Int64.TryParse(dcId, out result))
+ {
+ lSettlementDC = MapperFactory.SettlementDC_SettlementInvoice.MapToNewDC(DAOFactory.GenericDAO.LoadByID(result)); // = Utils.XMLDeserialize(lPath);
+ }
+ else
+ {
+ string lPath = BS.Shared.Core.Utils.CreateSavePath(TempPath, dcId);
+ lSettlementDC = Utils.XMLDeserialize(lPath);
+ }
+ String reportId = null;
+ if (lSettlementDC.CostBearer2SupportConceptOid.HasValue)
+ {
+ CostBearer2SupportConcept c2s = DAOFactory.GenericDAO.LoadByID(lSettlementDC.CostBearer2SupportConceptOid.Value);
+ reportId = c2s.CostBearer.ID;
+ }
if (lSettlementDC.DifferentHourlyRateCount > 0)
{
@@ -720,35 +720,35 @@ namespace BeWo.Report
{
IBeWoReport report;
- if (ansicht == 1)
- {
- report = FindReportImp("Mitarbeiterarbeitszeitkonto");
+ if (ansicht == 1)
+ {
+ report = FindReportImp("Mitarbeiterarbeitszeitkonto");
}
else if (ansicht == 2)
- {
- var reportjahr = FindReportImp("MitarbeiterarbeitszeitkontoJahr");
- var jahrStart = new DateTime(startDate.Year, 1, 1);
- var ds = new MitarbeiterstundenkontoMonateRO(employeeOid, teamOids, jahrStart, endDate, null);
+ {
+ var reportjahr = FindReportImp("MitarbeiterarbeitszeitkontoJahr");
+ var jahrStart = new DateTime(startDate.Year, 1, 1);
+ var ds = new MitarbeiterstundenkontoMonateRO(employeeOid, teamOids, jahrStart, endDate, null);
- reportjahr.SetReportDataSource(ds);
+ reportjahr.SetReportDataSource(ds);
- return reportjahr as XtraReport;
- }
- else
- {
- if (teamOids != null && teamOids.Count > 0)
- {
- report = FindReportImp("Teamstundenkonto");
- }
- else
- {
- report = FindReportImp("Mitarbeiterstundenkonto");
- }
- }
+ return reportjahr as XtraReport;
+ }
+ else
+ {
+ if (teamOids != null && teamOids.Count > 0)
+ {
+ report = FindReportImp("Teamstundenkonto");
+ }
+ else
+ {
+ report = FindReportImp("Mitarbeiterstundenkonto");
+ }
+ }
- var x =
- MitarbeiterstundenkontoRO.Create(employeeOid, teamOids, startDate, endDate, null);
- report.SetReportDataSource(x);
+ var x =
+ MitarbeiterstundenkontoRO.Create(employeeOid, teamOids, startDate, endDate, null);
+ report.SetReportDataSource(x);
return report as XtraReport;
}
@@ -861,7 +861,7 @@ namespace BeWo.Report
{
var report = FindReportImp();
- report.SetReportDataSource(KilometerauswertungsRO.Create(MapperFactory.CompactCustomerDC_CustomerCompact.MapToNewDC(DAOFactory.GenericDAO.LoadByID(customerOid)), rangeDate));
+ report.SetReportDataSource(KilometerauswertungsRO.Create(MapperFactory.CompactCustomerDC_CustomerCompact.MapToNewDC(DAOFactory.GenericDAO.LoadByID(customerOid)), rangeDate));
return report as XtraReport;
}
@@ -870,16 +870,18 @@ namespace BeWo.Report
{
var report = FindReportImp();
- report.SetReportDataSource(KilometerauswertungsListRO.Create(MapperFactory.CompactCustomerDC_CustomerCompact.MapToNewDCs(DAOFactory.GenericDAO.LoadByIDs(customerOids)), rangeDate));
+ report.SetReportDataSource(KilometerauswertungsListRO.Create(MapperFactory.CompactCustomerDC_CustomerCompact.MapToNewDCs(DAOFactory.GenericDAO.LoadByIDs(customerOids)), rangeDate));
return report as XtraReport;
}
- public override XtraReport CreateAbsenceReport(DateTime dt, List abs, List empTypes)
+ public override XtraReport CreateAbsenceReport(DateTime dt, List abs, List emps)
{
var report = FindReportImp();
-
- report.SetReportDataSource(AbsenceRO.Create(dt, (new OperationsServiceImp()).GetAbsenceTimeDCEmployee51(dt, dt.AddMonths(1).AddTicks(-1), abs, empTypes)));
+ var service = new OperationsServiceImp();
+ var filter = new AbsenceOverviewFilterDC() { AbsenceReasons = abs, EmploymentType = emps, Year = dt.Year, Month = dt.Month };
+
+ report.SetReportDataSource(AbsenceRO.Create(service.GetAbsenceOverview(filter), filter));
return report as XtraReport;
@@ -890,7 +892,7 @@ namespace BeWo.Report
var service = new OperationsServiceImp();
var service2 = new CustomerServiceImp();
var report = FindReportImp();
-
+
report.SetReportDataSource(RosterRO.Create(service.GetDienstEintraege(wOid, dt.Year, dt.Month), service.GetAllDienste(), service2.GetAllActiveWohnheimeCompact().First(x => x.WohnheimOid == wOid), dt.Year, dt.Month));
return report as XtraReport;
diff --git a/Report/DefaultReports/AbsenceReport.cs b/Report/DefaultReports/AbsenceReport.cs
index 0f2110e9b..3edb5903d 100644
--- a/Report/DefaultReports/AbsenceReport.cs
+++ b/Report/DefaultReports/AbsenceReport.cs
@@ -15,7 +15,7 @@ namespace BeWo.Report.DefaultReports
public void SetReportDataSource(AbsenceRO pRO)
{
- int i = DateTime.DaysInMonth(pRO.ReportDateTime.Year, pRO.ReportDateTime.Month);
+ int i = DateTime.DaysInMonth(pRO.ReportFilter.Year, pRO.ReportFilter.Month);
cellHeader29.Visible = cellDetail29.Visible = i >= 29;
cellHeader30.Visible = cellDetail30.Visible = i >= 30;
diff --git a/Report/ReportObjects/AbsenceRO.cs b/Report/ReportObjects/AbsenceRO.cs
index 75ddd39ae..b118a1ebd 100644
--- a/Report/ReportObjects/AbsenceRO.cs
+++ b/Report/ReportObjects/AbsenceRO.cs
@@ -10,14 +10,13 @@ namespace BeWo.Report.ReportObjects
{
public class AbsenceRO : AbstractBeWoReportObject
{
- public DateTime ReportDateTime { get; set; }
+ public AbsenceOverviewFilterDC ReportFilter { get; set; }
public List AbsenceReportRows { get; set; }
- public static AbsenceRO Create(DateTime dt, Tuple, IList> tuple)
+ public static AbsenceRO Create(List employees, AbsenceOverviewFilterDC filter)
{
- var res = new AbsenceRO() { ReportDateTime = dt, AbsenceReportRows = new List() };
-
- var employees = tuple.Item2.OrderBy(x => x.LastNameFirstName);
+ var res = new AbsenceRO() { ReportFilter = filter, AbsenceReportRows = new List() };
+ var dt = new DateTime(filter.Year, filter.Month, 1);
foreach (var emp in employees)
{
@@ -26,7 +25,7 @@ namespace BeWo.Report.ReportObjects
Employee = emp.LastNameFirstName
};
- var absenceTimes = tuple.Item1.Where(x => x.EmployeeOid == emp.EmployeeOid)
+ var absenceTimes = emp.AbsenceTimes
.OrderByDescending(x => x.End ?? DateTime.MaxValue)
.OrderBy(x => x.Start)
.ToArray();
@@ -38,7 +37,7 @@ namespace BeWo.Report.ReportObjects
{
var abs = absenceTimes[0];
- while (dayInMonth < DateTime.DaysInMonth(dt.Year, dt.Month))
+ while (dayInMonth < DateTime.DaysInMonth(filter.Year, filter.Month))
{
if (abs.Start.Value > dt.AddDays(dayInMonth))
{
diff --git a/Service/Plugins/VacationService.cs b/Service/Plugins/VacationService.cs
index 8f63b9795..8a2575797 100644
--- a/Service/Plugins/VacationService.cs
+++ b/Service/Plugins/VacationService.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
-
+using System.Text.RegularExpressions;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
@@ -31,14 +31,14 @@ namespace BeWo.Service.Plugins
public virtual List GetFeiertage(int year)
{
var list = GetFeiertage(year, "NRW");
-
+
return list.Select(f => f.Datum).ToList();
}
public FeiertagDC GetFeiertag(DateTime start)
{
var feiertage = GetFeiertage(start.Year, "NRW");
-
+
foreach (var ft in feiertage)
{
if (start == ft.Datum)
@@ -62,8 +62,8 @@ namespace BeWo.Service.Plugins
public virtual List GetFeiertage(int year, String bundesland)
{
List list = new List();
-
- list.Add(new FeiertagDC { Datum = new DateTime(year, 1, 1), Name="Neujahr"});
+
+ list.Add(new FeiertagDC { Datum = new DateTime(year, 1, 1), Name = "Neujahr" });
//list.Add(new DateTime(year, 1, 6)); // , "Heilige Drei Könige"));
list.Add(new FeiertagDC { Datum = new DateTime(year, 5, 1), Name = "Tag der Arbeit" });
//list.Add(new DateTime(year, 8, 15)); // , "Mariä Himmelfahrt"));
@@ -105,8 +105,8 @@ namespace BeWo.Service.Plugins
j = (year + (year / 4) + i + 2 - c + (c / 4)) % 7;
l = i - j;
- int month = (int) (3 + ((l + 40) / 44));
- int day = (int) (l + 28 - 31 * (month / 4));
+ int month = (int)(3 + ((l + 40) / 44));
+ int day = (int)(l + 28 - 31 * (month / 4));
return new DateTime(year, month, day);
@@ -152,13 +152,132 @@ namespace BeWo.Service.Plugins
return list;
}
- //public virtual UrlaubskontoDC BerechneUrlaubskonto(Employee emp, DateTime datum)
- //{
-
- // //Verträge prüfen...
-
- //}
- }
-
+ public virtual List GetVacationReasonIDs()
+ {
+ var res = new List();
+ var filters = new List { "URLAUB" };
+ var reasons = DAOFactory.GenericDAO.GetAllActive();
+ foreach (var reason in reasons)
+ {
+ var desc = reason.Description.ToUpper();
+
+ foreach (var filter in filters)
+ {
+ if (desc.Contains(filter))
+ {
+ res.Add(reason.Oid.Value);
+ break;
+ }
+ }
+ }
+
+ return res;
+ }
+
+ public virtual DateTime GetExpirationDate(int year)
+ {
+ return new DateTime(year, 3, 31);
+ }
+
+ public virtual Dictionary BerechneUrlaubskonto(Employee emp, int year)
+ {
+ try
+ {
+ var absReason = GetVacationReasonIDs();
+ var absences = emp.AbsenceTimes.Where(x => absReason.Contains(x.AbsenceReason.Oid.Value) &&
+ (x.Start.HasValue && x.Start.Value.Year <= year))
+ //(!x.End.HasValue || x.End.Value.Year >= year)
+ .OrderBy(x => x.Start);
+
+ // Startzeitpunkt für Berechnung berechnen
+ var firstContractYear = emp.Contracts?.Min(x => x.EntryDate)?.Year ?? int.MaxValue;
+ var firstAbsenceTimeYear = absences.Min(x => x.Start)?.Year ?? int.MaxValue;
+ var firstYear = Math.Min(year, Math.Min(firstContractYear, firstAbsenceTimeYear));
+
+ // Urlaubskonten erzeugen
+ var konten = new Dictionary();
+ for (int i = firstYear; i <= year; i++)
+ {
+ konten.Add(i, new UrlaubskontoDC());
+ }
+
+ // Jahresurlaubanspruch berechnen
+ foreach (var contract in emp.Contracts)
+ {
+ var start = contract.EntryDate?.Year ?? firstYear;
+ var end = contract.ContractEndDate?.Year ?? year;
+
+ for (int i = start; i <= end; i++)
+ {
+ var tmp = konten[i];
+
+ tmp.Urlaubsanspruch += contract.LeaveDays ?? 0;
+ tmp.Resturlaub = tmp.Urlaubsanspruch;
+ }
+ }
+
+ // Abwesenheiten in Jahr x berücksichtigen
+ var absencesYear = new List>();
+ foreach (var abs in absences)
+ {
+ var till = Math.Min(abs.End?.Year ?? year, year);
+ for (int i = abs.Start.Value.Year; i <= till; i++)
+ {
+ absencesYear.Add(new Tuple(i, abs));
+ }
+ }
+
+ // Urlaubsanspruch berechnen
+ var yearFiller = firstYear;
+ absencesYear = absencesYear.OrderBy(x => x.Item1).ToList();
+ foreach (var tuple in absencesYear)
+ {
+ var absYear = tuple.Item1;
+ var absence = tuple.Item2;
+
+ // Resturlaub Vorjahr übertragen
+ while (yearFiller < absYear)
+ {
+ var tmp = konten[yearFiller];
+ var tmp2 = konten[yearFiller + 1];
+
+ tmp2.ResturlaubVorjahrTotal = tmp.Resturlaub;
+ tmp2.ResturlaubVorjahr = tmp.Resturlaub;
+
+ yearFiller++;
+ }
+
+ var current = konten[absYear];
+
+ var start = DateTimeExtensions.GetMax(absence.Start, new DateTime(absYear, 1, 1));
+ var end = DateTimeExtensions.GetMin(absence.End, new DateTime(absYear, 12, 31));
+
+ var dauer = (decimal)(absence.End.Value - absence.Start.Value).Days + 1;
+ var expiration = GetExpirationDate(year);
+
+ // Resturlaub vom Vorjahr verwenden, wenn möglich
+ if (current.ResturlaubVorjahr > 0 && start <= expiration)
+ {
+ var firstEnd = (DateTime)DateTimeExtensions.GetMin(end, expiration);
+ var dauerVorjahr = (decimal)(firstEnd - absence.Start.Value).Days + 1;
+
+ var bucheVorjahr = Math.Min(current.ResturlaubVorjahr, dauerVorjahr);
+
+ current.ResturlaubVorjahr -= bucheVorjahr;
+ dauer -= bucheVorjahr;
+ }
+
+ // Restliche Dauer vom Urlaub abziehen
+ current.Resturlaub -= dauer;
+ }
+
+ return konten;
+ }
+ catch (Exception e)
+ {
+ throw e;
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/Service/ServiceContracts/IOperationsService.cs b/Service/ServiceContracts/IOperationsService.cs
index 9bb0cebb4..5aa5019b3 100644
--- a/Service/ServiceContracts/IOperationsService.cs
+++ b/Service/ServiceContracts/IOperationsService.cs
@@ -848,26 +848,6 @@ namespace BeWo.Service.ServiceContracts
[OperationContract]
IList GetReportTemplates(string url);
- [FaultContract(typeof(BeWoFault))]
- [OperationContract]
- Tuple, IList> GetAbsenceTimeDCEmployee11();
-
- [FaultContract(typeof(BeWoFault))]
- [OperationContract]
- Tuple, IList> GetAbsenceTimeDCEmployee21(List absenceReasons, List employmentTypes);
-
- [FaultContract(typeof(BeWoFault))]
- [OperationContract]
- Tuple, IList> GetAbsenceTimeDCEmployee31(DateTime start, DateTime end);
-
- [FaultContract(typeof(BeWoFault))]
- [OperationContract]
- Tuple, IList> GetAbsenceTimeDCEmployee41(DateTime start, DateTime end, List absenceReasons, List employmentTypes);
-
- [FaultContract(typeof(BeWoFault))]
- [OperationContract]
- Tuple, IList> GetAbsenceTimeDCEmployee51(DateTime start, DateTime end, List absenceReasonIDs, List employmentTypeIDs);
-
[FaultContract(typeof(BeWoFault))]
[OperationContract]
IList GetAllAbsenceReason();
@@ -967,5 +947,33 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List GetAbsenceTimeVacationByWohnheim(long wohnId, int year, int month);
+
+ //[FaultContract(typeof(BeWoFault))]
+ //[OperationContract]
+ //List GetAbsenceTimeDCEmployee21(List absenceReasons, List employmentTypes);
+
+ //[FaultContract(typeof(BeWoFault))]
+ //[OperationContract]
+ //List GetAbsenceTimeDCEmployee31(DateTime start, DateTime end);
+
+ //[FaultContract(typeof(BeWoFault))]
+ //[OperationContract]
+ //List GetAbsenceTimeDCEmployee41(DateTime start, DateTime end, List absenceReasons, List employmentTypes);
+
+ //[FaultContract(typeof(BeWoFault))]
+ //[OperationContract]
+ //List GetAbsenceTimeDCEmployee51(DateTime start, DateTime end, List absenceReasonIDs, List employmentTypeIDs);
+
+ [FaultContract(typeof(BeWoFault))]
+ [OperationContract]
+ List GetAbsenceOverview(AbsenceOverviewFilterDC filter);
+
+ //[FaultContract(typeof(BeWoFault))]
+ //[OperationContract]
+ //Dictionary GetUrlaubskontenByEmployee(long empOid, AbsenceOverviewFilterDC filter);
+
+ [FaultContract(typeof(BeWoFault))]
+ [OperationContract]
+ UrlaubskontoDC GetUrlaubskontoByEmployee(long empOid, int year);
}
}
\ No newline at end of file
diff --git a/Service/ServiceImplementations/OperationsServiceImp.cs b/Service/ServiceImplementations/OperationsServiceImp.cs
index a49dc08f9..ea5b68586 100644
--- a/Service/ServiceImplementations/OperationsServiceImp.cs
+++ b/Service/ServiceImplementations/OperationsServiceImp.cs
@@ -3228,11 +3228,11 @@ namespace BeWo.Service.ServiceImplementations
#endif
var appCodes = DAOFactory.SearchDAO.FindAllEmployeeAppCodes(employeeOid).ToList();
- if(appCodes.Count > 0)
+ if (appCodes.Count > 0)
{
var response = DeletZufallsCode(apikey, kundennummer, "E" + employeeOid);
- if(response != 0)
+ if (response != 0)
{
return new EmployeeAPPCodeDC { Result = response };
}
@@ -3240,7 +3240,7 @@ namespace BeWo.Service.ServiceImplementations
var zufallscode = ErzeugeZufallsCode(apikey, kundennummer, "E" + employeeOid);
- if(zufallscode != null)
+ if (zufallscode != null)
{
var appcodes = DAOFactory.SearchDAO.FindAllEmployeeAppCodes(employeeOid).ToList();
@@ -3260,7 +3260,7 @@ namespace BeWo.Service.ServiceImplementations
return null;
}
- catch(Exception e)
+ catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
@@ -3427,7 +3427,7 @@ namespace BeWo.Service.ServiceImplementations
{
var customerChatCodes = DAOFactory.SearchDAO.FindAllCustomerAppCodes(customerOid).ToList();
- foreach(var items in customerChatCodes)
+ foreach (var items in customerChatCodes)
{
items.IsChatAktiv = activeType == 1 ? activeType : 0;
}
@@ -3465,7 +3465,7 @@ namespace BeWo.Service.ServiceImplementations
var serverUrl = ErmittleServerURL(customerId);
- if(serverUrl.IsNullOrEmpty())
+ if (serverUrl.IsNullOrEmpty())
{
return 3; // ServerURl konnte nicht ermittelt werden
}
@@ -3485,12 +3485,12 @@ namespace BeWo.Service.ServiceImplementations
return Convert.ToInt32(result.Result);
}
- catch(Exception e)
+ catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
- catch(Exception e)
+ catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
@@ -3532,7 +3532,7 @@ namespace BeWo.Service.ServiceImplementations
//return !jsonDatentyp.result.Equals("0") ? null : jsonDatentyp.chatcode;
}
- catch(Exception e)
+ catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
@@ -3551,11 +3551,11 @@ namespace BeWo.Service.ServiceImplementations
var response = client.Execute(request);
- var result = JsonConvert.DeserializeAnonymousType(response.Content, new {Status = string.Empty, Url = string.Empty, SyncType = string.Empty});
+ var result = JsonConvert.DeserializeAnonymousType(response.Content, new { Status = string.Empty, Url = string.Empty, SyncType = string.Empty });
return result.Url;
}
- catch(Exception e)
+ catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
@@ -3606,12 +3606,12 @@ namespace BeWo.Service.ServiceImplementations
try
{
- var dcList = new List {sr};
+ var dcList = new List { sr };
var oidList = InsertNewServiceRecords(dcList);
var serviceRecordOid = oidList[0];
- if(!string.IsNullOrEmpty(sig.DataBild))
+ if (!string.IsNullOrEmpty(sig.DataBild))
{
var lSignature = MapperFactory.SignatureDC_Signature.MapToNewEntity(sig);
@@ -4601,25 +4601,25 @@ namespace BeWo.Service.ServiceImplementations
{
var lResult = new List();
- foreach(var iSc in pSupportConcepts)
+ foreach (var iSc in pSupportConcepts)
{
var lScNode = new SupportConceptTreeNodeDC
{
- NodeType = NodeType.SupportConcept,
- SupportConcept = MapperFactory.CompactSupportConceptDC_SupportConcept.MapToNewDC(iSc),
+ NodeType = NodeType.SupportConcept,
+ SupportConcept = MapperFactory.CompactSupportConceptDC_SupportConcept.MapToNewDC(iSc),
Description = $"{iSc.Customer.Person.LastName}, {iSc.Customer.Person.FirstName}"
};
-
- foreach(var iSc2Cb in iSc.CostBearer2SupportConceptList)
+
+ foreach (var iSc2Cb in iSc.CostBearer2SupportConceptList)
{
var treeNode = new SupportConceptTreeNodeDC
{
- NodeType = NodeType.SupportConceptCostBearerRelDC,
- SupportConcept = lScNode.SupportConcept,
+ NodeType = NodeType.SupportConceptCostBearerRelDC,
+ SupportConcept = lScNode.SupportConcept,
SupportConceptCostBearerRelDC = MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(iSc2Cb)
};
- if(iSc2Cb.CostBearer.Organisation != null)
+ if (iSc2Cb.CostBearer.Organisation != null)
{
treeNode.Description = iSc2Cb.CostBearer.Organisation.Name;
}
@@ -4869,7 +4869,7 @@ namespace BeWo.Service.ServiceImplementations
var customerAppCode = new CustomerAPPCodeDC();
var result = DeletZufallsCode(apikey, kundennummer, "C" + customeroid);
- if(result == 0 || result == 32)
+ if (result == 0 || result == 32)
{
try
{
@@ -4877,9 +4877,9 @@ namespace BeWo.Service.ServiceImplementations
var anzahl = customerappcode.Count;
- if(anzahl > 0)
+ if (anzahl > 0)
{
- foreach(var code in customerappcode)
+ foreach (var code in customerappcode)
{
code.CustomerCode = string.Empty;
code.CustomerCodeGenDate = DateTime.Now;
@@ -4894,7 +4894,7 @@ namespace BeWo.Service.ServiceImplementations
customerAppCode.Result = 4;
return customerAppCode;
}
- catch(Exception e)
+ catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
@@ -4909,7 +4909,7 @@ namespace BeWo.Service.ServiceImplementations
var employeeAppCode = new EmployeeAPPCodeDC();
var result = DeletZufallsCode(apikey, kundennummer, "E" + employeeoid);
- if(result == 0 || result == 32)
+ if (result == 0 || result == 32)
{
try
{
@@ -4917,9 +4917,9 @@ namespace BeWo.Service.ServiceImplementations
var anzahl = employeeappcode.Count;
- if(anzahl > 0)
+ if (anzahl > 0)
{
- foreach(var code in employeeappcode)
+ foreach (var code in employeeappcode)
{
code.EmployeeCode = string.Empty;
code.EmployeeCodeGenDate = DateTime.Now;
@@ -4936,7 +4936,7 @@ namespace BeWo.Service.ServiceImplementations
return employeeAppCode;
}
- catch(Exception e)
+ catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
@@ -5769,107 +5769,107 @@ namespace BeWo.Service.ServiceImplementations
}
}
- public Tuple, IList> GetAbsenceTimeDCEmployee11()
- {
- try
- {
- return GetAbsenceTimeDCEmployee41(DateTime.MinValue, DateTime.MaxValue, null, null);
- }
- catch (Exception e)
- {
- throw Utils.CreateBeWoFaultException(e);
- }
- }
+ //public Tuple, IList> GetAbsenceTimeDCEmployee11()
+ //{
+ // try
+ // {
+ // return GetAbsenceTimeDCEmployee41(DateTime.MinValue, DateTime.MaxValue, null, null);
+ // }
+ // catch (Exception e)
+ // {
+ // throw Utils.CreateBeWoFaultException(e);
+ // }
+ //}
- public Tuple, IList> GetAbsenceTimeDCEmployee21(List absenceReasons, List employmentTypes)
- {
- try
- {
- return GetAbsenceTimeDCEmployee41(DateTime.MinValue, DateTime.MaxValue, absenceReasons, employmentTypes);
- }
- catch (Exception e)
- {
- throw Utils.CreateBeWoFaultException(e);
- }
- }
+ //public Tuple, IList> GetAbsenceTimeDCEmployee21(List absenceReasons, List employmentTypes)
+ //{
+ // try
+ // {
+ // return GetAbsenceTimeDCEmployee41(DateTime.MinValue, DateTime.MaxValue, absenceReasons, employmentTypes);
+ // }
+ // catch (Exception e)
+ // {
+ // throw Utils.CreateBeWoFaultException(e);
+ // }
+ //}
- public Tuple, IList> GetAbsenceTimeDCEmployee31(DateTime start, DateTime end)
- {
- try
- {
- return GetAbsenceTimeDCEmployee41(start, end, null, null);
- }
- catch (Exception e)
- {
- throw Utils.CreateBeWoFaultException(e);
- }
- }
+ //public Tuple, IList> GetAbsenceTimeDCEmployee31(DateTime start, DateTime end)
+ //{
+ // try
+ // {
+ // return GetAbsenceTimeDCEmployee41(start, end, null, null);
+ // }
+ // catch (Exception e)
+ // {
+ // throw Utils.CreateBeWoFaultException(e);
+ // }
+ //}
- public Tuple, IList> GetAbsenceTimeDCEmployee41(DateTime start, DateTime end, List absenceReasons, List employmentTypes)
- {
- try
- {
- var absenceReasonIDs = (absenceReasons == null || !absenceReasons.Any()) ? null : absenceReasons.Select(x => x.AbsenceReasonOid.Value).ToList();
- var employmentTypeIDs = (employmentTypes == null || !employmentTypes.Any()) ? null : employmentTypes.Select(x => x.EmploymentTypeOid.Value).ToList();
+ //public Tuple, IList> GetAbsenceTimeDCEmployee41(DateTime start, DateTime end, List absenceReasons, List employmentTypes)
+ //{
+ // try
+ // {
+ // var absenceReasonIDs = (absenceReasons == null || !absenceReasons.Any()) ? null : absenceReasons.Select(x => x.AbsenceReasonOid.Value).ToList();
+ // var employmentTypeIDs = (employmentTypes == null || !employmentTypes.Any()) ? null : employmentTypes.Select(x => x.EmploymentTypeOid.Value).ToList();
- return GetAbsenceTimeDCEmployee51(start, end, absenceReasonIDs, employmentTypeIDs);
- }
- catch (Exception e)
- {
- throw Utils.CreateBeWoFaultException(e);
- }
- }
+ // return GetAbsenceTimeDCEmployee51(start, end, absenceReasonIDs, employmentTypeIDs);
+ // }
+ // catch (Exception e)
+ // {
+ // throw Utils.CreateBeWoFaultException(e);
+ // }
+ //}
- public Tuple, IList> GetAbsenceTimeDCEmployee51(DateTime start, DateTime end, List absenceReasonIDs, List employmentTypeIDs)
- {
- try
- {
- Func endHasValueMatch = (x) => x.End.HasValue;
+ //public Tuple, IList> GetAbsenceTimeDCEmployee51(DateTime start, DateTime end, List absenceReasonIDs, List employmentTypeIDs)
+ //{
+ // try
+ // {
+ // Func endHasValueMatch = (x) => x.End.HasValue;
- Func leftMatch;
- Func rightMatch;
- Func absenceReasonMatch;
- Func employmentTypeMatch;
+ // Func leftMatch;
+ // Func rightMatch;
+ // Func absenceReasonMatch;
+ // Func employmentTypeMatch;
- if (start != DateTime.MinValue) leftMatch = (x) => start <= x.End;
- else leftMatch = (x) => true;
+ // if (start != DateTime.MinValue) leftMatch = (x) => start <= x.End;
+ // else leftMatch = (x) => true;
- if (end != DateTime.MaxValue) rightMatch = (x) => end >= x.Start;
- else rightMatch = (x) => true;
+ // if (end != DateTime.MaxValue) rightMatch = (x) => end >= x.Start;
+ // else rightMatch = (x) => true;
- if (absenceReasonIDs != null) absenceReasonMatch = (x) => absenceReasonIDs.Contains(x.AbsenceReason.Oid.Value);
- else absenceReasonMatch = (x) => true;
+ // if (absenceReasonIDs != null) absenceReasonMatch = (x) => absenceReasonIDs.Contains(x.AbsenceReason.Oid.Value);
+ // else absenceReasonMatch = (x) => true;
- if (employmentTypeIDs != null) employmentTypeMatch = (x) => employmentTypeIDs.Contains(x.Oid.Value);
- else employmentTypeMatch = (x) => true;
+ // if (employmentTypeIDs != null) employmentTypeMatch = (x) => employmentTypeIDs.Contains(x.Oid.Value);
+ // else employmentTypeMatch = (x) => true;
- Func absenceMatch = (x) => rightMatch(x) && (!endHasValueMatch(x) || leftMatch(x)) && absenceReasonMatch(x);
- //startMatch(x) && (!endHasValueMatch(x) || endMatch(x)) && absenceReasonMatch(x);
+ // Func absenceMatch = (x) => rightMatch(x) && (!endHasValueMatch(x) || leftMatch(x)) && absenceReasonMatch(x);
+ // //startMatch(x) && (!endHasValueMatch(x) || endMatch(x)) && absenceReasonMatch(x);
- var res1 = new List();
- var res2 = new HashSet();
+ // var res1 = new List();
+ // var res2 = new HashSet();
- var allAbsences = DAOFactory.GenericDAO.GetAllActive().Where(x => x.EmployeeOid.HasValue);
- var allEmployees = DAOFactory.GenericDAO.GetAllActive().ToList();
+ // var allAbsences = DAOFactory.GenericDAO.GetAllActive().Where(x => x.EmployeeOid.HasValue);
+ // var allEmployees = DAOFactory.GenericDAO.GetAllActive().ToList();
- foreach (var absence in allAbsences.Where(absenceMatch)) //allAbsences.Where(absenceMatch))
- {
- var employee = allEmployees.Find(x => x.Oid == absence.EmployeeOid.Value);
+ // foreach (var absence in allAbsences.Where(absenceMatch)) //allAbsences.Where(absenceMatch))
+ // {
+ // var employee = allEmployees.Find(x => x.Oid == absence.EmployeeOid.Value);
- if (!employmentTypeMatch(employee))
- continue;
+ // if (!employmentTypeMatch(employee))
+ // continue;
- res1.Add(absence);
- res2.Add(employee);
- }
+ // res1.Add(absence);
+ // res2.Add(employee);
+ // }
- return new Tuple, IList>(MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(res1), MapperFactory.EmployeeDC_Employee.MapToNewDCs(res2.ToList()));
- }
- catch (Exception e)
- {
- throw Utils.CreateBeWoFaultException(e);
- }
- }
+ // return new Tuple, IList>(MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(res1), MapperFactory.EmployeeDC_Employee.MapToNewDCs(res2.ToList()));
+ // }
+ // catch (Exception e)
+ // {
+ // throw Utils.CreateBeWoFaultException(e);
+ // }
+ //}
public IList GetAllAbsenceReason()
{
@@ -6010,7 +6010,7 @@ namespace BeWo.Service.ServiceImplementations
{
var list = DAOFactory.GenericDAO.GetAllActive();
var result = MapperFactory.RatingTypeDC_RatingType.MapToNewDCs(list);
-
+
return result.OrderBy(r => r.Position).ToList();
}
catch (Exception e)
@@ -6081,9 +6081,9 @@ namespace BeWo.Service.ServiceImplementations
}
var allRatingTypes = MapperFactory.RatingTypeDC_RatingType.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive());
-
+
List