PEPTool/AV-ToolV3/KTOverview.xaml.cs
2025-10-08 10:11:18 +02:00

133 lines
5.7 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
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 PEP_Tool
{
/// <summary>
/// Interaktionslogik für KTOverview.xaml
/// </summary>
public partial class KTOverview : Window
{
public System.Data.DataTable Overview { get; private set; } = new System.Data.DataTable("Overview");
public static KTOverview KTO;
public KTOverview()
{
KTO = this;
InitializeComponent();
var abtFilterList = MainWindow.main.AbteilungsNamen.Select(p => p.Value.Item2).Distinct().ToList();
//abtFilterList.Insert(0, "");
abtFilterList.Sort();
cBFilterAbteilung.ItemsSource = abtFilterList;
dGView.DataContext = Overview;
SQL.ReadSQL($"SELECT Abteilung,AnzahlMA,ZugName,Start,Ende,Zustand,Grund,AddedOn FROM pep_tool.schaltung s", Overview);
System.Data.DataTable dt = SQL.ReadSQL($"SELECT Min(str_to_date(Datum, '%Y-%m-%d')), max(str_to_date(Datum, '%Y-%m-%d')) from pep_tool.schaltung").Result;
dPDate.DisplayDateStart = Convert.ToDateTime(dt.Rows[0].ItemArray[0].ToString());
dPDate.DisplayDateEnd = Convert.ToDateTime(dt.Rows[0].ItemArray[1].ToString());
SortList();
}
private async void cBFilterAbteilung_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
System.Diagnostics.Debug.WriteLine(cBFilterAbteilung.SelectedItem);
if (dPDate.SelectedDate == null && (cBFilterAbteilung.SelectedItem == "" || cBFilterAbteilung.SelectedItem == null))
await SQL.ReadSQL($"SELECT Abteilung,AnzahlMA,ZugName,Start,Ende,Zustand,Grund,AddedOn FROM pep_tool.schaltung s", Overview);
else if(dPDate.SelectedDate == null)
await SQL.ReadSQL($"SELECT Abteilung,AnzahlMA,ZugName,Start,Ende,Zustand,Grund,AddedOn FROM pep_tool.schaltung s WHERE Abteilung = '{cBFilterAbteilung.SelectedItem}'", Overview);
else
await SQL.ReadSQL($"SELECT Abteilung,AnzahlMA,ZugName,Start,Ende,Zustand,Grund,AddedOn FROM pep_tool.schaltung s WHERE Abteilung = '{cBFilterAbteilung.SelectedItem}' AND Datum = '{Convert.ToDateTime(dPDate.SelectedDate).ToString("yyyy-MM-dd")}'", Overview);
SortList();
}
private async void DPDate_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
if (dPDate.SelectedDate == null && (cBFilterAbteilung.SelectedItem == "" || cBFilterAbteilung.SelectedItem == null))
await SQL.ReadSQL($"SELECT Abteilung,AnzahlMA,ZugName,Start,Ende,Zustand,Grund FROM pep_tool.schaltung s", Overview);
else
{
if (cBFilterAbteilung.SelectedItem != "" && cBFilterAbteilung.SelectedItem != null)
await SQL.ReadSQL($"SELECT Abteilung,AnzahlMA,ZugName,Start,Ende,Zustand,Grund,AddedOn FROM pep_tool.schaltung s WHERE Datum = '{Convert.ToDateTime(dPDate.SelectedDate).ToString("yyyy-MM-dd")}' AND Abteilung = '{cBFilterAbteilung.SelectedItem}'", Overview);
else
await SQL.ReadSQL($"SELECT Abteilung,AnzahlMA,ZugName,Start,Ende,Zustand,Grund,AddedOn FROM pep_tool.schaltung s WHERE Datum = '{Convert.ToDateTime(dPDate.SelectedDate).ToString("yyyy-MM-dd")}'", Overview);
}
SortList();
}
private void BtnDatePlus_Click(object sender, RoutedEventArgs e)
{
if (dPDate.SelectedDate < dPDate.DisplayDateEnd)
dPDate.SelectedDate = dPDate.SelectedDate + TimeSpan.FromDays(1);
}
private void BtnDateMinus_Click(object sender, RoutedEventArgs e)
{
if (dPDate.SelectedDate > dPDate.DisplayDateStart)
dPDate.SelectedDate = dPDate.SelectedDate - TimeSpan.FromDays(1);
}
private void BtnDateAll_Click(object sender, RoutedEventArgs e)
{
dPDate.SelectedDate = null;
}
private void BtnToday_Click(object sender, RoutedEventArgs e)
{
dPDate.SelectedDate = DateTime.Now.Date;
}
private void BtnOK_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
public async void refreshDGView()
{
if (dPDate.SelectedDate == null && (cBFilterAbteilung.SelectedItem == "" || cBFilterAbteilung.SelectedItem == null))
await SQL.ReadSQL($"SELECT Abteilung,AnzahlMA,ZugName,Start,Ende,Zustand,Grund,AddedOn FROM pep_tool.schaltung s", Overview);
else if (dPDate.SelectedDate == null)
await SQL.ReadSQL($"SELECT Abteilung,AnzahlMA,ZugName,Start,Ende,Zustand,Grund,AddedOn FROM pep_tool.schaltung s WHERE Abteilung = '{cBFilterAbteilung.SelectedItem}'", Overview);
else
await SQL.ReadSQL($"SELECT Abteilung,AnzahlMA,ZugName,Start,Ende,Zustand,Grund,AddedOn FROM pep_tool.schaltung s WHERE Abteilung = '{cBFilterAbteilung.SelectedItem}' AND Datum = '{Convert.ToDateTime(dPDate.SelectedDate).ToString("yyyy-MM-dd")}'", Overview);
lblLastRefresh.Text = DateTime.Now.ToString();
SortList();
}
private void SortList()
{
dGView.Items.SortDescriptions.Clear();
dGView.Items.SortDescriptions.Add(new SortDescription("AddedOn", ListSortDirection.Descending));
dGView.Items.Refresh();
}
}
}