komplettes Projekt

This commit is contained in:
Kilian Wirl 2025-11-30 11:44:05 +01:00
parent caa49e3a2a
commit 39198d77aa
93 changed files with 13241 additions and 4329 deletions

View File

@ -1,44 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Deckungsbeitrag.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<add key="ConnectionString" value="user id=kevin;password=wirl;host=10.10.10.1;port=5432;database=Wirl_DB_17012023;Timeout=5" />
<add key="SortimentPfad" value="N:\\BÜRO\\SOCOM\\Zaehlscheine\\Kundensortiment.txt" />
<add key="BildPfad" value="C:\\Program Files (x86)\\Deckungsbeitrag\\Star.png" />
<add key="QrPfad" value="N:\\BÜRO\\SOCOM\\Zaehlscheine\\qrweb.png" />
<add key="Variabel" value="5000,5020,5300,5450,5701,5702,5800,5805,5812,6000,6010,6040,6090,6402,6600,6620,6630,6640,6660,7171,7220,7230,7235" />
<add key="FixLohn" value="6120,6200,6210,6240,6790,6791,7021,7022,7150,7180,7181,7200,7201,7202,7203,7204,7207,7215,7225" />
<add key="FixMiete" value="7023" />
<add key="Programme" value="01 40 Grad FR,02 40 Grad TT,03 40 Grad BW,11 70 Grad FR,12 70 Grad TT,13 70 Grad BW" />
<add key="Maschine" value="Waschstrasse 1" />
<add key="OLV_State" value="" />
<add key="OLV_State_Filter" value="" />
<add key="PrinterName" value="Lieferschein" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Deckungsbeitrag.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<add key="ConnectionString" value="user id=postgres;password=Ki985941Wi;host=10.10.10.1;port=5432;database=Wirl_DB_17012023;Timeout=5" />
<add key="SortimentPfad" value="N:\\BÜRO\\SOCOM\\Zaehlscheine\\Kundensortiment.txt" />
<add key="BildPfad" value="C:\\Users\\KilianWirl\\OneDrive - gehgassi GmbH\\Wäscherei Wirl\\Programme\\Deckungsbeitrag\\Deckungsbeitrag\\Star.png" />
<add key="QrPfad" value="N:\\BÜRO\\SOCOM\\Zaehlscheine\\qrweb.png" />
<add key="Variabel" value="5000,5020,5300,5450,5701,5702,5800,5805,5812,6000,6010,6040,6090,6402,6600,6620,6630,6640,6660,7171,7220,7230,7235" />
<add key="FixLohn" value="6120,6200,6210,6240,6790,6791,7021,7022,7150,7180,7181,7200,7201,7202,7203,7204,7207,7215,7225" />
<add key="FixMiete" value="7023" />
<add key="Programme" value="01 40 Grad FR,02 40 Grad TT,03 40 Grad BW,11 70 Grad FR,12 70 Grad TT,13 70 Grad BW" />
<add key="Maschine" value="Waschstrasse 1" />
<add key="OLV_State" value="" />
<add key="OLV_State_Filter" value="" />
<add key="PrinterName" value="Lieferschein" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
<add key="ClientSettingsProvider.ConnectionStringName" value="DefaultConnection" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
<bindingRedirect oldVersion="0.0.0.0-4.2.4.0" newVersion="4.2.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.5.0" newVersion="4.1.5.0" />
<bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.1.0" newVersion="6.0.1.0" />
<bindingRedirect oldVersion="0.0.0.0-6.0.3.0" newVersion="6.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.4.0" newVersion="4.0.4.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
@ -54,7 +56,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
@ -72,6 +74,10 @@
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<userSettings>
@ -80,7 +86,7 @@
<value />
</setting>
<setting name="Wirlblau" serializeAs="String">
<value />
<value>1, 53, 101</value>
</setting>
<setting name="ColPos" serializeAs="String">
<value />
@ -132,4 +138,19 @@
</setting>
</Deckungsbeitrag.Properties.Settings>
</userSettings>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientWindowsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" connectionStringName="DefaultConnection" credentialsProvider="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" connectionStringName="DefaultConnection" />
</providers>
</roleManager>
</system.web>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source = |SQL/CE|" />
</connectionStrings>
</configuration>

187
Artikel.cs Normal file
View File

@ -0,0 +1,187 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BrightIdeasSoftware;
using System.Runtime.CompilerServices;
using System.Windows.Forms;
namespace DatenDB
{
public enum ArtikelKategorie
{
Unbekannt = 0,
Frottee = 1,
Grossteile = 2,
Kleinteile = 3,
Spannleintuch = 4
}
public class Artikel
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
public const string COLUMNS = "artikel_id, nummer, bezeichnung, short, nachwaesche, muellwaesche, last_reset, kategorie";
private const string TABLE = "kundenverwaltung.artikel";
public Artikel() { }
public Artikel(string row, int nr)
{
if (nr == 0) return; //ERSTE ZEILE IGNORIEREN.
string[] zeileData = row.Split(';');
this.Nummer = Convert.ToInt32(zeileData[1]);
this.Bezeichnung = zeileData[3];
this.Short = zeileData[4];
}
public static Artikel GetArtikel(int? artikelNr)
{
DatenbankConnection.GetConnection().Open();
Artikel result = new Artikel();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where nummer = {artikelNr}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = new Artikel(reader);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public static List<Artikel> GetArtikelList()
{
DatenbankConnection.GetConnection().Open();
List<Artikel> resultList = new List<Artikel>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Artikel(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static int SaveList(List<Artikel> artlist)
{
DatenbankConnection.GetConnection().Open();
int result = 0;
foreach (Artikel art in artlist)
{
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (art.ArtikelID.HasValue & art.ArtikelID != 0)
{
command.CommandText = $"update {TABLE} set nummer = :p1, bezeichnung = :p2, short = :p3, nachwaesche = :p4, muellwaesche = :p5, last_reset = :p6, kategorie = :p7 where artikel_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.artikel_seq')";
art.ArtikelID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7)";
}
command.Parameters.AddWithValue("p0", art.ArtikelID);
command.Parameters.AddWithValue("p1", art.Nummer);
command.Parameters.AddWithValue("p2", string.IsNullOrEmpty(art.Bezeichnung) ? (object)DBNull.Value : art.Bezeichnung);
command.Parameters.AddWithValue("p3", string.IsNullOrEmpty(art.Short) ? (object)DBNull.Value : art.Short);
command.Parameters.AddWithValue("p4", art.Nachwaesche);
command.Parameters.AddWithValue("p5", art.Muellwaesche);
command.Parameters.AddWithValue("p6", art.LastReset.HasValue ? art.LastReset.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p7", (int)art.Kategorie);
command.ExecuteNonQuery();
result++;
}
//result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
int result = 0;
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (this.ArtikelID.HasValue & this.ArtikelID != 0)
{
command.CommandText = $"update {TABLE} set nummer = :p1, bezeichnung = :p2, short = :p3, nachwaesche = :p4, muellwaesche = :p5, last_reset = :p6, kategorie = :p7 where artikel_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.artikel_seq')";
this.ArtikelID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7)";
}
command.Parameters.AddWithValue("p0", this.ArtikelID);
command.Parameters.AddWithValue("p1", this.Nummer);
command.Parameters.AddWithValue("p2", string.IsNullOrEmpty(this.Bezeichnung) ? (object)DBNull.Value : this.Bezeichnung);
command.Parameters.AddWithValue("p3", string.IsNullOrEmpty(this.Short) ? (object)DBNull.Value : this.Short);
command.Parameters.AddWithValue("p4", this.Nachwaesche);
command.Parameters.AddWithValue("p5", this.Muellwaesche);
command.Parameters.AddWithValue("p6", this.LastReset.HasValue ? this.LastReset.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p7", (int)this.Kategorie);
result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
public Artikel(NpgsqlDataReader reader)
{
this.ArtikelID = reader.GetInt32(0);
this.Nummer = reader.GetInt32(1);
this.Bezeichnung = reader.IsDBNull(2) ? string.Empty : reader.GetString(2);
this.Short = reader.IsDBNull(3) ? string.Empty : reader.GetString(3);
this.Nachwaesche = reader.GetInt32(4);
this.Muellwaesche = reader.GetInt32(5);
this.LastReset = reader.IsDBNull(6) ? null : (DateTime?)reader.GetDateTime(6);
this.Kategorie = (ArtikelKategorie)reader.GetInt16(7);
}
[OLVIgnore]
public int? ArtikelID { get; set; }
[OLVColumn("ArtNr.", DisplayIndex = 0, TextAlign = System.Windows.Forms.HorizontalAlignment.Right)]
public int Nummer { get; set; }
[OLVColumn("Bezeichnung", DisplayIndex = 1)]
public string Bezeichnung { get; set; }
[OLVColumn("Abkürzung", DisplayIndex = 2)]
public string Short { get; set; }
[OLVColumn("Nachwäsche", DisplayIndex = 3, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public int Nachwaesche { get; set; }
[OLVColumn("Müll", DisplayIndex = 4, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public int Muellwaesche { get; set; }
[OLVColumn("Letzter Reset", DisplayIndex = 5, AspectToStringFormat = "{0:d}", TextAlign = System.Windows.Forms.HorizontalAlignment.Right)]
public DateTime? LastReset { get; set; }
[OLVColumn("Kategorie", DisplayIndex = 6)]
public ArtikelKategorie Kategorie { get; set; }
private string _reset;
[OLVColumn("Reset", DisplayIndex = 7)]
public string Reset
{
get
{
if (Nachwaesche > 0)
return _reset = "Reset";
else
return _reset = string.Empty; // Alternativwert, wenn Bedingung nicht erfüllt
}
set { }
}
}
}

123
Aufgabe.cs Normal file
View File

@ -0,0 +1,123 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Profile;
using System.Windows.Forms.PropertyGridInternal;
namespace DatenDB
{
public enum Kategorie
{
Allgemein = 0,
Fahrer = 1,
Intern = 2,
Waschstrasse = 3
}
public class Aufgabe
{
//AUFGABE TABLE IN DB INTEGRIEREN
private static string TABLE = "kundenverwaltung.aufgabe";
public static string COLUMNS = "aufgabe_id, bezeichnung, beschreibung, kategorie, farbe";
public Aufgabe()
{
}
public static Aufgabe GetAufgabe(string bezeichnung, int? id)
{
DatenbankConnection.GetConnection().Open();
Aufgabe result = new Aufgabe();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (!string.IsNullOrEmpty(bezeichnung)) command.CommandText = $"select {COLUMNS} from {TABLE} where bezeichnung = '{bezeichnung}'";
if (id != null) command.CommandText = $"select {COLUMNS} from {TABLE} where aufgabe_id = {id}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = new Aufgabe(reader);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public static int GetAufgabeID(string text)
{
DatenbankConnection.GetConnection().Open();
int result = 0;
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select aufgabe_id from {TABLE} where bezeichnung = '{text}'";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = reader.GetInt32(0);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public static List<Aufgabe> GetList(int? aufgabekat)
{
DatenbankConnection.GetConnection().Open();
List<Aufgabe> resultList = new List<Aufgabe>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if(aufgabekat != null) command.CommandText = $"select {COLUMNS} from {TABLE} where kategorie = {aufgabekat} order by aufgabe_id";
else command.CommandText = $"select {COLUMNS} from {TABLE} order by aufgabe_id";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Aufgabe(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (this.AufgabeID.HasValue & this.AufgabeID != 0)
{
command.CommandText = $"update {TABLE} set bezeichnung = :p1, beschreibung = :p2, kategorie = :p3, farbe = :p4 WHERE aufgabe_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.aufgabe_seq')";
this.AufgabeID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4)";
}
command.Parameters.AddWithValue("p0", this.AufgabeID);
command.Parameters.AddWithValue("p1", string.IsNullOrEmpty(this.Bezeichnung) ? (object)DBNull.Value : this.Bezeichnung);
command.Parameters.AddWithValue("p2", string.IsNullOrEmpty(this.Beschreibung) ? (object)DBNull.Value : this.Beschreibung);
command.Parameters.AddWithValue("p3", (int)this.Kategorie);
command.Parameters.AddWithValue("p4", (string)HexConverter(this.Farbe, string.Empty));
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
public Aufgabe(NpgsqlDataReader reader)
{
this.AufgabeID = reader.GetInt32(0);
this.Bezeichnung = reader.IsDBNull(1) ? string.Empty : reader.GetString(1);
this.Beschreibung = reader.IsDBNull(2) ? string.Empty : reader.GetString(2);
this.Kategorie = reader.IsDBNull(3) ? Kategorie.Fahrer : (Kategorie)reader.GetInt16(3);
this.Farbe = reader.IsDBNull(4) ? Color.FromArgb(1, 53, 101) : (Color)HexConverter(Color.FromArgb(1, 53, 101), reader.GetString(4));
}
public int? AufgabeID { get; set; }
public string Bezeichnung { get; set; }
public string Beschreibung { get; set; }
public Kategorie Kategorie { get; set; }
public Color Farbe { get; set; }
private static object HexConverter(Color c, string s)
{
ColorConverter cc = new ColorConverter();
if (string.IsNullOrEmpty(s)) { s = "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"); return s; }
else { c = (Color)cc.ConvertFromString(s); return c; }
}
}
}

402
Auftrag.cs Normal file
View File

@ -0,0 +1,402 @@
using BrightIdeasSoftware;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public enum AuftragStatus
{
Abgeholt = 0,
Aufgelegt = 1,
Finisching = 2,
Herrichten = 3,
Vorbereitet = 4,
Fertig = 7,
Ausgeliefert = 8,
AufAbruf = 9
}
public enum AuftragTyp
{
Unbekannt = 0,
Standart = 1,
Sonder = 2
}
public class Auftrag
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
public const string COLUMNS = "auftrag_id, benutzer_id, aufgabe_id, kunde_id, zusatz, liefertag, gedruckt, gedruckt_von, erledigt, erledigt_von, erstellt, erstellt_von, status, tour_id, container_dirt, maschine_id, container_clean, typ";
private const string TABLE = "kundenverwaltung.auftrag";
public const string ASPECTS = "FahrerID,AufgabeID,KundeID,ZusatzInfo,Wann,Gedruckt,Erledigt,Erstellt von,Erstellt Am";
public Auftrag()
{
}
public static List<Auftrag> GetAuftragList(string s, Auftrag auftrag)
{
int? aID = null;
int? mID = null;
//Get MaschineID und AuftragID für Aufträge vor und nach Auftrag
if (auftrag != null)
{
mID = auftrag.MaschineID;
aID = auftrag.AuftragID;
}
//Get AufgabeID für Anzeige von Standerhöhungen
if (s == "STH") aID = (int)Aufgabe.GetAufgabe(s, null).AufgabeID;
DatenbankConnection.GetConnection().Open();
List<Auftrag> resultList = new List<Auftrag>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (s == "Expedit") command.CommandText = $"select {COLUMNS} from {TABLE} where status = 3 order by liefertag asc";
if (s == string.Empty) command.CommandText = $"select {COLUMNS} from {TABLE} where gedruckt is null and erledigt is null";
if (s == "davor") command.CommandText = $"select {COLUMNS} from {TABLE} where maschine_id = {mID} and auftrag_id < {aID} order by liefertag asc limit 3";
if (s == "danach") command.CommandText = $"select {COLUMNS} from {TABLE} where maschine_id = {mID} and auftrag_id > {aID} order by liefertag asc limit 3";
if (s == "STH") command.CommandText = $"select {COLUMNS} from {TABLE} where status = 3 and aufgabe_id = {aID} order by liefertag";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Auftrag(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static List<Auftrag> GetAuftragListToday(DateTime produktion)
{
DatenbankConnection.GetConnection().Open();
List<Auftrag> resultList = new List<Auftrag>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where typ = 1 and erstellt::date = '{produktion.Date}' or typ = 1 and status < 7 order by liefertag asc";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Auftrag(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static List<Auftrag> GetAuftragStatsListToday(DateTime produktion)
{
DatenbankConnection.GetConnection().Open();
List<Auftrag> resultList = new List<Auftrag>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where typ = 1 and erstellt::date = '{produktion.Date}' order by liefertag asc";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Auftrag(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static List<Auftrag> GetExpeditLists(int? typ)
{
DatenbankConnection.GetConnection().Open();
List<Auftrag> resultList = new List<Auftrag>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (typ == null) command.CommandText = $"select {COLUMNS} from {TABLE} where status <= 7 order by status desc, liefertag asc";
else if (typ <= 2) command.CommandText = $"select {COLUMNS} from {TABLE} where typ = {typ} and status < 7 order by status desc, liefertag asc";
else command.CommandText = $"select {COLUMNS} from {TABLE} where status = {typ} order by status desc, liefertag asc";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Auftrag(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static Auftrag GetAuftrag(int? auftragID)
{
DatenbankConnection.GetConnection().Open();
Auftrag result = new Auftrag();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where auftrag_id = {auftragID}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = new Auftrag(reader);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public static Auftrag GetLastAuftrag(int? benutzerID)
{
DatenbankConnection.GetConnection().Open();
Auftrag result = new Auftrag();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where erstellt_von = {benutzerID} order by erstellt desc limit 1";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = new Auftrag(reader);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public bool FindeAuftrag(Auftrag auftrag)
{
int result = 0;
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select auftrag_id from {TABLE} where kunde_id = {auftrag.KundeID} and erstellt::date = '{auftrag.Erstellt.Value.Date}' and liefertag = '{auftrag.Liefertag}'";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = reader.GetInt16(0);
reader.Close();
DatenbankConnection.GetConnection().Close();
if(result > 0) return true;
else return false;
}
public Auftrag(NpgsqlDataReader reader)
{
this.AuftragID = reader.GetInt32(0);
this.ArbeiterID = reader.IsDBNull(1) ? null : (int?)reader.GetInt32(1);
this.AufgabeID = reader.IsDBNull(2) ? null : (int?)reader.GetInt32(2);
this.KundeID = reader.GetInt32(3);
this.ZusatzInfo = reader.IsDBNull(4) ? string.Empty : reader.GetString(4);
this.Liefertag = reader.GetDateTime(5);
this.Gedruckt = reader.IsDBNull(6) ? null : (DateTime?)reader.GetDateTime(6);
this.GedrucktVon = reader.IsDBNull(7) ? null : (int?)reader.GetInt32(7);
this.Erledigt = reader.IsDBNull(8) ? null : (DateTime?)reader.GetDateTime(8);
this.ErledigtVon = reader.IsDBNull(9) ? null : (int?)reader.GetInt32(9);
this.Erstellt = reader.IsDBNull(10) ? null : (DateTime?)reader.GetDateTime(10);
this.ErstelltVon = reader.GetInt32(11);
this.Status = (AuftragStatus)reader.GetInt32(12);
this.TourID = reader.IsDBNull(13) ? null : (int?)reader.GetInt32(13);
this.Container = reader.IsDBNull(14) ? 0 : reader.GetInt32(14);
this.MaschineID = reader.IsDBNull(15) ? null : (int?)reader.GetInt32(15);
this.ContainerClean = reader.IsDBNull(16) ? 0 : reader.GetInt32(16);
this.Typ =reader.IsDBNull(17) ? AuftragTyp.Unbekannt : (AuftragTyp)reader.GetInt32(17);
}
/// <summary>
/// CheckBoxen zur Auftragsauswahl als erste Spalte.
/// </summary>
[OLVColumn("Auswählen", CheckBoxes = true, DisplayIndex = 0)]
public bool IsChecked { get; set; }
/// <summary>
/// Liefertag mit ausgeschriebenen Tag als zweite Spalte.
/// </summary>
[OLVColumn("Liefertag", DisplayIndex = 2, AspectToStringFormat = "{0:ddd dd.MM.}")]
public DateTime Liefertag { get; set; }
/// <summary>
/// Die Aufgabe (STV, STH, INV) wird angezeigt wenn vorhanden.
/// </summary>
private string _auftragaufgabe;
[OLVColumn("Aufgabe", DisplayIndex = 6, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public string AuftragAufgabe
{
get
{
if (this.Typ == AuftragTyp.Sonder) return _auftragaufgabe = Aufgabe.GetAufgabe(null, AufgabeID).Bezeichnung;
else return null;
}
}
/// <summary>
/// Der Status wird angezeigt.
/// </summary>
[OLVColumn("Status", DisplayIndex = 5)]
public AuftragStatus Status { get; set; }
/// <summary>
/// Der Kundename wird angezeigt
/// </summary>
private string _kundename;
[OLVColumn("Kunde", DisplayIndex = 1)]
public string Kundename
{
get
{
if (string.IsNullOrWhiteSpace(Kunde.GetKunde(null, KundeID, null).Suchtext)) return _kundename = Kunde.GetKunde(null, KundeID, null).KundeName;
else return _kundename = Kunde.GetKunde(null, KundeID, null).Suchtext;
}
set { }
}
/// <summary>
/// Containeranzahl schmutzig
/// </summary>
[OLVColumn("schmutzig", DisplayIndex = 3, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public int Container { get; set; }
/// <summary>
/// Containeranzahl sauber
/// </summary>
[OLVColumn("sauber", DisplayIndex = 4, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public int ContainerClean { get; set; }
/// <summary>
/// Die "Erstellt von" Spalte mit Datum wird erstellt
/// </summary>
private string _auftragerstellt;
[OLVColumn("Erstellt", DisplayIndex = 7)]
public string AuftragErstellt
{
get
{
if (this.Erstellt != null) return _auftragerstellt = Benutzer.GetBenutzer(null, this.ErstelltVon).BenutzerName + " von " + this.Erstellt.ToString();
else return null;
}
}
/// <summary>
/// Die "Gedruckt von" Spalte mit Datum wird erstellt
/// </summary>
private string _auftraggedruckt;
[OLVColumn("Gedruckt", DisplayIndex = 8)]
public string AuftragGedruckt
{
get
{
if(this.Gedruckt != null) return _auftraggedruckt = Benutzer.GetBenutzer(null, this.GedrucktVon).BenutzerName + " von " + this.Gedruckt.ToString();
else return null;
}
}
/// <summary>
/// Die "Erledigt von" Spalte mit Datum wird erstellt
/// </summary>
private string _auftragerledigt;
[OLVColumn("Erledigt", DisplayIndex = 9)]
public string AuftragErledigt
{
get
{
if (this.Erledigt != null) return _auftragerledigt = Benutzer.GetBenutzer(null, this.ErledigtVon).BenutzerName + " von " + this.Erledigt.ToString();
else return null;
}
}
private string _fertig;
[OLVColumn("Abschließen", DisplayIndex = 10)]
public string Fertig
{
get
{
if(Typ == AuftragTyp.Sonder)
{
if (Status >= AuftragStatus.Fertig) return _fertig = string.Empty;
else return _fertig = "Auftrag abschließen";
}
else
{
if (Status == AuftragStatus.Vorbereitet) return _fertig = "Auftrag abschließen";
else
{
return _fertig = string.Empty; ;
}
}
}
}
/// <summary>
/// Zusatz und Typ Properties werden ausgeblendet.
/// </summary>
[OLVColumn("Zusatz", IsVisible = false)]
public string ZusatzInfo { get; set; }
[OLVColumn("Typ", IsVisible = false)]
public AuftragTyp Typ { get; set; }
/// <summary>
/// Properties von ObjectListView ignoriert.
/// </summary>
[OLVIgnore]
public int? AuftragID { get; set; }
[OLVIgnore]
public int? GedrucktVon { get; set; }
[OLVIgnore]
public DateTime? Gedruckt { get; set; }
[OLVIgnore]
public DateTime? Erledigt { get; set; }
[OLVIgnore]
public int? ErledigtVon { get; set; }
[OLVIgnore]
public DateTime? Erstellt { get; set; }
[OLVIgnore]
public int ErstelltVon { get; set; }
[OLVIgnore]
public int? MaschineID { get; set; }
[OLVIgnore]
public int KundeID { get; set; }
[OLVIgnore]
public int? TourID { get; set; }
/// <summary>
/// BenutzerID des ausführenden Users
/// </summary>
[OLVIgnore]
public int? ArbeiterID { get; set; }
[OLVIgnore]
public int? AufgabeID { get; set; }
public int[] Save()
{
DatenbankConnection.GetConnection().Open();
int[] result = new int[2];
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (this.AuftragID.HasValue & this.AuftragID != 0)
{
command.CommandText = $"update {TABLE} set benutzer_id = :p1, aufgabe_id = :p2, kunde_id = :p3, zusatz = :p4, liefertag = :p5, gedruckt = :p6, gedruckt_von = :p7, erledigt = :p8, erledigt_von = :p9, erstellt = :p10, erstellt_von = :p11, status = :p12, tour_id = :p13, container_dirt = :p14, maschine_id = :p15, container_clean = :p16, typ = :p17 WHERE auftrag_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.auftrag_seq')";
this.AuftragID = result[1] = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9, :p10, :p11, :p12, :p13, :p14, :p15, :p16, :p17)";
}
command.Parameters.AddWithValue("p0", this.AuftragID);
command.Parameters.AddWithValue("p1", this.ArbeiterID.HasValue ? this.ArbeiterID.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p2", this.AufgabeID.HasValue ? this.AufgabeID.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p3", this.KundeID);
command.Parameters.AddWithValue("p4", string.IsNullOrEmpty(this.ZusatzInfo) ? (object)DBNull.Value : this.ZusatzInfo);
command.Parameters.AddWithValue("p5", this.Liefertag);
command.Parameters.AddWithValue("p6", this.Gedruckt.HasValue ? this.Gedruckt.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p7", this.GedrucktVon.HasValue ? this.GedrucktVon.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p8", this.Erledigt.HasValue ? this.Erledigt.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p9", this.ErledigtVon.HasValue ? this.ErledigtVon.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p10", this.Erstellt);
command.Parameters.AddWithValue("p11", this.ErstelltVon);
command.Parameters.AddWithValue("p12", (int)this.Status);
command.Parameters.AddWithValue("p13", this.TourID.HasValue ? this.TourID.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p14", this.Container);
command.Parameters.AddWithValue("p15", this.MaschineID.HasValue ? this.MaschineID.Value : 0);
command.Parameters.AddWithValue("p16", this.ContainerClean);
command.Parameters.AddWithValue("p17", (int)this.Typ);
result[0] = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
}
}

111
AuftragArtikel.cs Normal file
View File

@ -0,0 +1,111 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DatenDB
{
public class AuftragArtikel
{
private static string TABLE = "kundenverwaltung.auftrag_artikel";
private static string COLUMNS = "auftrag_artikel_id, auftrag_id, artikel_nr, artikel_name, anzahl, erledigt";
public Kunde kunde;
public AuftragArtikel()
{
}
public static List<AuftragArtikel> GetList(string auftragnr)
{
DatenbankConnection.GetConnection().Open();
List<AuftragArtikel> resultList = new List<AuftragArtikel>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where auftrag_id = {auftragnr}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new AuftragArtikel(reader, 1));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static AuftragArtikel GetArtikel(int aufartid)
{
DatenbankConnection.GetConnection().Open();
AuftragArtikel result = new AuftragArtikel();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"SELECT * from {TABLE} where auftrag_artikel_id = {aufartid}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = new AuftragArtikel(reader, 1);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if(this.AuftragArtikelID.HasValue & this.AuftragArtikelID != 0)
{
command.CommandText = $"update {TABLE} set auftrag_id = :p1, artikel_nr = :p2, artikel_name = :p3, anzahl = :p4, erledigt = :p5 WHERE auftrag_artikel_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.auftrag_artikel_seq')";
this.AuftragArtikelID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5)";
}
command.Parameters.AddWithValue("p0", this.AuftragArtikelID.Value);
command.Parameters.AddWithValue("p1", this.AuftragID);
command.Parameters.AddWithValue("p2", this.ArtikelNR);
command.Parameters.AddWithValue("p3", string.IsNullOrWhiteSpace(this.ArtikelName) ? (object)DBNull.Value : this.ArtikelName);
command.Parameters.AddWithValue("p4", this.Anzahl);
command.Parameters.AddWithValue("p5", this.Erledigt);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
public AuftragArtikel(NpgsqlDataReader reader, int i)
{
if (i == 1)
{
this.AuftragArtikelID = reader.GetInt32(0);
this.AuftragID = reader.GetInt32(1);
this.ArtikelNR = reader.GetInt32(2);
this.ArtikelName = reader.GetString(3);
this.Anzahl = reader.GetInt32(4);
this.Erledigt = reader.GetBoolean(5);
}
if (i == 2)
{
kunde = new Kunde();
this.ArtikelName = reader.GetString(0);
this.Anzahl = reader.GetInt32(1);
this.kunde.Suchtext = reader.GetString(2);
}
}
public int? AuftragArtikelID { get; set; }
public int? AuftragID { get; set; }
public int ArtikelNR { get; set; }
public string ArtikelName { get; set; }
public int Anzahl { get; set; }
public bool Erledigt { get; set; }
}
}

211
Benutzer.cs Normal file
View File

@ -0,0 +1,211 @@
using BrightIdeasSoftware;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DatenDB
{
public enum BenutzerRolle
{
Verwaltung = 0,
Fahrer = 1,
Admin = 2,
Waschstrasse = 3,
Master = 4,
Expedit = 5,
Frottee = 6,
Flach = 7
}
public class Benutzer
{
// 0 1 2 3 4 5 6 7 8
public const string COLUMNS = "benutzer_id, rolle, passwort, vorname, nachname, schein, gueltig_bis, ist_aktiv, benutzer_name";
private const string TABLE = "kundenverwaltung.benutzer";
public Benutzer()
{
}
public static List<Benutzer> GetList()
{
DatenbankConnection.GetConnection().Open();
List<Benutzer> resultList = new List<Benutzer>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Benutzer(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static List<Benutzer> GetFahrerList()
{
DatenbankConnection.GetConnection().Open();
List<Benutzer> resultList = new List<Benutzer>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where rolle = 'Fahrer' and ist_aktiv is true order by benutzer_id asc";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Benutzer(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static List<Benutzer> GetArbeiterList()
{
DatenbankConnection.GetConnection().Open();
List<Benutzer> resultList = new List<Benutzer>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where ist_aktiv is true and rolle = 'Fahrer' or rolle = 'Verwaltung' or rolle = 'Expedit' order by benutzer_id asc";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Benutzer(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static Benutzer GetBenutzer(string benutzerName, int? benID)
{
DatenbankConnection.GetConnection().Open();
Benutzer benutzer = new Benutzer();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if(!string.IsNullOrEmpty(benutzerName)) command.CommandText = $"select {COLUMNS} from {TABLE} where benutzer_name = '{benutzerName}'";
if(benID != null) command.CommandText = $"select {COLUMNS} from {TABLE} where benutzer_id = {benID}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) benutzer = new Benutzer(reader);
reader.Close();
DatenbankConnection.GetConnection().Close();
return benutzer;
}
/// <summary>
/// Benutzer ID
/// </summary>
[OLVIgnore]
public int? BenutzerID { get; set; }
/// <summary>
/// Rolle des Benutzers
/// </summary>
[OLVColumn("Rolle", DisplayIndex = 4)]
public BenutzerRolle Rolle { get; set; } = BenutzerRolle.Waschstrasse;
/// <summary>
/// Passwort wird von OLV ignoriert
/// </summary>
[OLVIgnore]
public string Passwort { get; set; }
/// <summary>
/// Vorname & Nachname des Benutzers
/// </summary>
[OLVColumn("Vorname", DisplayIndex = 1)]
public string Vorname { get; set; }
[OLVColumn("Name", DisplayIndex = 2)]
public string Nachname { get; set; }
/// <summary>
/// Führerscheinnummer und Ablaufdatum
/// </summary>
[OLVColumn("FührerscheinNr", DisplayIndex = 6, IsVisible = false)]
public int? Schein { get; set; }
[OLVColumn("Ablaufdatum", DisplayIndex = 7, IsVisible = false)]
public DateTime? GueltigBis { get; set; }
/// <summary>
/// Status des Benutzers.
/// </summary>
[OLVColumn("Aktiv", DisplayIndex = 5, CheckBoxes = true)]
public bool Aktiv { get; set; } = true;
/// <summary>
/// Benutzername wird automatisch generiert (Vorname + Nachname in Kleinbuchstaben ohne Leerzeichen)
/// </summary>
[OLVColumn("Benutzername", DisplayIndex = 3)]
public string BenutzerName { get; set; }
public static Benutzer Get(string benutzerName, string passwort)
{
try
{
DatenbankConnection.GetConnection().Open();
}
catch (NpgsqlException)
{
throw new LoginException("Datenbank ist nicht verbunden", -4);
}
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where lower(benutzer_name) = :ben";
command.Parameters.AddWithValue(":ben", benutzerName.ToLower());
NpgsqlDataReader reader = command.ExecuteReader();
Benutzer person = null;
if (reader.Read()) person = new Benutzer(reader);
reader.Close();
DatenbankConnection.GetConnection().Close();
if (person == null) throw new LoginException("Benutzer nicht gefunden!", -1);
else if (string.IsNullOrEmpty(person.Passwort)) throw new LoginException("Benutzer gefunden, Passwort bestätigen", -3);
if (person.Passwort != passwort) throw new LoginException("Passwort ist falsch!", -2);
return person;
} //FEHLERMELDUNG DYNAMISCH GENERIEREN...
public Benutzer(NpgsqlDataReader reader)
{
this.BenutzerID = reader.GetInt32(0);
this.Rolle = reader.IsDBNull(1) ? BenutzerRolle.Verwaltung : (BenutzerRolle)Enum.Parse(typeof(BenutzerRolle), reader.GetString(1));
this.Passwort = reader.IsDBNull(2) ? string.Empty : reader.GetString(2);
this.Vorname = reader.IsDBNull(3) ? string.Empty : reader.GetString(3);
this.Nachname = reader.IsDBNull(4) ? string.Empty : reader.GetString(4);
this.Schein = reader.IsDBNull(5) ? null : (int?)reader.GetInt32(5);
this.GueltigBis = reader.IsDBNull(6) ? null : (DateTime?)reader.GetDateTime(6);
this.Aktiv = reader.IsDBNull(7) ? true : reader.GetBoolean(7);
this.BenutzerName = reader.IsDBNull(8) ? string.Empty : reader.GetString(8);
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (this.BenutzerID.HasValue & this.BenutzerID != 0)
{
command.CommandText = $"update {TABLE} set rolle = :p1, passwort = :p2, vorname = :p3, nachname = :p4, schein = :p5, gueltig_bis = :p6, ist_aktiv = :p7, benutzer_name = :p8 where benutzer_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.benutzer_seq')";
this.BenutzerID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8)";
}
command.Parameters.AddWithValue("p0", this.BenutzerID);
command.Parameters.AddWithValue("p1", this.Rolle.ToString());
command.Parameters.AddWithValue("p2", string.IsNullOrEmpty(this.Passwort) ? (object)DBNull.Value : this.Passwort);
command.Parameters.AddWithValue("p3", string.IsNullOrEmpty(this.Vorname) ? (object)DBNull.Value : this.Vorname);
command.Parameters.AddWithValue("p4", string.IsNullOrEmpty(this.Nachname) ? (object)DBNull.Value : this.Nachname);
command.Parameters.AddWithValue("p5", this.Schein.HasValue ? this.Schein.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p6", this.Rolle == BenutzerRolle.Fahrer ? this.GueltigBis.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p7", this.Aktiv);
command.Parameters.AddWithValue("p8", string.IsNullOrEmpty(this.BenutzerName) ? (object)DBNull.Value : this.BenutzerName);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
}
}

68
Berechnungen.cs Normal file
View File

@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public class Berechnungen
{
public Berechnungen()
{
}
public static double[] GetBewertung(double kndums, int betten, double gesamtumsatz, double variablekosten, double[] kosten, bool istmiete)
{
double[] bewertung = new double[5];
bewertung[0] = kndums / gesamtumsatz; //UMSATZANTEIL
bewertung[1] = variablekosten * -1 * bewertung[0] / betten; //KOSTENANTEIL
bewertung[2] = kndums / betten; //UMSATZ/GAST
bewertung[3] = bewertung[2] - bewertung[1]; //BEWERTUNG IN EURO
if (istmiete) bewertung[4] = bewertung[3] / kosten[2];
else bewertung[4] = bewertung[3] / kosten[1];
return bewertung;
}
public static double[] Differenz_berechnen(double zahl1, double zahl2)
{
double[] diff = new double[2];
diff[0] = zahl1 - zahl2; //DIFFERENZ IN EUR
if (zahl2 != 0) diff[1] = diff[0] / zahl2;
else diff[1] = 1.00; //DIFFERENZ IN %
return diff;
}
public static double[] Kostensummen(List<Kosten> kostenliste)
{
double[] results = new double[4];
foreach(Kosten kosten in kostenliste)
{
if (kosten.Kategorie == KostenKat.FixLohn) results[0] += (double)kosten.Betrag;
if (kosten.Kategorie == KostenKat.FixMiete) results[1] += (double)kosten.Betrag;
if (kosten.Kategorie == KostenKat.Variabel) results[2] += (double)kosten.Betrag;
if (kosten.Kategorie == KostenKat.Rest) results[3] += (double)kosten.Betrag;
}
for (int i = 0; i < results.Length; i++)
{
results[i] = results[i] * -1;
}
return results;
}
public static DateTime GetNextWeekday(int liefertag)
{
DateTime dt;
if ((int)DateTime.Today.DayOfWeek == liefertag) { dt = DateTime.Today.AddDays(1); }
else { dt = DateTime.Today; }
int daysUntilLiefertag = ((int)liefertag - (int)dt.DayOfWeek + 7) % 7;
return dt.AddDays(daysUntilLiefertag);
}
}
}

23
ClassChart.cs Normal file
View File

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public class ClassChart
{
public ClassChart()
{
}
public static ClassChart FillChart(int? kndid)
{
ClassChart chart = new ClassChart();
return chart;
}
}
}

27
DatenbankConnection.cs Normal file
View File

@ -0,0 +1,27 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Management;
namespace DatenDB
{
static class DatenbankConnection
{
private static NpgsqlConnection connection = null;
public static NpgsqlConnection GetConnection()
{
if (connection == null)
{
connection = new NpgsqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
}
return connection;
}
}
}

View File

@ -12,6 +12,23 @@
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -32,22 +49,87 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<StartupObject>Deckungsbeitrag.Program</StartupObject>
</PropertyGroup>
<ItemGroup>
<Reference Include="AForge, Version=2.2.5.0, Culture=neutral, PublicKeyToken=c1db6ff4eaa06aeb, processorArchitecture=MSIL">
<HintPath>packages\AForge.2.2.5\lib\AForge.dll</HintPath>
</Reference>
<Reference Include="AForge.Video, Version=2.2.5.0, Culture=neutral, PublicKeyToken=cbfb6e07d173c401, processorArchitecture=MSIL">
<HintPath>packages\AForge.Video.2.2.5\lib\AForge.Video.dll</HintPath>
</Reference>
<Reference Include="AForge.Video.DirectShow, Version=2.2.5.0, Culture=neutral, PublicKeyToken=61ea4348d43881b7, processorArchitecture=MSIL">
<HintPath>packages\AForge.Video.DirectShow.2.2.5\lib\AForge.Video.DirectShow.dll</HintPath>
</Reference>
<Reference Include="HarfBuzzSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>packages\HarfBuzzSharp.8.3.0.1\lib\net462\HarfBuzzSharp.dll</HintPath>
</Reference>
<Reference Include="ListViewPrinter, Version=2.5.0.20272, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>bin\Debug\ListViewPrinter.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Bcl.AsyncInterfaces.9.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.HashCode, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Bcl.HashCode.6.0.0\lib\net462\Microsoft.Bcl.HashCode.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Npgsql, Version=4.1.14.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7, processorArchitecture=MSIL">
<HintPath>packages\Npgsql.4.1.14\lib\net461\Npgsql.dll</HintPath>
</Reference>
<Reference Include="ObjectListView, Version=2.9.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>packages\ObjectListView.Updated.2.9.3\lib\net40\ObjectListView.dll</HintPath>
</Reference>
<Reference Include="Spire.Barcode, Version=7.3.5.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL">
<HintPath>packages\Spire.Barcode.7.3.5\lib\net48\Spire.Barcode.dll</HintPath>
<Reference Include="Spire.Barcode, Version=7.4.1.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL">
<HintPath>packages\Spire.Barcode.7.4.1\lib\net48\Spire.Barcode.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Collections.Immutable.9.0.0\lib\net462\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Diagnostics.DiagnosticSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Diagnostics.DiagnosticSource.9.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.IO.Pipelines.9.0.0\lib\net462\System.IO.Pipelines.dll</HintPath>
</Reference>
<Reference Include="System.Management" />
<Reference Include="System.Memory, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Memory.4.6.3\lib\net462\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Text.Encodings.Web.9.0.0\lib\net462\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Text.Json.9.0.0\lib\net462\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Channels, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Threading.Channels.9.0.0\lib\net462\System.Threading.Channels.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Windows.Forms.DataVisualization" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
@ -62,20 +144,67 @@
<HintPath>..\..\..\Users\kilia\Downloads\USB-Barcode-Scanner.dll</HintPath>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="zxing, Version=0.16.9.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL">
<HintPath>packages\ZXing.Net.0.16.9\lib\net48\zxing.dll</HintPath>
<Reference Include="zxing, Version=0.16.11.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL">
<HintPath>packages\ZXing.Net.0.16.11\lib\net48\zxing.dll</HintPath>
</Reference>
<Reference Include="zxing.presentation, Version=0.16.9.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL">
<HintPath>packages\ZXing.Net.0.16.9\lib\net48\zxing.presentation.dll</HintPath>
<Reference Include="zxing.presentation, Version=0.16.11.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL">
<HintPath>packages\ZXing.Net.0.16.11\lib\net48\zxing.presentation.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Artikel.cs" />
<Compile Include="Aufgabe.cs" />
<Compile Include="Auftrag.cs" />
<Compile Include="AuftragArtikel.cs" />
<Compile Include="Benutzer.cs" />
<Compile Include="Berechnungen.cs" />
<Compile Include="ClassChart.cs" />
<Compile Include="DatenbankConnection.cs" />
<Compile Include="Fach.cs" />
<Compile Include="FahrerAuftrag.cs" />
<Compile Include="Fehlermeldungen.cs" />
<Compile Include="FormArtikelVW.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormArtikelVW.Designer.cs">
<DependentUpon>FormArtikelVW.cs</DependentUpon>
</Compile>
<Compile Include="FormAufgabeVW.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormAufgabeVW.Designer.cs">
<DependentUpon>FormAufgabeVW.cs</DependentUpon>
</Compile>
<Compile Include="FormAuftragDetail.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormAuftragDetail.Designer.cs">
<DependentUpon>FormAuftragDetail.cs</DependentUpon>
</Compile>
<Compile Include="FormBenutzerVW.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormBenutzerVW.Designer.cs">
<DependentUpon>FormBenutzerVW.cs</DependentUpon>
</Compile>
<Compile Include="FormFehlmengeCount.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormFehlmengeCount.Designer.cs">
<DependentUpon>FormFehlmengeCount.cs</DependentUpon>
</Compile>
<Compile Include="FormHelp.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormHelp.Designer.cs">
<DependentUpon>FormHelp.cs</DependentUpon>
</Compile>
<Compile Include="FormKamera.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormKamera.Designer.cs">
<DependentUpon>FormKamera.cs</DependentUpon>
</Compile>
<Compile Include="FormMSAuswahl.cs">
<SubType>Form</SubType>
</Compile>
@ -160,13 +289,19 @@
<Compile Include="FormProgrammauswahl.Designer.cs">
<DependentUpon>FormProgrammauswahl.cs</DependentUpon>
</Compile>
<Compile Include="FormWaschverlauf.cs">
<Compile Include="FromAuftragVW.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormWaschverlauf.Designer.cs">
<DependentUpon>FormWaschverlauf.cs</DependentUpon>
<Compile Include="FromAuftragVW.Designer.cs">
<DependentUpon>FromAuftragVW.cs</DependentUpon>
</Compile>
<Compile Include="Funktionen.cs" />
<Compile Include="Help.cs" />
<Compile Include="Kosten.cs" />
<Compile Include="Kunde.cs" />
<Compile Include="KundeArtikel.cs" />
<Compile Include="LoginException.cs" />
<Compile Include="Maschine.cs" />
<Compile Include="MeinFilterMenu.cs" />
<Compile Include="FormMain.cs">
<SubType>Form</SubType>
@ -180,21 +315,26 @@
<Compile Include="FormNeuDeckungsbeitrag.Designer.cs">
<DependentUpon>FormNeuDeckungsbeitrag.cs</DependentUpon>
</Compile>
<Compile Include="Import.cs">
<Compile Include="FormImport.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Import.Designer.cs">
<DependentUpon>Import.cs</DependentUpon>
<Compile Include="FormImport.Designer.cs">
<DependentUpon>FormImport.cs</DependentUpon>
</Compile>
<Compile Include="ListViewColumnSorter.cs" />
<Compile Include="OLVBewertung.cs" />
<Compile Include="OLVKundenumsatz.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="KundeDaten.cs">
<Compile Include="FormKundeVW.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KundeDaten.designer.cs">
<DependentUpon>KundeDaten.cs</DependentUpon>
<Compile Include="FormKundeVW.designer.cs">
<DependentUpon>FormKundeVW.cs</DependentUpon>
</Compile>
<Compile Include="Report.cs" />
<Compile Include="Sortiment.cs" />
<Compile Include="SPSDaten.cs" />
<Compile Include="UCArtikel.cs">
<SubType>UserControl</SubType>
</Compile>
@ -207,9 +347,30 @@
<Compile Include="UCAuftrag.Designer.cs">
<DependentUpon>UCAuftrag.cs</DependentUpon>
</Compile>
<Compile Include="Umsatz.cs" />
<Compile Include="Views.cs" />
<Compile Include="WProgramm.cs" />
<EmbeddedResource Include="FormArtikelVW.resx">
<DependentUpon>FormArtikelVW.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormAufgabeVW.resx">
<DependentUpon>FormAufgabeVW.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormAuftragDetail.resx">
<DependentUpon>FormAuftragDetail.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormBenutzerVW.resx">
<DependentUpon>FormBenutzerVW.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormFehlmengeCount.resx">
<DependentUpon>FormFehlmengeCount.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormHelp.resx">
<DependentUpon>FormHelp.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormKamera.resx">
<DependentUpon>FormKamera.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormMSAuswahl.resx">
<DependentUpon>FormMSAuswahl.cs</DependentUpon>
</EmbeddedResource>
@ -258,11 +419,11 @@
<EmbeddedResource Include="FormProgrammauswahl.resx">
<DependentUpon>FormProgrammauswahl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormWaschverlauf.resx">
<DependentUpon>FormWaschverlauf.cs</DependentUpon>
<EmbeddedResource Include="FromAuftragVW.resx">
<DependentUpon>FromAuftragVW.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Import.resx">
<DependentUpon>Import.cs</DependentUpon>
<EmbeddedResource Include="FormImport.resx">
<DependentUpon>FormImport.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
@ -274,8 +435,8 @@
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="KundeDaten.resx">
<DependentUpon>KundeDaten.cs</DependentUpon>
<EmbeddedResource Include="FormKundeVW.resx">
<DependentUpon>FormKundeVW.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UCArtikel.resx">
<DependentUpon>UCArtikel.cs</DependentUpon>
@ -297,12 +458,6 @@
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DatenDB\DatenDB.csproj">
<Project>{be2d4605-a60c-4cc5-a423-edd9cda63f2a}</Project>
<Name>DatenDB</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Resources\Close_red_16x.png" />
</ItemGroup>
@ -310,7 +465,29 @@
<None Include="Resources\Checkmark_blue_16x.png" />
</ItemGroup>
<ItemGroup>
<Content Include="ILLink\ILLink.Descriptors.LibraryBuild.xml" />
<Content Include="Resources\QR.png" />
<None Include="Resources\question-sign_icon-icons.com_73445.png" />
<None Include="Resources\UpdatedScript_16x.png" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.8 %28x86 und x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\build\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\build\Microsoft.Extensions.Logging.Abstractions.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\build\Microsoft.Extensions.Logging.Abstractions.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\build\Microsoft.Extensions.Logging.Abstractions.targets'))" />
</Target>
</Project>

View File

@ -5,8 +5,6 @@ VisualStudioVersion = 17.3.32922.545
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Deckungsbeitrag", "Deckungsbeitrag.csproj", "{1CDFBC6A-240A-4D59-9F9E-35041D9ACCC6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatenDB", "..\DatenDB\DatenDB.csproj", "{BE2D4605-A60C-4CC5-A423-EDD9CDA63F2A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -17,10 +15,6 @@ Global
{1CDFBC6A-240A-4D59-9F9E-35041D9ACCC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1CDFBC6A-240A-4D59-9F9E-35041D9ACCC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1CDFBC6A-240A-4D59-9F9E-35041D9ACCC6}.Release|Any CPU.Build.0 = Release|Any CPU
{BE2D4605-A60C-4CC5-A423-EDD9CDA63F2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BE2D4605-A60C-4CC5-A423-EDD9CDA63F2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BE2D4605-A60C-4CC5-A423-EDD9CDA63F2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BE2D4605-A60C-4CC5-A423-EDD9CDA63F2A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

166
Fach.cs Normal file
View File

@ -0,0 +1,166 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public enum Liefertag
{
SO = 0,
MO = 1,
DI = 2,
MI = 3,
DO = 4,
FR = 5,
SA = 6,
STV = 7
}
public class Fach
{
private const string COLUMNS = "fach_id, maschine_id, kunde_id, wprogramm_id, gewicht, extra, gewaschen, extrakunde_id, liefertag, auftrag_id, extraauftrag_id, tischsummary, containersummary";
private const string TABLE = "kundenverwaltung.fach";
public static List<Fach> GetVerlauf(int? mID)
{
DatenbankConnection.GetConnection().Open();
List<Fach> resultlist = new List<Fach>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where maschine_id = {mID}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultlist.Add(new Fach(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultlist;
}
public static List<int> GetTischSummary(int? mID)
{
DatenbankConnection.GetConnection().Open();
List<int> resultlist = new List<int>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select distinct(auftrag_id) from {TABLE} where maschine_id = {mID} and fach_id > (select max(fach_id) from {TABLE} where tischsummary = true) order by auftrag_id asc";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultlist.Add(reader.GetInt32(0));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultlist;
}
public static List<Fach> GetInhalt(int? mID, int fachzahl)
{
DatenbankConnection.GetConnection().Open();
List<Fach> resultlist = new List<Fach>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where maschine_id = {mID} order by gewaschen desc Limit {fachzahl}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultlist.Add(new Fach(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultlist;
}
public static Fach GetFach(int? ms, int fach)
{
DatenbankConnection.GetConnection().Open();
Fach result = new Fach();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (ms == 1) command.CommandText = $"select fach_id, maschine_id, kunde_id, wprogramm_id, gewicht, extra, gewaschen, extrakunde_id, liefertag, auftrag_id, extraauftrag_id from kundenverwaltung.inhalt_ws1 where row_number = {fach}";
if (ms == 2) command.CommandText = $"select fach_id, maschine_id, kunde_id, wprogramm_id, gewicht, extra, gewaschen, extrakunde_id, liefertag, auftrag_id, extraauftrag_id from kundenverwaltung.inhalt_ws2 where row_number = {fach}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = new Fach(reader);
reader.Close();
}
DatenbankConnection.GetConnection().Close();
return result;
}
public int? FachID { get; set; }
public int MaschineID { get; set; }
public int KundeID { get; set; }
public int WProgrammID { get; set; }
public double? Gewicht { get; set; }
public DateTime Gewaschen { get; set; }
public int? Extra { get; set; }
public Liefertag Liefertag { get; set; } = Liefertag.MO;
public int? ExtraKundeID { get; set; }
public DateTime? Lieferdatum { get; set; }
public int? AuftragID { get; set; }
public int? ExtraAuftragID { get; set; }
public bool TischSummary { get; set; }
public bool ContainerSummary { get; set; }
public Fach(NpgsqlDataReader reader)
{
this.FachID = reader.GetInt32(0);
this.MaschineID = reader.GetInt32(1);
this.KundeID = reader.GetInt32(2);
this.WProgrammID = reader.GetInt32(3);
this.Gewicht = reader.IsDBNull(4) ? null : (double?)reader.GetDouble(4);
this.Extra = reader.IsDBNull(5) ? null : (int?)reader.GetInt16(5);
this.Gewaschen = reader.GetDateTime(6);
this.ExtraKundeID = reader.IsDBNull(7) ? (int?)null : reader.GetInt32(7);
this.Lieferdatum = reader.IsDBNull(8) ? (DateTime?)null : reader.GetDateTime(8);
this.AuftragID = reader.IsDBNull(9) ? (int?)null : reader.GetInt32(9);
this.ExtraAuftragID = reader.IsDBNull(10) ? (int?)null : reader.GetInt32(10);
if(reader.FieldCount > 11)
{
this.TischSummary = reader.IsDBNull(11) ? false : reader.GetBoolean(11);
this.ContainerSummary = reader.IsDBNull(12) ? false : reader.GetBoolean(12);
}
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (this.FachID.HasValue & this.FachID != 0)
{
command.CommandText = $"update {TABLE} set maschine_id = :p1, kunde_id = :p2, wprogramm_id = :p3, gewicht = :p4, extra = :p5, gewaschen = :p6, extrakunde_id = :p7, liefertag = :p8, auftrag_id = :p9, extraauftrag_id = :p10, tischsummary = :p11, containersummary = :p12 where fach_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.fach_seq')";
this.FachID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9, :p10, :p11, :p12)";
}
command.Parameters.AddWithValue("p0", this.FachID);
command.Parameters.AddWithValue("p1", this.MaschineID);
command.Parameters.AddWithValue("p2", this.KundeID);
command.Parameters.AddWithValue("p3", this.WProgrammID);
command.Parameters.AddWithValue("p4", this.Gewicht.HasValue ? this.Gewicht.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p5", this.Extra.HasValue ? this.Extra.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p6", this.Gewaschen);
command.Parameters.AddWithValue("p7", this.ExtraKundeID.HasValue ? this.ExtraKundeID : (object)DBNull.Value);
command.Parameters.AddWithValue("p8", this.Lieferdatum.HasValue ? this.Lieferdatum : (object)DBNull.Value);
command.Parameters.AddWithValue("p9", this.AuftragID.HasValue ? this.AuftragID.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p10", this.ExtraAuftragID.HasValue ? this.ExtraAuftragID.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p11", this.TischSummary);
command.Parameters.AddWithValue("p12", this.ContainerSummary);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
public Fach()
{
}
}
}

81
FahrerAuftrag.cs Normal file
View File

@ -0,0 +1,81 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public class FahrerAuftrag
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13
private const string COLUMNS = "auftrag_id, fahrer_id, wann, zusatz, kndnr, kndname, aufgabe, beschreibung, gedruckt, gedruckt_von, erledigt, erledigt_von, erstellt, erstellt_von";
private const string TABLE = "kundenverwaltung.fahrer_auftrag";
public const string ASPECTS = "AuftragID,Fahrer,Wann,KundeNummer,Kunde,Aufgabe,Zusatz,Beschreibung,Gedruckt,Erledigt,Erstellt,Am";
public FahrerAuftrag()
{
}
public static List<FahrerAuftrag> GetAuftragList()
{
DatenbankConnection.GetConnection().Open();
List<FahrerAuftrag> resultList = new List<FahrerAuftrag>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new FahrerAuftrag(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
foreach(FahrerAuftrag fahrerAuftrag in resultList)
{
fahrerAuftrag.Fahrer = get_fahrer(fahrerAuftrag.FahrerID);
}
return resultList;
}
public FahrerAuftrag(NpgsqlDataReader reader)
{
this.AuftragID = reader.GetInt32(0);
this.FahrerID = reader.IsDBNull(1) ? null : (int?)reader.GetInt32(1);
this.Wann = reader.GetDateTime(2);
this.Zusatz = reader.IsDBNull(3) ? string.Empty : reader.GetString(3);
this.KundeNummer = reader.GetString(4);
this.Kunde = reader.GetString(5);
this.Aufgabe = reader.GetString(6);
this.Beschreibung = reader.GetString(7);
this.Gedruckt = reader.IsDBNull(8) ? null : (DateTime?)reader.GetDateTime(8);
this.GedrucktVon = reader.IsDBNull(9) ? null : (int?)reader.GetInt32(9);
this.Erledigt = reader.IsDBNull(10) ? null : (DateTime?)reader.GetDateTime(10);
this.ErledigtVon = reader.IsDBNull(11) ? null : (int?)reader.GetInt32(11);
this.Erstellt = reader.IsDBNull(12) ? null : (DateTime?)reader.GetDateTime(12);
this.ErstelltVon = reader.GetInt32(13);
}
public int AuftragID { get; set; }
public string Fahrer { get; set; }
public int? FahrerID { get; set; }
public string KundeNummer { get; set; }
public string Kunde { get; set; }
public string Aufgabe { get; set; }
public string Beschreibung { get; set; }
public DateTime Wann { get; set; }
public string Zusatz { get; set; }
public DateTime? Gedruckt { get; set; }
public int? GedrucktVon { get; set; }
public DateTime? Erledigt { get; set; }
public int? ErledigtVon { get; set; }
public DateTime? Erstellt { get; set; }
public int ErstelltVon { get; set; }
private static string get_fahrer(int? fahrerid)
{
string fahrer = Benutzer.GetBenutzer(null, fahrerid).Vorname + " " + Benutzer.GetBenutzer(null, fahrerid).Nachname;
return fahrer;
}
}
}

230
Fehlermeldungen.cs Normal file
View File

@ -0,0 +1,230 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ZXing;
namespace DatenDB
{
public class Fehlermeldungen
{
public Fehlermeldungen()
{
}
public string NoExtraKunde()
{
string s = "Extra Kunde kann nicht gewählt werden. Um Extra Kunden hinzuzugüfen wähle im vorigen Fenster +Kunde.";
return s;
}
/// <summary>
/// FUNKTIONEN GEBEN DIALOG RESULT RETUR.
/// </summary>
/// <returns>DialogResult</returns>
public DialogResult NoCleanContainer()
{
DialogResult result = DialogResult.Cancel;
string s = $"Der Auftrag kann nicht abgeschlossen werden. Bitte korrigiere die Anzahl der sauberen Container.";
string caption = "ACHTUNG";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Warning;
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
public DialogResult DifferentCleanContainer()
{
DialogResult result = DialogResult.Cancel;
string s = $"Die Anzahl der sauberen Container wurde verändert. Möchtest du die Etiketten neu drucken?";
string caption = "FRAGE";
MessageBoxButtons buttons = MessageBoxButtons.YesNoCancel;
MessageBoxIcon icon = MessageBoxIcon.Question;
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
public DialogResult NoAufgabe()
{
DialogResult result = DialogResult.Cancel;
string s = $"Der Auftrag kann nicht gespeichert werden. Bitte wähl eine Aufgabe aus.";
string caption = "ACHTUNG";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Exclamation;
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
public DialogResult AuftragAusgeliefert()
{
DialogResult result = DialogResult.Cancel;
string s = $"Wurde der Auftrag erfolgreich ausgeliefert?";
string caption = "FRAGE";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
MessageBoxIcon icon = MessageBoxIcon.Question;
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
public DialogResult AuftragAufAbruf()
{
DialogResult result = DialogResult.Cancel;
string s = $"Ist der Auftrag wirklich Auf Abruf?";
string caption = "FRAGE";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
MessageBoxIcon icon = MessageBoxIcon.Question;
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
public DialogResult AuftragVorhanden(Auftrag auftrag)
{
DialogResult result = DialogResult.Cancel;
string s = $"Der Auftrag {Kunde.GetKunde(null, auftrag.KundeID, null).Suchtext} Liefertag {auftrag.Liefertag.ToShortDateString()} erstellt am {auftrag.Erstellt.Value.ToShortDateString()} ist bereits vorhanden. Trotzdem neu erstellen?";
string caption = "FRAGE";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
MessageBoxIcon icon = MessageBoxIcon.Question;
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
/// <summary>
/// Der Auftrag wurde bereits fertig gestellt. Kein Bearbeiten mehr möglich.
/// </summary>
public void AuftragFertig()
{
string s = $"Der Auftrag ist bereits fertig und kann nicht mehr bearbeitet werden.";
string caption = "HINWEIS";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Information;
MessageBox.Show(s, caption, buttons, icon);
}
/// <summary>
/// Keine Aufträge gefunden.
/// </summary>
public void KeineAufträge()
{
string s = $"KEINE Aufträge zum Anzeigen gefunden. Versuch es mit einem anderen Status.";
string caption = "HINWEIS";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Information;
MessageBox.Show(s, caption, buttons, icon);
}
/// <summary>
/// Es kann nur ein Auftrag verarbeitet werden.
/// </summary>
public void NurEinAuftrag()
{
string s = $"Es kann nur ein Auftrag verarbeitet werden.";
string caption = "HINWEIS";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Information;
MessageBox.Show(s, caption, buttons, icon);
}
/// <summary>
/// Speichern der Liste erfolgreich.
/// </summary>
public void Gespeichert()
{
string s = $"Es wurden alle Einträge gespeichert.";
string caption = "HINWEIS";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Information;
MessageBox.Show(s, caption, buttons, icon);
}
/// <summary>
/// Speichern der Liste fehlgeschlagen.
/// </summary>
public void Speicherfehler()
{
string s = $"Es konnten nicht alle Einträge gespeichert werden.";
string caption = "FEHLER";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Error;
MessageBox.Show(s, caption, buttons, icon);
}
public void FehlmengeCount()
{
string s = $"Fehlmenge konnte nicht gespeichert werden. VORARBEITER RUFEN!!";
string caption = "FEHLER";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Error;
MessageBox.Show(s, caption, buttons, icon);
}
/// <summary>
/// Updating der Artikel wird durchgeführt und die DB-Verbindung ist offen.
/// </summary>
/// <param name="ex"></param>
public void IsUpdating(Exception ex)
{
string s = $"Update wird gerade durchgeführt. Versuch es später nocheinmal. {Environment.NewLine} Fehler: {ex.Message}";
string caption = "FEHLER";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Error;
MessageBox.Show(s, caption, buttons, icon);
}
public void Eingabefehler()
{
string s = $"Die Eingabe war nicht korrekt. Bitte tragen sie hier nur Zahlen ein.";
string caption = "FEHLER";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Error;
MessageBox.Show(s, caption, buttons, icon);
}
public DialogResult SonderNoCleanContainer()
{
DialogResult result = DialogResult.Cancel;
string s = $"Sonderauftrag ohne sauberen Container abschließen? Es wird KEIN Etikett gedruckt.";
string caption = "INFO";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
MessageBoxIcon icon = MessageBoxIcon.Exclamation;
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
public void VerarbeiteteDaten(int saved, int anzahlkunden, int artvorhanden)
{
string s = $"Es wurden {anzahlkunden} Kunden gefunden und {saved} Artikel gespeichert. {artvorhanden} Artikel waren bereits vorhanden.";
string caption = "HINWEIS";
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.Information;
MessageBox.Show(s, caption, buttons, icon);
}
public bool HandEingabe()
{
bool result;
string s = $"Kunde Handeingabe?";
string caption = "FRAGE";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
MessageBoxIcon icon = MessageBoxIcon.Question;
if (MessageBox.Show(s, caption, buttons, icon) == DialogResult.Yes) result = true;
else result = false;
return result;
}
}
}

79
FormArtikelVW.Designer.cs generated Normal file
View File

@ -0,0 +1,79 @@
namespace Deckungsbeitrag
{
partial class FormArtikelVW
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormArtikelVW));
this.objectListViewArtikel = new BrightIdeasSoftware.ObjectListView();
((System.ComponentModel.ISupportInitialize)(this.objectListViewArtikel)).BeginInit();
this.SuspendLayout();
//
// objectListViewArtikel
//
this.objectListViewArtikel.AlternateRowBackColor = System.Drawing.Color.LightSteelBlue;
this.objectListViewArtikel.CellEditUseWholeCell = false;
this.objectListViewArtikel.Cursor = System.Windows.Forms.Cursors.Default;
this.objectListViewArtikel.Dock = System.Windows.Forms.DockStyle.Fill;
this.objectListViewArtikel.FullRowSelect = true;
this.objectListViewArtikel.GridLines = true;
this.objectListViewArtikel.HideSelection = false;
this.objectListViewArtikel.Location = new System.Drawing.Point(0, 0);
this.objectListViewArtikel.MultiSelect = false;
this.objectListViewArtikel.Name = "objectListViewArtikel";
this.objectListViewArtikel.SelectColumnsOnRightClick = false;
this.objectListViewArtikel.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.None;
this.objectListViewArtikel.Size = new System.Drawing.Size(860, 496);
this.objectListViewArtikel.TabIndex = 0;
this.objectListViewArtikel.UseAlternatingBackColors = true;
this.objectListViewArtikel.UseCompatibleStateImageBehavior = false;
this.objectListViewArtikel.UseFiltering = true;
this.objectListViewArtikel.View = System.Windows.Forms.View.Details;
this.objectListViewArtikel.AfterCreatingGroups += new System.EventHandler<BrightIdeasSoftware.CreateGroupsEventArgs>(this.objectListViewArtikel_AfterCreatingGroups);
this.objectListViewArtikel.ButtonClick += new System.EventHandler<BrightIdeasSoftware.CellClickEventArgs>(this.objectListViewArtikel_ButtonClick);
//
// FormArtikelVW
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.ClientSize = new System.Drawing.Size(860, 496);
this.Controls.Add(this.objectListViewArtikel);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FormArtikelVW";
this.Text = "ARTIKELVERWALTUNG";
this.Load += new System.EventHandler(this.FormArtikelVW_Load);
((System.ComponentModel.ISupportInitialize)(this.objectListViewArtikel)).EndInit();
this.ResumeLayout(false);
}
#endregion
private BrightIdeasSoftware.ObjectListView objectListViewArtikel;
}
}

87
FormArtikelVW.cs Normal file
View File

@ -0,0 +1,87 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using BrightIdeasSoftware;
using DatenDB;
namespace Deckungsbeitrag
{
public partial class FormArtikelVW : Form
{
public FormArtikelVW()
{
InitializeComponent();
}
private void FormArtikelVW_Load(object sender, EventArgs e)
{
OLV_Load();
}
private void OLV_GroupCount()
{
foreach (OLVGroup group in this.objectListViewArtikel.OLVGroups)
{
int sum = 0;
foreach (OLVListItem item in group.Items)
{
Artikel art = (Artikel)item.RowObject;
sum += art.Nachwaesche;
}
group.Header = $"{group.Header} (Anzahl: {sum.ToString()})";
}
}
private void OLV_Load()
{
Generator.GenerateColumns(this.objectListViewArtikel, typeof(Artikel), true);
this.objectListViewArtikel.SetObjects(Artikel.GetArtikelList());
OLVColumn sortColumn = new OLVColumn();
sortColumn = (OLVColumn)this.objectListViewArtikel.Columns[6];
this.objectListViewArtikel.Sort(sortColumn);
OLV_GroupCount();
OLVColumn buttonColumn = new OLVColumn();
buttonColumn = (OLVColumn)this.objectListViewArtikel.Columns[7];
buttonColumn.IsButton = true;
buttonColumn.ButtonSizing = OLVColumn.ButtonSizingMode.CellBounds;
Funktionen.Columns_Resize(this.objectListViewArtikel);
this.objectListViewArtikel.FilterMenuBuildStrategy = new MeinFilterMenu();
}
private void objectListViewArtikel_ButtonClick(object sender, CellClickEventArgs e)
{
Artikel artikel = (Artikel)e.Model;
artikel.Nachwaesche = 0;
artikel.LastReset = DateTime.Now;
if(artikel.Save() == 1) this.objectListViewArtikel.RefreshObject(e.Model);
}
private void objectListViewArtikel_AfterCreatingGroups(object sender, CreateGroupsEventArgs e)
{
foreach (OLVGroup group in this.objectListViewArtikel.OLVGroups)
{
int sum = 0;
foreach (OLVListItem item in group.Items)
{
Artikel art = (Artikel)item.RowObject;
sum += art.Nachwaesche;
}
group.Header = $"{group.Header} (Anzahl: {sum.ToString()})";
}
}
}
}

219
FormArtikelVW.resx Normal file
View File

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
QmCC
</value>
</data>
</root>

252
FormAufgabeVW.Designer.cs generated Normal file
View File

@ -0,0 +1,252 @@
namespace Deckungsbeitrag
{
partial class FormAufgabeVW
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAufgabeVW));
this.listViewAufgabeVW = new System.Windows.Forms.ListView();
this.groupBoxNeueAufgabe = new System.Windows.Forms.GroupBox();
this.buttonFarbe = new System.Windows.Forms.Button();
this.label11 = new System.Windows.Forms.Label();
this.comboBoxAufgabeKat = new System.Windows.Forms.ComboBox();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.textBoxBeschreibung = new System.Windows.Forms.TextBox();
this.textBoxBezeichnung = new System.Windows.Forms.TextBox();
this.buttonAbbrechenAufgabe = new System.Windows.Forms.Button();
this.buttonSpeichernAufgabe = new System.Windows.Forms.Button();
this.buttonNewUser = new System.Windows.Forms.Button();
this.groupBoxNeueAufgabe.SuspendLayout();
this.SuspendLayout();
//
// listViewAufgabeVW
//
this.listViewAufgabeVW.AllowColumnReorder = true;
this.listViewAufgabeVW.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listViewAufgabeVW.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.listViewAufgabeVW.FullRowSelect = true;
this.listViewAufgabeVW.GridLines = true;
this.listViewAufgabeVW.HideSelection = false;
this.listViewAufgabeVW.Location = new System.Drawing.Point(11, 11);
this.listViewAufgabeVW.Margin = new System.Windows.Forms.Padding(2);
this.listViewAufgabeVW.Name = "listViewAufgabeVW";
this.listViewAufgabeVW.Size = new System.Drawing.Size(778, 314);
this.listViewAufgabeVW.TabIndex = 34;
this.listViewAufgabeVW.UseCompatibleStateImageBehavior = false;
this.listViewAufgabeVW.View = System.Windows.Forms.View.Details;
this.listViewAufgabeVW.MouseClick += new System.Windows.Forms.MouseEventHandler(this.listViewAufgabeVW_MouseClick);
//
// groupBoxNeueAufgabe
//
this.groupBoxNeueAufgabe.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBoxNeueAufgabe.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.groupBoxNeueAufgabe.Controls.Add(this.buttonFarbe);
this.groupBoxNeueAufgabe.Controls.Add(this.label11);
this.groupBoxNeueAufgabe.Controls.Add(this.comboBoxAufgabeKat);
this.groupBoxNeueAufgabe.Controls.Add(this.label2);
this.groupBoxNeueAufgabe.Controls.Add(this.label1);
this.groupBoxNeueAufgabe.Controls.Add(this.textBoxBeschreibung);
this.groupBoxNeueAufgabe.Controls.Add(this.textBoxBezeichnung);
this.groupBoxNeueAufgabe.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBoxNeueAufgabe.ForeColor = System.Drawing.Color.White;
this.groupBoxNeueAufgabe.Location = new System.Drawing.Point(11, 333);
this.groupBoxNeueAufgabe.Margin = new System.Windows.Forms.Padding(2);
this.groupBoxNeueAufgabe.Name = "groupBoxNeueAufgabe";
this.groupBoxNeueAufgabe.Padding = new System.Windows.Forms.Padding(2);
this.groupBoxNeueAufgabe.Size = new System.Drawing.Size(778, 87);
this.groupBoxNeueAufgabe.TabIndex = 35;
this.groupBoxNeueAufgabe.TabStop = false;
this.groupBoxNeueAufgabe.Text = "Aufgabe";
//
// buttonFarbe
//
this.buttonFarbe.FlatAppearance.BorderColor = System.Drawing.Color.White;
this.buttonFarbe.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonFarbe.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonFarbe.ForeColor = System.Drawing.Color.White;
this.buttonFarbe.Location = new System.Drawing.Point(694, 45);
this.buttonFarbe.Margin = new System.Windows.Forms.Padding(2);
this.buttonFarbe.Name = "buttonFarbe";
this.buttonFarbe.Size = new System.Drawing.Size(72, 22);
this.buttonFarbe.TabIndex = 47;
this.buttonFarbe.Text = "Farbe";
this.buttonFarbe.UseVisualStyleBackColor = true;
this.buttonFarbe.Visible = false;
//
// label11
//
this.label11.AutoSize = true;
this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label11.Location = new System.Drawing.Point(554, 28);
this.label11.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(52, 13);
this.label11.TabIndex = 46;
this.label11.Text = "Kategorie";
//
// comboBoxAufgabeKat
//
this.comboBoxAufgabeKat.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.comboBoxAufgabeKat.FormattingEnabled = true;
this.comboBoxAufgabeKat.Location = new System.Drawing.Point(557, 43);
this.comboBoxAufgabeKat.Margin = new System.Windows.Forms.Padding(2);
this.comboBoxAufgabeKat.Name = "comboBoxAufgabeKat";
this.comboBoxAufgabeKat.Size = new System.Drawing.Size(133, 25);
this.comboBoxAufgabeKat.TabIndex = 45;
this.comboBoxAufgabeKat.SelectedValueChanged += new System.EventHandler(this.comboBoxAufgabeKat_SelectedValueChanged);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point(279, 30);
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(72, 13);
this.label2.TabIndex = 23;
this.label2.Text = "Beschreibung";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(6, 28);
this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(47, 13);
this.label1.TabIndex = 22;
this.label1.Text = "Aufgabe";
//
// textBoxBeschreibung
//
this.textBoxBeschreibung.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxBeschreibung.Location = new System.Drawing.Point(281, 45);
this.textBoxBeschreibung.Margin = new System.Windows.Forms.Padding(2);
this.textBoxBeschreibung.Name = "textBoxBeschreibung";
this.textBoxBeschreibung.Size = new System.Drawing.Size(272, 23);
this.textBoxBeschreibung.TabIndex = 19;
//
// textBoxBezeichnung
//
this.textBoxBezeichnung.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append;
this.textBoxBezeichnung.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
this.textBoxBezeichnung.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxBezeichnung.Location = new System.Drawing.Point(9, 45);
this.textBoxBezeichnung.Margin = new System.Windows.Forms.Padding(2);
this.textBoxBezeichnung.Name = "textBoxBezeichnung";
this.textBoxBezeichnung.Size = new System.Drawing.Size(269, 23);
this.textBoxBezeichnung.TabIndex = 18;
//
// buttonAbbrechenAufgabe
//
this.buttonAbbrechenAufgabe.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonAbbrechenAufgabe.BackColor = System.Drawing.Color.Red;
this.buttonAbbrechenAufgabe.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonAbbrechenAufgabe.Image = ((System.Drawing.Image)(resources.GetObject("buttonAbbrechenAufgabe.Image")));
this.buttonAbbrechenAufgabe.Location = new System.Drawing.Point(759, 430);
this.buttonAbbrechenAufgabe.Margin = new System.Windows.Forms.Padding(2);
this.buttonAbbrechenAufgabe.Name = "buttonAbbrechenAufgabe";
this.buttonAbbrechenAufgabe.Size = new System.Drawing.Size(30, 32);
this.buttonAbbrechenAufgabe.TabIndex = 41;
this.buttonAbbrechenAufgabe.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
this.buttonAbbrechenAufgabe.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.buttonAbbrechenAufgabe.UseVisualStyleBackColor = false;
this.buttonAbbrechenAufgabe.Click += new System.EventHandler(this.buttonAbbrechenAufgabe_Click);
//
// buttonSpeichernAufgabe
//
this.buttonSpeichernAufgabe.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonSpeichernAufgabe.BackColor = System.Drawing.Color.Lime;
this.buttonSpeichernAufgabe.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonSpeichernAufgabe.Image = ((System.Drawing.Image)(resources.GetObject("buttonSpeichernAufgabe.Image")));
this.buttonSpeichernAufgabe.Location = new System.Drawing.Point(725, 430);
this.buttonSpeichernAufgabe.Margin = new System.Windows.Forms.Padding(2);
this.buttonSpeichernAufgabe.Name = "buttonSpeichernAufgabe";
this.buttonSpeichernAufgabe.Size = new System.Drawing.Size(30, 32);
this.buttonSpeichernAufgabe.TabIndex = 40;
this.buttonSpeichernAufgabe.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
this.buttonSpeichernAufgabe.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.buttonSpeichernAufgabe.UseVisualStyleBackColor = false;
this.buttonSpeichernAufgabe.Click += new System.EventHandler(this.buttonSpeichern_Click);
//
// buttonNewUser
//
this.buttonNewUser.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.buttonNewUser.BackColor = System.Drawing.Color.Yellow;
this.buttonNewUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonNewUser.Image = ((System.Drawing.Image)(resources.GetObject("buttonNewUser.Image")));
this.buttonNewUser.Location = new System.Drawing.Point(11, 430);
this.buttonNewUser.Margin = new System.Windows.Forms.Padding(2);
this.buttonNewUser.Name = "buttonNewUser";
this.buttonNewUser.Size = new System.Drawing.Size(135, 32);
this.buttonNewUser.TabIndex = 46;
this.buttonNewUser.Text = "Neue Aufgabe";
this.buttonNewUser.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.buttonNewUser.UseVisualStyleBackColor = false;
this.buttonNewUser.Click += new System.EventHandler(this.buttonNewUser_Click);
//
// FormAufgabeVW
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.ClientSize = new System.Drawing.Size(800, 473);
this.Controls.Add(this.buttonNewUser);
this.Controls.Add(this.groupBoxNeueAufgabe);
this.Controls.Add(this.listViewAufgabeVW);
this.Controls.Add(this.buttonAbbrechenAufgabe);
this.Controls.Add(this.buttonSpeichernAufgabe);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FormAufgabeVW";
this.Text = "Aufgabeverwaltung";
this.Load += new System.EventHandler(this.FormAufgabeVW_Load);
this.groupBoxNeueAufgabe.ResumeLayout(false);
this.groupBoxNeueAufgabe.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ListView listViewAufgabeVW;
private System.Windows.Forms.GroupBox groupBoxNeueAufgabe;
private System.Windows.Forms.Button buttonFarbe;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Button buttonAbbrechenAufgabe;
private System.Windows.Forms.ComboBox comboBoxAufgabeKat;
private System.Windows.Forms.Button buttonSpeichernAufgabe;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBoxBeschreibung;
private System.Windows.Forms.TextBox textBoxBezeichnung;
private System.Windows.Forms.Button buttonNewUser;
}
}

114
FormAufgabeVW.cs Normal file
View File

@ -0,0 +1,114 @@
using DatenDB;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Serialization;
namespace Deckungsbeitrag
{
public partial class FormAufgabeVW : Form
{
Aufgabe aufgabe;
public FormAufgabeVW()
{
InitializeComponent();
}
private void FormAufgabeVW_Load(object sender, EventArgs e)
{
GroupBox_Visibility_State(this.groupBoxNeueAufgabe);
List<object> list = new List<object>(Aufgabe.GetList(null));
this.listViewAufgabeVW = Funktionen.ListView_Load(this.listViewAufgabeVW, Aufgabe.COLUMNS, list);
}
private void Clear_controls()
{
foreach (Control ctr in this.groupBoxNeueAufgabe.Controls)
{
if (ctr.GetType() == typeof(TextBox))
{
TextBox tb = (TextBox)ctr;
tb.Clear();
}
if (ctr.GetType() == typeof(CheckBox))
{
CheckBox cb = (CheckBox)ctr;
cb.Checked = true;
}
}
}
private void Load_comboBoxAufgabeKat()
{
this.comboBoxAufgabeKat.DataSource = Enum.GetValues(typeof(Kategorie));
}
private void listViewAufgabeVW_MouseClick(object sender, MouseEventArgs e)
{
ListViewItem item = this.listViewAufgabeVW.GetItemAt(e.X, e.Y);
if (item != null)
{
this.aufgabe = (Aufgabe)item.Tag;
this.groupBoxNeueAufgabe.Text = "Aufgabe bearbeiten";
this.textBoxBezeichnung.Text = this.aufgabe.Bezeichnung;
this.textBoxBeschreibung.Text = this.aufgabe.Beschreibung;
Load_comboBoxAufgabeKat();
this.comboBoxAufgabeKat.SelectedItem = this.aufgabe.Kategorie;
comboBoxAufgabeKat_SelectedValueChanged(this, EventArgs.Empty);
if (this.aufgabe.Kategorie == Kategorie.Waschstrasse)
{
this.buttonFarbe.BackColor = this.aufgabe.Farbe;
this.buttonFarbe.Visible = true;
}
}
if(!this.groupBoxNeueAufgabe.Visible) GroupBox_Visibility_State(this.groupBoxNeueAufgabe);
}
private void comboBoxAufgabeKat_SelectedValueChanged(object sender, EventArgs e)
{
if (comboBoxAufgabeKat.SelectedValue.ToString() == "Waschstrasse")
{
this.buttonFarbe.Visible = true;
}
else this.buttonFarbe.Visible = false;
}
private void GroupBox_Visibility_State(GroupBox gb)
{
if(gb.Visible) gb.Visible = false;
else gb.Visible = true;
}
/// <summary>
/// BUTTON CLICK EVENTS
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonNewUser_Click(object sender, EventArgs e)
{
GroupBox_Visibility_State(this.groupBoxNeueAufgabe);
this.buttonNewUser.BackColor = Color.Gray;
this.groupBoxNeueAufgabe.Text = "Neue Aufgabe";
Load_comboBoxAufgabeKat();
Clear_controls();
}
private void buttonSpeichern_Click(object sender, EventArgs e)
{
if (this.aufgabe == null) this.aufgabe = new Aufgabe();
this.aufgabe.Bezeichnung = this.textBoxBezeichnung.Text;
this.aufgabe.Beschreibung = this.textBoxBeschreibung.Text;
this.aufgabe.Kategorie = (Kategorie)this.comboBoxAufgabeKat.SelectedItem;
this.aufgabe.Farbe = this.buttonFarbe.BackColor;
if (this.aufgabe.Save() == 1) { Clear_controls(); FormAufgabeVW_Load(this, e); }
}
private void buttonAbbrechenAufgabe_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

245
FormAufgabeVW.resx Normal file
View File

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="buttonAbbrechenAufgabe.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAKhJREFUOE9jYEAC3759M0DmYwM41Xz79q3i27dv/799+5aJLgcDIDmomgp0iYpX
N6/+3xbp/v/t/TtYDQGJgeS2hDj8f37xLMIQkJNApoI0L1Tj/b/WWRfDEJhmkBxIDcgQqEsg3kFXgGwI
PjmE+/AYgk0MQzMMYDOEaM0wgG4ISZpBgCID0DWT5AVsmokORFyaiYpGaiUk8pMykgLyMxMM4MyqSABd
DQCo07laP2majgAAAABJRU5ErkJggg==
</value>
</data>
<data name="buttonSpeichernAufgabe.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAG5JREFUOE9j+PbtW/i3b9/efPv27T+JGKQnnAHE0C5Y858heA5JGKQHpBdkAIYk
sRisF9mAD+8/EoWHswGk4kFqALp/0TH9DEDno4sjG3CneP4xDA3ofHRxZANkkA1BV0jQABCAGQISACkC
0cRiAGlM6tRr9T1CAAAAAElFTkSuQmCC
</value>
</data>
<data name="buttonNewUser.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wQAADsEBuJFr7QAAALpJREFUOE+dk7ERwyAMRT1CRsgIKVKkpmcAtklFkSYLsAVDUaoBUTqnnPEJWXZM
/t1vEE8fwTFNixBx5qY1ALggIsia3Lc2eLzuX7dCKeUZY5yNMRt772kfdMm8QbNzbhfOOd+6ZGmqHcLy
6NKywQaWl6eNcAhzyQZ89gVW3TXQkve8voIULWo3r8HqOPIkIYTzMFet9ZpSAmvtOExCxDdPH4LpD/D0
IZhEf6ClD8MkAij9L5jEXuEn/AEyPeZVqsLjAAAAAABJRU5ErkJggg==
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
QmCC
</value>
</data>
</root>

View File

@ -497,13 +497,13 @@ namespace Deckungsbeitrag
private void PrintDocument_PrintPage_Begleitzettel(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
auftrag = Auftrag.GetAuftrag(fachliste.Last().AuftragID);
Image etikett = Funktionen.Etikett_Entwurf(auftrag);
Image etikett = Funktionen.Etikett_Entwurf(this, auftrag, false);
//etikett.RotateFlip(RotateFlipType.Rotate180FlipNone);
e.Graphics.DrawImage(etikett, e.PageBounds);
}
private void PrintDocument_PrintPage_Tischsummary(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Image etikett = Funktionen.Etikett_Entwurf(auftragsummary);
Image etikett = Funktionen.Etikett_Entwurf(this, auftragsummary, false);
//etikett.RotateFlip(RotateFlipType.Rotate180FlipNone);
e.Graphics.DrawImage(etikett, e.PageBounds);
}

View File

@ -90,7 +90,7 @@
// buttonFertig
//
this.buttonFertig.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.buttonFertig.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.buttonFertig.BackColor = System.Drawing.Color.Turquoise;
this.buttonFertig.FlatAppearance.BorderSize = 0;
this.buttonFertig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonFertig.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@ -353,7 +353,7 @@
// buttonSWS
//
this.buttonSWS.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.buttonSWS.BackColor = System.Drawing.Color.Turquoise;
this.buttonSWS.BackColor = System.Drawing.Color.Yellow;
this.buttonSWS.FlatAppearance.BorderSize = 0;
this.buttonSWS.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonSWS.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@ -387,7 +387,7 @@
// buttonSpeichern
//
this.buttonSpeichern.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.buttonSpeichern.BackColor = System.Drawing.Color.Yellow;
this.buttonSpeichern.BackColor = System.Drawing.Color.Lime;
this.buttonSpeichern.FlatAppearance.BorderSize = 0;
this.buttonSpeichern.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonSpeichern.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@ -399,6 +399,7 @@
this.buttonSpeichern.TabIndex = 36;
this.buttonSpeichern.Text = "Änderungen speichern";
this.buttonSpeichern.UseVisualStyleBackColor = false;
this.buttonSpeichern.Visible = false;
this.buttonSpeichern.Click += new System.EventHandler(this.buttonSpeichern_Click);
//
// FormAuftragDetail

View File

@ -1,5 +1,4 @@
using DatenDB;
using System;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
@ -11,6 +10,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Windows.Forms;
using DatenDB;
namespace Deckungsbeitrag
{
@ -57,7 +57,7 @@ namespace Deckungsbeitrag
public FormAuftragDetail()
{
InitializeComponent();
this.BackColor = Properties.Settings.Default.Wirlblau;
//this.BackColor = Properties.Settings.Default.Wirlblau;
labelContainer_TextChanged(this.labelContainer, EventArgs.Empty);
//SPEICHERN UND ABSCHLIESSEN BUTTONS WERDEN FUNKTIONSLOS UND GRAU
@ -78,7 +78,7 @@ namespace Deckungsbeitrag
this.labelRegion.Text = Kunde.GetKunde(string.Empty, auftrag.KundeID, string.Empty).Region;
this.labelContainer.Text = auftrag.ContainerClean.ToString();
this.labelContDirt.Text = auftrag.Container.ToString();
this.textBoxZusatz.Text = auftrag.ZusatzInfo;
//this.textBoxZusatz.Text = auftrag.ZusatzInfo;
//WENN STATUS 3(HERRICHTEN) oder HÖHER(FERTIG, AUSGELIEFERT) DANN KEINE VORHER NACHHER LISTEN
if (auftrag.Status <= AuftragStatus.Finisching)
@ -141,6 +141,8 @@ namespace Deckungsbeitrag
Funktionen.Columns_Resize(this.listViewArtikel);
}
//WENN STATUS VORBEREITET BUTTON FERTIG ENABLEN
if (auftrag.Status == AuftragStatus.Vorbereitet) { buttonFertig.Enabled = true; buttonFertig.BackColor = Color.FromArgb(0, 192, 0); toclose = true; }
}
private void labelContainer_TextChanged(object sender, EventArgs e)
{
@ -249,12 +251,59 @@ namespace Deckungsbeitrag
{
if (toclose)
{
if(int.Parse(this.labelContainer.Text) == 0) if (meldung.NoCleanContainer() == DialogResult.OK) return;
if (int.Parse(this.labelContainer.Text) == 0) if (meldung.NoCleanContainer() == DialogResult.OK) return;
if (int.Parse(this.labelContainer.Text) != auftrag.ContainerClean)
{
switch (meldung.DifferentCleanContainer())
{
case DialogResult.Cancel:
break;
case DialogResult.Yes:
{
auftrag.ContainerClean = int.Parse(this.labelContainer.Text);
auftrag.Liefertag = dTPLiefertag.Value;
//WENN BEARBEITET UND AUSGEDRUCKT WIRD GEDRUCKT VERÄNDERT UND ERSTELLT IST URSPRUNGSDATUM
auftrag.Gedruckt = DateTime.Now;
auftrag.GedrucktVon = benutzer.BenutzerID;
auftrag.Status = AuftragStatus.Fertig;
bool nocont = false;
if (MessageBox.Show("Möchtest du die Containeranzahl am Etikett anzeigen?", "FRAGE", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
nocont = true;
}
else nocont = false;
auftrag.Erledigt = DateTime.Now;
auftrag.ErledigtVon = benutzer.BenutzerID;
DialogResult result = Funktionen.Etikett_Drucken(auftrag, nocont);
if (result == DialogResult.OK)
{
this.auftrag.Save();
this.Close();
}
}
break;
case DialogResult.No:
{
auftrag.ContainerClean = int.Parse(this.labelContainer.Text);
auftrag.Liefertag = dTPLiefertag.Value;
//WENN BEARBEITET UND NICHT GEDRUCKT WIRD ERSTELLT VERÄNDERT UND GEDRUCKT IST URSPRUNGSDATUM
auftrag.Erstellt = DateTime.Now;
auftrag.ErstelltVon = (int)benutzer.BenutzerID;
auftrag.Status = AuftragStatus.Fertig;
auftrag.Save();
this.auftrag.Save();
this.Close();
}
break;
default:
break;
}
}
else
{
auftrag.Status = AuftragStatus.Fertig;
auftrag.Save();
}
}
this.DialogResult = DialogResult.OK;
@ -265,7 +314,7 @@ namespace Deckungsbeitrag
//SCHMUTZWÄSCHESCHEIN DRUCKEN
private void buttonSWS_Click(object sender, EventArgs e)
{
Funktionen.SWS_Drucken(auftrag, null);
Funktionen.SWS_Drucken(auftrag, null, this);
//PrintDialog dialog = new PrintDialog();
//foreach (string printer in PrinterSettings.InstalledPrinters) if (printer.Contains(ConfigurationManager.AppSettings["PrinterName"])) dialog.PrinterSettings.PrinterName = printer;

141
FormBenutzerVW.Designer.cs generated Normal file
View File

@ -0,0 +1,141 @@
namespace Deckungsbeitrag
{
partial class FormBenutzerVW
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormBenutzerVW));
this.buttonNewUser = new System.Windows.Forms.Button();
this.buttonAbbrechen = new System.Windows.Forms.Button();
this.buttonSpeichern = new System.Windows.Forms.Button();
this.objectListViewBenutzer = new BrightIdeasSoftware.ObjectListView();
((System.ComponentModel.ISupportInitialize)(this.objectListViewBenutzer)).BeginInit();
this.SuspendLayout();
//
// buttonNewUser
//
this.buttonNewUser.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.buttonNewUser.BackColor = System.Drawing.Color.Yellow;
this.buttonNewUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonNewUser.Image = ((System.Drawing.Image)(resources.GetObject("buttonNewUser.Image")));
this.buttonNewUser.Location = new System.Drawing.Point(11, 406);
this.buttonNewUser.Margin = new System.Windows.Forms.Padding(2);
this.buttonNewUser.Name = "buttonNewUser";
this.buttonNewUser.Size = new System.Drawing.Size(107, 32);
this.buttonNewUser.TabIndex = 45;
this.buttonNewUser.Text = "Neuer User";
this.buttonNewUser.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.buttonNewUser.UseVisualStyleBackColor = false;
this.buttonNewUser.Click += new System.EventHandler(this.buttonNewUser_Click);
//
// buttonAbbrechen
//
this.buttonAbbrechen.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonAbbrechen.BackColor = System.Drawing.Color.Red;
this.buttonAbbrechen.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonAbbrechen.Image = ((System.Drawing.Image)(resources.GetObject("buttonAbbrechen.Image")));
this.buttonAbbrechen.Location = new System.Drawing.Point(759, 406);
this.buttonAbbrechen.Margin = new System.Windows.Forms.Padding(2);
this.buttonAbbrechen.Name = "buttonAbbrechen";
this.buttonAbbrechen.Size = new System.Drawing.Size(30, 32);
this.buttonAbbrechen.TabIndex = 39;
this.buttonAbbrechen.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
this.buttonAbbrechen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.buttonAbbrechen.UseVisualStyleBackColor = false;
this.buttonAbbrechen.Click += new System.EventHandler(this.buttonAbbrechen_Click);
//
// buttonSpeichern
//
this.buttonSpeichern.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonSpeichern.BackColor = System.Drawing.Color.Lime;
this.buttonSpeichern.Enabled = false;
this.buttonSpeichern.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonSpeichern.Image = ((System.Drawing.Image)(resources.GetObject("buttonSpeichern.Image")));
this.buttonSpeichern.Location = new System.Drawing.Point(725, 406);
this.buttonSpeichern.Margin = new System.Windows.Forms.Padding(2);
this.buttonSpeichern.Name = "buttonSpeichern";
this.buttonSpeichern.Size = new System.Drawing.Size(30, 32);
this.buttonSpeichern.TabIndex = 38;
this.buttonSpeichern.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
this.buttonSpeichern.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.buttonSpeichern.UseVisualStyleBackColor = false;
this.buttonSpeichern.Visible = false;
//
// objectListViewBenutzer
//
this.objectListViewBenutzer.AlternateRowBackColor = System.Drawing.Color.LightSteelBlue;
this.objectListViewBenutzer.CellEditActivation = BrightIdeasSoftware.ObjectListView.CellEditActivateMode.DoubleClick;
this.objectListViewBenutzer.Cursor = System.Windows.Forms.Cursors.Default;
this.objectListViewBenutzer.Dock = System.Windows.Forms.DockStyle.Top;
this.objectListViewBenutzer.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.objectListViewBenutzer.FullRowSelect = true;
this.objectListViewBenutzer.GridLines = true;
this.objectListViewBenutzer.HideSelection = false;
this.objectListViewBenutzer.Location = new System.Drawing.Point(0, 0);
this.objectListViewBenutzer.MultiSelect = false;
this.objectListViewBenutzer.Name = "objectListViewBenutzer";
this.objectListViewBenutzer.SelectColumnsOnRightClick = false;
this.objectListViewBenutzer.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.None;
this.objectListViewBenutzer.ShowGroups = false;
this.objectListViewBenutzer.ShowSortIndicators = false;
this.objectListViewBenutzer.Size = new System.Drawing.Size(800, 396);
this.objectListViewBenutzer.TabIndex = 46;
this.objectListViewBenutzer.UseAlternatingBackColors = true;
this.objectListViewBenutzer.UseCompatibleStateImageBehavior = false;
this.objectListViewBenutzer.UseFiltering = true;
this.objectListViewBenutzer.View = System.Windows.Forms.View.Details;
this.objectListViewBenutzer.CellEditFinished += new BrightIdeasSoftware.CellEditEventHandler(this.objectListViewBenutzer_CellEditFinished);
this.objectListViewBenutzer.SubItemChecking += new System.EventHandler<BrightIdeasSoftware.SubItemCheckingEventArgs>(this.objectListViewBenutzer_SubItemChecking);
this.objectListViewBenutzer.SelectedIndexChanged += new System.EventHandler(this.objectListViewBenutzer_SelectedIndexChanged);
//
// FormBenutzerVW
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.ClientSize = new System.Drawing.Size(800, 446);
this.Controls.Add(this.objectListViewBenutzer);
this.Controls.Add(this.buttonNewUser);
this.Controls.Add(this.buttonAbbrechen);
this.Controls.Add(this.buttonSpeichern);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FormBenutzerVW";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Benutzerverwaltung";
this.Load += new System.EventHandler(this.FormBenutzerVW_Load);
((System.ComponentModel.ISupportInitialize)(this.objectListViewBenutzer)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button buttonAbbrechen;
private System.Windows.Forms.Button buttonSpeichern;
private System.Windows.Forms.Button buttonNewUser;
private BrightIdeasSoftware.ObjectListView objectListViewBenutzer;
}
}

109
FormBenutzerVW.cs Normal file
View File

@ -0,0 +1,109 @@
using BrightIdeasSoftware;
using DatenDB;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Security;
using System.Windows.Forms;
namespace Deckungsbeitrag
{
public partial class FormBenutzerVW : Form
{
public Fehlermeldungen meldung = new Fehlermeldungen();
public Benutzer user;
public FormBenutzerVW()
{
InitializeComponent();
//Load_ListView();
}
private void FormBenutzerVW_Load(object sender, EventArgs e)
{
List<object> list = new List<object>();
try
{
list = new List<object>(Benutzer.GetList());
Load_OLV(list);
}
catch (Exception ex)
{
meldung.IsUpdating(ex);
this.Close();
}
}
private void Load_OLV(List<object> alist)
{
Generator.GenerateColumns(this.objectListViewBenutzer, typeof(Benutzer), true);
this.objectListViewBenutzer.SetObjects(alist);
OLVColumn sortcolumn = (OLVColumn)this.objectListViewBenutzer.Columns[1];
this.objectListViewBenutzer.Sort(sortcolumn);
//OLVColumn buttonColumn = new OLVColumn();
//buttonColumn = (OLVColumn)this.objectListViewBenutzer.Columns[10];
//buttonColumn.IsButton = true;
//buttonColumn.ButtonSizing = OLVColumn.ButtonSizingMode.CellBounds;
this.objectListViewBenutzer.FilterMenuBuildStrategy = new MeinFilterMenu();
Funktionen.Columns_Resize(this.objectListViewBenutzer);
}
/// <summary>
/// BUTTON CLICK EVENTS
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonNewUser_Click(object sender, EventArgs e)
{
Benutzer benutzer = new Benutzer();
this.objectListViewBenutzer.AddObject(benutzer);
this.objectListViewBenutzer.RowFormatter = delegate (OLVListItem olvItem) { if (olvItem.Index == 0) olvItem.BackColor = Color.LightYellow; };
this.objectListViewBenutzer.SelectedObject = benutzer;
this.objectListViewBenutzer.FocusedItem = this.objectListViewBenutzer.ModelToItem(benutzer);
this.objectListViewBenutzer.FocusedItem.Selected = true;
this.objectListViewBenutzer.FocusedItem.EnsureVisible();
int firstColumnIndex = 0;
this.objectListViewBenutzer.StartCellEdit((OLVListItem)this.objectListViewBenutzer.FocusedItem, firstColumnIndex);
}
private void buttonAbbrechen_Click(object sender, EventArgs e)
{
this.Close();
}
private void objectListViewBenutzer_CellEditFinished(object sender, CellEditEventArgs e)
{
Benutzer benutzer = (Benutzer)e.RowObject;
if(!string.IsNullOrWhiteSpace(e.NewValue.ToString())) Save_Benutzer(benutzer, false);
}
private void objectListViewBenutzer_SubItemChecking(object sender, SubItemCheckingEventArgs e)
{
Benutzer benutzer = (Benutzer)e.RowObject;
if (benutzer.Aktiv) benutzer.Aktiv = false;
else benutzer.Aktiv = true;
Save_Benutzer(benutzer, false);
}
private void Save_Benutzer(Benutzer benutzer, bool show)
{
if (benutzer.Save() == 1) if (show) meldung.Gespeichert();
else if (show) meldung.Speicherfehler();
}
private void objectListViewBenutzer_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}

245
FormBenutzerVW.resx Normal file
View File

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="buttonNewUser.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAJlJREFUOE/dUMkRgCAMtA6rsAYqoAj+VGAnVGMN/OXPP1+cMMKsQRS/MrOTA3az
YZrgEFEqOGtNRDv0OdfIaYjbOtc8xpistUkplcE59xoRJGJEMoqwk+70Aq4luSCEkFe8TEfimwDfDTkY
WgFdyPjwiUsjgC6wfsOtEFp2ztXHnHf/AkXk3t77DNkfFjDGZMj+sEAPfxb4ggOJrCeBgrTaGAAAAABJ
RU5ErkJggg==
</value>
</data>
<data name="buttonAbbrechen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAKhJREFUOE9jYEAC3759M0DmYwM41Xz79q3i27dv/799+5aJLgcDIDmomgp0iYpX
N6/+3xbp/v/t/TtYDQGJgeS2hDj8f37xLMIQkJNApoI0L1Tj/b/WWRfDEJhmkBxIDcgQqEsg3kFXgGwI
PjmE+/AYgk0MQzMMYDOEaM0wgG4ISZpBgCID0DWT5AVsmokORFyaiYpGaiUk8pMykgLyMxMM4MyqSABd
DQCo07laP2majgAAAABJRU5ErkJggg==
</value>
</data>
<data name="buttonSpeichern.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAG5JREFUOE9j+PbtW/i3b9/efPv27T+JGKQnnAHE0C5Y858heA5JGKQHpBdkAIYk
sRisF9mAD+8/EoWHswGk4kFqALp/0TH9DEDno4sjG3CneP4xDA3ofHRxZANkkA1BV0jQABCAGQISACkC
0cRiAGlM6tRr9T1CAAAAAElFTkSuQmCC
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAAAAAAAEAIAC5FQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAFv
ck5UAc+id5oAABVzSURBVHja7Z0LuFVVtcfPOqCg4gMFVDQhsHyics4GfBUIPsMywULt4Ytz4CqSWV5R
UwnsZpaZ0c23XtNKI/JVGT5BTbtqiqX5SMRXGnI1LdBjiNwx9h57sfY6a5+91jl77b3WXr/f9/0//Pz4
Ps4Zc8wx5xpzzDmamgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgTpxRbYECgIxNeoJBQgcBsGFM9tpEtKdo
quhc0VzRaaJPiwZjw9oNxEDRSNF40SdFO4k2ZABC26+faGezndpwD9EW2K+svdQ2x4vuEv2faI1orUfv
ih4XzRBtjP/FNxDqtOeJHhG9Keow4/9NdJvoy35Hxn4l2ko03Rz5NbNdh9nyQdHpoo9l2X4+e20kOkJ0
r+jfvkkfpNWiy0Sb4X/VddyhonNESysMgA7S7aJWnLhEm1lwfEj0QQUbPiWaImrOiv0C7NVbNE40X7Qy
xMT3SncHZ4scgkDPB2KQbaueiDgI+vdbsjYAAfbbQPQZ0e9spQ9rP90RHJOFIBpgs91EPxatiOhzXr3i
XYSge8mWL4geCLFilZM6/YAsDEKA/dYTjRXdIPpXN+33kmhMI9rPGT4hyGYfFc0WvdiDie/VlaL1CQLR
HLevaKLoN6L3ejgA+j02s9FXMZ/9HEvoXdLDFayoG2wX0TD2C/A5XSRO7MYus5LeEh1AAAg3EPrNtY/o
p6J3qjgIf7bI3nirWGdH3l70X6KXq2i/f9knREPYLyDB9znRIlss1sagWzgVqLxi7S76kWh5TIMwu5F2
AQETfxvR10VPx2S/36U5q13m80iPPheIVsVkM+/x4FGcSgUPxDDRnCp+c5XTMtGuaR+AAPv1t7PphwPO
paupDm9CMOU208+jS+0sf22N9IAls7MZAMqcRX/VjptqNQgXi3o1yCqmW9dJdpb/fo3s95CNWyrsVybB
N8cSm2trLE1ifyVzAaDMWbSuJH/oQWa/u/q7aO80DUKA/TSjPEH0y26cTVfDiU9Juv3KVIzqMfKf6jDx
vXpSNDwTQaDMWfRhooURz6KrretEfdIwCD77aUFOzo6V3qyzEw9Lov3KlDp/XnRfjAm+qDqvoYuDyiRb
tJrqxh6cRVdTerpwSFIHoMylnB1EF1ipcxKc+JtJSmh1sUu6yRJwaxOklxu2OCggsz/Ski0rEjYIt1mR
UaIGIcCRtxWdIXo2YfZbZpVydbVfgL2KPndZnXdJlXSFLYyNEQQCBkIvknzbSiGTOAAlxzIJtJ8WpUwT
PSb6MKE2nFdMqCboNGlulesf4pIWB+2f+gBQ5ixa70U/k4JBuM+SQ00JcuKN7Zt1UchbZ/XUcivaqqn9
ytwTmWm5ibUp0s2pLQ4KGITN7XGER2I+i66mVlvpZ10GIOCb9UBzilUpcuLrrWw7dhuWSfAdKbq/DqdJ
1dqFHpm64qCAs+jJortTsGIFaYlou1oOgM9+vexlmf8RvZ1C+2lC9VNx2y8gWO5vwfLdFNrMq/tTURzk
5Mz4uU5Z1gV1OIuupvT7+qxaRGGf/VS7iC4SvZ5yJ/51XAnVgARfiyXQ3ky5zby70JMTHQDyTrsuAOhl
nX1FV1sioxEG4Xl7YSiWQcjbrtVsOCb/b3zc7iUsbRD76W3No6tpv4Dt/nC74PRKg9gs+XUVeYcd2Vb8
s9nOLhsp+np1YbVfvinZNY3O/7md7Taeb0D73V+VhGpre1NTriBPBZ9WHv6lAW2W0OIgHYQWzyDk8iuW
FqG82sADoO/ija7KAIj9eo0+If+n7Z62sGTjkgQf6VVjK3tSjz6l1O9cTW+2T8y7U5rg686jKyPrGwC8
A5DL/7ml/DCnip7LwACorunxyy0lTty+odhRL+sszogT60MaQyLbr9Rmqh3Ebt9NYPFY3Lq8PsVBnQeg
v+gYWbkeTNGRXv1ebulsv/VF48WJf5HyBGl3Eqpnh7ZfZ7sNEZ0pei5jE9/7/uKE2gYA/4rV2j5JdIc4
b0dGB+FXdr7cHSduFo0RXSV6M6P2W1oxodp54g8UnSR6QvShLDxrM2q7tXZ3oV/8QaDzirW/aIFolSjL
A7DKnofqegA6O/EuootEr+ftl20n/n4xoVrBZpuJviT6vegDtZssPFm2W7E4aEo8AaDzAPQS7Sm6RvRW
fgAYBNU93qYiFWw4TDRbtNS1X2vm7fdaySvCnW2mO83DRQtFHSV2y3bgjLlEvXQQdhP9sLhiMQidmoq0
lQxAZyceLPqa6Cm//QigbkK1jy8A6E5zgu00V3ayG4HTe6IyI64AsL3oPNFLQQNAAHD1qF3FLZ6IFDVA
NFX0qH6vYr+y+ofdbSjuNFtEl4heK2c3AkDcr1i3ts8QLbbtfgeDULGt0+meANBXdJBovjnxu6I1BICK
t936iU22sS3/saLjRaeJLhc9qMlSfK+s5lS3OKiQ6BsvOtgG43zRXaLlOHCgnrGyXbXdtqL9bAurdpwi
Osu2sy+4SSzs509ofa5pk1nljkr1M+pQ0RWivxEAAouD9qhmAAhKAuoRzIEWkclgd9b5mtFuaml3Auyn
/29jUU50rugv+e0tOQCv7i0mVAPsV9QGogNEvxbbvY/NSnRp9YqDyg9AcRAmiu6RQViD4UuaO7Z0kdH2
BtM9rAZgJXYrSai2B5YIBydWL0zZewhxS/sWjI+vLiD4WEszuETiMCWane23qX7jyi5qBXZz9cdiQjXQ
iUvt18/qCFiESovTNoq3OKh0EAbJLuCqBr640p0ovF/o6rYW+b7Ntc90qtvbMO0lwrPC2M9uUA6224XY
LkpxWtWCQOE6pl5d/T3GdzVftGGEEte+9mgmtitI6/t3qGQ/z6fCERm7R1FJi2rzfqUOQos7CIezirnS
fgafDVUivO4uu3bp/RO2c/WdSm8ueAKABtsbsVnwdevaPP9VqOS6CuO7usMJ0x1Xg2ira8MTyKe40vck
cpXs5wkCnxS9gd1c6WIytDZBYN0gjHKS042m3tKJfFyYAfAEUe3cexe2c+U2xAjhf735jAosDqppANAt
23cxvCttaLp1qCCwzoaT+J4tufO+X4RdwAjRC9jN1Yui3WsdBHYU/RXj5/WBvZIUJQDoEc4vsV34hKpT
+iDo2disRJe4x9K52gWBMzgWdKUPVA6PGATGO435mGp3tNISzE0hg4CeSD2O3UqOpfMvVzWPmlpIPNcg
AOggPIbxXc0Nc1HDKe2QfCV2c3Wn5UfC2m+ak87GM3Fpoaz+m+d3AMWj5xoEgelOcnqsp+ZbzGO/nNPY
LytHTageHyEA6H2Cu7Gb51gw13ZmU8u03iX1JzEHAO1Yuxjju/pvy1SHdWJNqF6A3Vw9bFV/Ye03yeox
sF1BK5py7e35ylN/SXqMQWCKk/5+bNWSnlF/IuIuYEcnO8+sh3lz4WsRcgEUB/kkAWCFTPhv5Mv3gy6p
xRAAtJ3xLRjf1c+cEN1xfVntWSRUSxKq20csDuKilTcItLa/J7pFdIhepip7Y7WKQeBge/KJARjV9k/R
oRF3AR8hoVqib1VKqHpsp59cP8JmJbuA4mM++p7Hz+yl5V2sv0cfkeYJ1qtmANAS4WsxvqvfijaNGASm
k9WO9vINxUEVA0BR+rT/s6Lb7cXveaI51f4U2Ev0dwYgL+2O+6WIAWCA3fDCfuuKW3pHKA46h8+osgHA
q3dEP8k/Z1flANBLdDED4EqvTg+KmAsgoerJaIdJqHpsN8QpNFslAAQHgHctL3CwPWgbS0JwV6dxetxX
o0T45Ii7ABKqpfq5aIOIxUGZr0vxTfzV9vL3lE4JwRgCQHErhvNGvK7psd+BJFRLEqqfjlgcdE+mbZZz
A4D2WnhMNN16V9SsLmAoj16U6JxK59o+G5JQLdXtYRKqHhtPzvJNS5v8fxWdIfpI7BO/zCCcbFtgHLiQ
nd414i5gT9Hr2C6vjjAJVV9x0C8yuvprL4XviXas6cQPGIQtHd4P9OoHliQN68T6dy/Cbq4eNJ8Ka7+x
GSsOelcmv2b2RzW15FvS13bil8kFfNGOw3DgwvHoXhF3Abtwtl2SUJ0ZoUS4t93LyEqe6ctOa1vfkp6V
9cIzCJtaQQwOXNC19n0fJQhwtr1OoZpj+oqDljWwPV6xismPFh8Cif0tgG4EgUMtk4sDFzL7B0cMACRU
SzU7Yl3FuQ1oA31ERt9RbPGWS8f+HFg3A0BfuxyD8xZ0q531R3HiGZxtu1pmK3sWi4O0QEw7Ak1wPF2p
EjXxywzCJxyecvYO4pERdwFaTfgAtnN1caWEqi+Apv3RmtX25oZWifbz/W5NiSWjCZkwWmx1/1GCwBfs
OAz7FRKqe0csDro3xXkP3QEOTMWk72IQ9rAbXjhwIaJPjxgANiGhWqLrwiRUU1wcpHNljjfpmbrJ7xsA
TVach+O60rv/20UMAhMd2rIV9bbokAgBQJ9hn5+C30tf973UFkwn1ZM/YBCG22svOHDhaO/MiAFAE6o/
xXaubouYUE1ycZB2+13gFBqkrJf6Sd/FIJzq0Oe9KG2sslPEILAvCdWShOpRKS8OWm1vQBxhu5Smhpv8
vkHQF1//F+d1pS3WmiOsYjx/1TmhOjCC/XZzCs+3J+Fnf8IpdPcd0LATv8wgaDNNuuMWpE1WR0XcBSTJ
iZOwgp4Y0X71Lg560QqahmZi4gcMgHZ/uRPndaXt1teP4MSaHJqL3VwtCZNQ9VVX1qM4SPMPP3Y8zWMy
MfHLDMLhDt1xvaWdEyKuYppQfQrbuQnVs8JMKM/f+Y8aFgetshOIcY7njcNMTfwyd7bn47yufuVNAoUs
Ef4qCVVXz4t2Tlhx0L/t35jseDofZ3LilxmE8XbuiQMXVonJEXcBW5NQLdGFEROqR8S4C11iu4wBmd3u
hxgAPe+8HMd1pY0uN48YBI4loerqNdHoOhcHLbMr3EOY+OEcuNWhO25ROpGnurbJhXJiTajege1cXe0m
VMPZb1yVioPesBqDEUz8aEFAM9rfwXFd/dEptAnr0oF9TvxZhw653jcXDsrbZUxb2ccxfLvQnhQHrbT3
B8dmPsHXg13ADqJncV43oz3bGdHmVHraiUcwu3hFOCc7o1xbWPvtaLfuoib49JNtkj/Bx+SPHgBUp/P0
ledbNtd2QPPoqU0RgsA4EqqeyZlrm9U0cnqvrh7H9PnfASHvqayxi1zT7CSBiV+lILCtbX9x4MLzzo9r
77b19zq24tPOnq3sZdhuXdGNNcToGyEIjLCbeMssH/OhabXVatwnOsX9RGPiVz0ItDt0x/U2eHhGdJxo
0676u/sSqq9gO7Nfrv1NsdG3RNuFtF/xrsXHRIfZQxwn20s8OdFmTPx4A0CaX26Jw4E1CPxDdK1oXKe+
bl7l2pvsDPx8bOfuotR+74vuFh0lGihyytqwZZo/GHQpiCcIfN6KYnDgXEmTx1dFN4imiUbbqqb93jYX
bS0qrk4fJ6Fasosq6m3RXdYua7xouGiQqL9oS/vv5kQ8qZ3xAKCPHt6E83Zy4KI6RK9Y08dFop+LjrFA
ULThf1IiXNZ+H4jeEP1ZdL/oVgsKw+reUIMgQHfcLnYAQb3ebxYdWEx06bGXJ6H6KAGgS/upHhadINqi
bq20IDAAaCXXNQSAQAfWb9o7RYeLNvJ/x3ps2EZCtWwAeFJ0imirujTQhFBBYIzVdmc9CVjUGtEjtmL1
L+e4voTqPQTQEhu+KJpbst1n4ic2AGjjh++zeuX1tOjrosFhHNd3220VAbR9uWieaDcmfrqCwM52zzur
zvuynWNvH8Vxfbfdbsrw6v+O6HrRPqJeTP70BQDV2Rl0Xq1iu0Q0MvDcOpoNtcT1rYzZ8D2x029FEztV
AjLxUxcEhtjrqZlwXH0ZSFb/sU0t7b174rS+hOrVGZr8j0gA/aLYbBMmfuMEgZOcxu6O+4HoQdHRMvn7
ubfYeui4GUuoPp9/FzDXNrhov0q3ASE9AUC7497foI77pGimOOugfHlpoaS32vZrtueyGtF+r+eTxbm2
nZy9Cr9v/gJVjonfaEHgaNsiN4rjPmX5jaHFxz+c1sqPgPTAfjs1WEL1dXtObrTYrTlvv1z17QfJCQDa
Hfc3DeC42hRijj3rXfjdWuK9XOKx4Tca4M0FbQp6rWgvOypuYvJnJwh8yklvd9zlonnW1cep5a0yX0J1
SUrtp30Ab7XnvvpwMy+bAUC7416fMsd9x37mfdwVq8aO6/s3T0xZQlXLmRfbnfyNmfgEgX1tNU3DkZ5+
sky0wFVXx/X82wNTklDVT5XH7W39gUx8AoD3xZZ5CXZcXV0fsKTlJklyXM/PcZRtqZPcNv1Mnt6Ccg48
wkled9wPrWBphh1bJs5xfQnV2xI48bVT8vfsxIKJD1068ZwEOe5SO9JLfDcYX0L17YTYT0uVtUPyKG9r
LyY+dOXAw6yIpt5n0Rd5m1Im3XF9CdXr6mw/baqxwCl0Rl6PVR+iZrRPsTLaenSf0QdL9qxXZr9KNty7
TgnVYlONyd6OyEx8iOrAW4keqnEH35vtybI+aXZaz5sLP6yh/dbkL+uMajvB2wSViQ89CQLHiDpqsGIt
sheL+zWC4/oSqi/UYPI/LTpNtA0TH6rpwPoc9sIYM/vFNlAN1efd97t8M8aJ/7Lo29Zsg4kPsTixdnH5
Z5Ud9znRLHthtyEdN+aE6gprszWy1qXPkL0AoN1Zb6yS474qusA6Fjf0iuX7/b5SpYSqtim/wdplk9mH
mjnxPnYs113H1eaPV1gPuMycRfveXFjUA/t12KfYZ0QbMPGh1g6s28xTu/FmgJ5FzxeNz+qK5fl99xO9
1I3XjB6yZCzNM6GuDtw3/yxUuEcwtf3znaJJWT+L9v3uh0XoLfik1WJsxcSHpDhwb7uBt7DM2wEr7Tbc
caL+OG6gDfXNgivtk2pNwJGoHunNtuQh9oPEOXDxwstY+yzQBiM/sKz+QdY1B8ft2ob6mvDuonZrOT7P
jgunuM+YYT9IQSCgx3uMNgRInTMD9gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJD8PyK+P6C0d3u7AAAAAElFTkSu
QmCC
</value>
</data>
</root>

807
FormExpedit.Designer.cs generated

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -132,21 +132,132 @@
maW0xzyEBCLixQroqxpo9vljoC/u/BcYrTD+RA0o1wEXCBcIFwiXB07Nzd/k/DvRAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="KundeArtikelID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="KundeID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ArtikelNR.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ArtikelName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Stand.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Fehlmenge.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Korrektur.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="StandBearbeitet.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="FehlmengeBearbeitet.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="KorrekturBearbeitet.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8A////////////////////////////////////////////////////////////////////////
////////8AD//////////////////w//D/////////////////8PDw///////MzP////zMz/D/8P////
//zMzP///8zMz/AA///////MzMzM//zMzMzP////////zMzMzMz8zMzMzM///////MzMzMzPzMzMzMz/
//////zMzMzM/8zMzMzP///////MzMzMzPzMzMzMz///////zMzMzM/8zMzMzP///////MzMzMzPzMzM
zMz///////zMzMzM/8zMzMzP/Mz////MzMzMzPzMzMzMz/zMzM//zMzMzM/8zMzMzP/MzMzM/8zMzMzP
zMzMzMz8zMzMzPzMzMzM/8zMzMzP/MzMzMz8zMzMzPzMzMzMz8zMzMzMzMzMzM/MzMzMzPzMzMzMz//8
zMzP//zMzMz//8zMzM////zM/////8zP/////Mz/////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAABAAEAAAAAAAEAIAC5FQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAFv
ck5UAc+id5oAABVzSURBVHja7Z0LuFVVtcfPOqCg4gMFVDQhsHyics4GfBUIPsMywULt4Ytz4CqSWV5R
UwnsZpaZ0c23XtNKI/JVGT5BTbtqiqX5SMRXGnI1LdBjiNwx9h57sfY6a5+91jl77b3WXr/f9/0//Pz4
Ps4Zc8wx5xpzzDmamgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
QmCC
</value>
</data>
</root>

View File

@ -157,7 +157,7 @@ namespace Deckungsbeitrag
case Keys.F10:
break;
case Keys.F5:
FormListe liste = new FormListe(null, true);
FormListe liste = new FormListe(null, 0);
if (liste.ShowDialog() == DialogResult.OK)
{
kunde = liste.kunde;

293
FormFehlmengeCount.Designer.cs generated Normal file
View File

@ -0,0 +1,293 @@
namespace Deckungsbeitrag
{
partial class FormFehlmengeCount
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormFehlmengeCount));
this.textBoxScann = new System.Windows.Forms.TextBox();
this.labelSuchtext = new System.Windows.Forms.Label();
this.buttonFertig = new System.Windows.Forms.Button();
this.labelName = new System.Windows.Forms.Label();
this.buttonArt1 = new System.Windows.Forms.Button();
this.buttonArt2 = new System.Windows.Forms.Button();
this.buttonArt4 = new System.Windows.Forms.Button();
this.buttonArt3 = new System.Windows.Forms.Button();
this.buttonArt7 = new System.Windows.Forms.Button();
this.buttonArt8 = new System.Windows.Forms.Button();
this.buttonArt6 = new System.Windows.Forms.Button();
this.buttonArt5 = new System.Windows.Forms.Button();
this.groupBoxArtikel = new System.Windows.Forms.GroupBox();
this.tableLayoutPanelArtikel = new System.Windows.Forms.TableLayoutPanel();
this.groupBoxArtikel.SuspendLayout();
this.tableLayoutPanelArtikel.SuspendLayout();
this.SuspendLayout();
//
// textBoxScann
//
this.textBoxScann.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxScann.Location = new System.Drawing.Point(12, 12);
this.textBoxScann.Name = "textBoxScann";
this.textBoxScann.Size = new System.Drawing.Size(80, 31);
this.textBoxScann.TabIndex = 1;
this.textBoxScann.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBoxScann_KeyDown);
this.textBoxScann.Leave += new System.EventHandler(this.textBoxScann_Leave);
//
// labelSuchtext
//
this.labelSuchtext.AutoSize = true;
this.labelSuchtext.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelSuchtext.ForeColor = System.Drawing.Color.White;
this.labelSuchtext.Location = new System.Drawing.Point(12, 55);
this.labelSuchtext.Name = "labelSuchtext";
this.labelSuchtext.Size = new System.Drawing.Size(195, 37);
this.labelSuchtext.TabIndex = 2;
this.labelSuchtext.Text = "KundeName";
//
// buttonFertig
//
this.buttonFertig.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonFertig.BackColor = System.Drawing.Color.Lime;
this.buttonFertig.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonFertig.Location = new System.Drawing.Point(1098, 12);
this.buttonFertig.Name = "buttonFertig";
this.buttonFertig.Size = new System.Drawing.Size(156, 142);
this.buttonFertig.TabIndex = 3;
this.buttonFertig.Text = "Kunde Fertig";
this.buttonFertig.UseVisualStyleBackColor = false;
this.buttonFertig.Click += new System.EventHandler(this.buttonFertig_Click);
//
// labelName
//
this.labelName.AutoSize = true;
this.labelName.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelName.ForeColor = System.Drawing.Color.White;
this.labelName.Location = new System.Drawing.Point(12, 92);
this.labelName.Name = "labelName";
this.labelName.Size = new System.Drawing.Size(148, 29);
this.labelName.TabIndex = 4;
this.labelName.Text = "KundeName";
//
// buttonArt1
//
this.buttonArt1.BackColor = System.Drawing.Color.Turquoise;
this.buttonArt1.Dock = System.Windows.Forms.DockStyle.Fill;
this.buttonArt1.ForeColor = System.Drawing.Color.Black;
this.buttonArt1.Location = new System.Drawing.Point(3, 3);
this.buttonArt1.Name = "buttonArt1";
this.buttonArt1.Size = new System.Drawing.Size(303, 243);
this.buttonArt1.TabIndex = 0;
this.buttonArt1.Text = "Artikel1";
this.buttonArt1.UseVisualStyleBackColor = false;
this.buttonArt1.Click += new System.EventHandler(this.Button_Click);
this.buttonArt1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonArt1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Button_MouseUp);
//
// buttonArt2
//
this.buttonArt2.BackColor = System.Drawing.Color.Turquoise;
this.buttonArt2.Dock = System.Windows.Forms.DockStyle.Fill;
this.buttonArt2.ForeColor = System.Drawing.Color.Black;
this.buttonArt2.Location = new System.Drawing.Point(312, 3);
this.buttonArt2.Name = "buttonArt2";
this.buttonArt2.Size = new System.Drawing.Size(303, 243);
this.buttonArt2.TabIndex = 1;
this.buttonArt2.Text = "Artikel2";
this.buttonArt2.UseVisualStyleBackColor = false;
this.buttonArt2.Click += new System.EventHandler(this.Button_Click);
this.buttonArt2.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonArt2.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Button_MouseUp);
//
// buttonArt4
//
this.buttonArt4.BackColor = System.Drawing.Color.Turquoise;
this.buttonArt4.Dock = System.Windows.Forms.DockStyle.Fill;
this.buttonArt4.ForeColor = System.Drawing.Color.Black;
this.buttonArt4.Location = new System.Drawing.Point(930, 3);
this.buttonArt4.Name = "buttonArt4";
this.buttonArt4.Size = new System.Drawing.Size(303, 243);
this.buttonArt4.TabIndex = 2;
this.buttonArt4.Text = "Artikel4";
this.buttonArt4.UseVisualStyleBackColor = false;
this.buttonArt4.Click += new System.EventHandler(this.Button_Click);
this.buttonArt4.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonArt4.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Button_MouseUp);
//
// buttonArt3
//
this.buttonArt3.BackColor = System.Drawing.Color.Turquoise;
this.buttonArt3.Dock = System.Windows.Forms.DockStyle.Fill;
this.buttonArt3.ForeColor = System.Drawing.Color.Black;
this.buttonArt3.Location = new System.Drawing.Point(621, 3);
this.buttonArt3.Name = "buttonArt3";
this.buttonArt3.Size = new System.Drawing.Size(303, 243);
this.buttonArt3.TabIndex = 3;
this.buttonArt3.Text = "Artikel3";
this.buttonArt3.UseVisualStyleBackColor = false;
this.buttonArt3.Click += new System.EventHandler(this.Button_Click);
this.buttonArt3.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonArt3.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Button_MouseUp);
//
// buttonArt7
//
this.buttonArt7.BackColor = System.Drawing.Color.Turquoise;
this.buttonArt7.Dock = System.Windows.Forms.DockStyle.Fill;
this.buttonArt7.ForeColor = System.Drawing.Color.Black;
this.buttonArt7.Location = new System.Drawing.Point(621, 252);
this.buttonArt7.Name = "buttonArt7";
this.buttonArt7.Size = new System.Drawing.Size(303, 244);
this.buttonArt7.TabIndex = 4;
this.buttonArt7.Text = "Artikel7";
this.buttonArt7.UseVisualStyleBackColor = false;
this.buttonArt7.Click += new System.EventHandler(this.Button_Click);
this.buttonArt7.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonArt7.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Button_MouseUp);
//
// buttonArt8
//
this.buttonArt8.BackColor = System.Drawing.Color.Turquoise;
this.buttonArt8.Dock = System.Windows.Forms.DockStyle.Fill;
this.buttonArt8.ForeColor = System.Drawing.Color.Black;
this.buttonArt8.Location = new System.Drawing.Point(930, 252);
this.buttonArt8.Name = "buttonArt8";
this.buttonArt8.Size = new System.Drawing.Size(303, 244);
this.buttonArt8.TabIndex = 5;
this.buttonArt8.Text = "Artikel8";
this.buttonArt8.UseVisualStyleBackColor = false;
this.buttonArt8.Click += new System.EventHandler(this.Button_Click);
this.buttonArt8.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonArt8.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Button_MouseUp);
//
// buttonArt6
//
this.buttonArt6.BackColor = System.Drawing.Color.Turquoise;
this.buttonArt6.Dock = System.Windows.Forms.DockStyle.Fill;
this.buttonArt6.ForeColor = System.Drawing.Color.Black;
this.buttonArt6.Location = new System.Drawing.Point(312, 252);
this.buttonArt6.Name = "buttonArt6";
this.buttonArt6.Size = new System.Drawing.Size(303, 244);
this.buttonArt6.TabIndex = 6;
this.buttonArt6.Text = "Artikel6";
this.buttonArt6.UseVisualStyleBackColor = false;
this.buttonArt6.Click += new System.EventHandler(this.Button_Click);
this.buttonArt6.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonArt6.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Button_MouseUp);
//
// buttonArt5
//
this.buttonArt5.BackColor = System.Drawing.Color.Turquoise;
this.buttonArt5.Dock = System.Windows.Forms.DockStyle.Fill;
this.buttonArt5.ForeColor = System.Drawing.Color.Black;
this.buttonArt5.Location = new System.Drawing.Point(3, 252);
this.buttonArt5.Name = "buttonArt5";
this.buttonArt5.Size = new System.Drawing.Size(303, 244);
this.buttonArt5.TabIndex = 7;
this.buttonArt5.Text = "Artikel5";
this.buttonArt5.UseVisualStyleBackColor = false;
this.buttonArt5.Click += new System.EventHandler(this.Button_Click);
this.buttonArt5.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonArt5.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Button_MouseUp);
//
// groupBoxArtikel
//
this.groupBoxArtikel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBoxArtikel.Controls.Add(this.tableLayoutPanelArtikel);
this.groupBoxArtikel.ForeColor = System.Drawing.Color.White;
this.groupBoxArtikel.Location = new System.Drawing.Point(12, 160);
this.groupBoxArtikel.Name = "groupBoxArtikel";
this.groupBoxArtikel.Size = new System.Drawing.Size(1242, 518);
this.groupBoxArtikel.TabIndex = 0;
this.groupBoxArtikel.TabStop = false;
this.groupBoxArtikel.Text = "Kundenartikel";
//
// tableLayoutPanelArtikel
//
this.tableLayoutPanelArtikel.BackColor = System.Drawing.Color.Transparent;
this.tableLayoutPanelArtikel.ColumnCount = 4;
this.tableLayoutPanelArtikel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanelArtikel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanelArtikel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanelArtikel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanelArtikel.Controls.Add(this.buttonArt1, 0, 0);
this.tableLayoutPanelArtikel.Controls.Add(this.buttonArt8, 3, 1);
this.tableLayoutPanelArtikel.Controls.Add(this.buttonArt6, 1, 1);
this.tableLayoutPanelArtikel.Controls.Add(this.buttonArt7, 2, 1);
this.tableLayoutPanelArtikel.Controls.Add(this.buttonArt5, 0, 1);
this.tableLayoutPanelArtikel.Controls.Add(this.buttonArt2, 1, 0);
this.tableLayoutPanelArtikel.Controls.Add(this.buttonArt3, 2, 0);
this.tableLayoutPanelArtikel.Controls.Add(this.buttonArt4, 3, 0);
this.tableLayoutPanelArtikel.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanelArtikel.Location = new System.Drawing.Point(3, 16);
this.tableLayoutPanelArtikel.Name = "tableLayoutPanelArtikel";
this.tableLayoutPanelArtikel.RowCount = 2;
this.tableLayoutPanelArtikel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanelArtikel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanelArtikel.Size = new System.Drawing.Size(1236, 499);
this.tableLayoutPanelArtikel.TabIndex = 8;
//
// FormFehlmengeCount
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.ClientSize = new System.Drawing.Size(1266, 690);
this.Controls.Add(this.labelName);
this.Controls.Add(this.buttonFertig);
this.Controls.Add(this.labelSuchtext);
this.Controls.Add(this.textBoxScann);
this.Controls.Add(this.groupBoxArtikel);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FormFehlmengeCount";
this.Text = "FEHLMENGEN-ERFASSUNG";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.Load += new System.EventHandler(this.FormFehlmengeCount_Load);
this.groupBoxArtikel.ResumeLayout(false);
this.tableLayoutPanelArtikel.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox textBoxScann;
private System.Windows.Forms.Label labelSuchtext;
private System.Windows.Forms.Button buttonFertig;
private System.Windows.Forms.Label labelName;
private System.Windows.Forms.Button buttonArt1;
private System.Windows.Forms.Button buttonArt2;
private System.Windows.Forms.Button buttonArt4;
private System.Windows.Forms.Button buttonArt3;
private System.Windows.Forms.Button buttonArt7;
private System.Windows.Forms.Button buttonArt8;
private System.Windows.Forms.Button buttonArt6;
private System.Windows.Forms.Button buttonArt5;
private System.Windows.Forms.GroupBox groupBoxArtikel;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanelArtikel;
}
}

376
FormFehlmengeCount.cs Normal file
View File

@ -0,0 +1,376 @@
using AForge.Video.DirectShow;
using DatenDB;
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls.WebParts;
using System.Windows.Forms;
namespace Deckungsbeitrag
{
public partial class FormFehlmengeCount : Form
{
private FilterInfoCollection videoDevices;
Kunde kunde;
List<KundeArtikel> artikelListe;
Fehlermeldungen meldung = new Fehlermeldungen();
//Benutzer benutzer;
string userid;
public FormFehlmengeCount()
{
InitializeComponent();
this.groupBoxArtikel.Visible = false;
//this.textBoxScann.Focus();
}
public FormFehlmengeCount(Benutzer ben) : this()
{
//benutzer = ben;
}
public FormFehlmengeCount(string uid) : this()
{
this.userid = uid;
}
private void FormFehlmengeCount_Load(object sender, EventArgs e)
{
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
ControlLaden();
//Kunde wird durch Scan oder Handeingabe Ausgewählt.
this.kunde = Funktionen.KundenAuswahl();
CloseKeyboard();
}
private void CloseKeyboard()
{
// Alle gestarteten Instanzen von TabTip.exe (Touch Tastatur) schließen
foreach (var process in Process.GetProcessesByName("TabTip"))
{
try
{
process.Close();
}
catch (Exception es)
{
// Fehlerbehandlung falls Prozess nicht beendet werden kann
MessageBox.Show($"Fehler beim Schließen: " + es.Message);
}
}
}
private void ControlLaden()
{
// Nachdem die textboxScann verlassen wird und ein Kunde gefunden wurde wird Form_Load ausgelöst.
if (kunde != null)
{
this.labelSuchtext.Text = kunde.Suchtext;
this.labelName.Text = kunde.KundeName;
this.labelName.Visible = this.labelSuchtext.Visible = true;
//this.textBoxScann.Clear();
this.artikelListe = KundeArtikel.GetList(kunde.KundeID.ToString());
this.textBoxScann.Text = this.kunde.KundeNummer;
this.textBoxScann.Enabled = false;
GroupBox_Load();
}
CloseKeyboard();
}
/// <summary>
/// Die GroupBox mit den Artikel-Buttons wird geladen
/// </summary>
private void GroupBox_Load()
{
foreach (Button btn in this.tableLayoutPanelArtikel.Controls) btn.Tag = btn.Text = null;
this.groupBoxArtikel.Visible = true;
//TODO: Nach Test und Rücksprache eventuell wieder umbauen. Benutzer.Rolle etc.
// Buttons werden den Artikeln aus der Artikelliste zugewiesen. Unterschied zwischen Frotteewäsche, Spannleintüchern, Großteilen und Kleinteilen
foreach (KundeArtikel artikel in artikelListe)
{
// Unterschied zwischen Maschine oder Person.
if(this.userid.StartsWith("ms"))
{
// Wird bei Frottee verarbeitet
if (this.userid.Contains("frottee"))
{
// Wird bei FROTTEE verarbeitet.
switch (artikel.ArtikelNR)
{
case var nr when nr.ToString().StartsWith("6311"): //HANDTUCH
this.buttonArt1.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("6312") & nr.ToString().EndsWith("0"): //DUSCHTUCH WEISS
this.buttonArt2.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("6314"): //BADEVORLEGER
this.buttonArt3.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("6313"): //BADETUCH
this.buttonArt4.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("6316"): //BADEMANTEL
this.buttonArt5.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("6324"): //SAUNATUCH
this.buttonArt6.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("6312") & nr.ToString().EndsWith("1"): //DUSCHTUCH BLAU
this.buttonArt7.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("6354"): //GESICHTSTUCH
this.buttonArt8.Tag = artikel;
break;
default:
break;
}
}
// Wird bei Großteile verarbeitet
if (this.userid.Contains("großteile"))
{
// Wird bei Großteilen verarbeitet
switch (artikel.ArtikelNR)
{
case var nr when nr.ToString().StartsWith("6112"): //DECKENBEZUG
this.buttonArt1.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61110"): //LEINTUCH SINGLE
this.buttonArt2.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61112"): //DOPPELLEINTUCH
this.buttonArt3.Tag = artikel;
break;
//case var nr when nr.ToString().StartsWith(""):
// this.buttonArt4.Tag = artikel;
// break;
//case var nr when nr.ToString().StartsWith(""):
// this.buttonArt5.Tag = artikel;
// break;
//case var nr when nr.ToString().StartsWith(""):
// this.buttonArt6.Tag = artikel;
// break;
//case var nr when nr.ToString().StartsWith(""):
// this.buttonArt7.Tag = artikel;
// break;
//case var nr when nr.ToString().StartsWith(""):
// this.buttonArt8.Tag = artikel;
// break;
default:
break;
}
}
// Wird bei Kleinteile verarbeitet
if (this.userid.Contains("kleinteile"))
{
// Wird bei Kleinteilen verarbeitet
switch (artikel.ArtikelNR)
{
case var nr when nr.ToString().StartsWith("61210"): //POLSTERBEZUG 60x80
this.buttonArt1.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61211") & nr.ToString().EndsWith("0"): //POLSTERBEZUG 40x40
this.buttonArt2.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61211") & nr.ToString().EndsWith("1"): //POLSTERBEZUG 40x50
this.buttonArt3.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61211") & nr.ToString().EndsWith("2"): //POLSTERBEZUG 40x60
this.buttonArt4.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61211") & nr.ToString().EndsWith("3"): //POLSTERBEZUG 40x70
this.buttonArt5.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61221"): //MUNDSERVIETTE
this.buttonArt6.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61222"): //DECKSERVIETTE
this.buttonArt7.Tag = artikel;
break;
default:
break;
}
}
}
else // UserID Contains "ps" für Person
{
// Wird bei Spannleintuch verarbeitet.
if (this.userid.Contains("spannleintuch"))
{
switch (artikel.ArtikelNR)
{
case var nr when nr.ToString().StartsWith("61115") & (nr.ToString().EndsWith("00") || nr.ToString().EndsWith("30")): //SPANNLEINTUCH SINGLE
this.buttonArt1.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61115") & nr.ToString().EndsWith("10"): //SPANNLEINTUCH SINGLE GELB
this.buttonArt2.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61115") & nr.ToString().EndsWith("20"): //SPANNLEINTUCH SINGLE WEISS
this.buttonArt3.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61115") & (nr.ToString().EndsWith("30") || nr.ToString().EndsWith("40")): //SPANNLEINTUCH QUEEN BLAU GELB
this.buttonArt4.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61116") & nr.ToString().EndsWith("00"): //SPANNLEINTUCH DOUBLE
this.buttonArt5.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61116") & (nr.ToString().EndsWith("10") || nr.ToString().EndsWith("40")): //SPANNLEINTUCH LILA ITALO
this.buttonArt6.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61116") & (nr.ToString().EndsWith("20") || nr.ToString().EndsWith("21")): //SPANNLEINTUCH DOUBLE WEISS GRAU
this.buttonArt7.Tag = artikel;
break;
case var nr when nr.ToString().StartsWith("61116") & nr.ToString().EndsWith("30"): //SPANNLEINTUCH DOUBLE ROT
this.buttonArt8.Tag = artikel;
break;
default:
break;
}
}
}
}
// Button mit Tag bearbeiten. Buttons ohne Tag werden deaktiviert.
foreach(Button btn in this.tableLayoutPanelArtikel.Controls)
{
if (btn.Tag == null) { btn.Enabled = false; btn.BackColor = Color.Gray; btn.Text = ""; }
else
{
KundeArtikel art = (KundeArtikel)btn.Tag;
int index = art.ArtikelName.IndexOf(" ");
btn.Text = art.ArtikelName;
btn.Font = new Font(btn.Font.Name, 18);
btn.BackColor = Color.Turquoise;
btn.Enabled = true;
}
}
}
/// <summary>
/// Wenn der Kunde Fertig gemacht wurde, werden Controls deaktiviert und ausgeblendet bis neuer Kunde gewählt
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonFertig_Click(object sender, EventArgs e)
{
// Controls werden durchgegangen und ausgeblendet oder der Text entfernt.
foreach(Control ctr in this.Controls)
{
switch (ctr)
{
case Label lbl:
lbl.Text = string.Empty;
//lbl.Visible = false;
break;
case GroupBox gb:
gb.Visible = false;
break;
case TextBox txt:
txt.Clear();
txt.Enabled = true;
break;
default:
break;
}
}
// Focus auf TextBox damit Kundennummer eingegeben oder gescannt werden kann
//this.textBoxScann.Focus();
//Kunde wird durch Scan oder Handeingabe Ausgewählt.
this.kunde = Funktionen.KundenAuswahl();
ControlLaden();
}
/// <summary>
/// TextBox Scann Events
/// Beim Verlassen der TextBox wird Kunde aus DB geholt
/// Wenn Enter gedrückt wird, wird TextBox verlassen
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textBoxScann_Leave(object sender, EventArgs e)
{
//TODO: Wenn Nachwäsche oder Müllwäsche alle Artikel anzeigen.
// Kundennummer wird ausgelesen und Kunde aus DB geholt. Form_Load wird danach ausgelöst
if (this.kunde == null)
{
this.kunde = Kunde.GetKunde(this.textBoxScann.Text, null, null);
ControlLaden();
}
}
private void textBoxScann_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
// Leave-Ereignis manuell ausführen
textBoxScann_Leave(sender, EventArgs.Empty);
// Fokus auf das nächste Steuerelement verschieben
//this.SelectNextControl((Control)sender, true, true, true, true);
// Standardverhalten (Beep) unterdrücken
e.SuppressKeyPress = true;
}
}
/// <summary>
/// FehlmengeCount Button Events
/// Mouse Up & Down Event für Button Farbwechsel
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button_MouseUp(object sender, MouseEventArgs e)
{
Button btn = sender as Button;
if (btn != null)
{
btn.BackColor = Color.Turquoise; // Gewünschte Farbe beim MouseUp
}
}
private void Button_MouseDown(object sender, MouseEventArgs e)
{
Button btn = sender as Button;
if (btn != null)
{
btn.BackColor = Color.LightSeaGreen; // Gewünschte Farbe beim MouseDown
}
}
private void Button_Click(object sender, EventArgs e)
{
// Beim geklickten Artikel wird Fehlmenge erhöht
Button btn = (Button)sender;
KundeArtikel artstand = (KundeArtikel)btn.Tag;
artstand.Fehlmenge++;
// Wenn speichern nicht möglich, wird darauf hingewiesen.
if (artstand.Save() != 1) meldung.FehlmengeCount();
else
{
Artikel artikel = Artikel.GetArtikel(artstand.ArtikelNR);
artikel.Nachwaesche++;
artikel.Save();
}
}
private void textBoxScann_Enter(object sender, EventArgs e)
{
//GetKunde();
}
}
}

219
FormFehlmengeCount.resx Normal file
View File

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
QmCC
</value>
</data>
</root>

83
FormHelp.Designer.cs generated Normal file
View File

@ -0,0 +1,83 @@
namespace Deckungsbeitrag
{
partial class FormHelp
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormHelp));
this.buttonOK = new System.Windows.Forms.Button();
this.pictureBoxImage = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxImage)).BeginInit();
this.SuspendLayout();
//
// buttonOK
//
this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonOK.Location = new System.Drawing.Point(713, 119);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(75, 23);
this.buttonOK.TabIndex = 4;
this.buttonOK.Text = "OK";
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
//
// pictureBoxImage
//
this.pictureBoxImage.Dock = System.Windows.Forms.DockStyle.Left;
this.pictureBoxImage.Image = global::Deckungsbeitrag.Properties.Resources.question_sign_icon_icons_com_73445;
this.pictureBoxImage.Location = new System.Drawing.Point(0, 0);
this.pictureBoxImage.Name = "pictureBoxImage";
this.pictureBoxImage.Size = new System.Drawing.Size(100, 154);
this.pictureBoxImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBoxImage.TabIndex = 5;
this.pictureBoxImage.TabStop = false;
//
// FormHelp
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.LightYellow;
this.ClientSize = new System.Drawing.Size(800, 154);
this.Controls.Add(this.pictureBoxImage);
this.Controls.Add(this.buttonOK);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FormHelp";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Hilfe";
this.TopMost = true;
this.Load += new System.EventHandler(this.FormHelp_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBoxImage)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button buttonOK;
private System.Windows.Forms.PictureBox pictureBoxImage;
}
}

85
FormHelp.cs Normal file
View File

@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Deckungsbeitrag
{
public partial class FormHelp : Form
{
string[] Keys;
string[] KeyBesch;
int abstandSeite = 100;
int abstand = 20;
int abstandZwischen = 5;
public FormHelp()
{
InitializeComponent();
}
/// <summary>
/// Übergeben von string[] KeyWord und string[] Beschreibung
/// </summary>
/// <param name="keys"></param>
/// <param name="keytext"></param>
public FormHelp(string[] keys, string[] keytext) : this()
{
this.Keys = keys;
this.KeyBesch = keytext;
}
private void FormHelp_Load(object sender, EventArgs e)
{
Size longestkey = new Size(0, 0);
Point location = new Point(0, 0);
// KeyWords verarbeiten und als Label einblenden
for (int i = 0; i < Keys.Length; i++)
{
Label lbl = new Label();
lbl.Name = $"lblKey{i + 1}";
lbl.Text = Keys[i];
lbl.Tag = Keys[i];
lbl.Font = new Font(lbl.Font.FontFamily, 12, FontStyle.Bold);
lbl.Size = TextRenderer.MeasureText(lbl.Text, lbl.Font);
if (i == 0) lbl.Location = new Point(abstandSeite, abstand);
else lbl.Location = new Point(abstandSeite, abstand + (lbl.Height + abstandZwischen) * i);
if(lbl.Width > longestkey.Width) longestkey.Width = lbl.Width;
this.Controls.Add(lbl);
}
// KeyBeschreibung verarbeiten und als label einblenden.
for (int i = 0; i < KeyBesch.Length; i++)
{
Label lbl = new Label();
lbl.Name = $"lblBesch{i + 1}";
lbl.Text = KeyBesch[i];
lbl.Tag = KeyBesch[i];
lbl.Font = new Font(lbl.Font.FontFamily, 12);
lbl.Size = TextRenderer.MeasureText(lbl.Text, lbl.Font);
if (i == 0) lbl.Location = new Point(abstandSeite + longestkey.Width + 10, abstand);
else lbl.Location = new Point((abstandSeite + longestkey.Width + 10), abstand + (lbl.Height + abstandZwischen) * i);
if(lbl.Right > location.X) location.X = lbl.Right;
if(lbl.Bottom > location.Y) location.Y = lbl.Bottom;
this.Controls.Add(lbl);
}
// Größe des Fensters bestimmen.
this.Width = location.X + abstandSeite;
this.Height = location.Y + buttonOK.Height + 50;
}
private void buttonOK_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

219
FormHelp.resx Normal file
View File

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
QmCC
</value>
</data>
</root>

View File

@ -1,7 +1,7 @@

namespace Deckungsbeitrag
{
partial class Import
partial class FormImport
{
/// <summary>
/// Required designer variable.
@ -30,7 +30,7 @@ namespace Deckungsbeitrag
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Import));
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormImport));
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.tSBAbbrechen = new System.Windows.Forms.ToolStripButton();
this.toolStripOpen = new System.Windows.Forms.ToolStripButton();

View File

@ -15,7 +15,7 @@ using System.Windows.Forms;
namespace Deckungsbeitrag
{
public partial class Import : Form
public partial class FormImport : Form
{
public Umsatz umsatz = new Umsatz();
public Kunde kunde = new Kunde();
@ -31,7 +31,7 @@ namespace Deckungsbeitrag
int[] fixlohn = ConfigurationManager.AppSettings["FixLohn"].Split(',').Select(int.Parse).ToArray();
int[] fixmiet = ConfigurationManager.AppSettings["FixMiete"].Split(',').Select(int.Parse).ToArray();
Thread t;
public Import()
public FormImport()
{
InitializeComponent();

87
FormKamera.Designer.cs generated Normal file
View File

@ -0,0 +1,87 @@
namespace Deckungsbeitrag
{
partial class FormKamera
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormKamera));
this.pictureBoxKamera = new System.Windows.Forms.PictureBox();
this.buttonHand = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxKamera)).BeginInit();
this.SuspendLayout();
//
// pictureBoxKamera
//
this.pictureBoxKamera.Dock = System.Windows.Forms.DockStyle.Top;
this.pictureBoxKamera.Location = new System.Drawing.Point(0, 0);
this.pictureBoxKamera.Name = "pictureBoxKamera";
this.pictureBoxKamera.Size = new System.Drawing.Size(584, 316);
this.pictureBoxKamera.TabIndex = 0;
this.pictureBoxKamera.TabStop = false;
//
// buttonHand
//
this.buttonHand.BackColor = System.Drawing.Color.Yellow;
this.buttonHand.Dock = System.Windows.Forms.DockStyle.Bottom;
this.buttonHand.FlatAppearance.BorderSize = 0;
this.buttonHand.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonHand.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonHand.ForeColor = System.Drawing.SystemColors.ControlText;
this.buttonHand.Location = new System.Drawing.Point(0, 321);
this.buttonHand.Margin = new System.Windows.Forms.Padding(2);
this.buttonHand.Name = "buttonHand";
this.buttonHand.Size = new System.Drawing.Size(584, 41);
this.buttonHand.TabIndex = 16;
this.buttonHand.Text = "Handeingabe starten";
this.buttonHand.UseVisualStyleBackColor = false;
this.buttonHand.Click += new System.EventHandler(this.buttonHand_Click);
//
// FormKamera
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Control;
this.ClientSize = new System.Drawing.Size(584, 362);
this.Controls.Add(this.buttonHand);
this.Controls.Add(this.pictureBoxKamera);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FormKamera";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "KAMERA";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormKamera_FormClosing);
this.Load += new System.EventHandler(this.FormKamera_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBoxKamera)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.PictureBox pictureBoxKamera;
private System.Windows.Forms.Button buttonHand;
}
}

127
FormKamera.cs Normal file
View File

@ -0,0 +1,127 @@
using AForge.Video;
using AForge.Video.DirectShow;
using DatenDB;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ZXing;
namespace Deckungsbeitrag
{
public partial class FormKamera : Form
{
public Kunde kunde;
//QR-Code Scan mit integrierter Kamera
private VideoCaptureDevice videoSource;
private FilterInfoCollection videoDevices;
private BarcodeReader barcodeReader;
private bool isScanning = false;
public FormKamera()
{
InitializeComponent();
}
public FormKamera(FilterInfoCollection videoDevices) : this()
{
this.videoDevices = videoDevices;
}
private void FormKamera_Load(object sender, EventArgs e)
{
barcodeReader = new BarcodeReader();
videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
videoSource.NewFrame += VideoSource_NewFrame;
videoSource.Start();
isScanning = true;
}
/// <summary>
/// PictureBox mit Live Bild der Kamera laden und anzeigen.
/// </summary>
/// <param name="sender"></param>
/// <param name="eventArgs"></param>
private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
using (Bitmap unflippedbitmap = (Bitmap)eventArgs.Frame.Clone())
{
Bitmap bitmap = FlipHorizontal(unflippedbitmap);
pictureBoxKamera.Image?.Dispose();
pictureBoxKamera.Image = (Bitmap)bitmap.Clone();
var result = barcodeReader.Decode(bitmap);
if (result != null && result.BarcodeFormat == BarcodeFormat.QR_CODE)
{
this.Invoke(new Action(() => {
this.kunde = Kunde.GetKunde(result.Text, null, null); // Direkt in TextBox schreiben
pictureBoxKamera.Image?.Dispose();
StopScanning();
System.Media.SystemSounds.Asterisk.Play();
this.DialogResult = DialogResult.OK;
this.Close();
}));
}
}
}
/// <summary>
/// Die Bitmap wir Horizontal geflippt damit die Orientierung beim QR-Scann besser ist.
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
private Bitmap FlipHorizontal(Bitmap source)
{
Bitmap flipped = (Bitmap)source.Clone();
flipped.RotateFlip(RotateFlipType.RotateNoneFlipX); // ✅ Funktioniert!
return flipped;
}
/// <summary>
/// Scannen wird hier gestoppt.
/// </summary>
private void StopScanning()
{
if (videoSource != null)
{
videoSource.SignalToStop();
videoSource = null;
isScanning = false;
}
}
/// <summary>
/// Wenn QR-Code scannen nicht möglich ist, kann händische Eingabe gewählt werden.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonHand_Click(object sender, EventArgs e)
{
StopScanning();
this.DialogResult = DialogResult.No;
this.Close();
}
/// <summary>
/// Scanning beenden falls Form geschlossen wird.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FormKamera_FormClosing(object sender, FormClosingEventArgs e)
{
if (isScanning) { StopScanning(); this.DialogResult = DialogResult.Cancel; }
}
}
}

219
FormKamera.resx Normal file
View File

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
QmCC
</value>
</data>
</root>

449
FormKundeVW.cs Normal file
View File

@ -0,0 +1,449 @@
using AForge.Video.DirectShow;
using BrightIdeasSoftware;
using DatenDB;
using Spire.Barcode;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Printing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using ZXing;
namespace Deckungsbeitrag
{
public partial class FormKundeVW : Form
{
private FilterInfoCollection videoDevices;
List<Sortiment> sortimentListe = null;
List<Sortiment> resultList = null;
List<KundeArtikel> standListe = null;
Sortiment result = null;
Kunde kunde = null;
Bitmap bitmap = null;
Image qrcode = null;
Fehlermeldungen meldung = new Fehlermeldungen();
Benutzer benutzer;
int beforeedit = 0;
int[] saveindex = null;
public FormKundeVW()
{
InitializeComponent();
}
public FormKundeVW(Kunde kunde) :this()
{
this.kunde = kunde;
}
public FormKundeVW(Benutzer benutzer) : this()
{
this.benutzer = benutzer;
}
private void KundeDaten_Load(object sender, EventArgs e)
{
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
//Sortiment Liste erstellen.
sortimentListe = Funktionen.SortimentLesen("Liste");
//Alle TextBoxen deaktivieren.
TextBoxes_Unable();
this.tabControlKunde.Location = new Point(this.textBoxSuchtext.Right + 10, 11);
//Aufgaben Liste erstellen und mit ComboBox verknüpfen.
List<Aufgabe> aufgabenlist1 = Aufgabe.GetList(2);
this.comboBoxAufgabe.DataSource = aufgabenlist1;
this.comboBoxAufgabe.DisplayMember = "Bezeichnung";
this.comboBoxAufgabe.SelectedIndex = -1;
this.comboBoxAufgabe.Enabled = false;
this.kunde = Funktionen.KundenAuswahl();
if (this.kunde != null) DatenLesen();
}
private void DatenLesen()
{
//TextBoxen deaktivieren.
TextBoxes_Unable();
//Alle Einträge der DataGridView entfernen. Davor muss die DataSource entfernt werden.
this.dGArtikel.DataSource = null;
this.dGArtikel.Rows.Clear();
//ComboBox für Sonderaufgaben wie "In Säcke Verpacken".
this.comboBoxAufgabe.Enabled = true;
//Properties für Standliste.
//sortNr ist falls noch kein Stand hinterlegt wurde
string sortNr = string.Empty;
//kundeid ist falls bereits ein Stand existiert und die Artikel gespeichert wurden.
string kundeid = this.kunde.KundeID.ToString();
// Wenn bereits ein Stand gespeichert ist, kommt er aus der DB. Wenn kein Stand gespeichert kommt Liste aus Sortiment.
if (KundeArtikel.GetList(kundeid).Count > 0)
{
this.standListe = KundeArtikel.GetList(kundeid);
Load_Gridview(this.standListe);
}
else
{
//Jedes Innsbrucker Soziale Dienste Sortiment ist gleich.
if (this.kunde.KundeNummer == "010069" | this.kunde.KundeNummer == "010071") sortNr = "010068";
else sortNr = this.kunde.KundeNummer;
//Sortiment holen und Standliste filtern.
standListe = new List<KundeArtikel>();
foreach(Sortiment sort in sortimentListe.FindAll(Sortiment => Sortiment.KundeNummer == sortNr))
{
KundeArtikel item = new KundeArtikel();
item.ArtikelNR = sort.ArtNr;
item.ArtikelName = sort.ArtName;
item.KundeID = Kunde.GetKundeID(sort.KundeNummer, null);
standListe.Add(item);
}
//GridView mit der jeweiligen Liste füllen.
Load_Gridview(this.standListe);
}
// QR-Code wird erstellt
BarcodeWriter code = new BarcodeWriter();
code.Format = BarcodeFormat.QR_CODE;
qrcode = code.Write(this.kunde.KundeNummer);
this.pictureBoxQRCode.Image = qrcode;
this.pictureBoxQRCode.SizeMode = PictureBoxSizeMode.Zoom;
// SWS-Entwurf wird erstellt und angezeigt
this.pictureBoxEntwurf.Image = Funktionen.SWS_Entwurf(null, this.kunde);
this.pictureBoxEntwurf.Visible = true;
// Restliche TextBoxen werden befüllt
this.textBoxKndNr.Text = this.kunde.KundeNummer;
this.textBoxKundeName.Text = this.kunde.KundeName;
this.textBoxKndName2.Text = this.kunde.KundeName2;
this.textBoxStraße.Text = this.kunde.Strasse;
this.textBoxPLZ.Text = this.kunde.PLZ.ToString();
this.textBoxOrt.Text = this.kunde.Ort;
this.textBoxSuchtext.Text = this.kunde.Suchtext;
// ComboBox für Aufgabe wird geladen
foreach (Aufgabe auf in comboBoxAufgabe.Items) if (auf.AufgabeID == this.kunde.Aufgabe) this.comboBoxAufgabe.SelectedItem = auf;
if (this.comboBoxAufgabe.SelectedItem != null) this.buttonAufgEnt.Enabled = true;
// Wird noch nicht verwendet
this.buttonProgramm.Text = "WP 01";
//Buttons und ähnliches aktivieren.
this.buttonProgramm.Enabled = true;
this.buttonBewertung.Enabled = true;
this.tabControlKunde.Enabled = true;
OLV_Load();
Chart_Load();
}
/// <summary>
/// TextBox Events
/// </summary>
private void TextBoxes_Unable()
{
foreach (Control ctr in this.Controls) if (ctr is TextBox) { ctr.Enabled = false; }
}
private void TextBoxKndNr_Leave(object sender, EventArgs e)
{
}
private void TSBBeenden_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
private void ButtonDrucken_Click(object sender, EventArgs e)
{
Funktionen.SWS_Drucken(null, this.kunde, this);
}
private void TSBNext_Click(object sender, EventArgs e)
{
// Kundenliste öffnen und Kunde auswählen.
this.kunde = Funktionen.KundenAuswahl();
if (kunde != null) DatenLesen();
}
private void ButtonProgramm_Click(object sender, EventArgs e)
{
FormProgrammauswahl auswahl = new FormProgrammauswahl();
if (auswahl.ShowDialog() == DialogResult.OK)
{
DatenLesen();
}
}
private void buttonAufgEnt_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Möchtest du die Aufgabe wirklich löschen?", "Frage", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
this.comboBoxAufgabe.SelectedIndex = -1;
this.kunde.Aufgabe = null;
this.kunde.Save();
}
}
private void OLV_Load()
{
foreach(ObjectListView olv in this.Controls.OfType<ObjectListView>())
{
olv.HeaderFormatStyle = Funktionen.GetHeader();
olv.OwnerDraw = true;
Generator.GenerateColumns(olv, typeof(OLVKundenumsatz), true);
if (olv.Name.Contains("Jahresumsatz"))
{
foreach (OLVColumn c in olv.Columns) if (c.Name == "Zeitraum") c.Text = "Jahr";
olv.SetObjects(OLVKundenumsatz.GetJahresumsatz(this.kunde.KundeID));
}
if (olv.Name.Contains("Quartalsumsatz"))
{
foreach (OLVColumn c in olv.Columns) if (c.Name == "Zeitraum") c.Text = "Quartal";
olv.SetObjects(OLVKundenumsatz.GetQuartalsumsatz(this.kunde.KundeID));
}
if (olv.Name.Contains("Monatsumsatz"))
{
foreach (OLVColumn c in olv.Columns) if (c.Name == "Zeitraum") c.Text = "Monat";
olv.SetObjects(OLVKundenumsatz.GetMonatsumsatz(this.kunde.KundeID));
}
}
}
private void Chart_Load()
{
foreach (Chart chart in this.Controls.OfType<Chart>()) chart.Visible = true;
//IMPLEMENTIEREN
ClassChart ch = ClassChart.FillChart(this.kunde.KundeID);
//Chart Jahresumsatz
List<OLVKundenumsatz> olv = OLVKundenumsatz.GetJahresumsatz(this.kunde.KundeID);
string[] x = new string[olv.Count()];
double[] y = new double[olv.Count()];
for (int i = 0; i < y.Length; i++)
{
y[i] = olv[i].Umsatz;
x[i] = olv[i].Zeitraum;
}
this.chartJahresumsatz.Series[0].LegendText = "Umsatz";
this.chartJahresumsatz.Series[0].ChartType = SeriesChartType.Column;
this.chartJahresumsatz.Series[0].IsValueShownAsLabel = true;
this.chartJahresumsatz.Series[0].Points.DataBindXY(x, y);
//Chart Quartalsumsatz
List<OLVKundenumsatz> olvq = OLVKundenumsatz.GetQuartalsumsatz(this.kunde.KundeID);
string[] xq = new string[olvq.Count()];
double[] yq = new double[olvq.Count()];
for (int i = 0; i < olvq.Count(); i++)
{
yq[i] = olvq[i].Umsatz;
xq[i] = olvq[i].Zeitraum;
}
this.chartQuartalsumsatz.Series[0].LegendText = "Umsatz";
this.chartQuartalsumsatz.Series[0].ChartType = SeriesChartType.Bar;
this.chartQuartalsumsatz.Series[0].IsValueShownAsLabel = true;
this.chartQuartalsumsatz.Series[0].Points.DataBindXY(xq, yq);
}
private void comboBoxAufgabe_DropDownClosed(object sender, EventArgs e)
{
if (MessageBox.Show("Möchtest du die Aufgabe speichern?", "Frage", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
if (this.comboBoxAufgabe.SelectedItem == null) this.kunde.Aufgabe = null;
else this.kunde.Aufgabe = ((Aufgabe)this.comboBoxAufgabe.SelectedItem).AufgabeID;
this.kunde.Save();
}
}
private void KundeDaten_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.End) TSBNext_Click(this, e);
}
/// <summary>
/// Events für ShortCut zu "Nächster Kunde"
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void nextToolStripMenuItem_Click(object sender, EventArgs e)
{
TSBNext_Click(this, e);
}
private void nächsterKundeToolStripMenuItem_Click(object sender, EventArgs e)
{
TSBNext_Click(this, e);
}
/// <summary>
/// Laden der DataGridView zur Stand und Fehlmengenverwaltung.
/// </summary>
/// <param name="objectListe"></param>
private void Load_Gridview(List<KundeArtikel> objectListe)
{
this.dGArtikel.AutoGenerateColumns = false;
foreach (DataGridViewColumn col in this.dGArtikel.Columns)
{
col.DataPropertyName = col.Name;
}
// DataGridView mit ArtikelStand Liste verbinden und Columns automatisch generieren.
this.dGArtikel.DataSource = objectListe;
this.dGArtikel.ClearSelection();
this.dGArtikel.CurrentCell = this.dGArtikel.Rows[0].Cells[3];
// Alle Spaltenbreiten an den Zellinhalt anpassen
this.dGArtikel.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
// Alle Zeilenhöhen an Zellinhalt anpassen
this.dGArtikel.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
}
/// <summary>
/// Speichern von Stand und Fehlmengenänderungen.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void standSpeichernToolStripMenuItem_Click(object sender, EventArgs e)
{
int tosave = 0;
int toupdate = 0;
int saved = 0;
this.dGArtikel.EndEdit();
// Speichern der Zeilen aus der DataGridView
foreach(DataGridViewRow row in this.dGArtikel.Rows)
{
KundeArtikel item = KundeArtikel.GetItemIfAvailable(int.Parse(row.Cells[1].Value.ToString()), int.Parse(row.Cells[2].Value.ToString()));
if(item != null)
{
++toupdate;
if (int.Parse(row.Cells[4].Value.ToString()) != 0)
{
item.Stand = int.Parse(row.Cells[4].Value.ToString());
item.StandBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (int.Parse(row.Cells[5].Value.ToString()) != 0)
{
item.Fehlmenge = int.Parse(row.Cells[5].Value.ToString());
item.FehlmengeBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (int.Parse(row.Cells[6].Value.ToString()) != 0)
{
item.Korrektur = int.Parse(row.Cells[6].Value.ToString());
item.KorrekturBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (item.Save() == 1) saved++;
}
else
{
++tosave;
item.KundeArtikelID = null;
item.KundeID = int.Parse(row.Cells[1].Value.ToString());
item.ArtikelNR = int.Parse(row.Cells[2].Value.ToString());
item.ArtikelName = row.Cells[3].Value.ToString();
if (int.Parse(row.Cells[4].Value.ToString()) != 0)
{
item.Stand = int.Parse(row.Cells[4].Value.ToString());
item.StandBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (int.Parse(row.Cells[5].Value.ToString()) != 0)
{
item.Fehlmenge = int.Parse(row.Cells[5].Value.ToString());
item.FehlmengeBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (int.Parse(row.Cells[6].Value.ToString()) != 0)
{
item.Korrektur = int.Parse(row.Cells[6].Value.ToString());
item.KorrekturBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (item.Save() == 1) saved++;
}
}
// Überprüfung ob alle Zeilen gespeichert wurden.
if ((toupdate + tosave) == saved) meldung.Gespeichert();
else meldung.Speicherfehler();
Load_Gridview(this.standListe);
}
private void dGArtikel_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
DataGridView dataGrid = sender as DataGridView;
beforeedit = int.Parse(dataGrid.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
}
private void dGArtikel_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridView dg = sender as DataGridView;
DataGridViewRow row = dg.Rows[e.RowIndex];
DataGridViewCell cell = dg.Rows[e.RowIndex].Cells[e.ColumnIndex];
if (cell != null)
{
// Wenn der Zellenwert sich geändert hat, wird die entsprechende Zahl in der DB upgedatet.
if (beforeedit != int.Parse(cell.Value.ToString()))
{
if (row.Cells[0].Value != null)
{
KundeArtikel item = KundeArtikel.GetItem(int.Parse(row.Cells[0].Value.ToString()));
item.KundeArtikelID = int.Parse(row.Cells[0].Value.ToString());
if (row.Cells[e.ColumnIndex].OwningColumn.Name == "Stand")
{
item.Stand = int.Parse(row.Cells[e.ColumnIndex].Value.ToString());
item.StandBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (row.Cells[e.ColumnIndex].OwningColumn.Name == "Fehlmenge")
{
item.Fehlmenge = int.Parse(row.Cells[e.ColumnIndex].Value.ToString());
item.FehlmengeBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (row.Cells[e.ColumnIndex].OwningColumn.Name == "Korrektur")
{
item.Korrektur = int.Parse(row.Cells[e.ColumnIndex].Value.ToString());
item.KorrekturBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (item.Save() != 1) meldung.Speicherfehler();
}
}
}
}
}
}
}

File diff suppressed because it is too large Load Diff

255
FormKundeVW.resx Normal file
View File

@ -0,0 +1,255 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>430, 17</value>
</metadata>
<metadata name="KundeArtikelID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="KundeID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ArtikelNR.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ArtikelName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Stand.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Fehlmenge.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Korrektur.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="StandBearbeitet.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="FehlmengeBearbeitet.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="KorrekturBearbeitet.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>38</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
QmCC
</value>
</data>
</root>

42
FormLaden.Designer.cs generated
View File

@ -31,6 +31,8 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormLaden));
this.pictureBoxWalli = new System.Windows.Forms.PictureBox();
this.labelLaden = new System.Windows.Forms.Label();
this.buttonAbbrechen = new System.Windows.Forms.Button();
this.progressBar1 = new System.Windows.Forms.ProgressBar();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxWalli)).BeginInit();
this.SuspendLayout();
//
@ -40,9 +42,10 @@
this.pictureBoxWalli.BackColor = System.Drawing.Color.White;
this.pictureBoxWalli.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBoxWalli.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxWalli.Image")));
this.pictureBoxWalli.Location = new System.Drawing.Point(0, 6);
this.pictureBoxWalli.Location = new System.Drawing.Point(138, 156);
this.pictureBoxWalli.Margin = new System.Windows.Forms.Padding(2);
this.pictureBoxWalli.Name = "pictureBoxWalli";
this.pictureBoxWalli.Size = new System.Drawing.Size(300, 138);
this.pictureBoxWalli.Size = new System.Drawing.Size(226, 140);
this.pictureBoxWalli.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pictureBoxWalli.TabIndex = 0;
this.pictureBoxWalli.TabStop = false;
@ -55,26 +58,47 @@
this.labelLaden.BackColor = System.Drawing.Color.White;
this.labelLaden.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.labelLaden.Font = new System.Drawing.Font("Microsoft Sans Serif", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelLaden.Location = new System.Drawing.Point(0, 144);
this.labelLaden.Location = new System.Drawing.Point(138, 295);
this.labelLaden.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.labelLaden.Name = "labelLaden";
this.labelLaden.Size = new System.Drawing.Size(300, 71);
this.labelLaden.Size = new System.Drawing.Size(226, 58);
this.labelLaden.TabIndex = 1;
this.labelLaden.Text = "LÄDT...";
this.labelLaden.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
this.labelLaden.UseWaitCursor = true;
//
// buttonAbbrechen
//
this.buttonAbbrechen.Location = new System.Drawing.Point(205, 397);
this.buttonAbbrechen.Name = "buttonAbbrechen";
this.buttonAbbrechen.Size = new System.Drawing.Size(75, 23);
this.buttonAbbrechen.TabIndex = 2;
this.buttonAbbrechen.Text = "Abbrechen";
this.buttonAbbrechen.UseVisualStyleBackColor = true;
this.buttonAbbrechen.Click += new System.EventHandler(this.buttonAbbrechen_Click);
//
// progressBar1
//
this.progressBar1.Location = new System.Drawing.Point(138, 357);
this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(226, 23);
this.progressBar1.TabIndex = 3;
//
// FormLaden
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.Yellow;
this.ClientSize = new System.Drawing.Size(300, 244);
this.ClientSize = new System.Drawing.Size(500, 500);
this.ControlBox = false;
this.Controls.Add(this.progressBar1);
this.Controls.Add(this.buttonAbbrechen);
this.Controls.Add(this.labelLaden);
this.Controls.Add(this.pictureBoxWalli);
this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "FormLaden";
this.ShowIcon = false;
this.ShowInTaskbar = false;
@ -82,7 +106,7 @@
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.TransparencyKey = System.Drawing.Color.Yellow;
this.UseWaitCursor = true;
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.Load += new System.EventHandler(this.FormLaden_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBoxWalli)).EndInit();
this.ResumeLayout(false);
@ -92,5 +116,7 @@
private System.Windows.Forms.PictureBox pictureBoxWalli;
private System.Windows.Forms.Label labelLaden;
}
private System.Windows.Forms.Button buttonAbbrechen;
private System.Windows.Forms.ProgressBar progressBar1;
}
}

View File

@ -27,5 +27,15 @@ namespace Deckungsbeitrag
{
this.Close();
}
private void FormLaden_Load(object sender, EventArgs e)
{
}
private void buttonAbbrechen_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

106
FormListe.Designer.cs generated
View File

@ -1,34 +1,35 @@

namespace Deckungsbeitrag
{
partial class FormListe
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
partial class FormListe
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormListe));
this.listViewKunde = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
@ -37,6 +38,7 @@ namespace Deckungsbeitrag
this.textBoxKunde = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.buttonOK = new System.Windows.Forms.Button();
this.buttonNeuerBenutzer = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// listViewKunde
@ -50,7 +52,7 @@ namespace Deckungsbeitrag
this.columnHeader2,
this.columnHeader3,
this.columnHeader4});
this.listViewKunde.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.listViewKunde.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.listViewKunde.FullRowSelect = true;
this.listViewKunde.GridLines = true;
this.listViewKunde.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
@ -61,7 +63,7 @@ namespace Deckungsbeitrag
this.listViewKunde.Margin = new System.Windows.Forms.Padding(2);
this.listViewKunde.MultiSelect = false;
this.listViewKunde.Name = "listViewKunde";
this.listViewKunde.Size = new System.Drawing.Size(396, 339);
this.listViewKunde.Size = new System.Drawing.Size(396, 303);
this.listViewKunde.TabIndex = 1;
this.listViewKunde.UseCompatibleStateImageBehavior = false;
this.listViewKunde.View = System.Windows.Forms.View.Details;
@ -89,15 +91,16 @@ namespace Deckungsbeitrag
//
this.textBoxKunde.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxKunde.ForeColor = System.Drawing.Color.Silver;
this.textBoxKunde.Location = new System.Drawing.Point(9, 14);
this.textBoxKunde.Location = new System.Drawing.Point(9, 13);
this.textBoxKunde.Margin = new System.Windows.Forms.Padding(2);
this.textBoxKunde.Name = "textBoxKunde";
this.textBoxKunde.Size = new System.Drawing.Size(120, 26);
this.textBoxKunde.TabIndex = 0;
this.textBoxKunde.Text = "Hier eingeben";
this.textBoxKunde.TextChanged += new System.EventHandler(this.textBoxKunde_TextChanged);
this.textBoxKunde.Enter += new System.EventHandler(this.textBoxKunde_Enter);
this.textBoxKunde.Enter += new System.EventHandler(this.TextBoxKunde_Enter);
this.textBoxKunde.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listViewKunde_KeyDown);
this.textBoxKunde.Leave += new System.EventHandler(this.textBoxKunde_Leave);
//
// label1
//
@ -126,39 +129,62 @@ namespace Deckungsbeitrag
this.buttonOK.UseVisualStyleBackColor = false;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
//
// buttonNeuerBenutzer
//
this.buttonNeuerBenutzer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.buttonNeuerBenutzer.BackColor = System.Drawing.Color.Yellow;
this.buttonNeuerBenutzer.FlatAppearance.BorderSize = 0;
this.buttonNeuerBenutzer.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonNeuerBenutzer.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonNeuerBenutzer.Location = new System.Drawing.Point(115, 114);
this.buttonNeuerBenutzer.Margin = new System.Windows.Forms.Padding(2);
this.buttonNeuerBenutzer.Name = "buttonNeuerBenutzer";
this.buttonNeuerBenutzer.Size = new System.Drawing.Size(167, 34);
this.buttonNeuerBenutzer.TabIndex = 16;
this.buttonNeuerBenutzer.Text = "Neuer Benutzer";
this.buttonNeuerBenutzer.UseVisualStyleBackColor = false;
this.buttonNeuerBenutzer.Visible = false;
this.buttonNeuerBenutzer.Click += new System.EventHandler(this.buttonNeuerBenutzer_Click);
//
// FormListe
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.ClientSize = new System.Drawing.Size(413, 390);
this.ClientSize = new System.Drawing.Size(413, 358);
this.Controls.Add(this.buttonNeuerBenutzer);
this.Controls.Add(this.buttonOK);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBoxKunde);
this.Controls.Add(this.listViewKunde);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(2);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(429, 39);
this.Name = "FormListe";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "LISTE";
this.TopMost = true;
this.Load += new System.EventHandler(this.FormListe_Load);
this.Shown += new System.EventHandler(this.FormListe_Shown);
this.ResumeLayout(false);
this.PerformLayout();
}
}
#endregion
#endregion
private System.Windows.Forms.ListView listViewKunde;
private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.ColumnHeader columnHeader2;
private System.Windows.Forms.ColumnHeader columnHeader3;
private System.Windows.Forms.ColumnHeader columnHeader4;
private System.Windows.Forms.TextBox textBoxKunde;
private System.Windows.Forms.ListView listViewKunde;
private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.ColumnHeader columnHeader2;
private System.Windows.Forms.ColumnHeader columnHeader3;
private System.Windows.Forms.ColumnHeader columnHeader4;
private System.Windows.Forms.TextBox textBoxKunde;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button buttonOK;
private System.Windows.Forms.Button buttonNeuerBenutzer;
}
}

View File

@ -3,29 +3,50 @@ using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using AForge.Video;
using AForge.Video.DirectShow;
using ZXing;
namespace Deckungsbeitrag
{
public partial class FormListe : Form
public enum Listentyp
{
Kundenliste = 0,
Aufgabenliste = 1,
Benutzerliste = 2
}
public partial class FormListe : Form
{
public Kunde kunde;
public Benutzer benutzer;
public List<Kunde> Kundenliste;
public List<Aufgabe> Aufgabenliste;
public List<Benutzer> Benutzerliste;
bool isKundenliste = false;
bool isAufgabenliste = false;
bool isBenutzerliste = false;
int type_of_list;
string path = "C:\\Windows\\WinSxS\\amd64_microsoft-windows-osk_31bf3856ad364e35_10.0.22621.3672_none_8a93c823d58f9d77\\osk.exe";
string ben_col = "Vorname,Nachname,Benutzername,Rolle,Schein,Gueltig bis,Aktiv";
string knd_col = "KundenNr,KundenName,PLZ,Ort";
string auf_col = "Aufgabe,Beschreibung";
string progFiles = @"C:\Program Files\Common Files\Microsoft Shared\ink";
string keyboardPath;
//QR-Code Scan mit integrierter Kamera
public FormListe()
{
InitializeComponent();
}
public FormListe(List<Kunde> kundenliste) :this()
public FormListe(List<Kunde> kundenliste) :this()
{
this.Kundenliste = kundenliste;
isKundenliste = true;
@ -35,111 +56,115 @@ namespace Deckungsbeitrag
isAufgabenliste = true;
Aufgabenliste = Aufgabe.GetList(null);
}
public FormListe(List<Kunde> kundenliste, bool v) : this()
public FormListe(List<object> objliste, int listentyp) : this()
{
this.isKundenliste = v;
this.type_of_list = listentyp;
}
private void FormListe_Load(object sender, EventArgs e)
{
this.buttonOK.Visible = this.buttonOK.Enabled = false;
get_Columns();
listViewKunde_Load();
//BILDSCHIRMTASTATUR POSITION AUF WS COMPUTER ANSCHAUEN
//Process.Start(path);
this.textBoxKunde.Focus();
}
private void get_Columns()
{
this.listViewKunde.Columns.Clear();
if (isKundenliste)
{
for (int i = 0; i < 4; i++)
{
ColumnHeader ch = new ColumnHeader();
if (i == 0) ch.Text = "KndNr";
if (i == 1) ch.Text = "KundeName";
if (i == 2) ch.Text = "PLZ";
if (i == 3) ch.Text = "Ort";
this.listViewKunde.Columns.Add(ch);
}
}
if (isAufgabenliste)
{
for (int i = 0; i < 2; i++)
{
ColumnHeader ch = new ColumnHeader();
if (i == 0) ch.Text = "Aufgabe";
if (i == 1) ch.Text = "Beschreibung";
this.listViewKunde.Columns.Add(ch);
}
}
}
StartPosition = FormStartPosition.CenterScreen;
}
private void listViewKunde_Load()
{
this.listViewKunde.Items.Clear();
if (isKundenliste)
{
this.Text = "KUNDE WÄHLEN";
foreach (Kunde kunde in Kunde.GetTmpList(textBoxKunde.Text))
{
ListViewItem item = new ListViewItem();
item.Tag = kunde;
item.Text = kunde.KundeNummer;
item.SubItems.Add(kunde.KundeName);
item.SubItems.Add(kunde.PLZ.ToString());
item.SubItems.Add(kunde.Ort);
//LISTE LEEREN
this.listViewKunde.Items.Clear();
this.listViewKunde.Columns.Clear();
//SWITCH NACH LISTENTYP
switch (type_of_list)
{
case var kndliste when type_of_list == (int)Listentyp.Kundenliste:
{
//SPALTEN ERSTELLEN UND EINFÜGEN
string[] colname = knd_col.Split(',');
foreach (string s in colname)
{
ColumnHeader ch = new ColumnHeader();
ch.Text = s;
this.listViewKunde.Items.Add(item);
}
if (listViewKunde.Items.Count == 1) kunde = (Kunde)listViewKunde.Items[0].Tag;
}
if (isAufgabenliste)
{
//Aufgaben TABLE in DB speichern
//foreach(Aufgabe aufgabe in this.Aufgabenliste)
//{
// ListViewItem item = new ListViewItem();
// item.Tag = aufgabe;
// item.Text = aufgabe.Bezeichnung;
// item.SubItems.Add(aufgabe.Beschreibung);
this.listViewKunde.Columns.Add(ch);
}
//KUNDEN LADEN
this.Text = "KUNDE WÄHLEN";
foreach (Kunde kunde in Kunde.GetTmpList(textBoxKunde.Text))
{
ListViewItem item = new ListViewItem();
item.Tag = kunde;
item.Text = kunde.KundeNummer;
item.SubItems.Add(kunde.KundeName);
item.SubItems.Add(kunde.PLZ.ToString());
item.SubItems.Add(kunde.Ort);
// this.listViewKunde.Items.Add(item);
//}
for (int i = 0; i < 3; i++)
{
ListViewItem item = new ListViewItem();
if (i == 0)
{
item.Text = "Liefern";
item.SubItems.Add("Vorhandene Wäsche ausliefern");
}
if (i == 1)
{
item.Text = "Holen";
item.SubItems.Add("Schmutzwäsche abholen");
}
if (i == 2)
{
item.Text = "Holen/Liefern";
item.SubItems.Add("Schmutzwäsche abholen und Vorhandene Wäsche ausliefern");
}
this.listViewKunde.Items.Add(item);
}
}
this.listViewKunde.Items.Add(item);
}
if (listViewKunde.Items.Count == 1) kunde = (Kunde)listViewKunde.Items[0].Tag;
}
break;
case var aufliste when type_of_list == (int)Listentyp.Aufgabenliste:
{
string[] colname = auf_col.Split(',');
foreach (string s in colname)
{
ColumnHeader ch = new ColumnHeader();
ch.Text = s;
this.listViewKunde.Columns.Add(ch);
}
}
break;
case var benliste when type_of_list == (int)Listentyp.Benutzerliste:
{
this.textBoxKunde.Visible = this.label1.Visible = false;
this.buttonNeuerBenutzer.Visible = true;
string[] colname = ben_col.Split(',');
foreach (string s in colname)
{
ColumnHeader ch = new ColumnHeader();
ch.Text = s;
this.listViewKunde.Columns.Add(ch);
}
this.Text = "BENUTZER WÄHLEN";
foreach(Benutzer b in Benutzer.GetList())
{
ListViewItem item = new ListViewItem();
item.Tag = b;
item.Text = b.Vorname;
item.SubItems.Add(b.Nachname);
item.SubItems.Add(b.BenutzerName);
item.SubItems.Add(b.Rolle.ToString());
item.SubItems.Add(b.Schein.ToString());
item.SubItems.Add(b.GueltigBis.HasValue ? b.GueltigBis.Value.ToShortDateString() : string.Empty);
item.SubItems.Add(b.Aktiv.ToString());
this.listViewKunde.Items.Add(item);
}
}
break;
default:
break;
}
listViewKunde_Design();
}
private void listViewKunde_Design()
//Funktionen.Columns_Resize(this.listViewKunde);
//this.Size = new Size(this.listViewKunde.Width + 70, this.Height);
}
private void listViewKunde_Design()
{
int lvwWidth = 0;
this.listViewKunde.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
ListView.ColumnHeaderCollection cc = this.listViewKunde.Columns;
for (int i = 0; i < cc.Count; i++)
{
int colWidth = TextRenderer.MeasureText(cc[i].Text, listViewKunde.Font).Width + 10;
int colWidth = TextRenderer.MeasureText(cc[i].Text, listViewKunde.Font).Width + 30;
if (colWidth > cc[i].Width)
{
lvwWidth += cc[i].Width = colWidth;
@ -153,16 +178,27 @@ namespace Deckungsbeitrag
{
if (isAufgabenliste)
{
FormNeueAufgabe aufgabe = new FormNeueAufgabe();
aufgabe.ShowDialog();
//FormNeueAufgabe aufgabe = new FormNeueAufgabe();
//aufgabe.ShowDialog();
}
FormListe_Load(this, null);
}
private void textBoxKunde_Enter(object sender, EventArgs e)
private void TextBoxKunde_Enter(object sender, EventArgs e)
{
this.textBoxKunde.ForeColor = Color.Black;
}
private void textBoxKunde_TextChanged(object sender, EventArgs e)
this.textBoxKunde.ForeColor = Color.Black;
GetKeyboard();
}
private void GetKeyboard()
{
// Pfad zur Touch-Tastatur
keyboardPath = System.IO.Path.Combine(progFiles, "TabTip.exe");
// Bildschirmtastatur starten
Process.Start(keyboardPath);
}
private void textBoxKunde_TextChanged(object sender, EventArgs e)
{
if (!textBoxKunde.Text.StartsWith("?") && textBoxKunde.TextLength > 3)
{
@ -179,11 +215,20 @@ namespace Deckungsbeitrag
}
private void listViewKunde_MouseClick(object sender, MouseEventArgs e)
{
ListViewItem item = this.listViewKunde.GetItemAt(e.X, e.Y);
kunde = (Kunde)item.Tag;
ListViewItem item = this.listViewKunde.GetItemAt(e.X, e.Y);
this.DialogResult = DialogResult.OK;
this.Close();
switch (type_of_list)
{
case var _ when type_of_list == (int)Listentyp.Kundenliste:
{
kunde = (Kunde)item.Tag;
this.DialogResult = DialogResult.OK;
this.Close();
}
break;
default:
break;
}
}
private void listViewKunde_KeyDown(object sender, KeyEventArgs e)
{
@ -197,6 +242,7 @@ namespace Deckungsbeitrag
else if (this.listViewKunde.SelectedItems.Count == 1) kunde = (Kunde)this.listViewKunde.SelectedItems[0].Tag;
e.Handled = true;
textBoxKunde_Leave(this, e);
this.DialogResult = DialogResult.OK;
this.Close();
}
@ -207,7 +253,6 @@ namespace Deckungsbeitrag
}
}
private void buttonOK_Click(object sender, EventArgs e)
{
this.kunde = Kunde.GetKunde("2320000", null, null);
@ -217,5 +262,28 @@ namespace Deckungsbeitrag
this.DialogResult = DialogResult.OK;
this.Close();
}
private void buttonNeuerBenutzer_Click(object sender, EventArgs e)
{
//FormBenutzerDetail benutzerdetail = new FormBenutzerDetail();
//benutzerdetail.ShowDialog();
this.Close();
}
private void textBoxKunde_Leave(object sender, EventArgs e)
{
// Alle gestarteten Instanzen von TabTip.exe (Touch Tastatur) schließen
foreach (var process in Process.GetProcessesByName("TabTip"))
{
try
{
process.Close();
}
catch (Exception es)
{
// Fehlerbehandlung falls Prozess nicht beendet werden kann
MessageBox.Show($"Fehler beim Schließen: " + es.Message);
}
}
}
}
}

View File

@ -117,4 +117,103 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
QmCC
</value>
</data>
</root>

View File

@ -10,29 +10,26 @@ using System.Windows.Forms;
using System.Security.Cryptography;
using DatenDB;
using System.Threading;
using System.Diagnostics;
namespace Deckungsbeitrag
{
public partial class FormLogin : Form
{
public Thread t;
string progFiles = @"C:\Program Files\Common Files\Microsoft Shared\ink";
string keyboardPath;
public FormLogin()
{
InitializeComponent();
this.groupBox1.Height = 110;
this.labelPwdWh.Visible = false;
this.textBoxPwdWh.Visible = false;
this.buttonRegistrieren.Visible = false;
}
private void buttonAnmelden_Click(object sender, EventArgs e)
{
if(string.IsNullOrWhiteSpace(this.textBoxPasswort.Text)) textBoxBenutzer_Leave(sender, e);
try
{
//t = new Thread(new ThreadStart(Splash));
//t.Start();
MD5 md5 = MD5.Create();
byte[] md5hash = md5.ComputeHash(Encoding.UTF8.GetBytes(this.textBoxPasswort.Text));
string pwdHash = string.Empty;
@ -41,13 +38,11 @@ namespace Deckungsbeitrag
this.Person = Benutzer.Get(this.textBoxBenutzer.Text, pwdHash);
this.Person.Save();
//t.Abort();
this.DialogResult = DialogResult.OK;
this.Close();
}
catch (LoginException lex)
{
//t.Abort();
switch (lex.ErrorCode)
{
case -1:
@ -62,7 +57,8 @@ namespace Deckungsbeitrag
MessageBox.Show(lex.Message, "Registrieren", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
this.buttonRegistrieren.Visible = true;
this.buttonAnmelden.Enabled = false;
this.groupBox1.Height = this.groupBox1.Height + 35;
this.groupBox1.Height = 146;
this.Height = 265;
this.labelPwdWh.Visible = true;
this.textBoxPwdWh.Visible = true;
break;
@ -78,12 +74,24 @@ namespace Deckungsbeitrag
{
MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void Splash()
{
//Open a splash screen form
FormLaden frm = new FormLaden();
Application.Run(frm);
CloseKeyboard();
}
private void CloseKeyboard()
{
foreach (var process in Process.GetProcessesByName("TabTip"))
{
try
{
process.Close();
}
catch (Exception es)
{
// Fehlerbehandlung falls Prozess nicht beendet werden kann
MessageBox.Show($"Fehler beim Schließen: " + es.Message);
}
}
}
private void buttonAbbrechen_Click(object sender, EventArgs e)
{
@ -107,6 +115,7 @@ namespace Deckungsbeitrag
if (person.Save() == 1)
{
this.groupBox1.Height = 100;
this.Height = 222;
this.labelPwdWh.Visible = false;
this.textBoxPwdWh.Visible = false;
this.buttonRegistrieren.Visible = false;
@ -116,5 +125,55 @@ namespace Deckungsbeitrag
}
}
}
}
private void textBoxBenutzer_Leave(object sender, EventArgs e)
{
if (textBoxBenutzer.Text.Contains(";"))
{
this.textBoxPasswort.Text = this.textBoxBenutzer.Text.Substring(this.textBoxBenutzer.Text.IndexOf(";") + 1);
this.textBoxBenutzer.Text = this.textBoxBenutzer.Text.Substring(0, this.textBoxBenutzer.Text.IndexOf(";"));
}
}
private void FormLogin_Load(object sender, EventArgs e)
{
this.groupBox1.Height = 110;
this.labelPwdWh.Visible = false;
this.textBoxPwdWh.Visible = false;
this.buttonRegistrieren.Visible = false;
this.textBoxBenutzer.Focus();
WindowState = FormWindowState.Normal;
StartPosition = FormStartPosition.CenterScreen;
}
private void FormLogin_Shown(object sender, EventArgs e)
{
StartPosition = FormStartPosition.CenterScreen;
}
private void textBoxBenutzer_Enter(object sender, EventArgs e)
{
// Pfad zur Touch-Tastatur
keyboardPath = System.IO.Path.Combine(progFiles, "TabTip.exe");
// Bildschirmtastatur starten
Process.Start(keyboardPath);
}
private void textBoxPasswort_Enter(object sender, EventArgs e)
{
// Pfad zur Touch-Tastatur
keyboardPath = System.IO.Path.Combine(progFiles, "TabTip.exe");
// Bildschirmtastatur starten
Process.Start(keyboardPath);
}
private void textBox_Leave(object sender, EventArgs e)
{
CloseKeyboard();
}
}
}

108
FormLogin.designer.cs generated
View File

@ -51,121 +51,151 @@ namespace Deckungsbeitrag
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.textBoxBenutzer);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Location = new System.Drawing.Point(29, 26);
this.groupBox1.Margin = new System.Windows.Forms.Padding(4);
this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox1.ForeColor = System.Drawing.Color.White;
this.groupBox1.Location = new System.Drawing.Point(18, 21);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Padding = new System.Windows.Forms.Padding(4);
this.groupBox1.Size = new System.Drawing.Size(607, 146);
this.groupBox1.Size = new System.Drawing.Size(463, 100);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Geben Sie Benutzer/Passwort an";
this.groupBox1.Text = "Login-Daten";
//
// textBoxPwdWh
//
this.textBoxPwdWh.Location = new System.Drawing.Point(199, 106);
this.textBoxPwdWh.Margin = new System.Windows.Forms.Padding(4);
this.textBoxPwdWh.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxPwdWh.Location = new System.Drawing.Point(185, 110);
this.textBoxPwdWh.Name = "textBoxPwdWh";
this.textBoxPwdWh.Size = new System.Drawing.Size(350, 22);
this.textBoxPwdWh.Size = new System.Drawing.Size(264, 26);
this.textBoxPwdWh.TabIndex = 5;
this.textBoxPwdWh.UseSystemPasswordChar = true;
//
// labelPwdWh
//
this.labelPwdWh.AutoSize = true;
this.labelPwdWh.Location = new System.Drawing.Point(56, 110);
this.labelPwdWh.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.labelPwdWh.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelPwdWh.ForeColor = System.Drawing.Color.White;
this.labelPwdWh.Location = new System.Drawing.Point(26, 113);
this.labelPwdWh.Name = "labelPwdWh";
this.labelPwdWh.Size = new System.Drawing.Size(128, 16);
this.labelPwdWh.Size = new System.Drawing.Size(153, 20);
this.labelPwdWh.TabIndex = 4;
this.labelPwdWh.Text = "Passwort bestätigen";
//
// textBoxPasswort
//
this.textBoxPasswort.Location = new System.Drawing.Point(199, 74);
this.textBoxPasswort.Margin = new System.Windows.Forms.Padding(4);
this.textBoxPasswort.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxPasswort.Location = new System.Drawing.Point(185, 62);
this.textBoxPasswort.Name = "textBoxPasswort";
this.textBoxPasswort.Size = new System.Drawing.Size(350, 22);
this.textBoxPasswort.Size = new System.Drawing.Size(264, 26);
this.textBoxPasswort.TabIndex = 3;
this.textBoxPasswort.UseSystemPasswordChar = true;
this.textBoxPasswort.Enter += new System.EventHandler(this.textBoxPasswort_Enter);
this.textBoxPasswort.Leave += new System.EventHandler(this.textBox_Leave);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(56, 78);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.ForeColor = System.Drawing.Color.White;
this.label2.Location = new System.Drawing.Point(105, 65);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(62, 16);
this.label2.Size = new System.Drawing.Size(74, 20);
this.label2.TabIndex = 2;
this.label2.Text = "Passwort";
//
// textBoxBenutzer
//
this.textBoxBenutzer.Location = new System.Drawing.Point(199, 37);
this.textBoxBenutzer.Margin = new System.Windows.Forms.Padding(4);
this.textBoxBenutzer.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxBenutzer.Location = new System.Drawing.Point(185, 30);
this.textBoxBenutzer.Name = "textBoxBenutzer";
this.textBoxBenutzer.Size = new System.Drawing.Size(350, 22);
this.textBoxBenutzer.Size = new System.Drawing.Size(264, 26);
this.textBoxBenutzer.TabIndex = 1;
this.textBoxBenutzer.Enter += new System.EventHandler(this.textBoxBenutzer_Enter);
this.textBoxBenutzer.Leave += new System.EventHandler(this.textBoxBenutzer_Leave);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(56, 41);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point(105, 33);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(59, 16);
this.label1.Size = new System.Drawing.Size(74, 20);
this.label1.TabIndex = 0;
this.label1.Text = "Benutzer";
//
// buttonAnmelden
//
this.buttonAnmelden.Location = new System.Drawing.Point(536, 180);
this.buttonAnmelden.Margin = new System.Windows.Forms.Padding(4);
this.buttonAnmelden.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonAnmelden.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.buttonAnmelden.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.buttonAnmelden.FlatAppearance.BorderSize = 0;
this.buttonAnmelden.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonAnmelden.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonAnmelden.ForeColor = System.Drawing.Color.White;
this.buttonAnmelden.Location = new System.Drawing.Point(330, 138);
this.buttonAnmelden.Name = "buttonAnmelden";
this.buttonAnmelden.Size = new System.Drawing.Size(100, 28);
this.buttonAnmelden.Padding = new System.Windows.Forms.Padding(2);
this.buttonAnmelden.Size = new System.Drawing.Size(150, 41);
this.buttonAnmelden.TabIndex = 1;
this.buttonAnmelden.Text = "Anmelden";
this.buttonAnmelden.UseVisualStyleBackColor = true;
this.buttonAnmelden.UseVisualStyleBackColor = false;
this.buttonAnmelden.Click += new System.EventHandler(this.buttonAnmelden_Click);
//
// buttonAbbrechen
//
this.buttonAbbrechen.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonAbbrechen.BackColor = System.Drawing.Color.Red;
this.buttonAbbrechen.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonAbbrechen.Location = new System.Drawing.Point(411, 180);
this.buttonAbbrechen.Margin = new System.Windows.Forms.Padding(4);
this.buttonAbbrechen.FlatAppearance.BorderColor = System.Drawing.Color.Red;
this.buttonAbbrechen.FlatAppearance.BorderSize = 0;
this.buttonAbbrechen.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonAbbrechen.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonAbbrechen.ForeColor = System.Drawing.Color.White;
this.buttonAbbrechen.Location = new System.Drawing.Point(174, 138);
this.buttonAbbrechen.Name = "buttonAbbrechen";
this.buttonAbbrechen.Size = new System.Drawing.Size(100, 28);
this.buttonAbbrechen.Size = new System.Drawing.Size(150, 41);
this.buttonAbbrechen.TabIndex = 2;
this.buttonAbbrechen.Text = "Abbrechen";
this.buttonAbbrechen.UseVisualStyleBackColor = true;
this.buttonAbbrechen.UseVisualStyleBackColor = false;
this.buttonAbbrechen.Click += new System.EventHandler(this.buttonAbbrechen_Click);
//
// buttonRegistrieren
//
this.buttonRegistrieren.Location = new System.Drawing.Point(29, 180);
this.buttonRegistrieren.Margin = new System.Windows.Forms.Padding(4);
this.buttonRegistrieren.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.buttonRegistrieren.BackColor = System.Drawing.Color.Yellow;
this.buttonRegistrieren.FlatAppearance.BorderColor = System.Drawing.Color.Yellow;
this.buttonRegistrieren.FlatAppearance.BorderSize = 0;
this.buttonRegistrieren.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonRegistrieren.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonRegistrieren.Location = new System.Drawing.Point(18, 139);
this.buttonRegistrieren.Name = "buttonRegistrieren";
this.buttonRegistrieren.Size = new System.Drawing.Size(100, 28);
this.buttonRegistrieren.Size = new System.Drawing.Size(150, 41);
this.buttonRegistrieren.TabIndex = 3;
this.buttonRegistrieren.Text = "Registrieren";
this.buttonRegistrieren.UseVisualStyleBackColor = true;
this.buttonRegistrieren.UseVisualStyleBackColor = false;
this.buttonRegistrieren.Click += new System.EventHandler(this.buttonRegistrieren_Click);
//
// FormLogin
//
this.AcceptButton = this.buttonAnmelden;
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.CancelButton = this.buttonAbbrechen;
this.ClientSize = new System.Drawing.Size(667, 225);
this.ClientSize = new System.Drawing.Size(492, 191);
this.Controls.Add(this.buttonRegistrieren);
this.Controls.Add(this.buttonAbbrechen);
this.Controls.Add(this.buttonAnmelden);
this.Controls.Add(this.groupBox1);
this.ForeColor = System.Drawing.SystemColors.ControlText;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(4);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FormLogin";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "WIRL-Login";
this.Load += new System.EventHandler(this.FormLogin_Load);
this.Shown += new System.EventHandler(this.FormLogin_Shown);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);

View File

@ -120,19 +120,100 @@
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8A////////////////////////////////////////////////////////////////////////
////////8AD//////////////////w//D/////////////////8PDw///////MzP////zMz/D/8P////
//zMzP///8zMz/AA///////MzMzM//zMzMzP////////zMzMzMz8zMzMzM///////MzMzMzPzMzMzMz/
//////zMzMzM/8zMzMzP///////MzMzMzPzMzMzMz///////zMzMzM/8zMzMzP///////MzMzMzPzMzM
zMz///////zMzMzM/8zMzMzP/Mz////MzMzMzPzMzMzMz/zMzM//zMzMzM/8zMzMzP/MzMzM/8zMzMzP
zMzMzMz8zMzMzPzMzMzM/8zMzMzP/MzMzMz8zMzMzPzMzMzMz8zMzMzMzMzMzM/MzMzMzPzMzMzMz//8
zMzP//zMzMz//8zMzM////zM/////8zP/////Mz/////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAABAAEAAAAAAAEAIAC5FQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAFv
ck5UAc+id5oAABVzSURBVHja7Z0LuFVVtcfPOqCg4gMFVDQhsHyics4GfBUIPsMywULt4Ytz4CqSWV5R
UwnsZpaZ0c23XtNKI/JVGT5BTbtqiqX5SMRXGnI1LdBjiNwx9h57sfY6a5+91jl77b3WXr/f9/0//Pz4
Ps4Zc8wx5xpzzDmamgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
QmCC
</value>
</data>
</root>

1759
FormMain.Designer.cs generated

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -121,15 +121,45 @@
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripBeenden.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="tSBBenutzerVW.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEMSURBVDhPrZMxjoNADEVzpD1CRE9PzwW2pkpDzwEo0tEi
DkBPT09BSbORsCkneqM1yUxQtNLG0pdG/va3x+M5nT5p27adVbVVVRehhYvjA1PVapomV5alS9PUJUni
wRkfHDFxnjeIcRx9cJZlrmkaNwyDB2d8cIcitAZhleZ5vonIBT/gjK+qKtf3PQI/67p+PVdvSaQKgQH5
ayLyvSzLXiQQYUgQXdc5qh0kXwBJds08zx/FEGBY3Pdo0vB1Xe8oisLHm8hnBP57hX2ILxN+iARDDIYd
PyMiVCQA2DPSIdc8LCIiV0hbJIJpF2HObxfJDBFbZVtjg60yMXFeYM+fiQ7Anz9TbDaD2B/bHero49g9
VkT2AAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEgSURBVDhPlZMxToVAEIY5gmeCY5D4SBShs3kF4Ro03seW
kgYsrGgkBgyzP43J6r95PHcBETeZzP6zsx9kZtbzPM8TkftxHF8BaBFpAJwYP7R4ua5rHcexDoJAp2mq
m6bRAG6XuZuLX+bloih4yfgkScx+z64ACt/3nUPqPXMAIvLynz9YAViwrRoopR6uST+5a8Dl4IlBpZQ5
rKrqU0SenaQ9wDAMyPNcZ1mm27Y1nppxO28TQFGWpY6iyPgwDB1tJ/8KWFbZtq7rTDLnwgZM03S3om7t
CVBKPbKw7A5j9JdhOzmAof9Y7QkA8Mbu2K2m5tgfArA7bPH8Z7RZHwIAeF8OGzWfwaEiAjjPw8YYPTUf
ogH8ZX3f39hPnt5c/l5f/gZyfcPM3D4AAAAASUVORK5CYII=
</value>
</data>
<data name="tSBAuftragVW.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEgSURBVDhPlZMxToVAEIY5gmeCY5D4SBShs3kF4Ro03seW
kgYsrGgkBgyzP43J6r95PHcBETeZzP6zsx9kZtbzPM8TkftxHF8BaBFpAJwYP7R4ua5rHcexDoJAp2mq
m6bRAG6XuZuLX+bloih4yfgkScx+z64ACt/3nUPqPXMAIvLynz9YAViwrRoopR6uST+5a8Dl4IlBpZQ5
rKrqU0SenaQ9wDAMyPNcZ1mm27Y1nppxO28TQFGWpY6iyPgwDB1tJ/8KWFbZtq7rTDLnwgZM03S3om7t
CVBKPbKw7A5j9JdhOzmAof9Y7QkA8Mbu2K2m5tgfArA7bPH8Z7RZHwIAeF8OGzWfwaEiAjjPw8YYPTUf
ogH8ZX3f39hPnt5c/l5f/gZyfcPM3D4AAAAASUVORK5CYII=
</value>
</data>
<data name="tSBAufgabeVW.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEgSURBVDhPlZMxToVAEIY5gmeCY5D4SBShs3kF4Ro03seW
kgYsrGgkBgyzP43J6r95PHcBETeZzP6zsx9kZtbzPM8TkftxHF8BaBFpAJwYP7R4ua5rHcexDoJAp2mq
m6bRAG6XuZuLX+bloih4yfgkScx+z64ACt/3nUPqPXMAIvLynz9YAViwrRoopR6uST+5a8Dl4IlBpZQ5
rKrqU0SenaQ9wDAMyPNcZ1mm27Y1nppxO28TQFGWpY6iyPgwDB1tJ/8KWFbZtq7rTDLnwgZM03S3om7t
CVBKPbKw7A5j9JdhOzmAof9Y7QkA8Mbu2K2m5tgfArA7bPH8Z7RZHwIAeF8OGzWfwaEiAjjPw8YYPTUf
ogH8ZX3f39hPnt5c/l5f/gZyfcPM3D4AAAAASUVORK5CYII=
</value>
</data>
<data name="tSBArtikelVW.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB7SURBVDhPnZBBDoAgDAR5W///F/XCVaIJyXZcEG2yB5p2
ukspqFrrORPnH3UNRYTVJ8C+HUm/AYxAcd8CGGUaaQRYikR71BKANtXuMmBk1/VebVMWoDZpm28L6IN6
afQmMGV3A9pTYJcFcEj76dd7EaAX+ebuXbw2E3cbfftvjPBKL5kAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripZaehlscheine.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -138,6 +168,17 @@
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB7SURBVDhPnZBBDoAgDAR5W///F/XCVaIJyXZcEG2yB5p2
ukspqFrrORPnH3UNRYTVJ8C+HUm/AYxAcd8CGGUaaQRYikR71BKANtXuMmBk1/VebVMWoDZpm28L6IN6
afQmMGV3A9pTYJcFcEj76dd7EaAX+ebuXbw2E3cbfftvjPBKL5kAAAAASUVORK5CYII=
</value>
</data>
<data name="tSBExpedit.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEgSURBVDhPlZMxToVAEIY5gmeCY5D4SBShs3kF4Ro03seW
kgYsrGgkBgyzP43J6r95PHcBETeZzP6zsx9kZtbzPM8TkftxHF8BaBFpAJwYP7R4ua5rHcexDoJAp2mq
m6bRAG6XuZuLX+bloih4yfgkScx+z64ACt/3nUPqPXMAIvLynz9YAViwrRoopR6uST+5a8Dl4IlBpZQ5
rKrqU0SenaQ9wDAMyPNcZ1mm27Y1nppxO28TQFGWpY6iyPgwDB1tJ/8KWFbZtq7rTDLnwgZM03S3om7t
CVBKPbKw7A5j9JdhOzmAof9Y7QkA8Mbu2K2m5tgfArA7bPH8Z7RZHwIAeF8OGzWfwaEiAjjPw8YYPTUf
ogH8ZX3f39hPnt5c/l5f/gZyfcPM3D4AAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripDB.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -156,17 +197,6 @@
K5WtGpmnmIhaegrBvM8vP9P0q5xzIcn9UJHRe88ahojZOVcBQxCc/lcSmSpJdBo8axYC8JEsNYAeRO+J
GIBEhFgpGsARGV+sPmcC3q9PVQihpJRqmlOANm/bnfcIQn0CxRi51wXIdb7MddpyXZpeF4AJSLTWPROg
Ic/HXtb1xqK1NotRdPgVzsRG/IFGJf4vZOpFEVHH2lgAAAAASUVORK5CYII=
</value>
</data>
<data name="tSBFahrerAuftrag.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEgSURBVDhPlZMxToVAEIY5gmeCY5D4SBShs3kF4Ro03seW
kgYsrGgkBgyzP43J6r95PHcBETeZzP6zsx9kZtbzPM8TkftxHF8BaBFpAJwYP7R4ua5rHcexDoJAp2mq
m6bRAG6XuZuLX+bloih4yfgkScx+z64ACt/3nUPqPXMAIvLynz9YAViwrRoopR6uST+5a8Dl4IlBpZQ5
rKrqU0SenaQ9wDAMyPNcZ1mm27Y1nppxO28TQFGWpY6iyPgwDB1tJ/8KWFbZtq7rTDLnwgZM03S3om7t
CVBKPbKw7A5j9JdhOzmAof9Y7QkA8Mbu2K2m5tgfArA7bPH8Z7RZHwIAeF8OGzWfwaEiAjjPw8YYPTUf
ogH8ZX3f39hPnt5c/l5f/gZyfcPM3D4AAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -385,7 +415,18 @@
uMUufvFjewjjGdO4xja+MY75S+Ec87jHPv4xkIPcWA8LuchGPjKAAwIAOw==
</value>
</data>
<data name="tSBWaschverlauf.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="tSBScannTest.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEgSURBVDhPlZMxToVAEIY5gmeCY5D4SBShs3kF4Ro03seW
kgYsrGgkBgyzP43J6r95PHcBETeZzP6zsx9kZtbzPM8TkftxHF8BaBFpAJwYP7R4ua5rHcexDoJAp2mq
m6bRAG6XuZuLX+bloih4yfgkScx+z64ACt/3nUPqPXMAIvLynz9YAViwrRoopR6uST+5a8Dl4IlBpZQ5
rKrqU0SenaQ9wDAMyPNcZ1mm27Y1nppxO28TQFGWpY6iyPgwDB1tJ/8KWFbZtq7rTDLnwgZM03S3om7t
CVBKPbKw7A5j9JdhOzmAof9Y7QkA8Mbu2K2m5tgfArA7bPH8Z7RZHwIAeF8OGzWfwaEiAjjPw8YYPTUf
ogH8ZX3f39hPnt5c/l5f/gZyfcPM3D4AAAAASUVORK5CYII=
</value>
</data>
<data name="tSBHilfe.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEgSURBVDhPlZMxToVAEIY5gmeCY5D4SBShs3kF4Ro03seW
@ -405,17 +446,6 @@
rKrqU0SenaQ9wDAMyPNcZ1mm27Y1nppxO28TQFGWpY6iyPgwDB1tJ/8KWFbZtq7rTDLnwgZM03S3om7t
CVBKPbKw7A5j9JdhOzmAof9Y7QkA8Mbu2K2m5tgfArA7bPH8Z7RZHwIAeF8OGzWfwaEiAjjPw8YYPTUf
ogH8ZX3f39hPnt5c/l5f/gZyfcPM3D4AAAAASUVORK5CYII=
</value>
</data>
<data name="tSBExpeditDrucken.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEgSURBVDhPlZMxToVAEIY5gmeCY5D4SBShs3kF4Ro03seW
kgYsrGgkBgyzP43J6r95PHcBETeZzP6zsx9kZtbzPM8TkftxHF8BaBFpAJwYP7R4ua5rHcexDoJAp2mq
m6bRAG6XuZuLX+bloih4yfgkScx+z64ACt/3nUPqPXMAIvLynz9YAViwrRoopR6uST+5a8Dl4IlBpZQ5
rKrqU0SenaQ9wDAMyPNcZ1mm27Y1nppxO28TQFGWpY6iyPgwDB1tJ/8KWFbZtq7rTDLnwgZM03S3om7t
CVBKPbKw7A5j9JdhOzmAof9Y7QkA8Mbu2K2m5tgfArA7bPH8Z7RZHwIAeF8OGzWfwaEiAjjPw8YYPTUf
ogH8ZX3f39hPnt5c/l5f/gZyfcPM3D4AAAAASUVORK5CYII=
</value>
</data>
<data name="tSBEinstellung.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -433,84 +463,15 @@
nOccAdABIDXXE1nzAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>172, 17</value>
</metadata>
<data name="buttonAbbrechenAufgabe.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="toolStripBeenden.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAKhJREFUOE9jYEAC3759M0DmYwM41Xz79q3i27dv/799+5aJLgcDIDmomgp0iYpX
N6/+3xbp/v/t/TtYDQGJgeS2hDj8f37xLMIQkJNApoI0L1Tj/b/WWRfDEJhmkBxIDcgQqEsg3kFXgGwI
PjmE+/AYgk0MQzMMYDOEaM0wgG4ISZpBgCID0DWT5AVsmokORFyaiYpGaiUk8pMykgLyMxMM4MyqSABd
DQCo07laP2majgAAAABJRU5ErkJggg==
</value>
</data>
<data name="buttonSpeichernAufgabe.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAG5JREFUOE9j+PbtW/i3b9/efPv27T+JGKQnnAHE0C5Y858heA5JGKQHpBdkAIYk
sRisF9mAD+8/EoWHswGk4kFqALp/0TH9DEDno4sjG3CneP4xDA3ofHRxZANkkA1BV0jQABCAGQISACkC
0cRiAGlM6tRr9T1CAAAAAElFTkSuQmCC
</value>
</data>
<data name="buttonMaAbbrechen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAKhJREFUOE9jYEAC3759M0DmYwM41Xz79q3i27dv/799+5aJLgcDIDmomgp0iYpX
N6/+3xbp/v/t/TtYDQGJgeS2hDj8f37xLMIQkJNApoI0L1Tj/b/WWRfDEJhmkBxIDcgQqEsg3kFXgGwI
PjmE+/AYgk0MQzMMYDOEaM0wgG4ISZpBgCID0DWT5AVsmokORFyaiYpGaiUk8pMykgLyMxMM4MyqSABd
DQCo07laP2majgAAAABJRU5ErkJggg==
</value>
</data>
<data name="buttonMaSpeichern.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAG5JREFUOE9j+PbtW/i3b9/efPv27T+JGKQnnAHE0C5Y858heA5JGKQHpBdkAIYk
sRisF9mAD+8/EoWHswGk4kFqALp/0TH9DEDno4sjG3CneP4xDA3ofHRxZANkkA1BV0jQABCAGQISACkC
0cRiAGlM6tRr9T1CAAAAAElFTkSuQmCC
</value>
</data>
<data name="buttonWPrAbbrechen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAKhJREFUOE9jYEAC3759M0DmYwM41Xz79q3i27dv/799+5aJLgcDIDmomgp0iYpX
N6/+3xbp/v/t/TtYDQGJgeS2hDj8f37xLMIQkJNApoI0L1Tj/b/WWRfDEJhmkBxIDcgQqEsg3kFXgGwI
PjmE+/AYgk0MQzMMYDOEaM0wgG4ISZpBgCID0DWT5AVsmokORFyaiYpGaiUk8pMykgLyMxMM4MyqSABd
DQCo07laP2majgAAAABJRU5ErkJggg==
</value>
</data>
<data name="buttonWPrSpeichern.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAG5JREFUOE9j+PbtW/i3b9/efPv27T+JGKQnnAHE0C5Y858heA5JGKQHpBdkAIYk
sRisF9mAD+8/EoWHswGk4kFqALp/0TH9DEDno4sjG3CneP4xDA3ofHRxZANkkA1BV0jQABCAGQISACkC
0cRiAGlM6tRr9T1CAAAAAElFTkSuQmCC
</value>
</data>
<data name="pictureBoxBenutzerClose.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAJ1JREFUOE+tkzEOxCAQA/OkewPf4AVHQc1L6Wh4hFtO1mWV1WaJSO7cBdujhcC2
KQF46W9P0wyAAmAAeFtPRG/PFGuU1trIOY/euwvhGr2U0qi1HhCORCrLIYQRYzxBpEyPGUL2Sb7bsQEN
ufKO+S4g3tqpLPIgy2WRhdwqUz8BbPnWFrzy8iHOyku/8V8X6flVVoHnj0k0fapKNvMB+yy2Iod0bscA
AAAASUVORK5CYII=
</value>
</data>
<data name="buttonAbbrechen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAKhJREFUOE9jYEAC3759M0DmYwM41Xz79q3i27dv/799+5aJLgcDIDmomgp0iYpX
N6/+3xbp/v/t/TtYDQGJgeS2hDj8f37xLMIQkJNApoI0L1Tj/b/WWRfDEJhmkBxIDcgQqEsg3kFXgGwI
PjmE+/AYgk0MQzMMYDOEaM0wgG4ISZpBgCID0DWT5AVsmokORFyaiYpGaiUk8pMykgLyMxMM4MyqSABd
DQCo07laP2majgAAAABJRU5ErkJggg==
</value>
</data>
<data name="buttonSpeichernFahrer.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAG5JREFUOE9j+PbtW/i3b9/efPv27T+JGKQnnAHE0C5Y858heA5JGKQHpBdkAIYk
sRisF9mAD+8/EoWHswGk4kFqALp/0TH9DEDno4sjG3CneP4xDA3ofHRxZANkkA1BV0jQABCAGQISACkC
0cRiAGlM6tRr9T1CAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEMSURBVDhPrZMxjoNADEVzpD1CRE9PzwW2pkpDzwEo0tEi
DkBPT09BSbORsCkneqM1yUxQtNLG0pdG/va3x+M5nT5p27adVbVVVRehhYvjA1PVapomV5alS9PUJUni
wRkfHDFxnjeIcRx9cJZlrmkaNwyDB2d8cIcitAZhleZ5vonIBT/gjK+qKtf3PQI/67p+PVdvSaQKgQH5
ayLyvSzLXiQQYUgQXdc5qh0kXwBJds08zx/FEGBY3Pdo0vB1Xe8oisLHm8hnBP57hX2ILxN+iARDDIYd
PyMiVCQA2DPSIdc8LCIiV0hbJIJpF2HObxfJDBFbZVtjg60yMXFeYM+fiQ7Anz9TbDaD2B/bHero49g9
VkT2AAAAAElFTkSuQmCC
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@ -518,19 +479,100 @@
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8A////////////////////////////////////////////////////////////////////////
////////8AD//////////////////w//D/////////////////8PDw///////MzP////zMz/D/8P////
//zMzP///8zMz/AA///////MzMzM//zMzMzP////////zMzMzMz8zMzMzM///////MzMzMzPzMzMzMz/
//////zMzMzM/8zMzMzP///////MzMzMzPzMzMzMz///////zMzMzM/8zMzMzP///////MzMzMzPzMzM
zMz///////zMzMzM/8zMzMzP/Mz////MzMzMzPzMzMzMz/zMzM//zMzMzM/8zMzMzP/MzMzM/8zMzMzP
zMzMzMz8zMzMzPzMzMzM/8zMzMzP/MzMzMz8zMzMzPzMzMzMz8zMzMzMzMzMzM/MzMzMzPzMzMzMz//8
zMzP//zMzMz//8zMzM////zM/////8zP/////Mz/////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAABAAEAAAAAAAEAIAC5FQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAFv
ck5UAc+id5oAABVzSURBVHja7Z0LuFVVtcfPOqCg4gMFVDQhsHyics4GfBUIPsMywULt4Ytz4CqSWV5R
UwnsZpaZ0c23XtNKI/JVGT5BTbtqiqX5SMRXGnI1LdBjiNwx9h57sfY6a5+91jl77b3WXr/f9/0//Pz4
Ps4Zc8wx5xpzzDmamgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
QmCC
</value>
</data>
</root>

View File

@ -68,6 +68,7 @@ namespace Deckungsbeitrag
this.tSSLErfolgPos = new System.Windows.Forms.ToolStripStatusLabel();
this.tSSLErfolgNull = new System.Windows.Forms.ToolStripStatusLabel();
this.tSSLErfolgNeg = new System.Windows.Forms.ToolStripStatusLabel();
this.columnButtonRenderer1 = new BrightIdeasSoftware.ColumnButtonRenderer();
((System.ComponentModel.ISupportInitialize)(this.olvDeckungsbeitrag)).BeginInit();
this.groupBoxFilter.SuspendLayout();
this.groupBoxQuartal.SuspendLayout();
@ -90,14 +91,15 @@ namespace Deckungsbeitrag
this.olvDeckungsbeitrag.FullRowSelect = true;
this.olvDeckungsbeitrag.GridLines = true;
this.olvDeckungsbeitrag.HideSelection = false;
this.olvDeckungsbeitrag.Location = new System.Drawing.Point(197, 12);
this.olvDeckungsbeitrag.Location = new System.Drawing.Point(148, 10);
this.olvDeckungsbeitrag.Margin = new System.Windows.Forms.Padding(2);
this.olvDeckungsbeitrag.MenuLabelColumns = "Spalten";
this.olvDeckungsbeitrag.Name = "olvDeckungsbeitrag";
this.olvDeckungsbeitrag.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu;
this.olvDeckungsbeitrag.SelectedColumnTint = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(176)))), ((int)(((byte)(196)))), ((int)(((byte)(222)))));
this.olvDeckungsbeitrag.ShowGroups = false;
this.olvDeckungsbeitrag.ShowItemToolTips = true;
this.olvDeckungsbeitrag.Size = new System.Drawing.Size(1385, 600);
this.olvDeckungsbeitrag.Size = new System.Drawing.Size(1039, 488);
this.olvDeckungsbeitrag.TabIndex = 0;
this.olvDeckungsbeitrag.TintSortColumn = true;
this.olvDeckungsbeitrag.UseAlternatingBackColors = true;
@ -131,9 +133,11 @@ namespace Deckungsbeitrag
this.groupBoxFilter.Controls.Add(this.buttonOK);
this.groupBoxFilter.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBoxFilter.ForeColor = System.Drawing.Color.White;
this.groupBoxFilter.Location = new System.Drawing.Point(200, 0);
this.groupBoxFilter.Location = new System.Drawing.Point(150, 0);
this.groupBoxFilter.Margin = new System.Windows.Forms.Padding(2);
this.groupBoxFilter.Name = "groupBoxFilter";
this.groupBoxFilter.Size = new System.Drawing.Size(1385, 90);
this.groupBoxFilter.Padding = new System.Windows.Forms.Padding(2);
this.groupBoxFilter.Size = new System.Drawing.Size(1039, 73);
this.groupBoxFilter.TabIndex = 2;
this.groupBoxFilter.TabStop = false;
//
@ -141,9 +145,10 @@ namespace Deckungsbeitrag
//
this.checkBoxInaktiv.AutoSize = true;
this.checkBoxInaktiv.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBoxInaktiv.Location = new System.Drawing.Point(844, 53);
this.checkBoxInaktiv.Location = new System.Drawing.Point(633, 43);
this.checkBoxInaktiv.Margin = new System.Windows.Forms.Padding(2);
this.checkBoxInaktiv.Name = "checkBoxInaktiv";
this.checkBoxInaktiv.Size = new System.Drawing.Size(101, 29);
this.checkBoxInaktiv.Size = new System.Drawing.Size(83, 24);
this.checkBoxInaktiv.TabIndex = 29;
this.checkBoxInaktiv.Text = "Inaktive";
this.checkBoxInaktiv.UseVisualStyleBackColor = true;
@ -164,27 +169,30 @@ namespace Deckungsbeitrag
"Oktober",
"November",
"Dezember"});
this.comboBoxMonat.Location = new System.Drawing.Point(567, 48);
this.comboBoxMonat.Location = new System.Drawing.Point(425, 39);
this.comboBoxMonat.Margin = new System.Windows.Forms.Padding(2);
this.comboBoxMonat.Name = "comboBoxMonat";
this.comboBoxMonat.Size = new System.Drawing.Size(152, 28);
this.comboBoxMonat.Size = new System.Drawing.Size(115, 25);
this.comboBoxMonat.TabIndex = 27;
//
// comboBoxVPJahr
//
this.comboBoxVPJahr.AllowDrop = true;
this.comboBoxVPJahr.FormattingEnabled = true;
this.comboBoxVPJahr.Location = new System.Drawing.Point(162, 48);
this.comboBoxVPJahr.Location = new System.Drawing.Point(122, 39);
this.comboBoxVPJahr.Margin = new System.Windows.Forms.Padding(2);
this.comboBoxVPJahr.Name = "comboBoxVPJahr";
this.comboBoxVPJahr.Size = new System.Drawing.Size(134, 28);
this.comboBoxVPJahr.Size = new System.Drawing.Size(102, 25);
this.comboBoxVPJahr.TabIndex = 26;
//
// comboBoxAktJahr
//
this.comboBoxAktJahr.AllowDrop = true;
this.comboBoxAktJahr.FormattingEnabled = true;
this.comboBoxAktJahr.Location = new System.Drawing.Point(12, 48);
this.comboBoxAktJahr.Location = new System.Drawing.Point(9, 39);
this.comboBoxAktJahr.Margin = new System.Windows.Forms.Padding(2);
this.comboBoxAktJahr.Name = "comboBoxAktJahr";
this.comboBoxAktJahr.Size = new System.Drawing.Size(134, 28);
this.comboBoxAktJahr.Size = new System.Drawing.Size(102, 25);
this.comboBoxAktJahr.TabIndex = 25;
//
// groupBoxQuartal
@ -195,9 +203,11 @@ namespace Deckungsbeitrag
this.groupBoxQuartal.Controls.Add(this.checkBox1);
this.groupBoxQuartal.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBoxQuartal.ForeColor = System.Drawing.Color.White;
this.groupBoxQuartal.Location = new System.Drawing.Point(315, 16);
this.groupBoxQuartal.Location = new System.Drawing.Point(236, 13);
this.groupBoxQuartal.Margin = new System.Windows.Forms.Padding(2);
this.groupBoxQuartal.Name = "groupBoxQuartal";
this.groupBoxQuartal.Size = new System.Drawing.Size(229, 65);
this.groupBoxQuartal.Padding = new System.Windows.Forms.Padding(2);
this.groupBoxQuartal.Size = new System.Drawing.Size(172, 53);
this.groupBoxQuartal.TabIndex = 24;
this.groupBoxQuartal.TabStop = false;
this.groupBoxQuartal.Text = "Quartal";
@ -212,9 +222,10 @@ namespace Deckungsbeitrag
this.checkBox4.FlatAppearance.CheckedBackColor = System.Drawing.Color.YellowGreen;
this.checkBox4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.checkBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBox4.Location = new System.Drawing.Point(173, 28);
this.checkBox4.Location = new System.Drawing.Point(130, 23);
this.checkBox4.Margin = new System.Windows.Forms.Padding(2);
this.checkBox4.Name = "checkBox4";
this.checkBox4.Size = new System.Drawing.Size(28, 30);
this.checkBox4.Size = new System.Drawing.Size(26, 27);
this.checkBox4.TabIndex = 3;
this.checkBox4.Text = "4";
this.checkBox4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -229,9 +240,10 @@ namespace Deckungsbeitrag
this.checkBox3.FlatAppearance.CheckedBackColor = System.Drawing.Color.YellowGreen;
this.checkBox3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.checkBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBox3.Location = new System.Drawing.Point(124, 28);
this.checkBox3.Location = new System.Drawing.Point(93, 23);
this.checkBox3.Margin = new System.Windows.Forms.Padding(2);
this.checkBox3.Name = "checkBox3";
this.checkBox3.Size = new System.Drawing.Size(28, 30);
this.checkBox3.Size = new System.Drawing.Size(26, 27);
this.checkBox3.TabIndex = 2;
this.checkBox3.Text = "3";
this.checkBox3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -246,9 +258,10 @@ namespace Deckungsbeitrag
this.checkBox2.FlatAppearance.CheckedBackColor = System.Drawing.Color.YellowGreen;
this.checkBox2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.checkBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBox2.Location = new System.Drawing.Point(76, 28);
this.checkBox2.Location = new System.Drawing.Point(57, 23);
this.checkBox2.Margin = new System.Windows.Forms.Padding(2);
this.checkBox2.Name = "checkBox2";
this.checkBox2.Size = new System.Drawing.Size(28, 30);
this.checkBox2.Size = new System.Drawing.Size(26, 27);
this.checkBox2.TabIndex = 1;
this.checkBox2.Text = "2";
this.checkBox2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -263,9 +276,10 @@ namespace Deckungsbeitrag
this.checkBox1.FlatAppearance.CheckedBackColor = System.Drawing.Color.YellowGreen;
this.checkBox1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.checkBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.checkBox1.Location = new System.Drawing.Point(29, 28);
this.checkBox1.Location = new System.Drawing.Point(22, 23);
this.checkBox1.Margin = new System.Windows.Forms.Padding(2);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(28, 30);
this.checkBox1.Size = new System.Drawing.Size(26, 27);
this.checkBox1.TabIndex = 0;
this.checkBox1.Text = "1";
this.checkBox1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@ -275,9 +289,10 @@ namespace Deckungsbeitrag
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label6.Location = new System.Drawing.Point(157, 20);
this.label6.Location = new System.Drawing.Point(118, 16);
this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(83, 25);
this.label6.Size = new System.Drawing.Size(65, 20);
this.label6.TabIndex = 23;
this.label6.Text = "Jahr VP";
//
@ -285,9 +300,10 @@ namespace Deckungsbeitrag
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point(7, 20);
this.label2.Location = new System.Drawing.Point(5, 16);
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(51, 25);
this.label2.Size = new System.Drawing.Size(40, 20);
this.label2.TabIndex = 20;
this.label2.Text = "Jahr";
//
@ -295,9 +311,10 @@ namespace Deckungsbeitrag
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(562, 20);
this.label1.Location = new System.Drawing.Point(422, 16);
this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(67, 25);
this.label1.Size = new System.Drawing.Size(54, 20);
this.label1.TabIndex = 18;
this.label1.Text = "Monat";
//
@ -307,9 +324,10 @@ namespace Deckungsbeitrag
this.buttonOK.BackColor = System.Drawing.SystemColors.ButtonFace;
this.buttonOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonOK.ForeColor = System.Drawing.Color.Black;
this.buttonOK.Location = new System.Drawing.Point(1253, 26);
this.buttonOK.Location = new System.Drawing.Point(940, 21);
this.buttonOK.Margin = new System.Windows.Forms.Padding(2);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(120, 50);
this.buttonOK.Size = new System.Drawing.Size(90, 41);
this.buttonOK.TabIndex = 15;
this.buttonOK.Text = "OK";
this.buttonOK.UseVisualStyleBackColor = false;
@ -334,7 +352,7 @@ namespace Deckungsbeitrag
this.toolStripMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.VerticalStackWithOverflow;
this.toolStripMenu.Location = new System.Drawing.Point(0, 0);
this.toolStripMenu.Name = "toolStripMenu";
this.toolStripMenu.Size = new System.Drawing.Size(197, 646);
this.toolStripMenu.Size = new System.Drawing.Size(148, 525);
this.toolStripMenu.TabIndex = 3;
this.toolStripMenu.Text = "toolStripMenu";
//
@ -392,7 +410,7 @@ namespace Deckungsbeitrag
this.tSComboBoxKndName.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tSComboBoxKndName.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.tSComboBoxKndName.Name = "tSComboBoxKndName";
this.tSComboBoxKndName.Size = new System.Drawing.Size(180, 28);
this.tSComboBoxKndName.Size = new System.Drawing.Size(136, 23);
this.tSComboBoxKndName.Text = "SUCHTEXT";
this.tSComboBoxKndName.Visible = false;
this.tSComboBoxKndName.TextUpdate += new System.EventHandler(this.TSComboBoxKndName_TextUpdate);
@ -488,9 +506,10 @@ namespace Deckungsbeitrag
this.tSSLErfolgPos,
this.tSSLErfolgNull,
this.tSSLErfolgNeg});
this.statusStrip1.Location = new System.Drawing.Point(197, 616);
this.statusStrip1.Location = new System.Drawing.Point(148, 501);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(1388, 30);
this.statusStrip1.Padding = new System.Windows.Forms.Padding(1, 0, 10, 0);
this.statusStrip1.Size = new System.Drawing.Size(1041, 24);
this.statusStrip1.TabIndex = 4;
this.statusStrip1.Text = "statusStrip1";
//
@ -502,7 +521,7 @@ namespace Deckungsbeitrag
this.tSSLItems.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLItems.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tSSLItems.Name = "tSSLItems";
this.tSSLItems.Size = new System.Drawing.Size(95, 24);
this.tSSLItems.Size = new System.Drawing.Size(77, 19);
this.tSSLItems.Text = "Datensätze:";
//
// tSSLItemsAnz
@ -512,7 +531,7 @@ namespace Deckungsbeitrag
| System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom)));
this.tSSLItemsAnz.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLItemsAnz.Name = "tSSLItemsAnz";
this.tSSLItemsAnz.Size = new System.Drawing.Size(29, 24);
this.tSSLItemsAnz.Size = new System.Drawing.Size(23, 19);
this.tSSLItemsAnz.Text = "00";
//
// tSSLMietbetten
@ -523,7 +542,7 @@ namespace Deckungsbeitrag
this.tSSLMietbetten.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLMietbetten.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tSSLMietbetten.Name = "tSSLMietbetten";
this.tSSLMietbetten.Size = new System.Drawing.Size(148, 24);
this.tSSLMietbetten.Size = new System.Drawing.Size(119, 19);
this.tSSLMietbetten.Text = "Mietbetten (Aktiv):";
//
// tSSLMietbettenAnz
@ -533,7 +552,7 @@ namespace Deckungsbeitrag
| System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom)));
this.tSSLMietbettenAnz.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLMietbettenAnz.Name = "tSSLMietbettenAnz";
this.tSSLMietbettenAnz.Size = new System.Drawing.Size(29, 24);
this.tSSLMietbettenAnz.Size = new System.Drawing.Size(23, 19);
this.tSSLMietbettenAnz.Text = "00";
//
// tSSLGesamtbetten
@ -544,7 +563,7 @@ namespace Deckungsbeitrag
this.tSSLGesamtbetten.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLGesamtbetten.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tSSLGesamtbetten.Name = "tSSLGesamtbetten";
this.tSSLGesamtbetten.Size = new System.Drawing.Size(170, 24);
this.tSSLGesamtbetten.Size = new System.Drawing.Size(136, 19);
this.tSSLGesamtbetten.Text = "Gesamtbetten (Aktiv):";
//
// tSSLGesamtbettenAnz
@ -554,7 +573,7 @@ namespace Deckungsbeitrag
| System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom)));
this.tSSLGesamtbettenAnz.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLGesamtbettenAnz.Name = "tSSLGesamtbettenAnz";
this.tSSLGesamtbettenAnz.Size = new System.Drawing.Size(29, 24);
this.tSSLGesamtbettenAnz.Size = new System.Drawing.Size(23, 19);
this.tSSLGesamtbettenAnz.Text = "00";
//
// tSSLKunden
@ -565,7 +584,7 @@ namespace Deckungsbeitrag
this.tSSLKunden.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLKunden.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tSSLKunden.Name = "tSSLKunden";
this.tSSLKunden.Size = new System.Drawing.Size(256, 24);
this.tSSLKunden.Size = new System.Drawing.Size(202, 19);
this.tSSLKunden.Text = "Kunden (Aktiv / Inaktiv / Gesamt):";
//
// tSSLKundenzahlen
@ -575,7 +594,7 @@ namespace Deckungsbeitrag
| System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom)));
this.tSSLKundenzahlen.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLKundenzahlen.Name = "tSSLKundenzahlen";
this.tSSLKundenzahlen.Size = new System.Drawing.Size(89, 24);
this.tSSLKundenzahlen.Size = new System.Drawing.Size(69, 19);
this.tSSLKundenzahlen.Text = "00 / 00 / 00";
//
// tSSLErfolg
@ -586,7 +605,7 @@ namespace Deckungsbeitrag
this.tSSLErfolg.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLErfolg.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tSSLErfolg.Name = "tSSLErfolg";
this.tSSLErfolg.Size = new System.Drawing.Size(191, 24);
this.tSSLErfolg.Size = new System.Drawing.Size(149, 19);
this.tSSLErfolg.Text = "Erfolg (Anzahl / Summe):";
//
// tSSLErfolgPos
@ -597,7 +616,7 @@ namespace Deckungsbeitrag
this.tSSLErfolgPos.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLErfolgPos.ForeColor = System.Drawing.Color.White;
this.tSSLErfolgPos.Name = "tSSLErfolgPos";
this.tSSLErfolgPos.Size = new System.Drawing.Size(59, 24);
this.tSSLErfolgPos.Size = new System.Drawing.Size(46, 19);
this.tSSLErfolgPos.Text = "00 / 00";
//
// tSSLErfolgNull
@ -607,7 +626,7 @@ namespace Deckungsbeitrag
| System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom)));
this.tSSLErfolgNull.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLErfolgNull.Name = "tSSLErfolgNull";
this.tSSLErfolgNull.Size = new System.Drawing.Size(29, 24);
this.tSSLErfolgNull.Size = new System.Drawing.Size(23, 19);
this.tSSLErfolgNull.Text = "00";
//
// tSSLErfolgNeg
@ -618,18 +637,23 @@ namespace Deckungsbeitrag
this.tSSLErfolgNeg.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tSSLErfolgNeg.ForeColor = System.Drawing.Color.White;
this.tSSLErfolgNeg.Name = "tSSLErfolgNeg";
this.tSSLErfolgNeg.Size = new System.Drawing.Size(59, 24);
this.tSSLErfolgNeg.Size = new System.Drawing.Size(46, 19);
this.tSSLErfolgNeg.Text = "00 / 00";
//
// columnButtonRenderer1
//
this.columnButtonRenderer1.ButtonPadding = new System.Drawing.Size(10, 10);
//
// FormNeuDeckungsbeitrag
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1585, 646);
this.ClientSize = new System.Drawing.Size(1189, 525);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.groupBoxFilter);
this.Controls.Add(this.toolStripMenu);
this.Controls.Add(this.olvDeckungsbeitrag);
this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "FormNeuDeckungsbeitrag";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Deckungsbeitrag";
@ -689,5 +713,6 @@ namespace Deckungsbeitrag
private System.Windows.Forms.ToolStripStatusLabel tSSLItems;
private System.Windows.Forms.ToolStripStatusLabel tSSLItemsAnz;
private System.Windows.Forms.ToolStripStatusLabel tSSLMietbettenAnz;
}
private BrightIdeasSoftware.ColumnButtonRenderer columnButtonRenderer1;
}
}

View File

@ -621,7 +621,7 @@ namespace Deckungsbeitrag
OLVBewertung bew = (OLVBewertung)item.RowObject;
Kunde knd = Kunde.GetKunde(null, bew.KundeID, string.Empty);
KundeDaten daten = new KundeDaten(knd);
FormKundeVW daten = new FormKundeVW(knd);
if(daten.ShowDialog() == DialogResult.OK)
{
}

View File

@ -127,16 +127,16 @@
<data name="toolStripButtonFilter.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
cX79DFKrHHD5d9D26hvicx4pABt2lpg10zYzU0zr7+e3xXGcrkEB2O2TNec9nJFwB3alZn5jZorfeDZh
6Q3g8s06BeCoKF4MRURoH1+BY2oNCbeb0TIclIYxOhzf8frTOuo7FxCbbVIAzpni0iceEc8vhzEwGkJD
lx83ymxifejdKjRNk/8PWnyIyTQqAJek0jqHwfEVscu31baIu8+90sTE4nY025dQ2/5FIPpnXlzKuK8A
HBUzHot52djqQ6HZhfR7IwK4mKpHtvEDMqvfCiQ6zaAAXM8x94aIWTNrLLG4kVUzgaTSPlzLtyJOZxbb
1wtfyg4Q+AfA3aZlButjSfxGcUJBk4g5tuP3haQKRKXcUQDOmbvNTpPOJeFFjordZmbWTNvMTHFUcpUC
nOccAdABIDXXE1nzAAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripButton1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -358,69 +358,72 @@
<data name="tSButtonKundeSuchen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
cX79DFKrHHD5d9D26hvicx4pABt2lpg10zYzU0zr7+e3xXGcrkEB2O2TNec9nJFwB3alZn5jZorfeDZh
6Q3g8s06BeCoKF4MRURoH1+BY2oNCbeb0TIclIYxOhzf8frTOuo7FxCbbVIAzpni0iceEc8vhzEwGkJD
lx83ymxifejdKjRNk/8PWnyIyTQqAJek0jqHwfEVscu31baIu8+90sTE4nY025dQ2/5FIPpnXlzKuK8A
HBUzHot52djqQ6HZhfR7IwK4mKpHtvEDMqvfCiQ6zaAAXM8x94aIWTNrLLG4kVUzgaTSPlzLtyJOZxbb
1wtfyg4Q+AfA3aZlButjSfxGcUJBk4g5tuP3haQKRKXcUQDOmbvNTpPOJeFFjordZmbWTNvMTHFUcpUC
nOccAdABIDXXE1nzAAAAAElFTkSuQmCC
</value>
</data>
<data name="tSBAddKosten.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAEPSURBVDhPrZI7DoMwEEQ5Uo4Q0dPTc4HUVGnofQCKdLSI
A9DT01NQ0iQSn9Lxs2yCkYMihZVGWu+MZ9cLwamxLMt1nudSQe5QwhmZP5RIdF0nsyyTURTJMAw1yKnB
oTFyNyDattXiOI5lURSyaRoNcmpwXhNGg7Cd+r5/TdN0pw7IqQkhZF3XGDzHcbyY67p7yUW6IHRIE8rk
NgzD2sQxUQdNVFUl6aaLm6AGuGSfmSTJpxkGLIv3+jYNn+f5ijRNtd6anGPw7xPWJSL6ZYnOsvefERM6
IgDkXGBCnultokQPSEyYBDHjYkx++CPZwAQBU7CkLajBoTFyf/AcdqKgJwDk1Hxf6DDsDszxSwTBG+ro
49gUNsnqAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEMSURBVDhPrZMxjoNADEVzpD1CRE9PzwW2pkpDzwEo0tEi
DkBPT09BSbORsCkneqM1yUxQtNLG0pdG/va3x+M5nT5p27adVbVVVRehhYvjA1PVapomV5alS9PUJUni
wRkfHDFxnjeIcRx9cJZlrmkaNwyDB2d8cIcitAZhleZ5vonIBT/gjK+qKtf3PQI/67p+PVdvSaQKgQH5
ayLyvSzLXiQQYUgQXdc5qh0kXwBJds08zx/FEGBY3Pdo0vB1Xe8oisLHm8hnBP57hX2ILxN+iARDDIYd
PyMiVCQA2DPSIdc8LCIiV0hbJIJpF2HObxfJDBFbZVtjg60yMXFeYM+fiQ7Anz9TbDaD2B/bHero49g9
VkT2AAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripPrint.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAEPSURBVDhPrZI7DoMwEEQ5Uo4Q0dPTc4HUVGnofQCKdLSI
A9DT01NQ0iQSn9Lxs2yCkYMihZVGWu+MZ9cLwamxLMt1nudSQe5QwhmZP5RIdF0nsyyTURTJMAw1yKnB
oTFyNyDattXiOI5lURSyaRoNcmpwXhNGg7Cd+r5/TdN0pw7IqQkhZF3XGDzHcbyY67p7yUW6IHRIE8rk
NgzD2sQxUQdNVFUl6aaLm6AGuGSfmSTJpxkGLIv3+jYNn+f5ijRNtd6anGPw7xPWJSL6ZYnOsvefERM6
IgDkXGBCnultokQPSEyYBDHjYkx++CPZwAQBU7CkLajBoTFyf/AcdqKgJwDk1Hxf6DDsDszxSwTBG+ro
49gUNsnqAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEMSURBVDhPrZMxjoNADEVzpD1CRE9PzwW2pkpDzwEo0tEi
DkBPT09BSbORsCkneqM1yUxQtNLG0pdG/va3x+M5nT5p27adVbVVVRehhYvjA1PVapomV5alS9PUJUni
wRkfHDFxnjeIcRx9cJZlrmkaNwyDB2d8cIcitAZhleZ5vonIBT/gjK+qKtf3PQI/67p+PVdvSaQKgQH5
ayLyvSzLXiQQYUgQXdc5qh0kXwBJds08zx/FEGBY3Pdo0vB1Xe8oisLHm8hnBP57hX2ILxN+iARDDIYd
PyMiVCQA2DPSIdc8LCIiV0hbJIJpF2HObxfJDBFbZVtjg60yMXFeYM+fiQ7Anz9TbDaD2B/bHero49g9
VkT2AAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripBeenden.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAEPSURBVDhPrZI7DoMwEEQ5Uo4Q0dPTc4HUVGnofQCKdLSI
A9DT01NQ0iQSn9Lxs2yCkYMihZVGWu+MZ9cLwamxLMt1nudSQe5QwhmZP5RIdF0nsyyTURTJMAw1yKnB
oTFyNyDattXiOI5lURSyaRoNcmpwXhNGg7Cd+r5/TdN0pw7IqQkhZF3XGDzHcbyY67p7yUW6IHRIE8rk
NgzD2sQxUQdNVFUl6aaLm6AGuGSfmSTJpxkGLIv3+jYNn+f5ijRNtd6anGPw7xPWJSL6ZYnOsvefERM6
IgDkXGBCnultokQPSEyYBDHjYkx++CPZwAQBU7CkLajBoTFyf/AcdqKgJwDk1Hxf6DDsDszxSwTBG+ro
49gUNsnqAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEMSURBVDhPrZMxjoNADEVzpD1CRE9PzwW2pkpDzwEo0tEi
DkBPT09BSbORsCkneqM1yUxQtNLG0pdG/va3x+M5nT5p27adVbVVVRehhYvjA1PVapomV5alS9PUJUni
wRkfHDFxnjeIcRx9cJZlrmkaNwyDB2d8cIcitAZhleZ5vonIBT/gjK+qKtf3PQI/67p+PVdvSaQKgQH5
ayLyvSzLXiQQYUgQXdc5qh0kXwBJds08zx/FEGBY3Pdo0vB1Xe8oisLHm8hnBP57hX2ILxN+iARDDIYd
PyMiVCQA2DPSIdc8LCIiV0hbJIJpF2HObxfJDBFbZVtjg60yMXFeYM+fiQ7Anz9TbDaD2B/bHero49g9
VkT2AAAAAElFTkSuQmCC
</value>
</data>
<data name="tSBEinstellung.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
cX79DFKrHHD5d9D26hvicx4pABt2lpg10zYzU0zr7+e3xXGcrkEB2O2TNec9nJFwB3alZn5jZorfeDZh
6Q3g8s06BeCoKF4MRURoH1+BY2oNCbeb0TIclIYxOhzf8frTOuo7FxCbbVIAzpni0iceEc8vhzEwGkJD
lx83ymxifejdKjRNk/8PWnyIyTQqAJek0jqHwfEVscu31baIu8+90sTE4nY025dQ2/5FIPpnXlzKuK8A
HBUzHot52djqQ6HZhfR7IwK4mKpHtvEDMqvfCiQ6zaAAXM8x94aIWTNrLLG4kVUzgaTSPlzLtyJOZxbb
1wtfyg4Q+AfA3aZlButjSfxGcUJBk4g5tuP3haQKRKXcUQDOmbvNTpPOJeFFjordZmbWTNvMTHFUcpUC
nOccAdABIDXXE1nzAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>327, 17</value>
</metadata>
<metadata name="columnButtonRenderer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>442, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>

View File

@ -46,7 +46,6 @@ namespace Deckungsbeitrag
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.labelContainer = new System.Windows.Forms.Label();
this.groupBoxSonder = new System.Windows.Forms.GroupBox();
this.pictureBoxMinus = new System.Windows.Forms.PictureBox();
this.pictureBoxPlus = new System.Windows.Forms.PictureBox();
@ -55,16 +54,27 @@ namespace Deckungsbeitrag
this.rBDO = new System.Windows.Forms.RadioButton();
this.rBMI = new System.Windows.Forms.RadioButton();
this.rBDI = new System.Windows.Forms.RadioButton();
this.dGArtikel = new System.Windows.Forms.DataGridView();
this.label6 = new System.Windows.Forms.Label();
this.comboBoxTyp = new System.Windows.Forms.ComboBox();
this.buttonExtraKunde = new System.Windows.Forms.Button();
this.pictureBoxWalli = new System.Windows.Forms.PictureBox();
this.textBoxCont = new System.Windows.Forms.TextBox();
this.dGArtikel = new System.Windows.Forms.DataGridView();
this.KundeArtikelID = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.KundeID = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ArtikelNR = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ArtikelName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Stand = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Fehlmenge = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Korrektur = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.StandBearbeitet = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.FehlmengeBearbeitet = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.KorrekturBearbeitet = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.groupBoxSonder.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxMinus)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxPlus)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dGArtikel)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxWalli)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dGArtikel)).BeginInit();
this.SuspendLayout();
//
// dTPLiefertag
@ -78,6 +88,7 @@ namespace Deckungsbeitrag
this.dTPLiefertag.Name = "dTPLiefertag";
this.dTPLiefertag.Size = new System.Drawing.Size(141, 32);
this.dTPLiefertag.TabIndex = 2;
this.dTPLiefertag.ValueChanged += new System.EventHandler(this.dTPLiefertag_ValueChanged);
this.dTPLiefertag.Leave += new System.EventHandler(this.dTPLiefertag_Leave);
//
// comboBoxBenutzer
@ -116,6 +127,7 @@ namespace Deckungsbeitrag
this.comboBoxAufgabe.Name = "comboBoxAufgabe";
this.comboBoxAufgabe.Size = new System.Drawing.Size(106, 33);
this.comboBoxAufgabe.TabIndex = 0;
this.comboBoxAufgabe.SelectedValueChanged += new System.EventHandler(this.comboBoxAufgabe_SelectedValueChanged);
//
// labelAktion
//
@ -158,7 +170,7 @@ namespace Deckungsbeitrag
this.buttonSpeichern.FlatAppearance.BorderSize = 0;
this.buttonSpeichern.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonSpeichern.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonSpeichern.ForeColor = System.Drawing.Color.Black;
this.buttonSpeichern.ForeColor = System.Drawing.Color.White;
this.buttonSpeichern.Location = new System.Drawing.Point(463, 530);
this.buttonSpeichern.Margin = new System.Windows.Forms.Padding(2);
this.buttonSpeichern.Name = "buttonSpeichern";
@ -177,7 +189,7 @@ namespace Deckungsbeitrag
this.buttonAbbrechen.FlatAppearance.BorderSize = 0;
this.buttonAbbrechen.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonAbbrechen.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonAbbrechen.ForeColor = System.Drawing.Color.Black;
this.buttonAbbrechen.ForeColor = System.Drawing.Color.White;
this.buttonAbbrechen.Location = new System.Drawing.Point(587, 530);
this.buttonAbbrechen.Margin = new System.Windows.Forms.Padding(2);
this.buttonAbbrechen.Name = "buttonAbbrechen";
@ -261,23 +273,9 @@ namespace Deckungsbeitrag
this.label5.Location = new System.Drawing.Point(5, 276);
this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(82, 20);
this.label5.Size = new System.Drawing.Size(158, 20);
this.label5.TabIndex = 24;
this.label5.Text = "Container:";
//
// labelContainer
//
this.labelContainer.BackColor = System.Drawing.Color.White;
this.labelContainer.Font = new System.Drawing.Font("Microsoft Sans Serif", 16.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelContainer.ForeColor = System.Drawing.Color.Black;
this.labelContainer.Location = new System.Drawing.Point(140, 256);
this.labelContainer.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.labelContainer.Name = "labelContainer";
this.labelContainer.Size = new System.Drawing.Size(38, 41);
this.labelContainer.TabIndex = 9;
this.labelContainer.Text = "0";
this.labelContainer.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.labelContainer.TextChanged += new System.EventHandler(this.labelContainer_TextChanged);
this.label5.Text = "Container schmutzig:";
//
// groupBoxSonder
//
@ -300,10 +298,10 @@ namespace Deckungsbeitrag
//
this.pictureBoxMinus.BackColor = System.Drawing.Color.Red;
this.pictureBoxMinus.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxMinus.Image")));
this.pictureBoxMinus.Location = new System.Drawing.Point(103, 256);
this.pictureBoxMinus.Location = new System.Drawing.Point(174, 256);
this.pictureBoxMinus.Margin = new System.Windows.Forms.Padding(2);
this.pictureBoxMinus.Name = "pictureBoxMinus";
this.pictureBoxMinus.Size = new System.Drawing.Size(38, 41);
this.pictureBoxMinus.Size = new System.Drawing.Size(38, 40);
this.pictureBoxMinus.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBoxMinus.TabIndex = 27;
this.pictureBoxMinus.TabStop = false;
@ -313,10 +311,10 @@ namespace Deckungsbeitrag
//
this.pictureBoxPlus.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.pictureBoxPlus.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxPlus.Image")));
this.pictureBoxPlus.Location = new System.Drawing.Point(178, 256);
this.pictureBoxPlus.Location = new System.Drawing.Point(249, 256);
this.pictureBoxPlus.Margin = new System.Windows.Forms.Padding(2);
this.pictureBoxPlus.Name = "pictureBoxPlus";
this.pictureBoxPlus.Size = new System.Drawing.Size(38, 41);
this.pictureBoxPlus.Size = new System.Drawing.Size(38, 40);
this.pictureBoxPlus.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBoxPlus.TabIndex = 26;
this.pictureBoxPlus.TabStop = false;
@ -423,14 +421,6 @@ namespace Deckungsbeitrag
this.rBDI.CheckedChanged += new System.EventHandler(this.Liefertag_rB_Checked);
this.rBDI.Click += new System.EventHandler(this.Liefertag_rB_Click);
//
// dGArtikel
//
this.dGArtikel.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dGArtikel.Location = new System.Drawing.Point(307, 12);
this.dGArtikel.Name = "dGArtikel";
this.dGArtikel.Size = new System.Drawing.Size(395, 513);
this.dGArtikel.TabIndex = 10;
//
// label6
//
this.label6.AutoSize = true;
@ -459,6 +449,7 @@ namespace Deckungsbeitrag
//
this.buttonExtraKunde.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonExtraKunde.BackColor = System.Drawing.Color.Yellow;
this.buttonExtraKunde.Enabled = false;
this.buttonExtraKunde.FlatAppearance.BorderSize = 0;
this.buttonExtraKunde.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonExtraKunde.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@ -471,6 +462,7 @@ namespace Deckungsbeitrag
this.buttonExtraKunde.Text = "+Auftrag";
this.buttonExtraKunde.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.buttonExtraKunde.UseVisualStyleBackColor = false;
this.buttonExtraKunde.Visible = false;
this.buttonExtraKunde.Click += new System.EventHandler(this.buttonExtraKunde_Click);
//
// pictureBoxWalli
@ -489,6 +481,99 @@ namespace Deckungsbeitrag
this.pictureBoxWalli.UseWaitCursor = true;
this.pictureBoxWalli.Visible = false;
//
// textBoxCont
//
this.textBoxCont.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxCont.Location = new System.Drawing.Point(210, 256);
this.textBoxCont.Margin = new System.Windows.Forms.Padding(2);
this.textBoxCont.Name = "textBoxCont";
this.textBoxCont.Size = new System.Drawing.Size(39, 40);
this.textBoxCont.TabIndex = 31;
this.textBoxCont.Text = "0";
this.textBoxCont.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.textBoxCont.TextChanged += new System.EventHandler(this.textBoxCont_TextChanged);
//
// dGArtikel
//
this.dGArtikel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.dGArtikel.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dGArtikel.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.KundeArtikelID,
this.KundeID,
this.ArtikelNR,
this.ArtikelName,
this.Stand,
this.Fehlmenge,
this.Korrektur,
this.StandBearbeitet,
this.FehlmengeBearbeitet,
this.KorrekturBearbeitet});
this.dGArtikel.Location = new System.Drawing.Point(307, 12);
this.dGArtikel.Name = "dGArtikel";
this.dGArtikel.Size = new System.Drawing.Size(395, 513);
this.dGArtikel.TabIndex = 32;
this.dGArtikel.CellEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridView_CellEnter);
this.dGArtikel.CellValidating += new System.Windows.Forms.DataGridViewCellValidatingEventHandler(this.dGArtikel_CellValidating);
//
// KundeArtikelID
//
this.KundeArtikelID.HeaderText = "KundeArtikelID";
this.KundeArtikelID.Name = "KundeArtikelID";
this.KundeArtikelID.ReadOnly = true;
this.KundeArtikelID.Visible = false;
//
// KundeID
//
this.KundeID.HeaderText = "KundeID";
this.KundeID.Name = "KundeID";
this.KundeID.ReadOnly = true;
this.KundeID.Visible = false;
//
// ArtikelNR
//
this.ArtikelNR.HeaderText = "Art. Nr.";
this.ArtikelNR.Name = "ArtikelNR";
this.ArtikelNR.ReadOnly = true;
//
// ArtikelName
//
this.ArtikelName.HeaderText = "Art. Name";
this.ArtikelName.Name = "ArtikelName";
this.ArtikelName.ReadOnly = true;
//
// Stand
//
this.Stand.HeaderText = "Stand";
this.Stand.Name = "Stand";
this.Stand.ReadOnly = true;
//
// Fehlmenge
//
this.Fehlmenge.HeaderText = "Fehlmenge";
this.Fehlmenge.Name = "Fehlmenge";
//
// Korrektur
//
this.Korrektur.HeaderText = "Korrektur";
this.Korrektur.Name = "Korrektur";
//
// StandBearbeitet
//
this.StandBearbeitet.HeaderText = "Stand Bearbeitet";
this.StandBearbeitet.Name = "StandBearbeitet";
//
// FehlmengeBearbeitet
//
this.FehlmengeBearbeitet.HeaderText = "Fehlmenge Bearbeitet";
this.FehlmengeBearbeitet.Name = "FehlmengeBearbeitet";
//
// KorrekturBearbeitet
//
this.KorrekturBearbeitet.HeaderText = "Korrektur Bearbeitet";
this.KorrekturBearbeitet.Name = "KorrekturBearbeitet";
//
// FormNeuerAuftrag
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -497,6 +582,8 @@ namespace Deckungsbeitrag
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.CancelButton = this.buttonAbbrechen;
this.ClientSize = new System.Drawing.Size(709, 585);
this.Controls.Add(this.dGArtikel);
this.Controls.Add(this.textBoxCont);
this.Controls.Add(this.buttonExtraKunde);
this.Controls.Add(this.label6);
this.Controls.Add(this.comboBoxTyp);
@ -508,7 +595,6 @@ namespace Deckungsbeitrag
this.Controls.Add(this.groupBoxSonder);
this.Controls.Add(this.pictureBoxMinus);
this.Controls.Add(this.pictureBoxPlus);
this.Controls.Add(this.labelContainer);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
@ -518,7 +604,6 @@ namespace Deckungsbeitrag
this.Controls.Add(this.buttonAbbrechen);
this.Controls.Add(this.buttonSpeichern);
this.Controls.Add(this.dTPLiefertag);
this.Controls.Add(this.dGArtikel);
this.Controls.Add(this.pictureBoxWalli);
this.ForeColor = System.Drawing.Color.White;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
@ -529,14 +614,14 @@ namespace Deckungsbeitrag
this.ShowInTaskbar = false;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Auftrag erstellen";
this.Text = "NEUER AUFTRAG";
this.Load += new System.EventHandler(this.FormNeuerAuftrag_Load);
this.groupBoxSonder.ResumeLayout(false);
this.groupBoxSonder.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxMinus)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxPlus)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dGArtikel)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxWalli)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dGArtikel)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@ -559,7 +644,6 @@ namespace Deckungsbeitrag
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label labelContainer;
private System.Windows.Forms.PictureBox pictureBoxPlus;
private System.Windows.Forms.PictureBox pictureBoxMinus;
private System.Windows.Forms.GroupBox groupBoxSonder;
@ -568,10 +652,21 @@ namespace Deckungsbeitrag
private System.Windows.Forms.RadioButton rBDO;
private System.Windows.Forms.RadioButton rBMI;
private System.Windows.Forms.RadioButton rBDI;
private System.Windows.Forms.DataGridView dGArtikel;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.ComboBox comboBoxTyp;
private System.Windows.Forms.Button buttonExtraKunde;
private System.Windows.Forms.PictureBox pictureBoxWalli;
private System.Windows.Forms.TextBox textBoxCont;
private System.Windows.Forms.DataGridView dGArtikel;
private System.Windows.Forms.DataGridViewTextBoxColumn KundeArtikelID;
private System.Windows.Forms.DataGridViewTextBoxColumn KundeID;
private System.Windows.Forms.DataGridViewTextBoxColumn ArtikelNR;
private System.Windows.Forms.DataGridViewTextBoxColumn ArtikelName;
private System.Windows.Forms.DataGridViewTextBoxColumn Stand;
private System.Windows.Forms.DataGridViewTextBoxColumn Fehlmenge;
private System.Windows.Forms.DataGridViewTextBoxColumn Korrektur;
private System.Windows.Forms.DataGridViewTextBoxColumn StandBearbeitet;
private System.Windows.Forms.DataGridViewTextBoxColumn FehlmengeBearbeitet;
private System.Windows.Forms.DataGridViewTextBoxColumn KorrekturBearbeitet;
}
}

View File

@ -8,6 +8,7 @@ using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Web.Caching;
@ -21,9 +22,6 @@ namespace Deckungsbeitrag
{
public Fehlermeldungen meldung = new Fehlermeldungen();
public Kunde kunde;
//public Kunde extrakunde;
//public List<Kunde> kundenliste;
//public List<Benutzer> fahrerliste;
public Auftrag Auftrag;
public Auftrag extraAuftrag;
public Fach fach;
@ -32,7 +30,9 @@ namespace Deckungsbeitrag
private Maschine maschine;
bool extra;
List<Sortiment> sortimentListe;
public DateTime? letzterLiefertag;
private Kunde knd;
public DataGridViewCell aktivCell;
public FormNeuerAuftrag()
{
@ -48,8 +48,22 @@ namespace Deckungsbeitrag
else this.Auftrag = auftrag;
}
private void FormNeuerAuftrag_Load(object sender, EventArgs e)
public FormNeuerAuftrag(Benutzer benutzer) : this()
{
this.benutzer = benutzer;
this.Auftrag = new Auftrag();
}
public FormNeuerAuftrag(Benutzer benutzer, DateTime? letzterLiefertag) : this(benutzer)
{
this.letzterLiefertag = letzterLiefertag;
this.Auftrag = new Auftrag();
//this.knd = Open_List();
}
private void FormNeuerAuftrag_Load(object sender, EventArgs e)
{
this.kunde = Funktionen.KundenAuswahl();
Load_Controls();
this.label1.Text = this.textBoxZusatz.Text.Length.ToString() + "/" + this.textBoxZusatz.MaxLength.ToString();
sortimentListe = (List<Sortiment>)Funktionen.SortimentLesen("Liste");
@ -70,11 +84,15 @@ namespace Deckungsbeitrag
this.comboBoxTyp.Enabled = false;
foreach(Control c in this.groupBoxSonder.Controls) { if(c.GetType() != typeof(Label)) c.Enabled = false; }
this.dGArtikel.Enabled = this.dGArtikel.Visible = false;
this.pictureBoxWalli.Visible = true;
//this.pictureBoxWalli.Visible = true;
this.comboBoxTyp.SelectedIndex = 1;
}
}
/// <summary>
/// Div Controls werden geladen. Darunter RadioButtons, ComboBox und GridView.
/// </summary>
private void Load_Controls()
{
Get_RadioButtons();
@ -82,22 +100,24 @@ namespace Deckungsbeitrag
if (Auftrag == null)
{
this.dTPLiefertag.Value = DateTime.Today;
this.dTPLiefertag.Value = DateTime.Today.AddDays(1);
this.comboBoxAufgabe.SelectedIndex = -1;
this.comboBoxBenutzer.SelectedIndex = -1;
}
else
{
kunde = Kunde.GetKunde(string.Empty, Auftrag.KundeID, string.Empty);
if (kunde == null) kunde = Kunde.GetKunde(string.Empty, Auftrag.KundeID, string.Empty);
this.textBoxKndNr.Text = kunde.KundeNummer;
this.textBoxKundeName.Text = kunde.Suchtext;
this.textBoxKundeName.Enabled = false;
this.dTPLiefertag.Value = Auftrag.Liefertag;
this.labelContainer.Text = Auftrag.Container.ToString();
this.textBoxKndNr.Enabled = false;
if (letzterLiefertag.HasValue) this.dTPLiefertag.Value = letzterLiefertag.Value;
else this.dTPLiefertag.Value = DateTime.Today.AddDays(1);
this.textBoxCont.Text = Auftrag.Container.ToString();
this.textBoxZusatz.Text = Auftrag.ZusatzInfo;
dTPLiefertag_Leave(this.dTPLiefertag, EventArgs.Empty);
labelContainer_TextChanged(this.labelContainer, EventArgs.Empty);
textBoxCont_TextChanged(this.textBoxCont, EventArgs.Empty);
if (Auftrag.ArbeiterID != null)
{
@ -110,22 +130,28 @@ namespace Deckungsbeitrag
if (auf.AufgabeID == Auftrag.AufgabeID)
{
this.comboBoxAufgabe.SelectedItem = auf;
if (auf.Bezeichnung == "STH" || auf.Bezeichnung == "STV" || auf.Bezeichnung == "STA") Load_Gridview(kunde.KundeNummer.ToString());
if (auf.Bezeichnung == "STH" || auf.Bezeichnung == "STV" || auf.Bezeichnung == "STA") Load_Gridview(kunde.KundeNummer.ToString(), auf);
}
}
}
}
}
private void Get_RadioButtons()
{
foreach (RadioButton rb in this.Controls.OfType<RadioButton>())
{
if (kunde != null)
{
if (rb.Name.Contains("MO")) rb.Tag = Liefertag.MO;
if (rb.Name.Contains("Di")) rb.Tag = Liefertag.DI;
if (rb.Name.Contains("MI")) rb.Tag = Liefertag.MI;
if (rb.Name.Contains("DO")) rb.Tag = Liefertag.DO;
if (rb.Name.Contains("FR")) rb.Tag = Liefertag.FR;
foreach (RadioButton rb in this.Controls.OfType<RadioButton>())
{
if (rb.Name.Contains("MO")) rb.Tag = Liefertag.MO;
if (rb.Name.Contains("Di")) rb.Tag = Liefertag.DI;
if (rb.Name.Contains("MI")) rb.Tag = Liefertag.MI;
if (rb.Name.Contains("DO")) rb.Tag = Liefertag.DO;
if (rb.Name.Contains("FR")) rb.Tag = Liefertag.FR;
rb.Enabled = true;
}
}
else foreach (RadioButton rb in this.Controls.OfType<RadioButton>()) rb.Enabled = false;
}
private void comboBox_Load()
@ -134,37 +160,62 @@ namespace Deckungsbeitrag
foreach (Aufgabe aufgabe in aufgabenlist) this.comboBoxAufgabe.AutoCompleteCustomSource.Add(aufgabe.Bezeichnung);
this.comboBoxAufgabe.DataSource = aufgabenlist;
this.comboBoxAufgabe.DisplayMember = "Bezeichnung";
this.comboBoxAufgabe.SelectedIndex = -1;
List<Benutzer> benutzerlist = Benutzer.GetArbeiterList();
foreach (Benutzer benutzer in benutzerlist) this.comboBoxBenutzer.AutoCompleteCustomSource.Add(benutzer.Vorname);
this.comboBoxBenutzer.DataSource = benutzerlist;
this.comboBoxBenutzer.DisplayMember = "Vorname";
this.comboBoxBenutzer.SelectedIndex = -1;
this.comboBoxTyp.DataSource = Enum.GetValues(typeof(AuftragTyp));
}
private void Load_Gridview(string kundeNr)
private void Load_Gridview(string kundeid, Aufgabe auf)
{
List<KundeArtikel> artikelListe = KundeArtikel.GetList(kundeid);
List<Sortiment> resultList = null;
resultList = sortimentListe.FindAll(Sortiment => Sortiment.KundeNummer == kundeNr);
//if(this.benutzer.BenutzerID == this.Auftrag.ArbeiterID)
//{
// DataGridViewCheckBoxColumn boolColumn = new DataGridViewCheckBoxColumn();
// boolColumn.HeaderText = "Erledigt";
// boolColumn.Name = "CheckColumn";
// this.dGArtikel.Columns.Add(boolColumn);
//}
this.dGArtikel.DataSource = resultList;
this.dGArtikel.Columns[0].Visible = false;
this.dGArtikel.Columns[2].HeaderText = "Bezeichnung";
this.dGArtikel.Columns.Add("Anzahl", "Anzahl");
this.dGArtikel.ClearSelection();
this.dGArtikel.CurrentCell = this.dGArtikel.Rows[0].Cells[3];
//List<Sortiment> resultList = null;
//resultList = sortimentListe.FindAll(Sortiment => Sortiment.KundeNummer == kundeNr);
if (artikelListe.Count != 0)
{
this.dGArtikel.AutoGenerateColumns = false;
foreach (DataGridViewColumn col in this.dGArtikel.Columns)
{
col.DataPropertyName = col.Name;
if (col.Name.Contains("Bearbeitet")) col.Visible = false;
if (col.Name == "Fehlmenge")
{
if (auf.Bezeichnung == "STA") col.Visible = true;
else col.Visible = false;
}
if (col.Name == "Korrektur")
{
if(auf.Bezeichnung != "STA") col.Visible = true;
else col.Visible = false;
}
}
// DataGridView mit ArtikelStand Liste verbinden und Columns automatisch generieren.
this.dGArtikel.DataSource = artikelListe;
this.dGArtikel.ClearSelection();
//this.dGArtikel.CurrentCell = this.dGArtikel.Rows[0].Cells[3];
// Alle Spaltenbreiten an den Zellinhalt anpassen
this.dGArtikel.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
// Alle Zeilenhöhen an Zellinhalt anpassen
this.dGArtikel.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
}
}
/// <summary>
/// Button Click Events.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonAbbrechen_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
@ -179,110 +230,213 @@ namespace Deckungsbeitrag
this.textBoxKndNr.Focus();
return;
}
//Bei Auftrag BEARBEITEN ist AUFTRAG nicht null. Wenn NEUER AUFTRAG dann AUFTRAG erzeugen.
if (Auftrag == null)
{
Auftrag = new Auftrag();
//Wenn Kundename händisch eingegeben dann wird DIV ZIELKUNDE genommen und KUNDENAME in ZUSATZINFO.
if (kunde.Suchtext == this.textBoxKundeName.Text)
{
Auftrag.ZusatzInfo = kunde.Suchtext;
}
}
//AUFTRAG DATEN ÜBERGEBEN
Auftrag.KundeID = (int)kunde.KundeID;
Auftrag.Liefertag = this.dTPLiefertag.Value;
Auftrag.Container = int.Parse(this.labelContainer.Text);
Auftrag.Container = int.Parse(this.textBoxCont.Text);
Auftrag.ErstelltVon = (int)this.benutzer.BenutzerID;
Auftrag.Erstellt = DateTime.Now;
Auftrag.Container = int.Parse(this.labelContainer.Text);
Auftrag.Container = int.Parse(this.textBoxCont.Text);
Auftrag.Typ = (AuftragTyp)comboBoxTyp.SelectedItem;
if (maschine != null) Auftrag.MaschineID = (int)maschine.MaschineID;
else Auftrag.MaschineID = 0;
else Auftrag.MaschineID = null;
//BEI BENUTZER WASCHSTRASSE DEAKTIVIERT
if(benutzer.Rolle != BenutzerRolle.Waschstrasse)
{
if (!string.IsNullOrWhiteSpace(this.comboBoxAufgabe.Text)) Auftrag.AufgabeID = Aufgabe.GetAufgabeID(this.comboBoxAufgabe.Text);
else if (meldung.NoAufgabe() == DialogResult.OK) { this.comboBoxAufgabe.Focus(); return; }
if (!string.IsNullOrWhiteSpace(textBoxZusatz.Text)) Auftrag.ZusatzInfo = this.textBoxZusatz.Text;
if (!string.IsNullOrWhiteSpace(this.comboBoxBenutzer.Text)) Auftrag.ArbeiterID = this.comboBoxBenutzer.SelectedItem != null ? (int?)((Benutzer)this.comboBoxBenutzer.SelectedItem).BenutzerID : null;
}
if (benutzer.Rolle == BenutzerRolle.Verwaltung || benutzer.Rolle == BenutzerRolle.Admin) Auftrag.Status = AuftragStatus.Herrichten;
else Auftrag.Status = AuftragStatus.Aufgelegt;
//Wenn SONDERAUFTRAG(STH,STV,INV) dann ARTIKEL speichern.
if (Auftrag.Typ == AuftragTyp.Sonder)
if(Auftrag.FindeAuftrag(Auftrag) == true)
{
foreach (DataGridViewRow artikel in this.dGArtikel.Rows)
if (meldung.AuftragVorhanden(Auftrag) == DialogResult.Yes)
{
if (artikel.Cells[0].Value != null)
//BEI BENUTZER WASCHSTRASSE DEAKTIVIERT
if (benutzer.Rolle != BenutzerRolle.Waschstrasse)
{
AuftragArtikel = new AuftragArtikel();
if (!string.IsNullOrWhiteSpace(this.comboBoxAufgabe.Text)) Auftrag.AufgabeID = Aufgabe.GetAufgabeID(this.comboBoxAufgabe.Text);
else Auftrag.AufgabeID = null;
if (!string.IsNullOrWhiteSpace(textBoxZusatz.Text)) Auftrag.ZusatzInfo = this.textBoxZusatz.Text;
if (!string.IsNullOrWhiteSpace(this.comboBoxBenutzer.Text)) Auftrag.ArbeiterID = this.comboBoxBenutzer.SelectedItem != null ? (int?)((Benutzer)this.comboBoxBenutzer.SelectedItem).BenutzerID : null;
}
AuftragArtikel.AuftragID = Auftrag.AuftragID;
AuftragArtikel.ArtikelNR = (int)artikel.Cells[2].Value;
AuftragArtikel.ArtikelName = artikel.Cells[3].Value.ToString();
AuftragArtikel.Anzahl = int.Parse(artikel.Cells[0].Value.ToString());
AuftragArtikel.Erledigt = false;
if (benutzer.Rolle == BenutzerRolle.Verwaltung || benutzer.Rolle == BenutzerRolle.Admin) Auftrag.Status = AuftragStatus.Herrichten;
else Auftrag.Status = AuftragStatus.Aufgelegt;
AuftragArtikel.Save();
//Wenn SONDERAUFTRAG(STH,STV,STA) dann ARTIKEL speichern.
if (Auftrag.Typ == AuftragTyp.Sonder)
{
int tosave = 0;
int saved = 0;
foreach (DataGridViewRow artikel in this.dGArtikel.Rows)
{
tosave++;
KundeArtikel stand;
if (artikel.Cells[0].Value != null)
{
stand = KundeArtikel.GetItem(int.Parse(artikel.Cells[0].Value.ToString()));
if (artikel.Cells[5].Visible == true)
{
stand.Fehlmenge = int.Parse(artikel.Cells[5].Value.ToString());
stand.FehlmengeBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (artikel.Cells[6].Visible == true)
{
stand.Korrektur = int.Parse(artikel.Cells[6].Value.ToString());
stand.KorrekturBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (stand.Save() == 1) saved++;
}
}
//Kontrolle ob alle Artikel gespeichert wurden.
if (saved != tosave) meldung.Speicherfehler();
else
{
//Speichern von AUFTRAG
save = Auftrag.Save();
}
}
else
{
if (!extra)
{
//this.fach.KundeID = Auftrag.KundeID;
//this.fach.Lieferdatum = Auftrag.Liefertag;
//this.fach.Liefertag = (Liefertag)Auftrag.Liefertag.DayOfWeek;
//if (extraAuftrag == null) { this.fach.ExtraAuftragID = null; this.fach.ExtraKundeID = null; }
//else { this.fach.ExtraAuftragID = extraAuftrag.AuftragID; this.fach.ExtraKundeID = extraAuftrag.KundeID; }
//this.fach.Gewaschen = (DateTime)Auftrag.Erstellt;
//FormFachBearbeiten fachbearb = new FormFachBearbeiten(this.Auftrag ,this.fach);
//if (fachbearb.ShowDialog() == DialogResult.OK)
//{
// this.fach = fachbearb.fach;
// //Speichern von AUFTRAG
// save = Auftrag.Save();
//}
//this.fach.AuftragID = Auftrag.AuftragID;
if (Auftrag.Save()[1] == 1) this.Close();
}
else save = Auftrag.Save();
}
}
//Speichern von AUFTRAG
save = Auftrag.Save();
else { Auftrag = new Auftrag(); FormNeuerAuftrag_Load(this, e); }
}
else
{
if (!extra)
{
this.fach.KundeID = Auftrag.KundeID;
this.fach.Lieferdatum = Auftrag.Liefertag;
this.fach.Liefertag = (Liefertag)Auftrag.Liefertag.DayOfWeek;
if (extraAuftrag == null) { this.fach.ExtraAuftragID = null; this.fach.ExtraKundeID = null; }
else { this.fach.ExtraAuftragID = extraAuftrag.AuftragID; this.fach.ExtraKundeID = extraAuftrag.KundeID; }
this.fach.Gewaschen = (DateTime)Auftrag.Erstellt;
FormFachBearbeiten fachbearb = new FormFachBearbeiten(this.Auftrag ,this.fach);
if (fachbearb.ShowDialog() == DialogResult.OK)
{
this.fach = fachbearb.fach;
//Speichern von AUFTRAG
save = Auftrag.Save();
}
this.fach.AuftragID = Auftrag.AuftragID;
{
//BEI BENUTZER WASCHSTRASSE DEAKTIVIERT
if (benutzer.Rolle != BenutzerRolle.Waschstrasse)
{
if (!string.IsNullOrWhiteSpace(this.comboBoxAufgabe.Text)) Auftrag.AufgabeID = Aufgabe.GetAufgabeID(this.comboBoxAufgabe.Text);
else Auftrag.AufgabeID = null;
if (!string.IsNullOrWhiteSpace(textBoxZusatz.Text)) Auftrag.ZusatzInfo = this.textBoxZusatz.Text;
if (!string.IsNullOrWhiteSpace(this.comboBoxBenutzer.Text)) Auftrag.ArbeiterID = this.comboBoxBenutzer.SelectedItem != null ? (int?)((Benutzer)this.comboBoxBenutzer.SelectedItem).BenutzerID : null;
}
if (benutzer.Rolle == BenutzerRolle.Verwaltung || benutzer.Rolle == BenutzerRolle.Admin) Auftrag.Status = AuftragStatus.Herrichten;
else Auftrag.Status = AuftragStatus.Aufgelegt;
//Wenn SONDERAUFTRAG(STH,STV,STA) dann ARTIKEL speichern.
if (Auftrag.Typ == AuftragTyp.Sonder)
{
int tosave = 0;
int saved = 0;
bool negieren = false;
foreach (DataGridViewRow artikel in this.dGArtikel.Rows)
{
tosave++;
KundeArtikel stand;
if (artikel.Cells[0].Value != null)
{
stand = KundeArtikel.GetItem(int.Parse(artikel.Cells[0].Value.ToString()));
if (artikel.Cells[5].Visible == true)
{
stand.Fehlmenge = int.Parse(artikel.Cells[5].Value.ToString());
stand.FehlmengeBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
if (artikel.Cells[6].Visible == true)
{
if (int.TryParse(artikel.Cells[6].Value.ToString(), out int result))
{
if (Aufgabe.GetAufgabe(null, (int?)Auftrag.AufgabeID).Bezeichnung == "STV") negieren = true;
stand.Korrektur = (negieren && stand.Korrektur > 0) ? -result : result;
stand.KorrekturBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
}
else { meldung.Eingabefehler(); return; }
}
if (stand.Save() == 1) saved++;
}
}
//Kontrolle ob alle Artikel gespeichert wurden.
if (saved != tosave) meldung.Speicherfehler();
else
{
//Speichern von AUFTRAG
save = Auftrag.Save();
}
}
else
{
if (!extra)
{
//this.fach.KundeID = Auftrag.KundeID;
//this.fach.Lieferdatum = Auftrag.Liefertag;
//this.fach.Liefertag = (Liefertag)Auftrag.Liefertag.DayOfWeek;
//if (extraAuftrag == null) { this.fach.ExtraAuftragID = null; this.fach.ExtraKundeID = null; }
//else { this.fach.ExtraAuftragID = extraAuftrag.AuftragID; this.fach.ExtraKundeID = extraAuftrag.KundeID; }
//this.fach.Gewaschen = (DateTime)Auftrag.Erstellt;
//FormFachBearbeiten fachbearb = new FormFachBearbeiten(this.Auftrag ,this.fach);
//if (fachbearb.ShowDialog() == DialogResult.OK)
//{
// this.fach = fachbearb.fach;
// //Speichern von AUFTRAG
// save = Auftrag.Save();
//}
//this.fach.AuftragID = Auftrag.AuftragID;
if (Auftrag.Save()[1] == 1) this.Close();
}
else save = Auftrag.Save();
}
else save = Auftrag.Save();
}
this.DialogResult = DialogResult.OK;
this.Close();
if(benutzer.Rolle != BenutzerRolle.Waschstrasse)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
Auftrag = new Auftrag();
FormNeuerAuftrag_Load(this, e);
}
}
private void Container_Click(object sender, EventArgs e)
{
PictureBox pb = (PictureBox)sender;
int cont = int.Parse(this.textBoxCont.Text);
if (pb.Name.ToString().Contains("Plus")) cont++;
if (pb.Name.ToString().Contains("Minus")) cont--;
this.textBoxCont.Text = cont.ToString();
}
/// <summary>
/// TextBox Events
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textBoxZusatz_TextChanged(object sender, EventArgs e)
{
this.label1.Text = this.textBoxZusatz.Text.Length.ToString() + "/" + this.textBoxZusatz.MaxLength.ToString();
}
private void Container_Click(object sender, EventArgs e)
private void textBoxCont_TextChanged(object sender, EventArgs e)
{
PictureBox pb = (PictureBox)sender;
int cont = int.Parse(this.labelContainer.Text);
if (pb.Name.ToString().Contains("Plus")) cont++;
if (pb.Name.ToString().Contains("Minus")) cont--;
this.labelContainer.Text = cont.ToString();
}
private void labelContainer_TextChanged(object sender, EventArgs e)
{
if (this.labelContainer.Text == "0") { this.pictureBoxMinus.Enabled = false; this.pictureBoxMinus.BackColor = Color.Gray; }
if (this.textBoxCont.Text == "0") { this.pictureBoxMinus.Enabled = false; this.pictureBoxMinus.BackColor = Color.Gray; }
else { this.pictureBoxMinus.Enabled = true; this.pictureBoxMinus.BackColor = Color.Red; }
}
//Liefertag oder Lieferdatum Funktionen.
/// <summary>
/// Liefertag mit automatischer Berechnung des nächsten Datums bzw. des Wochentages des Datums.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dTPLiefertag_Leave(object sender, EventArgs e)
{
foreach (RadioButton liefertag in this.Controls.OfType<RadioButton>())
@ -307,7 +461,12 @@ namespace Deckungsbeitrag
}
this.dTPLiefertag.Enabled = false;
}
private void textBoxKndNr_Click(object sender, EventArgs e)
private void dTPLiefertag_ValueChanged(object sender, EventArgs e)
{
dTPLiefertag_Leave(sender, e);
}
private void textBoxKndNr_Click(object sender, EventArgs e)
{
this.textBoxKndNr.Clear();
//Process.Start("C:\\Windows\\WinSxS\\amd64_microsoft-windows-osk_31bf3856ad364e35_10.0.22621.3672_none_8a93c823d58f9d77\\osk.exe");
@ -324,7 +483,7 @@ namespace Deckungsbeitrag
if (MessageBox.Show($"Kunde konnte nicht gefunden werden. Möchtest du in der Liste suchen?", "Frage", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
FormListe liste = new FormListe(null, true);
FormListe liste = new FormListe(null, 0);
if (liste.ShowDialog() == DialogResult.OK)
{
kunde = liste.kunde;
@ -345,7 +504,7 @@ namespace Deckungsbeitrag
textBoxKundeName.Enabled = false;
string sortNr = kunde.KundeNummer;
Load_Gridview(sortNr);
Load_Gridview(sortNr, null);
}
else
{
@ -387,5 +546,39 @@ namespace Deckungsbeitrag
{
if (e.KeyValue == 9) textBoxKundeName.Focus();
}
private void comboBoxAufgabe_SelectedValueChanged(object sender, EventArgs e)
{
if (comboBoxAufgabe.SelectedIndex == 3 || comboBoxAufgabe.SelectedIndex == 1)
{
if (this.kunde != null) Load_Gridview(this.kunde.KundeID.ToString(), Aufgabe.GetAufgabe(this.comboBoxAufgabe.Text.ToString(), null));
}
if (comboBoxAufgabe.SelectedIndex == 2)
{
if (this.kunde != null) Load_Gridview(this.kunde.KundeID.ToString(), Aufgabe.GetAufgabe(this.comboBoxAufgabe.Text.ToString(), null));
}
}
private void DataGridView_CellEnter(object sender, DataGridViewCellEventArgs e)
{
}
/// <summary>
/// Überprüfen ob die Eingabe eine Zahl ist. Es wird sonst eine Meldung angezeigt und das weiterspringen wird verhindert.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dGArtikel_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (e.ColumnIndex >= 5)
{
DataGridView dgv = (DataGridView)sender;
DataGridViewCell dgc = dgv.CurrentCell;
if (!int.TryParse(dgc.EditedFormattedValue.ToString(), out int i))
{
meldung.Eingabefehler();
e.Cancel = true;
}
}
}
}
}

View File

@ -1627,21 +1627,132 @@
jnngHGmpFHUglQYkdRSd6VwOktI60atlOq0TDzME1ElONKmPygBQZRlzTTL05aZM61rb+tYICQgAOw==
</value>
</data>
<metadata name="KundeArtikelID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="KundeID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ArtikelNR.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ArtikelName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Stand.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Fehlmenge.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Korrektur.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="StandBearbeitet.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="FehlmengeBearbeitet.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="KorrekturBearbeitet.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8A////////////////////////////////////////////////////////////////////////
////////8AD//////////////////w//D/////////////////8PDw///////MzP////zMz/D/8P////
//zMzP///8zMz/AA///////MzMzM//zMzMzP////////zMzMzMz8zMzMzM///////MzMzMzPzMzMzMz/
//////zMzMzM/8zMzMzP///////MzMzMzPzMzMzMz///////zMzMzM/8zMzMzP///////MzMzMzPzMzM
zMz///////zMzMzM/8zMzMzP/Mz////MzMzMzPzMzMzMz/zMzM//zMzMzM/8zMzMzP/MzMzM/8zMzMzP
zMzMzMz8zMzMzPzMzMzM/8zMzMzP/MzMzMz8zMzMzPzMzMzMz8zMzMzMzMzMzM/MzMzMzPzMzMzMz//8
zMzP//zMzMz//8zMzM////zM/////8zP/////Mz/////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAABAAEAAAAAAAEAIAC5FQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAFv
ck5UAc+id5oAABVzSURBVHja7Z0LuFVVtcfPOqCg4gMFVDQhsHyics4GfBUIPsMywULt4Ytz4CqSWV5R
UwnsZpaZ0c23XtNKI/JVGT5BTbtqiqX5SMRXGnI1LdBjiNwx9h57sfY6a5+91jl77b3WXr/f9/0//Pz4
Ps4Zc8wx5xpzzDmamgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
QmCC
</value>
</data>
</root>

View File

@ -1,145 +0,0 @@

namespace Deckungsbeitrag
{
partial class FormWaschverlauf
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lvWaschstrasse1 = new System.Windows.Forms.ListView();
this.label1 = new System.Windows.Forms.Label();
this.splitContWaschverlauf = new System.Windows.Forms.SplitContainer();
this.label2 = new System.Windows.Forms.Label();
this.lvWaschstrasse2 = new System.Windows.Forms.ListView();
((System.ComponentModel.ISupportInitialize)(this.splitContWaschverlauf)).BeginInit();
this.splitContWaschverlauf.Panel1.SuspendLayout();
this.splitContWaschverlauf.Panel2.SuspendLayout();
this.splitContWaschverlauf.SuspendLayout();
this.SuspendLayout();
//
// lvWaschstrasse1
//
this.lvWaschstrasse1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lvWaschstrasse1.Font = new System.Drawing.Font("Microsoft Sans Serif", 19.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lvWaschstrasse1.FullRowSelect = true;
this.lvWaschstrasse1.GridLines = true;
this.lvWaschstrasse1.HideSelection = false;
this.lvWaschstrasse1.Location = new System.Drawing.Point(13, 40);
this.lvWaschstrasse1.Name = "lvWaschstrasse1";
this.lvWaschstrasse1.Size = new System.Drawing.Size(575, 678);
this.lvWaschstrasse1.TabIndex = 0;
this.lvWaschstrasse1.UseCompatibleStateImageBehavior = false;
this.lvWaschstrasse1.View = System.Windows.Forms.View.Details;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point(7, 5);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(215, 32);
this.label1.TabIndex = 1;
this.label1.Text = "Waschstrasse 1";
//
// splitContWaschverlauf
//
this.splitContWaschverlauf.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.splitContWaschverlauf.Location = new System.Drawing.Point(12, 12);
this.splitContWaschverlauf.Name = "splitContWaschverlauf";
//
// splitContWaschverlauf.Panel1
//
this.splitContWaschverlauf.Panel1.Controls.Add(this.lvWaschstrasse1);
this.splitContWaschverlauf.Panel1.Controls.Add(this.label1);
//
// splitContWaschverlauf.Panel2
//
this.splitContWaschverlauf.Panel2.Controls.Add(this.lvWaschstrasse2);
this.splitContWaschverlauf.Panel2.Controls.Add(this.label2);
this.splitContWaschverlauf.Size = new System.Drawing.Size(1166, 733);
this.splitContWaschverlauf.SplitterDistance = 604;
this.splitContWaschverlauf.TabIndex = 2;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 16.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.ForeColor = System.Drawing.Color.White;
this.label2.Location = new System.Drawing.Point(3, 5);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(215, 32);
this.label2.TabIndex = 2;
this.label2.Text = "Waschstrasse 2";
//
// lvWaschstrasse2
//
this.lvWaschstrasse2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lvWaschstrasse2.Font = new System.Drawing.Font("Microsoft Sans Serif", 19.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lvWaschstrasse2.FullRowSelect = true;
this.lvWaschstrasse2.GridLines = true;
this.lvWaschstrasse2.HideSelection = false;
this.lvWaschstrasse2.Location = new System.Drawing.Point(9, 40);
this.lvWaschstrasse2.Name = "lvWaschstrasse2";
this.lvWaschstrasse2.Size = new System.Drawing.Size(534, 678);
this.lvWaschstrasse2.TabIndex = 2;
this.lvWaschstrasse2.UseCompatibleStateImageBehavior = false;
this.lvWaschstrasse2.View = System.Windows.Forms.View.Details;
//
// FormWaschverlauf
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.ClientSize = new System.Drawing.Size(1190, 757);
this.Controls.Add(this.splitContWaschverlauf);
this.Name = "FormWaschverlauf";
this.Text = "Waschverlauf";
this.splitContWaschverlauf.Panel1.ResumeLayout(false);
this.splitContWaschverlauf.Panel1.PerformLayout();
this.splitContWaschverlauf.Panel2.ResumeLayout(false);
this.splitContWaschverlauf.Panel2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContWaschverlauf)).EndInit();
this.splitContWaschverlauf.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ListView lvWaschstrasse1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.SplitContainer splitContWaschverlauf;
private System.Windows.Forms.ListView lvWaschstrasse2;
private System.Windows.Forms.Label label2;
}
}

View File

@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

49
FromAuftragVW.Designer.cs generated Normal file
View File

@ -0,0 +1,49 @@
namespace Deckungsbeitrag
{
partial class FromAuftragVW
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FromAuftragVW));
this.SuspendLayout();
//
// FromAuftragVW
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.ClientSize = new System.Drawing.Size(800, 450);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FromAuftragVW";
this.Text = "Auftragverwaltung";
this.ResumeLayout(false);
}
#endregion
}
}

View File

@ -10,11 +10,11 @@ using System.Windows.Forms;
namespace Deckungsbeitrag
{
public partial class FormWaschverlauf : Form
{
public FormWaschverlauf()
{
InitializeComponent();
}
}
public partial class FromAuftragVW : Form
{
public FromAuftragVW()
{
InitializeComponent();
}
}
}

219
FromAuftragVW.resx Normal file
View File

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAAAAAAAEAIAC5FQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAFv
ck5UAc+id5oAABVzSURBVHja7Z0LuFVVtcfPOqCg4gMFVDQhsHyics4GfBUIPsMywULt4Ytz4CqSWV5R
UwnsZpaZ0c23XtNKI/JVGT5BTbtqiqX5SMRXGnI1LdBjiNwx9h57sfY6a5+91jl77b3WXr/f9/0//Pz4
Ps4Zc8wx5xpzzDmamgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgTpxRbYECgIxNeoJBQgcBsGFM9tpEtKdo
quhc0VzRaaJPiwZjw9oNxEDRSNF40SdFO4k2ZABC26+faGezndpwD9EW2K+svdQ2x4vuEv2faI1orUfv
ih4XzRBtjP/FNxDqtOeJHhG9Keow4/9NdJvoy35Hxn4l2ko03Rz5NbNdh9nyQdHpoo9l2X4+e20kOkJ0
r+jfvkkfpNWiy0Sb4X/VddyhonNESysMgA7S7aJWnLhEm1lwfEj0QQUbPiWaImrOiv0C7NVbNE40X7Qy
xMT3SncHZ4scgkDPB2KQbaueiDgI+vdbsjYAAfbbQPQZ0e9spQ9rP90RHJOFIBpgs91EPxatiOhzXr3i
XYSge8mWL4geCLFilZM6/YAsDEKA/dYTjRXdIPpXN+33kmhMI9rPGT4hyGYfFc0WvdiDie/VlaL1CQLR
HLevaKLoN6L3ejgA+j02s9FXMZ/9HEvoXdLDFayoG2wX0TD2C/A5XSRO7MYus5LeEh1AAAg3EPrNtY/o
p6J3qjgIf7bI3nirWGdH3l70X6KXq2i/f9knREPYLyDB9znRIlss1sagWzgVqLxi7S76kWh5TIMwu5F2
AQETfxvR10VPx2S/36U5q13m80iPPheIVsVkM+/x4FGcSgUPxDDRnCp+c5XTMtGuaR+AAPv1t7PphwPO
paupDm9CMOU208+jS+0sf22N9IAls7MZAMqcRX/VjptqNQgXi3o1yCqmW9dJdpb/fo3s95CNWyrsVybB
N8cSm2trLE1ifyVzAaDMWbSuJH/oQWa/u/q7aO80DUKA/TSjPEH0y26cTVfDiU9Juv3KVIzqMfKf6jDx
vXpSNDwTQaDMWfRhooURz6KrretEfdIwCD77aUFOzo6V3qyzEw9Lov3KlDp/XnRfjAm+qDqvoYuDyiRb
tJrqxh6cRVdTerpwSFIHoMylnB1EF1ipcxKc+JtJSmh1sUu6yRJwaxOklxu2OCggsz/Ski0rEjYIt1mR
UaIGIcCRtxWdIXo2YfZbZpVydbVfgL2KPndZnXdJlXSFLYyNEQQCBkIvknzbSiGTOAAlxzIJtJ8WpUwT
PSb6MKE2nFdMqCboNGlulesf4pIWB+2f+gBQ5ixa70U/k4JBuM+SQ00JcuKN7Zt1UchbZ/XUcivaqqn9
ytwTmWm5ibUp0s2pLQ4KGITN7XGER2I+i66mVlvpZ10GIOCb9UBzilUpcuLrrWw7dhuWSfAdKbq/DqdJ
1dqFHpm64qCAs+jJortTsGIFaYlou1oOgM9+vexlmf8RvZ1C+2lC9VNx2y8gWO5vwfLdFNrMq/tTURzk
5Mz4uU5Z1gV1OIuupvT7+qxaRGGf/VS7iC4SvZ5yJ/51XAnVgARfiyXQ3ky5zby70JMTHQDyTrsuAOhl
nX1FV1sioxEG4Xl7YSiWQcjbrtVsOCb/b3zc7iUsbRD76W3No6tpv4Dt/nC74PRKg9gs+XUVeYcd2Vb8
s9nOLhsp+np1YbVfvinZNY3O/7md7Taeb0D73V+VhGpre1NTriBPBZ9WHv6lAW2W0OIgHYQWzyDk8iuW
FqG82sADoO/ija7KAIj9eo0+If+n7Z62sGTjkgQf6VVjK3tSjz6l1O9cTW+2T8y7U5rg686jKyPrGwC8
A5DL/7ml/DCnip7LwACorunxyy0lTty+odhRL+sszogT60MaQyLbr9Rmqh3Ebt9NYPFY3Lq8PsVBnQeg
v+gYWbkeTNGRXv1ebulsv/VF48WJf5HyBGl3Eqpnh7ZfZ7sNEZ0pei5jE9/7/uKE2gYA/4rV2j5JdIc4
b0dGB+FXdr7cHSduFo0RXSV6M6P2W1oxodp54g8UnSR6QvShLDxrM2q7tXZ3oV/8QaDzirW/aIFolSjL
A7DKnofqegA6O/EuootEr+ftl20n/n4xoVrBZpuJviT6vegDtZssPFm2W7E4aEo8AaDzAPQS7Sm6RvRW
fgAYBNU93qYiFWw4TDRbtNS1X2vm7fdaySvCnW2mO83DRQtFHSV2y3bgjLlEvXQQdhP9sLhiMQidmoq0
lQxAZyceLPqa6Cm//QigbkK1jy8A6E5zgu00V3ayG4HTe6IyI64AsL3oPNFLQQNAAHD1qF3FLZ6IFDVA
NFX0qH6vYr+y+ofdbSjuNFtEl4heK2c3AkDcr1i3ts8QLbbtfgeDULGt0+meANBXdJBovjnxu6I1BICK
t936iU22sS3/saLjRaeJLhc9qMlSfK+s5lS3OKiQ6BsvOtgG43zRXaLlOHCgnrGyXbXdtqL9bAurdpwi
Osu2sy+4SSzs509ofa5pk1nljkr1M+pQ0RWivxEAAouD9qhmAAhKAuoRzIEWkclgd9b5mtFuaml3Auyn
/29jUU50rugv+e0tOQCv7i0mVAPsV9QGogNEvxbbvY/NSnRp9YqDyg9AcRAmiu6RQViD4UuaO7Z0kdH2
BtM9rAZgJXYrSai2B5YIBydWL0zZewhxS/sWjI+vLiD4WEszuETiMCWane23qX7jyi5qBXZz9cdiQjXQ
iUvt18/qCFiESovTNoq3OKh0EAbJLuCqBr640p0ovF/o6rYW+b7Ntc90qtvbMO0lwrPC2M9uUA6224XY
LkpxWtWCQOE6pl5d/T3GdzVftGGEEte+9mgmtitI6/t3qGQ/z6fCERm7R1FJi2rzfqUOQos7CIezirnS
fgafDVUivO4uu3bp/RO2c/WdSm8ueAKABtsbsVnwdevaPP9VqOS6CuO7usMJ0x1Xg2ira8MTyKe40vck
cpXs5wkCnxS9gd1c6WIytDZBYN0gjHKS042m3tKJfFyYAfAEUe3cexe2c+U2xAjhf735jAosDqppANAt
23cxvCttaLp1qCCwzoaT+J4tufO+X4RdwAjRC9jN1Yui3WsdBHYU/RXj5/WBvZIUJQDoEc4vsV34hKpT
+iDo2disRJe4x9K52gWBMzgWdKUPVA6PGATGO435mGp3tNISzE0hg4CeSD2O3UqOpfMvVzWPmlpIPNcg
AOggPIbxXc0Nc1HDKe2QfCV2c3Wn5UfC2m+ak87GM3Fpoaz+m+d3AMWj5xoEgelOcnqsp+ZbzGO/nNPY
LytHTageHyEA6H2Cu7Gb51gw13ZmU8u03iX1JzEHAO1Yuxjju/pvy1SHdWJNqF6A3Vw9bFV/Ye03yeox
sF1BK5py7e35ylN/SXqMQWCKk/5+bNWSnlF/IuIuYEcnO8+sh3lz4WsRcgEUB/kkAWCFTPhv5Mv3gy6p
xRAAtJ3xLRjf1c+cEN1xfVntWSRUSxKq20csDuKilTcItLa/J7pFdIhepip7Y7WKQeBge/KJARjV9k/R
oRF3AR8hoVqib1VKqHpsp59cP8JmJbuA4mM++p7Hz+yl5V2sv0cfkeYJ1qtmANAS4WsxvqvfijaNGASm
k9WO9vINxUEVA0BR+rT/s6Lb7cXveaI51f4U2Ev0dwYgL+2O+6WIAWCA3fDCfuuKW3pHKA46h8+osgHA
q3dEP8k/Z1flANBLdDED4EqvTg+KmAsgoerJaIdJqHpsN8QpNFslAAQHgHctL3CwPWgbS0JwV6dxetxX
o0T45Ii7ABKqpfq5aIOIxUGZr0vxTfzV9vL3lE4JwRgCQHErhvNGvK7psd+BJFRLEqqfjlgcdE+mbZZz
A4D2WnhMNN16V9SsLmAoj16U6JxK59o+G5JQLdXtYRKqHhtPzvJNS5v8fxWdIfpI7BO/zCCcbFtgHLiQ
nd414i5gT9Hr2C6vjjAJVV9x0C8yuvprL4XviXas6cQPGIQtHd4P9OoHliQN68T6dy/Cbq4eNJ8Ka7+x
GSsOelcmv2b2RzW15FvS13bil8kFfNGOw3DgwvHoXhF3Abtwtl2SUJ0ZoUS4t93LyEqe6ctOa1vfkp6V
9cIzCJtaQQwOXNC19n0fJQhwtr1OoZpj+oqDljWwPV6xismPFh8Cif0tgG4EgUMtk4sDFzL7B0cMACRU
SzU7Yl3FuQ1oA31ERt9RbPGWS8f+HFg3A0BfuxyD8xZ0q531R3HiGZxtu1pmK3sWi4O0QEw7Ak1wPF2p
EjXxywzCJxyecvYO4pERdwFaTfgAtnN1caWEqi+Apv3RmtX25oZWifbz/W5NiSWjCZkwWmx1/1GCwBfs
OAz7FRKqe0csDro3xXkP3QEOTMWk72IQ9rAbXjhwIaJPjxgANiGhWqLrwiRUU1wcpHNljjfpmbrJ7xsA
TVach+O60rv/20UMAhMd2rIV9bbokAgBQJ9hn5+C30tf973UFkwn1ZM/YBCG22svOHDhaO/MiAFAE6o/
xXaubouYUE1ycZB2+13gFBqkrJf6Sd/FIJzq0Oe9KG2sslPEILAvCdWShOpRKS8OWm1vQBxhu5Smhpv8
vkHQF1//F+d1pS3WmiOsYjx/1TmhOjCC/XZzCs+3J+Fnf8IpdPcd0LATv8wgaDNNuuMWpE1WR0XcBSTJ
iZOwgp4Y0X71Lg560QqahmZi4gcMgHZ/uRPndaXt1teP4MSaHJqL3VwtCZNQ9VVX1qM4SPMPP3Y8zWMy
MfHLDMLhDt1xvaWdEyKuYppQfQrbuQnVs8JMKM/f+Y8aFgetshOIcY7njcNMTfwyd7bn47yufuVNAoUs
Ef4qCVVXz4t2Tlhx0L/t35jseDofZ3LilxmE8XbuiQMXVonJEXcBW5NQLdGFEROqR8S4C11iu4wBmd3u
hxgAPe+8HMd1pY0uN48YBI4loerqNdHoOhcHLbMr3EOY+OEcuNWhO25ROpGnurbJhXJiTajege1cXe0m
VMPZb1yVioPesBqDEUz8aEFAM9rfwXFd/dEptAnr0oF9TvxZhw653jcXDsrbZUxb2ccxfLvQnhQHrbT3
B8dmPsHXg13ADqJncV43oz3bGdHmVHraiUcwu3hFOCc7o1xbWPvtaLfuoib49JNtkj/Bx+SPHgBUp/P0
ledbNtd2QPPoqU0RgsA4EqqeyZlrm9U0cnqvrh7H9PnfASHvqayxi1zT7CSBiV+lILCtbX9x4MLzzo9r
77b19zq24tPOnq3sZdhuXdGNNcToGyEIjLCbeMssH/OhabXVatwnOsX9RGPiVz0ItDt0x/U2eHhGdJxo
0676u/sSqq9gO7Nfrv1NsdG3RNuFtF/xrsXHRIfZQxwn20s8OdFmTPx4A0CaX26Jw4E1CPxDdK1oXKe+
bl7l2pvsDPx8bOfuotR+74vuFh0lGihyytqwZZo/GHQpiCcIfN6KYnDgXEmTx1dFN4imiUbbqqb93jYX
bS0qrk4fJ6Fasosq6m3RXdYua7xouGiQqL9oS/vv5kQ8qZ3xAKCPHt6E83Zy4KI6RK9Y08dFop+LjrFA
ULThf1IiXNZ+H4jeEP1ZdL/oVgsKw+reUIMgQHfcLnYAQb3ebxYdWEx06bGXJ6H6KAGgS/upHhadINqi
bq20IDAAaCXXNQSAQAfWb9o7RYeLNvJ/x3ps2EZCtWwAeFJ0imirujTQhFBBYIzVdmc9CVjUGtEjtmL1
L+e4voTqPQTQEhu+KJpbst1n4ic2AGjjh++zeuX1tOjrosFhHNd3220VAbR9uWieaDcmfrqCwM52zzur
zvuynWNvH8Vxfbfdbsrw6v+O6HrRPqJeTP70BQDV2Rl0Xq1iu0Q0MvDcOpoNtcT1rYzZ8D2x029FEztV
AjLxUxcEhtjrqZlwXH0ZSFb/sU0t7b174rS+hOrVGZr8j0gA/aLYbBMmfuMEgZOcxu6O+4HoQdHRMvn7
ubfYeui4GUuoPp9/FzDXNrhov0q3ASE9AUC7497foI77pGimOOugfHlpoaS32vZrtueyGtF+r+eTxbm2
nZy9Cr9v/gJVjonfaEHgaNsiN4rjPmX5jaHFxz+c1sqPgPTAfjs1WEL1dXtObrTYrTlvv1z17QfJCQDa
Hfc3DeC42hRijj3rXfjdWuK9XOKx4Tca4M0FbQp6rWgvOypuYvJnJwh8yklvd9zlonnW1cep5a0yX0J1
SUrtp30Ab7XnvvpwMy+bAUC7416fMsd9x37mfdwVq8aO6/s3T0xZQlXLmRfbnfyNmfgEgX1tNU3DkZ5+
sky0wFVXx/X82wNTklDVT5XH7W39gUx8AoD3xZZ5CXZcXV0fsKTlJklyXM/PcZRtqZPcNv1Mnt6Ccg48
wkled9wPrWBphh1bJs5xfQnV2xI48bVT8vfsxIKJD1068ZwEOe5SO9JLfDcYX0L17YTYT0uVtUPyKG9r
LyY+dOXAw6yIpt5n0Rd5m1Im3XF9CdXr6mw/baqxwCl0Rl6PVR+iZrRPsTLaenSf0QdL9qxXZr9KNty7
TgnVYlONyd6OyEx8iOrAW4keqnEH35vtybI+aXZaz5sLP6yh/dbkL+uMajvB2wSViQ89CQLHiDpqsGIt
sheL+zWC4/oSqi/UYPI/LTpNtA0TH6rpwPoc9sIYM/vFNlAN1efd97t8M8aJ/7Lo29Zsg4kPsTixdnH5
Z5Ud9znRLHthtyEdN+aE6gprszWy1qXPkL0AoN1Zb6yS474qusA6Fjf0iuX7/b5SpYSqtim/wdplk9mH
mjnxPnYs113H1eaPV1gPuMycRfveXFjUA/t12KfYZ0QbMPGh1g6s28xTu/FmgJ5FzxeNz+qK5fl99xO9
1I3XjB6yZCzNM6GuDtw3/yxUuEcwtf3znaJJWT+L9v3uh0XoLfik1WJsxcSHpDhwb7uBt7DM2wEr7Tbc
caL+OG6gDfXNgivtk2pNwJGoHunNtuQh9oPEOXDxwstY+yzQBiM/sKz+QdY1B8ft2ob6mvDuonZrOT7P
jgunuM+YYT9IQSCgx3uMNgRInTMD9gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJD8PyK+P6C0d3u7AAAAAElFTkSu
QmCC
</value>
</data>
</root>

View File

@ -1,4 +1,5 @@
using BrightIdeasSoftware;
using AForge.Video.DirectShow;
using BrightIdeasSoftware;
using DatenDB;
using Deckungsbeitrag.Properties;
using System;
@ -8,34 +9,30 @@ using System.Drawing;
using System.Drawing.Printing;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Linq.Expressions;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using System.Web.Configuration;
using System.Web.UI;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using ZXing;
using ZXing.QrCode.Internal;
using Control = System.Windows.Forms.Control;
namespace Deckungsbeitrag
{
public class Funktionen
{
private static FilterInfoCollection videoDevices;
public static Color beladeband = Settings.Default.Beladeband; public static Color waschstr = Settings.Default.Waschstrasse; public static Color presse = Settings.Default.Presse; public static Color trockner = Settings.Default.Trockner;
public static Color entladeband = Settings.Default.Entladeband; public static Color hubband = Settings.Default.Hubband;
public FormAufleger _aufleger;
//public FormAufleger _aufleger;
public static Auftrag _auftrag;
public static Kunde _adresse;
private int currentPage = 0;
public int totalPages = 0;
int i = 0;
int j = 0;
public bool printOK;
public static bool _nocont;
public Funktionen()
{
}
@ -379,7 +376,7 @@ namespace Deckungsbeitrag
}
}
}
if (lbl.Tag == null)
{
if (lbl.Name.Contains("Kunde")) lbl.Text = "LEER";
@ -410,7 +407,7 @@ namespace Deckungsbeitrag
lbl.Text = $"WP {((Fach)lbl.Tag).WProgrammID}";
if (fach == 3) sps.Waschprogramm = ((Fach)lbl.Tag).WProgrammID; //WASCHPROGRAMM FÜR ÜBERGABE IN SPS DATEN ÜBERGEBEN
}
if(((Fach)lbl.Tag).Extra != null)
if (((Fach)lbl.Tag).Extra != null)
{
Aufgabe extra = Aufgabe.GetAufgabe(string.Empty, ((Fach)lbl.Tag).Extra);
@ -441,8 +438,7 @@ namespace Deckungsbeitrag
}
return lbl;
}
public static object SortimentLesen(string s)
public static List<Sortiment> SortimentLesen(string s)
{
StreamReader streamReader = null;
bool ok = false;
@ -453,7 +449,7 @@ namespace Deckungsbeitrag
catch (Exception)
{
MessageBox.Show("Keine Sortiment-Datei gefunden, bitte kontrolliere Pfad und Dateiname!");
return ok;
return null;
}
int nr = 0;
string row = string.Empty;
@ -471,9 +467,49 @@ namespace Deckungsbeitrag
streamReader.Close();
ok = true;
if (s == "Liste") return sortimentListe;
else return ok;
return sortimentListe;
}
public static List<Artikel> Get_ArtikelKurzlisteFromDatei()
{
StreamReader streamReader = null;
string row = string.Empty;
Artikel[] artikel = new Artikel[0];
List<Artikel> artikelListe = new List<Artikel>();
int idx = 0;
// Datei auswählen.
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "CommaSeparatedFiles|*.txt;*.csv";
dialog.InitialDirectory = "N:\\BÜRO\\SOCOM";
if (dialog.ShowDialog() == DialogResult.OK)
{
if (MessageBox.Show($"Möchtest du die Datei {dialog.FileName} wirklich lesen? Hier können nur Artikel upgedated werden.", "Frage", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
// Datei lesen.
streamReader = new StreamReader(dialog.FileName, Encoding.GetEncoding("iso-8859-1"));
while (!streamReader.EndOfStream)
{
Array.Resize<Artikel>(ref artikel, ++idx);
row = streamReader.ReadLine();
artikel[idx - 1] = new Artikel(row, idx - 1);
artikelListe.Add(new Artikel(row, idx - 1));
}
streamReader.Close();
return artikelListe;
}
catch (Exception)
{
MessageBox.Show("Es ist etwas schief gelaufen. Versuche es bitte nochmals.");
return null;
}
}
else return null;
}
else return null;
}
public static Auftrag Kunde_unbekannt(int aID)
{
Auftrag auf = null;
@ -481,6 +517,91 @@ namespace Deckungsbeitrag
return auf;
}
/// <summary>
/// Die Kundenauswahl erfolgt durch Handeingabe oder Scan mit integrierter Kamera.
/// Wenn Kamera vorhanden und trotzdem Handeingabe notwendig, dann Button klicken.
/// </summary>
/// <returns></returns>
public static Kunde KundenAuswahl()
{
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
Kunde kunde;
if (videoDevices.Count == 0)
{
kunde = Open_List();
}
else
{
//TODO: Funktionalität klären. MessageBox vor Screenauswahl? oder mit Button im Screen Kamera?
//if (meldung.HandEingabe()) this.kunde = Funktionen.Open_List();
//else this.kunde = Funktionen.Open_Kamera(videoDevices);
kunde = Open_Kamera(videoDevices);
}
return kunde;
}
/// <summary>
/// Öffnen der Kundenauswahlliste zur händischen Eingabe bzw. Scan des Kunden.
/// </summary>
/// <returns>Kunde</returns>
public static Kunde Open_List()
{
Kunde knd = new Kunde();
FormListe liste = new FormListe(null, 0);
if (liste.ShowDialog() == DialogResult.OK)
{
knd = liste.kunde;
}
else knd = null;
return knd;
}
/// <summary>
/// Öffnen des Kamera Livebildes zur Eingabe des Kunden über die integrierte Kamera.
/// </summary>
/// <param name="videoDevices"> Array der verfügbaren Kameras</param>
/// <returns>Kunde</returns>
public static Kunde Open_Kamera(AForge.Video.DirectShow.FilterInfoCollection videoDevices)
{
Kunde knd = new Kunde();
FormKamera kamera = new FormKamera(videoDevices);
DialogResult result = kamera.ShowDialog();
switch (result)
{
case DialogResult.None:
knd = null;
break;
case DialogResult.OK:
knd = kamera.kunde;
break;
case DialogResult.Cancel:
knd = null;
break;
case DialogResult.Abort:
knd = null;
break;
case DialogResult.Retry:
knd = null;
break;
case DialogResult.Ignore:
knd = null;
break;
case DialogResult.Yes:
knd = kamera.kunde;
break;
case DialogResult.No:
knd = Open_List();
break;
default:
break;
}
return knd;
}
/// <summary>
/// QR-CODE FÜR ETIKETTEN
/// </summary>
@ -513,7 +634,7 @@ namespace Deckungsbeitrag
int zeile = (int)textSize2.Height + 20; //PIXEL
int posTag = 145;
if (adresse == null) adresse = Kunde.GetKunde(string.Empty, auftrag.KundeID, string.Empty);
Image qrcode = Get_QR_Code(adresse, auftrag);
Image qrcode = Get_QR_Code(adresse, null);
string sortNr = string.Empty;
//Innsbrucker Soziale Dienste Sortiment immer gleich.
if (adresse.KundeNummer == "010069" | adresse.KundeNummer == "010071") sortNr = "010068";
@ -523,12 +644,9 @@ namespace Deckungsbeitrag
//result = sortimentListe.Find(Sortiment => Sortiment.KundeNummer == sortNr);
List<Sortiment> resultList = ((List<Sortiment>)SortimentLesen("Liste")).FindAll(Sortiment => Sortiment.KundeNummer == sortNr);
int qr = (int)textSize3.Height * 2 + (int)textSize2.Height * 3;
g.FillRectangle(Brushes.White, 0, 0, bitmap.Width, bitmap.Height);
//QR-Code
g.DrawImage(qrcode, bitmap.Width - 50 - qr, 50, qr, qr);
g.DrawImage(qrcode, bitmap.Width - 150, 50, 120, 120);
//Adressblock
g.DrawString($"{adresse.KundeNummer} {adresse.Suchtext}", new Font("Arial", textsize2, FontStyle.Regular), Brushes.Black, adressblock);
g.DrawString($"{adresse.KundeName}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, adressblock.X, adressblock.Y + (int)textSize3.Height);
@ -547,7 +665,7 @@ namespace Deckungsbeitrag
//Tabelle Kopf
g.DrawLine(new Pen(Brushes.Black), new Point(tabelle.X, tabelle.Y - zeile), new Point(bitmap.Width - 50, tabelle.Y - zeile));
g.DrawString("Bemerkung", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X, tabelle.Y - (int)textSize2.Height - 5);
g.DrawString("Bemerkung", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + 5, tabelle.Y - (int)textSize2.Height - 5);
g.DrawString("Stück", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + textSizePos.Width + 25, tabelle.Y - (int)textSize2.Height - 5);
g.DrawString("Bezeichnung", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + textSizePos.Width + 100, tabelle.Y - (int)textSize2.Height - 5);
g.DrawString("Art.Nr.", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + textSizePos.Width + 500, tabelle.Y - (int)textSize2.Height - 5);
@ -574,50 +692,59 @@ namespace Deckungsbeitrag
}
//Bemerkung
g.DrawString($"Bemerkung:", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, ezl, bitmap.Height - 130);
g.DrawString($"Bemerkung:", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, ezl + 5, bitmap.Height - 120);
//g.DrawString($"*{Aufgabe.GetAufgabe(string.Empty, adresse.Aufgabe).Bezeichnung}", new Font("Arial", textsize, FontStyle.Bold), Brushes.Black, ezl, bitmap.Height - 130 + handzeile);
g.DrawRectangle(new Pen(Brushes.Black), ezl, bitmap.Height - 130 - textsize, bitmap.Width - 100, 100);
g.DrawRectangle(new Pen(Brushes.Black), ezl, bitmap.Height - 120 - textsize, bitmap.Width - 100, 100);
Image img = bitmap;
return img;
}
public static void SWS_Drucken(Auftrag auftrag, Kunde adresse)
public static void SWS_Drucken(Auftrag auftrag, Kunde adresse, object sender)
{
if (auftrag != null) _auftrag = auftrag;
if (adresse != null) _adresse = adresse;
PrintDialog dialog = new PrintDialog();
PrintPreviewDialog preview = new PrintPreviewDialog();
preview.StartPosition = FormStartPosition.CenterScreen;
preview.WindowState = FormWindowState.Maximized;
foreach (string printer in PrinterSettings.InstalledPrinters) if (printer.Contains(ConfigurationManager.AppSettings["PrinterName"])) dialog.PrinterSettings.PrinterName = printer;
//dialog.PrinterSettings.Copies = 10;
if (dialog.ShowDialog() == DialogResult.OK)
{
PrintDocument printDocument = new PrintDocument();
printDocument.OriginAtMargins = true;
printDocument.PrintPage += new PrintPageEventHandler(PrintDocument_PrintPage);
printDocument.PrinterSettings = dialog.PrinterSettings;
preview.Document = printDocument;
preview.Document.DocumentName = "SWS-Schein";
preview.ShowDialog();
printDocument.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 0);
if (!sender.ToString().Contains("KundeDaten"))
{
PrintPreviewDialog preview = new PrintPreviewDialog();
preview.StartPosition = FormStartPosition.CenterScreen;
preview.WindowState = FormWindowState.Maximized;
preview.Document = printDocument;
preview.Document.DocumentName = "SWS-Schein";
preview.ShowDialog();
}
else { dialog.Document = printDocument; dialog.Document.DocumentName = "SWS-Schein"; printDocument.Print(); }
}
}
public static Image Etikett_Entwurf(Auftrag auftrag)
public static Image Etikett_Entwurf(object sender, Auftrag auftrag, bool nocont)
{
Kunde kunde = Kunde.GetKunde(string.Empty, auftrag.KundeID, string.Empty);
if (kunde.Suchtext.StartsWith("?") | kunde.KundeNummer == "2320000") kunde.Suchtext = auftrag.ZusatzInfo;
Image qr = Get_QR_Code(kunde, auftrag);
Image qrweb = Image.FromFile(ConfigurationManager.AppSettings["QrPfad"]);
qrweb.RotateFlip(RotateFlipType.Rotate270FlipNone);
Bitmap bitmap = new Bitmap(1200, 350);
Bitmap bitmap = new Bitmap(1200, 340);
//bitmap.SetResolution(100, 100);
Graphics g = Graphics.FromImage(bitmap);
Font font1 = new Font("Arial", 50, FontStyle.Bold);
@ -629,25 +756,27 @@ namespace Deckungsbeitrag
SizeF size_container = g.MeasureString($"Container/Pakete:", font3);
SizeF size_Liefertag = new SizeF(g.MeasureString("Liefertag:", font3));
float width_date_font1 = g.MeasureString("25.05.2023", font1).Width;
Point startpoint = new Point(380, 50);
Point startpoint = new Point(380, 20);
g.FillRectangle(Brushes.White, 0, 0, bitmap.Width, bitmap.Height);
//QR-Code
g.DrawImage(qrweb, 15, 25, 350, 300);
g.DrawImage(qrweb, 10, 15, 350, 280);
//Etikett-Text
g.DrawString($"{kunde.Suchtext}", font1, Brushes.Black, startpoint);
g.DrawString($"{kunde.PLZ} {kunde.Ort}", font2, Brushes.Black, startpoint.X, startpoint.Y + height_font1);
g.DrawString("Liefertag:", font3, Brushes.Black, startpoint.X, startpoint.Y + height_font1 + 5 + height_font2 + 10);
g.DrawString("Container/Pakete:", font3, Brushes.Black, startpoint.X + size_Liefertag.Width + 50, startpoint.Y + height_font1 + 5 + height_font2 + 10);
g.DrawString($"{auftrag.Liefertag.ToShortDateString()}", font1, Brushes.Black, startpoint.X, startpoint.Y + height_font1 + 5 + height_font2 + 2 + size_Liefertag.Height + 2);
g.DrawString($"{auftrag.ContainerClean}", font4, Brushes.Black, startpoint.X + size_Liefertag.Width + size_container.Width + 10, height_font1 + height_font2);
g.DrawString($"{auftrag.Liefertag.ToString("ddd dd.MM.")}", font1, Brushes.Black, startpoint.X, startpoint.Y + height_font1 + 5 + height_font2 + 2 + size_Liefertag.Height + 2);
if (!nocont) g.DrawString($"{auftrag.ContainerClean}", font4, Brushes.Black, startpoint.X + size_Liefertag.Width + size_container.Width + 10, startpoint.Y + height_font1);
//if (sender == null) bitmap.RotateFlip(RotateFlipType.Rotate90FlipNone);
Image img = bitmap;
return img;
}
public static void Etikett_Drucken(Auftrag auftrag)
public static DialogResult Etikett_Drucken(Auftrag auftrag, bool nocont)
{
_nocont = nocont;
_auftrag = auftrag;
int x = auftrag.ContainerClean;
PrintDialog dialog = new PrintDialog();
@ -664,14 +793,40 @@ namespace Deckungsbeitrag
dialog.Document = printDocument;
dialog.Document.DocumentName = "Etikett";
printDocument.Print();
return DialogResult.OK;
}
return DialogResult.Cancel;
}
private static void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
if (sender.ToString().Contains("SWS-Schein")) { e.Graphics.DrawImage(Funktionen.SWS_Entwurf(_auftrag, _adresse), e.PageBounds); }
if (sender.ToString().Contains("Etikett")) e.Graphics.DrawImage(Funktionen.Etikett_Entwurf(_auftrag), e.PageBounds);
if (sender.ToString().Contains("SWS-Schein"))
{
Image img = Funktionen.SWS_Entwurf(_auftrag, _adresse);
// Verfügbare Druckfläche innerhalb der Seitenränder
Rectangle printArea = e.MarginBounds;
// Skalierungsfaktor berechnen, um Bild proportional einzupassen
float scale = Math.Min((float)printArea.Width / img.Width, (float)printArea.Height / img.Height);
// Berechnete Bildgröße
int scaledWidth = (int)(img.Width * scale);
int scaledHeight = (int)(img.Height * scale);
// Zentrierte Position im Druckbereich
int posX = printArea.Left + (printArea.Width - scaledWidth) / 2;
int posY = printArea.Top + (printArea.Height - scaledHeight) / 2;
e.Graphics.DrawImage(img, posX, posY, scaledWidth, scaledHeight);
//e.Graphics.DrawImage(img, 0, 0, scaledWidth, scaledHeight);
// Event abschließen (keine weiteren Seiten)
e.HasMorePages = false;
}
if (sender.ToString().Contains("Etikett")) e.Graphics.DrawImage(Funktionen.Etikett_Entwurf(null, _auftrag, _nocont), e.PageBounds);
}
/// <summary>
@ -712,7 +867,7 @@ namespace Deckungsbeitrag
}//COLUMNS BREITE CONTENT ODER HEADER SIZE
//BREITE DER LISTVIEW UNVERÄNDERT BEI NAMEN MIT...
if (!lv.Name.Contains("Lieferungen") & !lv.Name.Contains("STH") & !lv.Name.Contains("Artikel")) lv.Width = lvwWidth;
if (!lv.Name.Contains("Lieferungen") & !lv.Name.Contains("STH") & !lv.Name.Contains("Artikel") & !lv.Name.Contains("AufgabeVW") & !lv.Name.Contains("BenutzerVW") & !lv.Name.Contains("Auftrag")) lv.Width = lvwWidth;
return lv;
}
@ -722,6 +877,148 @@ namespace Deckungsbeitrag
return lv;
}
/// <summary>
/// ListView_Load für AufgabenVW und BenutzerVW
/// </summary>
/// <param name="lv"></param>
/// <param name="colname"></param>
/// <param name="objectlist"></param>
/// <returns></returns>
public static ListView ListView_Load(ListView lv, string colname, List<object> objectlist)
{
ColumnHeader ch;
foreach (string s in colname.Split(','))
{
ch = new ColumnHeader();
ch.Name = s.Trim();
if (ch.Name == "vorname") ch.DisplayIndex = 0;
if (ch.Name == "nachname") ch.DisplayIndex = 2;
if (ch.Name == "benutzer_name")
{
ch.DisplayIndex = 3;
ch.Name = "benutzername";
}
if (ch.Name == "rolle") ch.DisplayIndex = 4;
if (ch.Name == "schein") ch.DisplayIndex = 5;
if (ch.Name == "gueltig_bis")
{
ch.DisplayIndex = 6;
ch.Name = "gültig bis";
}
if (ch.Name == "ist_aktiv")
{
ch.DisplayIndex = 7;
ch.Name = "aktiv";
}
if (ch.Name == "bezeichnung") ch.DisplayIndex = 0;
if (ch.Name == "Beschreibung") ch.DisplayIndex = 1;
if (ch.Name == "kategorie") ch.DisplayIndex = 3;
if (ch.Name == "farbe")
{
ch.DisplayIndex = 4;
}
ch.Text = char.ToUpper(ch.Name[0]) + ch.Name.Substring(1);
if (ch.Name != "benutzer_id" && ch.Name != "passwort" && ch.Name != "aufgabe_id" && ch.Name != "rolle") lv.Columns.Add(ch);
}
lv.Items.Clear();
var element = objectlist.FirstOrDefault();
switch (element.GetType().Name)
{
case ("Benutzer"):
foreach (Benutzer ben in objectlist)
{
ListViewItem item;
item = new ListViewItem();
item.Tag = ben;
item.Text = ben.Vorname;
item.SubItems.Add(ben.Nachname);
item.SubItems.Add(ben.BenutzerName);
item.SubItems.Add(ben.Rolle.ToString());
item.SubItems.Add(ben.Schein.ToString());
item.SubItems.Add(ben.GueltigBis.HasValue ? ben.GueltigBis.Value.ToShortDateString() : "");
item.SubItems.Add(ben.Aktiv == true ? "JA" : "NEIN");
lv.Items.Add(item);
}
break;
case ("Aufgabe"):
foreach (Aufgabe auf in objectlist)
{
ListViewItem item = new ListViewItem();
item.UseItemStyleForSubItems = false;
item.Tag = auf;
item.Text = auf.Bezeichnung;
item.SubItems.Add(auf.Beschreibung);
item.SubItems.Add(auf.Kategorie.ToString());
item.SubItems.Add("");
ColorConverter cc = new ColorConverter();
item.SubItems[3].BackColor = (Color)cc.ConvertFromString(auf.Farbe.ToArgb().ToString()); //COLUMN FARBE SUBITEM BACKCOLOR == FARBE.
lv.Items.Add(item);
}
break;
default:
break;
}
//RESIZE COLUMNS
Columns_Resize(lv);
//lv.Width = lv.Width + 22;
lv.AllowColumnReorder = true;
//lv.Height = 150;
foreach (ListViewItem itm in lv.Items)
{
if (itm.Index % 2 == 0) itm.BackColor = Color.LightSteelBlue;
foreach (ListViewItem.ListViewSubItem subItem in itm.SubItems) if (!string.IsNullOrWhiteSpace(subItem.Text)) subItem.BackColor = itm.BackColor;
}//BACKCOLOR FÜR JEDES ZWEITE ANDERE FARBE
return lv;
}
//TODO: Eventuell auch andere ListViews einbinden?
/// <summary>
/// Rahmen um die GroupBox erstellen.
/// base.OnPaint(e) muss im GroupBox_Paint Event vor dem Aufruf der Funktionen stehen.
/// </summary>
/// <param name="gb"></param>
/// <param name="e"></param>
/// <returns>GroupBox gb</returns>
public static GroupBox GetGroupBoxBoarder(GroupBox gb, PaintEventArgs e)
{
string text = gb.Text;
Font font = gb.Font;
Size textSize = TextRenderer.MeasureText(text, font);
int textWidth = textSize.Width;
int textHeight = textSize.Height;
Pen pen = new Pen(Color.FromArgb(1, 53, 101), 2);
int offset = 6; // Abstand von links zum Text
// Rechteck für äußeren Rahmen
Rectangle rect = new Rectangle(2, textHeight / 2, gb.Width - 3, gb.Height - textHeight / 2 - 1);
// Obere linke Linie (links bis zum linken Rand des Textes)
e.Graphics.DrawLine(pen, rect.Left, rect.Top, offset, rect.Top);
// Obere rechte Linie (rechts vom Text bis zum rechten Rand)
e.Graphics.DrawLine(pen, offset + textWidth, rect.Top, rect.Right, rect.Top);
// Linke vertikale Linie
e.Graphics.DrawLine(pen, rect.Left, rect.Top, rect.Left, rect.Bottom);
// Rechte vertikale Linie
e.Graphics.DrawLine(pen, rect.Right, rect.Top, rect.Right, rect.Bottom);
// Untere Linie
e.Graphics.DrawLine(pen, rect.Left, rect.Bottom, rect.Right, rect.Bottom);
return gb;
}
}
}

23
Help.cs Normal file
View File

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public class Help
{
public Help()
{
}
public static void GetHelp(object sender)
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,8 @@
<linker>
<assembly fullname="System.Diagnostics.DiagnosticSource">
<type fullname="System.Diagnostics.Metrics.MetricsEventSource">
<!-- Used by System.Private.CoreLib via reflection to init the EventSource -->
<method name="GetInstance" />
</type>
</assembly>
</linker>

207
Kosten.cs Normal file
View File

@ -0,0 +1,207 @@
using BrightIdeasSoftware;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public enum KostenKat
{
FixLohn = 0,
Variabel = 1,
FixMiete = 2,
Rest = 3
}
public class Kosten
{
private const string COLUMNS = "kosten_id, konto_nr, bezeichnung, datum, kategorie, betrag";
private const string SUMCOLUMNS = "min(kosten_id), konto_nr, min(bezeichnung) as bezeichnung, min(datum) as datum, min(kategorie) as kategorie, sum(betrag) as betrag";
private const string TABLE = "kundenverwaltung.kosten";
public Kosten()
{
}
public static List<Kosten> GetList(int? aktjahr, int? monat, int? aktquartal, bool aktiv, int vpjahr, int[] quartale)
{
DatenbankConnection.GetConnection().Open();
List<Kosten> resultList = new List<Kosten>();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (monat == null || monat == 0)
{
if (aktquartal == null || aktquartal == 0)
{
if (quartale == null || quartale.Length == 0)
{
command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where date_part('year', datum) = {aktjahr} group by konto_nr order by konto_nr, datum";
}
else
{
command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where date_part('year', datum) = {aktjahr} and date_part('quarter', datum) between {quartale.Min()} and {quartale.Max()} group by konto_nr order by konto_nr, datum";
}
}
else
{
if (aktquartal == 4) command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where date_part('year', datum) = {aktjahr} group by konto_nr order by konto_nr, datum";
else command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where date_part('quarter', datum) = {aktquartal} and date_part('year', datum) = {aktjahr} group by konto_nr order by konto_nr, datum";
}
}
else command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where date_part('month', datum) = {monat} and date_part('year', datum) = {aktjahr} group by konto_nr, datum order by konto_nr, datum";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Kosten(reader));
reader.Close();
}
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static List<Kosten> GetUpdateList(string kontonr)
{
DatenbankConnection.GetConnection().Open();
List<Kosten> resultList = new List<Kosten>();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if(kontonr != null) command.CommandText = $"select {COLUMNS} from {TABLE} where konto_nr = {kontonr}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Kosten(reader));
reader.Close();
}
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static double GetSummeKategorie()
{
DatenbankConnection.GetConnection().Open();
double kosten = 0;
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) kosten = reader.IsDBNull(0) ? 0 : reader.GetDouble(0);
reader.Close();
}
DatenbankConnection.GetConnection().Close();
return kosten;
}
public static Kosten GetKosten(int? kostenid, string bez)
{
DatenbankConnection.GetConnection().Open();
Kosten kosten = new Kosten();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (!string.IsNullOrEmpty(bez)) command.CommandText = $"select {COLUMNS} from {TABLE} where LOWER(bezeichnung) = '{bez}'";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) kosten = new Kosten(reader);
reader.Close();
}
DatenbankConnection.GetConnection().Close();
return kosten;
}
public Kosten(NpgsqlDataReader reader)
{
this.KostenID = reader.GetInt32(0);
this.KontoNr = reader.GetInt32(1);
this.Bezeichnung = reader.IsDBNull(2) ? string.Empty : reader.GetString(2);
this.Datum = reader.GetDateTime(3);
this.Kategorie = (KostenKat)reader.GetInt16(4);
this.Betrag = reader.IsDBNull(5) ? null : (double?)reader.GetDouble(5);
}
public int GetKostenID(int kontonr, DateTime datum)
{
DatenbankConnection.GetConnection().Open();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select kosten_id from {TABLE} where konto_nr = '{kontonr}' and datum = '{datum}'";
int result = 0;
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = reader.GetInt16(0);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
}
public static int GetKontoNr(string bez)
{
DatenbankConnection.GetConnection().Open();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select konto_nr from {TABLE} where bezeichnung = {bez}";
int result = 0;
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = reader.GetInt16(0);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (this.KostenID.HasValue & this.KostenID != 0)
{
command.CommandText = $"update {TABLE} set konto_nr = :p1, bezeichnung = :p2, datum = :p3, kategorie = :p4, betrag = :p5 WHERE kosten_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.kosten_seq')";
this.KostenID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5)";
}
command.Parameters.AddWithValue("p0", this.KostenID);
command.Parameters.AddWithValue("p1", this.KontoNr);
command.Parameters.AddWithValue("p2", string.IsNullOrEmpty(this.Bezeichnung) ? (object)DBNull.Value : this.Bezeichnung);
command.Parameters.AddWithValue("p3", this.Datum);
command.Parameters.AddWithValue("p4", (int)this.Kategorie);
command.Parameters.AddWithValue("p5", this.Betrag.HasValue ? (object)this.Betrag.Value : (object)DBNull.Value);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
}
[OLVIgnore]
public int? KostenID { get; set; } = null;
[OLVColumn(DisplayIndex = 0, TextAlign = System.Windows.Forms.HorizontalAlignment.Right, IsEditable = false)]
public int KontoNr { get; set; }
[OLVColumn(DisplayIndex = 1, IsEditable = false)]
public string Bezeichnung { get; set; }
[OLVColumn(DisplayIndex = 2, TextAlign = System.Windows.Forms.HorizontalAlignment.Center, AspectToStringFormat = "{0:d}", IsEditable = false)]
public DateTime Datum { get; set; }
[OLVColumn(DisplayIndex = 3, TextAlign = System.Windows.Forms.HorizontalAlignment.Center, IsEditable = true)]
public KostenKat Kategorie { get; set; }
[OLVColumn(DisplayIndex = 4, TextAlign = System.Windows.Forms.HorizontalAlignment.Right, AspectToStringFormat = "{0:c}", IsEditable = true)]
public double? Betrag { get; set; } = null;
}
}

354
Kunde.cs Normal file
View File

@ -0,0 +1,354 @@
using BrightIdeasSoftware;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.Remoting.Metadata.W3cXsd2001;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DatenDB
{
public class Kunde
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
public const string COLUMNS = "kunde_id, tour_id, kunde_nr, name1, name2, straße, plz, bezeichnung, land, aktiv, bettenanzahl, kunde_gruppe, service, region, waescheart, suchtext, aufgabe";
private const string RED_COLUMNS = "kunde_id, tour_id, kunde_nr, name1, name2, straße, plz, bezeichnung, land, aktiv, bettenanzahl, kunde_gruppe, service, region, waescheart, jahr, umsatz";
public const string TABLE = "kundenverwaltung.kunde";
public const string VIEW = "kundenverwaltung.jahresumsaetze"; //RICHTIGE VIEW AUSSUCHEN FÜR INAKTIVE MIT LETZTEN UMSATZ...
public Umsatz umsatz;
public Kunde()
{
} // LEER
public static List<Kunde> GetTmpList(string text)
{
DatenbankConnection.GetConnection().Open();
List<Kunde> resultList = new List<Kunde>();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (string.IsNullOrEmpty(text)) command.CommandText = $"select {COLUMNS} from {TABLE} where aktiv = {true}";
else
{
if (int.TryParse(text, out _)) command.CommandText = $"select {COLUMNS} from {TABLE} where kunde_nr::varchar ~* '{text}'";
else command.CommandText = $"select {COLUMNS} from {TABLE} where suchtext ~* '{text}'";
}
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Kunde(reader));
reader.Close();
}
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static int GetKundeID(string kndnr, string text)
{
DatenbankConnection.GetConnection().Open();
int result = 0;
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (!string.IsNullOrEmpty(kndnr)) command.CommandText = $"select kunde_id from {TABLE} where kunde_nr = '{kndnr}'";
else command.CommandText = $"select kunde_id from {TABLE} where suchtext = '{text}'";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = reader.GetInt32(0);
reader.Close();
}
DatenbankConnection.GetConnection().Close();
return result;
}
public static List<string> GetColumns()
{
DatenbankConnection.GetConnection().Open();
List<string> resultList = new List<string>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"SELECT distinct kunde.suchtext FROM kundenverwaltung.kunde JOIN kundenverwaltung.auftrag ON auftrag.kunde_id = kunde.kunde_id JOIN kundenverwaltung.auftrag_artikel ON auftrag_artikel.auftrag_id = auftrag.auftrag_id where kundenverwaltung.auftrag_artikel.erledigt is false";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(reader.GetString(0));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static List<Kunde> GetList(bool? isaktiv, string text)
{
DatenbankConnection.GetConnection().Open();
List<Kunde> resultList = new List<Kunde>();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (isaktiv != null) command.CommandText = $"select {COLUMNS} from {TABLE} where aktiv = {isaktiv}";
if (!string.IsNullOrWhiteSpace(text))command.CommandText = $"select {COLUMNS} from {TABLE} where suchtext ~* '{text}'";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Kunde(reader, false));
reader.Close();
}
DatenbankConnection.GetConnection().Close();
foreach(Kunde kunde in resultList)
{
List<OLVKundenumsatz> list = new List<OLVKundenumsatz>();
list = OLVKundenumsatz.GetJahresumsatz(kunde.KundeID);
if(list.Count > 0)
{
kunde.Zeitraum = double.Parse(OLVKundenumsatz.GetJahresumsatz(kunde.KundeID).Last().Zeitraum);
kunde.Umsatz1 = OLVKundenumsatz.GetJahresumsatz(kunde.KundeID).Last().Umsatz;
}
else
{
kunde.Zeitraum = 0;
kunde.Umsatz1 = 0;
}
}
return resultList;
} //INAKTIV KUNDENLISTE LADEN...
public static int GetBettenAnzahl(string bett)
{
DatenbankConnection.GetConnection().Open();
int betten = 0;
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (bett == "Miete") command.CommandText = $"select sum(bettenanzahl) from {TABLE} where aktiv = {true} and waescheart = '{bett}'";
else command.CommandText = $"select sum(bettenanzahl) from {TABLE} where aktiv = {true}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) betten = reader.IsDBNull(0) ? 0 : reader.GetInt16(0);
reader.Close();
}
DatenbankConnection.GetConnection().Close();
return betten;
}
public static Kunde GetKunde(string nr, int? id, string name)
{
DatenbankConnection.GetConnection().Open();
Kunde kunde = null;
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (int.TryParse(nr, out int _))
{
command.CommandText = $"select {COLUMNS} from {TABLE} where kunde_nr = '{nr}'";
}
else command.CommandText = $"select {COLUMNS} from {TABLE} where suchtext = '{nr}'";
if (id != null) command.CommandText = $"select {COLUMNS} from {TABLE} where kunde_id = {id}";
if (!string.IsNullOrEmpty(name))
{
command.CommandText = $"select {COLUMNS} from {TABLE} where LOWER(name1) = '{name}'";
}
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) kunde = new Kunde(reader);
reader.Close();
}
DatenbankConnection.GetConnection().Close();
return kunde;
}
public Kunde(NpgsqlDataReader reader, bool mitUmsatz)
{
if (!mitUmsatz)
{
this.KundeID = reader.GetInt32(0);
this.TourID = reader.IsDBNull(1) ? null : (int?)reader.GetInt32(1);
this.KundeNummer = reader.GetString(2);
this.KundeName = reader.IsDBNull(3) ? string.Empty : reader.GetString(3);
this.KundeName2 = reader.IsDBNull(4) ? string.Empty : reader.GetString(4);
this.Strasse = reader.IsDBNull(5) ? string.Empty : reader.GetString(5);
this.PLZ = reader.IsDBNull(6) ? null : (int?)reader.GetInt32(6);
this.Ort = reader.IsDBNull(7) ? string.Empty : reader.GetString(7);
this.Land = reader.IsDBNull(8) ? string.Empty : reader.GetString(8);
this.Aktiv = reader.GetBoolean(9);
this.Bettenanzahl = reader.IsDBNull(10) ? null : (int?)reader.GetInt32(10);
this.KundeGruppe = reader.IsDBNull(11) ? string.Empty : reader.GetString(11);
this.Service = reader.IsDBNull(12) ? string.Empty : reader.GetString(12);
this.Region = reader.IsDBNull(13) ? string.Empty : reader.GetString(13);
this.Waescheart = reader.IsDBNull(14) ? string.Empty : reader.GetString(14);
this.Suchtext = reader.IsDBNull(15) ? string.Empty : reader.GetString(15);
this.Aufgabe = reader.IsDBNull(16) ? null : (int?)reader.GetInt32(16);
}
}
public Kunde(NpgsqlDataReader reader)
{
this.KundeID = reader.GetInt32(0);
this.TourID = reader.IsDBNull(1) ? null : (int?)reader.GetInt32(1);
this.KundeNummer = reader.GetString(2);
this.KundeName = reader.IsDBNull(3) ? string.Empty : reader.GetString(3);
this.KundeName2 = reader.IsDBNull(4) ? string.Empty : reader.GetString(4);
this.Strasse = reader.IsDBNull(5) ? string.Empty : reader.GetString(5);
this.PLZ = reader.IsDBNull(6) ? null : (int?)reader.GetInt32(6);
this.Ort = reader.IsDBNull(7) ? string.Empty : reader.GetString(7);
this.Land = reader.IsDBNull(8) ? string.Empty : reader.GetString(8);
this.Aktiv = reader.GetBoolean(9);
this.Bettenanzahl = reader.IsDBNull(10) ? null : (int?)reader.GetInt32(10);
this.KundeGruppe = reader.IsDBNull(11) ? string.Empty : reader.GetString(11);
this.Service = reader.IsDBNull(12) ? string.Empty : reader.GetString(12);
this.Region = reader.IsDBNull(13) ? string.Empty : reader.GetString(13);
this.Waescheart = reader.IsDBNull(14) ? string.Empty : reader.GetString(14);
this.Suchtext = reader.IsDBNull(15) ? string.Empty : reader.GetString(15);
this.Aufgabe = reader.IsDBNull(16) ? null : (int?)reader.GetInt32(16);
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (this.KundeID.HasValue & this.KundeID != 0)
{
command.CommandText = $"update {TABLE} set tour_id = :p1, kunde_nr = :p2, name1 = :p3, name2 = :p4, straße = :p5, plz = :p6, bezeichnung = :p7, land = :p8, aktiv = :p9, bettenanzahl = :p10, kunde_gruppe = :p11, service = :p12, region = :p13, waescheart = :p14, suchtext = :p15, aufgabe = :p16 WHERE kunde_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.kunde_seq')";
this.KundeID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9, :p10, :p11, :p12, :p13, :p14, :p15, :p16)";
}
command.Parameters.AddWithValue("p0", this.KundeID);
command.Parameters.AddWithValue("p1", this.TourID ?? (object)DBNull.Value);
command.Parameters.AddWithValue("p2", this.KundeNummer);
command.Parameters.AddWithValue("p3", string.IsNullOrEmpty(this.KundeName) ? (object)DBNull.Value : this.KundeName);
command.Parameters.AddWithValue("p4", string.IsNullOrEmpty(this.KundeName2) ? (object)DBNull.Value : this.KundeName2);
command.Parameters.AddWithValue("p5", string.IsNullOrEmpty(this.Strasse) ? (object)DBNull.Value : this.Strasse);
command.Parameters.AddWithValue("p6", this.PLZ ?? (object)DBNull.Value);
command.Parameters.AddWithValue("p7", string.IsNullOrEmpty(this.Ort) ? (object)DBNull.Value : this.Ort);
command.Parameters.AddWithValue("p8", string.IsNullOrEmpty(this.Land) ? (object)DBNull.Value : this.Land);
command.Parameters.AddWithValue("p9", this.Aktiv);
command.Parameters.AddWithValue("p10", this.Bettenanzahl ?? (object)DBNull.Value);
command.Parameters.AddWithValue("p11", string.IsNullOrEmpty(this.KundeGruppe) ? (object)DBNull.Value : this.KundeGruppe);
command.Parameters.AddWithValue("p12", string.IsNullOrEmpty(this.Service) ? (object)DBNull.Value : this.Service);
command.Parameters.AddWithValue("p13", string.IsNullOrEmpty(this.Region) ? (object)DBNull.Value : this.Region);
command.Parameters.AddWithValue("p14", string.IsNullOrEmpty(this.Waescheart) ? (object)DBNull.Value : this.Waescheart);
command.Parameters.AddWithValue("p15", string.IsNullOrEmpty(this.Suchtext) ? (object)DBNull.Value : this.Suchtext);
command.Parameters.AddWithValue("p16", this.Aufgabe ?? (object)DBNull.Value);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
}
public int CheckKndNr(string v)
{
DatenbankConnection.GetConnection().Open();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select kunde_id from {TABLE} where kunde_nr = '{v}'";
int result = 0;
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = reader.GetInt16(0);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
}
public static int GetAnzahlKnd(bool? aktiv)
{
DatenbankConnection.GetConnection().Open();
using (NpgsqlCommand command = new NpgsqlCommand())
{
command.Connection = DatenbankConnection.GetConnection();
if (aktiv != null) command.CommandText = $"select count (*) from {TABLE} where aktiv = '{aktiv}'";
else command.CommandText = $"select count (*) from {TABLE}";
int result = (int)(long)command.ExecuteScalar();
DatenbankConnection.GetConnection().Close();
return result;
}
}
[OLVIgnore]
public int? KundeID { get; set; }
[OLVIgnore]
public int? TourID { get; set; }
[OLVColumn(IsVisible = false)]
public string KundeGruppe { get; set; }
[OLVColumn("KndNr.", DisplayIndex = 0, IsTileViewColumn = true, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public string KundeNummer { get; set; }
[OLVColumn("Name", DisplayIndex = 1)]
public string KundeName { get; set; }
[OLVColumn("Zusatz", DisplayIndex = 2)]
public string KundeName2 { get; set; }
[OLVColumn(DisplayIndex = 3)]
public string Strasse { get; set; }
[OLVColumn(DisplayIndex = 4)]
public string HausNr { get; set; }
[OLVColumn(DisplayIndex = 5, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public int? PLZ { get; set; }
[OLVColumn(DisplayIndex = 6)]
public string Ort { get; set; }
[OLVColumn(DisplayIndex = 7, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public string Land { get; set; }
[OLVColumn("Betten", DisplayIndex = 8, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public int? Bettenanzahl { get; set; }
[OLVColumn(CheckBoxes = true, DisplayIndex = 9)]
public bool Aktiv { get; set; } = true;
[OLVColumn(DisplayIndex = 10)]
public string Service { get; set; }
[OLVColumn(DisplayIndex = 11)]
public string Region { get; set; }
[OLVColumn(DisplayIndex = 12)]
public string Waescheart { get; set; }
[OLVColumn("Umsatz", DisplayIndex = 15, TextAlign = System.Windows.Forms.HorizontalAlignment.Center, AspectToStringFormat ="{0:C}")]
public double? Umsatz1 { get; set; }
[OLVIgnore]
public double? Umsatz2 { get; set; }
[OLVIgnore]
public double? DifferenzEUR { get; set; }
[OLVIgnore]
public double? DifferenzP { get; set; }
[OLVIgnore]
public double? UmsatzAnteil { get; set; }
[OLVIgnore]
public double? KostenAnteil { get; set; }
[OLVIgnore]
public double? GastUmsatz { get; set; }
[OLVIgnore]
public double? BewertungEUR { get; set; }
[OLVIgnore]
public string Bewertung { get; set; }
[OLVColumn("Jahr", DisplayIndex = 14, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public double Zeitraum { get; set; }
[OLVColumn(DisplayIndex = 13)]
public string Suchtext { get; set; }
[OLVIgnore]
public int? Aufgabe { get; set; }
}
}

153
KundeArtikel.cs Normal file
View File

@ -0,0 +1,153 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
namespace DatenDB
{
public class KundeArtikel
{
// 0 1 2 3 4 5 6 7 8 9
private static string COLUMNS = "kunde_artikel_id, kunde_id, artikel_nr, artikel_name, stand, fehlmenge, stand_bearbeitet, fehlmenge_bearbeitet, korrektur, korrektur_bearbeitet";
private static string TABLE = "kundenverwaltung.kunde_artikel";
public KundeArtikel() { }
public static List<KundeArtikel> GetList(string kundeid)
{
DatenbankConnection.GetConnection().Open();
List<KundeArtikel> resultList = new List<KundeArtikel>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} where kunde_id = {kundeid} order by kunde_artikel_id asc";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new KundeArtikel(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static KundeArtikel GetItem(int i)
{
DatenbankConnection.GetConnection().Open();
KundeArtikel result = new KundeArtikel();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"SELECT {COLUMNS} from {TABLE} where kunde_artikel_id = {i}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = new KundeArtikel(reader);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public static KundeArtikel GetItemIfAvailable(int kndid, int artnr)
{
DatenbankConnection.GetConnection().Open();
KundeArtikel result = null;
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"SELECT {COLUMNS} from {TABLE} where kunde_id = {kndid} and artikel_nr = {artnr}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = new KundeArtikel(reader);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (this.KundeArtikelID.HasValue & this.KundeArtikelID != 0)
{
command.CommandText = $"update {TABLE} set kunde_id = :p1, artikel_nr = :p2, artikel_name = :p3, stand = :p4, fehlmenge = :p5, stand_bearbeitet = :p6, fehlmenge_bearbeitet = :p7, korrektur = :p8, korrektur_bearbeitet = :p9 WHERE kunde_artikel_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.kunde_artikel_seq')";
this.KundeArtikelID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9)";
}
command.Parameters.AddWithValue("p0", this.KundeArtikelID.Value);
command.Parameters.AddWithValue("p1", this.KundeID);
command.Parameters.AddWithValue("p2", this.ArtikelNR);
command.Parameters.AddWithValue("p3", string.IsNullOrWhiteSpace(this.ArtikelName) ? (object)DBNull.Value : this.ArtikelName);
command.Parameters.AddWithValue("p4", this.Stand);
command.Parameters.AddWithValue("p5", this.Fehlmenge);
command.Parameters.AddWithValue("p6", string.IsNullOrWhiteSpace(this.StandBearbeitet) ? (object)DBNull.Value : this.StandBearbeitet);
command.Parameters.AddWithValue("p7", string.IsNullOrWhiteSpace(this.FehlmengeBearbeitet) ? (object)DBNull.Value : this.FehlmengeBearbeitet);
command.Parameters.AddWithValue("p8", this.Korrektur);
command.Parameters.AddWithValue("p9", string.IsNullOrWhiteSpace(this.KorrekturBearbeitet) ? (object)DBNull.Value : this.KorrekturBearbeitet);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
public int ZahlenUpdate()
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (this.KundeArtikelID.HasValue & this.KundeArtikelID != 0)
{
command.CommandText = $"update {TABLE} set stand = :p1, stand_bearbeitet = :p2 fehlmenge = :p3, fehlmenge_bearbeitet = :p4, korrektur = :p5, korrektur_bearbeitet = :p6 WHERE kunde_artikel_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.kunde_artikel_seq')";
this.KundeArtikelID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6)";
}
command.Parameters.AddWithValue("p0", this.KundeArtikelID.Value);
command.Parameters.AddWithValue("p1", this.Stand);
command.Parameters.AddWithValue("p2", string.IsNullOrWhiteSpace(this.StandBearbeitet) ? (object)DBNull.Value : this.StandBearbeitet);
command.Parameters.AddWithValue("p3", this.Fehlmenge);
command.Parameters.AddWithValue("p4", string.IsNullOrWhiteSpace(this.FehlmengeBearbeitet) ? (object)DBNull.Value : this.FehlmengeBearbeitet);
command.Parameters.AddWithValue("p5", this.Korrektur);
command.Parameters.AddWithValue("p6", string.IsNullOrWhiteSpace(this.KorrekturBearbeitet) ? (object)DBNull.Value : this.KorrekturBearbeitet);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
public KundeArtikel(NpgsqlDataReader reader)
{
this.KundeArtikelID = reader.GetInt32(0);
this.KundeID = reader.GetInt32(1);
this.ArtikelNR = reader.GetInt32(2);
this.ArtikelName = reader.IsDBNull(3) ? string.Empty : reader.GetString(3);
this.Stand = reader.GetInt32(4);
this.Fehlmenge = reader.GetInt32(5);
this.StandBearbeitet = reader.IsDBNull(6) ? string.Empty : reader.GetString(6);
this.FehlmengeBearbeitet = reader.IsDBNull(7) ? string.Empty : reader.GetString(7);
this.Korrektur = reader.IsDBNull(8) ? 0 : reader.GetInt32(8);
this.KorrekturBearbeitet = reader.IsDBNull(9) ? string.Empty : reader.GetString(9);
}
public int? KundeArtikelID { get; set; }
public int? KundeID { get; set; }
public int ArtikelNR { get; set; }
public string ArtikelName { get; set; }
public int Stand { get; set; }
public int Fehlmenge { get; set; }
public string StandBearbeitet { get; set; }
public string FehlmengeBearbeitet { get; set; }
public int Korrektur { get; set; }
public string KorrekturBearbeitet { get; set; }
}
}

View File

@ -1,430 +0,0 @@
using BrightIdeasSoftware;
using DatenDB;
using Spire.Barcode;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ZXing;
using System.Windows.Forms.DataVisualization.Charting;
using System.Data.SqlClient;
using System.Web;
namespace Deckungsbeitrag
{
public partial class KundeDaten : Form
{
List<Sortiment> sortimentListe = null;
List<Sortiment> resultList = null;
Sortiment result = null;
Kunde adresse = null;
Bitmap bitmap = null;
Image qrcode = null;
public KundeDaten()
{
InitializeComponent();
sortimentListe = (List<Sortiment>)Funktionen.SortimentLesen("Liste");
foreach (Control ctr in this.Controls) if (ctr is TextBox) if (!ctr.Name.Contains("KndNr") && !ctr.Name.Contains("Suchtext")) ctr.Enabled = false;
this.buttonProgramm.Enabled = false;
this.buttonBewertung.Enabled = false;
this.tSBDrucken.Enabled = false;
this.tSBNext.Enabled = false;
List<Aufgabe> aufgabenlist1 = Aufgabe.GetList(2);
this.comboBoxAufgabe.DataSource = aufgabenlist1;
this.comboBoxAufgabe.DisplayMember = "Bezeichnung";
this.comboBoxAufgabe.SelectedIndex = -1;
this.comboBoxAufgabe.Enabled = false;
this.buttonAufgEnt.Enabled = false;
}
public KundeDaten(Kunde kunde) :this()
{
this.adresse = kunde;
//Funktionen.SortimentLesen("Liste");
this.textBoxKndNr.Text = kunde.KundeNummer;
TextBoxKndNr_Leave(this, null);
//OLV_Load();
//Chart_Load();
}
//private bool SortimentLesen()
//{
// bool ok = false;
// StreamReader streamReader = null;
// try
// {
// streamReader = new StreamReader(ConfigurationManager.AppSettings["SortimentPfad"], Encoding.GetEncoding("iso-8859-1"));
// }
// catch (Exception)
// {
//MessageBox.Show("Keine Sortiment-Datei gefunden, bitte kontrolliere Pfad und Dateiname!");
// return ok;
// }
// int nr = 0;
// string row = string.Empty;
// Sortiment[] sortiment = new Sortiment[0];
// sortimentListe = new List<Sortiment>();
// int idx = 0;
// while (!streamReader.EndOfStream)
// {
// Array.Resize<Sortiment>(ref sortiment, ++idx);
// row = streamReader.ReadLine();
// sortiment[idx - 1] = new Sortiment(row, nr);
// sortimentListe.Add(new Sortiment(row, nr));
// ++nr;
// }
// streamReader.Close();
// ok = true;
// return ok;
//}
private void DatenLesen()
{
foreach (Control ctr in this.Controls) if (ctr is TextBox) ctr.Enabled = false;
this.comboBoxAufgabe.Enabled = true;
string sortNr = string.Empty;
//Innsbrucker Soziale Dienste Sortiment immer gleich.
if (adresse.KundeNummer == "010069" | adresse.KundeNummer == "010071") sortNr = "010068";
else sortNr = adresse.KundeNummer;
//result = sortimentListe.Find(Sortiment => Sortiment.KundeNummer == sortNr);
resultList = sortimentListe.FindAll(Sortiment => Sortiment.KundeNummer == sortNr);
BarcodeWriter code = new BarcodeWriter();
code.Format = BarcodeFormat.QR_CODE;
qrcode = code.Write(adresse.KundeNummer);
if (resultList != null) //KONTROLLE OB SORTIMENT VORHANDEN MIT RESULT...WERT VON resultList WENN KUNDE HAT KEIN SORTIMENT??????
{
Entwurf_Erstellen();
this.pictureBoxEntwurf.Visible = true;
this.pictureBoxEntwurf.Image = bitmap;
}
else MessageBox.Show("Der gesuchte Kunde hat kein Sortiment.");
tSSLabelArtikelAnz.Text = resultList.Count.ToString();
this.textBoxKndNr.Text = adresse.KundeNummer;
this.textBoxKundeName.Text = adresse.KundeName;
this.textBoxKndName2.Text = adresse.KundeName2;
this.textBoxStraße.Text = adresse.Strasse;
this.textBoxPLZ.Text = adresse.PLZ.ToString();
this.textBoxOrt.Text = adresse.Ort;
this.textBoxSuchtext.Text = adresse.Suchtext;
foreach (Aufgabe auf in comboBoxAufgabe.Items) if (auf.AufgabeID == adresse.Aufgabe) this.comboBoxAufgabe.SelectedItem = auf;
if (this.comboBoxAufgabe.SelectedItem != null) this.buttonAufgEnt.Enabled = true;
this.pictureBoxQRCode.Image = qrcode;
this.pictureBoxQRCode.SizeMode = PictureBoxSizeMode.Zoom;
this.buttonProgramm.Text = "WP 01"; //AUS DATENBANK STANDART-WASCHPROGRAMM EINFÜGEN.
this.buttonProgramm.Enabled = true;
this.buttonBewertung.Enabled = true;
this.tSBDrucken.Enabled = true;
this.tSBNext.Enabled = true;
OLV_Load();
Chart_Load();
}
private void Entwurf_Erstellen()
{
int ezl = 50;
int handzeile = 33;
float textsize = 10;
float textsize2 = 20;
int idx = 0;
int idx1 = 0;
int length = 0;
bitmap = new Bitmap(790, 1120);
Graphics g = Graphics.FromImage(bitmap);
Point adressblock = new Point(ezl, 50);
Point tabelle = new Point(ezl, 330);
SizeF textSize2 = g.MeasureString("Salzburg, am 26.08.1984", new Font("Arial", textsize, FontStyle.Regular));
SizeF textSize3 = g.MeasureString("MO", new Font("Arial", textsize2, FontStyle.Regular));
SizeF textSizePos = g.MeasureString("Bemerkung", new Font("Arial", textsize, FontStyle.Regular));
int zeile = (int)textSize2.Height + 20; //PIXEL
int posTag = 145;
int qr = (int)textSize3.Height * 2 + (int)textSize2.Height * 3;
g.FillRectangle(Brushes.White, 0, 0, bitmap.Width, bitmap.Height);
//QR-Code
g.DrawImage(qrcode, bitmap.Width - 50 - qr, 50, qr, qr);
//Adressblock
g.DrawString($"{adresse.KundeNummer} {adresse.Suchtext}", new Font("Arial", textsize2, FontStyle.Regular), Brushes.Black, adressblock);
g.DrawString($"{adresse.KundeName}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, adressblock.X, adressblock.Y + (int)textSize3.Height);
g.DrawString($"{adresse.KundeName2}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, adressblock.X, adressblock.Y + (int)textSize3.Height + (int)textSize2.Height); //
g.DrawString($"{adresse.Strasse}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, adressblock.X, adressblock.Y + (int)textSize3.Height + (int)textSize3.Height + (int)textSize2.Height);
g.DrawString($"{adresse.PLZ} {adresse.Ort}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, adressblock.X, adressblock.Y + (int)textSize3.Height + (int)textSize3.Height + (int)textSize2.Height + (int)textSize2.Height);
//TagAnzeige
g.DrawString("MO", new Font("Arial", textsize2, FontStyle.Regular), Brushes.Black, adressblock.X, adressblock.Y + posTag);
g.DrawString("DI", new Font("Arial", textsize2, FontStyle.Regular), Brushes.Black, adressblock.X + textSize3.Width + 10, adressblock.Y + posTag);
g.DrawString("MI", new Font("Arial", textsize2, FontStyle.Regular), Brushes.Black, adressblock.X + (textSize3.Width + 10) * 2, adressblock.Y + posTag);
g.DrawString("DO", new Font("Arial", textsize2, FontStyle.Regular), Brushes.Black, adressblock.X + (textSize3.Width + 10) * 3, adressblock.Y + posTag);
g.DrawString("FR", new Font("Arial", textsize2, FontStyle.Regular), Brushes.Black, adressblock.X + (textSize3.Width + 10) * 4, adressblock.Y + posTag);
//Datum
g.DrawString("Datum:_______________", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, ezl, adressblock.Y + 200);
if (adresse.Aufgabe != null) g.DrawString($"*{Aufgabe.GetAufgabe(string.Empty, adresse.Aufgabe).Bezeichnung}", new Font("Arial", textsize, FontStyle.Bold), Brushes.Black, tabelle.X + textSizePos.Width + 100, adressblock.Y + 200);
//Tabelle Kopf
g.DrawLine(new Pen(Brushes.Black), new Point(tabelle.X, tabelle.Y - zeile), new Point(bitmap.Width - 50, tabelle.Y - zeile));
g.DrawString("Bemerkung", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X, tabelle.Y - (int)textSize2.Height - 5);
g.DrawString("Stück", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + textSizePos.Width + 25, tabelle.Y - (int)textSize2.Height - 5);
g.DrawString("Bezeichnung", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + textSizePos.Width + 100, tabelle.Y - (int)textSize2.Height - 5);
g.DrawString("Art.Nr.", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + textSizePos.Width + 500, tabelle.Y - (int)textSize2.Height - 5);
g.DrawLine(new Pen(Brushes.Black), tabelle, new Point(bitmap.Width - 50, tabelle.Y));
for (int i = 0; i < 19; i++)
{
++idx;
length = handzeile * idx;
g.DrawLine(new Pen(Brushes.Black), new Point(tabelle.X, tabelle.Y - zeile), new Point(tabelle.X, tabelle.Y + length));
g.DrawLine(new Pen(Brushes.Black), new Point(tabelle.X + (int)textSizePos.Width + 5, tabelle.Y - zeile), new Point(tabelle.X + (int)textSizePos.Width + 5, tabelle.Y + length));
g.DrawLine(new Pen(Brushes.Black), new Point(tabelle.X + (int)textSizePos.Width + 90, tabelle.Y - zeile), new Point(tabelle.X + (int)textSizePos.Width + 90, tabelle.Y + length));
g.DrawLine(new Pen(Brushes.Black), new Point(tabelle.X + (int)textSizePos.Width + 495, tabelle.Y - zeile), new Point(tabelle.X + (int)textSizePos.Width + 495, tabelle.Y + length));
g.DrawLine(new Pen(Brushes.Black), new Point(bitmap.Width - 50, tabelle.Y - zeile), new Point(bitmap.Width - 50, tabelle.Y + length));
g.DrawLine(new Pen(Brushes.Black), new Point(tabelle.X, tabelle.Y + length), new Point(bitmap.Width - 50, tabelle.Y + length));
}
foreach (Sortiment artikel in resultList)
{
++idx1;
length = handzeile * idx1;
g.DrawString($"{artikel.ArtName}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + textSizePos.Width + 100, tabelle.Y + length - 20);
g.DrawString($"{artikel.ArtNr}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + textSizePos.Width + 500, tabelle.Y + length - 20);
}
//Bemerkung
g.DrawString($"Bemerkung:", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, ezl, bitmap.Height - 130);
//g.DrawString($"*{Aufgabe.GetAufgabe(string.Empty, adresse.Aufgabe).Bezeichnung}", new Font("Arial", textsize, FontStyle.Bold), Brushes.Black, ezl, bitmap.Height - 130 + handzeile);
g.DrawRectangle(new Pen(Brushes.Black), ezl, bitmap.Height - 130 - textsize, bitmap.Width - 100, 100);
}
private void TSBBeenden_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
private void OLV_Load()
{
foreach(ObjectListView olv in this.Controls.OfType<ObjectListView>())
{
olv.HeaderFormatStyle = Funktionen.GetHeader();
olv.OwnerDraw = true;
Generator.GenerateColumns(olv, typeof(OLVKundenumsatz), true);
if (olv.Name.Contains("Jahresumsatz"))
{
foreach (OLVColumn c in olv.Columns) if (c.Name == "Zeitraum") c.Text = "Jahr";
olv.SetObjects(OLVKundenumsatz.GetJahresumsatz(adresse.KundeID));
}
if (olv.Name.Contains("Quartalsumsatz"))
{
foreach (OLVColumn c in olv.Columns) if (c.Name == "Zeitraum") c.Text = "Quartal";
olv.SetObjects(OLVKundenumsatz.GetQuartalsumsatz(adresse.KundeID));
}
if (olv.Name.Contains("Monatsumsatz"))
{
foreach (OLVColumn c in olv.Columns) if (c.Name == "Zeitraum") c.Text = "Monat";
olv.SetObjects(OLVKundenumsatz.GetMonatsumsatz(adresse.KundeID));
}
}
}
private void Chart_Load()
{
foreach (Chart chart in this.Controls.OfType<Chart>()) chart.Visible = true;
//IMPLEMENTIEREN
ClassChart ch = ClassChart.FillChart(adresse.KundeID);
//Chart Jahresumsatz
List<OLVKundenumsatz> olv = OLVKundenumsatz.GetJahresumsatz(adresse.KundeID);
string[] x = new string[olv.Count()];
double[] y = new double[olv.Count()];
for (int i = 0; i < y.Length; i++)
{
y[i] = olv[i].Umsatz;
x[i] = olv[i].Zeitraum;
}
this.chartJahresumsatz.Series[0].LegendText = "Umsatz";
this.chartJahresumsatz.Series[0].ChartType = SeriesChartType.Column;
this.chartJahresumsatz.Series[0].IsValueShownAsLabel = true;
this.chartJahresumsatz.Series[0].Points.DataBindXY(x, y);
//Chart Quartalsumsatz
List<OLVKundenumsatz> olvq = OLVKundenumsatz.GetQuartalsumsatz(adresse.KundeID);
string[] xq = new string[olvq.Count()];
double[] yq = new double[olvq.Count()];
for (int i = 0; i < olvq.Count(); i++)
{
yq[i] = olvq[i].Umsatz;
xq[i] = olvq[i].Zeitraum;
}
this.chartQuartalsumsatz.Series[0].LegendText = "Umsatz";
this.chartQuartalsumsatz.Series[0].ChartType = SeriesChartType.Bar;
this.chartQuartalsumsatz.Series[0].IsValueShownAsLabel = true;
this.chartQuartalsumsatz.Series[0].Points.DataBindXY(xq, yq);
}
private void TextBoxKndNr_Leave(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(textBoxKndNr.Text))
{
this.textBoxSuchtext.Enabled = false;
adresse = Kunde.GetKunde(textBoxKndNr.Text, null, null);
if (adresse == null)
{
MessageBox.Show("Kunden Nummer nicht vorhanden!!");
this.textBoxSuchtext.Enabled = true;
this.textBoxKndNr.Clear();
this.textBoxKndNr.Focus();
return;
}
else DatenLesen();
}
else { this.textBoxSuchtext.Enabled = true; return; }
}
private void ButtonDrucken_Click(object sender, EventArgs e)
{
//PrintDialog dialog = new PrintDialog();
//foreach(string printer in PrinterSettings.InstalledPrinters) if (printer.Contains(ConfigurationManager.AppSettings["PrinterName"])) dialog.PrinterSettings.PrinterName = printer;
// dialog.PrinterSettings.Copies = 10;
// if (dialog.ShowDialog() == DialogResult.OK)
//{
// PrintDocument printDocument = new PrintDocument();
// printDocument.PrintPage += new PrintPageEventHandler(PrintDocument_PrintPage);
// printDocument.PrinterSettings = dialog.PrinterSettings;
// printDocument.Print();
//}
Funktionen.SWS_Drucken(null, adresse);
}
private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(bitmap, e.PageBounds);
//e.Graphics.DrawImage(bitmap, 0, 0, 790, 900);
}
private void TSBNext_Click(object sender, EventArgs e)
{
foreach (Control ctr in this.Controls)
{
if (ctr is TextBox)
{
ctr.Text = "";
if (!ctr.Name.Contains("KndNr") && !ctr.Name.Contains("Suchtext")) ctr.Enabled = false;
else ctr.Enabled = true;
}
this.textBoxKndNr.Focus();
}
this.pictureBoxEntwurf.Image = null;
this.pictureBoxQRCode.Image = null;
this.buttonProgramm.Enabled = false;
this.buttonBewertung.Enabled = false;
this.comboBoxAufgabe.Enabled = false;
this.buttonAufgEnt.Enabled = false;
this.tSBNext.Enabled = false;
this.tSBDrucken.Enabled = false;
foreach (ObjectListView olv in this.Controls.OfType<ObjectListView>()) olv.Clear();
foreach (Chart chart in this.Controls.OfType<Chart>()) chart.Visible = false;
}
private void ButtonProgramm_Click(object sender, EventArgs e)
{
FormProgrammauswahl auswahl = new FormProgrammauswahl();
if (auswahl.ShowDialog() == DialogResult.OK)
{
DatenLesen();
}
}
private void textBoxSuchtext_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(textBoxSuchtext.Text))
{
this.textBoxSuchtext.AutoCompleteCustomSource = Kunde.GetSuchtext(textBoxSuchtext.Text);
}
}
private void TextBoxSuchtext_Leave(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(textBoxSuchtext.Text))
{
if (Kunde.GetKunde(textBoxSuchtext.Text, null, string.Empty) != null) adresse = Kunde.GetKunde(textBoxSuchtext.Text.ToUpper(), null, string.Empty);
else
{
MessageBox.Show($"Kunde mit {textBoxSuchtext.Text} als Suchtext ist nicht vorhanden!!");
this.textBoxSuchtext.Clear();
this.textBoxSuchtext.Focus();
return;
}
DatenLesen();
}
}
private void textBoxSuchtext_KeyDown(object sender, KeyEventArgs e)
{
TextBox tb = (TextBox)sender;
if (e.KeyData == Keys.Enter || e.KeyData == Keys.Tab)
{
if (tb.Name.Contains("KndNr")) TextBoxKndNr_Leave(this, null);
if (tb.Name.Contains("Suchtext")) TextBoxSuchtext_Leave(this, null);
e.Handled = true;
}
}
private void comboBoxAufgabe_DropDownClosed(object sender, EventArgs e)
{
if (MessageBox.Show("Möchtest du die Aufgabe speichern?", "Frage", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
if (this.comboBoxAufgabe.SelectedItem == null) adresse.Aufgabe = null;
else adresse.Aufgabe = ((Aufgabe)this.comboBoxAufgabe.SelectedItem).AufgabeID;
adresse.Save();
}
}
private void buttonAufgEnt_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Möchtest du die Aufgabe wirklich löschen?", "Frage", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
this.comboBoxAufgabe.SelectedIndex = -1;
adresse.Aufgabe = null;
adresse.Save();
}
}
private void KundeDaten_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.End) TSBNext_Click(this, e);
}
private void nextToolStripMenuItem_Click(object sender, EventArgs e)
{
TSBNext_Click(this, e);
}
private void nächsterKundeToolStripMenuItem_Click(object sender, EventArgs e)
{
TSBNext_Click(this, e);
}
}
}

View File

@ -1,187 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="tSBBeenden.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEMSURBVDhPrZMxjoNADEVzpD1CRE9PzwW2pkpDzwEo0tEi
DkBPT09BSbORsCkneqM1yUxQtNLG0pdG/va3x+M5nT5p27adVbVVVRehhYvjA1PVapomV5alS9PUJUni
wRkfHDFxnjeIcRx9cJZlrmkaNwyDB2d8cIcitAZhleZ5vonIBT/gjK+qKtf3PQI/67p+PVdvSaQKgQH5
ayLyvSzLXiQQYUgQXdc5qh0kXwBJds08zx/FEGBY3Pdo0vB1Xe8oisLHm8hnBP57hX2ILxN+iARDDIYd
PyMiVCQA2DPSIdc8LCIiV0hbJIJpF2HObxfJDBFbZVtjg60yMXFeYM+fiQ7Anz9TbDaD2B/bHero49g9
VkT2AAAAAElFTkSuQmCC
</value>
</data>
<data name="tSBDrucken.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACFSURBVDhP3ZIxDoAgDEU5muFYnM4BV/UmakJg1HQAS2ml
rjR5wcT+RyEYgyrGeGvAmargp7X2E5XgPC6WUQUppSmEMOcb1ggAyEDWwIdzrrntHpCBbBl7W/dmRwnv
l/c4eOy8amAFfxAF9KwUUcA1UWhfEWB6AtpfvQluGkoTwkXtEjjzAA07kcd6gs3FAAAAAElFTkSuQmCC
</value>
</data>
<data name="tSBNext.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACbSURBVDhPY2AgAL5//5786dMnUXRxosC3b98qnr/58P/b
t2+XSTYEpPny/Zf/pVKW/W9aeYY0Q/7//88B0tC38cJ/huA5YEyyISCFIA0gjbQ15Nu3byABghinISBJ
mAQpGGYIdQwgBhfPP4ahmWBgEhWIuABFmmEJqXv9edI1wwAoKZ+++ey/cMJi0jXDAMiQxy/fk6cZBghl
ZwBXpY04PHaFwQAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>315, 17</value>
</metadata>
<data name="toolStripDropDownNext.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACbSURBVDhPY2AgAL5//5786dMnUXRxosC3b98qnr/58P/b
t2+XSTYEpPny/Zf/pVKW/W9aeYY0Q/7//88B0tC38cJ/huA5YEyyISCFIA0gjbQ15Nu3byABghinISBJ
mAQpGGYIdQwgBhfPP4ahmWBgEhWIuABFmmEJqXv9edI1wwAoKZ+++ey/cMJi0jXDAMiQxy/fk6cZBghl
ZwBXpY04PHaFwQAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>430, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>38</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8A////////////////////////////////////////////////////////////////////////
////////8AD//////////////////w//D/////////////////8PDw///////MzP////zMz/D/8P////
//zMzP///8zMz/AA///////MzMzM//zMzMzP////////zMzMzMz8zMzMzM///////MzMzMzPzMzMzMz/
//////zMzMzM/8zMzMzP///////MzMzMzPzMzMzMz///////zMzMzM/8zMzMzP///////MzMzMzPzMzM
zMz///////zMzMzM/8zMzMzP/Mz////MzMzMzPzMzMzMz/zMzM//zMzMzM/8zMzMzP/MzMzM/8zMzMzP
zMzMzMz8zMzMzPzMzMzM/8zMzMzP/MzMzMz8zMzMzPzMzMzMz8zMzMzMzMzMzM/MzMzMzPzMzMzMz//8
zMzP//zMzMz//8zMzM////zM/////8zP/////Mz/////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</value>
</data>
</root>

29
LoginException.cs Normal file
View File

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public class LoginException : Exception
{
public LoginException() : base()
{
}
public LoginException(string message) : base(message)
{
}
public LoginException(string message, int errorCode) : base(message)
{
this.ErrorCode = errorCode;
}
public int ErrorCode { get; set; } = 0;
}
}

86
Maschine.cs Normal file
View File

@ -0,0 +1,86 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public class Maschine
{
public const string COLUMNS = "maschine_id, faecher, bezeichnung, trockner_kaputt";
private const string TABLE = "kundenverwaltung.maschine";
public static Maschine GetMaschine(int? mID, string bezeichnung)
{
DatenbankConnection.GetConnection().Open();
Maschine result = null;
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (string.IsNullOrEmpty(bezeichnung)) command.CommandText = $"select {COLUMNS} from {TABLE} where maschine_id = {mID}";
if (mID == null) command.CommandText = $"select {COLUMNS} from {TABLE} where bezeichnung = '{bezeichnung}'";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = new Maschine(reader);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public static List<Maschine> GetList()
{
DatenbankConnection.GetConnection().Open();
List<Maschine> resultList = new List<Maschine>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE}";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Maschine(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public Maschine()
{
} // LEER
public int? MaschineID { get; set; }
public int Faecher { get; set; }
public string Bezeichnung { get; set; }
public bool TrocknerKaputt { get; set; }
public Maschine(NpgsqlDataReader reader)
{
this.MaschineID = reader.GetInt32(0);
this.Faecher = reader.GetInt32(1);
this.Bezeichnung = reader.GetString(2);
this.TrocknerKaputt = reader.IsDBNull(3) ? false : reader.GetBoolean(3);
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if(this.MaschineID.HasValue & this.MaschineID != 0)
{
command.CommandText = $"update {TABLE} set faecher = :p1, bezeichnung = :p2, trockner_kaputt = :p3 where maschine_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.maschine_seq')";
this.MaschineID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3)";
}
command.Parameters.AddWithValue("p0", this.MaschineID);
command.Parameters.AddWithValue("p1", this.Faecher);
command.Parameters.AddWithValue("p2", this.Bezeichnung);
command.Parameters.AddWithValue("p3", this.TrocknerKaputt);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
}
}

312
OLVBewertung.cs Normal file
View File

@ -0,0 +1,312 @@
using BrightIdeasSoftware;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
namespace DatenDB
{
public class OLVBewertung
{
private static string TABLE = "kundenverwaltung.q_bewertung_neu";
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
private static string COLUMNS = "kunde_id, tour_id, kunde_nr, name1, name2, straße, plz, bezeichnung, land, aktiv, bettenanzahl, kunde_gruppe, service, region, waescheart, umsatz, umsatz_pro_gast, var_kost_anteil, fixkosten, erfolg_pro_gast, erfolg_gesamt, rating";
private static string SUMCOLUMNS = "kunde_id, min(tour_id) as tour_id, min(kunde_nr) as kunde_nr, min(name1) as name1, min(name2) as name2, min(straße) as straße, min(plz) as plz, min(bezeichnung) as bezeichnung, min(land) as land, aktiv, min(bettenanzahl) as bettenanzahl, min(kunde_gruppe) as kunde_gruppe, min(service) as service, min(region) as region, min(waescheart) as waescheart, sum(umsatz) as umsatz, sum(umsatz_pro_gast) as umsatz_pro_gast, sum(var_kost_anteil) as var_kost_anteil, sum(fixkosten) as fixkosten, sum(erfolg_pro_gast) as erfolg_pro_gast, sum(erfolg_gesamt) as erfolg_gesamt, sum(rating) as rating";
public static Umsatz result;
public int aktjahr;
public int vpjahr;
public static List<Umsatz> ulist;
public OLVBewertung()
{
}
public static int[] GetLast()
{
DatenbankConnection.GetConnection().Open();
int[] result = new int[2];
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select max(quartal) as quartal, max(jahr) as jahr from {TABLE} where umsatz is not null";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
result[0] = (int)reader.GetDouble(0);
result[1] = (int)reader.GetDouble(1);
}
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public static List<OLVBewertung> GetList(int? aktjahr, int? monat, int? quartal, bool aktiv, int vpjahr, int[] quartale, int? kndid)
{
DatenbankConnection.GetConnection().Open();
List<OLVBewertung> resultList = new List<OLVBewertung>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if(kndid == null || kndid == 0)
{
if (monat == null || monat == 0)
{
if (quartal == null || quartal == 0)
{
if (quartale == null || quartale.Length == 0)
{
command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where jahr = {aktjahr} and aktiv = {aktiv} group by aktiv, kunde_id, jahr order by jahr";
}
else
{
command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where aktiv = {aktiv} and jahr = {aktjahr} and quartal between {quartale.Min()} and {quartale.Max()} group by aktiv, kunde_id order by kunde_id";
} //mit DB klären
}
else
{
if (quartal == 4) command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where aktiv = {aktiv} and jahr = {aktjahr} group by aktiv, kunde_id, jahr order by jahr";
else command.CommandText = $"select {COLUMNS} from {TABLE} where aktiv = {aktiv} quartal = {quartal} and jahr = {aktjahr} order by jahr, quartal";
}
}
else command.CommandText = $"select {COLUMNS} from kundenverwaltung.m_bewertung where aktiv = {aktiv} and jahr = {aktjahr} and monat = {monat}";
}
else
{
if (monat == null || monat == 0)
{
if (quartal == null || quartal == 0)
{
if (quartale == null || quartale.Length == 0)
{
command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where kunde_id = {kndid} and jahr = {aktjahr} group by aktiv, kunde_id, jahr order by jahr";
}
else
{
command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where kunde_id = {kndid} and jahr = {aktjahr} and quartal between {quartale.Min()} and {quartale.Max()} group by aktiv, kunde_id order by kunde_id";
} //mit DB klären
}
else
{
if (quartal == 4) command.CommandText = $"select {SUMCOLUMNS} from {TABLE} where kunde_id = {kndid} and jahr = {aktjahr} group by aktiv, kunde_id, jahr order by jahr";
else command.CommandText = $"select {COLUMNS} from {TABLE} where kunde_id = {kndid} and quartal = {quartal} and jahr = {aktjahr} order by jahr, quartal";
}
}
else command.CommandText = $"select {COLUMNS} from kundenverwaltung.m_bewertung where kunde_id = {kndid} and jahr = {aktjahr} and monat = {monat}";
}
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new OLVBewertung(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
//Umsatzliste Vorperiode holen und Betrag in OLVBewertung übertragen.
ulist = new List<Umsatz>(Umsatz.GetList(aktjahr, monat, quartal, aktiv, vpjahr, quartale));
foreach (OLVBewertung item in resultList)
{
result = new Umsatz();
result = ulist.Find(x => x.KundeID.Equals(item.KundeID));
if (result == null) item.UmsatzVorperiode = 0;
else item.UmsatzVorperiode = result.Betrag;
item.DifferenzEUR = Berechnungen.Differenz_berechnen(item.Umsatz1, item.UmsatzVorperiode)[0];
item.DifferenzPRO = Berechnungen.Differenz_berechnen(item.Umsatz1, item.UmsatzVorperiode)[1];
}
return resultList;
}
public static List<OLVBewertung> GetMonatList(int? aktjahr, int? monat, int? quartal, bool aktiv, int vpjahr)
{
DatenbankConnection.GetConnection().Open();
List<OLVBewertung> resultList = new List<OLVBewertung>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (monat != 0)
{
command.CommandText = $"select {COLUMNS} from kundenverwaltung.umsatz where quartal = {quartal} and jahr = {aktjahr} order by jahr, quartal";
}
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new OLVBewertung(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public static double[] GetTopLast(int? aktjahr, int? monat, int? quartal, bool aktiv, int vpjahr)
{
DatenbankConnection.GetConnection().Open();
double[] result = new double[2];
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (quartal == null || quartal == 0)
{
}
else
{
if (quartal == 4) command.CommandText = $"select min(erfolg_pro_gast), max(erfolg_pro_gast) from kundenverwaltung.jahresbewertung where jahr = {aktjahr}";
else command.CommandText = $"select min(erfolg_pro_gast), max(erfolg_pro_gast) from {TABLE} where quartal = {quartal} and jahr = {aktjahr}";
}
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
result[0] = reader.GetDouble(0);
result[1] = reader.GetDouble(1);
}
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}
public OLVBewertung(NpgsqlDataReader reader)
{
this.KundeID = reader.GetInt32(0);
this.TourID = reader.IsDBNull(1) ? null : (int?)reader.GetInt32(1);
this.KundeNummer = reader.GetString(2);
this.KundeName = reader.IsDBNull(3) ? string.Empty : reader.GetString(3);
this.KundeName2 = reader.IsDBNull(4) ? string.Empty : reader.GetString(4);
this.Strasse = reader.IsDBNull(5) ? string.Empty : reader.GetString(5);
this.PLZ = reader.IsDBNull(6) ? null : (int?)reader.GetInt32(6);
this.Ort = reader.IsDBNull(7) ? string.Empty : reader.GetString(7);
this.Land = reader.IsDBNull(8) ? string.Empty : reader.GetString(8);
this.Aktiv = reader.GetBoolean(9);
this.Bettenanzahl = reader.IsDBNull(10) ? null : (int?)reader.GetInt32(10);
this.KundeGruppe = reader.IsDBNull(11) ? string.Empty : reader.GetString(11);
this.Service = reader.IsDBNull(12) ? string.Empty : reader.GetString(12);
this.Region = reader.IsDBNull(13) ? string.Empty : reader.GetString(13);
this.Waescheart = reader.IsDBNull(14) ? string.Empty : reader.GetString(14);
//this.Quartal = reader.IsDBNull(15) ? 0 : reader.GetDouble(15);
//this.Jahr = reader.IsDBNull(16) ? 0 : reader.GetDouble(16);
this.Umsatz1 = reader.IsDBNull(15) ? 0 : reader.GetDouble(15);
this.UmsatzProGast = reader.IsDBNull(16) ? 0 : reader.GetDouble(16);
this.KostenAnteilVariabel = reader.IsDBNull(17) ? 0 : reader.GetDouble(17);
this.FixkostenAnteil = reader.IsDBNull(18) ? 0 : reader.GetDouble(18);
this.ErfolgProGast = reader.IsDBNull(19) ? 0 : reader.GetDouble(19);
this.ErfolgGesamt = reader.IsDBNull(20) ? 0 : reader.GetDouble(20);
this.Bewertung = reader.IsDBNull(21) ? 0 : reader.GetDouble(21);
}
[OLVIgnore]
public int? KundeID { get; set; }
[OLVIgnore]
public int? TourID { get; set; }
[OLVColumn(IsVisible = false)]
public string KundeGruppe { get; set; }
[OLVColumn("KndNr.", DisplayIndex = 1, IsTileViewColumn = true, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public string KundeNummer { get; set; }
[OLVColumn("Name", DisplayIndex = 2)]
public string KundeName { get; set; }
[OLVColumn("Zusatz", DisplayIndex = 3, IsVisible = false)]
public string KundeName2 { get; set; }
[OLVColumn(DisplayIndex = 4)]
public string Strasse { get; set; }
[OLVColumn(DisplayIndex = 6, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public int? PLZ { get; set; }
[OLVColumn(DisplayIndex = 7)]
public string Ort { get; set; }
[OLVColumn(DisplayIndex = 8, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public string Land { get; set; }
[OLVColumn("Betten", DisplayIndex = 9, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public int? Bettenanzahl { get; set; }
[OLVColumn(CheckBoxes = true, DisplayIndex = 10, IsVisible = false)]
public bool Aktiv { get; set; }
[OLVColumn(DisplayIndex = 11)]
public string Service { get; set; }
[OLVColumn(DisplayIndex = 12)]
public string Region { get; set; }
[OLVColumn(DisplayIndex = 13)]
public string Waescheart { get; set; }
[OLVColumn("Umsatz AP", DisplayIndex = 17, AspectToStringFormat = "{0:C}", TextAlign = System.Windows.Forms.HorizontalAlignment.Right)]
public double Umsatz1{ get; set; }
[OLVColumn("Umsatz VP", DisplayIndex = 16, AspectToStringFormat = "{0:C}")]
public double UmsatzVorperiode { get; set; }
[OLVColumn(DisplayIndex = 18, AspectToStringFormat = "{0:C}", TextAlign = System.Windows.Forms.HorizontalAlignment.Right)]
public double DifferenzEUR { get; set; }
[OLVColumn(DisplayIndex = 19, AspectToStringFormat = "{0:P1}", TextAlign = System.Windows.Forms.HorizontalAlignment.Right)]
public double DifferenzPRO { get; set; }
[OLVColumn("Var.Kosten", DisplayIndex = 20, AspectToStringFormat = "{0:C}", TextAlign = System.Windows.Forms.HorizontalAlignment.Right)]
public double KostenAnteilVariabel { get; set; }
[OLVColumn("Umsatz/Gast", DisplayIndex = 21, AspectToStringFormat = "{0:C}", TextAlign = System.Windows.Forms.HorizontalAlignment.Right)]
public double UmsatzProGast { get; set; }
[OLVColumn("Fix.Kosten", DisplayIndex = 22, AspectToStringFormat = "{0:C}", TextAlign = System.Windows.Forms.HorizontalAlignment.Right)]
public double FixkostenAnteil { get; set; }
[OLVColumn("Erfolg/Gast", DisplayIndex = 23, AspectToStringFormat = "{0:C}", TextAlign = System.Windows.Forms.HorizontalAlignment.Right)]
public double ErfolgProGast { get; set; }
[OLVColumn("Ges.Erfolg", DisplayIndex = 24, AspectToStringFormat = "{0:C}", TextAlign = System.Windows.Forms.HorizontalAlignment.Right)]
public double ErfolgGesamt { get; set; }
[OLVColumn("Rating", DisplayIndex = 0, TextAlign = System.Windows.Forms.HorizontalAlignment.Left, AspectToStringFormat = "{0:C}", MinimumWidth = 100)]
public double Bewertung { get; set; }
public int Save()
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (this.KundeID.HasValue & this.KundeID != 0)
{
command.CommandText = $"update {TABLE} set tour_id = :p1, kunde_nr = :p2, name1 = :p3, name2 = :p4, straße = :p5, plz = :p6, bezeichnung = :p7, land = :p8, aktiv = :p9, bettenanzahl = :p10, kunde_gruppe = :p11, service = :p12, region = :p13, waescheart = :p14 WHERE kunde_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.kunde_seq')";
this.KundeID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9, :p10, :p11, :p12, :p13, :p14)";
}
command.Parameters.AddWithValue("p0", this.KundeID);
command.Parameters.AddWithValue("p1", this.TourID.HasValue ? this.TourID.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p2", this.KundeNummer);
command.Parameters.AddWithValue("p3", string.IsNullOrEmpty(this.KundeName) ? (object)DBNull.Value : this.KundeName);
command.Parameters.AddWithValue("p4", string.IsNullOrEmpty(this.KundeName2) ? (object)DBNull.Value : this.KundeName2);
command.Parameters.AddWithValue("p5", string.IsNullOrEmpty(this.Strasse) ? (object)DBNull.Value : this.Strasse);
command.Parameters.AddWithValue("p6", this.PLZ.HasValue ? this.PLZ.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p7", string.IsNullOrEmpty(this.Ort) ? (object)DBNull.Value : this.Ort);
command.Parameters.AddWithValue("p8", string.IsNullOrEmpty(this.Land) ? (object)DBNull.Value : this.Land);
command.Parameters.AddWithValue("p9", this.Aktiv);
command.Parameters.AddWithValue("p10", this.Bettenanzahl.HasValue ? this.Bettenanzahl.Value : (object)DBNull.Value);
command.Parameters.AddWithValue("p11", string.IsNullOrEmpty(this.KundeGruppe) ? (object)DBNull.Value : this.KundeGruppe);
command.Parameters.AddWithValue("p12", string.IsNullOrEmpty(this.Service) ? (object)DBNull.Value : this.Service);
command.Parameters.AddWithValue("p13", string.IsNullOrEmpty(this.Region) ? (object)DBNull.Value : this.Region);
command.Parameters.AddWithValue("p14", string.IsNullOrEmpty(this.Waescheart) ? (object)DBNull.Value : this.Waescheart);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
}
}

95
OLVKundenumsatz.cs Normal file
View File

@ -0,0 +1,95 @@
using BrightIdeasSoftware;
using Npgsql;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public class OLVKundenumsatz
{
private static List<OLVKundenumsatz> resultlist;
public OLVKundenumsatz()
{
}
[OLVColumn(DisplayIndex = 0, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public string Zeitraum { get; set; }
//[OLVColumn(DisplayIndex = 1, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
//public double Jahr { get; set; }
[OLVColumn(DisplayIndex = 2, TextAlign = System.Windows.Forms.HorizontalAlignment.Right, AspectToStringFormat = "{0:C}")]
public double Umsatz { get; set; }
//[OLVColumn(DisplayIndex = 3, TextAlign = System.Windows.Forms.HorizontalAlignment.Right, AspectToStringFormat = "{0:C}")]
//public double DifferenzEUR { get; set; }
//[OLVColumn(DisplayIndex = 4, TextAlign = System.Windows.Forms.HorizontalAlignment.Center, AspectToStringFormat = "{0:P1}")]
//public double DifferenzPro { get; set; }
public static List<OLVKundenumsatz> GetJahresumsatz(int? kndid)
{
resultlist = new List<OLVKundenumsatz>();
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select jahr, umsatz from kundenverwaltung.jahresumsaetze where kunde_id = {kndid} order by jahr";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultlist.Add(new OLVKundenumsatz(reader, true));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultlist;
}
public static List<OLVKundenumsatz> GetMonatsumsatz(int? kndid)
{
resultlist = new List<OLVKundenumsatz>();
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select monat, umsatz1, jahr from kundenverwaltung.monatsumsaetze where kunde_id = {kndid} order by jahr, monat";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultlist.Add(new OLVKundenumsatz(reader, false));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultlist;
}
public static List<OLVKundenumsatz> GetQuartalsumsatz(int? kndid)
{
resultlist = new List<OLVKundenumsatz>();
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select quartal, umsatz, jahr from kundenverwaltung.q_umsatz where kunde_id = {kndid} order by jahr, quartal";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultlist.Add(new OLVKundenumsatz(reader, false));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultlist;
}
public OLVKundenumsatz(NpgsqlDataReader reader, bool jahr)
{
if (jahr)
{
this.Zeitraum = reader.GetDouble(0).ToString();
this.Umsatz = reader.GetDouble(1);
}
else
{
this.Zeitraum = reader.GetDouble(0).ToString() + "." + reader.GetDouble(2).ToString();
this.Umsatz = reader.GetDouble(1);
}
}
}
}

View File

@ -21,38 +21,56 @@ namespace Deckungsbeitrag
static void Main()
{
string userid = ConfigurationManager.AppSettings["ConnectionString"].Split(';')[0];
userid = userid.Split('=')[1];
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Screen[] screens = Screen.AllScreens;
//Application.Run(new FormMain(Benutzer.GetBenutzer(string.Empty, 3)));
FormLogin loginForm = new FormLogin();
if (loginForm.ShowDialog() == DialogResult.OK)
//TODO: Wenn mit Anmeldung dann if-Clause entfernen und Switch alleine verwenden.
if (userid.StartsWith("ms") | userid.StartsWith("ps"))
{
if (loginForm.Person.Rolle == BenutzerRolle.Waschstrasse | loginForm.Person.Rolle == BenutzerRolle.Expedit)
{
if (loginForm.Person.Rolle == BenutzerRolle.Waschstrasse) Application.Run(new FormAufleger(screens, loginForm.Person));
if (loginForm.Person.Rolle == BenutzerRolle.Expedit) Application.Run(new FormExpedit(loginForm.Person));
//Application.Run(new FormWaschstrasse(screens));
}
else Application.Run(new FormMain(loginForm.Person, loginForm.t));
Application.Run(new FormFehlmengeCount(userid));
}
//Application.Run(new FormFahrerScreen());
//Application.Run(new FormWaschstrasse());
//Application.Run(new FormWSTAusschlag());
//FormWaschstrasse waschstrasse = new FormWaschstrasse("WASCHSTRASSE 1");
//waschstrasse.Show();
//Application.Run(new FormWaschstrasse("WASCHSTRASSE 2"));
//Application.Run(new FormFachBearbeiten());
else
{
FormLogin loginForm = new FormLogin();
if (loginForm.ShowDialog() == DialogResult.OK)
{
// Switch on BenutzerRolle für Weiterleitung zum richtigen Screen
switch (loginForm.Person.Rolle)
{
case BenutzerRolle.Verwaltung:
Application.Run(new FormMain(loginForm.Person));
break;
case BenutzerRolle.Fahrer:
Application.Run(new FormMain(loginForm.Person));
break;
case BenutzerRolle.Admin:
Application.Run(new FormMain(loginForm.Person));
break;
case BenutzerRolle.Waschstrasse:
Application.Run(new FormNeuerAuftrag(loginForm.Person));
break;
case BenutzerRolle.Master:
Application.Run(new FormMain(loginForm.Person));
break;
case BenutzerRolle.Expedit:
Application.Run(new FormExpedit(loginForm.Person, screens));
break;
case BenutzerRolle.Frottee:
//TODO: Wenn alles ohne Anmeldung dann entfernen.
Application.Run(new FormFehlmengeCount(loginForm.Person));
break;
case BenutzerRolle.Flach:
//TODO: Wenn alles ohne Anmeldung dann entfernen.
Application.Run(new FormFehlmengeCount(loginForm.Person));
break;
default:
break;
}
}
//TO-DO///////////////////TO-DO////////////////////////TO-DO\\\\\\\\\\\\\\\\\\\\\TO-DO\\\\\\\\\\\\\\\\\\\\\\\TO-DO\\
//TODO: CLASS WASCHPROGRAMM ERSTELLEN
//TODO: DATENBANK WEGEN FACHLISTE CHECKEN
//TODO: FÄCHER PRO AUFTRAG INKLUSIVE ANZEIGE FÜR AUSSCHLAGER.
//TODO: LISTE STATT POSTENVERFOLGUNG? LISTE ZEIGT ALLE AUFTRÄGE INKL. FÄCHER UND KANN AKTUELLE ZEIGEN.
}
}
}
}
}

View File

@ -79,5 +79,25 @@ namespace Deckungsbeitrag.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap question_sign_icon_icons_com_73445 {
get {
object obj = ResourceManager.GetObject("question-sign_icon-icons.com_73445", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap UpdatedScript_16x {
get {
object obj = ResourceManager.GetObject("UpdatedScript_16x", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@ -118,10 +118,16 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Close_red_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Close_red_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="UpdatedScript_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\UpdatedScript_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Checkmark_blue_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Checkmark_blue_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Close_red_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Close_red_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="question-sign_icon-icons.com_73445" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\question-sign_icon-icons.com_73445.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@ -12,7 +12,7 @@ namespace Deckungsbeitrag.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@ -37,6 +37,7 @@ namespace Deckungsbeitrag.Properties {
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("1, 53, 101")]
public global::System.Drawing.Color Wirlblau {
get {
return ((global::System.Drawing.Color)(this["Wirlblau"]));

View File

@ -6,7 +6,7 @@
<Value Profile="(Default)" />
</Setting>
<Setting Name="Wirlblau" Type="System.Drawing.Color" Scope="User">
<Value Profile="(Default)" />
<Value Profile="(Default)">1, 53, 101</Value>
</Setting>
<Setting Name="ColPos" Type="System.Drawing.Color" Scope="User">
<Value Profile="(Default)" />

53
Report.cs Normal file
View File

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BrightIdeasSoftware;
namespace DatenDB
{
public class Report
{
public Report()
{
}
public static Image Get_ListView_Report(OLVListItem listitems)
{
Bitmap bitmap = new Bitmap(1120, 790);
Graphics g = Graphics.FromImage(bitmap);
Pen pen = new Pen(Brushes.Black);
Font kat1 = new Font("Arial", 20, FontStyle.Bold);
Font kat2 = new Font("Arial", 12, FontStyle.Regular);
Font kat3 = new Font("Arial", 8, FontStyle.Regular);
//int y = 100;
//int height = 100;
//foreach (FahrerAuftrag auftrag in fahrerauftragliste)
//{
// Rectangle rahmen = new Rectangle(50, y, 690, height);
// g.DrawRectangle(pen, rahmen);
// g.DrawLine(pen, new Point(50, y + (int)datum.Height), new Point(740, y + (int)datum.Height));
// g.DrawString(auftrag.Wann.ToShortDateString(), kat2, Brushes.Black, 50, y);
// g.DrawString(auftrag.KundeNummer + " " + auftrag.Kunde, kat2, Brushes.Black, (790 / 2) - (g.MeasureString(auftrag.KundeNummer + " " + auftrag.Kunde, kat2).Width / 2), y);
// g.DrawString(auftrag.Aufgabe, kat2, Brushes.Black, 740 - g.MeasureString(auftrag.Aufgabe, kat2).Width, y);
// //ZUSATZ SCHREIBEN
// g.DrawString("Zusatz:", kat2, Brushes.Black, 50, y + (int)datum.Height + 5);
// if (g.MeasureString(auftrag.Zusatz, kat2).Width + 100 <= 790) g.DrawString(auftrag.Zusatz, kat2, Brushes.Black, 50, y + (int)datum.Height * 2 + 10);
// else g.DrawString("Zusatztext zu lange. Bitte händisch hinzufügen.", kat2, Brushes.Black, 50, y + (int)datum.Height * 2 + 10);
// y += height + 5;
//}//AUFTRÄGE ERSTELLEN
Image image = bitmap;
return image;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

313
SPSDaten.cs Normal file
View File

@ -0,0 +1,313 @@
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public class SPSDaten
{
public SPSDaten()
{
}
public int Waschprogramm { get; set; }
/// <summary>
/// Waschstrasse 1
/// </summary>
private bool ws_1_transport;
public bool WS_1_Transport
{
get { return ws_1_transport; }
set
{
if (ws_1_transport != value)
{
ws_1_transport = value;
if (ws_1_transport == true)
{
Console.WriteLine($"WS1 Transport Status {ws_1_transport}");
Presse1_Leer = false;//WENN Transport is true wird Presse_Leer automatisch false;
WS1Transport?.Invoke(this, EventArgs.Empty);
}
}
}
}
private bool presse1_leer;
public bool Presse1_Leer
{
get { return presse1_leer; }
set
{
presse1_leer = value;
if (presse1_leer == true)
{
Hubband1_Leer = false;//Wenn Presse Leer automatisch Hubband Leer false.
Presse1Leer?.Invoke(this, EventArgs.Empty);
}
}
}
private bool hubband1_leer;
public bool Hubband1_Leer
{
get { return hubband1_leer; }
set
{
hubband1_leer = value;
if (hubband1_leer == true)
{
//Hubband1Leer?.Invoke(this, EventArgs.Empty);
}
}
}
private bool trockner11_beladen;
public bool Trockner11_Beladen
{
get { return trockner11_beladen; }
set
{
trockner11_beladen = value;
if(trockner11_beladen == true)
{
Hubband1_Leer = true;
Trockner11_Entladen = Trockner12_Entladen = false;
Trockner1Beladen?.Invoke(this, EventArgs.Empty);
}
}
}
private bool trockner12_beladen;
public bool Trockner12_Beladen
{
get { return trockner12_beladen; }
set
{
trockner12_beladen = value;
if (trockner12_beladen == true)
{
Hubband1_Leer = true;
Trockner12_Entladen = Trockner11_Entladen = false;
Trockner1Beladen?.Invoke(this, EventArgs.Empty);
}
}
}
private bool trockner11_entladen;
public bool Trockner11_Entladen
{
get { return trockner11_entladen; }
set
{
trockner11_entladen = value;
if (trockner11_entladen == true)
{
Trockner11_Beladen = Trockner12_Beladen = false;
Trockner1Entladen?.Invoke(this, EventArgs.Empty);
}
}
}
private bool trockner12_entladen;
public bool Trockner12_Entladen
{
get { return trockner12_entladen; }
set
{
trockner12_entladen = value;
if (trockner12_entladen == true)
{
Trockner12_Beladen = Trockner11_Beladen = false;
Trockner1Entladen?.Invoke(this, EventArgs.Empty);
}
}
}
private bool begleitzettel_ws1;
public bool Begleitzettel_WS1
{ get { return begleitzettel_ws1; }
set
{
begleitzettel_ws1 = value;
if (begleitzettel_ws1 == true) BegleitzettelWS1_print?.Invoke(this, EventArgs.Empty);
}
}
private bool tischsummary_ws1;
public bool TischSummary_WS1
{ get { return tischsummary_ws1; }
set
{
tischsummary_ws1 = value;
if (tischsummary_ws1 == true) TischSummaryWS1_print?.Invoke(this, EventArgs.Empty);
}
}
/// <summary>
/// Waschstrasse 2
/// </summary>
private bool ws_2_transport;
public bool WS_2_Transport
{
get { return ws_2_transport; }
set
{
if (ws_2_transport != value)
{
ws_2_transport = value;
if (ws_2_transport == true)
{
Presse2_Leer = false;//WENN Transport is true wird Presse_Leer automatisch false;
WS2Transport?.Invoke(this, EventArgs.Empty);
}
}
}
}
private bool presse2_leer;
public bool Presse2_Leer
{
get { return presse2_leer; }
set
{
presse2_leer = value;
if (presse2_leer == true)
{
Hubband2_Leer = false;//Wenn Presse Leer automatisch Hubband Leer false.
Presse2Leer?.Invoke(this, EventArgs.Empty);
}
}
}
private bool hubband2_leer;
public bool Hubband2_Leer
{
get { return hubband2_leer; }
set
{
hubband2_leer = value;
if (hubband2_leer == true)
{
//Hubband2Leer?.Invoke(this, EventArgs.Empty);
}
}
}
private bool trockner21_beladen;
public bool Trockner21_Beladen
{
get { return trockner21_beladen; }
set
{
trockner21_beladen = value;
if (trockner21_beladen == true)
{
Hubband2_Leer = true;
Trockner21_Entladen = Trockner22_Entladen = false;
Trockner2Beladen?.Invoke(this, EventArgs.Empty);
}
}
}
private bool trockner22_beladen;
public bool Trockner22_Beladen
{
get { return trockner22_beladen; }
set
{
trockner22_beladen = value;
if (trockner22_beladen == true)
{
Hubband2_Leer = true;
Trockner22_Entladen = Trockner21_Entladen = false;
Trockner2Beladen?.Invoke(this, EventArgs.Empty);
}
}
}
private bool trockner21_entladen;
public bool Trockner21_Entladen
{
get { return trockner21_entladen; }
set
{
trockner21_entladen = value;
if (trockner21_entladen == true)
{
Trockner21_Beladen = Trockner22_Beladen = false;
Trockner2Entladen?.Invoke(this, EventArgs.Empty);
}
}
}
private bool trockner22_entladen;
public bool Trockner22_Entladen
{
get { return trockner22_entladen; }
set
{
trockner22_entladen = value;
if (trockner22_entladen == true)
{
Trockner22_Beladen = Trockner21_Beladen = false;
Trockner2Entladen?.Invoke(this, EventArgs.Empty);
}
}
}
private bool begleitzettel_ws2;
public bool Begleitzettel_WS2
{ get { return begleitzettel_ws2; }
set
{
begleitzettel_ws2 = value;
if (begleitzettel_ws2 == true)
{
BegleitzettelWS2_print?.Invoke(this, EventArgs.Empty);
}
}
}
private bool tischsummary_ws2;
public bool TischSummary_WS2
{ get { return tischsummary_ws2; }
set
{
tischsummary_ws2 = value;
if (tischsummary_ws2 == true) TischSummaryWS2_print?.Invoke(this, EventArgs.Empty);
}
}
/// <summary>
/// EVENTS
/// </summary>
//Waschstrasse 1
public event EventHandler WS1Transport;
public event EventHandler Presse1Leer;
//public event EventHandler Hubband1Leer;
public event EventHandler Trockner1Beladen;
public event EventHandler Trockner1Entladen;
public event EventHandler BegleitzettelWS1_print;
public event EventHandler TischSummaryWS1_print;
//Waschstrasse 2
public event EventHandler WS2Transport;
public event EventHandler Presse2Leer;
//public event EventHandler Hubband2Leer;
public event EventHandler Trockner2Beladen;
public event EventHandler Trockner2Entladen;
public event EventHandler BegleitzettelWS2_print;
public event EventHandler TischSummaryWS2_print;
}
}

28
Sortiment.cs Normal file
View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public class Sortiment
{
public Sortiment()
{
}
public Sortiment(string row, int nr)
{
if (nr == 0) return; //ERSTE ZEILE IGNORIEREN.
string[] zeileData = row.Split(';');
this.KundeNummer = zeileData[1];
this.ArtNr = Convert.ToInt32(zeileData[6]);
this.ArtName = zeileData[7];
}
public string KundeNummer { get; set; }
public int ArtNr { get; set; }
public string ArtName { get; set; }
}
}

207
Umsatz.cs Normal file
View File

@ -0,0 +1,207 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using static System.Net.Mime.MediaTypeNames;
namespace DatenDB
{
public class Umsatz
{
private const string COLUMNS = "umsatz_id, kunde_id, datum, betrag";
public const string SUBCOLUMNS = "kunde_id, date_part('year', datum) as jahr, sum(betrag) as betrag";
private const string TABLE = "kundenverwaltung.umsatz";
public Umsatz()
{
}
public int GetUmsatzID(int? kundeid, DateTime datum)
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select umsatz_id from {TABLE} where kunde_id = '{kundeid}' and datum = '{datum}'";
int result = 0;
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = reader.GetInt32(0);
reader.Close();
DatenbankConnection.GetConnection().Close();
return result;
}//IMPORT DATUM KEINE VERWENDUNG ODER
public static double GetUmsatz(int? id, int? year, int? month, int[] quartale)
{
DatenbankConnection.GetConnection().Open();
double umsatz = 0;
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (quartale == null || quartale.Length == 0)
{
if (id == null)
{
if (month <= 12) command.CommandText = $"select sum(betrag) from {TABLE} where date_part('year', datum) = {year} and date_part('month', datum) = {month}";
if (month == null || month == 0) command.CommandText = $"select sum(betrag) from {TABLE} where date_part('year', datum) = {year}";
}
else
{
command.CommandText = $"select sum(betrag) from {TABLE} where kunde_id = {id} and date_part('year', datum) = {year}";
}
}
else
{
if (id == null)
{
if (quartale.Length == 1) command.CommandText = $"select sum(betrag) from {TABLE} where date_part('year', datum) = {year} and date_part('quarter', datum) = {quartale[0]}";
if (quartale.Length == 2) command.CommandText = $"select sum(betrag) from {TABLE} where date_part('year', datum) = {year} and date_part('quarter', datum) between '{quartale[1]}' and '{quartale[0]}'";
if (quartale.Length == 3) command.CommandText = $"select sum(betrag) from {TABLE} where date_part('year', datum) = {year} and date_part('quarter', datum) between '{quartale[2]}' and '{quartale[0]}'";
if (quartale.Length == 4) command.CommandText = $"select sum(betrag) from {TABLE} where date_part('year', datum) = {year} and date_part('quarter', datum) between '{quartale[3]}' and '{quartale[0]}'";
}
else
{
command.CommandText = $"select sum(betrag) from {TABLE} where ";
//if (quartale.Length == 1) command.CommandText = $"select sum(betrag) from {TABLE} where kunde_id = {id} date_part('year', datum) = {year} and date_part('quarter', datum) = {quartale[0]}";
//if (quartale.Length == 2) command.CommandText = $"select sum(betrag) from {TABLE} where kunde_id = {id} date_part('year', datum) = {year} and date_part('quarter', datum) between '{quartale[1]}' and '{quartale[0]}'";
//if (quartale.Length == 3) command.CommandText = $"select sum(betrag) from {TABLE} where kunde_id = {id} and date_part('year', datum) = {year} and date_part('quarter', datum) between '{quartale[2]}' and '{quartale[0]}'";
//if (quartale.Length == 4) command.CommandText = $"select sum(betrag) from {TABLE} where kunde_id = {id} and date_part('year', datum) = {year} and date_part('quarter', datum) between '{quartale[3]}' and '{quartale[0]}'";
}
}
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) umsatz = reader.IsDBNull(0) ? 0 : reader.GetDouble(0);
reader.Close();
DatenbankConnection.GetConnection().Close();
return umsatz;
}
public Umsatz(NpgsqlDataReader reader, bool columns)
{
if (columns)
{
this.UmsatzID = reader.GetInt32(0);
this.KundeID = reader.GetInt32(1);
this.Datum = reader.GetDateTime(2);
this.Betrag = reader.IsDBNull(3) ? 0 : reader.GetDouble(3);
}
else
{
this.KundeID = reader.GetInt32(0);
this.Year = (int)reader.GetDouble(1);
this.Betrag = reader.IsDBNull(2) ? 0 : reader.GetDouble(2);
}
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (this.UmsatzID.HasValue & this.UmsatzID != 0)
{
command.CommandText = $"update {TABLE} set kunde_id = :p1, datum = :p2, betrag = :p3 WHERE umsatz_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.umsatz_seq')";
this.UmsatzID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2, :p3)";
}
command.Parameters.AddWithValue("p0", this.UmsatzID);
command.Parameters.AddWithValue("p1", this.KundeID);
command.Parameters.AddWithValue("p2", this.Datum);
command.Parameters.AddWithValue("p3", this.Betrag);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
public static List<string> GetJahre()
{
DatenbankConnection.GetConnection().Open();
List<string> resultList = new List<string>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select distinct date_part('year', datum) from {TABLE} where date_part('year', datum) is not null order by date_part('year', datum);";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(reader.GetDouble(0).ToString());
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
//public static double GetQUmsatz(int? kndid, int? aktjahr, int? monat, int? aktquartal, bool v, int vpjahr)
//{
// DatenbankConnection.GetConnection().Open();
// double umsatz = 0;
// NpgsqlCommand command = new NpgsqlCommand();
// command.Connection = DatenbankConnection.GetConnection();
// if (aktquartal == null || aktquartal == 0)
// {
// //command.CommandText = $"select sum(umsatz) as umsatz from kundenverwaltung.q_umsatz where kunde_id = {kndid} and jahr = {vpjahr}";
// }
// else
// {
// if (aktquartal == 4) command.CommandText = $"select umsatz from kundenverwaltung.jahresumsaetze where kunde_id = {kndid} and jahr = {vpjahr}";
// else command.CommandText = $"select umsatz from kundenverwaltung.q_umsatz where kunde_id = {kndid} and quartal = {aktquartal} and jahr = {vpjahr}";
// }
// NpgsqlDataReader reader = command.ExecuteReader();
// while (reader.Read()) umsatz = reader.IsDBNull(0) ? 0 : reader.GetDouble(0);
// reader.Close();
// DatenbankConnection.GetConnection().Close();
// return umsatz;
// }
public static List<Umsatz> GetList(int? aktjahr, int? monat, int? aktquartal, bool v, int vpjahr, int[] quartale)
{
DatenbankConnection.GetConnection().Open();
List<Umsatz> resultList = new List<Umsatz>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if(monat == null || monat == 0)
{
if(aktquartal == null || aktquartal == 0)
{
if (quartale == null || quartale.Length == 0)
{
command.CommandText = $"select {SUBCOLUMNS} from {TABLE} where date_part('year', datum) = {vpjahr} group by umsatz.kunde_id, date_part('year', datum)";
}
else
{
command.CommandText = $"select {SUBCOLUMNS} from {TABLE} where date_part('year', datum) = {vpjahr} and date_part('quarter', datum) between {quartale.Min()} and {quartale.Max()} group by umsatz.kunde_id, jahr";
}
}
else
{
if (aktquartal == 4) command.CommandText = $"select {SUBCOLUMNS} from {TABLE} where date_part('year', datum) = {vpjahr} group by umsatz.kunde_id, date_part('year', datum)";
else command.CommandText = $"select {SUBCOLUMNS} from {TABLE} where date_part('quarter', datum) = {aktquartal} and date_part('year', datum) = {vpjahr} group by umsatz.kunde_id, date_part('year', datum), date_part('quarter', datum)";
}
}
else command.CommandText = $"select {SUBCOLUMNS} from {TABLE} where date_part('month', datum) = {monat} and date_part('year', datum) = {vpjahr} group by umsatz.kunde_id, date_part('year', datum), date_part('month', datum)";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Umsatz(reader, false));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public int? UmsatzID { get; set; }
public int? KundeID { get; set; }
public DateTime Datum { get; set; }
public double Betrag { get; set; }
public int Year { get; set; }
}
}

51
Views.cs Normal file
View File

@ -0,0 +1,51 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DatenDB
{
public class Views
{
public Views() { }
public static List<Views> GetArtikel_sthList()
{
DatenbankConnection.GetConnection().Open();
List<Views> resultList = new List<Views>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"SELECT * FROM kundenverwaltung.artikel_sth";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Views(reader, 1));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public Views(NpgsqlDataReader reader, int i)
{
if (i == 1)
{
this.AuftragID = reader.GetInt32(0);
this.AuftragArtikelID = reader.GetInt32(1);
this.KundeID = reader.GetInt32(2);
this.KundeName = reader.GetString(3);
this.ArtikelName = reader.GetString(4);
this.Anzahl = reader.GetInt32(5);
this.Erledigt = reader.GetBoolean(6);
}
}
public int AuftragID { get; set; }
public int AuftragArtikelID { get; set; }
public int KundeID { get; set; }
public string KundeName { get; set; }
public string ArtikelName { get; set; }
public int Anzahl { get; set; }
public bool Erledigt { get; set; }
}
}

70
WProgramm.cs Normal file
View File

@ -0,0 +1,70 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
namespace DatenDB
{
public class WProgramm
{
private static string TABLE = "kundenverwaltung.wprogramm";
private static string COLUMNS = "wprogramm_id, nummer, bezeichnung";
public WProgramm()
{
}
public static List<WProgramm> GetList()
{
DatenbankConnection.GetConnection().Open();
List<WProgramm> resultList = new List<WProgramm>();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select {COLUMNS} from {TABLE} order by nummer";
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new WProgramm(reader));
reader.Close();
DatenbankConnection.GetConnection().Close();
return resultList;
}
public WProgramm(NpgsqlDataReader reader)
{
this.WprogrammID = reader.GetInt16(0);
this.Nummer = reader.GetInt16(1);
this.Bezeichnung = reader.IsDBNull(2) ? string.Empty : reader.GetString(2);
}
public int Save()
{
DatenbankConnection.GetConnection().Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection();
if (this.WprogrammID.HasValue & this.WprogrammID != 0)
{
command.CommandText = $"update {TABLE} set nummer = :p1, bezeichnung = :p2 WHERE wprogramm_id = :p0";
}
else
{
command.CommandText = "select nextval('kundenverwaltung.wprogramm_seq')";
this.WprogrammID = (int)(long)command.ExecuteScalar();
command.CommandText = $"insert into {TABLE} ({COLUMNS}) values (:p0, :p1, :p2)";
}
command.Parameters.AddWithValue("p0", this.WprogrammID);
command.Parameters.AddWithValue("p1", (int)this.Nummer);
command.Parameters.AddWithValue("p2", string.IsNullOrEmpty(this.Bezeichnung) ? (object)DBNull.Value : this.Bezeichnung);
int result = command.ExecuteNonQuery();
DatenbankConnection.GetConnection().Close();
return result;
}
public int? WprogrammID { get; set; }
public int Nummer { get; set; }
public string Bezeichnung { get; set; }
}
}

View File

@ -1,6 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AForge" version="2.2.5" targetFramework="net48" />
<package id="AForge.Video" version="2.2.5" targetFramework="net48" />
<package id="AForge.Video.DirectShow" version="2.2.5" targetFramework="net48" />
<package id="HarfBuzzSharp" version="8.3.0.1" targetFramework="net48" />
<package id="HarfBuzzSharp.NativeAssets.macOS" version="8.3.1.3-preview.1" targetFramework="net48" />
<package id="HarfBuzzSharp.NativeAssets.Win32" version="8.3.0.1" targetFramework="net48" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="9.0.0" targetFramework="net48" />
<package id="Microsoft.Bcl.HashCode" version="6.0.0" targetFramework="net48" />
<package id="Microsoft.Extensions.Logging.Abstractions" version="6.0.0" targetFramework="net48" />
<package id="Npgsql" version="4.1.14" targetFramework="net48" />
<package id="ObjectListView.Updated" version="2.9.3" targetFramework="net48" />
<package id="Spire.Barcode" version="7.3.5" targetFramework="net48" />
<package id="ZXing.Net" version="0.16.9" targetFramework="net48" />
<package id="Spire.Barcode" version="7.4.1" targetFramework="net48" />
<package id="System.Buffers" version="4.6.1" targetFramework="net48" />
<package id="System.Collections.Immutable" version="9.0.0" targetFramework="net48" />
<package id="System.Diagnostics.DiagnosticSource" version="9.0.0" targetFramework="net48" />
<package id="System.IO.Pipelines" version="9.0.0" targetFramework="net48" />
<package id="System.Memory" version="4.6.3" targetFramework="net48" />
<package id="System.Numerics.Vectors" version="4.6.1" targetFramework="net48" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.1.2" targetFramework="net48" />
<package id="System.Text.Encodings.Web" version="9.0.0" targetFramework="net48" />
<package id="System.Text.Json" version="9.0.0" targetFramework="net48" />
<package id="System.Threading.Channels" version="9.0.0" targetFramework="net48" />
<package id="System.Threading.Tasks.Extensions" version="4.6.3" targetFramework="net48" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net48" />
<package id="ZXing.Net" version="0.16.11" targetFramework="net48" />
</packages>