.
This commit is contained in:
@@ -292,6 +292,10 @@
|
||||
<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>
|
||||
@@ -871,6 +875,9 @@
|
||||
<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>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using BeWo.SchulbegleitenderDienst.ViewModel;
|
||||
|
||||
@@ -11,8 +10,6 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
|
||||
public event EventHandler<KrankheitsEventArgs> RaiseCustomEvent;
|
||||
|
||||
private readonly TagesansichtVM _Tagesansicht;
|
||||
|
||||
public KrankheitsZeitraumView(TagesansichtVM viewModel)
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -20,11 +17,8 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
var startDate = viewModel.StartDate ?? DateTime.Today;
|
||||
var endDate = viewModel.EndDate;
|
||||
|
||||
_Tagesansicht = viewModel;
|
||||
|
||||
ViewModel = new AbsenceTimeEditViewModel(startDate, endDate, _Tagesansicht, vm =>
|
||||
ViewModel = new AbsenceTimeEditViewModel(startDate, endDate, viewModel, vm =>
|
||||
{
|
||||
// TODO: RaiseEvent aufrufen
|
||||
RaiseCustomEvent?.Invoke(this, new KrankheitsEventArgs(vm));
|
||||
});
|
||||
|
||||
@@ -44,16 +38,6 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => { Close(); }));
|
||||
}
|
||||
|
||||
public void RaisEvent_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
public class KrankheitsEventArgs : EventArgs
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
@@ -7,7 +7,8 @@ namespace BeWo.SchulbegleitenderDienst.SBDUtils
|
||||
{
|
||||
public static class SBDUtils
|
||||
{
|
||||
public static SubstitutionListObject CreateSubstitutionListObject(List<TagesansichtVM> viewModels)
|
||||
// FÜr die Tagesansicht optimiert
|
||||
public static DailySubstitutionListObject CreateSubstitutionListObject(List<TagesansichtVM> viewModels)
|
||||
{
|
||||
var unwantedSubstitutionList = new List<TagesansichtVM>();
|
||||
var employeeSubstitutionList = new List<TagesansichtVM>();
|
||||
@@ -17,17 +18,7 @@ namespace BeWo.SchulbegleitenderDienst.SBDUtils
|
||||
{
|
||||
if(viewModel.VertretungsStatus != VertretungsStatus.KlientKrank)
|
||||
{
|
||||
var substitutionStartingDayCountCondition = false;
|
||||
|
||||
if (viewModel.Customer != null)
|
||||
{
|
||||
if (viewModel.Absencetime?.Start.HasValue ?? false)
|
||||
{
|
||||
var substitutionNeededStartDate = viewModel.Absencetime?.Start.Value.AddDays(viewModel.Customer.SubstitutionStartingDayCount - 1);
|
||||
|
||||
substitutionStartingDayCountCondition = viewModel.Customer.SubstitutionNeed != SubstitutionNeed.NoSubstitutionWanted && viewModel.Datum < substitutionNeededStartDate;
|
||||
}
|
||||
}
|
||||
var substitutionStartingDayCountCondition = SubstitutionStartingDayCountCondition(viewModel);
|
||||
|
||||
if (substitutionStartingDayCountCondition || viewModel.Vertretung?.VertretenderMitarbeiterOid != null || viewModel.Customer != null && viewModel.Customer.SubstitutionNeed == SubstitutionNeed.NoSubstitutionWanted)
|
||||
{
|
||||
@@ -44,17 +35,76 @@ namespace BeWo.SchulbegleitenderDienst.SBDUtils
|
||||
}
|
||||
}
|
||||
|
||||
return new SubstitutionListObject(employeeSubstitutionList, customerSubstitutionList, unwantedSubstitutionList);
|
||||
return new DailySubstitutionListObject(employeeSubstitutionList, customerSubstitutionList, unwantedSubstitutionList);
|
||||
}
|
||||
|
||||
private static bool SubstitutionStartingDayCountCondition(TagesansichtVM viewModel)
|
||||
{
|
||||
var substitutionStartingDayCountCondition = false;
|
||||
|
||||
if (viewModel?.Customer != null && viewModel.Absencetime?.Start != null)
|
||||
{
|
||||
var substitutionNeededStartDate = viewModel.Absencetime?.Start.Value.Date.AddDays(viewModel.Customer.SubstitutionStartingDayCount - 1);
|
||||
|
||||
substitutionStartingDayCountCondition = viewModel.Customer.SubstitutionNeed != SubstitutionNeed.NoSubstitutionWanted && viewModel.Datum < substitutionNeededStartDate;
|
||||
}
|
||||
|
||||
return substitutionStartingDayCountCondition;
|
||||
}
|
||||
|
||||
public static WeeklySubstitutionListObject CreateWeeklySubstitutionListObject(List<WochenansichtVM> viewModels)
|
||||
{
|
||||
var unwantedSubstitutionList = new List<WochenansichtVM>();
|
||||
var employeeSubstitutionList = new List<WochenansichtVM>();
|
||||
var customerSubstitutionList = new List<WochenansichtVM>();
|
||||
|
||||
foreach (var viewModel in viewModels)
|
||||
{
|
||||
var isCustomerAbsenceWeekView = viewModel.WeekDayDictionary.Where(w => w.Value != null).All(a => a.Value.VertretungsStatus == VertretungsStatus.KlientKrank);
|
||||
|
||||
var isSubstitutionUnwanted = viewModel.WeekDayDictionary.Where(w => w.Value != null).All(a => SubstitutionStartingDayCountCondition(a.Value) || a.Value.Vertretung?.VertretenderMitarbeiterOid != null || a.Value.Customer != null && a.Value.Customer.SubstitutionNeed == SubstitutionNeed.NoSubstitutionWanted);
|
||||
|
||||
|
||||
if (isSubstitutionUnwanted)
|
||||
{
|
||||
unwantedSubstitutionList.AddIfNotIn(viewModel);
|
||||
}
|
||||
else if(isCustomerAbsenceWeekView)
|
||||
{
|
||||
customerSubstitutionList.AddIfNotIn(viewModel);
|
||||
}
|
||||
else
|
||||
{
|
||||
employeeSubstitutionList.AddIfNotIn(viewModel);
|
||||
}
|
||||
}
|
||||
|
||||
return new WeeklySubstitutionListObject(employeeSubstitutionList, customerSubstitutionList, customerSubstitutionList);
|
||||
}
|
||||
}
|
||||
|
||||
public struct SubstitutionListObject
|
||||
|
||||
public struct DailySubstitutionListObject
|
||||
{
|
||||
public List<TagesansichtVM> AbsentEmployeesList { get; set; }
|
||||
public List<TagesansichtVM> AbsentCustomersList { get; set; }
|
||||
public List<TagesansichtVM> SubstitutionUnwantedList { get; set; }
|
||||
|
||||
public SubstitutionListObject(List<TagesansichtVM> absentEmployees, List<TagesansichtVM> absentCustomers, List<TagesansichtVM> substitutionUnwanted)
|
||||
public DailySubstitutionListObject(List<TagesansichtVM> absentEmployees, List<TagesansichtVM> absentCustomers, List<TagesansichtVM> substitutionUnwanted)
|
||||
{
|
||||
AbsentEmployeesList = absentEmployees;
|
||||
AbsentCustomersList = absentCustomers;
|
||||
SubstitutionUnwantedList = substitutionUnwanted;
|
||||
}
|
||||
}
|
||||
|
||||
public struct WeeklySubstitutionListObject
|
||||
{
|
||||
public List<WochenansichtVM> AbsentEmployeesList { get; set; }
|
||||
public List<WochenansichtVM> AbsentCustomersList { get; set; }
|
||||
public List<WochenansichtVM> SubstitutionUnwantedList { get; set; }
|
||||
|
||||
public WeeklySubstitutionListObject(List<WochenansichtVM> absentEmployees, List<WochenansichtVM> absentCustomers, List<WochenansichtVM> substitutionUnwanted)
|
||||
{
|
||||
AbsentEmployeesList = absentEmployees;
|
||||
AbsentCustomersList = absentCustomers;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BeWo.SchulbegleitenderDienst.ViewModel;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
|
||||
@@ -228,23 +228,18 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
break;
|
||||
case 1:
|
||||
wwk.EingesetztBeiDi = item.Customer.FullName;
|
||||
//wwk.Di = AddWeekView(wochentagDt, item.Wochentagsarbeitszeit);
|
||||
break;
|
||||
case 2:
|
||||
wwk.EingesetztBeiMi = item.Customer.FullName;
|
||||
//wwk.Mi = AddWeekView(wochentagDt, item.Wochentagsarbeitszeit);
|
||||
break;
|
||||
case 3:
|
||||
wwk.EingesetztBeiDo = item.Customer.FullName;
|
||||
//wwk.Do = AddWeekView(wochentagDt, item.Wochentagsarbeitszeit);
|
||||
break;
|
||||
case 4:
|
||||
wwk.EingesetztBeiFr = item.Customer.FullName;
|
||||
//wwk.Fr = AddWeekView(wochentagDt, item.Wochentagsarbeitszeit);
|
||||
break;
|
||||
case 5:
|
||||
wwk.EingesetztBeiSa = item.Customer.FullName;
|
||||
//wwk.Sa = AddWeekView(wochentagDt, item.Wochentagsarbeitszeit);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,9 +12,7 @@
|
||||
xmlns:localConv="clr-namespace:BeWo.SchulbegleitenderDienst.Converter"
|
||||
xmlns:converter="clr-namespace:BeWo.Converter"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
|
||||
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
|
||||
xmlns:dxpbars="http://schemas.devexpress.com/winfx/2008/xaml/printing/bars"
|
||||
xmlns:schulbegleitenderDienst="clr-namespace:BeWo.SchulbegleitenderDienst"
|
||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True" x:Name="View">
|
||||
<localView:BeWoView.Resources>
|
||||
<Style TargetType="dxg:RowControl" xmlns:sys="clr-namespace:System;assembly=mscorlib">
|
||||
@@ -24,7 +22,7 @@
|
||||
<converter:StringLengthVisibilityConverter x:Key="StringLengthVisibilityConverter" />
|
||||
<converter:StringLengthVisibilityMultiConverter x:Key="StringLengthVisibilityMultiConverter" />
|
||||
|
||||
<DataTemplate x:Key="WeekViewEmployeeCellTemplate">
|
||||
<DataTemplate x:Key="WeekViewEmployeeCellTemplate" DataType="schulbegleitenderDienst:WochenansichtVM">
|
||||
<StackPanel>
|
||||
<TextBlock FontWeight="Bold" Text="{Binding Path=Employee}" />
|
||||
<TextBlock FontWeight="Bold" Text="Dönermann" />
|
||||
@@ -41,7 +39,6 @@
|
||||
<TextBlock FontWeight="Bold" Text="Letzte Vertretungen" Visibility="{Binding Path=LastSubstitutionsString, Converter={StaticResource StringLengthVisibilityConverter}}" />
|
||||
<TextBlock Text="{Binding LastSubstitutionsString}" Visibility="{Binding Path=Text, Converter={StaticResource StringLengthVisibilityConverter}, RelativeSource={RelativeSource Self}}" />
|
||||
|
||||
<!-- TODO: Was kommt hier in den Text? -->
|
||||
<Separator Visibility="{Binding Path=SchulbegleitenderDienstString, Converter={StaticResource StringLengthVisibilityConverter}}" />
|
||||
<TextBlock FontWeight="Bold" Text="Schulbegleitender Dienst:" Visibility="{Binding Path=SchulbegleitenderDienstString, Converter={StaticResource StringLengthVisibilityConverter}}" />
|
||||
<TextBlock Text="{Binding SchulbegleitenderDienstString}" Visibility="{Binding Path=Text, Converter={StaticResource StringLengthVisibilityConverter}, RelativeSource={RelativeSource Self}}" />
|
||||
@@ -106,11 +103,11 @@
|
||||
</Button>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.ColumnSpan="3" Grid.Column="0">
|
||||
<Button x:Name="MitarbeiterVertretung_Button" Background="Transparent" BorderBrush="Transparent" HorizontalAlignment="Left" Margin="3,3,3,3" Click="MitarbeiterVertretung_OnClick" Content="{markup:Translate Neue Abwesenheit für Mitarbeiter/in}" >
|
||||
<Button x:Name="MitarbeiterVertretungButton" Background="Transparent" BorderBrush="Transparent" HorizontalAlignment="Left" Margin="3,3,3,3" Click="MitarbeiterVertretung_OnClick" Content="{markup:Translate Neue Abwesenheit für Mitarbeiter/in}" >
|
||||
</Button>
|
||||
<controls:PopupNonTopmost Topmost="False" x:Name="popup_newMitarbeiterVertretung" Width="300" StaysOpen="True" Placement="MousePoint" Grid.Row="1" PlacementTarget="{Binding ElementName=MitarbeiterVertretung_Button}">
|
||||
<controls:PopupNonTopmost Topmost="False" x:Name="PopupNewMitarbeiterVertretung" Width="300" StaysOpen="True" Placement="MousePoint" PlacementTarget="{Binding ElementName=MitarbeiterVertretungButton}">
|
||||
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
|
||||
<GroupBox x:Name="groupbox_newEnvironmentPerson" Header="Mitarbeiter/in hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
|
||||
<GroupBox x:Name="GroupboxNewEnvironmentPerson" Header="Mitarbeiter/in hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
@@ -135,28 +132,28 @@
|
||||
<Label Grid.Row="3" Grid.Column="0" Content="Meldung vom" />
|
||||
<Label Grid.Row="4" Grid.Column="0" Content="Startdatum" />
|
||||
<Label Grid.Row="5" Grid.Column="0" Content="Enddatum" />
|
||||
<Label Grid.Row="7" Grid.Column="0" Content="Uhrzeit Von" x:Name="MVLabelUhrzeitVon" />
|
||||
<Label Grid.Row="8" Grid.Column="0" Content="Uhrzeit Bis" x:Name="MVLabelUhrzeitBis" />
|
||||
<Label Grid.Row="7" Grid.Column="0" Content="Uhrzeit Von" x:Name="MvLabelUhrzeitVon" />
|
||||
<Label Grid.Row="8" Grid.Column="0" Content="Uhrzeit Bis" x:Name="MvLabelUhrzeitBis" />
|
||||
<Label Grid.Row="9" Grid.Column="0" Content="Notiz" />
|
||||
<controls1:PopUpEdit Cursor="Arrow"
|
||||
IsReadOnly="True"
|
||||
x:Name="popupedit_MitarbeiterVertretungSearch" Grid.Column="1" Grid.ColumnSpan="2" Margin="3" Height="23"
|
||||
x:Name="PopupeditMitarbeiterVertretungSearch" Grid.Column="1" Grid.ColumnSpan="2" Margin="3" Height="23"
|
||||
Grid.Row="0" DeleteButtonVisibility="Collapsed"
|
||||
PopUpClick="Popupedit_MitarbeiterVertretungSearch_OnPopUpClick_popupedit_MitarbeiterVertretungSearch_PopUpClick" />
|
||||
PopUpClick="Popupedit_MitarbeiterVertretungSearch_OnPopUpClick_popupedit_MitarbeiterVertretungSearch_PopUpClick" />
|
||||
|
||||
|
||||
<controls1:NullItemComboBox Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="2" Margin="3" Height="23" x:Name="ComboBoxMitarbeiterVertretung" />
|
||||
|
||||
|
||||
<dxe:DateEdit x:Name="KrankMeldungMitarbeiterDatepicker" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="MVDatepickerVon_OnEditValueChanged"/>
|
||||
<CheckBox Grid.Column="1" Grid.Row="6" Unchecked="MitarbeiterVertretungsToggleButton_OnUnchecked" Checked="MitarbeiterVertretungsToggleButton_OnChecked" Grid.ColumnSpan="2" HorizontalAlignment="Left" x:Name="MVCheckBox" Content="ganztägig" Margin="3"/>
|
||||
<dxe:DateEdit x:Name="MVDatepickerVon" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="MVDatepickerVon_OnEditValueChanged"/>
|
||||
<dxe:DateEdit x:Name="MVDatepickerBis" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="MVDatepickerBis_OnEditValueChanged" />
|
||||
<dxe:TextEdit Grid.Column="2" Grid.Row="7" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="MVDatepicker_UhrzeitVon"
|
||||
<CheckBox Grid.Column="1" Grid.Row="6" Unchecked="MitarbeiterVertretungsToggleButton_OnUnchecked" Checked="MitarbeiterVertretungsToggleButton_OnChecked" Grid.ColumnSpan="2" HorizontalAlignment="Left" x:Name="MvCheckBox" Content="ganztägig" Margin="3"/>
|
||||
<dxe:DateEdit x:Name="MvDatepickerVon" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="MVDatepickerVon_OnEditValueChanged"/>
|
||||
<dxe:DateEdit x:Name="MvDatepickerBis" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="MVDatepickerBis_OnEditValueChanged" />
|
||||
<dxe:TextEdit Grid.Column="2" Grid.Row="7" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="MvDatepickerUhrzeitVon"
|
||||
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor"
|
||||
Height="23" Visibility="Visible"
|
||||
Margin="3,3,3,3"/>
|
||||
<dxe:TextEdit Grid.Column="2" Grid.Row="8" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="MVDatepicker_UhrzeitBis"
|
||||
<dxe:TextEdit Grid.Column="2" Grid.Row="8" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="MvDatepickerUhrzeitBis"
|
||||
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor"
|
||||
Height="23" Visibility="Visible"
|
||||
Margin="3,3,3,3" />
|
||||
@@ -664,7 +661,7 @@
|
||||
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<dxg:GridControl x:Name="GridDataControlWochenansichtMitarbeiter" AllowDrop="true" Margin="5" VerticalContentAlignment="Stretch" BorderBrush="Black" ItemsSource="{Binding AbsentEmployeesWeekViewList, UpdateSourceTrigger=PropertyChanged}">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in" ReadOnly="True" SortOrder="Ascending">
|
||||
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellToolTipTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
@@ -693,7 +690,7 @@
|
||||
</DataTemplate>
|
||||
</dxg:GridColumn.CellTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Geschlecht" Header="m/w" ReadOnly="True" Width="40" HorizontalHeaderContentAlignment="Center">
|
||||
<dxg:GridColumn FieldName="Geschlecht" Header="m/w" ReadOnly="True" Width="40" HorizontalHeaderContentAlignment="Center" AllowBestFit="True">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings HorizontalContentAlignment="Center"/>
|
||||
</dxg:GridColumn.EditSettings>
|
||||
@@ -711,13 +708,13 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Teamleitung" Header="Teamleitung" ReadOnly="True" />
|
||||
<dxg:GridColumn FieldName="Bemerkung">
|
||||
<dxg:GridColumn FieldName="Teamleitung" Header="Teamleitung" ReadOnly="True" AllowBestFit="True" />
|
||||
<dxg:GridColumn FieldName="Bemerkung" AllowBestFit="True">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:MemoEditSettings TextWrapping="NoWrap" AcceptsReturn="True" MaxLength="1024" MemoTextWrapping="NoWrap" MemoAcceptsReturn="True" ShowIcon="False" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemMo.Vertreter" Header="Montag" Width="100" ReadOnly="True" AllowEditing="False" CellToolTipTemplate="{StaticResource WeekViewEmployeeCellTemplate}">
|
||||
<dxg:GridColumn FieldName="ItemMo.Vertreter" Header="Montag" Width="100" ReadOnly="True" AllowEditing="False" CellToolTipTemplate="{StaticResource WeekViewEmployeeCellTemplate}" AllowBestFit="True">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<Grid>
|
||||
@@ -748,7 +745,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemDi.Vertreter" Header="Dienstag" ReadOnly="True" AllowEditing="False">
|
||||
<dxg:GridColumn FieldName="ItemDi.Vertreter" Header="Dienstag" ReadOnly="True" AllowEditing="False" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellToolTipTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
@@ -802,7 +799,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemMi.Vertreter" Header="Mittwoch" ReadOnly="True" AllowEditing="False" CellToolTipTemplate="{StaticResource WeekViewEmployeeCellTemplate}">
|
||||
<dxg:GridColumn FieldName="ItemMi.Vertreter" Header="Mittwoch" ReadOnly="True" AllowEditing="False" CellToolTipTemplate="{StaticResource WeekViewEmployeeCellTemplate}" AllowBestFit="True">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<Grid>
|
||||
@@ -833,7 +830,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemDo.Vertreter" Header="Donnerstag" ReadOnly="True" AllowEditing="False">
|
||||
<dxg:GridColumn FieldName="ItemDo.Vertreter" Header="Donnerstag" ReadOnly="True" AllowEditing="False" AllowBestFit="True">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<Grid>
|
||||
@@ -864,7 +861,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemFr.Vertreter" Header="Freitag" ReadOnly="True" AllowEditing="False">
|
||||
<dxg:GridColumn FieldName="ItemFr.Vertreter" Header="Freitag" ReadOnly="True" AllowEditing="False" AllowBestFit="True">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<Grid>
|
||||
@@ -895,7 +892,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemSa.Vertreter" Header="Samstag" ReadOnly="True" AllowEditing="False">
|
||||
<dxg:GridColumn FieldName="ItemSa.Vertreter" Header="Samstag" ReadOnly="True" AllowEditing="False" AllowBestFit="True">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<Grid>
|
||||
@@ -968,7 +965,7 @@
|
||||
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
|
||||
<dxg:GridControl x:Name="GridDataControlWochenansichtKlient" AllowDrop="true" Margin="5" VerticalContentAlignment="Stretch" BorderBrush="Black" ItemsSource="{Binding AbsentCustomersWeekViewList, UpdateSourceTrigger=PropertyChanged}">
|
||||
<dxg:GridControl.Columns >
|
||||
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in" ReadOnly="True" SortOrder="Ascending">
|
||||
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Margin="5,5,0,0">
|
||||
@@ -979,7 +976,7 @@
|
||||
</DataTemplate>
|
||||
</dxg:GridColumn.CellTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="CustomerName" Header="Klient/in" Width="100" ReadOnly="True" >
|
||||
<dxg:GridColumn FieldName="CustomerName" Header="Klient/in" Width="100" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Margin="5,5,0,0">
|
||||
@@ -990,7 +987,7 @@
|
||||
</DataTemplate>
|
||||
</dxg:GridColumn.CellTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Geschlecht" Header="m/w" ReadOnly="True" Width="40" HorizontalHeaderContentAlignment="Center">
|
||||
<dxg:GridColumn FieldName="Geschlecht" Header="m/w" ReadOnly="True" Width="40" HorizontalHeaderContentAlignment="Center" AllowBestFit="True">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings HorizontalContentAlignment="Center"/>
|
||||
</dxg:GridColumn.EditSettings>
|
||||
@@ -1008,7 +1005,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Pflege" Header="Pflege" ReadOnly="True" >
|
||||
<dxg:GridColumn FieldName="Pflege" Header="Pflege" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1020,7 +1017,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Toilettengang" Header="Toilettengang" ReadOnly="True" >
|
||||
<dxg:GridColumn FieldName="Toilettengang" Header="Toilettengang" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1032,7 +1029,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Aggressiv" Header="Aggressivität" ReadOnly="True" >
|
||||
<dxg:GridColumn FieldName="Aggressiv" Header="Aggressivität" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1044,8 +1041,8 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Teamleitung" Header="Teamleitung" ReadOnly="True" />
|
||||
<dxg:GridColumn FieldName="ItemMo.MitarbeiterEinsatzBei" Header="Montag" Width="100" ReadOnly="True">
|
||||
<dxg:GridColumn FieldName="Teamleitung" Header="Teamleitung" ReadOnly="True" AllowBestFit="True" />
|
||||
<dxg:GridColumn FieldName="ItemMo.MitarbeiterEinsatzBei" Header="Montag" Width="100" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1058,7 +1055,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemDi.MitarbeiterEinsatzBei" Header="Dienstag" ReadOnly="True">
|
||||
<dxg:GridColumn FieldName="ItemDi.MitarbeiterEinsatzBei" Header="Dienstag" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1071,7 +1068,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemMi.MitarbeiterEinsatzBei" Header="Mittwoch" ReadOnly="True">
|
||||
<dxg:GridColumn FieldName="ItemMi.MitarbeiterEinsatzBei" Header="Mittwoch" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1084,7 +1081,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemDo.MitarbeiterEinsatzBei" Header="Donnerstag" ReadOnly="True">
|
||||
<dxg:GridColumn FieldName="ItemDo.MitarbeiterEinsatzBei" Header="Donnerstag" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1097,7 +1094,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemFr.MitarbeiterEinsatzBei" Header="Freitag" ReadOnly="True" >
|
||||
<dxg:GridColumn FieldName="ItemFr.MitarbeiterEinsatzBei" Header="Freitag" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1110,7 +1107,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemSa.MitarbeiterEinsatzBei" Header="Samstag" ReadOnly="True">
|
||||
<dxg:GridColumn FieldName="ItemSa.MitarbeiterEinsatzBei" Header="Samstag" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1125,7 +1122,7 @@
|
||||
</dxg:GridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="False" AllowBestFit="True" ShowGroupPanel="False">
|
||||
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="True" AllowBestFit="True" ShowGroupPanel="False">
|
||||
<dxg:TableView.RowStyle>
|
||||
<Style TargetType="dxg:RowControl">
|
||||
<Setter Property="ToolTipService.ToolTip">
|
||||
@@ -1144,7 +1141,6 @@
|
||||
<TextBlock FontWeight="Bold" Text="Kontakt:" Visibility="{Binding Path=Row.CustomerContactInformationString, Converter={StaticResource StringLengthVisibilityConverter}}" />
|
||||
<TextBlock Text="{Binding Row.CustomerContactInformationString}" Visibility="{Binding Path=Text, Converter={StaticResource StringLengthVisibilityConverter}, RelativeSource={RelativeSource Self}}" />
|
||||
|
||||
<!-- TODO: Was wird hier angezeigt? -->
|
||||
<Separator Visibility="{Binding Path=Row.SchulbegleitenderDienstString, Converter={StaticResource StringLengthVisibilityConverter}}" />
|
||||
<TextBlock FontWeight="Bold" Text="Schulbegleitender Dienst:" Visibility="{Binding Path=Row.SchulbegleitenderDienstString, Converter={StaticResource StringLengthVisibilityConverter}}" />
|
||||
<TextBlock Text="{Binding Row.SchulbegleitenderDienstString}" Visibility="{Binding Path=Text, Converter={StaticResource StringLengthVisibilityConverter}, RelativeSource={RelativeSource Self}}" />
|
||||
@@ -1163,9 +1159,10 @@
|
||||
|
||||
<!-- Wochenansicht Kein Vertretungsbedarf -->
|
||||
<GroupBox Grid.Row="2" Header="{markup:Translate Kein Vertretungsbedarf}" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
|
||||
<dxg:GridControl AllowDrop="True" Margin="5" VerticalContentAlignment="Stretch" BorderBrush="Black" x:Name="SubstitutionUnwantedWeekViewGridControl" ItemsSource="{Binding SubstitutionUnwantedWeekViewList, UpdateSourceTrigger=PropertyChanged}">
|
||||
<dxg:GridControl AllowDrop="True" Margin="5" VerticalContentAlignment="Stretch" BorderBrush="Black"
|
||||
x:Name="SubstitutionUnwantedWeekViewGridControl" ItemsSource="{Binding SubstitutionUnwantedWeekViewList, UpdateSourceTrigger=PropertyChanged}">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in abwesend" ReadOnly="True" SortOrder="Ascending">
|
||||
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in abwesend" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Margin="5,5,0,0">
|
||||
@@ -1176,7 +1173,7 @@
|
||||
</DataTemplate>
|
||||
</dxg:GridColumn.CellTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="CustomerName" Header="Klient/in abwesend" ReadOnly="True" >
|
||||
<dxg:GridColumn FieldName="CustomerName" Header="Klient/in abwesend" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Margin="5,5,0,0">
|
||||
@@ -1192,10 +1189,10 @@
|
||||
<dxe:MemoEditSettings TextWrapping="NoWrap" AcceptsReturn="True" MaxLength="1024" MemoTextWrapping="NoWrap" MemoAcceptsReturn="True" ShowIcon="False" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Teamleitung" Header="Teamleitung" ReadOnly="True" />
|
||||
<dxg:GridColumn Header="Meldung vom" ReadOnly="True" />
|
||||
<dxg:GridColumn FieldName="Teamleitung" Header="Teamleitung" ReadOnly="True" AllowBestFit="True" />
|
||||
<dxg:GridColumn Header="Meldung vom" ReadOnly="True" AllowBestFit="True" />
|
||||
<dxg:GridColumn Header="Abwesenheitskategorie" />
|
||||
<dxg:GridColumn FieldName="ItemMo.MitarbeiterEinsatzBei" Header="Montag" ReadOnly="True">
|
||||
<dxg:GridColumn FieldName="ItemMo.MitarbeiterEinsatzBei" Header="Montag" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1208,7 +1205,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemDi.MitarbeiterEinsatzBei" Header="Dienstag" ReadOnly="True">
|
||||
<dxg:GridColumn FieldName="ItemDi.MitarbeiterEinsatzBei" Header="Dienstag" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1221,7 +1218,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemMi.MitarbeiterEinsatzBei" Header="Mittwoch" ReadOnly="True">
|
||||
<dxg:GridColumn FieldName="ItemMi.MitarbeiterEinsatzBei" Header="Mittwoch" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1234,7 +1231,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemDo.MitarbeiterEinsatzBei" Header="Donnerstag" ReadOnly="True">
|
||||
<dxg:GridColumn FieldName="ItemDo.MitarbeiterEinsatzBei" Header="Donnerstag" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1247,7 +1244,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemFr.MitarbeiterEinsatzBei" Header="Freitag" ReadOnly="True" >
|
||||
<dxg:GridColumn FieldName="ItemFr.MitarbeiterEinsatzBei" Header="Freitag" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
@@ -1260,7 +1257,7 @@
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="ItemSa.MitarbeiterEinsatzBei" Header="Samstag" ReadOnly="True">
|
||||
<dxg:GridColumn FieldName="ItemSa.MitarbeiterEinsatzBei" Header="Samstag" ReadOnly="True" AllowBestFit="True">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
|
||||
<Setter Property="BorderBrush" Value="#D2D2D2" />
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Documents;
|
||||
@@ -10,7 +9,6 @@ using System.Windows.Navigation;
|
||||
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;
|
||||
@@ -62,7 +60,7 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
Datelbl.Content = DateTime.Now.Date.ToString("dddd dd.MM.yyyy");
|
||||
SetAbsenceReasons();
|
||||
|
||||
MVCheckBox.IsChecked = true;
|
||||
MvCheckBox.IsChecked = true;
|
||||
KVCheckBox.IsChecked = true;
|
||||
|
||||
KlientVertretungsearchview.ItemSelected += KlientVertretungsearchview_KlientVertretungSelected;
|
||||
@@ -117,15 +115,11 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
_ItemsWochenKlienten.Clear();
|
||||
_SubstitutionUnwantedWeekViewList.Clear();
|
||||
|
||||
var lists = SBDUtils.SBDUtils.CreateSubstitutionListObject(tagesansichtVMs);
|
||||
var weeklySubstitutionListObject = SBDUtils.SBDUtils.CreateWeeklySubstitutionListObject(_Wochenvertretung.GetWochenAnsichtFromItems(time, tagesansichtVMs));
|
||||
|
||||
var employeeList = lists.AbsentEmployeesList;
|
||||
var customerList = lists.AbsentCustomersList;
|
||||
var unwantedList = lists.SubstitutionUnwantedList;
|
||||
|
||||
_ItemsWochenMitarbeiter.AddRangeIfElementsNotIn(_Wochenvertretung.GetWochenAnsichtFromItems(time, employeeList));
|
||||
_ItemsWochenKlienten.AddRangeIfElementsNotIn(_Wochenvertretung.GetWochenAnsichtFromItems(time, customerList));
|
||||
_SubstitutionUnwantedWeekViewList.AddRangeIfElementsNotIn(_Wochenvertretung.GetWochenAnsichtFromItems(time, unwantedList));
|
||||
_ItemsWochenMitarbeiter.AddRangeIfElementsNotIn(weeklySubstitutionListObject.AbsentEmployeesList);
|
||||
_ItemsWochenKlienten.AddRangeIfElementsNotIn(weeklySubstitutionListObject.AbsentCustomersList);
|
||||
_SubstitutionUnwantedWeekViewList.AddRangeIfElementsNotIn(weeklySubstitutionListObject.SubstitutionUnwantedList);
|
||||
}
|
||||
|
||||
private void MVDatepickerVon_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
|
||||
@@ -134,9 +128,9 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
var dt = (DateTime) e.NewValue;
|
||||
|
||||
if (dt >= MVDatepickerBis.DateTime)
|
||||
if (dt >= MvDatepickerBis.DateTime)
|
||||
{
|
||||
MVDatepickerBis.DateTime = dt;
|
||||
MvDatepickerBis.DateTime = dt;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -147,9 +141,9 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
var dt = (DateTime) e.NewValue;
|
||||
|
||||
if (dt <= MVDatepickerVon.DateTime)
|
||||
if (dt <= MvDatepickerVon.DateTime)
|
||||
{
|
||||
MVDatepickerVon.DateTime = dt;
|
||||
MvDatepickerVon.DateTime = dt;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -167,7 +161,7 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
var dateTime = (DateTime)e.NewValue;
|
||||
|
||||
if(dateTime <= MVDatepickerVon.DateTime) {
|
||||
if(dateTime <= MvDatepickerVon.DateTime) {
|
||||
KVDatepickerVon.DateTime = dateTime;
|
||||
}
|
||||
}
|
||||
@@ -178,33 +172,33 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
|
||||
private void MitarbeiterVertretungsToggleButton_OnChecked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
MVDatepicker_UhrzeitVon.Text = string.Empty;
|
||||
MVDatepicker_UhrzeitBis.Text = string.Empty;
|
||||
MvDatepickerUhrzeitVon.Text = string.Empty;
|
||||
MvDatepickerUhrzeitBis.Text = string.Empty;
|
||||
|
||||
MVDatepicker_UhrzeitVon.Visibility = Visibility.Collapsed;
|
||||
MVDatepicker_UhrzeitBis.Visibility = Visibility.Collapsed;
|
||||
MvDatepickerUhrzeitVon.Visibility = Visibility.Collapsed;
|
||||
MvDatepickerUhrzeitBis.Visibility = Visibility.Collapsed;
|
||||
|
||||
MVLabelUhrzeitVon.Visibility = Visibility.Collapsed;
|
||||
MVLabelUhrzeitBis.Visibility = Visibility.Collapsed;
|
||||
MvLabelUhrzeitVon.Visibility = Visibility.Collapsed;
|
||||
MvLabelUhrzeitBis.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private void MitarbeiterVertretungsToggleButton_OnUnchecked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
MVDatepicker_UhrzeitVon.Visibility = Visibility.Visible;
|
||||
MVDatepicker_UhrzeitBis.Visibility = Visibility.Visible;
|
||||
MVLabelUhrzeitVon.Visibility = Visibility.Visible;
|
||||
MVLabelUhrzeitBis.Visibility = Visibility.Visible;
|
||||
MvDatepickerUhrzeitVon.Visibility = Visibility.Visible;
|
||||
MvDatepickerUhrzeitBis.Visibility = Visibility.Visible;
|
||||
MvLabelUhrzeitVon.Visibility = Visibility.Visible;
|
||||
MvLabelUhrzeitBis.Visibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
private void MitarbeiterVertretung_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
popup_newMitarbeiterVertretung.IsOpen = true;
|
||||
PopupNewMitarbeiterVertretung.IsOpen = true;
|
||||
}
|
||||
|
||||
private void Button_cancelMitarbeiterVertretung_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ClearAllMitarbeiterValues();
|
||||
popup_newMitarbeiterVertretung.IsOpen = false;
|
||||
PopupNewMitarbeiterVertretung.IsOpen = false;
|
||||
}
|
||||
|
||||
private void Popupedit_MitarbeiterVertretungSearch_OnPopUpClick_popupedit_MitarbeiterVertretungSearch_PopUpClick(object sender, RoutedEventArgs e)
|
||||
@@ -218,43 +212,43 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
|
||||
_CurrentEmployee = e.Data;
|
||||
|
||||
popupedit_MitarbeiterVertretungSearch.Text = _CurrentEmployee.FirstName + " " + _CurrentEmployee.LastName;
|
||||
popupedit_MitarbeiterVertretungSearch.Focus();
|
||||
PopupeditMitarbeiterVertretungSearch.Text = _CurrentEmployee.FirstName + " " + _CurrentEmployee.LastName;
|
||||
PopupeditMitarbeiterVertretungSearch.Focus();
|
||||
}
|
||||
|
||||
private void Button_addMitarbeiterVertretung_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var isValid = false;
|
||||
|
||||
if (!string.IsNullOrEmpty(popupedit_MitarbeiterVertretungSearch.Text) && ComboBoxMitarbeiterVertretung.SelectedValue != null )
|
||||
if (!string.IsNullOrEmpty(PopupeditMitarbeiterVertretungSearch.Text) && ComboBoxMitarbeiterVertretung.SelectedValue != null )
|
||||
{
|
||||
if (MVCheckBox.IsChecked != null && MVCheckBox.IsChecked.Value )
|
||||
if (MvCheckBox.IsChecked != null && MvCheckBox.IsChecked.Value )
|
||||
{
|
||||
isValid = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrEmpty(MVDatepicker_UhrzeitVon.Text) && !string.IsNullOrEmpty(MVDatepicker_UhrzeitBis.Text))
|
||||
if (!string.IsNullOrEmpty(MvDatepickerUhrzeitVon.Text) && !string.IsNullOrEmpty(MvDatepickerUhrzeitBis.Text))
|
||||
{
|
||||
string uVon;
|
||||
string uBis;
|
||||
|
||||
if (MVDatepicker_UhrzeitVon.Text.Length < 5)
|
||||
if (MvDatepickerUhrzeitVon.Text.Length < 5)
|
||||
{
|
||||
uVon = "0" + MVDatepicker_UhrzeitVon.Text;
|
||||
uVon = "0" + MvDatepickerUhrzeitVon.Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
uVon = MVDatepicker_UhrzeitVon.Text;
|
||||
uVon = MvDatepickerUhrzeitVon.Text;
|
||||
}
|
||||
|
||||
if (MVDatepicker_UhrzeitBis.Text.Length < 5)
|
||||
if (MvDatepickerUhrzeitBis.Text.Length < 5)
|
||||
{
|
||||
uBis = "0" + MVDatepicker_UhrzeitBis.Text;
|
||||
uBis = "0" + MvDatepickerUhrzeitBis.Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
uBis = MVDatepicker_UhrzeitBis.Text;
|
||||
uBis = MvDatepickerUhrzeitBis.Text;
|
||||
}
|
||||
|
||||
var von = DateTime.ParseExact(uVon, "HH:mm", CultureInfo.CurrentCulture);
|
||||
@@ -286,7 +280,7 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
|
||||
if (isValid)
|
||||
{
|
||||
popup_newMitarbeiterVertretung.IsOpen = false;
|
||||
PopupNewMitarbeiterVertretung.IsOpen = false;
|
||||
|
||||
SaveEmployeeAbsenceTime();
|
||||
|
||||
@@ -308,7 +302,7 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
//MVDatepickerVon.DateTime = DateTime.Now;
|
||||
//MVDatepickerBis.DateTime = DateTime.Now;
|
||||
popupedit_MitarbeiterVertretungSearch.Text = string.Empty;
|
||||
PopupeditMitarbeiterVertretungSearch.Text = string.Empty;
|
||||
|
||||
ComboBoxMitarbeiterVertretung.SelectedIndex = -1;
|
||||
MitarbeiterNotice.Text = string.Empty;
|
||||
@@ -321,37 +315,37 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
var absenceTime = new AbsenceTimeDC();
|
||||
|
||||
if(MVCheckBox.IsChecked != null && MVCheckBox.IsChecked.Value)
|
||||
if(MvCheckBox.IsChecked != null && MvCheckBox.IsChecked.Value)
|
||||
{
|
||||
absenceTime.Start = MVDatepickerVon.DateTime.Date;
|
||||
absenceTime.End = MVDatepickerBis.DateTime.Date;
|
||||
absenceTime.Start = MvDatepickerVon.DateTime.Date;
|
||||
absenceTime.End = MvDatepickerBis.DateTime.Date;
|
||||
}
|
||||
else
|
||||
{
|
||||
string xvon, yvon;
|
||||
|
||||
if (MVDatepicker_UhrzeitVon.Text.Length < 5){
|
||||
xvon = "0" + MVDatepicker_UhrzeitVon.Text;
|
||||
if (MvDatepickerUhrzeitVon.Text.Length < 5){
|
||||
xvon = "0" + MvDatepickerUhrzeitVon.Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
xvon = MVDatepicker_UhrzeitVon.Text;
|
||||
xvon = MvDatepickerUhrzeitVon.Text;
|
||||
}
|
||||
|
||||
if (MVDatepicker_UhrzeitBis.Text.Length < 5)
|
||||
if (MvDatepickerUhrzeitBis.Text.Length < 5)
|
||||
{
|
||||
yvon = "0" + MVDatepicker_UhrzeitBis.Text;
|
||||
yvon = "0" + MvDatepickerUhrzeitBis.Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
yvon = MVDatepicker_UhrzeitBis.Text;
|
||||
yvon = MvDatepickerUhrzeitBis.Text;
|
||||
}
|
||||
|
||||
var dateTimeStart = DateTime.ParseExact(xvon, "HH:mm", CultureInfo.CurrentCulture);
|
||||
var dateTimeEnd = DateTime.ParseExact(yvon, "HH:mm", CultureInfo.CurrentCulture);
|
||||
|
||||
absenceTime.Start = MVDatepickerVon.DateTime.MergeDatesByDate(dateTimeStart);
|
||||
absenceTime.End = MVDatepickerBis.DateTime.MergeDatesByDate(dateTimeEnd);
|
||||
absenceTime.Start = MvDatepickerVon.DateTime.MergeDatesByDate(dateTimeStart);
|
||||
absenceTime.End = MvDatepickerBis.DateTime.MergeDatesByDate(dateTimeEnd);
|
||||
}
|
||||
|
||||
absenceTime.Reason = ComboBoxMitarbeiterVertretung.SelectedValue as AbsenceReasonDC;
|
||||
@@ -372,8 +366,8 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
MVDatepickerVon.DateTime = DateTime.Now.Date;
|
||||
MVDatepickerBis.DateTime = DateTime.Now.Date;
|
||||
MvDatepickerVon.DateTime = DateTime.Now.Date;
|
||||
MvDatepickerBis.DateTime = DateTime.Now.Date;
|
||||
KrankMeldungMitarbeiterDatepicker.DateTime = DateTime.Now.Date;
|
||||
|
||||
Reload();
|
||||
@@ -934,8 +928,8 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
private void SetDefaultDatePicker(DateTime dt)
|
||||
{
|
||||
//MitarbeiterVertretung
|
||||
MVDatepickerVon.EditValue = dt;
|
||||
MVDatepickerBis.EditValue = dt;
|
||||
MvDatepickerVon.EditValue = dt;
|
||||
MvDatepickerBis.EditValue = dt;
|
||||
|
||||
//KlientenVertretung
|
||||
KVDatepickerVon.EditValue = dt;
|
||||
|
||||
@@ -1,24 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
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.SchulbegleitenderDienst.View
|
||||
namespace BeWo.SchulbegleitenderDienst.View
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for AbsenceTimeEditView.xaml
|
||||
/// </summary>
|
||||
public partial class AbsenceTimeEditView : UserControl
|
||||
public partial class AbsenceTimeEditView
|
||||
{
|
||||
public AbsenceTimeEditView()
|
||||
{
|
||||
|
||||
@@ -33,11 +33,11 @@ namespace BeWo.SchulbegleitenderDienst.ViewModel
|
||||
|
||||
_EndDate = _EndDate?.MergeDatesByDate(_EndDate.Value.Date);
|
||||
}
|
||||
else
|
||||
else if(_TagesansichtVM?.StartDate != null)
|
||||
{
|
||||
_StartDate = _StartDate.MergeDatesByDate(_TagesansichtVM.StartDate.Value);
|
||||
|
||||
_EndDate = _EndDate?.MergeDatesByDate(_TagesansichtVM.EndDate.Value);
|
||||
_EndDate = _TagesansichtVM?.EndDate != null ? _EndDate?.MergeDatesByDate(_TagesansichtVM.EndDate.Value) : null;
|
||||
}
|
||||
|
||||
RaisePropertiesChanged();
|
||||
@@ -108,6 +108,8 @@ namespace BeWo.SchulbegleitenderDienst.ViewModel
|
||||
IsAllDay = _StartDate.Hour == 0 && _StartDate.Minute == 0 && (_EndDate == null || _EndDate.Value.Hour == 0 && _EndDate.Value.Minute == 0);
|
||||
}
|
||||
|
||||
public AbsenceTimeEditViewModel() { }
|
||||
|
||||
public AbsenceTimeEditViewModel(DateTime startDate, DateTime? endDate, TagesansichtVM tagesansichtVM, Action<TagesansichtVM> saveChanges)
|
||||
{
|
||||
ValidateButtonCommand = new ButtonClickCommand(ValidateInput);
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BeWo.ServiceProxy;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using DevExpress.Xpf.Scheduler.ThemeKeys;
|
||||
|
||||
namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
internal class WochenVertretung
|
||||
{
|
||||
public List<WochenansichtVM> GetWochenAnsichtFromItems(DateTime time, List<TagesansichtVM> _items)
|
||||
public List<WochenansichtVM> GetWochenAnsichtFromItems(DateTime time, List<TagesansichtVM> items)
|
||||
{
|
||||
var _itemsWochen = new List<WochenansichtVM>();
|
||||
var itemsWochen = new List<WochenansichtVM>();
|
||||
|
||||
var startdt = time.FirstDateOfWeek(time.GetIso8601WeekOfYear());
|
||||
|
||||
var key2WochenAnsicht = new Dictionary<string, WochenansichtVM>();
|
||||
foreach (var item in _items)
|
||||
foreach (var item in items)
|
||||
{
|
||||
var key = $"{item.Absencetime.AbsenceTimeOid}_{item.Customer?.CustomerOid ?? 0}_{item.Employee?.EmployeeOid ?? 0}";
|
||||
|
||||
@@ -27,11 +27,11 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
wochenansicht = new WochenansichtVM
|
||||
{
|
||||
VertretungsWoche = new Dictionary<string, Dictionary<DateTime, TagesansichtVM>>(),
|
||||
VertretungsWoche = new Dictionary<string, Dictionary<DateTime, TagesansichtVM>>(),
|
||||
KlientvertretungsWoche = new Dictionary<string, Dictionary<DateTime, TagesansichtVM>>(),
|
||||
WochenBeschreibung = item.WochenansichtBemerkung,
|
||||
Customer = item.Customer,
|
||||
Employee = item.Employee
|
||||
WochenBeschreibung = item.WochenansichtBemerkung,
|
||||
Customer = item.Customer,
|
||||
Employee = item.Employee
|
||||
};
|
||||
|
||||
if (string.IsNullOrEmpty(wochenansicht.Dringlichkeit))
|
||||
@@ -40,15 +40,15 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
wochenansicht.DringlichkeitColor = item.DringlichkeitColor;
|
||||
}
|
||||
|
||||
wochenansicht.Teamleitung = item.Teamleitung;
|
||||
wochenansicht.Geschlecht = item.Geschlecht;
|
||||
wochenansicht.Pflege = item.Pflege;
|
||||
wochenansicht.Teamleitung = item.Teamleitung;
|
||||
wochenansicht.Geschlecht = item.Geschlecht;
|
||||
wochenansicht.Pflege = item.Pflege;
|
||||
wochenansicht.Toilettengang = item.Toilettengang;
|
||||
wochenansicht.Aggressiv = item.Aggressiv;
|
||||
wochenansicht.Aggressiv = item.Aggressiv;
|
||||
|
||||
key2WochenAnsicht.Add(key, wochenansicht);
|
||||
|
||||
_itemsWochen.Add(wochenansicht);
|
||||
itemsWochen.Add(wochenansicht);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -80,9 +80,16 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
//Samstag | 5
|
||||
WochentagVerarbeitung(samstagDt, item, wochenansicht);
|
||||
|
||||
wochenansicht.WeekDayDictionary.Clear();
|
||||
wochenansicht.WeekDayDictionary.AddIfNotIn(new KeyValuePair<DayOfWeek, TagesansichtVM>(DayOfWeek.Monday, wochenansicht.ItemMo));
|
||||
wochenansicht.WeekDayDictionary.AddIfNotIn(new KeyValuePair<DayOfWeek, TagesansichtVM>(DayOfWeek.Tuesday, wochenansicht.ItemDi));
|
||||
wochenansicht.WeekDayDictionary.AddIfNotIn(new KeyValuePair<DayOfWeek, TagesansichtVM>(DayOfWeek.Wednesday, wochenansicht.ItemMi));
|
||||
wochenansicht.WeekDayDictionary.AddIfNotIn(new KeyValuePair<DayOfWeek, TagesansichtVM>(DayOfWeek.Thursday, wochenansicht.ItemDo));
|
||||
wochenansicht.WeekDayDictionary.AddIfNotIn(new KeyValuePair<DayOfWeek, TagesansichtVM>(DayOfWeek.Friday, wochenansicht.ItemFr));
|
||||
wochenansicht.WeekDayDictionary.AddIfNotIn(new KeyValuePair<DayOfWeek, TagesansichtVM>(DayOfWeek.Saturday, wochenansicht.ItemSa));
|
||||
}
|
||||
|
||||
return _itemsWochen;
|
||||
return itemsWochen;
|
||||
}
|
||||
|
||||
private static void WochentagVerarbeitung(DateTime wochentagDt, TagesansichtVM item, WochenansichtVM wwk)
|
||||
@@ -113,22 +120,6 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
}
|
||||
}
|
||||
|
||||
private string AddWeekView(DateTime dayOfWeekDateTime, Dictionary<AppointmentDayOfWeek, string> wochentagsarbeitszeit)
|
||||
{
|
||||
if (wochentagsarbeitszeit != null && wochentagsarbeitszeit.Count != 0)
|
||||
{
|
||||
foreach (var wa in wochentagsarbeitszeit)
|
||||
{
|
||||
if ((int)wa.Key + 1 == (int)dayOfWeekDateTime.DayOfWeek)
|
||||
{
|
||||
return wa.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
public void AddeNeueVertretungforWochenAnsicht(WochenansichtVM wochenVm, string tag)
|
||||
{
|
||||
TagesansichtVM tagesVm = null;
|
||||
|
||||
@@ -13,6 +13,8 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
public TagesansichtVM ItemFr { get; set; }
|
||||
public TagesansichtVM ItemSa { get; set; }
|
||||
|
||||
public Dictionary<DayOfWeek, TagesansichtVM> WeekDayDictionary { get; set; } = new Dictionary<DayOfWeek, TagesansichtVM>();
|
||||
|
||||
public string WochenBeschreibung { get; set; }
|
||||
|
||||
public Dictionary<string, Dictionary<DateTime, TagesansichtVM>> VertretungsWoche { get; set; }
|
||||
|
||||
120
BeWo/View/Detail/AbsenceTimesView.xaml
Normal file
120
BeWo/View/Detail/AbsenceTimesView.xaml
Normal file
@@ -0,0 +1,120 @@
|
||||
<UserControl x:Class="BeWo.View.Detail.AbsenceTimesView"
|
||||
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:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:validation="clr-namespace:BeWo.Validation"
|
||||
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
mc:Ignorable="d"
|
||||
x:Name="AbsenceTimeViewUserControl"
|
||||
d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignData Type=AbsenceTimesView}">
|
||||
<UserControl.Resources>
|
||||
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<GroupBox Grid.Row="1" Grid.Column="0" x:Name="GroupBoxNewAbsenceTime" Grid.ColumnSpan="2" Header="Abwesenheit hinzufügen" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="0" Grid.Row="0">Startdatum</Label>
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="{Binding AbsenceTimes.NewVM.DateEditColumnSpan, UpdateSourceTrigger=PropertyChanged}" Height="23" Margin="3" EditValue="{Binding Path=AbsenceTimes.NewVM.Start, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" AllowNullInput="False" />
|
||||
|
||||
<dxe:TextEdit Grid.Column="2" Grid.Row="0" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="StartTimeTextEdit"
|
||||
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor"
|
||||
Height="23" Visibility="{Binding Path=AbsenceTimes.NewVM.IsAllDay, Converter={StaticResource BoolVisibilityHiddenConverter}, ConverterParameter=false, UpdateSourceTrigger=PropertyChanged}" ValidateOnEnterKeyPressed="True" ValidateOnTextInput="True"
|
||||
Margin="3" EditValue="{Binding Path=AbsenceTimes.NewVM.StartTime, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" ToolTipService.Placement="Mouse" />
|
||||
|
||||
<Label Grid.Column="3" Grid.Row="0">Enddatum</Label>
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="4" Grid.Row="0" Height="23" Margin="3" Grid.ColumnSpan="{Binding AbsenceTimes.NewVM.DateEditColumnSpan, UpdateSourceTrigger=PropertyChanged}" EditValue="{Binding Path=AbsenceTimes.NewVM.End, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" AllowNullInput="True" />
|
||||
|
||||
<dxe:TextEdit Grid.Column="5" Grid.Row="0" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="EndTimeTextEdit"
|
||||
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor"
|
||||
Height="23" Visibility="{Binding Path=AbsenceTimes.NewVM.IsAllDay, Converter={StaticResource BoolVisibilityHiddenConverter}, ConverterParameter=false, UpdateSourceTrigger=PropertyChanged}" ValidateOnEnterKeyPressed="True" ValidateOnTextInput="True"
|
||||
Margin="3" EditValue="{Binding Path=AbsenceTimes.NewVM.EndTime, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" ToolTipService.Placement="Mouse" />
|
||||
|
||||
<CheckBox Grid.Row="0" Grid.Column="6" Margin="3" VerticalContentAlignment="Center" Foreground="Black" IsChecked="{Binding Path=AbsenceTimes.NewVM.IsAllDay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center">Ganztägig</CheckBox>
|
||||
|
||||
<Label Grid.Column="0" Grid.Row="1">Kategorie</Label>
|
||||
<controls:NullItemComboBox Name="ComboBoxReasons" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="1" Height="23" Margin="3" ItemsSource="{Binding Path=AbsenceTimes.PossibleReasons}" SelectedItem="{validation:ValidationBinding Path=AbsenceTimes.NewVM.Reason}">
|
||||
<ComboBox.ItemContainerStyle>
|
||||
<Style>
|
||||
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch" />
|
||||
</Style>
|
||||
</ComboBox.ItemContainerStyle>
|
||||
</controls:NullItemComboBox>
|
||||
|
||||
<Label Grid.Column="3" Grid.Row="1">Erläuterung</Label>
|
||||
<TextBox Grid.Column="4" Grid.ColumnSpan="3" Grid.Row="1" Height="23" Margin="3" Text="{Binding Path=AbsenceTimes.NewVM.Notice, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<Button Grid.Row="2" Grid.ColumnSpan="7" Grid.Column="0" Command="{Binding AddAbsenceTimesCommand}" HorizontalAlignment="Right" Margin="1,10,0,3" Style="{DynamicResource {x:Type Button}}" Content="Abwesenheit hinzufügen" />
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<GroupBox x:Name="GroupBoxAbsenceTimes" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Header="Erfasste Abwesenheiten" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<dxg:GridControl VerticalAlignment="Stretch" Grid.Column="0" Grid.Row="1" ItemsSource="{Binding Path=AbsenceTimes.VMList}" HorizontalAlignment="Stretch" x:Name="DataGridAbsenceTimes">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="Notice" Header="" FixedWidth="True" Width="24" ReadOnly="True">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<Button Content="r" Command="{Binding RemoveAbsenceTimeCommand, ElementName=AbsenceTimeViewUserControl}" FontFamily="Webdings" Width="18" Height="18" VerticalAlignment="Center" />
|
||||
</DataTemplate>
|
||||
</dxg:GridColumn.CellTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Start" Header="Startdatum" AllowBestFit="True" SortOrder="Ascending">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:DateEditSettings DisplayFormat="d" AllowNullInput="False" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="StartTime" Header="Startzeit" AllowBestFit="True" BestFitMode="Smart">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MaskShowPlaceHolders="True" MaskUseAsDisplayFormat="True" ValidateOnEnterKeyPressed="True" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="End" Header="Enddatum" AllowBestFit="True">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:DateSettings AllowNullInput="True" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="EndTime" Header="Endzeit" AllowBestFit="True" BestFitMode="Smart">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MaskShowPlaceHolders="True" MaskUseAsDisplayFormat="True" ValidateOnEnterKeyPressed="True" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Reason" Header="Kategorie" AllowBestFit="True" />
|
||||
<dxg:GridColumn FieldName="Notice" Header="Erläuterung" AllowBestFit="True" />
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" AllowBestFit="True" BestFitMode="Smart" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
44
BeWo/View/Detail/AbsenceTimesView.xaml.cs
Normal file
44
BeWo/View/Detail/AbsenceTimesView.xaml.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System.Windows;
|
||||
using BeWo.Core;
|
||||
using BeWo.Core.Commands;
|
||||
using BeWo.ViewModel;
|
||||
using BeWo.ViewModel.ListViewModel;
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
namespace BeWo.View.Detail
|
||||
{
|
||||
public partial class AbsenceTimesView
|
||||
{
|
||||
public static readonly DependencyProperty AbsenceTimesDependency = DependencyProperty.Register("AbsenceTimes", typeof(AbsenceTimeListVM), typeof(AbsenceTimesView), new PropertyMetadata(null));
|
||||
|
||||
public ButtonClickCommand AddAbsenceTimesCommand { get; set; }
|
||||
public ButtonClickCommand RemoveAbsenceTimeCommand { get; set; }
|
||||
|
||||
public AbsenceTimeListVM AbsenceTimes
|
||||
{
|
||||
get => (AbsenceTimeListVM) GetValue(AbsenceTimesDependency);
|
||||
set => SetValue(AbsenceTimesDependency, value);
|
||||
}
|
||||
|
||||
public AbsenceTimesView()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
DataContext = this;
|
||||
|
||||
AddAbsenceTimesCommand = new ButtonClickCommand(AddAbsenceTimes);
|
||||
RemoveAbsenceTimeCommand = new ButtonClickCommand(RemoveAbsenceTime);
|
||||
}
|
||||
|
||||
private void AddAbsenceTimes()
|
||||
{
|
||||
AbsenceTimes?.AddNewVMToList();
|
||||
}
|
||||
|
||||
private void RemoveAbsenceTime()
|
||||
{
|
||||
AbsenceTimes?.VMList.Remove(DataGridAbsenceTimes.GetCurrentValue<AbsenceTimeVM>());
|
||||
BeWoWpfUtils.RefreshDXGrid(DataGridAbsenceTimes);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,11 +14,11 @@
|
||||
xmlns:controls="clr-namespace:BeWo.View.Controls"
|
||||
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
|
||||
x:Name="CustomerBeWoView"
|
||||
VerticalAlignment="Stretch" Focusable="True" GotFocus="UserControl_GotFocus">
|
||||
<localView:BeWoView.Resources>
|
||||
<converter:BoolNullCheckConverter x:Key="BoolNullCheckConverter" />
|
||||
<converter:BoolReverseConverter x:Key="BoolReverseConverter" />
|
||||
<detail:MVListConverter x:Key="MVListConverter" />
|
||||
</localView:BeWoView.Resources>
|
||||
<localView:BeWoView.Triggers>
|
||||
<EventTrigger RoutedEvent="FrameworkElement.Loaded" />
|
||||
@@ -205,29 +205,6 @@
|
||||
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" RowDoubleClick="TableView_OnRowDoubleClick" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
<dxg:GridControl VerticalAlignment="Stretch" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="7" ItemsSource="{Binding Path=AbsenceTimes.VMList}" HorizontalAlignment="Stretch" x:Key="datagrid_absences">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="Notice" Header="" FixedWidth="True" Width="24" ReadOnly="True">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<Button Content="r" Click="button_removeAbsence_Click" FontFamily="Webdings" Width="18" Height="18" VerticalAlignment="Center" />
|
||||
</DataTemplate>
|
||||
</dxg:GridColumn.CellTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Start" Header="von" Width="150" EditSettings="{dxe:DateSettings DisplayFormat=d}" SortOrder="Ascending" />
|
||||
<dxg:GridColumn FieldName="End" Header="bis" Width="150">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:DateSettings AllowNullInput="True" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn x:Name="gridcolumn_absencereason" FieldName="Reason" Header="Kategorie" Width="150" />
|
||||
<dxg:GridColumn FieldName="Notice" Header="Erläuterung" Width="250" />
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
|
||||
<dxg:GridControl VerticalAlignment="Stretch" ItemsSource="{Binding Path=EnvironmentPersons.VMList}" HorizontalAlignment="Stretch" x:Key="grid_PersonRelations">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="Notice" Header="" FixedWidth="True" Width="24" ReadOnly="True">
|
||||
@@ -1115,77 +1092,9 @@
|
||||
</Grid>
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
<TabItem Header="Abwesenheiten" Selector.Selected="TabItemAbsenceTimes_Selected">
|
||||
<Grid x:Name="grid_absenceTimes">
|
||||
<Grid.Resources>
|
||||
<DataTemplate x:Key="DropDownItemTemplate">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="combo1" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="combo2" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="combo3" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="{Binding Path=Description}" />
|
||||
<Label VerticalAlignment="Center" Content="max. abrechenbar:" Grid.Column="1" IsEnabled="False" Padding="0" />
|
||||
<Label VerticalAlignment="Center" HorizontalAlignment="Right" Grid.Column="2" IsEnabled="False" Margin="3 0" Content="{Binding Path=Hours}" Padding="0" />
|
||||
<Label VerticalAlignment="Center" Grid.Column="3" IsEnabled="False" Margin="0" Content="h" Padding="0" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="SelectedItemTemplate">
|
||||
<Label Content="{Binding Path=Description}" Margin="3 0" Padding="0" />
|
||||
</DataTemplate>
|
||||
</Grid.Resources>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<GroupBox Grid.Row="1" Grid.Column="0" x:Name="groupbox_newAbsenceTime" Grid.ColumnSpan="2"
|
||||
Header="Abwesenheit hinzufügen" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="0" Grid.Row="0">Startdatum</Label>
|
||||
<Label Grid.Column="2" Grid.Row="0">Enddatum</Label>
|
||||
<Label Grid.Column="0" Grid.Row="1">Kategorie</Label>
|
||||
<Label Grid.Column="2" Grid.Row="1">Erläuterung</Label>
|
||||
<Button Grid.Row="2" Grid.ColumnSpan="4" Grid.Column="0" HorizontalAlignment="Right" Margin="1,10,0,3"
|
||||
Click="button_addAbsence_Click" Style="{DynamicResource {x:Type Button}}" Content="Abwesenheit hinzufügen" />
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="0" Height="23" Margin="3"
|
||||
EditValue="{val:ValidationBinding Path=AbsenceTimes.NewVM.Start, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="3" Grid.Row="0" Height="23" Margin="3"
|
||||
EditValue="{val:ValidationBinding Path=AbsenceTimes.NewVM.End, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
|
||||
<uc:NullItemComboBox Name="combox_reasons" Grid.Column="1" Grid.Row="1" Height="23" Margin="3"
|
||||
ItemsSource="{Binding Path=AbsenceTimes.PossibleReasons}"
|
||||
SelectedItem="{val:ValidationBinding Path=AbsenceTimes.NewVM.Reason}">
|
||||
<ComboBox.ItemContainerStyle>
|
||||
<Style>
|
||||
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch" />
|
||||
</Style>
|
||||
</ComboBox.ItemContainerStyle>
|
||||
</uc:NullItemComboBox>
|
||||
<TextBox Grid.Column="3" Grid.Row="1" Height="23" Margin="3" Text="{Binding Path=AbsenceTimes.NewVM.Notice, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<GroupBox x:Name="GroupBoxAbsenceTimes" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Header="Erfasste Abwesenheiten" Style="{StaticResource ObjectEditGroupBox}" />
|
||||
<TabItem Header="Abwesenheiten">
|
||||
<Grid>
|
||||
<detail:AbsenceTimesView x:Name="AbsenceTimesView" AbsenceTimes="{Binding ViewModel.AbsenceTimes, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, ElementName=CustomerBeWoView}" />
|
||||
</Grid>
|
||||
</TabItem>
|
||||
<TabItem Header="Umfeld" Selector.Selected="TabItemPersons_Selected">
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.ServiceModel;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
@@ -32,6 +33,7 @@ using DevExpress.Xpf.Grid;
|
||||
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Threading;
|
||||
using BeWo.Annotations;
|
||||
using BeWo.ownChat;
|
||||
using BeWo.SchulbegleitenderDienst;
|
||||
using BS.Shared.Translation;
|
||||
@@ -51,7 +53,7 @@ using VerticalAlignment = System.Windows.VerticalAlignment;
|
||||
|
||||
namespace BeWo.View.Detail
|
||||
{
|
||||
public partial class CustomerView
|
||||
public partial class CustomerView : INotifyPropertyChanged
|
||||
{
|
||||
private Dictionary<int, SystemEntryID> _AssessmentSheetCategory2SystemEntryID;
|
||||
private BindingList<KeyValuePair<string, string>> _ChosenDiagnosis;
|
||||
@@ -94,7 +96,9 @@ namespace BeWo.View.Detail
|
||||
public CustomerView(CustomerVM pCustomerVM)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
|
||||
DataContext = ViewModel;
|
||||
|
||||
BehinderungsartenSelection.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => this.Dispatch(() => { PopupBehinderungsarten.IsOpen = false; })));
|
||||
MerkzeichenSelection.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => this.Dispatch(() => { PopupMerkzeichen.IsOpen = false; })));
|
||||
_AlleEintragKategorien = pCustomerVM.EintragKategorien;
|
||||
@@ -260,7 +264,7 @@ namespace BeWo.View.Detail
|
||||
get { return grid_details; }
|
||||
}
|
||||
|
||||
internal CustomerVM ViewModel
|
||||
public CustomerVM ViewModel
|
||||
{
|
||||
get => _ViewModel;
|
||||
|
||||
@@ -296,6 +300,8 @@ namespace BeWo.View.Detail
|
||||
}
|
||||
|
||||
_saveInProgress = false;
|
||||
|
||||
OnPropertyChanged(nameof(ViewModel));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -536,26 +542,6 @@ namespace BeWo.View.Detail
|
||||
ReloadViewModel(ViewModel.DataContract.CustomerOid.Value);
|
||||
}
|
||||
|
||||
private void TabItemAbsenceTimes_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (grid_AbsenceTimes != null) return;
|
||||
|
||||
grid_AbsenceTimes = root.Resources["datagrid_absences"] as GridControl;
|
||||
|
||||
GroupBoxAbsenceTimes.Content = grid_AbsenceTimes;
|
||||
|
||||
if (ViewModel.AbsenceTimes != null && grid_AbsenceTimes != null)
|
||||
{
|
||||
grid_AbsenceTimes.Columns["Reason"].EditSettings = new ComboBoxEditSettings { ItemsSource = ViewModel.AbsenceTimes.PossibleReasons };
|
||||
}
|
||||
}
|
||||
|
||||
// private void ComboBox_Loaded(object sender, RoutedEventArgs e)
|
||||
// {
|
||||
// ((ComboBox)sender).ItemTemplateSelector = new ComboBoxTemplateSelector((ComboBox)sender);
|
||||
// ((ComboBox)sender).ItemsSource = ViewModel.AbsenceTimes.PossibleReasons;
|
||||
// }
|
||||
|
||||
private void TabItemCostBearer_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (grid_costBearers == null)
|
||||
@@ -696,14 +682,6 @@ namespace BeWo.View.Detail
|
||||
}));
|
||||
}
|
||||
|
||||
private void button_addAbsence_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ValidationTrigger.Validate(groupbox_newAbsenceTime))
|
||||
{
|
||||
ViewModel.AbsenceTimes.AddNewVMToList();
|
||||
}
|
||||
}
|
||||
|
||||
private void button_addCostBearer_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ValidationTrigger.Validate(groupBox_newCostBearer))
|
||||
@@ -830,10 +808,9 @@ namespace BeWo.View.Detail
|
||||
|
||||
private void button_deletePlacement_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var btn = (Button)sender;
|
||||
var btn = (Button) sender;
|
||||
|
||||
var vm = btn.DataContext as PlacementVM;
|
||||
if (vm != null)
|
||||
if (btn.DataContext is PlacementVM vm)
|
||||
{
|
||||
ViewModel.PlacementList.VMList.Remove(vm);
|
||||
}
|
||||
@@ -857,14 +834,6 @@ namespace BeWo.View.Detail
|
||||
BeWoWpfUtils.RefreshDXGrid(grid_Familys);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void button_removeAbsence_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ViewModel.AbsenceTimes.VMList.Remove(grid_AbsenceTimes.GetCurrentValue<AbsenceTimeVM>());
|
||||
BeWoWpfUtils.RefreshDXGrid(grid_AbsenceTimes);
|
||||
}
|
||||
|
||||
private void button_removeDiagnosis_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var item = _ChosenDiagnosis.First(i => i.Key.Equals(((Control)sender).Tag));
|
||||
@@ -1862,6 +1831,14 @@ namespace BeWo.View.Detail
|
||||
{
|
||||
BeWoUtils.ShowImageForm(Img.Source);
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
[NotifyPropertyChangedInvocator]
|
||||
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
|
||||
public class MVListConverter : IValueConverter
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
|
||||
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||
xmlns:security="clr-namespace:BeWo.Security"
|
||||
xmlns:detail="clr-namespace:BeWo.View.Detail"
|
||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
|
||||
x:Name="EmployeeBeWoView"
|
||||
VerticalAlignment="Stretch" Focusable="True" GotFocus="UserControl_GotFocus">
|
||||
<Grid x:Name="rootGrid">
|
||||
<Grid.Resources>
|
||||
@@ -36,7 +38,8 @@
|
||||
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" RowDoubleClick="TableView_OnRowDoubleClick" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
<dxg:GridControl VerticalAlignment="Stretch" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="7" DataSource="{Binding Path=AbsenceTimes.VMList}" HorizontalAlignment="Stretch" x:Key="datagrid_absences">
|
||||
<!-- TODO: Entfernen! -->
|
||||
<!--<dxg:GridControl VerticalAlignment="Stretch" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="7" DataSource="{Binding Path=AbsenceTimes.VMList}" HorizontalAlignment="Stretch" x:Key="datagrid_absences">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="Notice" Header="" FixedWidth="True" Width="24" ReadOnly="True">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
@@ -53,7 +56,7 @@
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
</dxg:GridControl>-->
|
||||
<dxg:GridControl VerticalAlignment="Stretch" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="7" DataSource="{Binding Path=Overtimes.VMList}" HorizontalAlignment="Stretch" x:Key="datagrid_overtimes" >
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="Notice" Header="" FixedWidth="True" Width="24" ReadOnly="True">
|
||||
@@ -322,7 +325,6 @@
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
<TabItem Header="{markup:Translate EmployeeNotizen}" Name="tabitem_notizen" Selector.Selected="tabitem_notizen_Selected" />
|
||||
|
||||
<TabItem Header="Verträge" Name="tabitem_contract">
|
||||
<GroupBox x:Name="groupBox_newContract" Grid.Row="0"
|
||||
Style="{DynamicResource ObjectEditGroupBox}">
|
||||
@@ -467,12 +469,8 @@
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</TabItem>
|
||||
|
||||
<TabItem Header="Arbeitszeiten" Name="tabitem_arbeitszeit" Selector.Selected="tabitem_arbeitszeit_Selected" />
|
||||
|
||||
<TabItem Header="Schulbegleitender Dienst" Name="tabitem_schuldienst" Selector.Selected="tabitem_SchulDienst_Selected" />
|
||||
|
||||
|
||||
<TabItem Header="Finanzen">
|
||||
<GroupBox Header="Finanzen" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
@@ -504,7 +502,6 @@
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</TabItem>
|
||||
|
||||
<TabItem Header="Qualifikationen">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
@@ -592,79 +589,8 @@
|
||||
<GroupBox x:Name="GroupBoxCustomers" Header="{markup:Translate Diesem Mitarbeiter zugeordnete Klienten}" Grid.Row="1" Style="{StaticResource ObjectEditGroupBox}" Margin="0 20 0 0"></GroupBox>
|
||||
</Grid>
|
||||
</TabItem>
|
||||
<TabItem Header="Abwesenheiten" Selector.Selected="TabItemAbsenceTimes_Selected">
|
||||
<Grid x:Name="grid_absenceTimes">
|
||||
<Grid.Resources>
|
||||
<DataTemplate x:Key="DropDownItemTemplate">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="combo1" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="combo2" />
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="combo3" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="{Binding Path=Description}" />
|
||||
<Label VerticalAlignment="Center" Content="max. abrechenbar:" Grid.Column="1" IsEnabled="False" Padding="0" />
|
||||
<Label VerticalAlignment="Center" HorizontalAlignment="Right" Grid.Column="2" IsEnabled="False" Margin="3 0" Content="{Binding Path=Hours}" Padding="0" />
|
||||
<Label VerticalAlignment="Center" Grid.Column="3" IsEnabled="False" Margin="0" Content="h" Padding="0" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="SelectedItemTemplate">
|
||||
<Label Content="{Binding Path=Description}" Margin="3 0" Padding="0" />
|
||||
</DataTemplate>
|
||||
|
||||
</Grid.Resources>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<GroupBox Grid.Column="0" x:Name="groupbox_newAbsenceTime" Grid.Row="1" Grid.ColumnSpan="2" Header="Abwesenheit hinzufügen" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid Grid.IsSharedSizeScope="True">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="0" Grid.Row="0">Startdatum</Label>
|
||||
<Label Grid.Column="2" Grid.Row="0">Enddatum</Label>
|
||||
<Label Grid.Column="0" Grid.Row="1">Kategorie</Label>
|
||||
<Label Grid.Column="2" Grid.Row="1">Erläuterung</Label>
|
||||
<Button Grid.Row="2" Grid.ColumnSpan="4" HorizontalAlignment="Right" Margin="1,10,0,3" Name="button_addAbsence" Click="button_addAbsence_Click" Style="{DynamicResource {x:Type Button}}">
|
||||
Abwesenheit hinzufügen
|
||||
</Button>
|
||||
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="0" Height="23" Margin="3" EditValue="{val:ValidationBinding Path=AbsenceTimes.NewVM.Start, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="3" Grid.Row="0" Height="23" Margin="3" EditValue="{val:ValidationBinding Path=AbsenceTimes.NewVM.End, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
|
||||
|
||||
<uc:NullItemComboBox Name="combox_reasons" Grid.Column="1" Grid.Row="1" Height="23" Margin="3" ItemsSource="{Binding Path=AbsenceTimes.PossibleReasons}" SelectedItem="{val:ValidationBinding Path=AbsenceTimes.NewVM.Reason}">
|
||||
<ComboBox.ItemContainerStyle>
|
||||
<Style>
|
||||
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch" />
|
||||
</Style>
|
||||
</ComboBox.ItemContainerStyle>
|
||||
</uc:NullItemComboBox>
|
||||
<TextBox Grid.Column="3" Grid.Row="1" Height="23" Margin="3" Text="{Binding Path=AbsenceTimes.NewVM.Notice, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox x:Name="GroupBoxAbsenceTimes" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Header="Erfasste Abwesenheiten" Style="{StaticResource ObjectEditGroupBox}"></GroupBox>
|
||||
</Grid>
|
||||
<TabItem Header="Abwesenheiten">
|
||||
<detail:AbsenceTimesView AbsenceTimes="{Binding ViewModel.AbsenceTimes, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, ElementName=EmployeeBeWoView}" />
|
||||
</TabItem>
|
||||
<TabItem Header="Überstunden" Selector.Selected="TabItemOvertimes_Selected" x:Name="OvertimeTabItem">
|
||||
<Grid x:Name="grid_overTimes">
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.ServiceModel;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
||||
using BeWo.Annotations;
|
||||
using BeWo.Core;
|
||||
using BeWo.Core.Service;
|
||||
using BeWo.ownChat;
|
||||
@@ -26,23 +27,22 @@ using DevExpress.Xpf.Editors.Settings;
|
||||
using DevExpress.Xpf.Grid;
|
||||
using Button = System.Windows.Controls.Button;
|
||||
using MessageBox = System.Windows.MessageBox;
|
||||
using Point = System.Windows.Point;
|
||||
|
||||
namespace BeWo.View.Detail
|
||||
{
|
||||
public partial class EmployeeView
|
||||
public partial class EmployeeView : INotifyPropertyChanged
|
||||
{
|
||||
private EmployeeVM _ViewModel;
|
||||
|
||||
private GridControl grid_AbsenceTimes;
|
||||
private GridControl grid_Overtimes;
|
||||
private GridControl grid_Customers;
|
||||
private GridControl _GridAbsenceTimes;
|
||||
private GridControl _GridOvertimes;
|
||||
private GridControl _GridCustomers;
|
||||
|
||||
private bool DoOwnChatSync;
|
||||
private bool _DoOwnChatSync;
|
||||
|
||||
private bool initTabIndex;
|
||||
private bool _InitTabIndex;
|
||||
|
||||
private ObservableSortCollection<ValueListEntryDC> _EintragKategorien;
|
||||
private readonly ObservableSortCollection<ValueListEntryDC> _EintragKategorien;
|
||||
|
||||
public EmployeeView(EmployeeVM pEmployeeDC)
|
||||
{
|
||||
@@ -50,8 +50,8 @@ namespace BeWo.View.Detail
|
||||
combobox_brush.ItemTemplateSelector = new ComboBoxTemplateSelector(combobox_brush);
|
||||
ViewModel = pEmployeeDC;
|
||||
|
||||
bool noticeVisible = false;
|
||||
bool extendedPropsVisible = false;
|
||||
var noticeVisible = false;
|
||||
var extendedPropsVisible = false;
|
||||
|
||||
if (BeWoApp.Mandator.BeWoClientType == 3)
|
||||
{
|
||||
@@ -62,13 +62,20 @@ namespace BeWo.View.Detail
|
||||
{
|
||||
//Betreuwo
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.Employee_AllowEditExtendedProperties))
|
||||
noticeVisible = true;
|
||||
{
|
||||
noticeVisible = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!noticeVisible)
|
||||
noticeGroup.Visibility = Visibility.Collapsed;
|
||||
{
|
||||
noticeGroup.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
if (!extendedPropsVisible)
|
||||
extendedPropertyGroup.Visibility = Visibility.Collapsed;
|
||||
{
|
||||
extendedPropertyGroup.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ChatSettings) || !BeWoApp.AppSettings.IsChatAllowed)
|
||||
{
|
||||
@@ -77,16 +84,13 @@ namespace BeWo.View.Detail
|
||||
|
||||
|
||||
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Employee_AllowEditContracts))
|
||||
tabitem_contract.Visibility = Visibility.Collapsed;
|
||||
{
|
||||
tabitem_contract.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.OvertimeView))
|
||||
{
|
||||
OvertimeTabItem.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
OvertimeTabItem.Visibility = Visibility.Collapsed;
|
||||
OvertimeTabItem.Visibility = BeWoApp.LoggedOnUser.HasRight(UserRightType.OvertimeView) ? Visibility.Visible : Visibility.Collapsed;
|
||||
|
||||
if ((BeWoApp.Mandator != null && BeWoApp.Mandator.AllowSbd) || BeWoApp.AppSettings.ShowArbeitszeiten)
|
||||
if (BeWoApp.Mandator != null && BeWoApp.Mandator.AllowSbd || BeWoApp.AppSettings.ShowArbeitszeiten)
|
||||
{
|
||||
tabitem_arbeitszeit.Visibility = Visibility.Visible;
|
||||
}
|
||||
@@ -94,6 +98,7 @@ namespace BeWo.View.Detail
|
||||
{
|
||||
tabitem_arbeitszeit.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
if (pEmployeeDC.VarFields == null || pEmployeeDC.VarFields.VMList.Count == 0)
|
||||
{
|
||||
tabitem_varFields.Visibility = Visibility.Collapsed;
|
||||
@@ -116,13 +121,13 @@ namespace BeWo.View.Detail
|
||||
// by setting the focus to another element.
|
||||
MouseMove += (s, e) =>
|
||||
{
|
||||
if ((grid_AbsenceTimes == null || !grid_AbsenceTimes.IsVisible) &&
|
||||
(grid_Customers == null || !grid_Customers.IsVisible) && (grid_Overtimes == null || !grid_Overtimes.IsVisible))
|
||||
if ((_GridAbsenceTimes == null || !_GridAbsenceTimes.IsVisible) &&
|
||||
(_GridCustomers == null || !_GridCustomers.IsVisible) && (_GridOvertimes == null || !_GridOvertimes.IsVisible))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Point p = e.GetPosition(BtnSave);
|
||||
var p = e.GetPosition(BtnSave);
|
||||
|
||||
if (p.X >= 0 && p.X < BtnSave.ActualWidth && p.Y >= 0 && p.Y < BtnSave.ActualHeight)
|
||||
{
|
||||
@@ -143,7 +148,7 @@ namespace BeWo.View.Detail
|
||||
|
||||
tabitem_documents.Visibility = Visibility.Collapsed;
|
||||
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsAllowViewAll) || (BeWoApp.LoggedOnUser.HasRight(UserRightType.DokumenteMitarbeiter) && BeWoApp.LoggedOnEmployee.EmployeeOid == pEmployeeDC.DataContract.EmployeeOid))
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsAllowViewAll) || BeWoApp.LoggedOnUser.HasRight(UserRightType.DokumenteMitarbeiter) && BeWoApp.LoggedOnEmployee.EmployeeOid == pEmployeeDC.DataContract.EmployeeOid)
|
||||
{
|
||||
tabitem_documents.Visibility = Visibility.Visible;
|
||||
}
|
||||
@@ -165,86 +170,79 @@ namespace BeWo.View.Detail
|
||||
Img.EditValueChanged += Image_EditValueChanged;
|
||||
|
||||
_EintragKategorien = pEmployeeDC.EintragKategorien;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void Image_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
|
||||
{
|
||||
_ViewModel.EmployeeImage = Img.EditValue as byte[];
|
||||
}
|
||||
|
||||
public override bool IsDirty
|
||||
{
|
||||
get { return ViewModel != null && ViewModel.IsDirty; }
|
||||
}
|
||||
public override bool IsDirty => ViewModel != null && ViewModel.IsDirty;
|
||||
|
||||
public override string Title
|
||||
{
|
||||
get { return "Mitarbeiter"; }
|
||||
}
|
||||
public override string Title => "Mitarbeiter";
|
||||
|
||||
internal override DependencyObject ValidationOnSaveRootElement
|
||||
{
|
||||
get { return grid_details; }
|
||||
}
|
||||
internal override DependencyObject ValidationOnSaveRootElement => grid_details;
|
||||
|
||||
internal EmployeeVM ViewModel
|
||||
public EmployeeVM ViewModel
|
||||
{
|
||||
get { return _ViewModel; }
|
||||
get => _ViewModel;
|
||||
|
||||
set
|
||||
set
|
||||
{
|
||||
_ViewModel = value;
|
||||
DataContext = value;
|
||||
|
||||
OnPropertyChanged(nameof(ViewModel));
|
||||
|
||||
if (tabcontrol_contracts.Items.Count == 0 && _ViewModel.Contracts.VMList.Count > 0)
|
||||
initTabIndex = true;
|
||||
{
|
||||
_InitTabIndex = true;
|
||||
}
|
||||
else
|
||||
SetTabIndexToLastContract();
|
||||
{
|
||||
SetTabIndexToLastContract();
|
||||
}
|
||||
|
||||
|
||||
if (tabitem_arbeitszeit.Content != null)
|
||||
{
|
||||
var view = tabitem_arbeitszeit.Content as EmployeeArbeitszeitView;
|
||||
|
||||
if (view != null)
|
||||
if (tabitem_arbeitszeit.Content is EmployeeArbeitszeitView view)
|
||||
{
|
||||
view.ViewModel = value;
|
||||
view.RefreshView();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void tabcontrol_contracts_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (initTabIndex)
|
||||
if (_InitTabIndex)
|
||||
{
|
||||
SetTabIndexToLastContract();
|
||||
initTabIndex = false;
|
||||
_InitTabIndex = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetTabIndexToLastContract()
|
||||
{
|
||||
//DateTime maxDate = DateTime.MinValue;
|
||||
|
||||
if (tabcontrol_contracts.Items.Count > 0)
|
||||
tabcontrol_contracts.SelectedIndex = tabcontrol_contracts.Items.Count - 1;
|
||||
{
|
||||
tabcontrol_contracts.SelectedIndex = tabcontrol_contracts.Items.Count - 1;
|
||||
}
|
||||
}
|
||||
|
||||
protected override UserRightType[] GetSaveDemands()
|
||||
{
|
||||
if (ViewModel.IsNew)
|
||||
return new[] {UserRightType.CreateAll, UserRightType.EmployeeView_Create};
|
||||
if (ViewModel.DataContract.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid)
|
||||
return new[] {UserRightType.EditAll, UserRightType.EmployeeView_Edit, UserRightType.Employee_AllowEditOwnEmployees};
|
||||
return new[] {UserRightType.EditAll, UserRightType.EmployeeView_Edit};
|
||||
}
|
||||
{
|
||||
return new[] {UserRightType.CreateAll, UserRightType.EmployeeView_Create};
|
||||
}
|
||||
|
||||
return ViewModel.DataContract.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid ?
|
||||
new[] {UserRightType.EditAll, UserRightType.EmployeeView_Edit, UserRightType.Employee_AllowEditOwnEmployees} :
|
||||
new[] {UserRightType.EditAll, UserRightType.EmployeeView_Edit};
|
||||
}
|
||||
|
||||
protected override void Save()
|
||||
{
|
||||
@@ -258,7 +256,7 @@ namespace BeWo.View.Detail
|
||||
if (ViewModel.DataContract.FirstName != ViewModel.FirstName || ViewModel.DataContract.LastName != ViewModel.LastName)
|
||||
{
|
||||
|
||||
DoOwnChatSync = true;
|
||||
_DoOwnChatSync = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -269,7 +267,7 @@ namespace BeWo.View.Detail
|
||||
if(ViewModel.IsNew)
|
||||
{
|
||||
IsDoneWithInsertOrUpdate = false;
|
||||
DoOwnChatSync = true;
|
||||
_DoOwnChatSync = true;
|
||||
|
||||
ServiceFacade.DoEmployeeServiceAsync(s => s.InsertNewEmployee(lDataContract), ReloadViewModel);
|
||||
}
|
||||
@@ -294,15 +292,15 @@ namespace BeWo.View.Detail
|
||||
var count = ViewModel.Contracts.VMList.Count(c => !c.ContractEndDate.HasValue);
|
||||
if (count > 1)
|
||||
{
|
||||
MessageBox.Show(String.Format("Es darf nur ein unbefristeter Vetrag angelegt werden. Bitte überprüfen Sie das \"Befristet bis\" Datum der angelegten Verträge."), "Ungültiger Vetrag", MessageBoxButton.OK);
|
||||
MessageBox.Show("Es darf nur ein unbefristeter Vetrag angelegt werden. Bitte überprüfen Sie das \"Befristet bis\" Datum der angelegten Verträge.", "Ungültiger Vetrag", MessageBoxButton.OK);
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach (var contract in ViewModel.Contracts.VMList)
|
||||
{
|
||||
if (contract.EntryDate.HasValue && contract.ContractEndDate.HasValue &&
|
||||
contract.EntryDate.Value > contract.ContractEndDate.Value)
|
||||
if (contract.EntryDate.HasValue && contract.ContractEndDate.HasValue && contract.EntryDate.Value > contract.ContractEndDate.Value)
|
||||
{
|
||||
MessageBox.Show(String.Format("Das Startdatum eines Vertrags ist größer als das Enddatum. Bitte überprüfen Sie die angelegten Verträge."), "Ungültiger Vetrag", MessageBoxButton.OK);
|
||||
MessageBox.Show("Das Startdatum eines Vertrags ist größer als das Enddatum. Bitte überprüfen Sie die angelegten Verträge.", "Ungültiger Vetrag", MessageBoxButton.OK);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -336,8 +334,7 @@ namespace BeWo.View.Detail
|
||||
ViewModel = cb;
|
||||
if (tabitem_schuldienst.Content != null)
|
||||
{
|
||||
var view = tabitem_schuldienst.Content as SchulbegleitenderDienstEmployeeView;
|
||||
if (view != null)
|
||||
if (tabitem_schuldienst.Content is SchulbegleitenderDienstEmployeeView view)
|
||||
{
|
||||
view.ViewModel = cb;
|
||||
}
|
||||
@@ -347,7 +344,7 @@ namespace BeWo.View.Detail
|
||||
|
||||
PreselectEmployeeBrush();
|
||||
|
||||
if (DoOwnChatSync && BeWoApp.AppSettings.IsChatAllowed)
|
||||
if (_DoOwnChatSync && BeWoApp.AppSettings.IsChatAllowed)
|
||||
{
|
||||
BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
}
|
||||
@@ -373,43 +370,20 @@ namespace BeWo.View.Detail
|
||||
ReloadViewModel(ViewModel.DataContract.EmployeeOid.Value);
|
||||
}
|
||||
|
||||
private void TabItemAbsenceTimes_Selected(object sender, RoutedEventArgs e)
|
||||
private void TabItemCustomers_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (grid_AbsenceTimes == null)
|
||||
if (_GridCustomers == null)
|
||||
{
|
||||
grid_AbsenceTimes = rootGrid.Resources["datagrid_absences"] as GridControl;
|
||||
_GridCustomers = rootGrid.Resources["grid_CustomerRelation"] as GridControl;
|
||||
|
||||
//var col = this.grid_AbsenceTimes.Columns["EndDT"];
|
||||
//var settings = col.EditSettings;
|
||||
//DateEditSettings des = (DateEditSettings)settings;
|
||||
//des.DisplayTextConverter = new DateNullValueToEmptyStringConverter();
|
||||
|
||||
GroupBoxAbsenceTimes.Content = grid_AbsenceTimes;
|
||||
|
||||
if (ViewModel.AbsenceTimes != null)
|
||||
{
|
||||
grid_AbsenceTimes.Columns["Reason"].EditSettings = new ComboBoxEditSettings
|
||||
{
|
||||
ItemsSource = ViewModel.AbsenceTimes.PossibleReasons
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void TabItemCustomers_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (grid_Customers == null)
|
||||
{
|
||||
grid_Customers = rootGrid.Resources["grid_CustomerRelation"] as GridControl;
|
||||
|
||||
GroupBoxCustomers.Content = grid_Customers;
|
||||
if (ViewModel.CustomerRelations != null)
|
||||
{
|
||||
grid_Customers.Columns["Role"].EditSettings = new ComboBoxEditSettings
|
||||
{
|
||||
ItemsSource = ViewModel.CustomerRelations.PossibleRoles
|
||||
};
|
||||
}
|
||||
GroupBoxCustomers.Content = _GridCustomers;
|
||||
if (ViewModel.CustomerRelations != null && _GridCustomers != null)
|
||||
{
|
||||
_GridCustomers.Columns["Role"].EditSettings = new ComboBoxEditSettings
|
||||
{
|
||||
ItemsSource = ViewModel.CustomerRelations.PossibleRoles
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -421,14 +395,6 @@ namespace BeWo.View.Detail
|
||||
}
|
||||
}
|
||||
|
||||
private void button_addAbsence_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ValidationTrigger.Validate(groupbox_newAbsenceTime))
|
||||
{
|
||||
ViewModel.AbsenceTimes.AddNewVMToList();
|
||||
}
|
||||
}
|
||||
|
||||
private void button_addCustomerRelation_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ValidationTrigger.Validate(groupbox_newCustomerRel))
|
||||
@@ -453,16 +419,10 @@ namespace BeWo.View.Detail
|
||||
ViewModel.Qualifications.Sort();
|
||||
}
|
||||
|
||||
private void button_removeAbsence_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ViewModel.AbsenceTimes.VMList.Remove(grid_AbsenceTimes.GetCurrentValue<AbsenceTimeVM>());
|
||||
BeWoWpfUtils.RefreshDXGrid(grid_AbsenceTimes);
|
||||
}
|
||||
|
||||
private void button_removeCustomerRelation_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ViewModel.CustomerRelations.VMList.Remove(grid_Customers.GetCurrentValue<CustomerEmployeeRelationVM>());
|
||||
BeWoWpfUtils.RefreshDXGrid(grid_Customers);
|
||||
ViewModel.CustomerRelations.VMList.Remove(_GridCustomers.GetCurrentValue<CustomerEmployeeRelationVM>());
|
||||
BeWoWpfUtils.RefreshDXGrid(_GridCustomers);
|
||||
}
|
||||
|
||||
private void button_removeFocus_Click(object sender, RoutedEventArgs e)
|
||||
@@ -490,8 +450,7 @@ namespace BeWo.View.Detail
|
||||
{
|
||||
if (ViewModel.IsNew)
|
||||
{
|
||||
MessageBox.Show("Bevor zu einem Datensatz Dokumente hinterlegt werden können, muss dieser gespeichert werden.",
|
||||
"Erst speichern bitte", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
MessageBox.Show("Bevor zu einem Datensatz Dokumente hinterlegt werden können, muss dieser gespeichert werden.", "Erst speichern bitte", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -596,15 +555,15 @@ namespace BeWo.View.Detail
|
||||
|
||||
private void TabItemOvertimes_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (grid_Overtimes == null)
|
||||
if (_GridOvertimes == null)
|
||||
{
|
||||
grid_Overtimes = rootGrid.Resources["datagrid_overtimes"] as GridControl;
|
||||
_GridOvertimes = rootGrid.Resources["datagrid_overtimes"] as GridControl;
|
||||
|
||||
GroupBoxOvertimes.Content = grid_Overtimes;
|
||||
GroupBoxOvertimes.Content = _GridOvertimes;
|
||||
|
||||
if (ViewModel.AbsenceTimes != null && grid_Overtimes != null)
|
||||
if (ViewModel.AbsenceTimes != null && _GridOvertimes != null)
|
||||
{
|
||||
grid_Overtimes.Columns["Auszahlungsart"].EditSettings = new ComboBoxEditSettings
|
||||
_GridOvertimes.Columns["Auszahlungsart"].EditSettings = new ComboBoxEditSettings
|
||||
{
|
||||
ItemsSource = ViewModel.PossibleAuszahlungsarten
|
||||
};
|
||||
@@ -622,8 +581,8 @@ namespace BeWo.View.Detail
|
||||
|
||||
private void button_removeOvertime_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ViewModel.Overtimes.VMList.Remove(grid_Overtimes.GetCurrentValue<OvertimeVM>());
|
||||
BeWoWpfUtils.RefreshDXGrid(grid_Overtimes);
|
||||
ViewModel.Overtimes.VMList.Remove(_GridOvertimes.GetCurrentValue<OvertimeVM>());
|
||||
BeWoWpfUtils.RefreshDXGrid(_GridOvertimes);
|
||||
}
|
||||
|
||||
private void ChkArchiviert_OnChecked(object sender, RoutedEventArgs e)
|
||||
@@ -667,12 +626,19 @@ namespace BeWo.View.Detail
|
||||
private void PrintContract(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
var textBlock = (TextBlock)sender;
|
||||
var c = ((ContractVM)textBlock.Tag).CommitToDataContract();
|
||||
var contract = ((ContractVM)textBlock.Tag).CommitToDataContract();
|
||||
|
||||
|
||||
string url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?cOid=" + c.ContractOid + "&type=" + Utils.EnumName(ReportTypes.Contract);
|
||||
var url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?cOid=" + contract.ContractOid + "&type=" + Utils.EnumName(ReportTypes.Contract);
|
||||
|
||||
BeWoUtils.NavigateToReportUri(url, "Druckvorschau");
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
[NotifyPropertyChangedInvocator]
|
||||
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,13 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Windows;
|
||||
using BeWo.Validation;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
namespace BeWo.ViewModel
|
||||
{
|
||||
public class AbsenceTimeVM : AbstractDCMapperVM<AbsenceTimeDC>
|
||||
public class AbsenceTimeVM : AbstractDCMapperVM<AbsenceTimeDC>, IDataErrorInfo
|
||||
{
|
||||
public static string PropertyName_End = "End";
|
||||
|
||||
@@ -26,37 +29,30 @@ namespace BeWo.ViewModel
|
||||
|
||||
private DateTime? _KrankheitsMeldung;
|
||||
|
||||
public AbsenceTimeVM(AbsenceTimeDC pDC) : base(pDC, pDC.AbsenceTimeOid == null)
|
||||
{
|
||||
}
|
||||
public AbsenceTimeVM(AbsenceTimeDC pDC) : base(pDC, pDC.AbsenceTimeOid == null) {}
|
||||
|
||||
public DateTime? End
|
||||
{
|
||||
get { return _End; }
|
||||
get => _End;
|
||||
|
||||
set
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_End, value))
|
||||
{
|
||||
_End = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.End, value), PropertyName_End);
|
||||
FirePropertyChanged(PropertyName_End);
|
||||
FirePropertyChanged(nameof(Start));
|
||||
FirePropertyChanged(nameof(EndTime));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//public DateTime EndDT
|
||||
//{
|
||||
// get { return this._End != null ? this._End.Value : DateTime.Now.Date.AddMilliseconds(123); }
|
||||
|
||||
// set { this.End = value.Date; }
|
||||
//}
|
||||
|
||||
public string Notice
|
||||
{
|
||||
get { return _Notice; }
|
||||
get => _Notice;
|
||||
|
||||
set
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Notice, value))
|
||||
{
|
||||
@@ -70,9 +66,9 @@ namespace BeWo.ViewModel
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public AbsenceReasonDC Reason
|
||||
{
|
||||
get { return _Reason; }
|
||||
get => _Reason;
|
||||
|
||||
set
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Reason, value))
|
||||
{
|
||||
@@ -86,23 +82,72 @@ namespace BeWo.ViewModel
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public DateTime? Start
|
||||
{
|
||||
get { return _Start; }
|
||||
get => _Start;
|
||||
|
||||
set
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Start, value))
|
||||
{
|
||||
_Start = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Start, value), PropertyName_Start);
|
||||
FirePropertyChanged(PropertyName_Start);
|
||||
FirePropertyChanged(nameof(End));
|
||||
FirePropertyChanged(nameof(StartTime));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private bool _IsAllDay;
|
||||
|
||||
public bool IsAllDay
|
||||
{
|
||||
get => _IsAllDay;
|
||||
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_IsAllDay, value))
|
||||
{
|
||||
_IsAllDay = value;
|
||||
|
||||
Start = _Start?.MergeDatesByDate(_Start.Value.Date);
|
||||
End = _End?.MergeDatesByDate(_End.Value.Date);
|
||||
|
||||
FirePropertyChanged(nameof(IsAllDay));
|
||||
FirePropertyChanged(nameof(DateEditColumnSpan));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string StartTime
|
||||
{
|
||||
get => _Start?.ToString("HH:mm");
|
||||
|
||||
set
|
||||
{
|
||||
if (_Start.HasValue && DateTime.TryParse($"{_Start.Value.ToLongDateString()} {value}", out var newTime))
|
||||
{
|
||||
Start = newTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string EndTime
|
||||
{
|
||||
get => _End?.ToString("HH:mm");
|
||||
|
||||
set
|
||||
{
|
||||
if (_End.HasValue && DateTime.TryParse($"{_End.Value.ToLongDateString()} {value}", out var newTime))
|
||||
{
|
||||
End = newTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public DateTime? KrankheitsMeldung
|
||||
{
|
||||
get { return _KrankheitsMeldung; }
|
||||
get => _KrankheitsMeldung;
|
||||
|
||||
set
|
||||
{
|
||||
@@ -115,7 +160,9 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
protected override void InitByDataContract(AbsenceTimeDC pDataContract)
|
||||
public int DateEditColumnSpan => _IsAllDay ? 2 : 1;
|
||||
|
||||
protected override void InitByDataContract(AbsenceTimeDC pDataContract)
|
||||
{
|
||||
if (!IsNew)
|
||||
{
|
||||
@@ -125,7 +172,13 @@ namespace BeWo.ViewModel
|
||||
|
||||
_Reason = pDataContract.Reason;
|
||||
_KrankheitsMeldung = pDataContract.KrankheitsMeldung;
|
||||
}
|
||||
|
||||
_IsAllDay = _Start.HasValue && _Start.Value.IsTimeZero() && (_End == null || _End.Value.IsTimeZero());
|
||||
}
|
||||
else
|
||||
{
|
||||
_IsAllDay = true;
|
||||
}
|
||||
}
|
||||
|
||||
protected override AbsenceTimeDC MapToDataContract(AbsenceTimeDC pDataContract, bool doCommit)
|
||||
@@ -143,5 +196,51 @@ namespace BeWo.ViewModel
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
|
||||
string IDataErrorInfo.Error
|
||||
{
|
||||
get
|
||||
{
|
||||
var me = (IDataErrorInfo)this;
|
||||
var error = me[nameof(Start)] +
|
||||
me[nameof(End)];
|
||||
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
string IDataErrorInfo.this[string columnName]
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Start == null)
|
||||
{
|
||||
return "Das Startdatum muss einen Wert haben.";
|
||||
}
|
||||
|
||||
if (End != null && End.Value < Start)
|
||||
{
|
||||
return "Das Startdatum muss vor dem Enddatum liegen.";
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void ValidateDates(Action callback)
|
||||
{
|
||||
var error = ((IDataErrorInfo) this).Error;
|
||||
|
||||
if (!string.IsNullOrEmpty(error))
|
||||
{
|
||||
MessageBox.Show("Das Startdatum muss vor dem Enddatum liegen.", "Ungültige Datumsangaben", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
FirePropertyChanged(nameof(Start));
|
||||
FirePropertyChanged(nameof(End));
|
||||
}
|
||||
else
|
||||
{
|
||||
callback();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,7 +20,7 @@ namespace BeWo.Service.Plugins
|
||||
t = "irgendwaswasesnichtgibt";
|
||||
//t = "2356097460"; // Lebenshilfe Würzburg
|
||||
//t = "1234567890"; // Präsentationsdatenbank
|
||||
//t = "5687373602"; // LH Duisburg
|
||||
t = "5687373602"; // LH Duisburg
|
||||
//t = "5509064354"; // LH Duisburg Service Plus
|
||||
//t = "5620636022"; // GPZ Biberach
|
||||
//t = "8562233401"; // Sozialwirkstatt Schmitz
|
||||
@@ -110,7 +110,7 @@ namespace BeWo.Service.Plugins
|
||||
//t = "9417634361"; // Synprax
|
||||
//t = "5761861730"; // Lebenshilfe Warendorf
|
||||
//t = "6712648331"; // BeWo Färber
|
||||
t = "4982295287"; // ASB Hamm
|
||||
//t = "4982295287"; // ASB Hamm
|
||||
//t = "3890031575"; // Die Wohnhelfer Kuhrau
|
||||
//t = "3536719736"; // BeWo Stefanie Schäfer (BeWoKerpen)
|
||||
//t = "7739670213"; // SPZ Leverkusen
|
||||
@@ -161,7 +161,7 @@ namespace BeWo.Service.Plugins
|
||||
//t = "1873138856"; // BUG e.V.
|
||||
//t = "6463422907"; // Caritas Leverkusen
|
||||
//t = "6149463003"; // Diakonisches Werk Bad Windsheim Neustadt a. d. Aisch
|
||||
t = "6548202677"; // VKM Aachen SBD
|
||||
//t = "6548202677"; // VKM Aachen SBD
|
||||
//t = "7803602698"; // Taubblindendienst
|
||||
//t = "5518600303"; // Wetterleuchten e.V.
|
||||
//t = "4096649015"; // AWO Dortmund
|
||||
|
||||
@@ -256,7 +256,7 @@ namespace BeWo.Service.SBD
|
||||
}
|
||||
}
|
||||
}
|
||||
else // Kein Betreuer, also auch keine Vertretungen
|
||||
else // Kein Betreuer, also auch keine Vertretungen, sondern nur Abwesenheiten
|
||||
{
|
||||
var assistanceTimeEntries = GetAssistanceTimesForCustomer(customer, null, absenceTime, start, end);
|
||||
|
||||
|
||||
@@ -521,5 +521,10 @@ namespace BS.Shared.Extensions
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsTimeZero(this DateTime dateTime)
|
||||
{
|
||||
return dateTime.Hour == 0 && dateTime.Minute == 0 && dateTime.Second == 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user