2017-11-15 08:08:12 +01:00
using System ;
using System.Collections.Generic ;
2019-08-08 14:47:53 +02:00
using System.Diagnostics ;
2017-11-15 08:08:12 +01:00
using System.Globalization ;
2018-05-21 16:39:24 +02:00
using System.Linq ;
2017-11-15 08:08:12 +01:00
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
{
2019-08-08 14:47:53 +02:00
public partial class VertretungsMainView
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
private readonly List < TagesansichtVM > _AbwesendeMitarbeiter = new List < TagesansichtVM > ( ) ;
private readonly List < TagesansichtVM > _AbwesendeKlienten = new List < TagesansichtVM > ( ) ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
private readonly List < WochenansichtVM > _itemsWochenMitarbeiter = new List < WochenansichtVM > ( ) ;
private readonly List < WochenansichtVM > _itemsWochenKlienten = new List < WochenansichtVM > ( ) ;
private VertretungsSearchView _view = null ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
private VertretenderKlientSearchView _viewMitarbeiter = null ;
2017-11-15 08:08:12 +01:00
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 ( ) ;
2018-05-21 16:39:24 +02:00
2017-11-23 10:58:07 +01:00
public VertretungsMainView ( )
2017-11-15 08:08:12 +01:00
{
InitializeComponent ( ) ;
2018-05-21 16:39:24 +02:00
GridDataControlTagesansichtKlient . ItemsSource = _AbwesendeKlienten ;
GridDataControlTagesansichtMitarbeiter . ItemsSource = _AbwesendeMitarbeiter ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
GridDataControlWochenansichtMitarbeiter . ItemsSource = _itemsWochenMitarbeiter ;
GridDataControlWochenansichtKlient . ItemsSource = _itemsWochenKlienten ;
2017-11-23 10:58:07 +01:00
GridMitarbeiterEinsatz . ItemsSource = _mitarbeiterwochen ;
2017-11-15 08:08:12 +01:00
SetAktuellesDate ( ) ;
SetAbwesenheiten ( ) ;
MVCheckBox . IsChecked = true ;
KVCheckBox . IsChecked = true ;
}
2018-05-21 16:39:24 +02:00
private void LadeTagesansicht ( DateTime datum )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
_AbwesendeKlienten . Clear ( ) ;
_AbwesendeMitarbeiter . Clear ( ) ;
ServiceFacade . DoOperationsServiceAsync ( s = > s . GetVertretungsListe ( datum ) , r = >
2017-11-15 08:08:12 +01:00
{
2017-11-23 10:58:07 +01:00
2017-11-15 08:08:12 +01:00
this . Dispatch ( delegate
2017-11-23 10:58:07 +01:00
{
foreach ( var item in r )
{
2018-05-21 16:39:24 +02:00
var vm = _tagesVertretung . ErstelleTagesansichtVM ( item ) ;
if ( vm . VertretungsStatus = = VertretungsStatus . KlientKrank )
{
_AbwesendeKlienten . Add ( vm ) ;
}
else
{
_AbwesendeMitarbeiter . Add ( vm ) ;
}
2017-11-23 10:58:07 +01:00
}
2018-05-21 16:39:24 +02:00
GridDataControlTagesansichtMitarbeiter . RefreshData ( ) ;
GridDataControlTagesansichtMitarbeiter . RefreshUI ( ) ;
GridDataControlTagesansichtKlient . RefreshData ( ) ;
GridDataControlTagesansichtKlient . RefreshUI ( ) ;
2017-11-15 08:08:12 +01:00
} ) ;
} ) ;
}
2018-05-21 16:39:24 +02:00
private void LadeWochenansicht ( DateTime startDatum , DateTime endDatum )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
ServiceFacade . DoOperationsServiceAsync ( s = > s . GetVertretungsListeForTimeSpan ( startDatum , endDatum ) , r = >
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
this . Dispatch ( delegate
{
var items = new List < TagesansichtVM > ( ) ;
foreach ( var item in r )
{
var vm = _tagesVertretung . ErstelleTagesansichtVM ( item ) ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
items . Add ( vm ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
GetWochenDienstFromItems ( startDatum , items ) ;
2017-11-15 08:08:12 +01:00
} ) ;
} ) ;
}
2018-05-21 16:39:24 +02:00
private void GetWochenDienstFromItems ( DateTime time , List < TagesansichtVM > items )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
_itemsWochenMitarbeiter . Clear ( ) ;
_itemsWochenKlienten . Clear ( ) ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
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 )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
_itemsWochenMitarbeiter . Add ( item ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
foreach ( var item in itemsKlienten )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
_itemsWochenKlienten . Add ( item ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
GridDataControlWochenansichtMitarbeiter . RefreshData ( ) ;
GridDataControlWochenansichtMitarbeiter . RefreshUI ( ) ;
GridDataControlWochenansichtKlient . RefreshData ( ) ;
GridDataControlWochenansichtKlient . RefreshUI ( ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
2017-11-15 08:08:12 +01:00
private void GetAllVertretungsFreieMitarbeiter ( DateTime startDatum , DateTime endDatum )
{
ServiceFacade . DoOperationsServiceAsync ( s = > s . VertretungsMitarbeiterListeWoechentlich ( startDatum , endDatum ) , r = >
{
this . Dispatch ( delegate
{
2017-11-23 10:58:07 +01:00
_mitarbeiterwochen . Clear ( ) ;
foreach ( var item in r )
{
AddMitarbeiterItemsToGrid ( item , startDatum ) ;
}
GridMitarbeiterEinsatz . RefreshData ( ) ;
GridMitarbeiterEinsatz . RefreshUI ( ) ;
2017-11-15 08:08:12 +01:00
} ) ;
2018-05-21 16:39:24 +02:00
2017-11-15 08:08:12 +01:00
} ) ;
}
private void AddMitarbeiterItemsToGrid ( VertretungsListeMitarbeiterItemsDC item , DateTime time )
{
var compactEmployee = ServiceFacade . DoEmployeeServiceSync ( r = > r . GetActiveCompactEmployeeWithOid ( item . EmployeeOid . Value ) ) ;
2019-08-08 14:47:53 +02:00
var mitarbeiterWochenansicht = new MitarbeiterWochenansicht
2017-11-15 08:08:12 +01:00
{
Employee = item . Employee ,
EmployeeDc = compactEmployee
} ;
2019-08-08 14:47:53 +02:00
var dt = time ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
var startdt = dt . FirstDateOfWeek ( dt . GetIso8601WeekOfYear ( ) ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
if ( item . AbsenceStartDate ! = null & & item . AbsenceEndDate ! = null )
2017-11-15 08:08:12 +01:00
{
2019-08-08 14:47:53 +02:00
var anfangDt = item . AbsenceStartDate . Value ;
var endeDt = item . AbsenceEndDate . Value ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
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 ) ;
2017-11-15 08:08:12 +01:00
//Bereich für Eingesetzt bei übernehmen von unterem code
//
// Montag | 0
2019-08-08 14:47:53 +02:00
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung ( anfangDt , endeDt , montagDt , item , mitarbeiterWochenansicht , "EingesetztBeiMo" , 0 ) ;
2017-11-15 08:08:12 +01:00
// Dienstag | 1
2019-08-08 14:47:53 +02:00
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung ( anfangDt , endeDt , dienstagDt , item , mitarbeiterWochenansicht , "EingesetztBeiDi" , 1 ) ;
2017-11-15 08:08:12 +01:00
// Mittwoch | 2
2019-08-08 14:47:53 +02:00
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung ( anfangDt , endeDt , mittwochDt , item , mitarbeiterWochenansicht , "EingesetztBeiMi" , 2 ) ;
2017-11-15 08:08:12 +01:00
//Donnerstag | 3
2019-08-08 14:47:53 +02:00
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung ( anfangDt , endeDt , donnerstagDt , item , mitarbeiterWochenansicht , "EingesetztBeiDo" , 3 ) ;
2017-11-15 08:08:12 +01:00
//Freitag | 4
2019-08-08 14:47:53 +02:00
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung ( anfangDt , endeDt , freitagDt , item , mitarbeiterWochenansicht , "EingesetztBeiFr" , 4 ) ;
2017-11-15 08:08:12 +01:00
// Samstag | 5
2019-08-08 14:47:53 +02:00
mitarbeiterWochenansicht = WochentageMitarbeiterVerarbeitung ( anfangDt , endeDt , samstagDt , item , mitarbeiterWochenansicht , "EingesetztBeiSa" , 5 ) ;
2017-11-15 08:08:12 +01:00
}
2019-08-08 14:47:53 +02:00
_mitarbeiterwochen . Add ( mitarbeiterWochenansicht ) ;
2017-11-15 08:08:12 +01:00
}
public MitarbeiterWochenansicht WochentageMitarbeiterVerarbeitung ( DateTime startDt , DateTime endDt , DateTime wochenTag , VertretungsListeMitarbeiterItemsDC item , MitarbeiterWochenansicht wwk , string eingesetztBei , int wochenTagZahl )
{
if ( startDt . Date < = wochenTag & & wochenTag < = endDt . Date )
{
2019-08-08 14:47:53 +02:00
if ( item ? . Customer ! = null )
2017-11-15 08:08:12 +01:00
{
2019-08-08 14:47:53 +02:00
if ( item . AbsenceStartDate < = wochenTag & & item . AbsenceEndDate > = wochenTag )
2017-11-15 08:08:12 +01:00
{
switch ( wochenTagZahl )
{
case 0 :
wwk . EingesetztBeiMo = item . Customer . FullName ;
break ;
case 1 :
wwk . EingesetztBeiDi = item . Customer . FullName ;
2019-08-08 14:47:53 +02:00
break ;
2017-11-15 08:08:12 +01:00
case 2 :
wwk . EingesetztBeiMi = item . Customer . FullName ;
2019-08-08 14:47:53 +02:00
break ;
2017-11-15 08:08:12 +01:00
case 3 :
wwk . EingesetztBeiDo = item . Customer . FullName ;
2019-08-08 14:47:53 +02:00
break ;
2017-11-15 08:08:12 +01:00
case 4 :
wwk . EingesetztBeiFr = item . Customer . FullName ;
2019-08-08 14:47:53 +02:00
break ;
2017-11-15 08:08:12 +01:00
case 5 :
wwk . EingesetztBeiSa = item . Customer . FullName ;
2019-08-08 14:47:53 +02:00
break ;
2017-11-15 08:08:12 +01:00
}
}
else
{
switch ( wochenTagZahl )
{
case 0 :
2019-08-08 14:47:53 +02:00
wwk . EingesetztBeiMo = string . Empty ;
2017-11-15 08:08:12 +01:00
break ;
case 1 :
2019-08-08 14:47:53 +02:00
wwk . EingesetztBeiDi = string . Empty ;
2017-11-15 08:08:12 +01:00
break ;
case 2 :
2019-08-08 14:47:53 +02:00
wwk . EingesetztBeiMi = string . Empty ;
2017-11-15 08:08:12 +01:00
break ;
case 3 :
2019-08-08 14:47:53 +02:00
wwk . EingesetztBeiDo = string . Empty ;
2017-11-15 08:08:12 +01:00
break ;
case 4 :
2019-08-08 14:47:53 +02:00
wwk . EingesetztBeiFr = string . Empty ;
break ;
2017-11-15 08:08:12 +01:00
case 5 :
2019-08-08 14:47:53 +02:00
wwk . EingesetztBeiSa = string . Empty ;
2017-11-15 08:08:12 +01:00
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 )
2019-08-08 14:47:53 +02:00
{
var mitarbeiterView = ( MitarbeiterWochenansicht ) GridMitarbeiterEinsatz . SelectedItem ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
var employee = mitarbeiterView . EmployeeDc ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
_viewMitarbeiter ? . Close ( ) ;
_viewMitarbeiter = new VertretenderKlientSearchView ( DateTime . Now , DateTime . Now , DateTime . Now , employee . EmployeeOid ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
_viewMitarbeiter . RaiseCustomEvent + = NewWindow_RaiseCustomMitarbeiterEvent ;
_viewMitarbeiter . ShowDialog ( ) ;
2017-11-15 08:08:12 +01:00
}
2019-08-08 14:47:53 +02:00
private void NewWindow_RaiseCustomMitarbeiterEvent ( object sender , CustomKlientEventArgs e )
2017-11-15 08:08:12 +01:00
{
UpdateKlientToVertretendenMitarbeiter ( e . Message , e . StartDate , e . EndDate ) ;
_viewMitarbeiter . Close ( ) ;
}
//Anpassen Weil nicht funktionsfähig
private void UpdateKlientToVertretendenMitarbeiter ( CompactCustomerDC customer , DateTime ? start , DateTime ? ende )
{
2017-11-23 10:58:07 +01:00
var a = ( MitarbeiterWochenansicht ) GridMitarbeiterEinsatz . SelectedItem ;
2017-11-15 08:08:12 +01:00
2017-11-23 10:58:07 +01:00
var tag = GridMitarbeiterEinsatz . CurrentColumn . FieldName ;
2017-11-15 08:08:12 +01:00
//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));
//}
//}
//}
}
2018-05-21 16:39:24 +02:00
2017-11-15 08:08:12 +01:00
private void MVDatepickerVon_OnEditValueChanged ( object sender , EditValueChangedEventArgs e )
{
2018-05-21 16:39:24 +02:00
if ( e . NewValue ! = null )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
var dt = ( DateTime ) e . NewValue ;
if ( dt > = MVDatepickerBis . DateTime )
{
MVDatepickerBis . DateTime = dt ;
}
2017-11-15 08:08:12 +01:00
}
}
private void MVDatepickerBis_OnEditValueChanged ( object sender , EditValueChangedEventArgs e )
{
2018-05-21 16:39:24 +02:00
if ( e . NewValue ! = null )
{
var dt = ( DateTime ) e . NewValue ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( dt < = MVDatepickerVon . DateTime )
{
MVDatepickerVon . DateTime = dt ;
}
2017-11-15 08:08:12 +01:00
}
}
2018-05-21 16:39:24 +02:00
2017-11-15 08:08:12 +01:00
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 ;
}
}
2018-05-21 16:39:24 +02:00
2017-11-15 08:08:12 +01:00
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 ;
2019-08-08 14:47:53 +02:00
if ( ! string . IsNullOrEmpty ( popupedit_MitarbeiterVertretungSearch . Text ) & & ComboBoxMitarbeiterVertretung . SelectedValue ! = null )
2017-11-15 08:08:12 +01:00
{
2019-08-08 14:47:53 +02:00
if ( MVCheckBox . IsChecked ! = null & & MVCheckBox . IsChecked . Value )
2017-11-15 08:08:12 +01:00
{
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
{
2018-05-21 16:39:24 +02:00
MessageBox . Show ( "Bitte geben sie eine Start- und eine Endzeit ein." ) ;
2017-11-15 08:08:12 +01:00
}
}
}
else
{
2022-11-25 15:22:38 +01:00
MessageBox . Show ( BS . Shared . Translation . Translator . Translate ( "Bitte wählen sie eine/n Mitarbeiter/in und eine Abwesenheitskategorie aus." ) ) ;
2017-11-15 08:08:12 +01:00
}
if ( xsf )
{
popup_newMitarbeiterVertretung . IsOpen = false ;
SaveEmployeeInVertretung ( ) ;
ClearAllMitarbeiterValues ( ) ;
2018-05-21 16:39:24 +02:00
if ( ScrollViewerTagesansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
LadeTagesansicht ( Datepicker . DateTime . Date ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
else if ( ScrollViewerWochenansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
var x = Datepicker . DateTime . FirstDateOfWeek ( Datepicker . DateTime . GetIso8601WeekOfYear ( ) ) ;
2018-05-21 16:39:24 +02:00
LadeWochenansicht ( x , x . AddDays ( 5 ) ) ;
2017-11-15 08:08:12 +01:00
}
}
}
private void ClearAllMitarbeiterValues ( )
{
MVDatepickerVon . DateTime = DateTime . Now ;
MVDatepickerBis . DateTime = DateTime . Now ;
2019-08-08 14:47:53 +02:00
popupedit_MitarbeiterVertretungSearch . Text = string . Empty ;
2017-11-15 08:08:12 +01:00
ComboBoxMitarbeiterVertretung . SelectedIndex = - 1 ;
2019-08-08 14:47:53 +02:00
MitarbeiterNotice . Text = string . Empty ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
MVDatepicker_UhrzeitVon . Text = string . Empty ;
MVDatepicker_UhrzeitBis . Text = string . Empty ;
2017-11-15 08:08:12 +01:00
}
private void SaveEmployeeInVertretung ( )
{
2019-08-08 14:47:53 +02:00
var absenceTime = new AbsenceTimeDC ( ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
if ( MVCheckBox . IsChecked ! = null & & MVCheckBox . IsChecked . Value ) {
absenceTime . Start = MVDatepickerVon . DateTime . Date ;
absenceTime . End = MVDatepickerBis . DateTime . Date ;
2017-11-15 08:08:12 +01:00
}
else
{
2019-08-08 14:47:53 +02:00
string xvon , yvon ;
2017-11-15 08:08:12 +01:00
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 ;
}
2019-08-08 14:47:53 +02:00
var dateTimeStart = DateTime . ParseExact ( xvon , "HH:mm" , CultureInfo . CurrentCulture ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
var dateTimeEnd = DateTime . ParseExact ( yvon , "HH:mm" , CultureInfo . CurrentCulture ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
var start = MVDatepickerVon . DateTime . MergeDatesByDate ( dateTimeStart ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
var ende = MVDatepickerBis . DateTime . MergeDatesByDate ( dateTimeEnd ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
absenceTime . Start = start ;
absenceTime . End = ende ;
2017-11-15 08:08:12 +01:00
}
2019-08-08 14:47:53 +02:00
absenceTime . Reason = ComboBoxMitarbeiterVertretung . SelectedValue as AbsenceReasonDC ;
absenceTime . Notice = MitarbeiterNotice . Text ;
absenceTime . KrankheitsMeldung = KrankMeldungMitarbeiterDatepicker . DateTime . Date ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
ServiceFacade . DoOperationsServiceSync ( s = > s . InsertNewEmployeeAbsenceTime ( currentEmployee . EmployeeOid , absenceTime ) ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
2017-11-15 08:08:12 +01:00
private CompactCustomerDC currentKlient ;
private void KlientVertretungsToggleButton_OnChecked ( object sender , RoutedEventArgs e )
{
2019-08-08 14:47:53 +02:00
KVDatepicker_UhrzeitVon . Text = string . Empty ;
KVDatepicker_UhrzeitBis . Text = string . Empty ;
2017-11-15 08:08:12 +01:00
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 )
{
2019-08-08 14:47:53 +02:00
var xsf = false ;
2017-11-15 08:08:12 +01:00
if ( ! popupedit_KlientVertretungSearch . Text . Equals ( "" ) & & ComboBoxKlientVertretung . SelectedValue ! = null )
{
2019-08-08 14:47:53 +02:00
if ( KVCheckBox . IsChecked ! = null & & KVCheckBox . IsChecked . Value )
2017-11-15 08:08:12 +01:00
{
xsf = true ;
}
else
{
2019-08-08 14:47:53 +02:00
if ( ! KVDatepicker_UhrzeitVon . Text . Equals ( "" ) & & ! KVDatepicker_UhrzeitBis . Text . Equals ( "" ) )
2017-11-15 08:08:12 +01:00
{
2019-08-08 14:47:53 +02:00
string uVon , uBis ;
2017-11-15 08:08:12 +01:00
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
{
2018-05-21 16:39:24 +02:00
MessageBox . Show ( "Bitte geben sie eine Start- und eine Endzeit ein." ) ;
2017-11-15 08:08:12 +01:00
}
}
}
else
{
2022-11-25 15:22:38 +01:00
MessageBox . Show ( "Bitte wählen Sie " + BS . Shared . Translation . Translator . Translate ( "eine/n Klient/in" ) + " und eine Abwesenheitskategorie aus." ) ;
2017-11-15 08:08:12 +01:00
}
if ( xsf ) {
popup_newKlientVertretung . IsOpen = false ;
SaveKlientInVertretung ( ) ;
ClearAllKlientValues ( ) ;
2018-05-21 16:39:24 +02:00
if ( ScrollViewerTagesansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
LadeTagesansicht ( Datepicker . DateTime . Date ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
else if ( ScrollViewerWochenansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
var x = Datepicker . DateTime . FirstDateOfWeek ( Datepicker . DateTime . GetIso8601WeekOfYear ( ) ) ;
2018-05-21 16:39:24 +02:00
LadeWochenansicht ( x , x . AddDays ( 5 ) ) ;
2017-11-15 08:08:12 +01:00
}
}
}
private void ClearAllKlientValues ( )
{
KVDatepickerVon . DateTime = DateTime . Now ;
KVDatepickerBis . DateTime = DateTime . Now ;
2019-08-08 14:47:53 +02:00
popupedit_KlientVertretungSearch . Text = string . Empty ;
2017-11-15 08:08:12 +01:00
ComboBoxKlientVertretung . SelectedIndex = - 1 ;
2019-08-08 14:47:53 +02:00
KlientNotice . Text = string . Empty ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
KVDatepicker_UhrzeitVon . Text = string . Empty ;
KVDatepicker_UhrzeitBis . Text = string . Empty ;
2017-11-15 08:08:12 +01:00
}
private void SaveKlientInVertretung ( )
{
2019-08-08 14:47:53 +02:00
var absenceTime = new AbsenceTimeDC ( ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
if ( KVCheckBox . IsChecked ! = null & & KVCheckBox . IsChecked . Value )
2017-11-15 08:08:12 +01:00
{
2019-08-08 14:47:53 +02:00
absenceTime . Start = KVDatepickerVon . DateTime . Date ;
absenceTime . End = KVDatepickerBis . DateTime . Date ;
2017-11-15 08:08:12 +01:00
}
else
{
2019-08-08 14:47:53 +02:00
string xvon , yvon ;
2017-11-15 08:08:12 +01:00
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 ;
}
2019-08-08 14:47:53 +02:00
var dateTimeStart = DateTime . ParseExact ( xvon , "HH:mm" , CultureInfo . CurrentCulture ) ;
var dateTimeEnd = DateTime . ParseExact ( yvon , "HH:mm" , CultureInfo . CurrentCulture ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
var start = KVDatepickerVon . DateTime . MergeDatesByDate ( dateTimeStart ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
var ende = KVDatepickerBis . DateTime . MergeDatesByDate ( dateTimeEnd ) ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
absenceTime . Start = start ;
absenceTime . End = ende ;
2017-11-15 08:08:12 +01:00
}
2019-08-08 14:47:53 +02:00
absenceTime . Reason = ComboBoxKlientVertretung . SelectedValue as AbsenceReasonDC ;
absenceTime . Notice = KlientNotice . Text ;
absenceTime . KrankheitsMeldung = KrankMeldungKlientDatepicker . DateTime . Date ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
ServiceFacade . DoOperationsServiceSync ( s = > s . InsertNewCustomerAbsenceTime ( currentKlient . CustomerOid , absenceTime ) ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
private void ButtonVertretungWochenAnzeigeMitarbeiter_Click ( object sender , RoutedEventArgs e )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
_wochenVertretung . AddeNeueVertretungforWochenAnsicht ( ( WochenansichtVM ) GridDataControlWochenansichtMitarbeiter . SelectedItem , GridDataControlWochenansichtMitarbeiter . CurrentColumn . FieldName ) ;
2017-11-15 08:08:12 +01:00
var x = Datepicker . DateTime . FirstDateOfWeek ( Datepicker . DateTime . GetIso8601WeekOfYear ( ) ) ;
2018-05-21 16:39:24 +02:00
LadeWochenansicht ( x , x . AddDays ( 5 ) ) ;
2017-11-15 08:08:12 +01:00
}
private void ButtonInfo_OnClick ( object sender , RoutedEventArgs e )
{
2018-05-21 16:39:24 +02:00
//var a = (WochenansichtVM)GridDataControlKlientenWochenansicht2.SelectedItem;
//if (!a.IsMitarbeiterKrank)
//{
// // bleibt noch offen
//}
//else
//{
// MessageBox.Show("Du kannst einem kranken Klienten keine Mitarbeiter hinzufügen.","Info");
//}
2017-11-15 08:08:12 +01:00
}
private void TagesansichtSettings_OnDefaultButtonClick ( object sender , RoutedEventArgs e )
{
2018-05-23 10:37:57 +02:00
2018-05-21 16:39:24 +02:00
_tagesVertretung . AddeNeueTagesVertretung ( ( TagesansichtVM ) GridDataControlTagesansichtMitarbeiter . SelectedItem , Datepicker . DateTime ) ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
LadeTagesansicht ( Datepicker . DateTime . Date ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
private void GridDataControlTagesansichtMitarbeiter_OnShowGridMenu ( object sender , GridMenuEventArgs e )
2019-08-08 14:47:53 +02:00
{
2018-05-21 16:39:24 +02:00
var a = ( TagesansichtVM ) GridDataControlTagesansichtMitarbeiter . SelectedItem ;
if ( e . MenuInfo . Column . FieldName = = "Kunde" )
2017-11-15 08:08:12 +01:00
{
2022-11-25 15:22:38 +01:00
BarButtonItem x = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Klient/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
x . ItemClick + = Kundeninfo_OnClick ;
e . Customizations . Add ( x ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( e . MenuInfo . Column . FieldName = = "KrankerMitarbeiter" )
{
2022-11-25 15:22:38 +01:00
BarButtonItem x = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Mitarbeiter/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
x . ItemClick + = Mitarbeiterinfo_OnClick ;
e . Customizations . Add ( x ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( e . MenuInfo . Column . FieldName = = "Vertretung" )
{
2022-11-25 15:22:38 +01:00
BarButtonItem s = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Mitarbeiter/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
s . ItemClick + = MitarbeiterVertretunginfo_OnClick ;
e . Customizations . Add ( s ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( a . Vertretung ! = null )
{
BarButtonItem y = new BarButtonItem ( ) { Content = "Vertretung löschen" } ;
y . ItemClick + = DeletPerson_OnClick ;
e . Customizations . Add ( y ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
BarButtonItem ys = new BarButtonItem ( ) { Content = "Abwesenheit löschen" } ;
ys . ItemClick + = DeleteKrankmeldung_OnClick ;
e . Customizations . Add ( ys ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
private void GridDataControlTagesansichtKlient_OnShowGridMenu ( object sender , GridMenuEventArgs e )
{
var a = ( TagesansichtVM ) GridDataControlTagesansichtMitarbeiter . SelectedItem ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( e . MenuInfo . Column . FieldName = = "Kunde" )
2017-11-15 08:08:12 +01:00
{
2022-11-25 15:22:38 +01:00
BarButtonItem x = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Klient/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
x . ItemClick + = Kundeninfo_OnClick ;
e . Customizations . Add ( x ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( e . MenuInfo . Column . FieldName = = "KrankerMitarbeiter" )
{
2022-11-25 15:22:38 +01:00
BarButtonItem x = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Mitarbeiter/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
x . ItemClick + = Mitarbeiterinfo_OnClick ;
e . Customizations . Add ( x ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( e . MenuInfo . Column . FieldName = = "Vertretung" )
{
2022-11-25 15:22:38 +01:00
BarButtonItem s = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Mitarbeiter/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
s . ItemClick + = MitarbeiterVertretunginfo_OnClick ;
e . Customizations . Add ( s ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( a . Vertretung ! = null )
{
BarButtonItem y = new BarButtonItem ( ) { Content = "Vertretung löschen" } ;
y . ItemClick + = DeletPerson_OnClick ;
e . Customizations . Add ( y ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
BarButtonItem ys = new BarButtonItem ( ) { Content = "Abwesenheit löschen" } ;
ys . ItemClick + = DeleteKrankmeldung_OnClick ;
e . Customizations . Add ( ys ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
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
2017-11-15 08:08:12 +01:00
{
2022-11-25 15:22:38 +01:00
BarButtonItem x = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Klient/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
x . ItemClick + = Kundeninfo_OnClick ; // bearbeiten
e . Customizations . Add ( x ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
if ( e . MenuInfo . Column . FieldName = = "MaKrank" )
{
2022-11-25 15:22:38 +01:00
BarButtonItem x = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Mitarbeiter/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
x . ItemClick + = Mitarbeiterinfo_OnClick ; // eee
e . Customizations . Add ( x ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
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" )
{
2022-11-25 15:22:38 +01:00
BarButtonItem s = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Mitarbeiter/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
s . ItemClick + = MitarbeiterVertretunginfoWochenanzeige_OnClick ;
e . Customizations . Add ( s ) ;
_mitarbeiterVertretungWocheninfo = e . MenuInfo . Column . FieldName ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
BarButtonItem xs = new BarButtonItem ( ) { Content = "Vertretung löschen" } ;
xs . ItemClick + = DeletVertretungForWochenanzeige_OnClick ;
e . Customizations . Add ( xs ) ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
_deletVertretungsWeek = e . MenuInfo . Column . FieldName ;
}
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
private void GridDataControlWochenansichtMitarbeiter_OnShowGridMenu ( object sender , GridMenuEventArgs e )
{
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
// ########### KontextMenue Wochenanzeige #########
//BarButtonItem ys = new BarButtonItem() { Content = "Krankmeldung Löschen" }; // villeicht reaktivieren
//ys.ItemClick += DeleteKrankmeldung_OnClick;
//e.Customizations.Add(ys);
2018-02-19 10:52:48 +01:00
2018-05-21 16:39:24 +02:00
if ( e . MenuInfo . Column . FieldName = = "Kunde" ) // FieldNames umbennenen
{
2022-11-25 15:22:38 +01:00
BarButtonItem x = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Klient/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
x . ItemClick + = Kundeninfo_OnClick ; // bearbeiten
e . Customizations . Add ( x ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( e . MenuInfo . Column . FieldName = = "MaKrank" )
{
2022-11-25 15:22:38 +01:00
BarButtonItem x = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Mitarbeiter/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
x . ItemClick + = Mitarbeiterinfo_OnClick ; // eee
e . Customizations . Add ( x ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
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" )
2017-11-15 08:08:12 +01:00
{
2022-11-25 15:22:38 +01:00
BarButtonItem s = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Mitarbeiter/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
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 ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
private void GridDataControlWochenansichtKlient_OnShowGridMenu ( object sender , GridMenuEventArgs e )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
// ########### KontextMenue Wochenanzeige #########
//BarButtonItem ys = new BarButtonItem() { Content = "Krankmeldung Löschen" }; // villeicht reaktivieren
//ys.ItemClick += DeleteKrankmeldung_OnClick;
//e.Customizations.Add(ys);
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( e . MenuInfo . Column . FieldName = = "Kunde" ) // FieldNames umbennenen
{
2022-11-25 15:22:38 +01:00
BarButtonItem x = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Klient/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
x . ItemClick + = Kundeninfo_OnClick ; // bearbeiten
e . Customizations . Add ( x ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( e . MenuInfo . Column . FieldName = = "MaKrank" )
{
2022-11-25 15:22:38 +01:00
BarButtonItem x = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Mitarbeiter/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
x . ItemClick + = Mitarbeiterinfo_OnClick ; // eee
e . Customizations . Add ( x ) ;
}
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
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" )
{
2022-11-25 15:22:38 +01:00
BarButtonItem s = new BarButtonItem ( ) { Content = BS . Shared . Translation . Translator . Translate ( "Mitarbeiter/in öffnen" ) } ;
2018-05-21 16:39:24 +02:00
s . ItemClick + = MitarbeiterVertretunginfoWochenanzeige_OnClick ;
e . Customizations . Add ( s ) ;
_mitarbeiterVertretungWocheninfo = e . MenuInfo . Column . FieldName ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
BarButtonItem xs = new BarButtonItem ( ) { Content = "Vertretung löschen" } ;
xs . ItemClick + = DeletVertretungForWochenanzeige_OnClick ;
e . Customizations . Add ( xs ) ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
_deletVertretungsWeek = e . MenuInfo . Column . FieldName ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
}
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 )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
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 ) ;
} ) )
) ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
2017-11-15 08:08:12 +01:00
}
private void MitarbeiterVertretunginfo_OnClick ( object sender , RoutedEventArgs e )
{
2018-05-21 16:39:24 +02:00
var a = ( TagesansichtVM ) GridDataControlTagesansichtMitarbeiter . SelectedItem ;
2017-11-15 08:08:12 +01:00
if ( a . Vertretung ! = null )
{
if ( ! a . Vertretung . Equals ( "" ) )
{
2018-05-21 16:39:24 +02:00
long? employeeOid = null ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
if ( a . Vertretung ! = null )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
employeeOid = a . Vertretung . VertretenderMitarbeiterOid ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
if ( employeeOid . HasValue )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
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 ) ;
} ) )
) ) ;
2017-11-15 08:08:12 +01:00
}
}
else
2022-11-25 15:22:38 +01:00
MessageBox . Show ( BS . Shared . Translation . Translator . Translate ( "Es wurde der Vertretung kein Mitarbeiter zugeteilt" ) ) ;
2017-11-15 08:08:12 +01:00
}
else
{
2022-11-25 15:22:38 +01:00
MessageBox . Show ( BS . Shared . Translation . Translator . Translate ( "Es wurde der Vertretung kein Mitarbeiter zugeteilt" ) ) ;
2017-11-15 08:08:12 +01:00
}
}
private void MitarbeiterVertretunginfoWochenanzeige_OnClick ( object sender , RoutedEventArgs e )
{
2018-05-21 16:39:24 +02:00
var x = ( WochenansichtVM ) GridDataControlWochenansichtMitarbeiter . SelectedItem ;
2017-11-15 08:08:12 +01:00
foreach ( var wochentag in x . VertretungsWoche )
{
if ( wochentag . Key . Equals ( _mitarbeiterVertretungWocheninfo ) )
{
_mitarbeiterVertretungWocheninfo = "" ;
foreach ( var item in wochentag . Value )
{
if ( item . Key ! = null )
{
2018-05-21 16:39:24 +02:00
if ( item . Value . Vertreter ! = null )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
var sgf = ServiceFacade . DoEmployeeServiceSync ( s = > s . GetActiveCompactEmployeeWithOid ( item . Value . Vertreter . EmployeeOid ) ) ;
2017-11-15 08:08:12 +01:00
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
2022-11-25 15:22:38 +01:00
MessageBox . Show ( BS . Shared . Translation . Translator . Translate ( "Es wurde der Vertretung kein Mitarbeiter zugeteilt" ) ) ;
2017-11-15 08:08:12 +01:00
}
else
{
2022-11-25 15:22:38 +01:00
MessageBox . Show ( BS . Shared . Translation . Translator . Translate ( "Es wurde der Vertretung kein Mitarbeiter zugeteilt" ) ) ;
2017-11-15 08:08:12 +01:00
}
}
}
}
}
2018-05-21 16:39:24 +02:00
private void DeletVertretungForWochenanzeige_OnClick ( object sender , RoutedEventArgs e )
2017-11-15 08:08:12 +01:00
{
if ( MessageBox . Show ( "Möchten Sie die Vertretung wirklich löschen?" , "Vertretung löschen" , MessageBoxButton . YesNo , MessageBoxImage . Question ) = = MessageBoxResult . Yes )
{
2018-05-21 16:39:24 +02:00
_wochenVertretung . DeletVertretendenMitarbeiter ( ( WochenansichtVM ) GridDataControlWochenansichtMitarbeiter . SelectedItem , _deletVertretungsWeek ) ;
2017-11-15 08:08:12 +01:00
var x = Datepicker . DateTime . FirstDateOfWeek ( Datepicker . DateTime . GetIso8601WeekOfYear ( ) ) ;
2018-05-21 16:39:24 +02:00
LadeWochenansicht ( x , x . AddDays ( 5 ) ) ;
2017-11-15 08:08:12 +01:00
}
}
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 )
{
2019-09-27 15:55:01 +02:00
_tagesVertretung . DeleteKrankmeldung ( ( TagesansichtVM ) GridDataControlTagesansichtMitarbeiter . SelectedItem , null , Datepicker . DateTime . Date ) ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
LadeTagesansicht ( Datepicker . DateTime . Date ) ;
2017-11-15 08:08:12 +01:00
}
}
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 )
{
2018-05-21 16:39:24 +02:00
_tagesVertretung . DeleteVertretung ( ( TagesansichtVM ) GridDataControlTagesansichtMitarbeiter . SelectedItem ) ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
LadeTagesansicht ( Datepicker . DateTime . Date ) ;
2017-11-15 08:08:12 +01:00
}
}
private void KrankmeldungsZeitraumBearbeitungsView ( object sender , RoutedEventArgs e )
{
2018-05-21 16:39:24 +02:00
_tagesVertretung . KrankMeldeZeitraumBearbeiten ( ( TagesansichtVM ) GridDataControlTagesansichtMitarbeiter . SelectedItem ) ;
2017-11-15 08:08:12 +01:00
2018-05-21 16:39:24 +02:00
LadeTagesansicht ( Datepicker . DateTime . Date ) ;
2017-11-15 08:08:12 +01:00
}
private void GridViewBase_OnRowUpdated ( object sender , RowEventArgs e )
{
2019-08-08 14:47:53 +02:00
var tagesansicht = ( TagesansichtVM ) GridDataControlTagesansichtMitarbeiter . SelectedItem ;
2017-11-15 08:08:12 +01:00
2019-08-08 14:47:53 +02:00
_tagesVertretung . UpdateRowData ( tagesansicht ) ;
2018-05-21 16:39:24 +02:00
LadeTagesansicht ( Datepicker . DateTime . Date ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
2017-11-15 08:08:12 +01:00
private void ButtonWorkWeekView_Click ( object sender , RoutedEventArgs e )
{
2018-05-21 16:39:24 +02:00
if ( ScrollViewerTagesansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
ScrollViewerTagesansicht . Visibility = Visibility . Collapsed ;
ScrollViewerWochenansicht . Visibility = Visibility . Visible ;
2017-11-15 08:08:12 +01:00
KwWochenAnzeigen ( ) ;
}
2017-11-23 10:58:07 +01:00
// else
// if (GridDataControlKlientenWochenansicht.Visibility == Visibility.Visible)
// {
// GridDataControlKlientenWochenansicht.Visibility = Visibility.Collapsed;
// GridDataControlKlientenWochenansicht2.Visibility= Visibility.Collapsed;
// GridMitarbeiterEinsatz.Visibility = Visibility.Visible;
2017-11-15 08:08:12 +01:00
2017-11-23 10:58:07 +01:00
//KwWochenAnzeigen();
2017-11-15 08:08:12 +01:00
2017-11-23 10:58:07 +01:00
// }else // Diesen Bereich Rausnehmen ??
// if (GridMitarbeiterEinsatz.Visibility == Visibility.Visible)
// {
// GridMitarbeiterEinsatz.Visibility = Visibility.Collapsed;
// GridDataControlKlientenWochenansicht.Visibility = Visibility.Visible;
// GridDataControlKlientenWochenansicht2.Visibility = Visibility.Visible;
2017-11-15 08:08:12 +01:00
2017-11-23 10:58:07 +01:00
// KwWochenAnzeigen();
// }
2017-11-15 08:08:12 +01:00
}
private void KwWochenAnzeigen ( )
{
DateTime dt = Datepicker . DateTime ;
RenameColumnHeader ( dt ) ;
DateTime startdt = dt . FirstDateOfWeek ( dt . GetIso8601WeekOfYear ( ) ) ;
DateTime enddt = startdt . AddDays ( 5 ) ;
2018-05-21 16:39:24 +02:00
if ( ScrollViewerWochenansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
LadeWochenansicht ( startdt , enddt ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
//else if (GridMitarbeiterEinsatz.Visibility == Visibility.Visible)
// {
// GetAllVertretungsFreieMitarbeiter(startdt, enddt);
// }
2017-11-15 08:08:12 +01:00
Datelbl . Content = "KW " + dt . GetIso8601WeekOfYear ( ) + " / " + startdt . ToString ( "dd.MM.yyyy" ) + " - " + enddt . ToString ( "dd.MM.yyyy" ) ;
}
private void ButtonDayView_Click ( object sender , RoutedEventArgs e )
{
2018-05-21 16:39:24 +02:00
if ( ScrollViewerTagesansicht . Visibility ! = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
ScrollViewerTagesansicht . Visibility = Visibility . Visible ;
ScrollViewerWochenansicht . Visibility = Visibility . Collapsed ;
//GridMitarbeiterEinsatz.Visibility = Visibility.Collapsed;
2017-11-15 08:08:12 +01:00
TagesAnzeige ( ) ;
}
}
private void TagesAnzeige ( )
{
DateTime dt = Datepicker . DateTime ;
Datelbl . Content = dt . ToString ( "dddd dd.MM.yyyy" ) ;
2018-05-21 16:39:24 +02:00
LadeTagesansicht ( dt ) ;
2017-11-15 08:08:12 +01:00
}
private void Aktualisieren_OnClick ( object sender , RoutedEventArgs e )
{
2018-05-21 16:39:24 +02:00
if ( ScrollViewerTagesansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
LadeTagesansicht ( Datepicker . DateTime ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
else if ( ScrollViewerWochenansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
var x = Datepicker . DateTime . FirstDateOfWeek ( Datepicker . DateTime . GetIso8601WeekOfYear ( ) ) ;
2018-05-21 16:39:24 +02:00
LadeWochenansicht ( x , x . AddDays ( 5 ) ) ;
2017-11-15 08:08:12 +01:00
} //Rausnehmen ??
2017-11-23 10:58:07 +01:00
else if ( GridMitarbeiterEinsatz . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
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 ;
2018-05-21 16:39:24 +02:00
if ( ScrollViewerTagesansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
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
2018-05-21 16:39:24 +02:00
foreach ( var col in GridDataControlWochenansichtMitarbeiter . Columns )
2017-11-15 08:08:12 +01:00
{
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 ;
2018-05-21 16:39:24 +02:00
if ( ScrollViewerTagesansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
Datelbl . Content = dt . ToString ( "dddd dd.MM.yyyy" ) ;
2018-05-21 16:39:24 +02:00
LadeTagesansicht ( dt ) ;
2017-11-15 08:08:12 +01:00
}
else
{
DateTime startdt = dt . FirstDateOfWeek ( dt . GetIso8601WeekOfYear ( ) ) ;
DateTime enddt = startdt . AddDays ( 5 ) ;
2018-05-21 16:39:24 +02:00
if ( ScrollViewerTagesansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
2018-05-21 16:39:24 +02:00
LadeWochenansicht ( startdt , enddt ) ;
2017-11-15 08:08:12 +01:00
}
2018-05-21 16:39:24 +02:00
else if ( ScrollViewerWochenansicht . Visibility = = Visibility . Visible )
2017-11-15 08:08:12 +01:00
{
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 ;
}
}
2018-05-21 16:39:24 +02:00
public class MitarbeiterWochenansicht
2017-11-15 08:08:12 +01:00
{
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 ; }
}
}