diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj
index b5ac107e5..9d879a3f6 100644
--- a/BeWo/BeWo.csproj
+++ b/BeWo/BeWo.csproj
@@ -304,6 +304,10 @@
MSBuild:Compile
Designer
+
+ MSBuild:Compile
+ Designer
+
MSBuild:Compile
Designer
@@ -875,6 +879,9 @@
AbwesenheitstabelleView.xaml
+
+ AbwesenheitsEditView.xaml
+
IcfImportControl.xaml
diff --git a/BeWo/Scheduler/View/NewSchedulerView.xaml.cs b/BeWo/Scheduler/View/NewSchedulerView.xaml.cs
index e759a1320..7a029d5e3 100644
--- a/BeWo/Scheduler/View/NewSchedulerView.xaml.cs
+++ b/BeWo/Scheduler/View/NewSchedulerView.xaml.cs
@@ -1058,7 +1058,7 @@ namespace BeWo.Scheduler.View
ShowPrivateAppointmentsCheckBox.IsChecked = true;
}
- ViewModel.ActiveAppointmentViewModel.InsertAppointments(Scheduler, appList);
+ ViewModel.ActiveAppointmentViewModel.InsertAppointments(Scheduler, appList);
UpdateRequestString();
ReloadVM(true);
}
@@ -1141,7 +1141,6 @@ namespace BeWo.Scheduler.View
{
e.Menu.ItemLinks.Remove(verfuegbarkeitMenue);
}
-
}
if(Scheduler.SelectedAppointments.Count == 0 || Scheduler.SelectedAppointments[0]?.Type != AppointmentType.ChangedOccurrence)
diff --git a/BeWo/ServiceProxy/Generated.cs b/BeWo/ServiceProxy/Generated.cs
index 7d4e22ed0..2e5bda7d6 100644
--- a/BeWo/ServiceProxy/Generated.cs
+++ b/BeWo/ServiceProxy/Generated.cs
@@ -4674,6 +4674,18 @@ namespace BeWo.ServiceProxy
[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();
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateAbsenceTimeWithReturn", ReplyAction="http://tempuri.org/IOperationsService/UpdateAbsenceTimeWithReturnResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateAbsenceTimeWithReturnBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ BS.Shared.DataContracts.AbsenceTimeDC UpdateAbsenceTimeWithReturn(BS.Shared.DataContracts.AbsenceTimeDC absenceTimeDC);
+
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertAbsenceTimeWithReturn", ReplyAction="http://tempuri.org/IOperationsService/InsertAbsenceTimeWithReturnResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertAbsenceTimeWithReturnBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ BS.Shared.DataContracts.AbsenceTimeDC InsertAbsenceTimeWithReturn(BS.Shared.DataContracts.AbsenceTimeDC absenceTimeDC);
+
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeleteAbsenceTime", ReplyAction="http://tempuri.org/IOperationsService/DeleteAbsenceTimeResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteAbsenceTimeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ void DeleteAbsenceTime(BS.Shared.DataContracts.AbsenceTimeDC absenceTimeDC);
+
[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" +
@@ -5629,6 +5641,21 @@ namespace BeWo.ServiceProxy
return base.Channel.GetAllAbsenceReason();
}
+ public BS.Shared.DataContracts.AbsenceTimeDC UpdateAbsenceTimeWithReturn(BS.Shared.DataContracts.AbsenceTimeDC absenceTimeDC)
+ {
+ return base.Channel.UpdateAbsenceTimeWithReturn(absenceTimeDC);
+ }
+
+ public BS.Shared.DataContracts.AbsenceTimeDC InsertAbsenceTimeWithReturn(BS.Shared.DataContracts.AbsenceTimeDC absenceTimeDC)
+ {
+ return base.Channel.InsertAbsenceTimeWithReturn(absenceTimeDC);
+ }
+
+ public void DeleteAbsenceTime(BS.Shared.DataContracts.AbsenceTimeDC absenceTimeDC)
+ {
+ base.Channel.DeleteAbsenceTime(absenceTimeDC);
+ }
+
public void UpdateIsChatActiveCustomerAPPCodeDC(long customerOid, int activeType)
{
base.Channel.UpdateIsChatActiveCustomerAPPCodeDC(customerOid, activeType);
diff --git a/BeWo/View/Detail/Report/AbwesenheitsEditView.xaml b/BeWo/View/Detail/Report/AbwesenheitsEditView.xaml
new file mode 100644
index 000000000..96eb4e49a
--- /dev/null
+++ b/BeWo/View/Detail/Report/AbwesenheitsEditView.xaml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BeWo/View/Detail/Report/AbwesenheitsEditView.xaml.cs b/BeWo/View/Detail/Report/AbwesenheitsEditView.xaml.cs
new file mode 100644
index 000000000..035d6ad48
--- /dev/null
+++ b/BeWo/View/Detail/Report/AbwesenheitsEditView.xaml.cs
@@ -0,0 +1,127 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+
+using BeWo.Core;
+using BeWo.ServiceProxy;
+using BS.Shared.DataContracts;
+using BS.Shared.Extensions;
+
+using DevExpress.Utils;
+using DevExpress.Xpf.Scheduler;
+using DevExpress.Xpf.Scheduler.UI;
+using DevExpress.XtraGrid.Views.Grid.ViewInfo;
+using DevExpress.XtraScheduler;
+using SchedulerControl = DevExpress.Xpf.Scheduler.SchedulerControl;
+
+namespace BeWo.View.Detail.Report
+{
+ ///
+ /// Interaktionslogik für TestEMailControl.xaml
+ ///
+ public partial class AbwesenheitsEditView : UserControl
+ {
+ private SchedulerControl _SchedulerControl;
+
+ 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)
+ {
+ InitializeComponent();
+
+ _SchedulerControl = schedulerControl;
+
+ _ReasonPicker.Items.AddRange(reasons.ToArray());
+ Appointment = appointment;
+
+ IsEditMode = appointment.CustomFields["AbsenceTime"] != null;
+
+ if (IsEditMode)
+ {
+ _DeleteBtn.Visibility = Visibility.Visible;
+
+ AbsenceTime = absenceTimeDC;
+
+ _ReasonPicker.SelectedItem = absenceTimeDC.Reason;
+ _NoticeTxt.Text = absenceTimeDC.Notice;
+ }
+ else
+ {
+ AbsenceTime = new AbsenceTimeDC();
+ AbsenceTime.EmployeeOid = long.Parse(appointment.ResourceId.ToString());
+ AbsenceTime.Start = AbsenceTime.End = Appointment.Start;
+
+ _ReasonPicker.SelectedItem = reasons[0];
+ }
+
+ _DatePickerStartDate.DateTime = AbsenceTime.Start.Value;
+ if (AbsenceTime.End.HasValue) _DatePickerEndDate.DateTime = AbsenceTime.End.Value;
+ }
+
+ private void CancelBtn_Click(object sender, RoutedEventArgs e)
+ {
+ SchedulerFormBehavior.Close(this, false);
+ }
+
+ private void DeleteBtn_Click(object sender, RoutedEventArgs e)
+ {
+ 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));
+
+ SchedulerFormBehavior.Close(this, true);
+ }
+
+ private void SaveBtn_Click(object sender, RoutedEventArgs e)
+ {
+
+
+ var start = _DatePickerStartDate.DateTime;
+ var end = string.IsNullOrEmpty(_DatePickerEndDate.Text) ? null : _DatePickerEndDate.DateTime as DateTime?;
+
+ if (end.HasValue && end < start)
+ {
+ MessageBox.Show("Der Anfang darf nicht nach dem Ende kommen.", "Fehler", MessageBoxButton.OK);
+ return;
+ }
+
+ AbsenceTime.Reason = (AbsenceReasonDC)_ReasonPicker.SelectedItem;
+ AbsenceTime.Notice = _NoticeTxt.Text;
+ AbsenceTime.Start = start;
+ AbsenceTime.End = end;
+
+ if (IsEditMode)
+ {
+ AbsenceTime = ServiceFacade.DoOperationsServiceSync(x => x.UpdateAbsenceTimeWithReturn(AbsenceTime));
+
+ var t = AbsenceTime.AbsenceTimeVersion;
+
+ SchedulerHelper.OverrideAWithB(Appointment, AbsenceTime);
+ }
+ else
+ {
+ AbsenceTime = ServiceFacade.DoOperationsServiceSync(x => x.InsertAbsenceTimeWithReturn(AbsenceTime));
+
+ SchedulerHelper.OverrideAWithB(Appointment, AbsenceTime);
+
+ _SchedulerControl.Storage.AppointmentStorage.Add(Appointment);
+ }
+
+ SchedulerFormBehavior.Close(this, true);
+ }
+ }
+}
diff --git a/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml b/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml
index 6643afd34..6665ca588 100644
--- a/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml
+++ b/BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml
@@ -8,10 +8,11 @@
xmlns:localView="clr-namespace:BeWo.View"
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"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Focusable="True">
-
+