diff --git a/ZKuP/AddCardUser.xaml b/ZKuP/AddCardUser.xaml index 5f9490c..7ae3491 100644 --- a/ZKuP/AddCardUser.xaml +++ b/ZKuP/AddCardUser.xaml @@ -17,8 +17,13 @@ + + + + + - + diff --git a/ZKuP/AddCardUser.xaml.cs b/ZKuP/AddCardUser.xaml.cs index 20b8819..cf54a05 100644 --- a/ZKuP/AddCardUser.xaml.cs +++ b/ZKuP/AddCardUser.xaml.cs @@ -13,6 +13,7 @@ using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; +using System.Windows.Threading; namespace ZKuP { @@ -34,6 +35,8 @@ namespace ZKuP string _ap = ""; bool _needTel = true; + DispatcherTimer blinkTimer = new DispatcherTimer(); + public AddCardUser(string user = "", bool isBesucher = false, string count = "", string ap = "", bool needTel = true, bool hasEinweisung = false, string firma = "", string telnr = "", string idFirma = "") { _user = user; @@ -46,6 +49,10 @@ namespace ZKuP Helper.InitSerial(); Helper.DataReceived += Helper_DataReceived; + blinkTimer.Interval = TimeSpan.FromMilliseconds(50); + blinkTimer.Tick += BlinkTimer_Tick; + blinkTimer.Start(); + this.Title = "Karten ausgeben - " + count; lblFirma.Text = isBesucher ? "Firma" : "Firma*"; @@ -96,34 +103,83 @@ namespace ZKuP } } - private void Helper_DataReceived(object sender, string e) + bool up = false; + private void BlinkTimer_Tick(object sender, EventArgs e) { - var text = ""; - Dispatcher.Invoke(() => text = tbNummer.Text = e.Split('=')[0]); - - if (!string.IsNullOrWhiteSpace(text)) + if (up) { - var farbe = SQL.ReadSingleValue($"SELECT Farbe FROM {MainWindow.table}.kartennummern WHERE Kartennummer='{text}'"); - - Dispatcher.Invoke(() => - { - switch (farbe) - { - case "1": - cbColor.SelectedValue = "Rot"; - break; - case "2": - cbColor.SelectedValue = "Grün"; - break; - } - }); + if (borderKartenleser.Opacity < 1) + borderKartenleser.Opacity += 0.05; + else + up = !up; + } + else + { + if (borderKartenleser.Opacity > 0) + borderKartenleser.Opacity -= 0.05; + else + up = !up; } } + private void Helper_DataReceived(object sender, string e) + { + var text = ""; + Dispatcher.Invoke(() => + { + text = tbNummer.Text = e.Split('=')[0]; + + borderKartenleser.Visibility = Visibility.Collapsed; + + + blinkTimer.Stop(); + + if (!string.IsNullOrWhiteSpace(text)) + { + var farbe = SQL.ReadSingleValue($"SELECT Farbe FROM {MainWindow.table}.kartennummern WHERE Kartennummer='{text}'"); + + Dispatcher.Invoke(() => + { + switch (farbe) + { + case "1": + cbColor.SelectedValue = "Rot"; + break; + case "2": + cbColor.SelectedValue = "Grün"; + break; + } + }); + } + }); + } + + private void tbNummer_TextChanged(object sender, TextChangedEventArgs e) + { + if (tbNummer.Text.Length <= 0) + { + borderKartenleser.Visibility = Visibility.Visible; + blinkTimer.Start(); + } + else + { + borderKartenleser.Visibility = Visibility.Collapsed; + blinkTimer.Stop(); + } + } + + + private async void btnAdd_Click(object sender, RoutedEventArgs e) { + bool cardExists = (await SQL.RowExists($"{MainWindow.table}.kartennummern", "Kartennummer", tbNummer.Text)); + if (string.IsNullOrWhiteSpace(tbNummer.Text)) MessageBox.Show(this, "Kartennummer angeben!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); + else if (!cardExists) + { + MessageBox.Show("Die eingegebene Kartennummer existiert nicht!\nBitte den Kartenleser verwenden oder die Nummer auf der Rückseite des Ausweises eingeben", "Fehlerhafte Kartennummer", MessageBoxButton.OK, MessageBoxImage.Error); + } else if (cbColor.SelectedIndex == -1) MessageBox.Show(this, "Kartenfarbe auswählen!", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); else if (string.IsNullOrWhiteSpace(tbUser.Text)) @@ -181,6 +237,5 @@ namespace ZKuP { Helper.CheckWindowIsInScreenSpace(this); } - } } diff --git a/ZKuP/App.xaml.cs b/ZKuP/App.xaml.cs index 60c6e80..d5c2f42 100644 --- a/ZKuP/App.xaml.cs +++ b/ZKuP/App.xaml.cs @@ -64,6 +64,8 @@ namespace ZKuP && !e.Exception.ToString().Contains("System.OperationCanceledException") && !e.Exception.ToString().Contains("System.ObjectDisposedException") && !e.Exception.ToString().Contains("System.IO.IOException") + && !e.Exception.ToString().Contains("MySql.Data.MySqlClient.MySqlException") + && !e.Exception.ToString().Contains("System.Net") && !e.Exception.ToString().Contains("signotec.STPadLibNet.STPadException: Zu dem ausgewählten Signierpad wurde keine Verbindung geöffnet.") && !e.Exception.ToString().Contains("Derzeit ist kein Layout")) Log.WriteLog("2: " + e.Exception.ToString() + "\n" + e.ToString() + "\n" + (sender.GetType().ToString())); diff --git a/ZKuP/Arrivals.xaml.cs b/ZKuP/Arrivals.xaml.cs index 8e52671..dca9332 100644 --- a/ZKuP/Arrivals.xaml.cs +++ b/ZKuP/Arrivals.xaml.cs @@ -955,7 +955,7 @@ namespace ZKuP string time = ""; private async void ParkSetPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { - if (MainWindow.LoggedInRole == Roles.Pförtner || MainWindow.LoggedInRole == Roles.Admin) + if (RoleManager.LoggedInRole == Roles.Pförtner || RoleManager.LoggedInRole == Roles.Admin) { if (time == "") time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); diff --git a/ZKuP/CreateFirma.xaml.cs b/ZKuP/CreateFirma.xaml.cs index 9d6556a..3ac7334 100644 --- a/ZKuP/CreateFirma.xaml.cs +++ b/ZKuP/CreateFirma.xaml.cs @@ -146,7 +146,7 @@ namespace ZKuP // be.Add($"BE-Fläche {numbers[i]} ({desc[i]})"); //} - if (MainWindow.LoggedInRole == Roles.M2 || MainWindow.LoggedInRole == Roles.M2_AM || MainWindow.LoggedInRole == Roles.Admin) + if (RoleManager.LoggedInRole == Roles.M2 || RoleManager.LoggedInRole == Roles.M2_AM || RoleManager.LoggedInRole == Roles.Admin) { LoadBEs(); @@ -167,7 +167,7 @@ namespace ZKuP private void LoadBEs() { var be = new List(); - if (MainWindow.LoggedInRole == Roles.Admin) + if (RoleManager.LoggedInRole == Roles.Admin) be = SQL.ReadListString($"SELECT beFlaeche FROM {MainWindow.table}.beBelegung WHERE Projektleiter = '{Environment.UserName}' AND bis > now()").Result.Distinct().ToList(); //FillBEList(); else be = SQL.ReadListString($"SELECT beFlaeche FROM {MainWindow.table}.beBelegung WHERE Projektleiter = '{Environment.UserName}' AND bis > now()").Result.Distinct().ToList(); @@ -213,7 +213,7 @@ namespace ZKuP private void updateList() { - if (MainWindow.LoggedInRole == Roles.Admin || MainWindow.LoggedInRole == Roles.M2_AM || MainWindow.LoggedInRole == Roles.Pförtner) + if (RoleManager.LoggedInRole == Roles.Admin || RoleManager.LoggedInRole == Roles.M2_AM || RoleManager.LoggedInRole == Roles.Pförtner) { requestListAdmin(); } @@ -225,13 +225,27 @@ namespace ZKuP private void requestList() { + + var FK = ""; + var persons = SQL.ReadListStringTwoColumns($"SELECT Name,Vertreter FROM {MainWindow.table}.ansprechpartner WHERE Vorgesetzter = '{Helper.InsertSpaceBeforeUpperCase(Environment.UserName.ReplaceMiddleInitialWithSpace()).ReplaceUmlaute()}'").Result; + + if (persons.Count > 0) + { + foreach (var p in persons) + { + FK += $" OR Ersteller = '{p.Split(';')[0].Replace(" ", "")}' OR Ansprechpartner_Intern = '{p.Split(';')[0].Replace(" ", "")}'"; + FK += $" OR Ersteller = '{p.Split(';')[1].Replace(" ", "")}' OR Ansprechpartner_Intern = '{p.Split(';')[1].Replace(" ", "")}'"; + } + } + firmen = SQL.ReadSQL($"SELECT * FROM {MainWindow.table}.firmen WHERE Ersteller = '{Environment.UserName}' " + $"OR Ersteller = '{Environment.UserDomainName}{Environment.UserName}' " + $"OR Ersteller = '{SQL.ReadSingleValue($"SELECT Vertreter FROM {MainWindow.table}.ansprechpartner WHERE Name = '{Helper.InsertSpaceBeforeUpperCase(Environment.UserName)}'").Replace("-", "").Replace(" ", "")}' " + $"OR Ersteller = '{Environment.UserDomainName}{SQL.ReadSingleValue($"SELECT Vertreter FROM {MainWindow.table}.ansprechpartner WHERE Name = '{Helper.InsertSpaceBeforeUpperCase(Environment.UserName)}'").Replace("-", "").Replace(" ", "")}' " + $"OR Ersteller = '{SQL.ReadSingleValue($"SELECT Name FROM {MainWindow.table}.ansprechpartner WHERE Vertreter = '{Helper.InsertSpaceBeforeUpperCase(Environment.UserName)}'").Replace("-", "").Replace(" ", "")}' " + $"OR Ersteller = '{Environment.UserDomainName}{SQL.ReadSingleValue($"SELECT Name FROM {MainWindow.table}.ansprechpartner WHERE Vertreter = '{Helper.InsertSpaceBeforeUpperCase(Environment.UserName)}'").Replace("-", "").Replace(" ", "")}' " + - $"OR Ansprechpartner_Intern = '{Helper.InsertSpaceBeforeUpperCase(Environment.UserName)}' ORDER BY Name ASC" + $"OR Ansprechpartner_Intern = '{Helper.InsertSpaceBeforeUpperCase(Environment.UserName)}'" + + $"{FK} ORDER BY Name ASC" , firmen).Result; //FirmaView = Firma.DataTableToFirma(firmen); dgFirmen.DataContext = firmen; @@ -2139,7 +2153,7 @@ namespace ZKuP private void cbBE_MouseEnter(object sender, MouseEventArgs e) { - if (MainWindow.LoggedInRole == Roles.M2 || MainWindow.LoggedInRole == Roles.M2_AM || MainWindow.LoggedInRole == Roles.Admin) + if (RoleManager.LoggedInRole == Roles.M2 || RoleManager.LoggedInRole == Roles.M2_AM || RoleManager.LoggedInRole == Roles.Admin) { if ((cbBE.Items).Count > 0) { diff --git a/ZKuP/KartenTausch.xaml b/ZKuP/KartenTausch.xaml index 6f2f0b7..3f7ef77 100644 --- a/ZKuP/KartenTausch.xaml +++ b/ZKuP/KartenTausch.xaml @@ -16,15 +16,25 @@ - + + + + + + + - + + + + +