Neues Benutzerrecht "Mitarbeiter Abwesenheiten löschen nach Ablauf" - FaC-Anteil
ToDoOID=1328370181
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Translation;
|
||||
|
||||
using BeWo.Core;
|
||||
using BeWo.ServiceProxy;
|
||||
using BeWo.Scheduler.Resources;
|
||||
using BeWo.Scheduler.View;
|
||||
@@ -151,7 +154,25 @@ namespace BeWo.Scheduler.ViewModel
|
||||
|
||||
protected override void DeleteAppointments(IEnumerable<AbsenceTimeDC> dcList)
|
||||
{
|
||||
ServiceFacade.DoCustomerServiceAsync(s => s.DeactivateAbsenceTimes(dcList.ToDictionary(dc => dc.AbsenceTimeOid != null ? dc.AbsenceTimeOid.Value : 0,
|
||||
var lDcList = dcList.ToList();
|
||||
|
||||
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Employee_AllowDeleteAbsenceTimesAfterExpiry))
|
||||
{
|
||||
var pastAbsenceTimes = lDcList.Where(dc => dc.IsInThePast).ToList();
|
||||
if (pastAbsenceTimes.Count > 0)
|
||||
{
|
||||
lDcList = lDcList.Except(pastAbsenceTimes).ToList();
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Benutzerrecht, bereits vergangene Mitarbeiter-Abwesenheiten zu löschen."),
|
||||
"BeWo Planer", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
if (lDcList.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ServiceFacade.DoCustomerServiceAsync(s => s.DeactivateAbsenceTimes(lDcList.ToDictionary(dc => dc.AbsenceTimeOid != null ? dc.AbsenceTimeOid.Value : 0,
|
||||
dc => dc.AbsenceTimeVersion != null ? dc.AbsenceTimeVersion.Value : 0)));
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ using BeWo.Core.Commands;
|
||||
using BeWo.ServiceProxy;
|
||||
using BeWo.ViewModel;
|
||||
using BeWo.ViewModel.ListViewModel;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Translation;
|
||||
using DependencyObject = System.Windows.DependencyObject;
|
||||
@@ -139,9 +140,27 @@ namespace BeWo.View.Detail
|
||||
|
||||
private void RemoveAbsenceTime()
|
||||
{
|
||||
AbsenceTimes?.VMList.Remove(DataGridAbsenceTimes.GetCurrentValue<AbsenceTimeVM>());
|
||||
var absenceTime = DataGridAbsenceTimes.GetCurrentValue<AbsenceTimeVM>();
|
||||
if (absenceTime == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (IsAbsenceTimeInThePast(absenceTime) && !BeWoApp.LoggedOnUser.HasRight(UserRightType.Employee_AllowDeleteAbsenceTimesAfterExpiry))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie haben nicht das Benutzerrecht, bereits vergangene Mitarbeiter-Abwesenheiten zu löschen."),
|
||||
"BeWo Planer", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
AbsenceTimes?.VMList.Remove(absenceTime);
|
||||
BeWoWpfUtils.RefreshDXGrid(DataGridAbsenceTimes);
|
||||
}
|
||||
|
||||
private static bool IsAbsenceTimeInThePast(AbsenceTimeVM absenceTime)
|
||||
{
|
||||
return absenceTime.End.HasValue && absenceTime.End.Value.Date < DateTime.Today;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user