262 lines
8.5 KiB
C#
262 lines
8.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
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;
|
|
using System.Windows.Forms.VisualStyles;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using System.Windows.Navigation;
|
|
using System.Windows.Threading;
|
|
using BeWo.Controls;
|
|
using BeWo.Core;
|
|
using BeWo.ViewModel;
|
|
using BeWo.ServiceProxy;
|
|
using BeWo.Validation;
|
|
using BeWo.View.Controls;
|
|
using BeWo.View.Search;
|
|
using BS.Shared.DataContracts;
|
|
using BS.Shared.Extensions;
|
|
using BS.Shared;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts.Compact;
|
|
using DevExpress.Xpf.Editors;
|
|
using DevExpress.Xpf.Grid;
|
|
using Microsoft.Win32;
|
|
|
|
namespace BeWo.View
|
|
{
|
|
public partial class EmployeeArbeitszeitView
|
|
{
|
|
|
|
private EmployeeVM _ViewModel;
|
|
|
|
|
|
long? employeeOid;
|
|
|
|
public EmployeeArbeitszeitView(EmployeeVM employeeVm, long? oid)
|
|
{
|
|
InitializeComponent();
|
|
|
|
tabcontrol_Arbeitszeit.Loaded += (s, e) =>
|
|
{
|
|
if (tabcontrol_Arbeitszeit.Items.Count > 0)
|
|
{
|
|
tabcontrol_Arbeitszeit.SelectedIndex = tabcontrol_Arbeitszeit.Items.Count - 1;
|
|
}
|
|
};
|
|
|
|
employeeOid = oid;
|
|
|
|
|
|
ViewModel = employeeVm;
|
|
|
|
}
|
|
|
|
private EmployeeVM ViewModel
|
|
{
|
|
get { return _ViewModel; }
|
|
|
|
set
|
|
{
|
|
DataContext = value;
|
|
_ViewModel = value;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void ButtonOpenAndAddArbeitszeitClick(object sender, RoutedEventArgs e)
|
|
{
|
|
ViewModel.Arbeitszeiten.AddNewVMToList();
|
|
|
|
tabcontrol_Arbeitszeit.SelectedIndex = tabcontrol_Arbeitszeit.Items.Count - 1;
|
|
}
|
|
|
|
|
|
private void PopupNewArbeitszeit_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var vali = tabcontrol_Arbeitszeit.GetAllChildren().OfType<PopupNonTopmost>();
|
|
|
|
var groupbox_newArbeistzeitVal = vali.First(x => x.Name.Equals("popup_newArbeitszeitEintrag"));
|
|
|
|
if (ValidationTrigger.Validate(groupbox_newArbeistzeitVal))
|
|
{
|
|
var tab = tabcontrol_Arbeitszeit.Items.GetItemAt(tabcontrol_Arbeitszeit.SelectedIndex);
|
|
|
|
var avm = tab as ArbeitszeitVM;
|
|
|
|
if (avm != null)
|
|
{
|
|
if (currentKlient != null)
|
|
avm.ArbeitszeitEintraege.NewVM.CompactCustomer = currentKlient;
|
|
|
|
avm.ArbeitszeitEintraege.AddNewVMToList();
|
|
}
|
|
|
|
groupbox_newArbeistzeitVal.IsOpen = false;
|
|
}
|
|
}
|
|
|
|
private void btn_deleteArbeitszeit_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var arbeitszeit = tabcontrol_Arbeitszeit.SelectedItem as ArbeitszeitVM;
|
|
|
|
ViewModel.Arbeitszeiten.VMList.Remove(arbeitszeit);
|
|
}
|
|
|
|
|
|
private void AddArbeitszeitToView_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var popup = tabcontrol_Arbeitszeit.GetAllChildren().OfType<PopupNonTopmost>();
|
|
|
|
var popup_NewArbeitszeitEintrag = popup.First(x => x.Name.Equals("popup_newArbeitszeitEintrag"));
|
|
|
|
popup_NewArbeitszeitEintrag.IsOpen = true;
|
|
}
|
|
|
|
private void PopupArbeitszeitClose_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var popup = tabcontrol_Arbeitszeit.GetAllChildren().OfType<PopupNonTopmost>();
|
|
|
|
var popup_NewArbeitszeitEintrag = popup.First(x => x.Name.Equals("popup_newArbeitszeitEintrag"));
|
|
|
|
popup_NewArbeitszeitEintrag.IsOpen = false;
|
|
}
|
|
|
|
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();
|
|
}
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
#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;
|
|
}
|
|
|
|
letztesPopUpEdit = null;
|
|
}
|
|
#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
|
|
}
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
|
|
} |