Current Update

This commit is contained in:
Waldi
2017-07-25 10:50:45 +02:00
parent e3e59fe705
commit 65ac781e66
19 changed files with 2172 additions and 874 deletions

View File

@@ -104,11 +104,13 @@
<Reference Include="DevExpress.Xpf.Grid.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Layout.v13.2.Core, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Printing.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Ribbon.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.RichEdit.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Scheduler.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.LightGray.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.Office2007Black.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.Office2010Black.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraBars.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPivotGrid.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
@@ -182,6 +184,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="SchulbegleitenderDienst\SchulbegleitenderDienstMitarbeiterBearbeitungsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="SchulbegleitenderDienst\KrankheitsZeitraumView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -546,6 +552,9 @@
<Compile Include="ProxyLoginView.xaml.cs">
<DependentUpon>ProxyLoginView.xaml</DependentUpon>
</Compile>
<Compile Include="SchulbegleitenderDienst\SchulbegleitenderDienstMitarbeiterBearbeitungsView.xaml.cs">
<DependentUpon>SchulbegleitenderDienstMitarbeiterBearbeitungsView.xaml</DependentUpon>
</Compile>
<Compile Include="SchulbegleitenderDienst\KrankheitsZeitraumView.xaml.cs">
<DependentUpon>KrankheitsZeitraumView.xaml</DependentUpon>
</Compile>

View File

@@ -0,0 +1 @@
DevExpress.Xpf.RichEdit.RichEditControl, DevExpress.Xpf.RichEdit.v13.2, Version=13.2.13.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@@ -59,19 +59,19 @@
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.ColumnSpan="1" x:Name="Datepicker" Height="23" Grid.Row="0" Width="100" HorizontalAlignment="Left" VerticalAlignment="Top" EditValueChanged="Datepicker_OnEditValueChanged" Margin="3,3,3,3" AllowNullInput="False"/>
<StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal" >
<StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal" >
<Button Style="{x:Null}" Margin="3,3,3,3" Height="24" Width="24" ToolTip="Tagesansicht" Click="ButtonDayView_Click" VerticalAlignment="Top">
<Image Source="/BeWoPlaner;component/Ressources/Icons/Calendar1Day24.png" />
</Button>
<Button Style="{x:Null}" Margin="3,3,3,3" Height="24" Width="24" ToolTip="Tagesansicht" Click="ButtonDayView_Click" VerticalAlignment="Top">
<Image Source="/BeWoPlaner;component/Ressources/Icons/Calendar1Day24.png" />
</Button>
<Button Style="{x:Null}" Margin="3,3,3,3" Height="24" Width="24" ToolTip="Wochenansicht" Click="ButtonWorkWeekView_Click" VerticalAlignment="Top">
<Image Source="/BeWoPlaner;component/Ressources/Icons/Calendar5Day24.png" />
</Button>
<Button Style="{x:Null}" Margin="3,3,3,3" Height="24" Width="24" ToolTip="Wochenansicht" Click="ButtonWorkWeekView_Click" VerticalAlignment="Top">
<Image Source="/BeWoPlaner;component/Ressources/Icons/Calendar5Day24.png" />
</Button>
<Button Style="{x:Null}" Margin="3,3,3,3" Height="24" Width="24" ToolTip="Aktualisieren" Click="Aktualisieren_OnClick" VerticalAlignment="Top" >
<Image Source="/BeWoPlaner;component/Ressources/Icons/SymbolRefresh32.png" />
</Button>
<Button Style="{x:Null}" Margin="3,3,3,3" Height="24" Width="24" ToolTip="Aktualisieren" Click="Aktualisieren_OnClick" VerticalAlignment="Top" >
<Image Source="/BeWoPlaner;component/Ressources/Icons/SymbolRefresh32.png" />
</Button>
</StackPanel>
@@ -263,7 +263,7 @@
</StackPanel>
<!-- jeweils links und rechts ein Pfeil button -->
<!-- ##### jeweils links und rechts ein Pfeil button #### -->
<StackPanel Grid.ColumnSpan="3" Grid.Row="1" Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Bottom" >
@@ -278,13 +278,17 @@
</Button>
</StackPanel>
<!---->
<!--######################################################-->
</Grid>
<!-- ###################################AutoGenerateColumns="AddNew"BasedOn="{StaticResource {themes:GridRowThemeKey ResourceKey=CellStyle}}"##################################################IsLeft="False"##################### -->
<!-- ########################################################################################################### -->
<dxg:GridControl x:Name="GridDataControlTagesansicht" Visibility="Visible" Grid.Row="1" Grid.ColumnSpan="3" AllowDrop="true" Margin="5,5,5,5" VerticalContentAlignment="Center" >
<!-- ############################ Tagesansicht ######################################## -->
<dxg:GridControl x:Name="GridDataControlTagesansicht" Visibility="Visible" Grid.Row="1" Grid.ColumnSpan="3" AllowDrop="true" Margin="5,5,5,5" VerticalContentAlignment="Center" >
<dxg:GridControl.Columns >
@@ -371,14 +375,19 @@
</dxg:GridControl>
<!--####################################################################################-->
<!--############################ Tages Ansicht View ****Ende**** ##########################################################################-->
<dxg:GridControl x:Name="GridDataControlMitarbeiterWochenansicht" Visibility="Collapsed" Grid.Row="1" Grid.ColumnSpan="3" AllowDrop="true" Margin="5,5,5,5" VerticalContentAlignment="Center" >
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="MaFrei" Header="Mitarbeiter" Width="125" ReadOnly="True" />
<!-- Umbauen -->
<dxg:GridColumn FieldName="Employee" Header="Mitarbeiter" Width="125" ReadOnly="True" />
<dxg:GridColumn FieldName="Mo" Header="Mo" Width="75" ReadOnly="True"/>
@@ -386,7 +395,7 @@
<dxg:GridColumn.EditSettings >
<dxe:ButtonEditSettings x:Name="ButtonEditSetMaMo" AllowDefaultButton="False">
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick" >
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaMo" ToolTip="Klient Hinzufügen"/>
</dxe:ButtonInfo.Content>
@@ -416,7 +425,7 @@
<dxg:GridColumn.EditSettings >
<dxe:ButtonEditSettings x:Name="ButtonEditSetMaDi" AllowDefaultButton="False">
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick">
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaDi" ToolTip="Klient Hinzufügen"/>
</dxe:ButtonInfo.Content>
@@ -446,7 +455,7 @@
<dxg:GridColumn.EditSettings >
<dxe:ButtonEditSettings x:Name="ButtonEditSetMaMi" AllowDefaultButton="False">
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick">
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaMi" ToolTip="Klient Hinzufügen"/>
</dxe:ButtonInfo.Content>
@@ -476,7 +485,7 @@
<dxg:GridColumn.EditSettings >
<dxe:ButtonEditSettings x:Name="ButtonEditSetMaDo" AllowDefaultButton="False">
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick">
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaDo" ToolTip="Klient Hinzufügen"/>
</dxe:ButtonInfo.Content>
@@ -506,7 +515,7 @@
<dxg:GridColumn.EditSettings >
<dxe:ButtonEditSettings x:Name="ButtonEditSetMaFr" AllowDefaultButton="False">
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick">
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaFr" ToolTip="Klient Hinzufügen"/>
</dxe:ButtonInfo.Content>
@@ -536,7 +545,7 @@
<dxg:GridColumn.EditSettings >
<dxe:ButtonEditSettings x:Name="ButtonEditSetMaSa" AllowDefaultButton="False">
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick">
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaSa" ToolTip="Klient Hinzufügen"/>
</dxe:ButtonInfo.Content>
@@ -766,70 +775,7 @@
<!--############################### Wochenüberblick Klient ****Ende**** ########################CellValueChanged="GridViewWochenKlientBase_OnRowUpdated"######################-->
<!-- End mal geschaut -->
<!-- ################################## TreeListControl ##############################################################-->
<!--<dxg:TreeListControl x:Name="GridDataControl" Grid.Row="1" Grid.RowSpan="2" Grid.ColumnSpan="3" AllowDrop="true" Margin="5,5,5,5" VerticalContentAlignment="Center" >
<dxg:TreeListControl.Bands>
<dxg:TreeListControl.Columns>
<dxg:TreeListColumn FieldName="Vertretung" Width="250" x:Name="ColumnVertretung" >
<dxg:TreeListColumn.EditSettings >
<dxe:ButtonEditSettings x:Name="ButtonEditSet" AllowDefaultButton="False">
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="ButtonEditSettings_OnDefaultButtonClick" >
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButton" ToolTip="Hidden Valley Suddenly Dead"/>
</dxe:ButtonInfo.Content>
</dxe:ButtonInfo>
</dxe:ButtonEditSettings.Buttons>
</dxe:ButtonEditSettings>
</dxg:TreeListColumn.EditSettings>
</dxg:TreeListColumn>
<dxg:TreeListColumn FieldName="Kunde" Width="200" />
<dxg:TreeListColumn FieldName="KrankerMitarbeiter" Width="200" />
<dxg:TreeListColumn FieldName="KrankheitsMeldung" Width="200" />
<dxg:TreeListColumn FieldName="KrankheitsZeitraum" Width="200"/>
<dxg:TreeListColumn FieldName="AbwesenheitsKategorie" Width="200"/>
<dxg:TreeListColumn FieldName="Beschreibung" MinWidth="200" />
<dxg:TreeListColumn FieldName="VertretungsDC" MinWidth="0" Visible="False" />
--><!--<dxg:TreeListColumn FieldName="ParentId" dxg:BandBase.GridRow="1" />
<dxg:TreeListColumn FieldName="Oid" />--><!--
</dxg:TreeListControl.Columns>
<dxg:TreeListControl.View>
<dxg:TreeListView x:Name="view"
ParentFieldName="ParentId"
KeyFieldName="Oid" AutoWidth="True" />
</dxg:TreeListControl.View>
<dxg:TreeListControl.Bands>
</dxg:TreeListControl>-->
<!--
// dieser bereich muss unter vertretung
<dxg:TreeListControlBand Header="Details">
<dxg:TreeListControlBand.Bands>
<dxg:TreeListControlBand Header="Absolute Values">
<dxg:TreeListColumn FieldName="Kunde" Width="200" />
<dxg:TreeListColumn FieldName="KrankerMitarbeiter" Width="200" />
<dxg:TreeListColumn FieldName="KrankheitsMeldung" Width="200" />
<dxg:TreeListColumn FieldName="KrankheitsZeitraum" Width="200"/>
<dxg:TreeListColumn FieldName="AbwesenheitsKategorie" Width="200"/>
<dxg:TreeListColumn FieldName="Beschreibung" MinWidth="200" />
</dxg:TreeListControlBand>
</dxg:TreeListControlBand.Bands>
</dxg:TreeListControlBand>
-->
<!-- ####################################################ShowAutoFilterRow="{Binding ShowAutoFilterRow}"##############################################################-->
<Popup Margin="10" x:Name="popup_MitarbeiterVertretung" StaysOpen="False" Placement="MousePoint" Width="370" Height="250"
Closed="popup_Closed" Opened="popup_Opened">

View File

@@ -6,7 +6,7 @@
xmlns:search="clr-namespace:BeWo.View.Search"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Title="Vertretung auswählen" Height="650" Width="700" WindowStartupLocation="CenterScreen"
Title="Vertretung auswählen" Height="650" Width="750" WindowStartupLocation="CenterScreen"
ResizeMode="CanResizeWithGrip" WindowStyle="None" Background="Transparent">
<GroupBox Header="Vertretung auswählen" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown" >
@@ -146,49 +146,47 @@
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="Klienten PLZ">
<Grid>
<WrapPanel Orientation="Horizontal" Margin="1" HorizontalAlignment="Left" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<WrapPanel Orientation="Horizontal" Margin="1" HorizontalAlignment="Left" Grid.Column="0">
<Label Content ="Plz:" />
<Label x:Name="LabelPlzKlient" Width="50" />
</WrapPanel>
<WrapPanel Orientation="Horizontal" Margin="1" HorizontalAlignment="Right">
<WrapPanel Orientation="Horizontal" Margin="1" HorizontalAlignment="Right" Grid.Column="1">
<Label Content="Ort:"/>
<Label x:Name="LabelOrtKlient" />
<Label x:Name="LabelOrtKlient" Width="100" />
</WrapPanel>
</Grid>
<!-- Combobox unter TextBox positionieren und Grid.ColumnSpan="2" Grid.ColumnSpan="2"-->
<!--<ComboBox x:name="jfwj" Visibility="Collapsed" Selected="Selector_OnSelected" IsEditable="True" />-->
<!--hier combobox mit umkreis 5 10 15 20 25 km anzeigen | Zurzeit deakiviert -->
<!--<Label Margin="3" x:Name="LabelUmkreis" Visibility="Collapsed" >Umkreis</Label> -->
<!--<controls:NullItemComboBox Margin="3" Height="23" x:Name="ComboBoxUmkreisExtender" Width="75" Visibility="Collapsed" SelectionChanged="ComboBoxUmkreisExtender_OnSelected"/>-->
<!-- ####### Zurzeit Deaktiviert ####### -->
</Grid>
</GroupBox>
<GroupBox Grid.Row="1" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="Suche nach" >
<GroupBox Grid.Row="1" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="Suche nach">
<Grid>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="1">
<Label Content="Plz:" />
<TextBox x:Name="PlzKlient" Height="23" Width="50" MaxLength="5" VerticalContentAlignment="Center" TextChanged="PlzKlient_OnTextChanged" /> <!-- Aus Textbiox ein Texedit machen und Regex hinzufügen "[^0-9]+" -->
</WrapPanel>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="1" Grid.Column="0">
<Label Content="Plz:" />
<dxe:TextEdit x:Name="PlzKlient" Height="23" Width="50" VerticalContentAlignment="Center" EditValueChanged="PlzKlient_OnTextChanged" MaskType="RegEx" Mask="\d{1,5}" ShowError="False" />
</WrapPanel>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="1">
<Label Content="Ort:" />
<TextBox x:Name="OrtKlient" Height="23" Width="50" VerticalContentAlignment="Center" TextChanged="OrtKlient_OnTextChanged" />
</WrapPanel>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="1" Grid.Column="1">
<Label Content="Ort:" />
<TextBox x:Name="OrtKlient" Height="23" Width="100" VerticalContentAlignment="Center" TextChanged="OrtKlient_OnTextChanged" />
</WrapPanel>
</Grid>
</GroupBox>
</Grid>
</Grid>
</Grid>
<!-- ######################################################################Checked="ToggleButtonMaennlich_OnChecked" ## Checked="ToggleButtonWeiblich_OnChecked" ###################################### -->
<!-- ##################################################################################################################### -->

View File

@@ -39,6 +39,7 @@ using DevExpress.XtraPrinting.Native;
using DevExpress.XtraPrinting.XamlExport;
using Microsoft.Office.Interop.Word;
using Color = System.Drawing.Color;
using KeyEventArgs = System.Windows.Input.KeyEventArgs;
using MessageBox = System.Windows.MessageBox;
using TextBox = System.Windows.Controls.TextBox;
@@ -49,8 +50,6 @@ namespace BeWo.SchulbegleitenderDienst
public event EventHandler<CustomEventArgs> RaiseCustomEvent;
public event EventHandler<CustomKlientEventArgs> RaiseKlientCustomEvent;
private DateTime? _startDate;
private DateTime? _endDate;
@@ -71,7 +70,7 @@ namespace BeWo.SchulbegleitenderDienst
public SchulbegleitenderDienstBearbeitungsView(int y, DateTime? startdate, DateTime? enddate, DateTime currentDate, long? klientOid) // oid muss mitgegeben werden
public SchulbegleitenderDienstBearbeitungsView(int y, DateTime? startdate, DateTime? enddate, DateTime currentDate, long? klientOid) // Klient oid muss mitgegeben werden
{
InitializeComponent();
@@ -97,7 +96,6 @@ namespace BeWo.SchulbegleitenderDienst
OrdenerieThings();
if (y == 1)
{
//y == 1 Mitarbeiterauswahl
@@ -110,14 +108,7 @@ namespace BeWo.SchulbegleitenderDienst
}
//setze Ort und olz des Klienten zur ansicht
SetKlientOrtAndPlz();
//################ UmkreisErmittler prototyp status ################
//List<String> woaa = new List<string> { "5 km", "10 km", "15 km", "20 km", "25 km" };
// ComboBoxUmkreisExtender.ItemsSource = woaa;
//##################################################
SetKlientOrtAndPlz();
}
@@ -144,21 +135,13 @@ namespace BeWo.SchulbegleitenderDienst
}
private void SetKlientOrtAndPlz()
{
//Übergebe hier die Plz und den Ort des Klienten zur ansicht
List<long> x = new List<long>();
x.Add(_klientOid.Value);
// neue funktion schreiben um die person hinter customer mit customer oid zu holen
var klient = ServiceFacade.DoCustomerServiceSync(r => r.GetCustomersById(x));
//Platzhalter Daten
LabelPlzKlient.Content = "53842"; // Übergebe hier die Plz des klienten
LabelOrtKlient.Content = "Troisdorf"; // Übergebe hier den Ort des klienten
{
var pKlient = ServiceFacade.DoCustomerServiceSync(r => r.GetPersonWithCustomerOid(_klientOid.Value));
if(pKlient != null){
LabelPlzKlient.Content = pKlient.PostalCode;
LabelOrtKlient.Content = pKlient.Town;
}
}
#region MitarbeiterSearch
@@ -196,13 +179,7 @@ namespace BeWo.SchulbegleitenderDienst
private void OrdenerieThings()
{
_dataListEmployee.Clear();
//popup_MitarbeiterVertretung.IsOpen = false;
//MitarbeiterVertretungsearchview.ItemSelected -= MitarbeiterVertretungsearchview_MitarbeiterVertretungSelected;
//currentEmployee = e.Data;
//popupedit_MitarbeiterVertretungSearch.Text = currentEmployee.FirstName + " " + currentEmployee.LastName;
//hole alle mit Service Raus
//var employeeList =
ServiceFacade.DoEmployeeServiceAsync(s => s.GetAllActiveVertreterEmployeesCompact(), employeeList => this.Dispatch(
delegate
@@ -363,71 +340,71 @@ namespace BeWo.SchulbegleitenderDienst
}
}
//#######################################################################
//#################### Nicht mehr gebrauchter code ###################################################
//######################## Postalcode Range Extender
public void ErmittlePlzBereich(string plz, int umkreis)
{
decimal postleitzahl = Convert.ToDecimal(plz);
//public void ErmittlePlzBereich(string plz, int umkreis)
//{
// decimal postleitzahl = Convert.ToDecimal(plz);
if (umkreis == 0)
{
//Zeige in der liste alle an die genau diese postleitzahl mit den ersten 3 Stellen haben. //villeicht auch ersten 4 mal sehen
MessageBox.Show("Zeige alle Personen mit gleicher plz an");
}
else
{
MessageBox.Show("Hier kommt nacher eine Berechnung des Umkreises hin");
// if (umkreis == 0)
// {
// //Zeige in der liste alle an die genau diese postleitzahl mit den ersten 3 Stellen haben. //villeicht auch ersten 4 mal sehen
// MessageBox.Show("Zeige alle Personen mit gleicher plz an");
// }
// else
// {
// MessageBox.Show("Hier kommt nacher eine Berechnung des Umkreises hin");
#region Plzklient mit erweiterter umkreis auswahl
//PlzKlient mit erweiterter umkreis auswahl.
// #region Plzklient mit erweiterter umkreis auswahl
// //PlzKlient mit erweiterter umkreis auswahl.
//const Erdradius = 6371000; Konstante in metern
//
// //const Erdradius = 6371000; Konstante in metern
// //
//// Umwandlung der Kugel-Koordinaten ins kathesische Koordinatensystem:
//// Umrechnung ins Bogenmaß
//lambda := geoLaenge * PI / 180;
//phi := geoBreite * PI / 180;
// //// Umwandlung der Kugel-Koordinaten ins kathesische Koordinatensystem:
// //// Umrechnung ins Bogenmaß
// //lambda := geoLaenge * PI / 180;
// //phi := geoBreite * PI / 180;
//geoKoordX := Round(Erdradius * cos(phi) * cos(lambda));
//geoKoordY := Round(Erdradius * cos(phi) * sin(lambda));
//geoKoordZ := Round(Erdradius * sin(phi));
// //geoKoordX := Round(Erdradius * cos(phi) * cos(lambda));
// //geoKoordY := Round(Erdradius * cos(phi) * sin(lambda));
// //geoKoordZ := Round(Erdradius * sin(phi));
// Umrechnung von Meter in Kilometer
// Bei der Berechnung in Metern werden die Zahlen zu groß,
// die Berechnung mit Floats ist allerdings kein Problem...
// // Umrechnung von Meter in Kilometer
// // Bei der Berechnung in Metern werden die Zahlen zu groß,
// // die Berechnung mit Floats ist allerdings kein Problem...
//rd := mysql_fetch_row(re);
//x1 := geoKoordX / 1000;
//y1 := geoKoordY / 1000;
//z1 := geoKoordZ / 1000;
//x2 := geoKoordX2 / 1000;
//y2 := geoKoordY2 / 1000;
//z2 := geoKoordZ2 / 1000;
// //rd := mysql_fetch_row(re);
// //x1 := geoKoordX / 1000;
// //y1 := geoKoordY / 1000;
// //z1 := geoKoordZ / 1000;
// //x2 := geoKoordX2 / 1000;
// //y2 := geoKoordY2 / 1000;
// //z2 := geoKoordZ2 / 1000;
//Entfernung := Round(
// 2 * ErdradiusKm *
// arcsin(
// sqrt(
// sqr(x1 - x2)
// + sqr(y1 - y2)
// + sqr(z1 - z2)
// ) / (2 * ErdradiusKm)
// )
// * 1000
// );
#endregion
}
// //Entfernung := Round(
// // 2 * ErdradiusKm *
// // arcsin(
// // sqrt(
// // sqr(x1 - x2)
// // + sqr(y1 - y2)
// // + sqr(z1 - z2)
// // ) / (2 * ErdradiusKm)
// // )
// // * 1000
// // );
// #endregion
// }
}
//}
//########################################################################
private void PlzKlient_OnTextChanged(object sender, TextChangedEventArgs e)
private void PlzKlient_OnTextChanged(object sender, EditValueChangedEventArgs e)
{
bool ruecksetzpunkt = false;
@@ -452,7 +429,7 @@ namespace BeWo.SchulbegleitenderDienst
if (ruecksetzpunkt)
{
GridDataControlMitarbeiterVertretungsearchview.ItemsSource = alleMitarbeiterDaten;
//aktuelleDaten = alleMitarbeiterDaten;
//aktuelleDaten = alleMitarbeiterDaten; // sollte sich so verhalten wie bei geschlecht
}
else
{
@@ -463,75 +440,23 @@ namespace BeWo.SchulbegleitenderDienst
GridDataControlMitarbeiterVertretungsearchview.RefreshData();
GridDataControlMitarbeiterVertretungsearchview.RefreshUI();
#region PLZRadiusAlgorythmusplanung
// PlzKlien // AutoCompleteMode.Suggest;
//testbereiche
//foreach (var item in aktuelleDaten)
//{
// if (!item.Geschlecht.Equals("Weiblich") && isOtherActive == false)
// {
// newItems.Add(item);
// }
// else if (isOtherActive)
// {
// newItems.Add(item);
// }
//}
//AutoCompleteStringCollection collection = new AutoCompleteStringCollection();
////Bereich der tipp anzeige für die Plz
//foreach (var item in _dataListEmployee)
//{
// if(item.Adress != null){
// string[] adressString = item.Adress.Split(' ');
// var adress = adressString[1];
// //if(adressString.Length == 3){
// if (adress.Contains(PlzKlient.Text))
// {
// collection.Add(adress);
// }
// // }
// }
//}
// BEreich zur anzeige der Combobox
//if (PlzKlient.Text.Length == 5)
//{
// LabelUmkreis.Visibility = Visibility.Visible;
// ComboBoxUmkreisExtender.Visibility = Visibility.Visible;
//}
//else
//{
// LabelUmkreis.Visibility = Visibility.Collapsed;
// ComboBoxUmkreisExtender.Visibility = Visibility.Collapsed;
//}
#endregion
}
private void ComboBoxUmkreisExtender_OnSelected(object sender, RoutedEventArgs e)
{
var item = sender as NullItemComboBox;
//private void ComboBoxUmkreisExtender_OnSelected(object sender, RoutedEventArgs e)
//{
// var item = sender as NullItemComboBox;
int umkreis = 0;
// int umkreis = 0;
if (item != null && item.SelectedItem != null)
{
string[] ahh = item.SelectedItem.ToString().Split(' ');
// if (item != null && item.SelectedItem != null)
// {
// string[] ahh = item.SelectedItem.ToString().Split(' ');
umkreis = Convert.ToInt32(ahh[0]);
}
// umkreis = Convert.ToInt32(ahh[0]);
// }
ErmittlePlzBereich(PlzKlient.Text, umkreis);
}
// ErmittlePlzBereich(PlzKlient.Text, umkreis);
//}
//private void Selector_OnSelected(object sender, RoutedEventArgs e)
//{
@@ -688,7 +613,7 @@ namespace BeWo.SchulbegleitenderDienst
//hole die liste aller Employee2Token
var x = ServiceFacade.DoOperationsServiceSync(r => r.GetEmployee2TokenList()); // hier ggf. Async aufruf
//bool isAusschluss = false; // erstmal rausnehmen
//bool isAusschluss = false; // zu test zwecke erstmal rausnehmen und später wieder rein
foreach (var daten in alleMitarbeiterDaten)
{
@@ -772,7 +697,6 @@ namespace BeWo.SchulbegleitenderDienst
}
private void GeschlechtsUmwandlung(int i, bool isOtherActive)
{
List<SearchViewDaten> newItems = new List<SearchViewDaten>();
@@ -834,10 +758,8 @@ namespace BeWo.SchulbegleitenderDienst
GridDataControlMitarbeiterVertretungsearchview.RefreshUI();
}
private void OrtKlient_OnTextChanged(object sender, TextChangedEventArgs e)
{
//das Gleiche wie bei PLz umkreis suche nur mit Ort
bool ruecksetzpunkt = false;
List<SearchViewDaten> ndaten = new List<SearchViewDaten>();
@@ -873,6 +795,7 @@ namespace BeWo.SchulbegleitenderDienst
GridDataControlMitarbeiterVertretungsearchview.RefreshData();
GridDataControlMitarbeiterVertretungsearchview.RefreshUI();
}
}
public class CustomEventArgs : EventArgs
@@ -905,35 +828,7 @@ namespace BeWo.SchulbegleitenderDienst
}
public class CustomKlientEventArgs : EventArgs
{
private CompactCustomerDC dc;
private DateTime? startdt;
private DateTime? enddt;
public CustomKlientEventArgs(CompactCustomerDC s, DateTime? start, DateTime? ende)
{
dc = s;
startdt = start;
enddt = ende;
}
public CompactCustomerDC Message
{
get { return dc; }
}
public DateTime? StartDate
{
get { return startdt; }
}
public DateTime? EndDate
{
get { return enddt; }
}
}
public class SearchViewDaten
{

View File

@@ -0,0 +1,297 @@
<Window x:Class="BeWo.SchulbegleitenderDienst.SchulbegleitenderDienstMitarbeiterBearbeitungsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:view="clr-namespace:BeWo.View"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:search="clr-namespace:BeWo.View.Search"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Title="Vertretung auswählen" Height="650" Width="750" WindowStartupLocation="CenterScreen"
ResizeMode="CanResizeWithGrip" WindowStyle="None" Background="Transparent">
<GroupBox Header="Vertretenden auswählen" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown" >
<Grid>
<Grid Background="White" x:Name="rootGroupBoxMitarbeiter" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="225"/>
<RowDefinition Height="125"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- ############################### Oberes 1/3 auswahl Kriterien ################################################ -->
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="125"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GroupBox Header="Mitarbeiter Wunsch Kriterien" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<!-- Ready machen für teilweise funktion / Combobox zur auswahl der tokens und TextBox zur anzeige der ausgewählten tokens -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- <controls:NullItemComboBox Grid.Row="0" Grid.Column="0" x:Name="MitarbeiterWunschAuswahl" SelectionChanged="MitarbeiterWunschAuswahl_OnSelectionChanged" Width="200" Height="23" Visibility="Collapsed" /> -->
<TextBox Grid.Row="1" Grid.Column="0" Margin="3" x:Name="MitarbeiterWunschAnzeige" MinHeight="50" TextWrapping="Wrap" Width="200" IsReadOnly="True" />
</Grid>
</GroupBox>
<GroupBox Header="Mitarbeiter Ausschluss Kriterien" Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3">
<!-- Ready machen für teilweise funktion <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/> <RowDefinition Height="Auto"/>-->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- <controls:NullItemComboBox Grid.Row="0" Grid.Column="0" x:Name="MitarbeiterAussschlussAuswahl" SelectionChanged="MitarbeiterAussschlussAuswahl_OnSelectionChanged" Width="200" Height="23" Visibility="Collapsed"/> -->
<TextBox Grid.Row="1" Margin="3" Grid.Column="0" x:Name="MitarbeiterAussschlussAnzeige" Width="200" MinHeight="50" TextWrapping="Wrap" IsReadOnly="True"/>
</Grid>
</GroupBox>
<GroupBox Header="Klient Wunsch Kriterien" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<!-- ############### wird durch Token Combobox mit devexpress vers. 17 ersetzt ################################## -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<controls:NullItemComboBox Grid.Row="0" Grid.Column="0" x:Name="KlientWunschAuswahl" SelectionChanged="KlientWunschAuswahl_OnSelectionChanged" Width="200" Height="23" />
<TextBox Grid.Row="1" Margin="3" Grid.Column="0" x:Name="KlientWunschAnzeige" Width="200" MinHeight="50" TextWrapping="Wrap" IsReadOnly="True"/>
</Grid>
<!-- ############################################################################################################## -->
</GroupBox>
<GroupBox Header="Klient Ausschluss Kriterien" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<!-- ############### wird durch Token Combobox mit devexpress vers. 17 ersetzt ################################## -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<controls:NullItemComboBox Grid.Row="0" Grid.Column="0" x:Name="KlientAussschlussAuswahl" SelectionChanged="KlientAussschlussAuswahl_OnSelectionChanged" Width="200" Height="23" />
<TextBox Grid.Row="1" Margin="3" Grid.Column="0" x:Name="KlientAussschlussAnzeige" Width="200" MinHeight="50" TextWrapping="Wrap" IsReadOnly="True"/>
</Grid>
<!-- ############################################################################################################## -->
</GroupBox>
<GroupBox Header="Geschlecht" Grid.Row="0" Grid.Column="4" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3">
<WrapPanel Orientation="Horizontal">
<CheckBox Content="männlich" Margin="3,3,3,3" Click="RBMaennlich_OnClick" x:Name="RBMaennlich" IsChecked="True"/>
<CheckBox Content="weiblich" Margin="3,3,3,3" Click="RBWeiblich_OnClick" x:Name="RBWeiblich" IsChecked="True" />
</WrapPanel>
</GroupBox>
<Grid Column="4" Grid.Row="1" Margin="3,3,3,3">
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="Klienten PLZ">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<WrapPanel Orientation="Horizontal" Margin="1" HorizontalAlignment="Left" Grid.Column="0">
<Label Content ="Plz:" />
<Label x:Name="LabelPlzMitarbeiter" Width="50" />
</WrapPanel>
<WrapPanel Orientation="Horizontal" Margin="1" HorizontalAlignment="Right" Grid.Column="1">
<Label Content="Ort:"/>
<Label x:Name="LabelOrtMitarbeiter" Width="100" />
</WrapPanel>
</Grid>
</GroupBox>
<GroupBox Grid.Row="1" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="Suche nach">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="1" Grid.Column="0">
<Label Content="Plz:" />
<dxe:TextEdit x:Name="PlzMitarbeiter" Height="23" Width="50" VerticalContentAlignment="Center" EditValueChanged="PlzMitarbeiter_OnEditValueChanged" MaskType="RegEx" Mask="\d{1,5}" ShowError="False" />
</WrapPanel>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="1" Grid.Column="1">
<Label Content="Ort:" />
<TextBox x:Name="OrtMitarbeiter" Height="23" Width="100" VerticalContentAlignment="Center" TextChanged="OrtMitarbeiter_OnTextChanged" />
</WrapPanel>
</Grid>
</GroupBox>
</Grid>
</Grid>
<!-- ##################################################################################################################### -->
<!--Bereich einfügen um auszuwählen ob ganzen tag oder nur teilweise -->
<GroupBox Header="Vertretungs Zeitraum" Grid.Row="1" Grid.Column="0" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<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>
<CheckBox Grid.Column="0" Grid.Row="0" Content="ganztägig" Unchecked="KVCheckBox_OnUnchecked" Checked="KVCheckBox_OnChecked"
Grid.ColumnSpan="6" HorizontalAlignment="Right" x:Name="KVCheckBox" />
<Label Grid.Row="1" Grid.Column="0" Content="Vertretung Von" />
<Label Grid.Row="2" Grid.Column="0" Content="Vertretung Bis" />
<Label Grid.Row="1" Grid.Column="2" Content="Uhrzeit Von" x:Name="KVLabelUhrzeitVon" />
<Label Grid.Row="2" Grid.Column="2" Content="Uhrzeit Bis" x:Name="KVLabelUhrzeitBis" />
<dxe:DateEdit x:Name="KVDatepickerVon" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Width="125" EditValueChanged="KVDatepickerVon_OnEditValueChanged"/>
<dxe:DateEdit x:Name="KVDatepickerBis" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="2" Margin="3" Height="23" Width="125" EditValueChanged="KVDatepickerBis_OnEditValueChanged" />
<dxe:TextEdit Grid.Column="3" Grid.Row="1" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="KVDatepicker_UhrzeitVon"
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor"
Height="23" Grid.ColumnSpan="2" Visibility="Visible" Width="75"
Margin="3,3,3,3"/>
<dxe:TextEdit Grid.Column="3" Grid.Row="2" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="KVDatepicker_UhrzeitBis"
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor" Width="75"
Height="23" Grid.ColumnSpan="2" Visibility="Visible"
Margin="3,3,3,3"/>
</Grid>
</GroupBox>
<!--##################################################################-->
<!-- ##################################### unterer 2/3 Mitarbeiter Controll ####################################### -->
<!--<search:EmployeeSearchView Grid.Row="2" Grid.Column="0" x:Name="MitarbeiterVertretungsearchview" Margin="3,3,3,3" ItemSelected="MitarbeiterVertretungsearchview_OnItemSelected" />-->
<!-- Aus der SearchView ein Grid Bauen das mehr Informationen Enthält / zurzeit Name Adresse Arbeitszeit -->
<dxg:GridControl x:Name="GridDataControlKlientVertretungsearchview" Visibility="Visible" Grid.Row="2" Grid.Column="0" AllowDrop="true" Margin="3,3,3,3" VerticalContentAlignment="Center" >
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="Name" Width="155" ReadOnly="True" Header="Name"/>
<dxg:GridColumn FieldName="Postleitzahl" Width="75" ReadOnly="True" Header="Postleitzahl" />
<dxg:GridColumn FieldName="Straße" Width="100" ReadOnly="True" Header="Starße" />
<dxg:GridColumn FieldName="Stadt" Width="105" ReadOnly="True" Header="Stadt" />
<dxg:GridColumn FieldName="Geschlecht" Width="75" ReadOnly="True" Header="Geschlecht" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="True" />
</dxg:GridControl.View>
</dxg:GridControl>
<!-- ################################################################################################## Margin="3,3,3,3"-->
<StackPanel Grid.Row="3" Grid.Column="0" >
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" >
<Button Content="Übernehmen" Width="90" Click="ButtonBase_OnClick" Margin="3,3,3,3" />
<Button Content="Schließen" Width="90" Click="ButtonClose_OnClick" Margin="3,3,3,3"/>
</WrapPanel>
</StackPanel>
<!-- ####################### Closed="popup_Closed" Opened="popup_Opened"###StaysOpen="False"Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" #################################################################################### -->
</Grid>
</Grid>
</GroupBox>
</Window>

View File

@@ -0,0 +1,645 @@
using System;
using System.Linq;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BS.Shared.Extensions;
using System.Windows.Controls;
using System.Net.Sockets;
using System.Threading;
using System.Windows.Threading;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Globalization;
using System.IO;
using System.Net;
using System.Text;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Windows.Media.Imaging;
using BeWo.Controls;
using BeWo.Core;
using BeWo.Core.Service;
using BeWo.View.Detail;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Editors;
using DevExpress.XtraPrinting.Native;
using DevExpress.XtraPrinting.XamlExport;
using Microsoft.Office.Interop.Word;
using Color = System.Drawing.Color;
using KeyEventArgs = System.Windows.Input.KeyEventArgs;
using MessageBox = System.Windows.MessageBox;
using TextBox = System.Windows.Controls.TextBox;
namespace BeWo.SchulbegleitenderDienst
{
public partial class SchulbegleitenderDienstMitarbeiterBearbeitungsView
{
public event EventHandler<CustomKlientEventArgs> RaiseCustomEvent;
//public event EventHandler<CustomKlientEventArgs> RaiseKlientCustomEvent;
private DateTime? _startDate;
private DateTime? _endDate;
private List<SearchKlientViewDaten> _dataListEmployee = new List<SearchKlientViewDaten>();
private readonly long? _employeeOid = 10;
List<SearchKlientViewDaten> aktuelleDaten = new List<SearchKlientViewDaten>();
List<SearchKlientViewDaten> alleMitarbeiterDaten = new List<SearchKlientViewDaten>();
private Dictionary<string, TokenDC> verfuegbareW = new Dictionary<string, TokenDC>();
private Dictionary<string, TokenDC> gesetzteW = new Dictionary<string, TokenDC>();
private Dictionary<string, TokenDC> verfuegbareA = new Dictionary<string, TokenDC>();
private Dictionary<string, TokenDC> gesetzteA = new Dictionary<string, TokenDC>();
public SchulbegleitenderDienstMitarbeiterBearbeitungsView(DateTime? startdate, DateTime? enddate, DateTime currentDate, long? employeeOid)
{
InitializeComponent();
CloseWindow();
SetMitarbeiterKriteria();
SetMitarbeiterInformationen();
GetAllKlienttokens();
LoadAllKlientenIngridData();
rootGroupBox.Header += " / " + currentDate.ToString("dddd dd.MM.yyyy");
_startDate = startdate;
_endDate = enddate;
_employeeOid = employeeOid;
if (_startDate != null)
KVDatepickerVon.EditValue = _startDate;
if (_endDate != null)
KVDatepickerBis.EditValue = _endDate;
//Width = System.Windows.SystemParameters.PrimaryScreenWidth / 2;
//Height = System.Windows.SystemParameters.PrimaryScreenWidth / 2;
}
private void RootGroupBox_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
try
{
DragMove();
}
catch (Exception)
{
}
}
private void CloseWindow()
{
CommandBindings.Add(
new CommandBinding(
ApplicationCommands.Close,
(s, e) =>
{
Close();
}));
}
private void SetMitarbeiterKriteria()
{
var tokenlist = ServiceFacade.DoOperationsServiceSync(r => r.GetAllTokens(SchulbegleitenderZugehörigkeitsTyp.Mitarbeiter, _employeeOid));
foreach (var tkList in tokenlist)
{
if (tkList.TokenTyp == TokenTyp.WunschKriterium)
{
MitarbeiterWunschAnzeige.Text = tkList.Beschreibung + "; ";
}
else if (tkList.TokenTyp == TokenTyp.AusschlussKriterium)
{
MitarbeiterAussschlussAnzeige.Text = tkList.Beschreibung + "; ";
}
}
}
private void GetAllKlienttokens()
{
verfuegbareW.Clear();
gesetzteW.Clear();
verfuegbareA.Clear();
gesetzteA.Clear();
ServiceFacade.DoOperationsServiceAsync(
r => r.GetAllTokens(SchulbegleitenderZugehörigkeitsTyp.Klient, 0), x => this.Dispatch(delegate
{
List<string> wunschliste = new List<string>();
List<string> ausschlussliste = new List<string>();
foreach (var token in x)
{
if (token.TokenTyp == TokenTyp.WunschKriterium)
{
if (!verfuegbareW.ContainsKey(token.Beschreibung))
verfuegbareW.Add(token.Beschreibung, token);
wunschliste.Add(token.Beschreibung);
}
if (token.TokenTyp == TokenTyp.AusschlussKriterium)
{
if (!verfuegbareA.ContainsKey(token.Beschreibung))
verfuegbareA.Add(token.Beschreibung, token);
ausschlussliste.Add(token.Beschreibung);
}
}
KlientWunschAuswahl.ItemsSource = wunschliste;
KlientAussschlussAuswahl.ItemsSource = ausschlussliste;
}));
}
private void KlientWunschAuswahl_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
var item = sender as NullItemComboBox;
if (item.SelectedItem != null && !item.SelectedItem.ToString().Equals(""))
{
KlientWunschAnzeige.Text += item.SelectedItem + "; ";
KlientWunschAuswahl.SelectedIndex = 0;
SortKlientliste();
}
}
private void KlientAussschlussAuswahl_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
var item = sender as NullItemComboBox;
if (item.SelectedItem != null && !item.SelectedItem.ToString().Equals(""))
{
KlientAussschlussAnzeige.Text += item.SelectedItem + "; ";
KlientAussschlussAuswahl.SelectedIndex = 0;
SortKlientliste();
}
}
public void SortKlientliste()
{
List<SearchKlientViewDaten> nSVD = new List<SearchKlientViewDaten>();
var x = ServiceFacade.DoOperationsServiceSync(r => r.GetCustomer2TokenList());
bool isAusschluss = false;
foreach (var daten in alleMitarbeiterDaten)
{
foreach (var item in x)
{
if (daten.CustomerDC.CustomerOid == item.Customer.CustomerOid)
{
foreach (var gesA in gesetzteA)
{
if (item.Token.TokenOid == gesA.Value.TokenOid)
{
if (!nSVD.Contains(daten))
nSVD.Add(daten);
isAusschluss = true;
}
}
foreach (var gesW in gesetzteW)
{
if (item.Token.TokenOid == gesW.Value.TokenOid)
{
if (isAusschluss)
{
isAusschluss = false;
}
else
{
if (!nSVD.Contains(daten))
nSVD.Add(daten);
}
}
}
if (isAusschluss)
{
isAusschluss = false;
}
}
}
}
GridDataControlKlientVertretungsearchview.ItemsSource = nSVD;
GridDataControlKlientVertretungsearchview.RefreshData();
GridDataControlKlientVertretungsearchview.RefreshUI();
aktuelleDaten = nSVD;
}
private void RBMaennlich_OnClick(object sender, RoutedEventArgs e)
{
bool isOtherActive = RBWeiblich.IsChecked.Value;
if (RBMaennlich.IsChecked.Value)
{
GeschlechtsUmwandlung(3, isOtherActive);
}
else
{
GeschlechtsUmwandlung(1, isOtherActive);
}
}
private void RBWeiblich_OnClick(object sender, RoutedEventArgs e)
{
bool isOtherActive = RBMaennlich.IsChecked.Value;
if (RBWeiblich.IsChecked.Value)
{
GeschlechtsUmwandlung(4, isOtherActive);
}
else
{
GeschlechtsUmwandlung(2, isOtherActive);
}
}
private void GeschlechtsUmwandlung(int i, bool isOtherActive)
{
List<SearchKlientViewDaten> newItems = new List<SearchKlientViewDaten>();
// 1 == entferne jungs | 2 == entferne mädels | 3 füge jungs hinzu | 4 füge mädels hinzu
if (i == 1)
{
foreach (var item in aktuelleDaten)
{
if (item.Geschlecht.Equals("Weiblich") && isOtherActive)
{
newItems.Add(item);
}
}
}
else if (i == 2)
{
foreach (var item in aktuelleDaten)
{
if (item.Geschlecht.Equals("Männlich") && isOtherActive)
{
newItems.Add(item);
}
}
}
else if (i == 3)
{
foreach (var item in aktuelleDaten)
{
if (!item.Geschlecht.Equals("Weiblich") && isOtherActive == false)
{
newItems.Add(item);
}
else if (isOtherActive)
{
newItems.Add(item);
}
}
}
else if (i == 4)
{
foreach (var item in aktuelleDaten)
{
if (!item.Geschlecht.Equals("Männlich") && isOtherActive == false)
{
newItems.Add(item);
}
else if (isOtherActive)
{
newItems.Add(item);
}
}
}
GridDataControlKlientVertretungsearchview.ItemsSource = newItems;
GridDataControlKlientVertretungsearchview.RefreshData();
GridDataControlKlientVertretungsearchview.RefreshUI();
}
private void SetMitarbeiterInformationen()
{
var employee = ServiceFacade.DoEmployeeServiceSync(r => r.GetEmployeeByID(_employeeOid.Value));
LabelPlzMitarbeiter.Content = employee.PostalCode;
LabelOrtMitarbeiter.Content = employee.Town;
}
private void PlzMitarbeiter_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
bool ruecksetzpunkt = false;
List<SearchKlientViewDaten> ndaten = new List<SearchKlientViewDaten>();
foreach (var daten in alleMitarbeiterDaten)
{
if (daten.Postleitzahl != null)
{
if (daten.Postleitzahl.StartsWith(PlzMitarbeiter.Text))
{
ndaten.Add(daten);
}
}
if (daten.Postleitzahl != null && PlzMitarbeiter.Text.Length == 0)
{
if (!ruecksetzpunkt)
ruecksetzpunkt = true;
}
}
if (ruecksetzpunkt)
{
GridDataControlKlientVertretungsearchview.ItemsSource = alleMitarbeiterDaten;
//aktuelleDaten = alleMitarbeiterDaten; // sollte sich so verhalten wie bei geschlecht
}
else
{
GridDataControlKlientVertretungsearchview.ItemsSource = ndaten;
// aktuelleDaten = ndaten;
}
GridDataControlKlientVertretungsearchview.RefreshData();
GridDataControlKlientVertretungsearchview.RefreshUI();
}
private void OrtMitarbeiter_OnTextChanged(object sender, TextChangedEventArgs e)
{
bool ruecksetzpunkt = false;
List<SearchKlientViewDaten> ndaten = new List<SearchKlientViewDaten>();
foreach (var daten in alleMitarbeiterDaten)
{
if (daten.Stadt != null)
{
if (daten.Stadt.StartsWith(OrtMitarbeiter.Text))
{
ndaten.Add(daten);
}
}
if (daten.Stadt != null && OrtMitarbeiter.Text.Length == 0)
{
if (!ruecksetzpunkt)
ruecksetzpunkt = true;
}
}
if (ruecksetzpunkt)
{
GridDataControlKlientVertretungsearchview.ItemsSource = alleMitarbeiterDaten;
//aktuelleDaten = alleMitarbeiterDaten;
}
else
{
GridDataControlKlientVertretungsearchview.ItemsSource = ndaten;
// aktuelleDaten = ndaten;
}
GridDataControlKlientVertretungsearchview.RefreshData();
GridDataControlKlientVertretungsearchview.RefreshUI();
}
// ################ Vertretungszeitraumswahl ##############################################
private void KVCheckBox_OnUnchecked(object sender, RoutedEventArgs e)
{
KVDatepicker_UhrzeitBis.Text = "";
KVDatepicker_UhrzeitBis.Visibility = Visibility.Visible;
KVLabelUhrzeitVon.Visibility = Visibility.Visible;
KVDatepicker_UhrzeitVon.Text = "";
KVDatepicker_UhrzeitVon.Visibility = Visibility.Visible;
KVLabelUhrzeitBis.Visibility = Visibility.Visible;
}
private void KVCheckBox_OnChecked(object sender, RoutedEventArgs e)
{
KVDatepicker_UhrzeitBis.Visibility = Visibility.Collapsed;
KVLabelUhrzeitVon.Visibility = Visibility.Collapsed;
KVDatepicker_UhrzeitVon.Visibility = Visibility.Collapsed;
KVLabelUhrzeitBis.Visibility = Visibility.Collapsed;
}
private void KVDatepickerVon_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
DateEdit ed = (DateEdit)sender;
DateTime date = ed.DateTime;
if (date > _endDate.Value || date < _startDate.Value)
{
KVDatepickerVon.EditValue = _startDate.Value;
}
}
private void KVDatepickerBis_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
DateEdit ed = (DateEdit)sender;
DateTime date = ed.DateTime;
if (date < _startDate.Value || date > _endDate.Value)
{
KVDatepickerBis.EditValue = _endDate.Value;
}
}
//################################################################################################
private void LoadAllKlientenIngridData()
{
ServiceFacade.DoCustomerServiceAsync(s => s.GetAllActiveCompactCustomers(), customerList => this.Dispatch(
delegate
{
foreach (var cus in customerList)
{
var geschlecht = cus.Sex == Sex.Male ? "Männlich" : "Weiblich";
_dataListEmployee.Add(
new SearchKlientViewDaten(cus.FirstName + " " + cus.LastName, cus.PostalCode, cus.Street, cus.Town, cus, geschlecht));
}
GridDataControlKlientVertretungsearchview.ItemsSource = _dataListEmployee;
aktuelleDaten = _dataListEmployee;
alleMitarbeiterDaten = _dataListEmployee;
}));
}
private void ButtonClose_OnClick(object sender, RoutedEventArgs e)
{
Close();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
//Rückgabe der Daten
var item = GridDataControlKlientVertretungsearchview.SelectedItem as SearchKlientViewDaten;
CompactCustomerDC x = item.CustomerDC;
if (GridDataControlKlientVertretungsearchview.SelectedItem != null)
{
if (_startDate.HasValue && _endDate.HasValue && KVCheckBox.IsChecked.Value)
{
RaiseCustomEvent(this, new CustomKlientEventArgs(x, _startDate, _endDate));
Close();
}
else if (!KVDatepickerVon.Text.Equals("") && !KVDatepickerBis.Text.Equals("") && _startDate.HasValue && _endDate.HasValue && !KVDatepicker_UhrzeitVon.Text.Equals("") && !KVDatepicker_UhrzeitBis.Text.Equals(""))
{
var von = KVDatepicker_UhrzeitVon.Text;
var bis = KVDatepicker_UhrzeitBis.Text;
if (von.Length < 5)
{
von = "0" + von;
}
if (bis.Length < 5)
{
bis = "0" + bis;
}
DateTime dateVon = DateTime.ParseExact(von, "HH:mm", CultureInfo.CurrentCulture);
DateTime dateBis = DateTime.ParseExact(bis, "HH:mm", CultureInfo.CurrentCulture);
if (dateVon > dateBis)
{
MessageBox.Show("Die Startzeit darf nicht größer sein als die Endzeit.");
}
else
{
DateTime? xVon = new DateTime(_startDate.Value.Year, _startDate.Value.Month, _startDate.Value.Day, dateVon.Hour, dateVon.Minute, dateVon.Second);
DateTime? xBis = new DateTime(_endDate.Value.Year, _endDate.Value.Month, _endDate.Value.Day, dateBis.Hour, dateBis.Minute, dateBis.Second);
RaiseCustomEvent(this, new CustomKlientEventArgs(x, xVon, xBis));
Close();
}
}
else
{
if (_startDate.HasValue && _endDate.HasValue && (KVDatepicker_UhrzeitVon.Text.Equals("") || KVDatepicker_UhrzeitBis.Text.Equals("")) && !KVCheckBox.IsChecked.Value)
{
MessageBox.Show("Bitte Geben sie eine Start Uhrzeit und eine End Uhrzeit an.");
}
else
{
MessageBox.Show("Bitte Geben sie ein Start und ein Enddatum an.");
}
}
}
else
{
MessageBox.Show("Bitte wählen sie zuerst einen Klienten aus.");
}
}
}
public class CustomKlientEventArgs : EventArgs
{
private CompactCustomerDC dc;
private DateTime? startdt;
private DateTime? enddt;
public CustomKlientEventArgs(CompactCustomerDC s, DateTime? start, DateTime? ende)
{
dc = s;
startdt = start;
enddt = ende;
}
public CompactCustomerDC Message
{
get { return dc; }
}
public DateTime? StartDate
{
get { return startdt; }
}
public DateTime? EndDate
{
get { return enddt; }
}
}
public class SearchKlientViewDaten
{
public string Name { get; set; }
public string Postleitzahl { get; set; }
public string Straße { get; set; }
public string Stadt { get; set; }
public string Geschlecht { get; set; }
public CompactCustomerDC CustomerDC { get; set; }
public SearchKlientViewDaten(string name, string postleitzahl, string strasse, string stadt, CompactCustomerDC comcudc, string geschlecht)
{
Name = name;
Postleitzahl = postleitzahl;
Straße = strasse;
Stadt = stadt;
CustomerDC = comcudc;
Geschlecht = geschlecht;
}
}
}

View File

@@ -166,6 +166,10 @@ namespace BeWo.ServiceProxy
public interface IEmployeeService
{
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/GetEmployeeByID", ReplyAction="http://tempuri.org/IEmployeeService/GetEmployeeByIDResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/GetEmployeeByIDBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.EmployeeDC GetEmployeeByID(long employeeOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/ArchiveEmployee", ReplyAction="http://tempuri.org/IEmployeeService/ArchiveEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/ArchiveEmployeeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void ArchiveEmployee(long pOid, long pVersion);
@@ -563,6 +567,11 @@ namespace BeWo.ServiceProxy
{
}
public BS.Shared.DataContracts.EmployeeDC GetEmployeeByID(long employeeOid)
{
return base.Channel.GetEmployeeByID(employeeOid);
}
public void ArchiveEmployee(long pOid, long pVersion)
{
base.Channel.ArchiveEmployee(pOid, pVersion);
@@ -1304,6 +1313,13 @@ namespace BeWo.ServiceProxy
"", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.CustomerTokenRelationDC> LoadCustomerTokenRelationsByOid(System.Collections.Generic.List<long> pOids);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetPersonWithCustomerOid", ReplyAction="http://tempuri.org/ICustomerService/GetPersonWithCustomerOidResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetPersonWithCustomerOidBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeDC))]
BS.Shared.DataContracts.PersonDC GetPersonWithCustomerOid(long oid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/ArchiveCustomer", ReplyAction="http://tempuri.org/ICustomerService/ArchiveCustomerResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/ArchiveCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void ArchiveCustomer(long pOid, long pVersion);
@@ -2068,6 +2084,11 @@ namespace BeWo.ServiceProxy
return base.Channel.LoadCustomerTokenRelationsByOid(pOids);
}
public BS.Shared.DataContracts.PersonDC GetPersonWithCustomerOid(long oid)
{
return base.Channel.GetPersonWithCustomerOid(oid);
}
public void ArchiveCustomer(long pOid, long pVersion)
{
base.Channel.ArchiveCustomer(pOid, pVersion);
@@ -4253,6 +4274,12 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetEmployee2TokenListBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeTokenRelationDC> GetEmployee2TokenList();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/VertretungsMitarbeiterListeWoechentlich", ReplyAction="http://tempuri.org/IOperationsService/VertretungsMitarbeiterListeWoechentlichResp" +
"onse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/VertretungsMitarbeiterListeWoechentlichBeWo" +
"FaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.VertretungsListeMitarbeiterItemsDC> VertretungsMitarbeiterListeWoechentlich(System.DateTime start, System.DateTime ende);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeactivateInvoices", ReplyAction="http://tempuri.org/IOperationsService/DeactivateInvoicesResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeactivateInvoicesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeactivateInvoices(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceDC> invoices);
@@ -5033,6 +5060,11 @@ namespace BeWo.ServiceProxy
return base.Channel.GetEmployee2TokenList();
}
public System.Collections.Generic.List<BS.Shared.DataContracts.VertretungsListeMitarbeiterItemsDC> VertretungsMitarbeiterListeWoechentlich(System.DateTime start, System.DateTime ende)
{
return base.Channel.VertretungsMitarbeiterListeWoechentlich(start, ende);
}
public void DeactivateInvoices(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceDC> invoices)
{
base.Channel.DeactivateInvoices(invoices);

View File

@@ -2067,7 +2067,7 @@ namespace BeWo.Data.Access
}
return a;
}
}
}
}

View File

@@ -4,8 +4,10 @@ using System.Linq;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Core;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.SBD.Vertretung
{
@@ -26,6 +28,10 @@ namespace BeWo.Service.SBD.Vertretung
public List<VertretungsListeItemsDC> vertretungsliste = new List<VertretungsListeItemsDC>();
public List<EmployeeDC> EmployeeListe = new List<EmployeeDC>();
public List<VertretungsListeMitarbeiterItemsDC> Mitarbeiterliste = new List<VertretungsListeMitarbeiterItemsDC>();
private readonly List<long> _vorhandeneCustomerOidListe = new List<long>();
public VertretungsAlgorithmus(VertretungsListeDC sbd , DateTime date)
@@ -49,398 +55,556 @@ namespace BeWo.Service.SBD.Vertretung
ErstelleItemVonWoechentlicherAbsencetimes();
}
public VertretungsAlgorithmus(DateTime start, DateTime ende)
{
_startDate = start;
_endDate = ende;
//erstmal hier hinein und dann mal kuken
GetAlleMitarbeiterForWochenanzeige();
}
public void Hauptbetreuungen()
{
try
{
foreach (var xa in _schulbegleitenderDienst.Employeesliste)
{
List<long> klientoids = new List<long>();
foreach (var xa in _schulbegleitenderDienst.Employeesliste)
{
List<long> klientoids = new List<long>();
Employee e = DAOFactory.GenericDAO.LoadByID<Employee>(xa.EmployeeOid);
Employee e = DAOFactory.GenericDAO.LoadByID<Employee>(xa.EmployeeOid);
foreach (var e2c in e.Employee2CustomerList)
{
foreach (var v2o in e2c.ValueList)
{
if (v2o.Entry.Type == ValueListEntryType.StaffRoleType && v2o.Entry.SystemEntryID.HasValue &&
v2o.Entry.SystemEntryID.Value == SystemEntryID.EmployeeRoleMainAttendant)
{
klientoids.Add(e2c.CustomerOid.Value);
}
}
}
foreach (var e2c in e.Employee2CustomerList)
{
foreach (var v2o in e2c.ValueList)
{
if (v2o.Entry.Type == ValueListEntryType.StaffRoleType && v2o.Entry.SystemEntryID.HasValue &&
v2o.Entry.SystemEntryID.Value == SystemEntryID.EmployeeRoleMainAttendant)
{
klientoids.Add(e2c.CustomerOid.Value);
}
}
}
if (!_employee2CustomerHaupt.ContainsKey(xa.EmployeeOid))
_employee2CustomerHaupt.Add(xa.EmployeeOid, klientoids);
if (!_employee2CustomerHaupt.ContainsKey(xa.EmployeeOid))
_employee2CustomerHaupt.Add(xa.EmployeeOid, klientoids);
}
}
_schulbegleitenderDienst.Employee2CustomerHauptbetreuung = _employee2CustomerHaupt;
_schulbegleitenderDienst.Employee2CustomerHauptbetreuung = _employee2CustomerHaupt;
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
//----- Tages Vertretung
private void ErstelleItemVonVertretungen()
//----- Tages Vertretung // ggf noch anpassen
#region Tagesanzeige
private void ErstelleItemVonVertretungen()
{
_vorhandeneCustomerOidListe.Clear();
VertretungsListeItemsDC item = new VertretungsListeItemsDC();
try
{
_vorhandeneCustomerOidListe.Clear();
VertretungsListeItemsDC item = new VertretungsListeItemsDC();
foreach (var vertritt in _schulbegleitenderDienst.Vertretungsliste)
{
item = BuildVertertungslisteItems();
foreach (var vertritt in _schulbegleitenderDienst.Vertretungsliste)
{
item = BuildVertertungslisteItems();
//Vertretungsdc wird übergeben
item.Vertretung = vertritt;
//Vertretungsdc wird übergeben
item.Vertretung = vertritt;
if (vertritt.VertretungsZeitraumVon.Date <= _absenceTime.Date && vertritt.VertretungsZeitraumBis.Date >= _absenceTime.Date)
{
foreach (var mit in _schulbegleitenderDienst.Employeesliste)
{
if (vertritt.EmployeeOid == mit.EmployeeOid)
{
item.EmployeeName = mit.FirstName + " " + mit.LastName;
if (vertritt.VertretungsZeitraumVon.Date <= _absenceTime.Date && vertritt.VertretungsZeitraumBis.Date >= _absenceTime.Date)
{
foreach (var mit in _schulbegleitenderDienst.Employeesliste)
{
if (vertritt.EmployeeOid == mit.EmployeeOid)
{
item.EmployeeName = mit.FirstName + " " + mit.LastName;
item.EmployeeOid = mit.EmployeeOid;
}
item.EmployeeOid = mit.EmployeeOid;
}
if (vertritt.VertretenderMitarbeiterOid == mit.EmployeeOid)
{
item.VertretenderMitarbeiter = mit.FirstName + " " + mit.LastName;
if (vertritt.VertretenderMitarbeiterOid == mit.EmployeeOid)
{
item.VertretenderMitarbeiter = mit.FirstName + " " + mit.LastName;
item.VertetenderMit = mit.EmployeeOid;
}
item.VertetenderMit = mit.EmployeeOid;
}
foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
{
if (hauptbetreuung.Key == vertritt.EmployeeOid && vertritt.EmployeeOid == mit.EmployeeOid)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
foreach (var val in hauptbetreuung.Value)
{
if (val == cust.CustomerOid)
{
if (cust.CustomerOid == vertritt.CustomerOid)
{
_vorhandeneCustomerOidListe.Add(cust.CustomerOid);
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
}
}
}
}
foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
{
if (hauptbetreuung.Key == vertritt.EmployeeOid && vertritt.EmployeeOid == mit.EmployeeOid)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
foreach (var val in hauptbetreuung.Value)
{
if (val == cust.CustomerOid)
{
if (cust.CustomerOid == vertritt.CustomerOid)
{
_vorhandeneCustomerOidListe.Add(cust.CustomerOid);
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
}
}
}
}
foreach (var ab in _schulbegleitenderDienst.AbsenceTimeliste)
{
if (vertritt.AbsenceTimeOid == ab.AbsenceTimeOid)
{
item.Abwesenheitskategorie = ab.Reason;
foreach (var ab in _schulbegleitenderDienst.AbsenceTimeliste)
{
if (vertritt.AbsenceTimeOid == ab.AbsenceTimeOid)
{
item.Abwesenheitskategorie = ab.Reason;
AddKrankheitsZeitraumAndMeldungToItem(item, ab);
AddKrankheitsZeitraumAndMeldungToItem(item, ab);
item.Absencetime = ab;
item.Absencetime = ab;
AddArbeitszeitToItem(item, vertritt.EmployeeOid,1);
AddArbeitszeitToItem(item, vertritt.EmployeeOid,1);
if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (emp.EmployeeOid == ab.EmployeeOid)
{
item.EmployeeOid = ab.EmployeeOid.Value;
item.EmployeeName = emp.FirstName + " " + emp.LastName;
}
}
}
}
if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (emp.EmployeeOid == ab.EmployeeOid)
{
item.EmployeeOid = ab.EmployeeOid.Value;
item.EmployeeName = emp.FirstName + " " + emp.LastName;
}
}
}
}
}
}
//überprüfung durchführen und ggf mehrere Davon anlegen. wegen vertretungszeiten bei krankheitszeiträumen
//überprüfung durchführen und ggf mehrere Davon anlegen. wegen vertretungszeiten bei krankheitszeiträumen
//Abfragen ob überhaupt ein Employee Vorhanden ist.
vertretungsliste.Add(item);
//Abfragen ob überhaupt ein Employee Vorhanden ist.
vertretungsliste.Add(item);
//if (vertritt.VertretungsZeitraumVon != ab.Start.Value && vertritt.VertretungsZeitraumBis != ab.End.Value) für die zeiten inerghalb eines tages
//{
//if (vertritt.VertretungsZeitraumVon != ab.Start.Value && vertritt.VertretungsZeitraumBis != ab.End.Value) für die zeiten inerghalb eines tages
//{
// add der vertretungsliste einen Weiteren Tag der nicht
// allerdings müsste da wieder ne neue vertretung erstellt werden.
// desweiteren müsste die range der Stunden ermittelt werden.
// vertretungsliste.Add(item);
// add der vertretungsliste einen Weiteren Tag der nicht
// allerdings müsste da wieder ne neue vertretung erstellt werden.
// desweiteren müsste die range der Stunden ermittelt werden.
// vertretungsliste.Add(item);
//}
}
}
//}
}
}
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
private void ErstelleItemVonAbsencetimes()
{
VertretungsListeItemsDC item = new VertretungsListeItemsDC();
try
{
VertretungsListeItemsDC item = new VertretungsListeItemsDC();
foreach (var ars in _schulbegleitenderDienst.AbsenceTimeliste)
{
item = BuildVertertungslisteItems();
foreach (var ars in _schulbegleitenderDienst.AbsenceTimeliste)
{
item = BuildVertertungslisteItems();
item.Abwesenheitskategorie = ars.Reason;
item.Absencetime = ars;
item.Abwesenheitskategorie = ars.Reason;
item.Absencetime = ars;
AddKrankheitsZeitraumAndMeldungToItem(item, ars);
AddKrankheitsZeitraumAndMeldungToItem(item, ars);
if (ars.Start.Value.Date <= _absenceTime.Date && ars.End.Value.Date >= _absenceTime.Date)
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (ars.EmployeeOid == emp.EmployeeOid)
{
item.EmployeeName = emp.FirstName + " " + emp.LastName;
item.EmployeeOid = emp.EmployeeOid;
}
if (ars.Start.Value.Date <= _absenceTime.Date && ars.End.Value.Date >= _absenceTime.Date)
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (ars.EmployeeOid == emp.EmployeeOid)
{
item.EmployeeName = emp.FirstName + " " + emp.LastName;
item.EmployeeOid = emp.EmployeeOid;
}
foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
{
if (hauptbetreuung.Key == emp.EmployeeOid && emp.EmployeeOid == ars.EmployeeOid)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
foreach (var val in hauptbetreuung.Value)
{
if (val == cust.CustomerOid)
{
if (!_vorhandeneCustomerOidListe.Contains(cust.CustomerOid))
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
}
}
}
foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
{
if (hauptbetreuung.Key == emp.EmployeeOid && emp.EmployeeOid == ars.EmployeeOid)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
foreach (var val in hauptbetreuung.Value)
{
if (val == cust.CustomerOid)
{
if (!_vorhandeneCustomerOidListe.Contains(cust.CustomerOid))
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
}
}
}
if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (emp.EmployeeOid == ars.EmployeeOid)
{
item.EmployeeOid = ars.EmployeeOid.Value;
item.EmployeeName = emp.FirstName + " " + emp.LastName;
if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (emp.EmployeeOid == ars.EmployeeOid)
{
item.EmployeeOid = ars.EmployeeOid.Value;
item.EmployeeName = emp.FirstName + " " + emp.LastName;
AddArbeitszeitToItem(item, emp.EmployeeOid,1);
}
}
}
AddArbeitszeitToItem(item, emp.EmployeeOid,1);
}
}
}
//Sonderfall wenn keine vertertung verfügbar und employee nicht gegeben aber absence eine customer oid besitzt
if (item.Customer.Count == 0 && item.EmployeeOid == 0 && ars.CustomerOid.Value != 0)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
if (ars.CustomerOid.Value == cust.CustomerOid)
{
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
//Sonderfall wenn keine vertertung verfügbar und employee nicht gegeben aber absence eine customer oid besitzt
if (item.Customer.Count == 0 && item.EmployeeOid == 0 && ars.CustomerOid.Value != 0)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
if (ars.CustomerOid.Value == cust.CustomerOid)
{
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
//if (item.Customer.Count != 0 && item.EmployeeOid != 0 )//hier auch employee ob vorhanden abfragen // bearbeiten
//{
vertretungsliste.Add(item);
//}
//if (item.Customer.Count != 0 && item.EmployeeOid != 0 )//hier auch employee ob vorhanden abfragen // bearbeiten
//{
vertretungsliste.Add(item);
//}
}
}
}
}
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
//---------
#endregion
//---------
//----- Bearbeiten --------------------------------------------------------------------------------------------
//----- Woechentliche Vertretungen, Die anzeige jeweiliger tage muss angepasst werden wenn zum beispiel eine
//krabkmeldung mehrere vertretungen zugewiesen bekomment hat. Die müssen dann richtig angezeigt werden.
//----- Wochentliche Vertretungen date abfrage muss hier gerichtet werden ?? habe ich das nicht bereits erledigt
private void ErstelleItemVonWoechentlicherVertretungen()
#region Klienten Wochenanzeige
private void ErstelleItemVonWoechentlicherVertretungen()
{
_vorhandeneCustomerOidListe.Clear();
VertretungsListeItemsDC item = new VertretungsListeItemsDC();
try
{
_vorhandeneCustomerOidListe.Clear();
VertretungsListeItemsDC item = new VertretungsListeItemsDC();
foreach (var vertritt in _schulbegleitenderDienst.Vertretungsliste)
{
item = BuildVertertungslisteItems();
foreach (var vertritt in _schulbegleitenderDienst.Vertretungsliste)
{
item = BuildVertertungslisteItems();
//Vertretungsdc wird übergeben
item.Vertretung = vertritt;
//Vertretungsdc wird übergeben
item.Vertretung = vertritt;
if (vertritt.VertretungsZeitraumVon.Date <= _endDate.Date && vertritt.VertretungsZeitraumBis.Date >= _startDate.Date)
{
foreach (var mit in _schulbegleitenderDienst.Employeesliste)
{
if (vertritt.EmployeeOid == mit.EmployeeOid)
{
item.EmployeeName = mit.FirstName + " " + mit.LastName;
if (vertritt.VertretungsZeitraumVon.Date <= _endDate.Date && vertritt.VertretungsZeitraumBis.Date >= _startDate.Date)
{
foreach (var mit in _schulbegleitenderDienst.Employeesliste)
{
if (vertritt.EmployeeOid == mit.EmployeeOid)
{
item.EmployeeName = mit.FirstName + " " + mit.LastName;
item.EmployeeOid = mit.EmployeeOid;
}
item.EmployeeOid = mit.EmployeeOid;
}
if (vertritt.VertretenderMitarbeiterOid == mit.EmployeeOid)
{
item.VertretenderMitarbeiter = mit.FirstName + " " + mit.LastName;
if (vertritt.VertretenderMitarbeiterOid == mit.EmployeeOid)
{
item.VertretenderMitarbeiter = mit.FirstName + " " + mit.LastName;
item.VertetenderMit = mit.EmployeeOid;
}
item.VertetenderMit = mit.EmployeeOid;
}
foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
{
if (hauptbetreuung.Key == vertritt.EmployeeOid && vertritt.EmployeeOid == mit.EmployeeOid)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
foreach (var val in hauptbetreuung.Value)
{
if (val == cust.CustomerOid)
{
if (cust.CustomerOid == vertritt.CustomerOid)
{
_vorhandeneCustomerOidListe.Add(cust.CustomerOid);
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
}
}
}
}
foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
{
if (hauptbetreuung.Key == vertritt.EmployeeOid && vertritt.EmployeeOid == mit.EmployeeOid)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
foreach (var val in hauptbetreuung.Value)
{
if (val == cust.CustomerOid)
{
if (cust.CustomerOid == vertritt.CustomerOid)
{
_vorhandeneCustomerOidListe.Add(cust.CustomerOid);
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
}
}
}
}
foreach (var ab in _schulbegleitenderDienst.AbsenceTimeliste)
{
if (vertritt.AbsenceTimeOid == ab.AbsenceTimeOid)
{
item.Abwesenheitskategorie = ab.Reason;
foreach (var ab in _schulbegleitenderDienst.AbsenceTimeliste)
{
if (vertritt.AbsenceTimeOid == ab.AbsenceTimeOid)
{
item.Abwesenheitskategorie = ab.Reason;
AddKrankheitsZeitraumAndMeldungToItem(item, ab);
AddKrankheitsZeitraumAndMeldungToItem(item, ab);
item.Absencetime = ab;
item.Absencetime = ab;
AddArbeitszeitToItem(item, vertritt.EmployeeOid,2);
AddArbeitszeitToItem(item, vertritt.EmployeeOid,2);
if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (emp.EmployeeOid == ab.EmployeeOid)
{
item.EmployeeOid = ab.EmployeeOid.Value;
item.EmployeeName = emp.FirstName + " " + emp.LastName;
}
}
}
}
}
if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (emp.EmployeeOid == ab.EmployeeOid)
{
item.EmployeeOid = ab.EmployeeOid.Value;
item.EmployeeName = emp.FirstName + " " + emp.LastName;
}
}
}
}
}
//Abfragen ob Employee vorhanden
vertretungsliste.Add(item);
}
//Abfragen ob Employee vorhanden
vertretungsliste.Add(item);
}
}
}
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
private void ErstelleItemVonWoechentlicherAbsencetimes()
{
VertretungsListeItemsDC item = new VertretungsListeItemsDC();
try
{
VertretungsListeItemsDC item = new VertretungsListeItemsDC();
foreach (var ars in _schulbegleitenderDienst.AbsenceTimeliste)
{
item = BuildVertertungslisteItems();
foreach (var ars in _schulbegleitenderDienst.AbsenceTimeliste)
{
item = BuildVertertungslisteItems();
item.Abwesenheitskategorie = ars.Reason;
item.Absencetime = ars;
item.Abwesenheitskategorie = ars.Reason;
item.Absencetime = ars;
AddKrankheitsZeitraumAndMeldungToItem(item, ars);
AddKrankheitsZeitraumAndMeldungToItem(item, ars);
if (ars.Start.Value.Date <= _endDate.Date && ars.End.Value.Date >= _startDate.Date )
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (ars.EmployeeOid == emp.EmployeeOid)
{
item.EmployeeName = emp.FirstName + " " + emp.LastName;
item.EmployeeOid = emp.EmployeeOid;
}
if (ars.Start.Value.Date <= _endDate.Date && ars.End.Value.Date >= _startDate.Date )
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (ars.EmployeeOid == emp.EmployeeOid)
{
item.EmployeeName = emp.FirstName + " " + emp.LastName;
item.EmployeeOid = emp.EmployeeOid;
}
foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
{
if (hauptbetreuung.Key == emp.EmployeeOid && emp.EmployeeOid == ars.EmployeeOid)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
foreach (var val in hauptbetreuung.Value)
{
if (val == cust.CustomerOid)
{
if (!_vorhandeneCustomerOidListe.Contains(cust.CustomerOid))
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
}
}
}
foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
{
if (hauptbetreuung.Key == emp.EmployeeOid && emp.EmployeeOid == ars.EmployeeOid)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
foreach (var val in hauptbetreuung.Value)
{
if (val == cust.CustomerOid)
{
if (!_vorhandeneCustomerOidListe.Contains(cust.CustomerOid))
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
}
}
}
if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (emp.EmployeeOid == ars.EmployeeOid)
{
item.EmployeeOid = ars.EmployeeOid.Value;
item.EmployeeName = emp.FirstName + " " + emp.LastName;
if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
{
foreach (var emp in _schulbegleitenderDienst.Employeesliste)
{
if (emp.EmployeeOid == ars.EmployeeOid)
{
item.EmployeeOid = ars.EmployeeOid.Value;
item.EmployeeName = emp.FirstName + " " + emp.LastName;
AddArbeitszeitToItem(item, emp.EmployeeOid,2);
}
}
}
AddArbeitszeitToItem(item, emp.EmployeeOid,2);
}
}
}
//Sonderfall wenn keine vertertung verfügbar und employee nicht gegeben aber absence eine customer oid besitzt
if (item.Customer.Count == 0 && item.EmployeeOid == 0 && ars.CustomerOid.Value != 0)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
if (ars.CustomerOid.Value == cust.CustomerOid)
{
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
//Sonderfall wenn keine vertertung verfügbar und employee nicht gegeben aber absence eine customer oid besitzt
if (item.Customer.Count == 0 && item.EmployeeOid == 0 && ars.CustomerOid.Value != 0)
{
foreach (var cust in _schulbegleitenderDienst.Customersliste)
{
if (ars.CustomerOid.Value == cust.CustomerOid)
{
item.Customer.Add(cust.CustomerOid, cust.FullName);
}
}
}
// if (item.Customer.Count != 0 item.EmployeeOid != 0)//hier auch employee ob vorhanden abfragen // bearbeiten
// {
vertretungsliste.Add(item);
// }
// if (item.Customer.Count != 0 item.EmployeeOid != 0)//hier auch employee ob vorhanden abfragen // bearbeiten
// {
vertretungsliste.Add(item);
// }
}
}
}
}
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
//----
#endregion
//-------------------------------------------------------------------------------------------------------------
//########## Neuer bereich der ausprobiert werden soll
private void ErmittleTimeRange(DateTime start, DateTime end, DateTime VertretStart, DateTime VertretEnd)
//-------------- Vorhandene Mitarbeiter die Keiner Vertretung zugewiesen sind.
#region Mitarbeiter Wochenanzeige
public void GetAlleMitarbeiterForWochenanzeige()
{
try
{
var x = DAOFactory.GenericDAO.GetAllActive<Employee>();
var y = DCEntityMapper.MapperFactory.EmployeeDC_Employee.MapToNewDCs(x);
EmployeeListe = y;
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public List<VertretungsListeMitarbeiterItemsDC> ErstelleItemVonWoechentlicherVorhandenerMitarbeiterVertretungen()
{
try
{
//Code Für die Mitarbeiter ansicht
foreach (var employee in EmployeeListe)
{
// eine für die Mitarbeiter Wochenanzeige angepasste Liste Zurück liefern
Dictionary<DateTime, CompactCustomerDC> dict = new Dictionary<DateTime, CompactCustomerDC>();
//mit vertretung vergleichen ?? && nur mitarbeiter mitnehmen die noch einen freien tag in der vertretung haben ??
//foreach (var abs in employee.AbsenceTimes)
//{
// if (_startDate >= abs.Start.Value && _endDate <= abs.End.Value)
// {
// }
//}
//foreach (var rel in employee.RelatedCustomers)
//{
// if (!dict.ContainsKey(DateTime.Now))
// dict.Add(DateTime.Now, rel.Customer);
//}
VertretungsListeMitarbeiterItemsDC mVert = new VertretungsListeMitarbeiterItemsDC()
{
Employee = employee.FirstName +" "+ employee.LastName,
EmployeeOid = employee.EmployeeOid,
WochenPlan = dict,
};
if (employee.AbsenceTimes != null && employee.AbsenceTimes.Count > 0)
{
mVert.AbsenceStartDate = employee.AbsenceTimes[0].Start;
mVert.AbsenceEndDate = employee.AbsenceTimes[0].End;
}
if (employee.RelatedCustomers != null && employee.RelatedCustomers.Count > 0)
{
mVert.Customer = employee.RelatedCustomers[0].Customer;
}
Mitarbeiterliste.Add(mVert);
}
return Mitarbeiterliste;
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
private void ErstelleItemVonWoechentklicherVorhandenerMitarbeiterAbsencetimes()
{
try
{
//Mall sehen ob das gebraucht wird.
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
#endregion
//---------------------------------------------------------------------------
//########## Neuer bereich der ausprobiert werden soll #########################################################################
#region Ermittle time Range ,Erstelle neue Vertretung
private void ErmittleTimeRange(DateTime start, DateTime end, DateTime vertretStart, DateTime vertretEnd)
{
var startzeit = start.TimeOfDay;
var endzeit = end.TimeOfDay;
// der Zeitraum der Vertretung muss auch überprüft werden.
if (startzeit > VertretEnd.TimeOfDay && endzeit < VertretStart.TimeOfDay)
if (startzeit > vertretEnd.TimeOfDay && endzeit < vertretStart.TimeOfDay)
{
// Haben wir eine Zeitraum überschneidung, dann muss noch überprüft werden ob die Zeit sich überschneidet
// denn wenn nicht, dann soll eine Weitere Vertretung erstellt werden die die Ausstehende Zeit anzeigt oer so.
@@ -470,10 +634,12 @@ namespace BeWo.Service.SBD.Vertretung
DAOFactory.GenericDAO.Insert(x);
}
#endregion
//############################# ende Probe ####################################################################################
//############################# ende Probe
#region Behilfsmethoden
private void AddKrankheitsZeitraumAndMeldungToItem(VertretungsListeItemsDC item, AbsenceTimeDC ars)
private void AddKrankheitsZeitraumAndMeldungToItem(VertretungsListeItemsDC item, AbsenceTimeDC ars)
{
if (ars.Start.Value.Date != ars.End.Value.Date)
{
@@ -586,5 +752,11 @@ namespace BeWo.Service.SBD.Vertretung
return item;
}
}
//neu Für Mitarbeiter Woche
//private
}
#endregion
}

View File

@@ -640,5 +640,9 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<CustomerTokenRelationDC> LoadCustomerTokenRelationsByOid(IEnumerable<long> pOids);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
PersonDC GetPersonWithCustomerOid(long oid);
}
}

View File

@@ -351,5 +351,9 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<EmployeeTokenRelationDC> LoadEmployeeTokenRelationsByOid(IEnumerable<long> pOids);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
EmployeeDC GetEmployeeByID(long employeeOid);
}
}

View File

@@ -665,5 +665,9 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<EmployeeTokenRelationDC> GetEmployee2TokenList();
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<VertretungsListeMitarbeiterItemsDC> VertretungsMitarbeiterListeWoechentlich(DateTime start, DateTime ende);
}
}

View File

@@ -3447,6 +3447,23 @@ namespace BeWo.Service.ServiceImplementations
}
}
public PersonDC GetPersonWithCustomerOid(long oid)
{
try
{
var klient = DAOFactory.GenericDAO.GetByID<Customer>(oid);
var person = MapperFactory.PersonDC_Person.MapToNewDC(klient.Person);
return person;
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
}
internal struct WohnheimbuchungsIntervallStruct

View File

@@ -1320,6 +1320,20 @@ namespace BeWo.Service.ServiceImplementations
}
}
public EmployeeDC GetEmployeeByID(long employeeOid)
{
try
{
var employee = DAOFactory.GenericDAO.GetByID<Employee>(employeeOid);
return MapperFactory.EmployeeDC_Employee.MapToNewDC(employee);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
}
}

View File

@@ -3841,6 +3841,22 @@ namespace BeWo.Service.ServiceImplementations
}
}
public List<VertretungsListeMitarbeiterItemsDC> VertretungsMitarbeiterListeWoechentlich(DateTime start, DateTime ende)
{
try
{
VertretungsAlgorithmus alorythmus = new VertretungsAlgorithmus(start, ende);
var x = alorythmus.ErstelleItemVonWoechentlicherVorhandenerMitarbeiterVertretungen();
return x;
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
//hole die Range an vertretungen raus raus
public List<VertretungsListeItemsDC> VertretungsListeWoechentlich(DateTime start, DateTime ende)
{

View File

@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using BS.Shared.DataContracts.Compact;
using DevExpress.Schedule;
namespace BS.Shared.DataContracts
{
[DataContract]
public class VertretungsListeMitarbeiterItemsDC : IDataContract
{
[DataMember]
public string Employee { get; set; }
[DataMember]
public Dictionary<DateTime,CompactCustomerDC> WochenPlan { get; set; }
[DataMember]
public long? EmployeeOid { get; set; }
[DataMember]
public DateTime? AbsenceStartDate { get; set; }
[DataMember]
public DateTime? AbsenceEndDate { get; set; }
[DataMember]
public CompactCustomerDC Customer { get; set; }
}
}

View File

@@ -177,6 +177,7 @@
<Compile Include="DataContracts\ArbeitszeitEintragDC.cs" />
<Compile Include="DataContracts\CustomerTokenRelationDC.cs" />
<Compile Include="DataContracts\EmployeeTokenRelationDC.cs" />
<Compile Include="DataContracts\VertretungsListeMitarbeiterItemsDC.cs" />
<Compile Include="DataContracts\TokenDC.cs" />
<Compile Include="DataContracts\VertretungsListeItemsDC.cs" />
<Compile Include="DataContracts\VertretungsListeDC.cs" />