2017-05-15 09:11:13 +02:00
using System ;
2017-06-02 13:35:42 +02:00
using System.Collections.Generic ;
2017-05-15 09:11:13 +02:00
using System.ComponentModel ;
using System.IO ;
using System.Linq ;
using System.Windows ;
using System.Windows.Controls ;
using System.Windows.Controls.Primitives ;
using System.Windows.Documents ;
2017-05-17 08:28:12 +02:00
using System.Windows.Forms.VisualStyles ;
2017-05-15 09:11:13 +02:00
using System.Windows.Input ;
using System.Windows.Media ;
using System.Windows.Navigation ;
using System.Windows.Threading ;
2017-09-26 14:08:38 +02:00
using BeWo.Controls ;
2017-05-15 09:11:13 +02:00
using BeWo.Core ;
using BeWo.ViewModel ;
using BeWo.ServiceProxy ;
2017-05-23 13:42:42 +02:00
using BeWo.Validation ;
2017-05-17 08:28:12 +02:00
using BeWo.View.Controls ;
2017-09-26 14:08:38 +02:00
using BeWo.View.Search ;
2017-05-15 09:11:13 +02:00
using BS.Shared.DataContracts ;
using BS.Shared.Extensions ;
using BS.Shared ;
using BS.Shared.Core ;
2017-09-26 14:08:38 +02:00
using BS.Shared.DataContracts.Compact ;
2017-05-15 09:11:13 +02:00
using DevExpress.Xpf.Editors ;
2017-05-23 13:42:42 +02:00
using DevExpress.Xpf.Grid ;
2017-05-15 09:11:13 +02:00
using Microsoft.Win32 ;
namespace BeWo.View
{
public partial class EmployeeArbeitszeitView
{
2017-05-17 08:28:12 +02:00
private EmployeeVM _ViewModel ;
2017-05-15 09:11:13 +02:00
2017-05-17 08:28:12 +02:00
2017-05-15 09:11:13 +02:00
long? employeeOid ;
2017-05-17 08:28:12 +02:00
public EmployeeArbeitszeitView ( EmployeeVM employeeVm , long? oid )
2017-05-15 09:11:13 +02:00
{
InitializeComponent ( ) ;
2017-05-17 08:28:12 +02:00
tabcontrol_Arbeitszeit . Loaded + = ( s , e ) = >
2017-05-15 09:11:13 +02:00
{
2017-05-17 08:28:12 +02:00
if ( tabcontrol_Arbeitszeit . Items . Count > 0 )
{
tabcontrol_Arbeitszeit . SelectedIndex = tabcontrol_Arbeitszeit . Items . Count - 1 ;
}
} ;
employeeOid = oid ;
2017-05-15 09:11:13 +02:00
2017-05-17 08:28:12 +02:00
ViewModel = employeeVm ;
2017-05-15 09:11:13 +02:00
}
2017-11-23 10:58:07 +01:00
public EmployeeVM ViewModel
2017-05-15 09:11:13 +02:00
{
2017-05-17 08:28:12 +02:00
get { return _ViewModel ; }
2017-05-15 09:11:13 +02:00
set
{
DataContext = value ;
2017-05-17 08:28:12 +02:00
_ViewModel = value ;
2017-05-15 09:11:13 +02:00
}
}
2017-11-23 10:58:07 +01:00
public void RefreshView ( )
{
DataContext = null ; // Sonst refresht die GUI nach den Save nicht richtig
2017-05-15 09:11:13 +02:00
2017-11-23 10:58:07 +01:00
DataContext = _ViewModel ;
//if (_ViewModel != null && _ViewModel.Arbeitszeiten != null)
//{
// tabcontrol_Arbeitszeit.ItemsSource = _ViewModel.Arbeitszeiten.VMList;
//}
}
2017-05-17 08:28:12 +02:00
2017-05-15 09:11:13 +02:00
private void ButtonOpenAndAddArbeitszeitClick ( object sender , RoutedEventArgs e )
{
2017-05-17 08:28:12 +02:00
ViewModel . Arbeitszeiten . AddNewVMToList ( ) ;
2017-05-15 09:11:13 +02:00
2017-05-17 08:28:12 +02:00
tabcontrol_Arbeitszeit . SelectedIndex = tabcontrol_Arbeitszeit . Items . Count - 1 ;
2017-05-15 09:11:13 +02:00
}
2017-05-17 08:28:12 +02:00
private void PopupNewArbeitszeit_Click ( object sender , RoutedEventArgs e )
2017-05-15 09:11:13 +02:00
{
2017-05-23 13:42:42 +02:00
var vali = tabcontrol_Arbeitszeit . GetAllChildren ( ) . OfType < PopupNonTopmost > ( ) ;
2017-05-15 09:11:13 +02:00
2017-05-23 13:42:42 +02:00
var groupbox_newArbeistzeitVal = vali . First ( x = > x . Name . Equals ( "popup_newArbeitszeitEintrag" ) ) ;
2017-05-15 09:11:13 +02:00
2017-05-23 13:42:42 +02:00
if ( ValidationTrigger . Validate ( groupbox_newArbeistzeitVal ) )
2017-05-15 09:11:13 +02:00
{
2017-05-23 13:42:42 +02:00
var tab = tabcontrol_Arbeitszeit . Items . GetItemAt ( tabcontrol_Arbeitszeit . SelectedIndex ) ;
2017-05-15 09:11:13 +02:00
2017-05-23 13:42:42 +02:00
var avm = tab as ArbeitszeitVM ;
2017-05-15 09:11:13 +02:00
2017-05-23 13:42:42 +02:00
if ( avm ! = null )
{
2017-09-26 14:08:38 +02:00
if ( currentKlient ! = null )
2017-11-23 10:58:07 +01:00
{
avm . ArbeitszeitEintraege . NewVM . CompactCustomer = currentKlient ;
currentKlient = null ;
}
if ( letztesPopUpEdit ! = null )
{
letztesPopUpEdit . Text = "" ;
}
2017-09-26 14:08:38 +02:00
2017-05-23 13:42:42 +02:00
avm . ArbeitszeitEintraege . AddNewVMToList ( ) ;
}
2017-05-15 09:11:13 +02:00
2017-05-23 13:42:42 +02:00
groupbox_newArbeistzeitVal . IsOpen = false ;
}
2017-05-15 09:11:13 +02:00
}
private void btn_deleteArbeitszeit_Click ( object sender , RoutedEventArgs e )
{
2017-05-17 08:28:12 +02:00
var arbeitszeit = tabcontrol_Arbeitszeit . SelectedItem as ArbeitszeitVM ;
2017-05-15 09:11:13 +02:00
2017-05-17 08:28:12 +02:00
ViewModel . Arbeitszeiten . VMList . Remove ( arbeitszeit ) ;
2017-05-15 09:11:13 +02:00
}
private void AddArbeitszeitToView_Click ( object sender , RoutedEventArgs e )
2017-05-23 13:42:42 +02:00
{
var popup = tabcontrol_Arbeitszeit . GetAllChildren ( ) . OfType < PopupNonTopmost > ( ) ;
2017-05-15 09:11:13 +02:00
2017-05-23 13:42:42 +02:00
var popup_NewArbeitszeitEintrag = popup . First ( x = > x . Name . Equals ( "popup_newArbeitszeitEintrag" ) ) ;
2017-05-15 09:11:13 +02:00
2017-05-23 13:42:42 +02:00
popup_NewArbeitszeitEintrag . IsOpen = true ;
2017-05-15 09:11:13 +02:00
}
2017-05-17 08:28:12 +02:00
private void PopupArbeitszeitClose_Click ( object sender , RoutedEventArgs e )
2017-05-15 09:11:13 +02:00
{
2017-05-17 08:28:12 +02:00
var popup = tabcontrol_Arbeitszeit . GetAllChildren ( ) . OfType < PopupNonTopmost > ( ) ;
2017-05-15 09:11:13 +02:00
2017-05-17 08:28:12 +02:00
var popup_NewArbeitszeitEintrag = popup . First ( x = > x . Name . Equals ( "popup_newArbeitszeitEintrag" ) ) ;
2017-05-15 09:11:13 +02:00
2017-05-17 08:28:12 +02:00
popup_NewArbeitszeitEintrag . IsOpen = false ;
2017-05-23 13:42:42 +02:00
}
private void RemoveArbeitszeit_OnClick ( object sender , RoutedEventArgs e )
{
var popup = tabcontrol_Arbeitszeit . GetAllChildren ( ) . OfType < GridControl > ( ) ;
var grid_ArbeitszeitEintrag = popup . First ( x = > x . Name . Equals ( "grid_Arbeitszeiten" ) ) ;
var cv = grid_ArbeitszeitEintrag . GetCurrentValue < ArbeitszeitEintragVM > ( ) . CommitToDataContract ( ) ;
var listenOid = cv . ArbeitszeitEintragOid ;
if ( listenOid = = null )
return ;
var antwort = MessageBox . Show ( "Sind Sie sicher, dass Sie den Arbeitszeit Eintrag löschen wollen?" , "Löschen" , MessageBoxButton . OKCancel , MessageBoxImage . Question ) ;
if ( antwort . Equals ( MessageBoxResult . Cancel ) )
return ;
ServiceFacade . DoEmployeeServiceSync ( a = > a . DeleteArbeitszeitEintrag ( listenOid . Value ) ) ;
var tab = tabcontrol_Arbeitszeit . Items . GetItemAt ( tabcontrol_Arbeitszeit . SelectedIndex ) ;
var avm = tab as ArbeitszeitVM ;
if ( avm ! = null )
{
avm . ArbeitszeitEintraege . VMList . Remove ( grid_ArbeitszeitEintrag . GetCurrentValue < ArbeitszeitEintragVM > ( ) ) ;
}
grid_ArbeitszeitEintrag . RefreshData ( ) ;
}
2017-06-02 13:35:42 +02:00
private void GridControl_OnCustomColumnSort ( object sender , CustomColumnSortEventArgs e )
{
var comparer = new WochentagComparerClass ( ) ;
e . Result = comparer . Compare ( e . Value1 . ToString ( ) , e . Value2 . ToString ( ) ) ;
e . Handled = true ;
}
2017-09-26 14:08:38 +02:00
#region Popup Klienten Anzeige Auswahl
private PopUpEdit letztesPopUpEdit = null ;
private void Popupedit_KlientVertretungSearch_OnPopUpClick ( object sender , RoutedEventArgs e )
{
KlientVertretungsearchview . ItemSelected + = KlientVertretungsearchview_KlientVertretungSelected ;
popup_KlientVertretung . IsOpen = true ;
letztesPopUpEdit = sender as PopUpEdit ;
}
private CompactCustomerDC currentKlient ;
private void KlientVertretungsearchview_KlientVertretungSelected ( object sender , EventArgs < CompactCustomerDC > e )
{
popup_KlientVertretung . IsOpen = false ;
KlientVertretungsearchview . ItemSelected - = KlientVertretungsearchview_KlientVertretungSelected ;
currentKlient = e . Data ;
if ( letztesPopUpEdit ! = null )
{
letztesPopUpEdit . Text = currentKlient . FullName ;
}
2017-11-23 10:58:07 +01:00
2017-09-26 14:08:38 +02:00
}
#endregion
#region Popup Customer Anzeige Auswahl Für Editvalue | auskommentiert weil mega doof
//private PopUpEdit PopUpEditLetzteAnzeige = null;
//private void Popupedit_KlientVertretungSearchAnzeige_OnPopUpClick(object sender, RoutedEventArgs e)
//{
// KlientVertretungsearchview.ItemSelected += KlientVertretungsearchview_KlientSelected;
// popup_KlientVertretung.IsOpen = true;
// PopUpEditLetzteAnzeige = sender as PopUpEdit;
//}
//private void KlientVertretungsearchview_KlientSelected(object sender, EventArgs<CompactCustomerDC> e)
//{
// popup_KlientVertretung.IsOpen = false;
// KlientVertretungsearchview.ItemSelected -= KlientVertretungsearchview_KlientSelected;
// if (PopUpEditLetzteAnzeige != null)
// {
// PopUpEditLetzteAnzeige.Text = e.Data.FullName;
// }
// PopUpEditLetzteAnzeige = null;
//}
#endregion
2017-11-23 10:58:07 +01:00
2017-05-15 09:11:13 +02:00
}
2017-06-02 13:35:42 +02:00
public class WochentagComparerClass : IComparer < String >
{
public int Compare ( String x , String y )
{
if ( x . Equals ( y ) )
return 0 ;
switch ( y )
{
case "Montag" :
return 1 ;
case "Dienstag" :
return x . Equals ( "Montag" ) ? - 1 : 1 ;
case "Mittwoch" :
return x . Equals ( "Montag" ) | |
x . Equals ( "Dienstag" ) ? - 1 : 1 ;
case "Donnerstag" :
return x . Equals ( "Montag" ) | |
x . Equals ( "Dienstag" ) | |
x . Equals ( "Mittwoch" ) ? - 1 : 1 ;
case "Freitag" :
return x . Equals ( "Montag" ) | |
x . Equals ( "Dienstag" ) | |
x . Equals ( "Mittwoch" ) | |
x . Equals ( "Donnerstag" ) ? - 1 : 1 ;
case "Samstag" :
return x . Equals ( "Montag" ) | |
x . Equals ( "Dienstag" ) | |
x . Equals ( "Mittwoch" ) | |
x . Equals ( "Donnerstag" ) | |
x . Equals ( "Freitag" ) ? - 1 : 1 ;
case "Sonntag" :
return - 1 ;
default :
return 0 ;
}
}
}
2017-05-15 09:11:13 +02:00
}