update Schulbegleitender Dienst

This commit is contained in:
Waldi
2017-04-20 12:59:45 +02:00
parent fafba7d11d
commit f1c63136c1
3 changed files with 255 additions and 147 deletions

View File

@@ -17,6 +17,7 @@
xmlns:controls1="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:search="clr-namespace:BeWo.View.Search"
xmlns:themes="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView.Resources>
<ResourceDictionary>
@@ -229,10 +230,10 @@
</Grid>
<!-- #####################################################################################IsLeft="False"##################### -->
<!-- ###################################AutoGenerateColumns="AddNew"BasedOn="{StaticResource {themes:GridRowThemeKey ResourceKey=CellStyle}}"##################################################IsLeft="False"##################### -->
<dxg:GridControl AutoGenerateColumns="AddNew" x:Name="GridDataControl" Grid.Row="1" Grid.ColumnSpan="3" AllowDrop="true" Margin="5,5,5,5" VerticalContentAlignment="Center" >
<dxg:GridControl.Columns>
<dxg:GridControl x:Name="GridDataControl" Grid.Row="1" Grid.ColumnSpan="3" AllowDrop="true" Margin="5,5,5,5" VerticalContentAlignment="Center">
<dxg:GridControl.Columns >
<!--<dxe:ComboBoxEditSettings x:Name="ComboBoxEditSettingsVertretung"/>-->
<dxg:GridColumn FieldName="Vertretung" Width="250" x:Name="ColumnVertretung" >
@@ -249,32 +250,57 @@
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Kunde" Width="200" >
<dxg:GridColumn FieldName="Kunde" Width="200" >
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:CellContentPresenter}">
<Setter Property="TextBlock.Foreground" Value="Black" />
<Style TargetType="{x:Type dxg:CellContentPresenter}" >
<Style.Triggers>
<DataTrigger Binding="{Binding Path=SchulbegleitenderDienst.IsKunde}" Value="True">
<Setter Property="Background" Value="Lime" />
<Setter Property="TextBlock.Foreground" Value="Black" />
<DataTrigger Binding="{Binding RowData.Row.IsKunde}" Value="0">
<Setter Property="Background" Value="#7fff7f" />
</DataTrigger>
</Style.Triggers>
</Style>
</dxg:GridColumn.CellStyle>
</dxg:GridColumn>
<dxg:GridColumn FieldName="KrankerMitarbeiter" Width="200" />
<dxg:GridColumn FieldName="KrankerMitarbeiter" Width="200" >
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:CellContentPresenter}">
<Style.Triggers>
<DataTrigger Binding="{Binding RowData.Row.IsMitarbeiter}" Value="0">
<Setter Property="Background" Value="#ff3232" />
</DataTrigger>
</Style.Triggers>
</Style>
</dxg:GridColumn.CellStyle>
</dxg:GridColumn>
<dxg:GridColumn FieldName="KrankheitsMeldung" Width="200" />
<dxg:GridColumn FieldName="KrankheitsZeitraum" Width="200"/>
<dxg:GridColumn FieldName="AbwesenheitsKategorie" Width="200"/>
<dxg:GridColumn FieldName="Beschreibung" MinWidth="200" />
<dxg:GridColumn FieldName="VertretungsDC" MinWidth="0" Visible="False" />
<dxg:GridColumn FieldName="KindFehlzeit" Width="250"/>
<dxg:GridColumn FieldName="AbwesenheitsKategorie" Width="200">
<dxg:GridColumn.EditSettings>
<dxe:ComboBoxEditSettings x:Name="AbwesenheitsKategorieComboBox"/>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Beschreibung" Header="Freie Bemerkung" Width="400" >
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings TextWrapping="Wrap" AcceptsReturn="True" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<!--
<dxg:GridColumn FieldName="VertretungsDC" MinWidth="0" Visible="False" />
<dxg:GridColumn FieldName="KindFehlzeit" Width="250"/>
-->
<!--############################### Context Menue ################################################-->
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="True" ShowGridMenu="DataViewBase_OnShowGridMenu" />
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="True" ShowGridMenu="DataViewBase_OnShowGridMenu" CellValueChanged="GridViewBase_OnRowUpdated" />
</dxg:GridControl.View>
<!--###################################################################################################-->
</dxg:GridControl>

View File

@@ -64,7 +64,7 @@ namespace BeWo.SchulbegleitenderDienst
GridDataControl.ItemsSource = items;
GetAllVertretungenOnLoad(null, DateTime.Now, null);
GetAllVertretungenOnLoad(DateTime.Now);
setAktDate();
SetAbwesenheiten();
@@ -80,6 +80,14 @@ namespace BeWo.SchulbegleitenderDienst
ComboBoxKlientVertretung.ItemsSource = abwesenheiten;
ComboBoxMitarbeiterVertretung.ItemsSource = abwesenheiten;
//List<string> ssx = new List<string>();
//foreach (var x in abwesenheiten)
//{
// ssx.Add(x.);
//}
AbwesenheitsKategorieComboBox.ItemsSource = abwesenheiten;
}
@@ -107,91 +115,79 @@ namespace BeWo.SchulbegleitenderDienst
}
//public void ColorDataGrid()
//{
// //GridControl grid = GridDataControl;
// foreach (object column in grid.Columns)
// {
// var Schulbegleit = (SchulbegleitenderDienst) column;
// if (Schulbegleit.Vertretung.IsNullOrEmpty())
// {
// //Farbe Rot Fordergrund gelb
// //new SolidColorBrush(Colors.Red);
// //new SolidColorBrush(Colors.Yellow);
// }
// else
// {
// //Farbe Grün und Fordergrund weis
// //new SolidColorBrush(Colors.Green);
// //new SolidColorBrush(Colors.White);
// }
// }
//}
public void GetAllVertretungenOnLoad(string MitarbeiterAbsenstime, DateTime AusgewähltesDatum, string KlientenAbsenstime)
public void GetAllVertretungenOnLoad(DateTime AusgewähltesDatum)
{
var schulbegleitenderDienst = ServiceFacade.DoOperationsServiceSync(s => s.VertretungsListe(AusgewähltesDatum));
items.Clear();
foreach (var vertritt in schulbegleitenderDienst.Vertretungsliste)
{
if (vertritt.VertretungsZeitraumVon.Date == AusgewähltesDatum.Date)
ServiceFacade.DoOperationsServiceAsync(s => s.VertretungsListe(AusgewähltesDatum),r =>{
foreach (var vertritt in r.Vertretungsliste)
{
var employeeName = "";
var customerName = "";
var abwesenheitskategorie = "";
var VertretenderMitarbeiter = " ";
foreach (var klient in schulbegleitenderDienst.Customersliste)
if (vertritt.VertretungsZeitraumVon.Date == AusgewähltesDatum.Date)
{
if (vertritt.CustomerOid == klient.CustomerOid)
{
customerName = klient.FirstName + " " + klient.LastName;
}
}
var employeeName = "";
var customerName = "";
AbsenceReasonDC abwesenheitskategorie = null;
var VertretenderMitarbeiter = " ";
foreach (var mit in schulbegleitenderDienst.Employeesliste)
{
if (vertritt.EmployeeOid == mit.EmployeeOid)
foreach (var klient in r.Customersliste)
{
employeeName = mit.FirstName + " " + mit.LastName;
if (vertritt.CustomerOid == klient.CustomerOid)
{
customerName = klient.FirstName + " " + klient.LastName;
}
}
if (vertritt.VertretenderMitarbeiterOid == mit.EmployeeOid)
foreach (var mit in r.Employeesliste)
{
VertretenderMitarbeiter = mit.FirstName + " " + mit.LastName;
}
}
if (vertritt.EmployeeOid == mit.EmployeeOid)
{
employeeName = mit.FirstName + " " + mit.LastName;
}
foreach (var ab in schulbegleitenderDienst.AbsenceReasonsliste)
{
if (vertritt.AbwesenheitsOid == ab.AbsenceReasonOid)
{
abwesenheitskategorie = ab.Description;
if (vertritt.VertretenderMitarbeiterOid == mit.EmployeeOid)
{
VertretenderMitarbeiter = mit.FirstName + " " + mit.LastName;
}
}
}
AddItemsToGrid(vertritt, employeeName, customerName, abwesenheitskategorie, VertretenderMitarbeiter);
foreach (var ab in r.AbsenceReasonsliste)
{
if (vertritt.AbwesenheitsOid == ab.AbsenceReasonOid)
{
abwesenheitskategorie = ab;
}
}
AddItemsToGrid(vertritt, employeeName, customerName, abwesenheitskategorie, VertretenderMitarbeiter);
}
}
this.Dispatch(delegate
{
GridDataControl.RefreshData();
GridDataControl.RefreshUI();
});
});
}
public void AddItemsToGrid(VertretungDC vertritt,string employee, string customer, AbsenceReasonDC abwesenheit,string vertretenderMitarbeiter)
{
int i = 0;
if (!customer.Equals(""))
{
i = 1;
}
UpdateGridControl();
int y = 0;
}
if (!employee.Equals(""))
{
y = 1;
}
public void AddItemsToGrid(VertretungDC vertritt,string employee, string customer, string abwesenheit,string vertretenderMitarbeiter)
{
items.Add(new SchulbegleitenderDienst()
{
KrankheitsZeitraum = vertritt.VertretungsZeitraumVon.ToString("dd.MM.yyyy") + " - " + vertritt.VertretungsZeitraumBis.ToString("dd.MM.yyyy"),
@@ -200,10 +196,13 @@ namespace BeWo.SchulbegleitenderDienst
Kunde = customer,
AbwesenheitsKategorie = abwesenheit,
Beschreibung = vertritt.Notice,
KrankheitsMeldung = vertritt.KrankheitsMeldung.ToString("dd.MM.yyyy"),
VertretungsDC = vertritt
KrankheitsMeldung = vertritt.KrankheitsMeldung,
VertretungsDC = vertritt,
IsMitarbeiter = y,
IsKunde = i
//ParentId = 0,
//Oid = (int)vertritt.VertretungOid.Value
//.ToString("dd.MM.yyyy")
});
}
@@ -290,6 +289,7 @@ namespace BeWo.SchulbegleitenderDienst
private void Button_cancelMitarbeiterVertretung_OnClick(object sender, RoutedEventArgs e)
{
ClearAllMitarbeiterValues();
popup_newMitarbeiterVertretung.IsOpen = false;
}
@@ -319,13 +319,28 @@ namespace BeWo.SchulbegleitenderDienst
private void Button_addMitarbeiterVertretung_OnClick(object sender, RoutedEventArgs e)
{
popup_newMitarbeiterVertretung.IsOpen = false;
bool xsf = false;
SaveEmployeeInVertretung();
if (!popupedit_MitarbeiterVertretungSearch.Text.Equals(""))
{
xsf = true;
}
else
{
MessageBox.Show("Bitte wählen sie zuerst einen Mitarbeiter aus.");
}
ClearAllMitarbeiterValues();
// GetAllVertretungenOnLoad(null, DateTime.Now, null);
if (xsf)
{
popup_newMitarbeiterVertretung.IsOpen = false;
SaveEmployeeInVertretung();
ClearAllMitarbeiterValues();
}
// GetAllVertretungenOnLoad(null, DateTime.Now, null);
}
@@ -354,7 +369,13 @@ namespace BeWo.SchulbegleitenderDienst
var x = (AbsenceReasonDC)ComboBoxMitarbeiterVertretung.SelectedValue;
vertretung.AbwesenheitsOid = x.AbsenceReasonOid;
if (x != null){
vertretung.AbwesenheitsOid = x.AbsenceReasonOid;
}
else
{
vertretung.AbwesenheitsOid = 0;
}
vertretung.Notice = MitarbeiterNotice.Text;
@@ -378,6 +399,7 @@ namespace BeWo.SchulbegleitenderDienst
private void Button_cancelKlientVertretung_OnClick(object sender, RoutedEventArgs e)
{
popup_newKlientVertretung.IsOpen = false;
ClearAllKlientValues();
}
//Ab hier muss noch am Inhalt bearbeitet werden
@@ -408,27 +430,25 @@ namespace BeWo.SchulbegleitenderDienst
private void Button_addKlientVertretung_OnClick(object sender, RoutedEventArgs e)
{
popup_newKlientVertretung.IsOpen = false;
bool xsf = false;
if (!popupedit_KlientVertretungSearch.Text.Equals(""))
{
xsf = true;
}
else
{
MessageBox.Show("Bitte wählen sie zuerst einen Klienten aus.");
}
VertretungDC vertretung = new VertretungDC();
if(xsf){
popup_newKlientVertretung.IsOpen = false;
vertretung.VertretungsZeitraumVon = KVDatepickerVon.DateTime.Date;
vertretung.VertretungsZeitraumBis = KVDatepickerBis.DateTime.Date;
vertretung.CustomerOid = currentKlient.CustomerOid;
vertretung.EmployeeOid = 0;
vertretung.KrankheitsMeldung = KrankMeldungKlientDatepicker.DateTime.Date;
vertretung.VertretenderMitarbeiterOid = 0;
var x = (AbsenceReasonDC) ComboBoxKlientVertretung.SelectedValue;
vertretung.AbwesenheitsOid = x.AbsenceReasonOid;
vertretung.Notice = KlientNotice.Text;
//Safe in die Daten Tabelle
ServiceFacade.DoOperationsServiceSync(s => s.InsertNewKlientenVertretung(vertretung));
ClearAllKlientValues();
SaveKlientInVertretung();
ClearAllKlientValues();
}
// GetAllVertretungenOnLoad(null, DateTime.Now, null);
}
@@ -446,6 +466,33 @@ namespace BeWo.SchulbegleitenderDienst
}
private void SaveKlientInVertretung()
{
VertretungDC vertretung = new VertretungDC();
vertretung.VertretungsZeitraumVon = KVDatepickerVon.DateTime.Date;
vertretung.VertretungsZeitraumBis = KVDatepickerBis.DateTime.Date;
vertretung.CustomerOid = currentKlient.CustomerOid;
vertretung.EmployeeOid = 0;
vertretung.KrankheitsMeldung = KrankMeldungKlientDatepicker.DateTime.Date;
vertretung.VertretenderMitarbeiterOid = 0;
var x = (AbsenceReasonDC)ComboBoxKlientVertretung.SelectedValue;
if (x != null){
vertretung.AbwesenheitsOid = x.AbsenceReasonOid;
}
else
{
vertretung.AbwesenheitsOid = 0;
}
vertretung.Notice = KlientNotice.Text;
//Safe in die Daten Tabelle
ServiceFacade.DoOperationsServiceSync(s => s.InsertNewKlientenVertretung(vertretung));
}
#endregion
//#########################################################################################################################
@@ -462,7 +509,7 @@ namespace BeWo.SchulbegleitenderDienst
Datelbl.Content = dt.ToString("dddd dd.MM.yyyy");
//Vorbereitung hole alle vom ausgewählten Datum
GetAllVertretungenOnLoad(null, dt, null);
GetAllVertretungenOnLoad(dt);
}
//Fertig
@@ -510,7 +557,7 @@ namespace BeWo.SchulbegleitenderDienst
view.Close();
GetAllVertretungenOnLoad(null, DateTime.Now, null);
GetAllVertretungenOnLoad(Datepicker.DateTime.Date);
}
@@ -682,62 +729,99 @@ namespace BeWo.SchulbegleitenderDienst
ServiceFacade.DoOperationsServiceSync(s => s.DeleteVertretung(vert));
GetAllVertretungenOnLoad(null, DateTime.Now, null);
GetAllVertretungenOnLoad(Datepicker.DateTime.Date);
}
}
//############################################################################
//################## Ermögliche save nach änderung am grid ###################
private void GridViewBase_OnRowUpdated(object sender, RowEventArgs e)
{
var a = (SchulbegleitenderDienst) GridDataControl.SelectedItem;
VertretungDC vert = new VertretungDC();
vert = a.VertretungsDC;
vert.Notice = a.Beschreibung;
vert.AbwesenheitsOid = a.AbwesenheitsKategorie.AbsenceReasonOid;
//noch alle daten übergeben
vert.KrankheitsMeldung = a.KrankheitsMeldung;
try
{
string[] zeitraum = a.KrankheitsZeitraum.Split('-');
vert.VertretungsZeitraumVon = DateTime.Parse(zeitraum[0]);
vert.VertretungsZeitraumBis = DateTime.Parse(zeitraum[1]);
}
catch (Exception exception)
{
MessageBox.Show("Es ist ein Fehler beim splitten eines strings aufgetretten");
}
ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert));
GetAllVertretungenOnLoad(Datepicker.DateTime.Date);
}
//############################################################################
}
#region Connectoren
//Binding Connectoren
public class SchulbegleitenderDienst
public class SchulbegleitenderDienst //---> muss durch die VertretungsVM ersetzt weden.
{
public VertretungDC VertretungsDC { get; set; }
public VertretungDC VertretungsDC { get; set; } // ---> Sicherheitsrisiko ??
public string Vertretung { get; set; }
public string Kunde { get; set; }
public string KrankerMitarbeiter { get; set; }
public string AbwesenheitsKategorie { get; set; }
public string KrankheitsMeldung { get; set; }
public AbsenceReasonDC AbwesenheitsKategorie { get; set; }
public DateTime KrankheitsMeldung { get; set; }
//public string MaFehlzeit { get; set; }
//public string KindFehlzeit { get; set; }
public string KrankheitsZeitraum { get; set; }
public string Beschreibung { get; set; }
//public int ParentId { get; set; }
//public int Oid { get; set; }
public bool IsKunde
//Farbe der Jeweiligen Zeile
public int IsKunde { get; set; }
//{
// get
// {
// //Bearbeiten, vllt Grid Updaten oder so
// if (!Kunde.Equals(""))
// {
// return 1; //true
// }
// else
// {
// return 0; //false
// }
// }
//}
public int IsMitarbeiter { get; set; }
//Villeicht mal schauen mal sehen
public string AbwesenheitsKategorieToString
{
get
{
//Bearbeiten, vllt Grid Updaten oder so
if (!Kunde.Equals(""))
{
return true;
}
else
{
return false;
}
}
get { return AbwesenheitsKategorie.Description; }
}
public bool IsMitarbeiter
{
get
{
//Bearbeiten, vllt Grid Updaten oder so
if (!KrankerMitarbeiter.Equals(""))
{
return true;
}
else
{
return false;
}
}
}
}
#endregion

View File

@@ -3551,9 +3551,7 @@ namespace BeWo.Service.ServiceImplementations
var schulbegleitenderDienst = MapperFactory.VertretungsListeDC_VertretungsListe.MapToNewDC(x);
//schulbegleitenden Dienst nur die nehmen wo bei vertretung die zeit passt
return schulbegleitenderDienst;