1547 lines
57 KiB
C#
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; }
|
|
}
|
|
}
|