From 173afd41450dabc129388339f8747dfedbbfb041 Mon Sep 17 00:00:00 2001 From: Marcus Date: Tue, 18 Nov 2025 13:39:38 +0100 Subject: [PATCH] =?UTF-8?q?Parkpl=C3=A4tze=20angepasst=20(20,21,22=20nicht?= =?UTF-8?q?=20mehr=20verf=C3=BCgbar)=20AspInfo=20erweitert:=20+=20Beauftra?= =?UTF-8?q?gte=20Leistung=20+=20Firmen/Besucher-Eintragsansicht=20-=20Besu?= =?UTF-8?q?cher-Info=20funktioniert=20wieder=20Scaling=20reworked?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZKuP/AddCardUser.xaml.cs | 2 + ZKuP/App.xaml.cs | 4 +- ZKuP/ApproveFzg.xaml | 4 +- ZKuP/ApproveFzg.xaml.cs | 11 +- ZKuP/Arrivals.xaml | 2 +- ZKuP/Arrivals.xaml.cs | 43 +- ZKuP/ArrivalsOverview.xaml.cs | 2 + ZKuP/AspInfo.xaml | 127 ++++- ZKuP/AspInfo.xaml.cs | 103 +++- ZKuP/CardReaderViewModel.cs | 13 +- ZKuP/Cards.xaml.cs | 2 + ZKuP/CreateFirma.xaml | 99 +++- ZKuP/CreateFirma.xaml.cs | 203 ++++++- ZKuP/CreateVisitor.xaml.cs | 2 + ZKuP/Crypto.cs | 8 - ZKuP/Delivery.xaml.cs | 3 +- ZKuP/Family.xaml.cs | 2 + ZKuP/GrantParkausweis.xaml.cs | 2 +- ZKuP/Helper.cs | 336 +++++++++-- ZKuP/ImageView.xaml | 1 + ZKuP/ImageView.xaml.cs | 31 +- ZKuP/KartenTausch.xaml.cs | 2 + ZKuP/LeihausweisAusgeben.xaml | 64 +++ ZKuP/LeihausweisAusgeben.xaml.cs | 136 +++++ ZKuP/LeihausweisBeantragen.xaml | 44 ++ ZKuP/LeihausweisBeantragen.xaml.cs | 90 +++ ZKuP/MainWindow.xaml | 76 ++- ZKuP/MainWindow.xaml.cs | 847 +++++++++++++++++----------- ZKuP/ManageAsp.xaml | 2 +- ZKuP/ManageAsp.xaml.cs | 2 + ZKuP/ManageUsers.xaml.cs | 2 + ZKuP/ManageVisitor.xaml.cs | 2 + ZKuP/ParkMultiplePrint.xaml | 53 ++ ZKuP/ParkMultiplePrint.xaml.cs | 54 ++ ZKuP/PrintParkausweis.xaml | 2 +- ZKuP/PrintParkausweis.xaml.cs | 25 +- ZKuP/RoleManager.cs | 40 +- ZKuP/SQL.cs | 37 +- ZKuP/Signature.xaml.cs | 6 +- ZKuP/XMessageBoxFahrzeugAnzahl.xaml | 8 +- ZKuP/ZKuP.csproj | 21 + ZKuP/signoPad.cs | 245 +++++++- 42 files changed, 2239 insertions(+), 519 deletions(-) create mode 100644 ZKuP/LeihausweisAusgeben.xaml create mode 100644 ZKuP/LeihausweisAusgeben.xaml.cs create mode 100644 ZKuP/LeihausweisBeantragen.xaml create mode 100644 ZKuP/LeihausweisBeantragen.xaml.cs create mode 100644 ZKuP/ParkMultiplePrint.xaml create mode 100644 ZKuP/ParkMultiplePrint.xaml.cs diff --git a/ZKuP/AddCardUser.xaml.cs b/ZKuP/AddCardUser.xaml.cs index e52d55b..f326558 100644 --- a/ZKuP/AddCardUser.xaml.cs +++ b/ZKuP/AddCardUser.xaml.cs @@ -281,6 +281,8 @@ namespace ZKuP private void Window_Loaded(object sender, RoutedEventArgs e) { Helper.CheckWindowIsInScreenSpace(this); + + Cursor = Cursors.Arrow; } private void Window_LocationChanged(object sender, EventArgs e) diff --git a/ZKuP/App.xaml.cs b/ZKuP/App.xaml.cs index d5c2f42..f5d0d4d 100644 --- a/ZKuP/App.xaml.cs +++ b/ZKuP/App.xaml.cs @@ -23,14 +23,14 @@ namespace ZKuP public App() { //AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); -//#if !DEBUG +#if !DEBUG AppDomain.CurrentDomain.FirstChanceException += CurrentDomain_FirstChanceException; // Example 1 DispatcherUnhandledException += App_DispatcherUnhandledException; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; // Example 3 TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; - //#endif +#endif } diff --git a/ZKuP/ApproveFzg.xaml b/ZKuP/ApproveFzg.xaml index 4950853..b678442 100644 --- a/ZKuP/ApproveFzg.xaml +++ b/ZKuP/ApproveFzg.xaml @@ -13,8 +13,8 @@ - - + + diff --git a/ZKuP/ApproveFzg.xaml.cs b/ZKuP/ApproveFzg.xaml.cs index c8c251d..3d5992f 100644 --- a/ZKuP/ApproveFzg.xaml.cs +++ b/ZKuP/ApproveFzg.xaml.cs @@ -31,13 +31,16 @@ namespace ZKuP this.DataContext = this; InitializeComponent(); + RefreshData(); + } + private void RefreshData() + { Fzg = SQL.ReadSQL($"SELECT * FROM {MainWindow.table}.fzgAnmeldung").Result; dgFzg.DataContext = Fzg; } - private async void InfoButton_Click(object sender, RoutedEventArgs e) { var buttons = Helper.FindVisualChildren + + + + + @@ -484,7 +551,7 @@ + + + + + + + + + + + + + + + + + + + + - - - + + + + + + diff --git a/ZKuP/ParkMultiplePrint.xaml.cs b/ZKuP/ParkMultiplePrint.xaml.cs new file mode 100644 index 0000000..245bbb2 --- /dev/null +++ b/ZKuP/ParkMultiplePrint.xaml.cs @@ -0,0 +1,54 @@ +using MahApps.Metro.Controls; +using Org.BouncyCastle.Crypto; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace ZKuP +{ + /// + /// Interaktionslogik für ParkMultiplePrint.xaml + /// + public partial class ParkMultiplePrint : MetroWindow + { + public ParkMultiplePrint(List Ausweise) + { + InitializeComponent(); + + var ausweisListe = Ausweise + .Select(id => new Ausweis { Ausweisnummer = id }) + .ToList(); + + lvAusweise.ItemsSource = ausweisListe; + } + + private void btnPrinted_Click(object sender, RoutedEventArgs e) + { + var ausgewählte = lvAusweise.ItemsSource.Cast().Where(a => a.IstAusgewählt).ToList(); + + foreach (var i in ausgewählte) + SQL.WriteSQL($"UPDATE {MainWindow.table}.parkausweise SET Gedruckt = '1' WHERE idparkausweise = '{i.Ausweisnummer}'"); + + this.Close(); + } + } + + public class Ausweis + { + public bool IstAusgewählt { get; set; } + public int Ausweisnummer { get; set; } + } + +} diff --git a/ZKuP/PrintParkausweis.xaml b/ZKuP/PrintParkausweis.xaml index 22eaa7f..e05db51 100644 --- a/ZKuP/PrintParkausweis.xaml +++ b/ZKuP/PrintParkausweis.xaml @@ -6,7 +6,7 @@ xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls" xmlns:local="clr-namespace:ZKuP" mc:Ignorable="d" - Title="Parkausweise drucken" Height="450" Width="800" Loaded="Window_Loaded" LocationChanged="Window_LocationChanged"> + Title="Parkausweise drucken" Height="450" Width="800" Loaded="Window_Loaded" LocationChanged="Window_LocationChanged" Closing="MetroWindow_Closing" > diff --git a/ZKuP/PrintParkausweis.xaml.cs b/ZKuP/PrintParkausweis.xaml.cs index 53818e0..2867ff4 100644 --- a/ZKuP/PrintParkausweis.xaml.cs +++ b/ZKuP/PrintParkausweis.xaml.cs @@ -1,6 +1,7 @@ using MahApps.Metro.Controls; using System; using System.Collections.Generic; +using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -20,6 +21,7 @@ namespace ZKuP /// public partial class PrintParkausweis : MetroWindow { + List park = new List(); public PrintParkausweis() { InitializeComponent(); @@ -36,10 +38,21 @@ namespace ZKuP { if (Helper.OpenAndEditWord($"{arr[1].ToString()} {arr[2].ToString()}", arr[3].ToString(), arr[7].ToString(), arr[0].ToString(), Convert.ToInt16(arr[19]), arr[6].ToString())) { - if (MessageBox.Show(this, "Wurde der Parkausweis erfolgreich gedruckt?", "Erfolgreich gedruckt?", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes) + var msgRes = MessageBox.Show(this, "Wurde der Parkausweis erfolgreich gedruckt?\n\nJa: Ausweis wurde erfolgreich gedruckt\nNein: Ausweis nicht erfolgreich gedruckt\nAbbrechen: Später fragen, da mehrere Ausweise gedruckt werden", "Erfolgreich gedruckt?", MessageBoxButton.YesNoCancel, MessageBoxImage.Question, MessageBoxResult.No); + if (msgRes == MessageBoxResult.Yes) { await SQL.WriteSQL($"UPDATE {MainWindow.table}.parkausweise SET Gedruckt = '1' WHERE idparkausweise = '{(int)arr[0]}'"); } + else if (msgRes == MessageBoxResult.Cancel) + { + var row = (DataGridRow)dgPrint.ItemContainerGenerator.ContainerFromItem(((sender as Button).DataContext as System.Data.DataRowView)); + if (row != null) + { + row.Background = (SolidColorBrush)Application.Current.Resources["MahApps.Brushes.Accent"]; + } + park.Add((int)arr[0]); + return; + } } else { @@ -64,5 +77,15 @@ namespace ZKuP { Helper.CheckWindowIsInScreenSpace(this); } + + private void MetroWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + if (park.Count > 0) + { + ParkMultiplePrint pMp = new ParkMultiplePrint(park); + pMp.Owner = this; + pMp.ShowDialog(); + } + } } } diff --git a/ZKuP/RoleManager.cs b/ZKuP/RoleManager.cs index 6d146af..a2dc42a 100644 --- a/ZKuP/RoleManager.cs +++ b/ZKuP/RoleManager.cs @@ -59,6 +59,7 @@ namespace ZKuP main.btnKartenTausch.Visibility = Visibility.Visible; main.btnBE.Visibility = Visibility.Visible; main.btnApproveFzg.Visibility = Visibility.Visible; + main.btnLostCard.Visibility = Visibility.Visible; main.btnCheckParkausweis.Visibility = Visibility.Visible; main.btnCreateParkausweis.Visibility = Visibility.Visible; @@ -86,6 +87,10 @@ namespace ZKuP //MessageBox.Show("Sie sind Admin"); // something that only an admin user should be able to do + //Parkplatzanzeige + main.BE.Visibility = Visibility.Visible; + main.BesuchP.Visibility = Visibility.Visible; + if (Environment.UserName == "RainerGaertner") { main.btnIvoBackground.Visibility = Visibility.Visible; @@ -131,6 +136,7 @@ namespace ZKuP main.btnBE.Visibility = Visibility.Visible; main.btnKartenTausch.Visibility = Visibility.Collapsed; main.btnApproveFzg.Visibility = Visibility.Collapsed; + main.btnLostCard.Visibility = Visibility.Collapsed; main.btnCreateParkausweis.Visibility = Visibility.Visible; @@ -145,6 +151,9 @@ namespace ZKuP main.btnMcFitSign.Visibility = Visibility.Visible; //btnNotification.Visibility = Visibility.Visible; + //Parkplatzanzeige + main.BE.Visibility = Visibility.Collapsed; + main.BesuchP.Visibility = Visibility.Collapsed; main.tcMainMenu.SelectedIndex = 1; } @@ -183,6 +192,7 @@ namespace ZKuP main.btnBE.Visibility = Visibility.Visible; main.btnKartenTausch.Visibility = Visibility.Collapsed; main.btnApproveFzg.Visibility = Visibility.Collapsed; + main.btnLostCard.Visibility = Visibility.Collapsed; main.btnCreateParkausweis.Visibility = Visibility.Visible; @@ -197,6 +207,9 @@ namespace ZKuP main.btnMcFitSign.Visibility = Visibility.Visible; //btnNotification.Visibility = Visibility.Visible; + //Parkplatzanzeige + main.BE.Visibility = Visibility.Collapsed; + main.BesuchP.Visibility = Visibility.Collapsed; main.tcMainMenu.SelectedIndex = 1; } @@ -235,6 +248,7 @@ namespace ZKuP main.btnBE.Visibility = Visibility.Visible; main.btnKartenTausch.Visibility = Visibility.Collapsed; main.btnApproveFzg.Visibility = Visibility.Collapsed; + main.btnLostCard.Visibility = Visibility.Collapsed; main.btnCreateParkausweis.Visibility = Visibility.Visible; main.btnCheckParkausweis.Visibility = Visibility.Visible; @@ -254,6 +268,9 @@ namespace ZKuP main.btnMcFitSign.Visibility = Visibility.Visible; //btnNotification.Visibility = Visibility.Visible; + //Parkplatzanzeige + main.BE.Visibility = Visibility.Visible; + main.BesuchP.Visibility = Visibility.Visible; main.tcMainMenu.SelectedIndex = 1; } @@ -292,6 +309,7 @@ namespace ZKuP main.btnBE.Visibility = Visibility.Visible; main.btnKartenTausch.Visibility = Visibility.Collapsed; main.btnApproveFzg.Visibility = Visibility.Collapsed; + main.btnLostCard.Visibility = Visibility.Collapsed; main.btnCreateParkausweis.Visibility = Visibility.Visible; main.btnCheckParkausweis.Visibility = Visibility.Visible; @@ -311,6 +329,9 @@ namespace ZKuP main.btnMcFitSign.Visibility = Visibility.Visible; //btnNotification.Visibility = Visibility.Visible; + //Parkplatzanzeige + main.BE.Visibility = Visibility.Visible; + main.BesuchP.Visibility = Visibility.Visible; main.tcMainMenu.SelectedIndex = 1; } @@ -351,6 +372,7 @@ namespace ZKuP main.btnBE.Visibility = Visibility.Visible; main.btnKartenTausch.Visibility = Visibility.Visible; main.btnApproveFzg.Visibility = Visibility.Collapsed; + main.btnLostCard.Visibility = Visibility.Visible; main.btnCheckParkausweis.Visibility = Visibility.Visible; //btnPrintParkausweis.Visibility = Visibility.Visible; @@ -366,6 +388,9 @@ namespace ZKuP main.btnMcFitSign.Visibility = Visibility.Collapsed; //btnNotification.Visibility = Visibility.Collapsed; + //Parkplatzanzeige + main.BE.Visibility = Visibility.Visible; + main.BesuchP.Visibility = Visibility.Visible; main.tcMainMenu.SelectedIndex = 2; } @@ -417,6 +442,7 @@ namespace ZKuP main.btnBE.Visibility = Visibility.Collapsed; main.btnKartenTausch.Visibility = Visibility.Collapsed; main.btnApproveFzg.Visibility = Visibility.Collapsed; + main.btnLostCard.Visibility = Visibility.Collapsed; main.btnCheckParkausweis.Visibility = Visibility.Collapsed; main.btnCreateParkausweis.Visibility = Visibility.Visible; @@ -432,6 +458,9 @@ namespace ZKuP main.btnMcFitSign.Visibility = Visibility.Visible; //btnNotification.Visibility = Visibility.Collapsed; + //Parkplatzanzeige + main.BE.Visibility = Visibility.Collapsed; + main.BesuchP.Visibility = Visibility.Collapsed; main.tcMainMenu.SelectedIndex = 1; } @@ -479,6 +508,7 @@ namespace ZKuP main.btnMcFitSign.Visibility = Visibility.Collapsed; main.btnKartenTausch.Visibility = Visibility.Collapsed; main.btnApproveFzg.Visibility = Visibility.Collapsed; + main.btnLostCard.Visibility = Visibility.Collapsed; //lblSearch.Visibility = Visibility.Collapsed; main.tbSearch.Visibility = Visibility.Collapsed; @@ -489,7 +519,10 @@ namespace ZKuP //main.lblmcfit2.Visibility = Visibility.Collapsed; //btnNotification.Visibility = Visibility.Collapsed; - + + //Parkplatzanzeige + main.BE.Visibility = Visibility.Collapsed; + main.BesuchP.Visibility = Visibility.Collapsed; } internal void BesucherCreateStart() @@ -538,6 +571,7 @@ namespace ZKuP main.btnMcFitSign.Visibility = Visibility.Visible; main.btnKartenTausch.Visibility = Visibility.Collapsed; main.btnApproveFzg.Visibility = Visibility.Collapsed; + main.btnLostCard.Visibility = Visibility.Collapsed; //lblSearch.Visibility = Visibility.Collapsed; main.tbSearch.Visibility = Visibility.Collapsed; @@ -547,9 +581,13 @@ namespace ZKuP main.btnClearSearchArrived.Visibility = Visibility.Collapsed; main.btnDarkMode.Visibility = Visibility.Collapsed; + //main.lblmcfit2.Visibility = Visibility.Visible; //btnNotification.Visibility = Visibility.Collapsed; + //Parkplatzanzeige + main.BE.Visibility = Visibility.Collapsed; + main.BesuchP.Visibility = Visibility.Collapsed; } } diff --git a/ZKuP/SQL.cs b/ZKuP/SQL.cs index f6ea653..0f68438 100644 --- a/ZKuP/SQL.cs +++ b/ZKuP/SQL.cs @@ -5,6 +5,7 @@ using System.Data; using System.Data.SqlClient; using System.Diagnostics; using System.Diagnostics.Eventing.Reader; +using System.Drawing; using System.IO; using System.Linq; using System.Net.NetworkInformation; @@ -12,7 +13,10 @@ using System.Runtime.CompilerServices; using System.Text; using System.Threading; using System.Threading.Tasks; +using System.Windows; +using System.Windows.Interop; using System.Windows.Markup; +using System.Windows.Resources; using System.Windows.Threading; using Windows.Phone.PersonalInformation; @@ -21,7 +25,7 @@ namespace ZKuP public static class SQL { private static string p = "fNZG8bO+b8lbajxNUCPCIRNBap4/T5N5Qoa0Rec3P9b2EiwC5eNIwfEMjR5Fvc/W"; - private static string s = "KYgjkRVn0edFDca2GbZq/A=="; + private static string s = "KYgjkRVn0edFDca2GbZq/A=="; // "d0cRVbko84WkycpOfE30db5kQvnIprtdeNhhB6BtCdg="; new server private static string uSSL = "miSRZrFLxAAWlzRLx9B6Ww=="; private static string d = "xWb4X9gPEzwe76zqpysF3w=="; #if DEBUG @@ -62,15 +66,15 @@ namespace ZKuP { System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping(); //change the following ip variable into the ip adress you are looking for - System.Net.IPAddress address = System.Net.IPAddress.Parse(GetIP()); - System.Net.NetworkInformation.PingReply pong = ping.Send(address); + //System.Net.IPAddress address = System.Net.IPAddress.Parse(GetIP()); + System.Net.NetworkInformation.PingReply pong = ping.Send(GetIP()); if (pong.Status == System.Net.NetworkInformation.IPStatus.Success) { return true; } else { - pong = ping.Send(address); + pong = ping.Send(GetIP()); if (pong.Status == System.Net.NetworkInformation.IPStatus.Success) { @@ -125,7 +129,7 @@ namespace ZKuP { if (string.IsNullOrWhiteSpace(ip)) { - ip = Crypto.Decrypt(Crypto.GetHashKey("866D137B10C95A4E8D5091B0CC0EFB8F"), s); + ip = Crypto.Decrypt(Crypto.GetHashKey("866D137B10C95A4E8D5091B0CC0EFB8F"), s); // new Hash "534939882ECA063C7F8B15E10DCBE3D5" return ip; } else return ip; @@ -174,7 +178,8 @@ namespace ZKuP public static MySqlConnection GetConnection() { - return new MySqlConnection(GetConnstr()); + var str = GetConnstr(); + return new MySqlConnection(str); } @@ -334,7 +339,7 @@ namespace ZKuP cmd.Parameters.Add("@signature", MySqlDbType.LongBlob).Value = signature; else cmd.Parameters.Add("@signature", MySqlDbType.LongBlob).Value = new byte[1]; - await SQL.WriteSQL(cmd); + await SQL.WriteSQL(cmd); } @@ -764,8 +769,22 @@ namespace ZKuP //And use: //using (System.IO.MemoryStream ms = new System.IO.MemoryStream(data)) //{ - System.IO.MemoryStream ms = new System.IO.MemoryStream(data); - image = new System.Drawing.Bitmap(ms); + + if (data.Length > 100) + { + System.IO.MemoryStream ms = new System.IO.MemoryStream(data); + image = new System.Drawing.Bitmap(ms); + } + else + { + var uri = new Uri(@"/Resources/NoSignature.png", UriKind.Relative); + StreamResourceInfo info = System.Windows.Application.GetResourceStream(uri); + using (var stream = info.Stream) + { + image = new Bitmap(stream); + } + //image = new System.Windows.Media.Imaging.BitmapImage(new Uri(@"/Resources/NoSignature.png", UriKind.Relative)); + } //} } } diff --git a/ZKuP/Signature.xaml.cs b/ZKuP/Signature.xaml.cs index 2f5e1f5..66f0812 100644 --- a/ZKuP/Signature.xaml.cs +++ b/ZKuP/Signature.xaml.cs @@ -70,6 +70,9 @@ namespace ZKuP case DisclaimerType.Rueck: signoPad.ShowDisclaimerRueck(ansprechpartner, showDisclaimer); break; + case DisclaimerType.LostCard: + signoPad.ShowDisclaimerLostCard(Name, Firma_Abteilung, showDisclaimer); + break; default: signoPad.ShowDisclaimerParken(Name, Firma_Abteilung, Kennzeichen_Handynr, showDisclaimer); break; @@ -174,7 +177,8 @@ namespace ZKuP McFit, Gruen, Rot, - Rueck + Rueck, + LostCard } } } diff --git a/ZKuP/XMessageBoxFahrzeugAnzahl.xaml b/ZKuP/XMessageBoxFahrzeugAnzahl.xaml index 76d9c02..d15346a 100644 --- a/ZKuP/XMessageBoxFahrzeugAnzahl.xaml +++ b/ZKuP/XMessageBoxFahrzeugAnzahl.xaml @@ -6,7 +6,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:ZKuP" mc:Ignorable="d" - Title="XMessageBox" Height="430" Width="700" ResizeMode="NoResize" ShowInTaskbar="False" WindowStartupLocation="CenterScreen" Closing="MetroWindow_Closing"> + Title="XMessageBox" Height="460" Width="700" ResizeMode="NoResize" ShowInTaskbar="False" WindowStartupLocation="CenterScreen" Closing="MetroWindow_Closing">