Files
BeWoPlaner/BeWo/SchulbegleitenderDienst/VertretungsMainView.xaml.cs
2019-09-27 15:55:01 +02:00

1547 lines
57 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Windows;
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.View;
using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
using MessageBox = System.Windows.MessageBox;
namespace BeWo.SchulbegleitenderDienst
{
public partial class VertretungsMainView
{
private readonly List<TagesansichtVM> _AbwesendeMitarbeiter = new List<TagesansichtVM>();
private readonly List<TagesansichtVM> _AbwesendeKlienten = new List<TagesansichtVM>();
private readonly List<WochenansichtVM> _itemsWochenMitarbeiter = new List<WochenansichtVM>();
private readonly List<WochenansichtVM> _itemsWochenKlienten = new List<WochenansichtVM>();
private VertretungsSearchView _view = null;
private VertretenderKlientSearchView _viewMitarbeiter = null;
private KrankheitsZeitraumView _krankView = null;
private string _mitarbeiterVertretungWocheninfo = "";
private string _deletVertretungsWeek = "";
private List<MitarbeiterWochenansicht> _mitarbeiterwochen = new List<MitarbeiterWochenansicht>();
private TagesVertretung _tagesVertretung = new TagesVertretung();
private WochenVertretung _wochenVertretung = new WochenVertretung();
public VertretungsMainView()
{
InitializeComponent();
GridDataControlTagesansichtKlient.ItemsSource = _AbwesendeKlienten;
GridDataControlTagesansichtMitarbeiter.ItemsSource = _AbwesendeMitarbeiter;
GridDataControlWochenansichtMitarbeiter.ItemsSource = _itemsWochenMitarbeiter;
GridDataControlWochenansichtKlient.ItemsSource = _itemsWochenKlienten;
GridMitarbeiterEinsatz.ItemsSource = _mitarbeiterwochen;
SetAktuellesDate();
SetAbwesenheiten();
MVCheckBox.IsChecked = true;
KVCheckBox.IsChecked = true;
}
private void LadeTagesansicht(DateTime datum)
{
_AbwesendeKlienten.Clear();
_AbwesendeMitarbeiter.Clear();
ServiceFacade.DoOperationsServiceAsync(s => s.GetVertretungsListe(datum),r =>
{
this.Dispatch(delegate
{
foreach (var item in r)
{
var vm = _tagesVertretung.ErstelleTagesansichtVM(item);
if (vm.VertretungsStatus == VertretungsStatus.KlientKrank)
{
_AbwesendeKlienten.Add(vm);
}
else
{
_AbwesendeMitarbeiter.Add(vm);
}
}
GridDataControlTagesansichtMitarbeiter.RefreshData();
GridDataControlTagesansichtMitarbeiter.RefreshUI();
GridDataControlTagesansichtKlient.RefreshData();
GridDataControlTagesansichtKlient.RefreshUI();
});
});
}
private void LadeWochenansicht(DateTime startDatum, DateTime endDatum )
{
ServiceFacade.DoOperationsServiceAsync(s => s.GetVertretungsListeForTimeSpan(startDatum, endDatum), r =>
{
this.Dispatch(delegate
{
var items = new List<TagesansichtVM>();
foreach (var item in r)
{
var vm = _tagesVertretung.ErstelleTagesansichtVM(item);
items.Add(vm);
}
GetWochenDienstFromItems(startDatum, items);
});
});
}
private void GetWochenDienstFromItems(DateTime time, List<TagesansichtVM> items)
{
_itemsWochenMitarbeiter.Clear();
_itemsWochenKlienten.Clear();
var itemsMitarbeiter = _wochenVertretung.GetWochenAnsichtFromItems(time, items.Where(i => i.VertretungsStatus != VertretungsStatus.KlientKrank).ToList());
var itemsKlienten = _wochenVertretung.GetWochenAnsichtFromItems(time, items.Where(i => i.VertretungsStatus == VertretungsStatus.KlientKrank).ToList());
foreach (var item in itemsMitarbeiter)
{
_itemsWochenMitarbeiter.Add(item);
}
foreach (var item in itemsKlienten)
{
_itemsWochenKlienten.Add(item);
}
GridDataControlWochenansichtMitarbeiter.RefreshData();
GridDataControlWochenansichtMitarbeiter.RefreshUI();
GridDataControlWochenansichtKlient.RefreshData();
GridDataControlWochenansichtKlient.RefreshUI();
}
private void GetAllVertretungsFreieMitarbeiter(DateTime startDatum, DateTime endDatum)
{
ServiceFacade.DoOperationsServiceAsync(s => s.VertretungsMitarbeiterListeWoechentlich(startDatum, endDatum), r =>
{
this.Dispatch(delegate
{
_mitarbeiterwochen.Clear();
foreach (var item in r)
{
AddMitarbeiterItemsToGrid(item, startDatum);
}
GridMitarbeiterEinsatz.RefreshData();
GridMitarbeiterEinsatz.RefreshUI();
});
});
}
private void AddMitarbeiterItemsToGrid(VertretungsListeMitarbeiterItemsDC item, DateTime time)
{
var compactEmployee = ServiceFacade.DoEmployeeServiceSync(r => r.GetActiveCompactEmployeeWithOid(item.EmployeeOid.Value));
var mitarbeiterWochenansicht = new MitarbeiterWochenansicht
{
Employee = item.Employee,
EmployeeDc = compactEmployee
};
var dt = time;
var startdt = dt.FirstDateOfWeek(dt.GetIso8601WeekOfYear());
if (item.AbsenceStartDate != null && item.AbsenceEndDate != null)
{
var anfangDt = item.AbsenceStartDate.Value;
var endeDt = item.AbsenceEndDate.Value;
var montagDt = startdt.Date;
var dienstagDt = startdt.Date.AddDays(1);
var mittwochDt = startdt.Date.AddDays(2);
var donnerstagDt = startdt.Date.AddDays(3);
var freitagDt = startdt.Date.AddDays(4);
var samstagDt = startdt.Date.AddDays(5);
//Bereich für Eingesetzt bei übernehmen von unterem code
//
// Montag | 0
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung(anfangDt, endeDt, montagDt, item, mitarbeiterWochenansicht,"EingesetztBeiMo", 0);
// Dienstag | 1
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung(anfangDt, endeDt, dienstagDt, item, mitarbeiterWochenansicht, "EingesetztBeiDi", 1);
// Mittwoch | 2
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung(anfangDt, endeDt, mittwochDt, item, mitarbeiterWochenansicht, "EingesetztBeiMi", 2);
//Donnerstag | 3
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung(anfangDt, endeDt, donnerstagDt, item, mitarbeiterWochenansicht, "EingesetztBeiDo", 3);
//Freitag | 4
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung(anfangDt, endeDt, freitagDt, item, mitarbeiterWochenansicht, "EingesetztBeiFr", 4);
// Samstag | 5
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung(anfangDt, endeDt, samstagDt, item, mitarbeiterWochenansicht, "EingesetztBeiSa", 5);
}
_mitarbeiterwochen.Add(mitarbeiterWochenansicht);
}
public MitarbeiterWochenansicht WochentageMitarbeiterVerarbeitung(DateTime startDt, DateTime endDt, DateTime wochenTag, VertretungsListeMitarbeiterItemsDC item, MitarbeiterWochenansicht wwk, string eingesetztBei, int wochenTagZahl)
{
if (startDt.Date <= wochenTag && wochenTag <= endDt.Date)
{
if (item?.Customer != null)
{
if (item.AbsenceStartDate <= wochenTag && item.AbsenceEndDate >= wochenTag)
{
switch (wochenTagZahl)
{
case 0:
wwk.EingesetztBeiMo = item.Customer.FullName;
break;
case 1:
wwk.EingesetztBeiDi = item.Customer.FullName;
//wwk.Di = AddWeekView(wochentagDt, item.Wochentagsarbeitszeit);
break;
case 2:
wwk.EingesetztBeiMi = item.Customer.FullName;
//wwk.Mi = AddWeekView(wochentagDt, item.Wochentagsarbeitszeit);
break;
case 3:
wwk.EingesetztBeiDo = item.Customer.FullName;
//wwk.Do = AddWeekView(wochentagDt, item.Wochentagsarbeitszeit);
break;
case 4:
wwk.EingesetztBeiFr = item.Customer.FullName;
//wwk.Fr = AddWeekView(wochentagDt, item.Wochentagsarbeitszeit);
break;
case 5:
wwk.EingesetztBeiSa = item.Customer.FullName;
//wwk.Sa = AddWeekView(wochentagDt, item.Wochentagsarbeitszeit);
break;
}
}
else
{
switch (wochenTagZahl)
{
case 0:
wwk.EingesetztBeiMo = string.Empty;
break;
case 1:
wwk.EingesetztBeiDi = string.Empty;
break;
case 2:
wwk.EingesetztBeiMi = string.Empty;
break;
case 3:
wwk.EingesetztBeiDo = string.Empty;
break;
case 4:
wwk.EingesetztBeiFr = string.Empty;
break;
case 5:
wwk.EingesetztBeiSa = string.Empty;
break;
}
}
}
}
else
{
switch (wochenTagZahl)
{
case 0:
wwk.EingesetztBeiMo = " ";
break;
case 1:
wwk.EingesetztBeiDi = " ";
break;
case 2:
wwk.EingesetztBeiMi = " ";
break;
case 3:
wwk.EingesetztBeiDo = " ";
break;
case 4:
wwk.EingesetztBeiFr = " ";
break;
case 5:
wwk.EingesetztBeiSa = " ";
break;
}
}
return wwk;
}
private void AddKlientToMitarbeiter_OnClick(object sender, RoutedEventArgs e)
{
var mitarbeiterView = (MitarbeiterWochenansicht) GridMitarbeiterEinsatz.SelectedItem;
var employee = mitarbeiterView.EmployeeDc;
_viewMitarbeiter?.Close();
_viewMitarbeiter = new VertretenderKlientSearchView(DateTime.Now, DateTime.Now, DateTime.Now, employee.EmployeeOid);
_viewMitarbeiter.RaiseCustomEvent += NewWindow_RaiseCustomMitarbeiterEvent;
_viewMitarbeiter.ShowDialog();
}
private void NewWindow_RaiseCustomMitarbeiterEvent(object sender, CustomKlientEventArgs e)
{
UpdateKlientToVertretendenMitarbeiter(e.Message, e.StartDate, e.EndDate);
_viewMitarbeiter.Close();
}
//Anpassen Weil nicht funktionsfähig
private void UpdateKlientToVertretendenMitarbeiter(CompactCustomerDC customer, DateTime? start, DateTime? ende)
{
var a = (MitarbeiterWochenansicht)GridMitarbeiterEinsatz.SelectedItem;
var tag = GridMitarbeiterEinsatz.CurrentColumn.FieldName;
//bereich das heute fertig gestellt wird
//VertretungDC vert = new VertretungDC()
//{
// CustomerOid = customer.CustomerOid,
// EmployeeOid = a.mitarbeiteroid, // ?? das muss wahrscheinlich vom kustomer ermittelt werden
// VertretungsZeitraumVon = start.Value,
// VertretungsZeitraumBis = ende.Value,
// AbsenceTimeOid = a.absenceTimeDC.AbsenceTimeOid, // hmm wie wird das gehandelt ??
// VertretenderMitarbeiterOid = a.EmployeeDc.EmployeeOid // Oid Vom Mitarbeiter
//};
//abfrage wegen update oder create | dazu die Verfügbare Vertretung bei Mitarbeiter wochenansicht bearbeiten
//if ()
//{
// ServiceFacade.DoOperationsServiceSync(s => s.CreateVertretung(vert));
//}
//else
//{
// ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert));
//}
//Schabernack das keiner braucht
//foreach (var woche in a.KlientvertretungsWoche)
//{
//if (woche.Key.Equals(tag))
//{
// foreach (var item in woche.Value)
// {
//VertretungDC vert = new VertretungDC();
//if (item.Value.VertretungsDC != null)
//{
// vert = item.Value.VertretungsDC;
// vert.EmployeeOid = item.Value.Mitarbeiteroid;
// vert.AbsenceTimeOid = item.Value.AbsenceTimeDC.AbsenceTimeOid.Value;
// vert.Notice = item.Value.Beschreibung;
// vert.VertretungsZeitraumVon = item.Key;
// vert.VertretungsZeitraumBis = item.Key;
// vert.CustomerOid = customer.CustomerOid;
// ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert));
//}
//else
//{
// vert.EmployeeOid = item.Value.Mitarbeiteroid;
// vert.AbsenceTimeOid = item.Value.AbsenceTimeDC.AbsenceTimeOid.Value;
// vert.Notice = item.Value.Beschreibung;
// vert.VertretungsZeitraumVon = item.Key;
// vert.VertretungsZeitraumBis = item.Key;
// vert.CustomerOid = customer.CustomerOid;
// ServiceFacade.DoOperationsServiceSync(s => s.CreateVertretung(vert));
//}
//}
//}
}
private void MVDatepickerVon_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
if (e.NewValue != null)
{
var dt = (DateTime) e.NewValue;
if (dt >= MVDatepickerBis.DateTime)
{
MVDatepickerBis.DateTime = dt;
}
}
}
private void MVDatepickerBis_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
if (e.NewValue != null)
{
var dt = (DateTime) e.NewValue;
if (dt <= MVDatepickerVon.DateTime)
{
MVDatepickerVon.DateTime = dt;
}
}
}
private void KVDatepickerVon_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
var dt = (DateTime)e.NewValue;
if(dt >= KVDatepickerBis.DateTime) {
KVDatepickerBis.DateTime = dt;
}
}
private void KVDatepickerBis_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
var dt = (DateTime)e.NewValue;
if(dt <= MVDatepickerVon.DateTime) {
KVDatepickerVon.DateTime = dt;
}
}
private CompactEmployeeDC currentEmployee;
private void MitarbeiterVertretungsToggleButton_OnChecked(object sender, RoutedEventArgs e)
{
MVDatepicker_UhrzeitVon.Text = "";
MVDatepicker_UhrzeitBis.Text = "";
MVDatepicker_UhrzeitVon.Visibility = Visibility.Collapsed;
MVDatepicker_UhrzeitBis.Visibility = Visibility.Collapsed;
MVLabelUhrzeitVon.Visibility = Visibility.Collapsed;
MVLabelUhrzeitBis.Visibility = Visibility.Collapsed;
}
private void MitarbeiterVertretungsToggleButton_OnUnchecked(object sender, RoutedEventArgs e)
{
MVDatepicker_UhrzeitVon.Visibility = Visibility.Visible;
MVDatepicker_UhrzeitBis.Visibility = Visibility.Visible;
MVLabelUhrzeitVon.Visibility = Visibility.Visible;
MVLabelUhrzeitBis.Visibility = Visibility.Visible;
}
private void MitarbeiterVertretung_OnClick(object sender, RoutedEventArgs e)
{
popup_newMitarbeiterVertretung.IsOpen = true;
}
private void Button_cancelMitarbeiterVertretung_OnClick(object sender, RoutedEventArgs e)
{
ClearAllMitarbeiterValues();
popup_newMitarbeiterVertretung.IsOpen = false;
}
private void Popupedit_MitarbeiterVertretungSearch_OnPopUpClick_popupedit_MitarbeiterVertretungSearch_PopUpClick(object sender, RoutedEventArgs e)
{
MitarbeiterVertretungsearchview.ItemSelected += MitarbeiterVertretungsearchview_MitarbeiterVertretungSelected;
popup_MitarbeiterVertretung.IsOpen = true;
}
private void MitarbeiterVertretungsearchview_MitarbeiterVertretungSelected(object sender, EventArgs<CompactEmployeeDC> e)
{
popup_MitarbeiterVertretung.IsOpen = false;
MitarbeiterVertretungsearchview.ItemSelected -= MitarbeiterVertretungsearchview_MitarbeiterVertretungSelected;
currentEmployee = e.Data;
popupedit_MitarbeiterVertretungSearch.Text = currentEmployee.FirstName + " " + currentEmployee.LastName;
var employeeList = ServiceFacade.DoEmployeeServiceSync(s => s.GetAllActiveEmployeesCompact());
MitarbeiterVertretungsearchview.ObjectList = employeeList;
popupedit_MitarbeiterVertretungSearch.Focus();
}
private void Button_addMitarbeiterVertretung_OnClick(object sender, RoutedEventArgs e)
{
bool xsf = false;
if (!string.IsNullOrEmpty(popupedit_MitarbeiterVertretungSearch.Text) && ComboBoxMitarbeiterVertretung.SelectedValue != null )
{
if (MVCheckBox.IsChecked != null && MVCheckBox.IsChecked.Value )
{
xsf = true;
}
else
{
if (!MVDatepicker_UhrzeitVon.Text.Equals("") && !MVDatepicker_UhrzeitBis.Text.Equals(""))
{
string uVon="";
string uBis="";
if (MVDatepicker_UhrzeitVon.Text.Length < 5)
{
uVon = "0" + MVDatepicker_UhrzeitVon.Text;
}
else
{
uVon = MVDatepicker_UhrzeitVon.Text;
}
if (MVDatepicker_UhrzeitBis.Text.Length < 5)
{
uBis = "0" + MVDatepicker_UhrzeitBis.Text;
}
else
{
uBis = MVDatepicker_UhrzeitBis.Text;
}
var von = DateTime.ParseExact(uVon, "HH:mm", CultureInfo.CurrentCulture);
var bis = DateTime.ParseExact(uBis, "HH:mm", CultureInfo.CurrentCulture);
if (von <= bis)
{
xsf = true;
}
else
{
MessageBox.Show("Die Startzeit muss kleiner als die Endzeit sein.");
}
}
else
{
MessageBox.Show("Bitte geben sie eine Start- und eine Endzeit ein.");
}
}
}
else
{
MessageBox.Show("Bitte wählen sie eine/n Mitarbeiter/in und eine Abwesenheitskategorie aus.");
}
if (xsf)
{
popup_newMitarbeiterVertretung.IsOpen = false;
SaveEmployeeInVertretung();
ClearAllMitarbeiterValues();
if (ScrollViewerTagesansicht.Visibility == Visibility.Visible)
{
LadeTagesansicht(Datepicker.DateTime.Date);
}
else if (ScrollViewerWochenansicht.Visibility == Visibility.Visible)
{
var x = Datepicker.DateTime.FirstDateOfWeek(Datepicker.DateTime.GetIso8601WeekOfYear());
LadeWochenansicht(x, x.AddDays(5));
}
}
}
private void ClearAllMitarbeiterValues()
{
MVDatepickerVon.DateTime = DateTime.Now;
MVDatepickerBis.DateTime = DateTime.Now;
popupedit_MitarbeiterVertretungSearch.Text = string.Empty;
ComboBoxMitarbeiterVertretung.SelectedIndex = -1;
MitarbeiterNotice.Text = string.Empty;
MVDatepicker_UhrzeitVon.Text = string.Empty;
MVDatepicker_UhrzeitBis.Text = string.Empty;
}
private void SaveEmployeeInVertretung()
{
var absenceTime = new AbsenceTimeDC();
if(MVCheckBox.IsChecked != null && MVCheckBox.IsChecked.Value){
absenceTime.Start = MVDatepickerVon.DateTime.Date;
absenceTime.End = MVDatepickerBis.DateTime.Date;
}
else
{
string xvon, yvon;
if (MVDatepicker_UhrzeitVon.Text.Length < 5){
xvon = "0" + MVDatepicker_UhrzeitVon.Text;
}
else
{
xvon = MVDatepicker_UhrzeitVon.Text;
}
if (MVDatepicker_UhrzeitBis.Text.Length < 5)
{
yvon = "0" + MVDatepicker_UhrzeitBis.Text;
}
else
{
yvon = MVDatepicker_UhrzeitBis.Text;
}
var dateTimeStart = DateTime.ParseExact(xvon, "HH:mm", CultureInfo.CurrentCulture);
var dateTimeEnd = DateTime.ParseExact(yvon, "HH:mm", CultureInfo.CurrentCulture);
var start = MVDatepickerVon.DateTime.MergeDatesByDate(dateTimeStart);
var ende = MVDatepickerBis.DateTime.MergeDatesByDate(dateTimeEnd);
absenceTime.Start = start;
absenceTime.End = ende;
}
absenceTime.Reason = ComboBoxMitarbeiterVertretung.SelectedValue as AbsenceReasonDC;
absenceTime.Notice = MitarbeiterNotice.Text;
absenceTime.KrankheitsMeldung = KrankMeldungMitarbeiterDatepicker.DateTime.Date;
ServiceFacade.DoOperationsServiceSync(s => s.InsertNewEmployeeAbsenceTime(currentEmployee.EmployeeOid, absenceTime));
}
private CompactCustomerDC currentKlient;
private void KlientVertretungsToggleButton_OnChecked(object sender, RoutedEventArgs e)
{
KVDatepicker_UhrzeitVon.Text = string.Empty;
KVDatepicker_UhrzeitBis.Text = string.Empty;
KVDatepicker_UhrzeitVon.Visibility = Visibility.Collapsed;
KVDatepicker_UhrzeitBis.Visibility = Visibility.Collapsed;
KVLabelUhrzeitVon.Visibility = Visibility.Collapsed;
KVLabelUhrzeitBis.Visibility = Visibility.Collapsed;
}
private void KlientVertretungsToggleButton_OnUnchecked(object sender, RoutedEventArgs e)
{
KVDatepicker_UhrzeitVon.Visibility = Visibility.Visible;
KVDatepicker_UhrzeitBis.Visibility = Visibility.Visible;
KVLabelUhrzeitVon.Visibility = Visibility.Visible;
KVLabelUhrzeitBis.Visibility = Visibility.Visible;
}
private void KlientVertretung_Button_OnClick(object sender, RoutedEventArgs e)
{
popup_newKlientVertretung.IsOpen = true;
}
private void Button_cancelKlientVertretung_OnClick(object sender, RoutedEventArgs e)
{
popup_newKlientVertretung.IsOpen = false;
ClearAllKlientValues();
}
private void Popupedit_KlientVertretungSearch_OnPopUpClick(object sender, RoutedEventArgs e)
{
KlientVertretungsearchview.ItemSelected +=KlientVertretungsearchview_KlientVertretungSelected;
popup_KlientVertretung.IsOpen = true;
}
private void KlientVertretungsearchview_KlientVertretungSelected(object sender, EventArgs<CompactCustomerDC> e)
{
popup_KlientVertretung.IsOpen = false;
KlientVertretungsearchview.ItemSelected -= KlientVertretungsearchview_KlientVertretungSelected;
currentKlient = e.Data;
popupedit_KlientVertretungSearch.Text = currentKlient.FullName;
var customerList = ServiceFacade.DoCustomerServiceSync(s => s.GetAllActiveCompactCustomers());
KlientVertretungsearchview.ObjectList = customerList;
popupedit_MitarbeiterVertretungSearch.Focus();
}
private void Button_addKlientVertretung_OnClick(object sender, RoutedEventArgs e)
{
var xsf = false;
if (!popupedit_KlientVertretungSearch.Text.Equals("") && ComboBoxKlientVertretung.SelectedValue != null)
{
if (KVCheckBox.IsChecked != null && KVCheckBox.IsChecked.Value)
{
xsf = true;
}
else
{
if (!KVDatepicker_UhrzeitVon.Text.Equals("") && !KVDatepicker_UhrzeitBis.Text.Equals(""))
{
string uVon, uBis;
if (KVDatepicker_UhrzeitVon.Text.Length < 5)
{
uVon = "0" + KVDatepicker_UhrzeitVon.Text;
}
else
{
uVon = KVDatepicker_UhrzeitVon.Text;
}
if (KVDatepicker_UhrzeitBis.Text.Length < 5)
{
uBis = "0" + KVDatepicker_UhrzeitBis.Text;
}
else
{
uBis = KVDatepicker_UhrzeitBis.Text;
}
var von = DateTime.ParseExact(uVon, "HH:mm", CultureInfo.CurrentCulture);
var bis = DateTime.ParseExact(uBis, "HH:mm", CultureInfo.CurrentCulture);
if (von <= bis)
{
xsf = true;
}
else
{
MessageBox.Show("Die Startzeit muss kleiner als die Endzeit sein.");
}
}
else
{
MessageBox.Show("Bitte geben sie eine Start- und eine Endzeit ein.");
}
}
}
else
{
MessageBox.Show("Bitte wählen Sie eine/n Klient/in und eine Abwesenheitskategorie aus.");
}
if(xsf){
popup_newKlientVertretung.IsOpen = false;
SaveKlientInVertretung();
ClearAllKlientValues();
if (ScrollViewerTagesansicht.Visibility == Visibility.Visible)
{
LadeTagesansicht(Datepicker.DateTime.Date);
}
else if (ScrollViewerWochenansicht.Visibility == Visibility.Visible)
{
var x = Datepicker.DateTime.FirstDateOfWeek(Datepicker.DateTime.GetIso8601WeekOfYear());
LadeWochenansicht(x, x.AddDays(5));
}
}
}
private void ClearAllKlientValues()
{
KVDatepickerVon.DateTime = DateTime.Now;
KVDatepickerBis.DateTime = DateTime.Now;
popupedit_KlientVertretungSearch.Text = string.Empty;
ComboBoxKlientVertretung.SelectedIndex = -1;
KlientNotice.Text = string.Empty;
KVDatepicker_UhrzeitVon.Text = string.Empty;
KVDatepicker_UhrzeitBis.Text = string.Empty;
}
private void SaveKlientInVertretung()
{
var absenceTime = new AbsenceTimeDC();
if (KVCheckBox.IsChecked != null && KVCheckBox.IsChecked.Value)
{
absenceTime.Start = KVDatepickerVon.DateTime.Date;
absenceTime.End = KVDatepickerBis.DateTime.Date;
}
else
{
string xvon, yvon;
if (KVDatepicker_UhrzeitVon.Text.Length < 5)
{
xvon = "0" + KVDatepicker_UhrzeitVon.Text;
}
else
{
xvon = KVDatepicker_UhrzeitVon.Text;
}
if (KVDatepicker_UhrzeitBis.Text.Length < 5)
{
yvon = "0" + KVDatepicker_UhrzeitBis.Text;
}
else
{
yvon = KVDatepicker_UhrzeitBis.Text;
}
var dateTimeStart = DateTime.ParseExact(xvon, "HH:mm", CultureInfo.CurrentCulture);
var dateTimeEnd = DateTime.ParseExact(yvon, "HH:mm", CultureInfo.CurrentCulture);
var start = KVDatepickerVon.DateTime.MergeDatesByDate(dateTimeStart);
var ende = KVDatepickerBis.DateTime.MergeDatesByDate(dateTimeEnd);
absenceTime.Start = start;
absenceTime.End = ende;
}
absenceTime.Reason = ComboBoxKlientVertretung.SelectedValue as AbsenceReasonDC;
absenceTime.Notice = KlientNotice.Text;
absenceTime.KrankheitsMeldung = KrankMeldungKlientDatepicker.DateTime.Date;
ServiceFacade.DoOperationsServiceSync(s => s.InsertNewCustomerAbsenceTime(currentKlient.CustomerOid, absenceTime));
}
private void ButtonVertretungWochenAnzeigeMitarbeiter_Click(object sender, RoutedEventArgs e)
{
_wochenVertretung.AddeNeueVertretungforWochenAnsicht((WochenansichtVM)GridDataControlWochenansichtMitarbeiter.SelectedItem, GridDataControlWochenansichtMitarbeiter.CurrentColumn.FieldName);
var x = Datepicker.DateTime.FirstDateOfWeek(Datepicker.DateTime.GetIso8601WeekOfYear());
LadeWochenansicht(x, x.AddDays(5));
}
private void ButtonInfo_OnClick(object sender, RoutedEventArgs e)
{
//var a = (WochenansichtVM)GridDataControlKlientenWochenansicht2.SelectedItem;
//if (!a.IsMitarbeiterKrank)
//{
// // bleibt noch offen
//}
//else
//{
// MessageBox.Show("Du kannst einem kranken Klienten keine Mitarbeiter hinzufügen.","Info");
//}
}
private void TagesansichtSettings_OnDefaultButtonClick(object sender, RoutedEventArgs e)
{
_tagesVertretung.AddeNeueTagesVertretung((TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem, Datepicker.DateTime);
LadeTagesansicht(Datepicker.DateTime.Date);
}
private void GridDataControlTagesansichtMitarbeiter_OnShowGridMenu(object sender, GridMenuEventArgs e)
{
var a = (TagesansichtVM) GridDataControlTagesansichtMitarbeiter.SelectedItem;
if (e.MenuInfo.Column.FieldName == "Kunde")
{
BarButtonItem x = new BarButtonItem() {Content = "Klient/in öffnen"};
x.ItemClick += Kundeninfo_OnClick;
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "KrankerMitarbeiter")
{
BarButtonItem x = new BarButtonItem() {Content = "Mitarbeiter/in öffnen"};
x.ItemClick += Mitarbeiterinfo_OnClick;
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "Vertretung")
{
BarButtonItem s = new BarButtonItem() {Content = "Mitarbeiter/in öffnen"};
s.ItemClick += MitarbeiterVertretunginfo_OnClick;
e.Customizations.Add(s);
}
if (a.Vertretung != null)
{
BarButtonItem y = new BarButtonItem() {Content = "Vertretung löschen"};
y.ItemClick += DeletPerson_OnClick;
e.Customizations.Add(y);
}
BarButtonItem ys = new BarButtonItem() {Content = "Abwesenheit löschen"};
ys.ItemClick += DeleteKrankmeldung_OnClick;
e.Customizations.Add(ys);
}
private void GridDataControlTagesansichtKlient_OnShowGridMenu(object sender, GridMenuEventArgs e)
{
var a = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
if (e.MenuInfo.Column.FieldName == "Kunde")
{
BarButtonItem x = new BarButtonItem() { Content = "Klient/in öffnen" };
x.ItemClick += Kundeninfo_OnClick;
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "KrankerMitarbeiter")
{
BarButtonItem x = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
x.ItemClick += Mitarbeiterinfo_OnClick;
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "Vertretung")
{
BarButtonItem s = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
s.ItemClick += MitarbeiterVertretunginfo_OnClick;
e.Customizations.Add(s);
}
if (a.Vertretung != null)
{
BarButtonItem y = new BarButtonItem() { Content = "Vertretung löschen" };
y.ItemClick += DeletPerson_OnClick;
e.Customizations.Add(y);
}
BarButtonItem ys = new BarButtonItem() { Content = "Abwesenheit löschen" };
ys.ItemClick += DeleteKrankmeldung_OnClick;
e.Customizations.Add(ys);
}
private void GridMitarbeiterEinsatz_OnShowGridMenu(object sender, GridMenuEventArgs e)
{
// ########### KontextMenue Wochenanzeige #########
//BarButtonItem ys = new BarButtonItem() { Content = "Krankmeldung Löschen" }; // villeicht reaktivieren
//ys.ItemClick += DeleteKrankmeldung_OnClick;
//e.Customizations.Add(ys);
if (e.MenuInfo.Column.FieldName == "Kunde") // FieldNames umbennenen
{
BarButtonItem x = new BarButtonItem() { Content = "Klient/in öffnen" };
x.ItemClick += Kundeninfo_OnClick; // bearbeiten
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "MaKrank")
{
BarButtonItem x = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
x.ItemClick += Mitarbeiterinfo_OnClick; // eee
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "VertretungMo" || e.MenuInfo.Column.FieldName == "VertretungDi" ||
e.MenuInfo.Column.FieldName == "VertretungMi" || e.MenuInfo.Column.FieldName == "VertretungDo" ||
e.MenuInfo.Column.FieldName == "VertretungFr" || e.MenuInfo.Column.FieldName == "VertretungSa" ||
e.MenuInfo.Column.FieldName == "VertretungSo")
{
BarButtonItem s = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
s.ItemClick += MitarbeiterVertretunginfoWochenanzeige_OnClick;
e.Customizations.Add(s);
_mitarbeiterVertretungWocheninfo = e.MenuInfo.Column.FieldName;
BarButtonItem xs = new BarButtonItem() { Content = "Vertretung löschen" };
xs.ItemClick += DeletVertretungForWochenanzeige_OnClick;
e.Customizations.Add(xs);
_deletVertretungsWeek = e.MenuInfo.Column.FieldName;
}
}
private void GridDataControlWochenansichtMitarbeiter_OnShowGridMenu(object sender, GridMenuEventArgs e)
{
// ########### KontextMenue Wochenanzeige #########
//BarButtonItem ys = new BarButtonItem() { Content = "Krankmeldung Löschen" }; // villeicht reaktivieren
//ys.ItemClick += DeleteKrankmeldung_OnClick;
//e.Customizations.Add(ys);
if (e.MenuInfo.Column.FieldName == "Kunde") // FieldNames umbennenen
{
BarButtonItem x = new BarButtonItem() { Content = "Klient/in öffnen" };
x.ItemClick += Kundeninfo_OnClick; // bearbeiten
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "MaKrank")
{
BarButtonItem x = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
x.ItemClick += Mitarbeiterinfo_OnClick; // eee
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "VertretungMo" || e.MenuInfo.Column.FieldName == "VertretungDi" ||
e.MenuInfo.Column.FieldName == "VertretungMi" || e.MenuInfo.Column.FieldName == "VertretungDo" ||
e.MenuInfo.Column.FieldName == "VertretungFr" || e.MenuInfo.Column.FieldName == "VertretungSa" ||
e.MenuInfo.Column.FieldName == "VertretungSo")
{
BarButtonItem s = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
s.ItemClick += MitarbeiterVertretunginfoWochenanzeige_OnClick;
e.Customizations.Add(s);
_mitarbeiterVertretungWocheninfo = e.MenuInfo.Column.FieldName;
BarButtonItem xs = new BarButtonItem() { Content = "Vertretung löschen" };
xs.ItemClick += DeletVertretungForWochenanzeige_OnClick;
e.Customizations.Add(xs);
_deletVertretungsWeek = e.MenuInfo.Column.FieldName;
}
}
private void GridDataControlWochenansichtKlient_OnShowGridMenu(object sender, GridMenuEventArgs e)
{
// ########### KontextMenue Wochenanzeige #########
//BarButtonItem ys = new BarButtonItem() { Content = "Krankmeldung Löschen" }; // villeicht reaktivieren
//ys.ItemClick += DeleteKrankmeldung_OnClick;
//e.Customizations.Add(ys);
if (e.MenuInfo.Column.FieldName == "Kunde") // FieldNames umbennenen
{
BarButtonItem x = new BarButtonItem() { Content = "Klient/in öffnen" };
x.ItemClick += Kundeninfo_OnClick; // bearbeiten
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "MaKrank")
{
BarButtonItem x = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
x.ItemClick += Mitarbeiterinfo_OnClick; // eee
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "VertretungMo" || e.MenuInfo.Column.FieldName == "VertretungDi" ||
e.MenuInfo.Column.FieldName == "VertretungMi" || e.MenuInfo.Column.FieldName == "VertretungDo" ||
e.MenuInfo.Column.FieldName == "VertretungFr" || e.MenuInfo.Column.FieldName == "VertretungSa" ||
e.MenuInfo.Column.FieldName == "VertretungSo")
{
BarButtonItem s = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
s.ItemClick += MitarbeiterVertretunginfoWochenanzeige_OnClick;
e.Customizations.Add(s);
_mitarbeiterVertretungWocheninfo = e.MenuInfo.Column.FieldName;
BarButtonItem xs = new BarButtonItem() { Content = "Vertretung löschen" };
xs.ItemClick += DeletVertretungForWochenanzeige_OnClick;
e.Customizations.Add(xs);
_deletVertretungsWeek = e.MenuInfo.Column.FieldName;
}
}
private void Kundeninfo_OnClick(object sender, RoutedEventArgs e)
{
var vm = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
if (vm.Customer != null)
{
List<long> customerOidList = new List<long>();
customerOidList.Add(vm.Customer.CustomerOid);
var sgf = ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomersById(customerOidList));
var selectedCustomer = sgf[0];
VMFactory.CreateCustomerVMAsync(selectedCustomer.CustomerOid,
cb => this.Dispatch(
() =>
BeWoUtils.OpenModalViewWindow<CustomerVM, CustomerDC, BeWoView>(cb, null, () => this.Dispatch(
delegate
{
var updatedCustomer = new CompactCustomerDC();
ServiceFacade.DoCustomerServiceSync(s =>
updatedCustomer = s.GetCompactCustomerDC(selectedCustomer.CustomerOid));
selectedCustomer = updatedCustomer;
// UpdateControls();
// customerText.Text = updatedCustomer.ToString();
BeWoUtils.UpdateAllViews(selectedCustomer);
}))
));
}
}
private void Mitarbeiterinfo_OnClick(object sender, RoutedEventArgs e)
{
var a = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
if (a.Employee != null)
{
var sgf = ServiceFacade.DoEmployeeServiceSync(s =>
s.GetActiveCompactEmployeeWithOid(a.Employee.EmployeeOid));
var selectedEmployee = sgf;
VMFactory.CreateEmployeeVMAsync(selectedEmployee.EmployeeOid,
cb => this.Dispatch(
() =>
BeWoUtils.OpenModalViewWindow<EmployeeVM, EmployeeDC, BeWoView>(cb, null,
() => this.Dispatch(
delegate
{
var updatedEmployee = new CompactEmployeeDC();
ServiceFacade.DoEmployeeServiceSync(
s =>
updatedEmployee =
s.GetActiveCompactEmployeeWithOid(selectedEmployee
.EmployeeOid));
selectedEmployee = new CompactEmployeeDC();
selectedEmployee = updatedEmployee;
// UpdateControls();
// customerText.Text = updatedCustomer.ToString();
BeWoUtils.UpdateAllViews(selectedEmployee);
}))
));
}
}
private void MitarbeiterVertretunginfo_OnClick(object sender, RoutedEventArgs e)
{
var a = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
if (a.Vertretung != null)
{
if (!a.Vertretung.Equals(""))
{
long? employeeOid = null;
if (a.Vertretung != null)
{
employeeOid = a.Vertretung.VertretenderMitarbeiterOid;
}
if (employeeOid.HasValue)
{
var sgf = ServiceFacade.DoEmployeeServiceSync(s => s.GetActiveCompactEmployeeWithOid(employeeOid.Value));
var selectedEmployee = sgf;
VMFactory.CreateEmployeeVMAsync(selectedEmployee.EmployeeOid,
cb => this.Dispatch(
() =>
BeWoUtils.OpenModalViewWindow<EmployeeVM, EmployeeDC, BeWoView>(cb, null,
() => this.Dispatch(
delegate
{
var updatedEmployee = new CompactEmployeeDC();
ServiceFacade.DoEmployeeServiceSync(
s =>
updatedEmployee =
s.GetActiveCompactEmployeeWithOid(selectedEmployee
.EmployeeOid));
selectedEmployee = new CompactEmployeeDC();
selectedEmployee = updatedEmployee;
// UpdateControls();
// customerText.Text = updatedCustomer.ToString();
BeWoUtils.UpdateAllViews(selectedEmployee);
}))
));
}
}
else
MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt");
}
else
{
MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt");
}
}
private void MitarbeiterVertretunginfoWochenanzeige_OnClick(object sender, RoutedEventArgs e)
{
var x = (WochenansichtVM)GridDataControlWochenansichtMitarbeiter.SelectedItem;
foreach (var wochentag in x.VertretungsWoche)
{
if (wochentag.Key.Equals(_mitarbeiterVertretungWocheninfo))
{
_mitarbeiterVertretungWocheninfo = "";
foreach (var item in wochentag.Value)
{
if (item.Key != null)
{
if (item.Value.Vertreter != null)
{
var sgf = ServiceFacade.DoEmployeeServiceSync(s => s.GetActiveCompactEmployeeWithOid(item.Value.Vertreter.EmployeeOid));
var selectedEmployee = sgf;
VMFactory.CreateEmployeeVMAsync(selectedEmployee.EmployeeOid,
cb => this.Dispatch(
() =>
BeWoUtils.OpenModalViewWindow<EmployeeVM, EmployeeDC, BeWoView>(cb, null,
() => this.Dispatch(
delegate
{
var updatedEmployee = new CompactEmployeeDC();
ServiceFacade.DoEmployeeServiceSync(
s =>
updatedEmployee =
s.GetActiveCompactEmployeeWithOid(selectedEmployee.EmployeeOid));
selectedEmployee = new CompactEmployeeDC();
selectedEmployee = updatedEmployee;
// UpdateControls();
// customerText.Text = updatedCustomer.ToString();
BeWoUtils.UpdateAllViews(selectedEmployee);
}))
));
}
else
MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt");
}
else
{
MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt");
}
}
}
}
}
private void DeletVertretungForWochenanzeige_OnClick(object sender, RoutedEventArgs e)
{
if (MessageBox.Show("Möchten Sie die Vertretung wirklich löschen?", "Vertretung löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
_wochenVertretung.DeletVertretendenMitarbeiter((WochenansichtVM) GridDataControlWochenansichtMitarbeiter.SelectedItem, _deletVertretungsWeek);
var x = Datepicker.DateTime.FirstDateOfWeek(Datepicker.DateTime.GetIso8601WeekOfYear());
LadeWochenansicht(x,x.AddDays(5));
}
}
private void DeleteKrankmeldung_OnClick(object sender, RoutedEventArgs e)
{
if (MessageBox.Show("Möchten Sie die Abwesenheit wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
_tagesVertretung.DeleteKrankmeldung((TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem, null, Datepicker.DateTime.Date);
LadeTagesansicht(Datepicker.DateTime.Date);
}
}
private void DeletPerson_OnClick(object sender, RoutedEventArgs e)
{
if (MessageBox.Show("Möchten Sie die Vertretung wirklich löschen?", "Vertretung löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
_tagesVertretung.DeleteVertretung((TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem);
LadeTagesansicht(Datepicker.DateTime.Date);
}
}
private void KrankmeldungsZeitraumBearbeitungsView(object sender, RoutedEventArgs e)
{
_tagesVertretung.KrankMeldeZeitraumBearbeiten((TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem);
LadeTagesansicht(Datepicker.DateTime.Date);
}
private void GridViewBase_OnRowUpdated(object sender, RowEventArgs e)
{
var tagesansicht = (TagesansichtVM) GridDataControlTagesansichtMitarbeiter.SelectedItem;
_tagesVertretung.UpdateRowData(tagesansicht);
LadeTagesansicht(Datepicker.DateTime.Date);
}
private void ButtonWorkWeekView_Click(object sender, RoutedEventArgs e)
{
if (ScrollViewerTagesansicht.Visibility == Visibility.Visible)
{
ScrollViewerTagesansicht.Visibility = Visibility.Collapsed;
ScrollViewerWochenansicht.Visibility = Visibility.Visible;
KwWochenAnzeigen();
}
// else
// if (GridDataControlKlientenWochenansicht.Visibility == Visibility.Visible)
// {
// GridDataControlKlientenWochenansicht.Visibility = Visibility.Collapsed;
// GridDataControlKlientenWochenansicht2.Visibility= Visibility.Collapsed;
// GridMitarbeiterEinsatz.Visibility = Visibility.Visible;
//KwWochenAnzeigen();
// }else // Diesen Bereich Rausnehmen ??
// if (GridMitarbeiterEinsatz.Visibility == Visibility.Visible)
// {
// GridMitarbeiterEinsatz.Visibility = Visibility.Collapsed;
// GridDataControlKlientenWochenansicht.Visibility = Visibility.Visible;
// GridDataControlKlientenWochenansicht2.Visibility = Visibility.Visible;
// KwWochenAnzeigen();
// }
}
private void KwWochenAnzeigen()
{
DateTime dt = Datepicker.DateTime;
RenameColumnHeader(dt);
DateTime startdt = dt.FirstDateOfWeek(dt.GetIso8601WeekOfYear());
DateTime enddt = startdt.AddDays(5);
if (ScrollViewerWochenansicht.Visibility == Visibility.Visible)
{
LadeWochenansicht(startdt,enddt);
}
//else if (GridMitarbeiterEinsatz.Visibility == Visibility.Visible)
// {
// GetAllVertretungsFreieMitarbeiter(startdt, enddt);
// }
Datelbl.Content = "KW " + dt.GetIso8601WeekOfYear() + " / " + startdt.ToString("dd.MM.yyyy") + " - " + enddt.ToString("dd.MM.yyyy");
}
private void ButtonDayView_Click(object sender, RoutedEventArgs e)
{
if (ScrollViewerTagesansicht.Visibility != Visibility.Visible)
{
ScrollViewerTagesansicht.Visibility = Visibility.Visible;
ScrollViewerWochenansicht.Visibility = Visibility.Collapsed;
//GridMitarbeiterEinsatz.Visibility = Visibility.Collapsed;
TagesAnzeige();
}
}
private void TagesAnzeige()
{
DateTime dt = Datepicker.DateTime;
Datelbl.Content = dt.ToString("dddd dd.MM.yyyy");
LadeTagesansicht(dt);
}
private void Aktualisieren_OnClick(object sender, RoutedEventArgs e)
{
if (ScrollViewerTagesansicht.Visibility == Visibility.Visible)
{
LadeTagesansicht(Datepicker.DateTime);
}
else if (ScrollViewerWochenansicht.Visibility == Visibility.Visible)
{
var x = Datepicker.DateTime.FirstDateOfWeek(Datepicker.DateTime.GetIso8601WeekOfYear());
LadeWochenansicht(x,x.AddDays(5));
}//Rausnehmen ??
else if (GridMitarbeiterEinsatz.Visibility == Visibility.Visible)
{
var x = Datepicker.DateTime.FirstDateOfWeek(Datepicker.DateTime.GetIso8601WeekOfYear());
GetAllVertretungsFreieMitarbeiter(x, x.AddDays(5));
}
}
private void PfeilLinksDatumRunter_OnClick(object sender, RoutedEventArgs e)
{
PfeilControll(-1);
}
private void PfeilRechtsDatumHoch_OnClick(object sender, RoutedEventArgs e)
{
PfeilControll(1);
}
private void PfeilControll(int i)
{
var dt = Datepicker.DateTime;
if (ScrollViewerTagesansicht.Visibility == Visibility.Visible)
{
var a = dt.Date.AddDays(i);
Datepicker.DateTime = a;
}
else
{
var x = dt.Date.AddDays(i * 7);
RenameColumnHeader(x);
Datepicker.DateTime = x;
}
}
private void RenameColumnHeader(DateTime dt)
{
DateTime startdt = dt.FirstDateOfWeek(dt.GetIso8601WeekOfYear());
DateTime montagDt = startdt.Date;
DateTime dienstagDt = startdt.Date.AddDays(1);
DateTime mittwochDt = startdt.Date.AddDays(2);
DateTime donnerstagDt = startdt.Date.AddDays(3);
DateTime freitagDt = startdt.Date.AddDays(4);
DateTime samstagDt = startdt.Date.AddDays(5);
//add hier die header names das datum hinzu
foreach (var col in GridDataControlWochenansichtMitarbeiter.Columns)
{
if (col.FieldName.Equals("Mo"))
{
col.Header = "Mo" + " " + montagDt.Date.Day + "." + montagDt.Date.Month;
}
if (col.FieldName.Equals("Di"))
{
col.Header = "Di" + " " + dienstagDt.Date.Day + "." + dienstagDt.Date.Month;
}
if (col.FieldName.Equals("Mi"))
{
col.Header = "Mi" + " " + mittwochDt.Date.Day + "." + mittwochDt.Date.Month;
}
if (col.FieldName.Equals("Do"))
{
col.Header = "Do" + " " + donnerstagDt.Date.Day + "." + donnerstagDt.Date.Month;
}
if (col.FieldName.Equals("Fr"))
{
col.Header = "Fr" + " " + freitagDt.Date.Day + "." + freitagDt.Date.Month;
}
if (col.FieldName.Equals("Sa"))
{
col.Header = "Sa" + " " + samstagDt.Date.Day + "." + samstagDt.Date.Month;
}
}
}
private void Datepicker_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
var dt = (DateTime)e.NewValue;
if (ScrollViewerTagesansicht.Visibility == Visibility.Visible)
{
Datelbl.Content = dt.ToString("dddd dd.MM.yyyy");
LadeTagesansicht(dt);
}
else
{
DateTime startdt = dt.FirstDateOfWeek(dt.GetIso8601WeekOfYear());
DateTime enddt = startdt.AddDays(5);
if (ScrollViewerTagesansicht.Visibility == Visibility.Visible)
{
LadeWochenansicht(startdt, enddt);
}
else if (ScrollViewerWochenansicht.Visibility == Visibility.Visible)
{
GetAllVertretungsFreieMitarbeiter(startdt, enddt);
}
RenameColumnHeader(dt);
Datelbl.Content = "KW " + dt.GetIso8601WeekOfYear() + " / " + startdt.ToString("dd.MM.yyyy") + " - " + enddt.ToString("dd.MM.yyyy");
}
}
private void SetAbwesenheiten()
{
var abwesenheiten = ServiceFacade.DoCustomerServiceSync(s => s.GetAllAbsenceReasons());
ComboBoxKlientVertretung.ItemsSource = abwesenheiten;
ComboBoxMitarbeiterVertretung.ItemsSource = abwesenheiten;
AbwesenheitsKategorieComboBox.ItemsSource = abwesenheiten;
}
private void SetAktuellesDate()
{
DateTime dt = DateTime.Now;
Datelbl.Content = dt.ToString("dddd dd.MM.yyyy");
//hole zuerst alle Daten
Datepicker.DateTime = dt;
//MitarbeiterVertretung
MVDatepickerVon.DateTime = dt;
MVDatepickerBis.DateTime = dt;
//KlientenVertretung
KVDatepickerVon.DateTime = dt;
KVDatepickerBis.DateTime = dt;
//ArbeitsUnfähigkeitsKrankmeldung Am
KrankMeldungMitarbeiterDatepicker.DateTime = dt;
KrankMeldungKlientDatepicker.DateTime = dt;
}
}
public class MitarbeiterWochenansicht
{
public string Employee { get; set; }
public CompactEmployeeDC EmployeeDc { get; set; }
//Fürs WPF Employee Wochenanzeige
public string EingesetztBeiMo { get; set; }
public string EingesetztBeiDi { get; set; }
public string EingesetztBeiMi { get; set; }
public string EingesetztBeiDo { get; set; }
public string EingesetztBeiFr { get; set; }
public string EingesetztBeiSa { get; set; }
public string Mo { get; set; }
public string Di { get; set; }
public string Mi { get; set; }
public string Do { get; set; }
public string Fr { get; set; }
public string Sa { get; set; }
public string So { get; set; }
}
}