446 lines
17 KiB
C#
446 lines
17 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
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
|
|
{
|
|
/// <summary>
|
|
/// Interaktionslogik für Arrivals.xaml
|
|
/// </summary>
|
|
public partial class Arrivals : Window
|
|
{
|
|
List<string> NamesList = new List<string>();
|
|
int firmenCount = 0;
|
|
int besucherCount = 0;
|
|
bool arrivalClicked = false;
|
|
bool kl_EinweisungClicked = false;
|
|
string query = "";
|
|
byte[] _signature = null;
|
|
Window mainWindow = null;
|
|
|
|
public Arrivals(Window main, string Parameter = "")
|
|
{
|
|
InitializeComponent();
|
|
arrivalClicked = false;
|
|
|
|
mainWindow = main;
|
|
|
|
var list = SQL.ReadListString("Select Name FROM zkup.firmen").Result;
|
|
list = list.OrderBy(p => p).ToList();
|
|
|
|
NamesList.Add("Firmen:");
|
|
NamesList.Add("------------");
|
|
NamesList.AddRange(list);
|
|
NamesList.Add("");
|
|
NamesList.Add("============");
|
|
NamesList.Add("");
|
|
|
|
firmenCount = NamesList.Count;
|
|
|
|
|
|
list = SQL.ReadListString("Select Name FROM zkup.besucher").Result;
|
|
list.OrderBy(p => p).ToList();
|
|
|
|
NamesList.Add("Besucher:");
|
|
NamesList.Add("------------");
|
|
NamesList.AddRange(list);
|
|
|
|
besucherCount = NamesList.Count - firmenCount;
|
|
|
|
|
|
cbName.ItemsSource = NamesList;
|
|
|
|
|
|
if (Parameter != "")
|
|
{
|
|
cbName.SelectionChanged += CbName_SelectionChanged;
|
|
cbName.SelectedItem = Parameter;
|
|
tbAnzahlPersonen.Focus();
|
|
}
|
|
else
|
|
{
|
|
cbName.SelectionChanged += CbName_SelectionChanged;
|
|
cbName.IsDropDownOpen = true;
|
|
}
|
|
|
|
if(signoPad._stPad.DeviceGetCount() <= 0)
|
|
{
|
|
btnSignature.IsEnabled = false;
|
|
btnCheck.IsEnabled = true;
|
|
|
|
btnSignature.ToolTip = "Kein Unterschriftenpad gefunden";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
private async void BtnCheck_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var zutritt = "";
|
|
|
|
var einweis = "";
|
|
var kl_einweis = "";
|
|
string kat = "1";
|
|
string asp = "";
|
|
string anzFzg = "";
|
|
int klUnterweis = 0;
|
|
int anzFzgGemeldet = 0;
|
|
|
|
DataTable table = new DataTable();
|
|
|
|
if (cbName.SelectedIndex < firmenCount)
|
|
{
|
|
table = await SQL.ReadSQL("Select * FROM zkup.firmen");
|
|
kat = "1";
|
|
}
|
|
else
|
|
{
|
|
table = await SQL.ReadSQL("Select * FROM zkup.besucher");
|
|
kat = "2";
|
|
}
|
|
|
|
foreach(DataRow row in table.Rows)
|
|
{
|
|
if(row.ItemArray[1].ToString() == cbName.SelectedValue.ToString())
|
|
{
|
|
DateTime beginnDT;
|
|
DateTime endeDT;
|
|
DateTime einweisDT;
|
|
DateTime kl_einweisDT;
|
|
|
|
|
|
if (kat == "1")
|
|
{
|
|
if (string.IsNullOrWhiteSpace(tbAnzahlFzg.Text))
|
|
{
|
|
MessageBox.Show(this, "Anzahl Fahrzeuge eingeben", "Achtung!", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
return;
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(tbAnzahlPersonen.Text))
|
|
{
|
|
MessageBox.Show(this, "Anzahl Personen eingeben", "Achtung!", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
return;
|
|
}
|
|
|
|
|
|
if (DateTime.TryParse(row.ItemArray[7].ToString(), out beginnDT)
|
|
&& DateTime.TryParse(row.ItemArray[8].ToString(), out endeDT))
|
|
{
|
|
if (DateTime.Now.Date >= beginnDT.Date && DateTime.Now.Date <= endeDT.Date)
|
|
zutritt = "OK";
|
|
else zutritt = "Prüfen!";
|
|
}
|
|
else
|
|
{
|
|
zutritt = $"Fehler! Bitte bei {row.ItemArray[10]} nachfragen";
|
|
einweis = $"Fehler! Bitte bei {row.ItemArray[10]} nachfragen";
|
|
}
|
|
|
|
if (Convert.ToInt16(tbAnzahlFzg.Text) <= Convert.ToInt16(row.ItemArray[5]))
|
|
{
|
|
anzFzg = "OK";
|
|
}
|
|
else
|
|
{
|
|
anzFzg = $"Nur {row.ItemArray[5].ToString()} Fahrzeug(e) angemeldet";
|
|
}
|
|
|
|
anzFzgGemeldet = row.ItemArray[5] != null ? Convert.ToInt16(row.ItemArray[5]) : 0;
|
|
|
|
|
|
if (DateTime.TryParse(row.ItemArray[9].ToString(), out einweisDT))
|
|
{
|
|
if(row.ItemArray[9].ToString() == "01.01.1903 00:00:00")
|
|
{
|
|
einweis = "Nur in Begleitung";
|
|
}
|
|
else if (DateTime.Now.Date <= einweisDT)
|
|
einweis = "OK";
|
|
else einweis = "Prüfen!";
|
|
}
|
|
else
|
|
{
|
|
zutritt = $"Fehler! Bitte bei {row.ItemArray[10]} nachfragen";
|
|
einweis = $"Fehler! Bitte bei {row.ItemArray[10]} nachfragen";
|
|
}
|
|
|
|
if(DateTime.TryParse(row.ItemArray[12].ToString(), out kl_einweisDT))
|
|
{
|
|
if (DateTime.Now.Date <= einweisDT)
|
|
{
|
|
kl_einweis = "OK";
|
|
klUnterweis = 1;
|
|
}
|
|
else
|
|
{
|
|
kl_einweis = "Kleine Unterweisung durchführen!";
|
|
klUnterweis = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
kl_einweis = "Bitte kleine Unterweisung durchführen!";
|
|
klUnterweis = 0;
|
|
}
|
|
|
|
asp = row.ItemArray[10].ToString();
|
|
}
|
|
|
|
if (kat == "2")
|
|
{
|
|
if (DateTime.TryParse(row.ItemArray[5].ToString(), out beginnDT))
|
|
{
|
|
if (DateTime.Now.Date == beginnDT)
|
|
zutritt = "OK";
|
|
else zutritt = "Prüfen!";
|
|
}
|
|
else
|
|
{
|
|
zutritt = $"Fehler! Bitte bei {row.ItemArray[7]} nachfragen";
|
|
einweis = $"Fehler! Bitte bei {row.ItemArray[7]} nachfragen";
|
|
}
|
|
|
|
//if (DateTime.TryParse(row.ItemArray[6].ToString(), out einweisDT))
|
|
//{
|
|
// if (DateTime.Now.Date <= einweisDT)
|
|
// einweis = "OK";
|
|
// else einweis = "Prüfen!";
|
|
//}
|
|
//else
|
|
//{
|
|
// zutritt = $"Fehler! Bitte bei {row.ItemArray[7]} nachfragen";
|
|
// einweis = $"Fehler! Bitte bei {row.ItemArray[7]} nachfragen";
|
|
//}
|
|
einweis = "--";
|
|
anzFzg = "--";
|
|
|
|
if (DateTime.TryParse(row.ItemArray[9].ToString(), out kl_einweisDT))
|
|
{
|
|
if (DateTime.Now.Date <= kl_einweisDT)
|
|
{
|
|
kl_einweis = "OK";
|
|
klUnterweis = 1;
|
|
}
|
|
else
|
|
{
|
|
kl_einweis = "Kleine Unterweisung durchführen!";
|
|
klUnterweis = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
kl_einweis = "Kleine Unterweisung durchführen!";
|
|
klUnterweis = 0;
|
|
}
|
|
|
|
asp = row.ItemArray[7].ToString();
|
|
}
|
|
}
|
|
}
|
|
|
|
lblAnmeldung.Content = zutritt;
|
|
if (zutritt == "OK") lblAnmeldung.Background = new SolidColorBrush(Colors.LightGreen);
|
|
else if (zutritt == "Prüfen!") lblAnmeldung.Background = new SolidColorBrush(Colors.LightYellow);
|
|
else lblAnmeldung.Background = new SolidColorBrush(Colors.LightSalmon);
|
|
|
|
lblFahrzeuge.Content = anzFzg;
|
|
if (anzFzg == "OK") lblFahrzeuge.Background = new SolidColorBrush(Colors.LightGreen);
|
|
else if (anzFzg.StartsWith("Nur")) lblFahrzeuge.Background = new SolidColorBrush(Colors.LightYellow);
|
|
else if (anzFzg == "--") lblFahrzeuge.Background = new SolidColorBrush(Colors.LightGray);
|
|
else lblFahrzeuge.Background = new SolidColorBrush(Colors.LightSalmon);
|
|
|
|
|
|
lblEinweisung.Content = einweis;
|
|
if (einweis == "OK") lblEinweisung.Background = new SolidColorBrush(Colors.LightGreen);
|
|
else if (einweis == "Prüfen!") lblEinweisung.Background = new SolidColorBrush(Colors.LightYellow);
|
|
else if (einweis == "--") lblEinweisung.Background = new SolidColorBrush(Colors.LightGray);
|
|
else lblEinweisung.Background = new SolidColorBrush(Colors.LightSalmon);
|
|
|
|
lblKleineUnterweisung.Content = kl_einweis;
|
|
if (kl_einweis == "OK") lblKleineUnterweisung.Background = new SolidColorBrush(Colors.LightGreen);
|
|
else if (kl_einweis == "Kleine Unterweisung durchführen!")
|
|
{
|
|
lblKleineUnterweisung.Background = new SolidColorBrush(Colors.LightYellow);
|
|
lblKleineUnterweisung.Content = "↓ " + kl_einweis + " ↓";
|
|
}
|
|
else lblKleineUnterweisung.Background = new SolidColorBrush(Colors.LightSalmon);
|
|
|
|
|
|
var AnzPers = "0";
|
|
var AnzFzg = "0";
|
|
|
|
if (tbAnzahlFzg.Text != "")
|
|
AnzFzg = tbAnzahlFzg.Text;
|
|
|
|
if (tbAnzahlPersonen.Text != "")
|
|
AnzPers = tbAnzahlPersonen.Text;
|
|
|
|
if (einweis == "") einweis = "Fehlerhaft";
|
|
if (zutritt == "") zutritt = "Fehlerhaft";
|
|
|
|
arrivalClicked = true;
|
|
|
|
query = $"INSERT INTO zutritte (Kategorie,Name,Zutritt,Pruefung_Zutritt,Pruefung_Einweisung,AnzahlPers,AnzahlFzg,Ansprechpartner,Kl_Unterweisung,Fzg_gemeldet,Kennzeichen,Bemerkung,signature_blob) VALUES ('{kat}','{cbName.SelectedValue.ToString().Replace(",",";")}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}','{zutritt}','{einweis}','{AnzPers.Replace(",",";")}','{AnzFzg.Replace(",", ";")}','{asp.Replace(",", ";")}','{klUnterweis}','{anzFzgGemeldet}','{tbKennzeichen.Text}','{tbBemerkung.Text}',@signature)";
|
|
|
|
btnSignature.IsEnabled = true;
|
|
|
|
if (klUnterweis == 0) btnKlEinweisung_durchgeführt.IsEnabled = true;
|
|
else if (klUnterweis == 1)
|
|
{
|
|
btnKlEinweisung_durchgeführt.ToolTip = "Kleine Unterweisung wurde bereits durchgeführt\nBestätigung nicht nötig";
|
|
btnSignature.ToolTip = "Kleine Unterweisung wurde bereits durchgeführt\nUnterschrift nicht nötig";
|
|
btnSignature.Content = "Unterschrift bereits vorhanden";
|
|
}
|
|
|
|
if (arrivalClicked) btnClose.IsEnabled = true;
|
|
}
|
|
|
|
|
|
protected override void OnClosing(CancelEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (arrivalClicked)
|
|
{
|
|
e.Cancel = true;
|
|
MessageBox.Show(this, "Ankunft wurde geklickt\n\nBitte Fenster über \"Schließen\"-Button schließen", "Fehler", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
return;
|
|
}
|
|
|
|
signoPad.CloseConnection();
|
|
mainWindow.Focus();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Log.WriteLog(ex.ToString());
|
|
|
|
MessageBox.Show("Fehler: " + ex.Message);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private async void Close_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (arrivalClicked)
|
|
{
|
|
await SQL.WriteSQL(query, _signature);
|
|
|
|
arrivalClicked = false;
|
|
|
|
this.Close();
|
|
}
|
|
|
|
signoPad.CloseConnection();
|
|
}
|
|
|
|
private async void CbName_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
{
|
|
if (cbName.SelectedValue != null)
|
|
{
|
|
if(cbName.SelectedItem.ToString() == "------------" || cbName.SelectedItem.ToString() == "============" || cbName.SelectedItem.ToString() == "Besucher:" || cbName.SelectedItem.ToString() == "Firmen:" || (cbName.SelectedItem.ToString() == "" && cbName.SelectedIndex != -1))
|
|
{
|
|
cbName.SelectedIndex = -1;
|
|
MessageBox.Show(this, "Dieses Feld kann nicht gewählt werden", "Fehler!", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
return;
|
|
}
|
|
|
|
string a_Fzg = await SQL.ReadSingleValueAsync($"SELECT Anzahl_Fzg FROM zkup.firmen WHERE `Name`='{cbName.SelectedValue.ToString()}' AND `Arbeitsbeginn` <= current_date() AND `Arbeitsende` >= current_date()");
|
|
lblAngemeldeteFzg.Text = !string.IsNullOrWhiteSpace(a_Fzg) ? a_Fzg + " Fzg. angemeldet" : "keine Fzg. angemeldet";
|
|
|
|
|
|
btnCheck.IsEnabled = true;
|
|
btnKarte.IsEnabled = true;
|
|
}
|
|
}
|
|
|
|
private async void btnSignature_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
string kat = "1";
|
|
string firmaBesucher = "";
|
|
string name = "";
|
|
|
|
if (cbName.SelectedIndex < firmenCount)
|
|
{
|
|
firmaBesucher = cbName.SelectedValue.ToString();
|
|
name = await SQL.ReadSingleValueAsync($"SELECT Verantwortlicher_MA_Firma FROM zkup.firmen WHERE Name = '{cbName.SelectedValue.ToString()}'");
|
|
}
|
|
else
|
|
{
|
|
firmaBesucher = cbName.SelectedValue.ToString();
|
|
name = await SQL.ReadSingleValueAsync($"SELECT Ansprechpartner_Intern FROM zkup.besucher WHERE Name = '{cbName.SelectedValue.ToString()}'");
|
|
}
|
|
|
|
var sig = new Signature(name, cbName.SelectedValue.ToString(), tbKennzeichen.Text);
|
|
if(sig.ShowDialog() == false)
|
|
{
|
|
_signature = sig.ResultByte;
|
|
|
|
btnCheck.IsEnabled = true;
|
|
}
|
|
}
|
|
|
|
private async void btnKlEinweisung_durchgeführt_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (signoPad._stPad.DeviceGetCount() <= 0)
|
|
{
|
|
btnSignature.IsEnabled = false;
|
|
btnSignature.ToolTip = "Kein Unterschriftenpad gefunden";
|
|
}
|
|
else { btnSignature.IsEnabled = true; btnSignature.Content = "Unterschrift einholen!"; }
|
|
|
|
if (cbName.SelectedIndex < firmenCount)
|
|
await SQL.WriteSQL($"UPDATE zkup.firmen SET Kleine_Unterweisung_bis = '{(DateTime.Now.Date.AddYears(1)).ToString("yyyy-MM-dd")}' WHERE Name = '{cbName.SelectedValue.ToString()}'");
|
|
else
|
|
await SQL.WriteSQL($"UPDATE zkup.besucher SET Kleine_Unterweisung_bis = '{(DateTime.Now.Date.AddYears(1)).ToString("yyyy-MM-dd")}' WHERE Name = '{cbName.SelectedValue.ToString()}'");
|
|
|
|
var s = query.Split(',');
|
|
s[20] = "1";
|
|
query = string.Join(",", s);
|
|
|
|
btnKlEinweisung_durchgeführt.Background = new SolidColorBrush(Colors.GreenYellow);
|
|
}
|
|
|
|
private void btnKarte_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
AddCardUser aI = new AddCardUser(cbName.SelectedItem.ToString());
|
|
aI.Owner = this;
|
|
aI.ShowDialog();
|
|
}
|
|
|
|
private void Window_PreviewGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
|
|
{
|
|
this.Opacity = 1;
|
|
}
|
|
|
|
private void Window_PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
|
|
{
|
|
this.Opacity = 0.5;
|
|
}
|
|
|
|
private void CloseWithX_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
private void Window_PreviewMouseDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
this.DragMove();
|
|
}
|
|
}
|
|
}
|