Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
This commit is contained in:
@@ -39,16 +39,16 @@
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>true</UpdateRequired>
|
||||
<MapFileExtensions>false</MapFileExtensions>
|
||||
<InstallUrl>http://app.beyondsoft.de/sbdtest/</InstallUrl>
|
||||
<InstallUrl>http://app.beyondsoft.de/dev/</InstallUrl>
|
||||
<TargetCulture>de-DE</TargetCulture>
|
||||
<ProductName>BeWoPlaner</ProductName>
|
||||
<PublisherName>beyondSoft GmbH</PublisherName>
|
||||
<MinimumRequiredVersion>2.0.1.173</MinimumRequiredVersion>
|
||||
<MinimumRequiredVersion>2.0.1.172</MinimumRequiredVersion>
|
||||
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
|
||||
<WebPage>publish.htm</WebPage>
|
||||
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
|
||||
<TrustUrlParameters>true</TrustUrlParameters>
|
||||
<ApplicationRevision>174</ApplicationRevision>
|
||||
<ApplicationRevision>173</ApplicationRevision>
|
||||
<ApplicationVersion>2.0.1.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||
@@ -222,10 +222,6 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="SchulbegleitenderDienst\View\AbsenceTimeEditView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="SchulbegleitenderDienst\View\SbdAdminView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -292,13 +288,17 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\AbsenceTimesView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="View\Detail\NotizenKategorieView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\AbsenceTimesView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="SchulbegleitenderDienst\View\AbsenceTimeEditView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="View\Detail\BudgetView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@@ -308,6 +308,14 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\Report\AbwesenheitstabelleView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\Report\AbwesenheitsEditView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\Report\IcfImportControl.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -630,6 +638,7 @@
|
||||
<Compile Include="Converter\AnonymizationRight2VisibilityConverter.cs" />
|
||||
<Compile Include="Converter\BoolNullCheckConverter.cs" />
|
||||
<Compile Include="Converter\BoolReverseConverter.cs" />
|
||||
|
||||
<Compile Include="Converter\CellColorConverter.cs" />
|
||||
<Compile Include="Converter\CollectionContainsTag2BoolConverter.cs" />
|
||||
<Compile Include="Converter\CollectionCountToBoolConverter.cs" />
|
||||
@@ -653,7 +662,7 @@
|
||||
<Compile Include="Core\BeWoWebClient.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Commands\ButtonClickCommand.cs" />
|
||||
<Compile Include="Core\Commands\ButtonClickCommand.cs" />
|
||||
<Compile Include="Core\Config\AppSettings.cs" />
|
||||
<Compile Include="Core\CustomSpellCheckerLocalizer.cs" />
|
||||
<Compile Include="Core\DocumentWatcher.cs" />
|
||||
@@ -698,11 +707,11 @@
|
||||
</Compile>
|
||||
<Compile Include="SchulbegleitenderDienst\TagesansichtVM.cs" />
|
||||
<Compile Include="SchulbegleitenderDienst\TagesVertretung.cs" />
|
||||
<Compile Include="SchulbegleitenderDienst\ViewModel\AbsenceTimeEditViewModel.cs" />
|
||||
<Compile Include="SchulbegleitenderDienst\ViewModel\AbsenceTimeEditViewModel.cs" />
|
||||
<Compile Include="SchulbegleitenderDienst\ViewModel\SbdConfigVM.cs" />
|
||||
<Compile Include="SchulbegleitenderDienst\ViewModel\VertretungsansichtBaseVM.cs" />
|
||||
<Compile Include="SchulbegleitenderDienst\ViewModel\VertretungWochenansichtVM.cs" />
|
||||
<Compile Include="SchulbegleitenderDienst\View\AbsenceTimeEditView.xaml.cs">
|
||||
<Compile Include="SchulbegleitenderDienst\View\AbsenceTimeEditView.xaml.cs">
|
||||
<DependentUpon>AbsenceTimeEditView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SchulbegleitenderDienst\View\SbdAdminView.xaml.cs">
|
||||
@@ -875,14 +884,20 @@
|
||||
<Compile Include="View\Controls\ValueListEntryEditControl.xaml.cs">
|
||||
<DependentUpon>ValueListEntryEditControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\AbsenceTimesView.xaml.cs">
|
||||
<DependentUpon>AbsenceTimesView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\NotizenKategorieView.xaml.cs">
|
||||
<DependentUpon>NotizenKategorieView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\BudgetView.xaml.cs">
|
||||
<DependentUpon>BudgetView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\AbsenceTimesView.xaml.cs">
|
||||
<DependentUpon>AbsenceTimesView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\Report\AbwesenheitstabelleView.xaml.cs">
|
||||
<DependentUpon>AbwesenheitstabelleView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\Report\AbwesenheitsEditView.xaml.cs">
|
||||
<DependentUpon>AbwesenheitsEditView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\Report\IcfImportControl.xaml.cs">
|
||||
<DependentUpon>IcfImportControl.xaml</DependentUpon>
|
||||
@@ -2750,7 +2765,6 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Ressources\Icons\Paste24.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
|
||||
@@ -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)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
44
BeWo/View/Detail/Report/AbwesenheitsEditView.xaml
Normal file
44
BeWo/View/Detail/Report/AbwesenheitsEditView.xaml
Normal file
@@ -0,0 +1,44 @@
|
||||
<UserControl
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch" Focusable="True"
|
||||
xmlns:val="clr-namespace:BeWo.Validation"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler"
|
||||
x:Class="BeWo.View.Detail.Report.AbwesenheitsEditView"
|
||||
d:DesignHeight="300" d:DesignWidth="300"
|
||||
|
||||
mc:Ignorable="d">
|
||||
<Grid Background="{StaticResource ObjectEditBackgroundBrush}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="10" />
|
||||
<ColumnDefinition Width="*" MinWidth="100" />
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" MinHeight="100"/>
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label Grid.Column="0" Grid.Row="0" Content="Start:" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<dxe:DateEdit x:Name="_DatePickerStartDate" Grid.Column="2" Grid.Row="0" Grid.ColumnSpan="2" MaskType="DateTimeAdvancingCaret" HorizontalAlignment="Stretch" Margin="3" AllowNullInput="False" />
|
||||
<Label Grid.Column="0" Grid.Row="1" Content="Ende:" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<dxe:DateEdit x:Name="_DatePickerEndDate" Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="2" MaskType="DateTimeAdvancingCaret" HorizontalAlignment="Stretch" Margin="3" />
|
||||
<Label Grid.Column="0" Grid.Row="2" Content="Kategorie:" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<dxe:ComboBoxEdit x:Name="_ReasonPicker" Grid.Column="2" Grid.Row="2" Grid.ColumnSpan="2" Margin="3" DisplayMember="Description"/>
|
||||
<Label Grid.Column="0" Grid.Row="3" Content="Bemerkung:" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<TextBox x:Name="_NoticeTxt" Grid.Column="2" Grid.Row="3" Grid.ColumnSpan="2" Margin="3"/>
|
||||
<Button x:Name="_DeleteBtn" Visibility="Collapsed" Grid.Column="0" Grid.Row="5" Content="Löschen" Margin="3" Click="DeleteBtn_Click" HorizontalAlignment="Left" />
|
||||
<Button x:Name="_SaveBtn" Grid.Column="2" Grid.Row="5" Content="Speichern" Margin="3, 3, 4, 3" HorizontalAlignment="Right" Click="SaveBtn_Click" MinWidth="80"/>
|
||||
<Button x:Name="_CancelBtn" Grid.Column="3" Grid.Row="5" Content="Abbrechen" Margin="3" Click="CancelBtn_Click"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
127
BeWo/View/Detail/Report/AbwesenheitsEditView.xaml.cs
Normal file
127
BeWo/View/Detail/Report/AbwesenheitsEditView.xaml.cs
Normal file
@@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaktionslogik für TestEMailControl.xaml
|
||||
/// </summary>
|
||||
public partial class AbwesenheitsEditView : UserControl
|
||||
{
|
||||
private SchedulerControl _SchedulerControl;
|
||||
|
||||
public bool IsEditMode { get; set; }
|
||||
public AbsenceTimeDC AbsenceTime { get; set; }
|
||||
public Appointment Appointment { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Für Appointment-Bearbeitung
|
||||
/// </summary>
|
||||
/// <param name="appointment"></param>
|
||||
/// <param name="absenceTimeDC"></param>
|
||||
/// <param name="reasons"></param>
|
||||
public AbwesenheitsEditView(SchedulerControl schedulerControl, Appointment appointment, AbsenceTimeDC absenceTimeDC, List<AbsenceReasonDC> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
178
BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml
Normal file
178
BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml
Normal file
@@ -0,0 +1,178 @@
|
||||
<localView:BeWoView
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler"
|
||||
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">
|
||||
|
||||
<localView:BeWoView.Resources>
|
||||
<Style x:Key="VerticalResourceHeaderStyle" TargetType="{x:Type dxschi:VisualResourceHeader}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type dxschi:VisualResourceHeader}">
|
||||
<Grid>
|
||||
<dxschi:VerticalHeaderControl SnapsToDevicePixels="True"
|
||||
ResourceColor="{Binding ResourceHeader.Brushes.ResourceHeader}"
|
||||
Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"
|
||||
dxschi:SchedulerItemsControl.ElementPosition="{Binding (dxschi:SchedulerItemsControl.ElementPosition), RelativeSource={RelativeSource TemplatedParent}}"
|
||||
/>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="ContentTemplate">
|
||||
<Setter.Value>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" SnapsToDevicePixels="True" Margin="4"
|
||||
FontSize="12"
|
||||
Foreground="White"
|
||||
Text="{Binding ResourceCaption}"
|
||||
/>
|
||||
</DataTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</localView:BeWoView.Resources>
|
||||
<Grid>
|
||||
<GroupBox Header="Abwesenheitstabelle" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<!--Erste Zeile Links-->
|
||||
<Grid Grid.Column="0" Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="0" Grid.Row="0" Content="Abwesenheitskategorie" Margin="3,3,0,3" />
|
||||
<dxe:ComboBoxEdit x:Name="FilterAbwesenheit" Grid.Column="1" Grid.Row="0" Margin="0,3,3,3" DisplayMember="Description">
|
||||
<dxe:ComboBoxEdit.StyleSettings>
|
||||
<dxe:CheckedComboBoxStyleSettings />
|
||||
</dxe:ComboBoxEdit.StyleSettings>
|
||||
</dxe:ComboBoxEdit>
|
||||
|
||||
<Label Grid.Column="2" Grid.Row="0" Content="Beschäftigungsart" Margin="3,3,0,3"/>
|
||||
<dxe:ComboBoxEdit x:Name="FilterBeschaftigungsart" Grid.Column="3" Grid.Row="0" Margin="0,3,3,3" DisplayMember="Name">
|
||||
<dxe:ComboBoxEdit.StyleSettings>
|
||||
<dxe:CheckedComboBoxStyleSettings />
|
||||
</dxe:ComboBoxEdit.StyleSettings>
|
||||
</dxe:ComboBoxEdit>
|
||||
</Grid>
|
||||
<!--Erste Zeile Rechts-->
|
||||
<Grid Grid.Column="2" Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="3" Content="Anzahl der angezeigten Tage"/>
|
||||
<dxe:SpinEdit x:Name="_SpinEdit" Grid.Column="4" Grid.Row="0" AllowNullInput="False" Height="23" Width="50" IsFloatValue="False" EditValueChanged="SpinEdit_EditValueChanged"/>
|
||||
</Grid>
|
||||
<!--Zweite Zeile Links-->
|
||||
<Grid Grid.Column="0" Grid.Row="1" HorizontalAlignment="Left">
|
||||
<Button Grid.Column="0" Grid.Row="0" Content="Erstellen" Margin="3" MinWidth="100" Click="Button_Click"/>
|
||||
</Grid>
|
||||
<!--Zweite Zeile Rechts-->
|
||||
<Grid Grid.Column="2" Grid.Row="1" HorizontalAlignment="Right">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="0" Grid.Row="0" Content="Datum" Margin="3"/>
|
||||
<dxe:DateEdit x:Name="_DateTimePicker" Grid.Column="1" Grid.Row="0" Margin="3,3,0,3" EditValueChanged="DateEdit_EditValueChanged" />
|
||||
</Grid>
|
||||
|
||||
<dxsch:SchedulerControl dx:ThemeManager.ThemeName="Office2010Black" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="3" x:Name="_SchedulerControl" ActiveViewType="Timeline" Visibility="Collapsed" GroupType="Resource" IsManipulationEnabled="True" AllowDrop="False" IsTabStop="False"
|
||||
EditAppointmentFormShowing="SchedularControl_EditAppointmentFormShowing" EditRecurrentAppointmentFormShowing="SchedularControl_EditRecurrentAppointmentFormShowing" FormCustomizationUsingMVVMLocal="False" AppointmentViewInfoCustomizing="SchedulerControl_AppointmentViewInfoCustomizing">
|
||||
<!--<dxsch:SchedulerControl.Storage>
|
||||
<dxsch:SchedulerStorage>
|
||||
<dxsch:SchedulerStorage.ResourceStorage>
|
||||
<dxsch:ResourceStorage DataSource="_EmployeesWithAbsence">
|
||||
<dxsch:ResourceStorage.Mappings>
|
||||
<dxsch:ResourceMapping Caption="LastNameFirstName"/>
|
||||
</dxsch:ResourceStorage.Mappings>
|
||||
</dxsch:ResourceStorage>
|
||||
</dxsch:SchedulerStorage.ResourceStorage>
|
||||
<dxsch:SchedulerStorage.AppointmentStorage>
|
||||
<dxsch:AppointmentStorage DataSource="_AbsenceReasons">
|
||||
<dxsch:AppointmentStorage.Mappings >
|
||||
<dxsch:AppointmentMapping/>
|
||||
</dxsch:AppointmentStorage.Mappings>
|
||||
</dxsch:AppointmentStorage>
|
||||
</dxsch:SchedulerStorage.AppointmentStorage>
|
||||
</dxsch:SchedulerStorage>
|
||||
</dxsch:SchedulerControl.Storage>-->
|
||||
<dxsch:SchedulerControl.OptionsCustomization>
|
||||
<dxsch:OptionsCustomization AllowAppointmentCopy="None" AllowAppointmentCreate="All" AllowAppointmentDelete="None" AllowAppointmentDrag="None" AllowAppointmentDragBetweenResources="None" AllowAppointmentEdit="All" AllowAppointmentResize="None" AllowInplaceEditor="None" AllowAppointmentMultiSelect="False"/>
|
||||
</dxsch:SchedulerControl.OptionsCustomization>
|
||||
<dxsch:SchedulerControl.OptionsView>
|
||||
<dxsch:OptionsView/>
|
||||
</dxsch:SchedulerControl.OptionsView>
|
||||
<dxsch:SchedulerControl.OptionsBehavior>
|
||||
<dxsch:OptionsBehavior/>
|
||||
</dxsch:SchedulerControl.OptionsBehavior>
|
||||
<dxsch:SchedulerControl.DayView >
|
||||
<dxsch:DayView />
|
||||
</dxsch:SchedulerControl.DayView>
|
||||
<dxsch:SchedulerControl.FullWeekView >
|
||||
<dxsch:FullWeekView Enabled="false"/>
|
||||
</dxsch:SchedulerControl.FullWeekView>
|
||||
<dxsch:SchedulerControl.MonthView >
|
||||
<dxsch:MonthView Enabled="false"/>
|
||||
</dxsch:SchedulerControl.MonthView>
|
||||
<dxsch:SchedulerControl.WeekView >
|
||||
<dxsch:WeekView Enabled="false"/>
|
||||
</dxsch:SchedulerControl.WeekView>
|
||||
<dxsch:SchedulerControl.WorkWeekView>
|
||||
<dxsch:WorkWeekView />
|
||||
</dxsch:SchedulerControl.WorkWeekView>
|
||||
<dxsch:SchedulerControl.TimelineView>
|
||||
<dxsch:TimelineView ResourcesPerPage="10" IntervalCount="31" TimelineScrollBarVisibility="Auto" AppointmentToolTipVisibility="Never" >
|
||||
<dxsch:TimelineView.Scales>
|
||||
<XtraScheduler:TimeScaleYear/>
|
||||
<XtraScheduler:TimeScaleMonth/>
|
||||
<XtraScheduler:TimeScaleDay/>
|
||||
</dxsch:TimelineView.Scales>
|
||||
<dxsch:TimelineView.AppointmentDisplayOptions>
|
||||
<dxsch:SchedulerTimelineViewAppointmentDisplayOptions SnapToCellsMode="Auto" EndTimeVisibility="Never" StartTimeVisibility="Never"/>
|
||||
</dxsch:TimelineView.AppointmentDisplayOptions>
|
||||
</dxsch:TimelineView>
|
||||
</dxsch:SchedulerControl.TimelineView>
|
||||
</dxsch:SchedulerControl>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</localView:BeWoView>
|
||||
242
BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml.cs
Normal file
242
BeWo/View/Detail/Report/AbwesenheitstabelleView.xaml.cs
Normal file
@@ -0,0 +1,242 @@
|
||||
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.Input;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Media;
|
||||
|
||||
using BeWo.Controls;
|
||||
using BeWo.Core;
|
||||
using BeWo.ServiceProxy;
|
||||
using BeWo.ViewModel;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
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;
|
||||
|
||||
namespace BeWo.View.Detail.Report
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for AbwesenheitstabelleView.xaml
|
||||
/// </summary>
|
||||
public partial class AbwesenheitstabelleView : BeWoView
|
||||
{
|
||||
private SchedulerStorage _SchedulerStorage;
|
||||
private IAppointmentLabelStorage _LabelStorage;
|
||||
private ResourceStorage _ResourceStorage;
|
||||
private AppointmentStorage _AppointmentStorage;
|
||||
|
||||
private List<AbsenceReasonDC> _AbsenceReasonDCs;
|
||||
|
||||
public AbwesenheitstabelleView()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_SchedulerStorage = _SchedulerControl.Storage;
|
||||
_LabelStorage = _SchedulerControl.Storage.AppointmentStorage.Labels;
|
||||
_ResourceStorage = _SchedulerControl.Storage.ResourceStorage;
|
||||
_AppointmentStorage = _SchedulerControl.Storage.AppointmentStorage;
|
||||
|
||||
_AppointmentStorage.CustomFieldMappings.Add(new SchedulerCustomFieldMapping("AbsenceTime", "AbsenceTime"));
|
||||
_SchedulerStorage.AppointmentsInserted += _SchedularStorage_AppointmentsInserted;
|
||||
_SchedulerStorage.AppointmentInserting += _SchedularStorage_AppointmentInserting;
|
||||
_SchedulerControl.TimelineView.VerticalResourceHeaderStyle = (Style)this.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);
|
||||
}
|
||||
|
||||
var kategorien = ServiceFacade.DoOperationsServiceSync(x => x.GetAllAbsenceReason());
|
||||
foreach (var item in kategorien)
|
||||
{
|
||||
FilterAbwesenheit.Items.Add(item);
|
||||
}
|
||||
|
||||
var arbeitsarten = ServiceFacade.DoEmployeeServiceSync(x => x.GetAllEmploymentTypes());
|
||||
foreach (var item in arbeitsarten)
|
||||
{
|
||||
FilterBeschaftigungsart.Items.Add(item);
|
||||
}
|
||||
|
||||
var td = DateTime.Today;
|
||||
_DateTimePicker.DateTime = td.AddDays(1 - td.Day);
|
||||
_SpinEdit.Text = DateTime.DaysInMonth(td.Year, td.Month).ToString();
|
||||
}
|
||||
|
||||
private void _SchedularStorage_AppointmentInserting(object sender, PersistentObjectCancelEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void _SchedularStorage_AppointmentsInserted(object sender, PersistentObjectsEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void Button_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Update();
|
||||
}
|
||||
|
||||
private void SchedularControl_EditAppointmentFormShowing(object sender, EditAppointmentFormEventArgs e)
|
||||
{
|
||||
var apt = e.Appointment;
|
||||
|
||||
e.AllowResize = false;
|
||||
|
||||
|
||||
e.Form = new AbwesenheitsEditView(_SchedulerControl, apt, (AbsenceTimeDC)apt.CustomFields["AbsenceTime"], _AbsenceReasonDCs);
|
||||
}
|
||||
|
||||
private void SchedularControl_EditRecurrentAppointmentFormShowing(object sender, EditAppointmentFormEventArgs e)
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
|
||||
private void SchedulerControl_AppointmentViewInfoCustomizing(object sender, DevExpress.Xpf.Scheduler.AppointmentViewInfoCustomizingEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void SpinEdit_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
|
||||
{
|
||||
if (e.NewValue == null || !int.TryParse(e.NewValue.ToString(), out var count))
|
||||
return;
|
||||
|
||||
if (count > 0)
|
||||
_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;
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
_AbsenceReasonDCs = ServiceFacade.DoOperationsServiceSync(x => x
|
||||
.GetAllAbsenceReason());
|
||||
|
||||
var absenceTimes = ServiceFacade.DoOperationsServiceSync(x => x
|
||||
.GetAbsenceTimeDCsFilter(new DateTime(2000, 1, 1), new DateTime(2021, 1, 1)))
|
||||
.Where(f => f.EmployeeOid.HasValue)
|
||||
.ToList();
|
||||
|
||||
var empIDs = absenceTimes.Select(x => x.EmployeeOid.Value).Distinct().ToList();
|
||||
|
||||
var empWithAbsence = ServiceFacade.DoEmployeeServiceSync(x => x
|
||||
.GetAllEmployees()
|
||||
.Where(emp => empIDs.Contains(emp.EmployeeOid.Value)))
|
||||
.ToList()
|
||||
.OrderBy(x => x.LastNameFirstName);
|
||||
|
||||
try
|
||||
{
|
||||
_SchedulerStorage.BeginUpdate();
|
||||
|
||||
_LabelStorage.Clear();
|
||||
foreach (var reason in _AbsenceReasonDCs)
|
||||
{
|
||||
var label = _LabelStorage.CreateNewLabel(reason.AbsenceReasonOid.ToString(), reason.Description);
|
||||
|
||||
label.Color = (Color)ColorConverter.ConvertFromString(reason.Color);
|
||||
|
||||
_LabelStorage.Add(label);
|
||||
}
|
||||
|
||||
_ResourceStorage.Clear();
|
||||
var listEmps = FilterBeschaftigungsart.SelectedItems.Count == 0 ? empWithAbsence : empWithAbsence.Where(x => x.Contracts.Exists(y => FilterBeschaftigungsart.SelectedItems.Contains(y.EmploymentType)));
|
||||
foreach (var employee in listEmps)
|
||||
{
|
||||
var resource = _SchedulerStorage.CreateResource(employee.EmployeeOid.Value.ToString());
|
||||
|
||||
resource.Caption = employee.LastNameFirstName;
|
||||
|
||||
_ResourceStorage.Add(resource);
|
||||
}
|
||||
|
||||
_AppointmentStorage.Clear();
|
||||
var listAbs = (FilterAbwesenheit.SelectedItems.Count == 0 ? absenceTimes : absenceTimes.Where(x => FilterAbwesenheit.SelectedItems.Contains(x.Reason)))
|
||||
.Where(y => listEmps.Select(x => x.EmployeeOid).Contains(y.EmployeeOid));
|
||||
|
||||
foreach (var absenceTime in listAbs)
|
||||
{
|
||||
var appointment = _SchedulerStorage.CreateAppointment(AppointmentType.Normal);
|
||||
|
||||
SchedulerHelper.OverrideAWithB(appointment, absenceTime);
|
||||
|
||||
_AppointmentStorage.Add(appointment);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
_SchedulerStorage.EndUpdate();
|
||||
_SchedulerControl.Visibility = Visibility.Visible;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class MouseHandlerService : MouseHandlerServiceWrapper
|
||||
{
|
||||
IServiceProvider provider;
|
||||
|
||||
public MouseHandlerService(IServiceProvider provider, IMouseHandlerService service)
|
||||
: base(service)
|
||||
{
|
||||
this.provider = provider;
|
||||
}
|
||||
|
||||
public override void OnMouseWheel(System.Windows.Forms.MouseEventArgs e)
|
||||
{
|
||||
if ((System.Windows.Forms.Control.ModifierKeys & Keys.Control) != Keys.Control)
|
||||
base.OnMouseWheel(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static class SchedulerHelper
|
||||
{
|
||||
public static void OverrideAWithB(Appointment appointment, AbsenceTimeDC absenceTime)
|
||||
{
|
||||
appointment.AllDay = true;
|
||||
appointment.Subject = absenceTime.Reason.Description;
|
||||
appointment.Start = absenceTime.Start.Value;
|
||||
appointment.End = (absenceTime.End ?? DateTime.MaxValue.AddDays(-1)).AddHours(23);
|
||||
appointment.ResourceId = absenceTime.EmployeeOid.Value.ToString();
|
||||
appointment.LabelKey = absenceTime.Reason.AbsenceReasonOid.ToString();
|
||||
appointment.Description = absenceTime.Notice;
|
||||
appointment.CustomFields["AbsenceTime"] = null;
|
||||
appointment.CustomFields["AbsenceTime"] = absenceTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -38,6 +38,7 @@
|
||||
<TabItem Header="{markup:Translate Mitarbeiterauswertung}" Name="tabitem_Mitarbeiter" Selector.Selected="tabitem_Mitarbeiter_Selected"/>
|
||||
<TabItem Header="{markup:Translate Mitarbeiterauslastung}" Name="tabitem_maReport" Selector.Selected="tabitem_maReport_Selected"/>
|
||||
<TabItem Header="{markup:Translate Mitarbeiterstundenkonto}" Name="tabitem_makonto" Selector.Selected="tabitem_maKonto_Selected"/>
|
||||
<TabItem Header="{markup:Translate Abwesenheitstabelle}" Name="tabitem_abwesenheitsTabelle" Selector.Selected="tabitem_abwesenheitsTabelle_Selected"/>
|
||||
<TabItem Header="{markup:Translate Hilfeplanübersicht}" Name="tabitem_supportConceptAnalysis" Selector.Selected="tabitem_supportConceptAnalysis_Selected" />
|
||||
<TabItem Header="{markup:Translate Jahresbericht}" Name="tabitem_annualReport" Selector.Selected="tabitem_annualReport_Selected" />
|
||||
<TabItem Header="{markup:Translate Quittierungsbelege}" Name="tabitem_serviceOverview" Selector.Selected="tabitem_serviceOverview_Selected" />
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace BeWo.View.Master
|
||||
tabitem_stundenzettelOverview.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
if (BeWoApp.AppSettings.ShowPivotGrid)
|
||||
if (true || BeWoApp.AppSettings.ShowPivotGrid)
|
||||
{
|
||||
tabitem_flexibleReport.Visibility = Visibility.Visible;
|
||||
}
|
||||
@@ -182,6 +182,13 @@ namespace BeWo.View.Master
|
||||
Show(tabitem_makonto);
|
||||
}
|
||||
|
||||
private void tabitem_abwesenheitsTabelle_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!_OpenViews.ContainsKey(tabitem_abwesenheitsTabelle))
|
||||
_OpenViews[tabitem_abwesenheitsTabelle] = new AbwesenheitstabelleView();
|
||||
Show(tabitem_abwesenheitsTabelle);
|
||||
}
|
||||
|
||||
private void tabitem_queries_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!_OpenViews.ContainsKey(tabitem_queries))
|
||||
|
||||
@@ -766,10 +766,6 @@
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -847,5 +847,25 @@ namespace BeWo.Service.ServiceContracts
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
IList<ReportTemplateDC> GetReportTemplates(string url);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
IList<AbsenceTimeDC> GetAbsenceTimeDCsFilter(DateTime start, DateTime end);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
IList<AbsenceReasonDC> GetAllAbsenceReason();
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
AbsenceTimeDC UpdateAbsenceTimeWithReturn(AbsenceTimeDC absenceTimeDC);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
AbsenceTimeDC InsertAbsenceTimeWithReturn(AbsenceTimeDC absenceTimeDC);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
void DeleteAbsenceTime(AbsenceTimeDC absenceTimeDC);
|
||||
}
|
||||
}
|
||||
@@ -5880,5 +5880,76 @@ namespace BeWo.Service.ServiceImplementations
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public IList<AbsenceTimeDC> GetAbsenceTimeDCsFilter(DateTime start, DateTime end)
|
||||
{
|
||||
var list = DAOFactory.GenericDAO.GetAllActive<AbsenceTime>().Where(x => x.Start.HasValue).Where(y => y.Start >= start && (!y.End.HasValue || y.End.Value <= end)).Where(z => z.EmployeeOid.HasValue);
|
||||
return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(list);
|
||||
}
|
||||
|
||||
public IList<AbsenceReasonDC> GetAllAbsenceReason()
|
||||
{
|
||||
var list = DAOFactory.GenericDAO.GetAllActive<AbsenceReason>();
|
||||
return MapperFactory.AbsenceReasonDC_AbsenceReason.MapToNewDCs(list);
|
||||
}
|
||||
|
||||
public AbsenceTimeDC UpdateAbsenceTimeWithReturn(AbsenceTimeDC abs)
|
||||
{
|
||||
try
|
||||
{
|
||||
var testbefore = abs.AbsenceTimeVersion;
|
||||
|
||||
var x = DAOFactory.GenericDAO.LoadByID<AbsenceTime>(abs.AbsenceTimeOid.Value);
|
||||
|
||||
MapperFactory.AbsenceTimeDC_AbsenceTime.MergeWithEntity(abs, x);
|
||||
|
||||
DAOFactory.GenericDAO.Update(x);
|
||||
|
||||
var y = DAOFactory.GenericDAO.LoadByID<AbsenceTime>(abs.AbsenceTimeOid.Value);
|
||||
|
||||
var z = MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDC(y);
|
||||
|
||||
return z;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public AbsenceTimeDC InsertAbsenceTimeWithReturn(AbsenceTimeDC absenceTimeDC)
|
||||
{
|
||||
try
|
||||
{
|
||||
var emp = DAOFactory.GenericDAO.GetByID<Employee>(absenceTimeDC.EmployeeOid.Value);
|
||||
emp.AbsenceTimes.Add(MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewEntity(absenceTimeDC));
|
||||
DAOFactory.GenericDAO.Update(emp);
|
||||
|
||||
emp = DAOFactory.GenericDAO.LoadByID<Employee>(absenceTimeDC.EmployeeOid.Value);
|
||||
var newAbsenceTimeOid = emp.AbsenceTimes.Max(x => x.Oid);
|
||||
var newAbsenceTimeDC = DAOFactory.GenericDAO.GetByID<AbsenceTime>(newAbsenceTimeOid.Value);
|
||||
|
||||
newAbsenceTimeDC.EmployeeOid = emp.Oid;
|
||||
return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDC(newAbsenceTimeDC);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void DeleteAbsenceTime(AbsenceTimeDC absenceTimeDC)
|
||||
{
|
||||
try
|
||||
{
|
||||
var emp = DAOFactory.GenericDAO.GetByID<Employee>(absenceTimeDC.EmployeeOid.Value);
|
||||
emp.AbsenceTimes.Remove(emp.AbsenceTimes.First(a => a.Oid == absenceTimeDC.AbsenceTimeOid));
|
||||
DAOFactory.GenericDAO.Update(emp);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,5 +132,9 @@ namespace BS.Shared.DataContracts
|
||||
return new SolidColorBrush((Color) ColorConverter.ConvertFromString(EmployeeColor));
|
||||
}
|
||||
|
||||
public virtual string LastNameFirstName
|
||||
{
|
||||
get => LastName + ", " + FirstName;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user