FormMain - Buttons hinzugefügt für Inventur und Standveraenderung.

This commit is contained in:
Kilian Wirl 2025-12-19 11:24:16 +01:00
parent a8c785fd41
commit e2f0d9b410
8 changed files with 232 additions and 132 deletions

View File

@ -414,7 +414,7 @@ namespace Deckungsbeitrag
} }
private void buttonNeuerAuftrag_Click(object sender, EventArgs e) private void buttonNeuerAuftrag_Click(object sender, EventArgs e)
{ {
FormNeuerAuftrag neuerAuftrag = new FormNeuerAuftrag(benutzer, this.letzterLiefertag); FormNeuerAuftrag neuerAuftrag = new FormNeuerAuftrag(benutzer, this.letzterLiefertag, AuftragTyp.Standart);
if (neuerAuftrag.ShowDialog() == DialogResult.OK) if (neuerAuftrag.ShowDialog() == DialogResult.OK)
{ {
this.letzterLiefertag = neuerAuftrag.letzterLiefertag; this.letzterLiefertag = neuerAuftrag.letzterLiefertag;
@ -953,6 +953,7 @@ namespace Deckungsbeitrag
} }
//CHANGES: Wenn Auftrag als Vorbereitet markiert wird, wird nachgefragt ob die Aufgabe erledigt wurde. //CHANGES: Wenn Auftrag als Vorbereitet markiert wird, wird nachgefragt ob die Aufgabe erledigt wurde.
//CHANGES: Wenn saubere Container sind 0 kann Auftrag nicht als Vorbereitet markiert werden. (Damit die Statistik stimmt) //CHANGES: Wenn saubere Container sind 0 kann Auftrag nicht als Vorbereitet markiert werden. (Damit die Statistik stimmt)
//CHANGES: Es werden jetzt Meldungen gezeigt damit Aufgaben erledigt und Containeranzahl zuverlässig stimmt.
//DONE: Spalten besser erkennbar gestalten damit Mirka die Spalte trifft wenn RechtsClick. //DONE: Spalten besser erkennbar gestalten damit Mirka die Spalte trifft wenn RechtsClick.
//DONE: Aufgabe wird bei "Vorbereiten ohne Etikett" verarbeitet. //DONE: Aufgabe wird bei "Vorbereiten ohne Etikett" verarbeitet.
//DONE: Auftrag als Vorbereitet markieren geht nur wenn saubere Container nicht 0 sind. //DONE: Auftrag als Vorbereitet markieren geht nur wenn saubere Container nicht 0 sind.

View File

@ -72,7 +72,7 @@ namespace Deckungsbeitrag
} }
if(this.type_of_list == (int)Listentyp.Kundenliste) if(this.type_of_list == (int)Listentyp.Kundenliste)
{ {
this.Kundenliste = objliste.OfType<Kunde>().GroupBy(k => k.KundeID).Select(g => g.First()).ToList(); if (objliste != null) this.Kundenliste = objliste.OfType<Kunde>().GroupBy(k => k.KundeID).Select(g => g.First()).ToList();
} }
} }
#endregion #endregion
@ -118,7 +118,7 @@ namespace Deckungsbeitrag
} }
//KUNDEN LADEN //KUNDEN LADEN
this.Text = "KUNDE WÄHLEN"; this.Text = "KUNDE WÄHLEN";
if (this.Kundenliste == null) this.Kundenliste = Kunde.GetTmpList(textBoxKunde.Text); if (this.Kundenliste == null) this.Kundenliste = Kunde.GetTmpList(string.Empty);
foreach (Kunde kunde in this.Kundenliste) foreach (Kunde kunde in this.Kundenliste)
{ {
ListViewItem item = new ListViewItem(); ListViewItem item = new ListViewItem();
@ -225,7 +225,7 @@ namespace Deckungsbeitrag
private void TextBoxKunde_Enter(object sender, EventArgs e) private void TextBoxKunde_Enter(object sender, EventArgs e)
{ {
this.textBoxKunde.ForeColor = Color.Black; this.textBoxKunde.ForeColor = Color.Black;
this.textBoxKunde.Clear();
//GetKeyboard(); //GetKeyboard();
} }
private void textBoxKunde_TextChanged(object sender, EventArgs e) private void textBoxKunde_TextChanged(object sender, EventArgs e)
@ -241,7 +241,7 @@ namespace Deckungsbeitrag
// Wenn kein Fragezeichen am Anfang wird Kundenliste erstellt. // Wenn kein Fragezeichen am Anfang wird Kundenliste erstellt.
if (!textBoxKunde.Text.StartsWith("?")) if (!textBoxKunde.Text.StartsWith("?"))
{ {
if(this.Kundenliste == null) this.Kundenliste = Kunde.GetTmpList(this.textBoxKunde.Text); this.Kundenliste = Kunde.GetTmpList(this.textBoxKunde.Text);
listViewKunde_Load(); listViewKunde_Load();
} }

View File

@ -46,6 +46,7 @@ namespace Deckungsbeitrag
this.tSBEinstellung = new System.Windows.Forms.ToolStripButton(); this.tSBEinstellung = new System.Windows.Forms.ToolStripButton();
this.toolStripBeenden = new System.Windows.Forms.ToolStripButton(); this.toolStripBeenden = new System.Windows.Forms.ToolStripButton();
this.panelMain = new System.Windows.Forms.Panel(); this.panelMain = new System.Windows.Forms.Panel();
this.buttonNeueAufgabe = new System.Windows.Forms.Button();
this.buttonNeuerUser = new System.Windows.Forms.Button(); this.buttonNeuerUser = new System.Windows.Forms.Button();
this.groupBoxStatistik = new System.Windows.Forms.GroupBox(); this.groupBoxStatistik = new System.Windows.Forms.GroupBox();
this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker(); this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
@ -84,7 +85,8 @@ namespace Deckungsbeitrag
this.textBoxScannTest = new System.Windows.Forms.TextBox(); this.textBoxScannTest = new System.Windows.Forms.TextBox();
this.buttonScannTest = new System.Windows.Forms.Button(); this.buttonScannTest = new System.Windows.Forms.Button();
this.labelScannTest = new System.Windows.Forms.Label(); this.labelScannTest = new System.Windows.Forms.Label();
this.buttonNeueAufgabe = new System.Windows.Forms.Button(); this.buttonNeueInventur = new System.Windows.Forms.Button();
this.buttonNeuerStand = new System.Windows.Forms.Button();
this.toolStripMenu.SuspendLayout(); this.toolStripMenu.SuspendLayout();
this.panelMain.SuspendLayout(); this.panelMain.SuspendLayout();
this.groupBoxStatistik.SuspendLayout(); this.groupBoxStatistik.SuspendLayout();
@ -400,16 +402,18 @@ namespace Deckungsbeitrag
// //
this.panelMain.AllowDrop = true; this.panelMain.AllowDrop = true;
this.panelMain.BackColor = System.Drawing.Color.White; this.panelMain.BackColor = System.Drawing.Color.White;
this.panelMain.Controls.Add(this.buttonNeuerStand);
this.panelMain.Controls.Add(this.buttonNeueInventur);
this.panelMain.Controls.Add(this.buttonNeueAufgabe); this.panelMain.Controls.Add(this.buttonNeueAufgabe);
this.panelMain.Controls.Add(this.buttonNeuerAuftrag);
this.panelMain.Controls.Add(this.buttonNeuerUser); this.panelMain.Controls.Add(this.buttonNeuerUser);
this.panelMain.Controls.Add(this.groupBoxStatistik); this.panelMain.Controls.Add(this.groupBoxStatistik);
this.panelMain.Controls.Add(this.groupBoxUpdate); this.panelMain.Controls.Add(this.groupBoxUpdate);
this.panelMain.Controls.Add(this.buttonNeuerAuftrag);
this.panelMain.Controls.Add(this.groupBoxAuftrag); this.panelMain.Controls.Add(this.groupBoxAuftrag);
this.panelMain.Controls.Add(this.groupBoxScannTest); this.panelMain.Controls.Add(this.groupBoxScannTest);
this.panelMain.Dock = System.Windows.Forms.DockStyle.Right; this.panelMain.Dock = System.Windows.Forms.DockStyle.Right;
this.panelMain.Location = new System.Drawing.Point(218, 0); this.panelMain.Location = new System.Drawing.Point(218, 0);
this.panelMain.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.panelMain.Margin = new System.Windows.Forms.Padding(2);
this.panelMain.Name = "panelMain"; this.panelMain.Name = "panelMain";
this.panelMain.Size = new System.Drawing.Size(938, 689); this.panelMain.Size = new System.Drawing.Size(938, 689);
this.panelMain.TabIndex = 5; this.panelMain.TabIndex = 5;
@ -417,6 +421,27 @@ namespace Deckungsbeitrag
this.panelMain.DragEnter += new System.Windows.Forms.DragEventHandler(this.panelMain_DragEnter); this.panelMain.DragEnter += new System.Windows.Forms.DragEventHandler(this.panelMain_DragEnter);
this.panelMain.Paint += new System.Windows.Forms.PaintEventHandler(this.panelMain_Paint); this.panelMain.Paint += new System.Windows.Forms.PaintEventHandler(this.panelMain_Paint);
// //
// buttonNeueAufgabe
//
this.buttonNeueAufgabe.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128)))));
this.buttonNeueAufgabe.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.buttonNeueAufgabe.FlatAppearance.BorderSize = 0;
this.buttonNeueAufgabe.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonNeueAufgabe.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonNeueAufgabe.ForeColor = System.Drawing.Color.Black;
this.buttonNeueAufgabe.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.buttonNeueAufgabe.Location = new System.Drawing.Point(8, 107);
this.buttonNeueAufgabe.Margin = new System.Windows.Forms.Padding(5);
this.buttonNeueAufgabe.Name = "buttonNeueAufgabe";
this.buttonNeueAufgabe.Size = new System.Drawing.Size(250, 41);
this.buttonNeueAufgabe.TabIndex = 63;
this.buttonNeueAufgabe.Text = "Neue Aufgabe";
this.buttonNeueAufgabe.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.buttonNeueAufgabe.UseVisualStyleBackColor = false;
this.buttonNeueAufgabe.Click += new System.EventHandler(this.buttonNeueAufgabe_Click);
this.buttonNeueAufgabe.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonNeueAufgabe.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Button_MouseMove);
//
// buttonNeuerUser // buttonNeuerUser
// //
this.buttonNeuerUser.BackColor = System.Drawing.Color.Yellow; this.buttonNeuerUser.BackColor = System.Drawing.Color.Yellow;
@ -426,10 +451,10 @@ namespace Deckungsbeitrag
this.buttonNeuerUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.buttonNeuerUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonNeuerUser.ForeColor = System.Drawing.Color.Black; this.buttonNeuerUser.ForeColor = System.Drawing.Color.Black;
this.buttonNeuerUser.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonNeuerUser.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.buttonNeuerUser.Location = new System.Drawing.Point(8, 65); this.buttonNeuerUser.Location = new System.Drawing.Point(8, 56);
this.buttonNeuerUser.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.buttonNeuerUser.Margin = new System.Windows.Forms.Padding(5);
this.buttonNeuerUser.Name = "buttonNeuerUser"; this.buttonNeuerUser.Name = "buttonNeuerUser";
this.buttonNeuerUser.Size = new System.Drawing.Size(200, 41); this.buttonNeuerUser.Size = new System.Drawing.Size(250, 41);
this.buttonNeuerUser.TabIndex = 62; this.buttonNeuerUser.TabIndex = 62;
this.buttonNeuerUser.Text = "Neuer User"; this.buttonNeuerUser.Text = "Neuer User";
this.buttonNeuerUser.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.buttonNeuerUser.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
@ -696,7 +721,7 @@ namespace Deckungsbeitrag
this.buttonSortimentUpdate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.buttonSortimentUpdate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonSortimentUpdate.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonSortimentUpdate.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.buttonSortimentUpdate.Location = new System.Drawing.Point(2, 32); this.buttonSortimentUpdate.Location = new System.Drawing.Point(2, 32);
this.buttonSortimentUpdate.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.buttonSortimentUpdate.Margin = new System.Windows.Forms.Padding(2);
this.buttonSortimentUpdate.Name = "buttonSortimentUpdate"; this.buttonSortimentUpdate.Name = "buttonSortimentUpdate";
this.buttonSortimentUpdate.Size = new System.Drawing.Size(137, 24); this.buttonSortimentUpdate.Size = new System.Drawing.Size(137, 24);
this.buttonSortimentUpdate.TabIndex = 61; this.buttonSortimentUpdate.TabIndex = 61;
@ -711,7 +736,7 @@ namespace Deckungsbeitrag
this.buttonArtikelUpdate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.buttonArtikelUpdate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonArtikelUpdate.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonArtikelUpdate.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.buttonArtikelUpdate.Location = new System.Drawing.Point(2, 2); this.buttonArtikelUpdate.Location = new System.Drawing.Point(2, 2);
this.buttonArtikelUpdate.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.buttonArtikelUpdate.Margin = new System.Windows.Forms.Padding(2);
this.buttonArtikelUpdate.Name = "buttonArtikelUpdate"; this.buttonArtikelUpdate.Name = "buttonArtikelUpdate";
this.buttonArtikelUpdate.Size = new System.Drawing.Size(137, 24); this.buttonArtikelUpdate.Size = new System.Drawing.Size(137, 24);
this.buttonArtikelUpdate.TabIndex = 59; this.buttonArtikelUpdate.TabIndex = 59;
@ -734,7 +759,7 @@ namespace Deckungsbeitrag
this.buttonAllUpdate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.buttonAllUpdate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonAllUpdate.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonAllUpdate.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.buttonAllUpdate.Location = new System.Drawing.Point(2, 62); this.buttonAllUpdate.Location = new System.Drawing.Point(2, 62);
this.buttonAllUpdate.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.buttonAllUpdate.Margin = new System.Windows.Forms.Padding(2);
this.buttonAllUpdate.Name = "buttonAllUpdate"; this.buttonAllUpdate.Name = "buttonAllUpdate";
this.buttonAllUpdate.Size = new System.Drawing.Size(137, 25); this.buttonAllUpdate.Size = new System.Drawing.Size(137, 25);
this.buttonAllUpdate.TabIndex = 60; this.buttonAllUpdate.TabIndex = 60;
@ -752,10 +777,10 @@ namespace Deckungsbeitrag
this.buttonNeuerAuftrag.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.buttonNeuerAuftrag.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonNeuerAuftrag.ForeColor = System.Drawing.Color.White; this.buttonNeuerAuftrag.ForeColor = System.Drawing.Color.White;
this.buttonNeuerAuftrag.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonNeuerAuftrag.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.buttonNeuerAuftrag.Location = new System.Drawing.Point(8, 9); this.buttonNeuerAuftrag.Location = new System.Drawing.Point(8, 5);
this.buttonNeuerAuftrag.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.buttonNeuerAuftrag.Margin = new System.Windows.Forms.Padding(5);
this.buttonNeuerAuftrag.Name = "buttonNeuerAuftrag"; this.buttonNeuerAuftrag.Name = "buttonNeuerAuftrag";
this.buttonNeuerAuftrag.Size = new System.Drawing.Size(200, 41); this.buttonNeuerAuftrag.Size = new System.Drawing.Size(250, 41);
this.buttonNeuerAuftrag.TabIndex = 56; this.buttonNeuerAuftrag.TabIndex = 56;
this.buttonNeuerAuftrag.Text = "Neuer Auftrag"; this.buttonNeuerAuftrag.Text = "Neuer Auftrag";
this.buttonNeuerAuftrag.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.buttonNeuerAuftrag.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
@ -891,7 +916,7 @@ namespace Deckungsbeitrag
this.buttonAufAbruf.ForeColor = System.Drawing.Color.White; this.buttonAufAbruf.ForeColor = System.Drawing.Color.White;
this.buttonAufAbruf.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonAufAbruf.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.buttonAufAbruf.Location = new System.Drawing.Point(10, 215); this.buttonAufAbruf.Location = new System.Drawing.Point(10, 215);
this.buttonAufAbruf.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.buttonAufAbruf.Margin = new System.Windows.Forms.Padding(2);
this.buttonAufAbruf.Name = "buttonAufAbruf"; this.buttonAufAbruf.Name = "buttonAufAbruf";
this.buttonAufAbruf.Size = new System.Drawing.Size(150, 41); this.buttonAufAbruf.Size = new System.Drawing.Size(150, 41);
this.buttonAufAbruf.TabIndex = 56; this.buttonAufAbruf.TabIndex = 56;
@ -911,7 +936,7 @@ namespace Deckungsbeitrag
this.buttonAusgeliefert.ForeColor = System.Drawing.Color.White; this.buttonAusgeliefert.ForeColor = System.Drawing.Color.White;
this.buttonAusgeliefert.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonAusgeliefert.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.buttonAusgeliefert.Location = new System.Drawing.Point(10, 170); this.buttonAusgeliefert.Location = new System.Drawing.Point(10, 170);
this.buttonAusgeliefert.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.buttonAusgeliefert.Margin = new System.Windows.Forms.Padding(2);
this.buttonAusgeliefert.Name = "buttonAusgeliefert"; this.buttonAusgeliefert.Name = "buttonAusgeliefert";
this.buttonAusgeliefert.Size = new System.Drawing.Size(150, 41); this.buttonAusgeliefert.Size = new System.Drawing.Size(150, 41);
this.buttonAusgeliefert.TabIndex = 55; this.buttonAusgeliefert.TabIndex = 55;
@ -978,26 +1003,47 @@ namespace Deckungsbeitrag
this.labelScannTest.Text = "label1"; this.labelScannTest.Text = "label1";
this.labelScannTest.Visible = false; this.labelScannTest.Visible = false;
// //
// buttonNeueAufgabe // buttonNeueInventur
// //
this.buttonNeueAufgabe.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); this.buttonNeueInventur.BackColor = System.Drawing.Color.Green;
this.buttonNeueAufgabe.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); this.buttonNeueInventur.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.buttonNeueAufgabe.FlatAppearance.BorderSize = 0; this.buttonNeueInventur.FlatAppearance.BorderSize = 0;
this.buttonNeueAufgabe.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.buttonNeueInventur.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonNeueAufgabe.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.buttonNeueInventur.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonNeueAufgabe.ForeColor = System.Drawing.Color.Black; this.buttonNeueInventur.ForeColor = System.Drawing.Color.White;
this.buttonNeueAufgabe.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.buttonNeueInventur.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.buttonNeueAufgabe.Location = new System.Drawing.Point(8, 124); this.buttonNeueInventur.Location = new System.Drawing.Point(268, 5);
this.buttonNeueAufgabe.Margin = new System.Windows.Forms.Padding(2); this.buttonNeueInventur.Margin = new System.Windows.Forms.Padding(5);
this.buttonNeueAufgabe.Name = "buttonNeueAufgabe"; this.buttonNeueInventur.Name = "buttonNeueInventur";
this.buttonNeueAufgabe.Size = new System.Drawing.Size(200, 41); this.buttonNeueInventur.Size = new System.Drawing.Size(250, 41);
this.buttonNeueAufgabe.TabIndex = 63; this.buttonNeueInventur.TabIndex = 64;
this.buttonNeueAufgabe.Text = "Neue Aufgabe"; this.buttonNeueInventur.Text = "Neue Inventur";
this.buttonNeueAufgabe.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.buttonNeueInventur.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.buttonNeueAufgabe.UseVisualStyleBackColor = false; this.buttonNeueInventur.UseVisualStyleBackColor = false;
this.buttonNeueAufgabe.Click += new System.EventHandler(this.buttonNeueAufgabe_Click); this.buttonNeueInventur.Click += new System.EventHandler(this.buttonNeueInventur_Click);
this.buttonNeueAufgabe.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown); this.buttonNeueInventur.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonNeueAufgabe.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Button_MouseMove); this.buttonNeueInventur.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Button_MouseMove);
//
// buttonNeuerStand
//
this.buttonNeuerStand.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(0)))));
this.buttonNeuerStand.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.buttonNeuerStand.FlatAppearance.BorderSize = 0;
this.buttonNeuerStand.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonNeuerStand.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonNeuerStand.ForeColor = System.Drawing.Color.White;
this.buttonNeuerStand.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.buttonNeuerStand.Location = new System.Drawing.Point(528, 5);
this.buttonNeuerStand.Margin = new System.Windows.Forms.Padding(5);
this.buttonNeuerStand.Name = "buttonNeuerStand";
this.buttonNeuerStand.Size = new System.Drawing.Size(250, 41);
this.buttonNeuerStand.TabIndex = 65;
this.buttonNeuerStand.Text = "Neue Standveränderung";
this.buttonNeuerStand.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.buttonNeuerStand.UseVisualStyleBackColor = false;
this.buttonNeuerStand.Click += new System.EventHandler(this.buttonNeuerStand_Click);
this.buttonNeuerStand.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown);
this.buttonNeuerStand.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Button_MouseMove);
// //
// FormMain // FormMain
// //
@ -1009,7 +1055,7 @@ namespace Deckungsbeitrag
this.Controls.Add(this.panelMain); this.Controls.Add(this.panelMain);
this.HelpButton = true; this.HelpButton = true;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "FormMain"; this.Name = "FormMain";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Wolfgang Wirl GmbH - GRUNDPROGRAMM"; this.Text = "Wolfgang Wirl GmbH - GRUNDPROGRAMM";
@ -1094,6 +1140,8 @@ namespace Deckungsbeitrag
private System.Windows.Forms.DateTimePicker dateTimePicker1; private System.Windows.Forms.DateTimePicker dateTimePicker1;
private System.Windows.Forms.Button buttonNeuerUser; private System.Windows.Forms.Button buttonNeuerUser;
private System.Windows.Forms.Button buttonNeueAufgabe; private System.Windows.Forms.Button buttonNeueAufgabe;
private System.Windows.Forms.Button buttonNeueInventur;
private System.Windows.Forms.Button buttonNeuerStand;
} }
} }

View File

@ -47,7 +47,8 @@ namespace Deckungsbeitrag
public FormMain(Benutzer benutzer) : this() public FormMain(Benutzer benutzer) : this()
{ {
this.benutzer = benutzer; this.benutzer = benutzer;
//AKTIVE ELEMENTE JE BENUTZER ROLLE
// AKTIVE ELEMENTE JE BENUTZER ROLLE
switch (benutzer.Rolle) switch (benutzer.Rolle)
{ {
case BenutzerRolle.Verwaltung: case BenutzerRolle.Verwaltung:
@ -55,12 +56,21 @@ namespace Deckungsbeitrag
this.groupBoxUpdate.Visible = this.toolStripDB.Visible = this.toolStripButtonImport.Visible = this.tSBExpedit.Enabled = false; this.groupBoxUpdate.Visible = this.toolStripDB.Visible = this.toolStripButtonImport.Visible = this.tSBExpedit.Enabled = false;
break; break;
case BenutzerRolle.Fahrer: case BenutzerRolle.Fahrer:
// ToolStripButtons werden deaktiviert.
foreach(ToolStripButton tsb in this.toolStripMenu.Items) foreach(ToolStripButton tsb in this.toolStripMenu.Items)
{ {
// Ausgewählter ToolStripButton bleibt aktiv.
if(!tsb.Name.Contains("Auftrag")) tsb.Enabled = false; if(!tsb.Name.Contains("Auftrag")) tsb.Enabled = false;
} }
this.groupBoxStatistik.Enabled = this.buttonNeueAufgabe.Enabled = this.buttonNeuerUser.Enabled = false;
this.groupBoxStatistik.Visible = this.buttonNeueAufgabe.Visible = this.buttonNeuerUser.Visible = this.groupBoxUpdate.Visible = false; // Controls im PanelMain werden deaktiviert.
foreach(Control ctr in this.panelMain.Controls)
{
// Ausgewählte Buttons bleiben aktiv.
if (ctr.Text == "Neuer Auftrag") ctr.Enabled = ctr.Visible = true;
else ctr.Enabled = ctr.Visible = false;
}
break; break;
case BenutzerRolle.Admin: case BenutzerRolle.Admin:
this.groupBoxUpdate.Visible = false; this.groupBoxUpdate.Visible = false;
@ -94,7 +104,7 @@ namespace Deckungsbeitrag
if (ctr.GetType() == typeof(GroupBox)) if (ctr.GetType() == typeof(GroupBox))
{ {
GroupBox gb = (GroupBox)ctr; GroupBox gb = (GroupBox)ctr;
if(!gb.Name.Contains("Update") & !gb.Name.Contains("Statistik")) if(!gb.Name.Contains("Update") & !gb.Name.Contains("Statistik") & !gb.Name.Contains("Neuer"))
{ {
gb.Visible = false; gb.Visible = false;
gb.Location = new Point(0, 0); gb.Location = new Point(0, 0);
@ -263,7 +273,7 @@ namespace Deckungsbeitrag
/// <param name="e"></param> /// <param name="e"></param>
private void buttonNeuerAuftrag_Click(object sender, EventArgs e) private void buttonNeuerAuftrag_Click(object sender, EventArgs e)
{ {
FormNeuerAuftrag neuerAuftrag = new FormNeuerAuftrag(this.benutzer); neuerAuftrag.ShowDialog(); FormNeuerAuftrag neuerAuftrag = new FormNeuerAuftrag(this.benutzer, AuftragTyp.Standart); neuerAuftrag.ShowDialog();
} }
private void buttonScannTest_Click(object sender, EventArgs e) private void buttonScannTest_Click(object sender, EventArgs e)
{ {
@ -271,6 +281,36 @@ namespace Deckungsbeitrag
int pos = s.IndexOf('#'); int pos = s.IndexOf('#');
this.textBoxScannTest.Text = this.labelScannTest.Text = s.Substring(pos + 1); this.textBoxScannTest.Text = this.labelScannTest.Text = s.Substring(pos + 1);
} }
private void buttonNeueAufgabe_Click(object sender, EventArgs e)
{
FormNeueAufgabe neueAufgabe = new FormNeueAufgabe();
neueAufgabe.ShowDialog();
}
private void buttonNeuerStand_Click(object sender, EventArgs e)
{
FormNeuerAuftrag neuerAuftrag;
DialogResult result = meldung.GetFrage(this, "Möchtest du eine Standverminderung oder Standerhöhung erstellen? \n\n [JA = Standverminerung | NEIN = Standerhöhung]", true);
switch (result)
{
case DialogResult.Cancel:
return;
case DialogResult.Yes:
neuerAuftrag = new FormNeuerAuftrag(this.benutzer, AuftragTyp.Standverminderung); neuerAuftrag.ShowDialog();
break;
case DialogResult.No:
neuerAuftrag = new FormNeuerAuftrag(this.benutzer, AuftragTyp.Standerhöhung); neuerAuftrag.ShowDialog();
break;
default:
break;
}
}
private void buttonNeueInventur_Click(object sender, EventArgs e)
{
FormNeuerAuftrag neuerAuftrag = new FormNeuerAuftrag(this.benutzer, AuftragTyp.Inventur); neuerAuftrag.ShowDialog();
}
/// <summary> /// <summary>
/// Scan QR-Code Test. /// Scan QR-Code Test.
@ -982,14 +1022,9 @@ namespace Deckungsbeitrag
} }
} }
private void buttonNeueAufgabe_Click(object sender, EventArgs e)
{
FormNeueAufgabe neueAufgabe = new FormNeueAufgabe();
neueAufgabe.ShowDialog();
}
} }
} }
//DONE: Wenn Fahrer registriert kann nur NeuerAuftrag aufgerufen werden. Dort kann er Aufträge erstellen mit dem Status "Abgeholt" (Wichtig für Auftragauswahl bei Waschstraße)
//DONE: Wenn Fahrer Auftragverwaltung öffnet werden Aufträge mit AuftragStatus "Fertig" angezeigt. Fahrer können dann als "Ausgeliefert" markieren.
//CHANGES: Fahrer können abgeholte Aufträge erstellen und ausgelieferte Aufträge markieren. //CHANGES: Fahrer können abgeholte Aufträge erstellen und ausgelieferte Aufträge markieren.
//CHANGES: Auftragverwaltung Spalten wurden aktualisiert. Mit Icons, Buttons und Sortierung auf Liefertag. //CHANGES: Auftragverwaltung Spalten wurden aktualisiert. Mit Icons, Buttons und Sortierung auf Liefertag.
//DONE: 2 neue Buttons für "Neue Inventur" und "Neue Standveränderung"
//DONE: Bei Fahrer neue Deaktivierung von Controls.

View File

@ -20,6 +20,7 @@ namespace Deckungsbeitrag
{ {
public partial class FormNeuerAuftrag : Form public partial class FormNeuerAuftrag : Form
{ {
#region Properties
public Meldungen meldung = new Meldungen(); public Meldungen meldung = new Meldungen();
public Kunde kunde; public Kunde kunde;
public Auftrag Auftrag; public Auftrag Auftrag;
@ -34,7 +35,10 @@ namespace Deckungsbeitrag
private Kunde knd; private Kunde knd;
public DataGridViewCell aktivCell; public DataGridViewCell aktivCell;
private string userid; private string userid;
private AuftragTyp auftragtyp = AuftragTyp.Standart;
#endregion
#region Form-Konstruktor
public FormNeuerAuftrag() public FormNeuerAuftrag()
{ {
InitializeComponent(); InitializeComponent();
@ -44,7 +48,11 @@ namespace Deckungsbeitrag
this.benutzer = benutzer; this.benutzer = benutzer;
} }
public FormNeuerAuftrag(Benutzer benutzer, DateTime? letzterLiefertag) : this(benutzer) public FormNeuerAuftrag(Benutzer benutzer, AuftragTyp auftragTyp) : this(benutzer)
{
this.auftragtyp = auftragTyp;
}
public FormNeuerAuftrag(Benutzer benutzer, DateTime? letzterLiefertag, AuftragTyp auftragTyp) : this(benutzer, auftragTyp)
{ {
this.letzterLiefertag = letzterLiefertag; this.letzterLiefertag = letzterLiefertag;
} }
@ -54,7 +62,7 @@ namespace Deckungsbeitrag
if (userid.Contains("wstrasse01")) this.benutzer = Benutzer.GetBenutzer("ws1", null); if (userid.Contains("wstrasse01")) this.benutzer = Benutzer.GetBenutzer("ws1", null);
if (userid.Contains("wstrasse02")) this.benutzer = Benutzer.GetBenutzer("ws2", null); if (userid.Contains("wstrasse02")) this.benutzer = Benutzer.GetBenutzer("ws2", null);
} }
#endregion
private void FormNeuerAuftrag_Load(object sender, EventArgs e) private void FormNeuerAuftrag_Load(object sender, EventArgs e)
{ {
// SortimentListe holen // SortimentListe holen
@ -63,7 +71,7 @@ namespace Deckungsbeitrag
// Kunde holen // Kunde holen
this.kunde = Funktionen.KundenAuswahl(); this.kunde = Funktionen.KundenAuswahl();
// ComboBox Laden unbeding vor Daten Laden. // ComboBox AuftragTyp wird geladen und richtiges Item selected.
comboBox_Load(); comboBox_Load();
// Falls KundenAuswahl null liefert wird Form geschlossen oder wenn Waschstrasse neu geladen. // Falls KundenAuswahl null liefert wird Form geschlossen oder wenn Waschstrasse neu geladen.
@ -85,34 +93,6 @@ namespace Deckungsbeitrag
// RadioButtons und ComboBoxen laden. // RadioButtons und ComboBoxen laden.
if(this.kunde != null) Funktionen.Get_RadioButtons(this); if(this.kunde != null) Funktionen.Get_RadioButtons(this);
//Unterscheidung zwischen BenutzerRollen. Verschiedene Controls werden gesperrt, angezeigt oder verändert
if (this.benutzer != null)
{
if (this.benutzer.Rolle == BenutzerRolle.Verwaltung || this.benutzer.Rolle == BenutzerRolle.Admin || this.benutzer.Rolle == BenutzerRolle.Master)
{
if((AuftragTyp)comboBoxTyp.SelectedItem != AuftragTyp.Geschäft)
{
this.comboBoxTyp.Enabled = true;
this.comboBoxTyp.SelectedIndex = 1;
}
}
else
{
this.comboBoxTyp.Enabled = false;
this.dGArtikel.Enabled = this.dGArtikel.Visible = false;
this.Width = textBoxKundeName.Right + 10;
this.Height = 405;
this.comboBoxTyp.SelectedIndex = 1;
}
}
else
{
this.comboBoxTyp.Enabled = false;
this.dGArtikel.Enabled = this.dGArtikel.Visible = false;
this.Width = textBoxKundeName.Right + 10;
this.Height = 405;
this.comboBoxTyp.SelectedIndex = 1;
}
} }
@ -126,19 +106,21 @@ namespace Deckungsbeitrag
else this.textBoxKundeName.Text = kunde.Suchtext; else this.textBoxKundeName.Text = kunde.Suchtext;
if (letzterLiefertag.HasValue) this.dTPLiefertag.Value = letzterLiefertag.Value; if (letzterLiefertag.HasValue) this.dTPLiefertag.Value = letzterLiefertag.Value;
else this.dTPLiefertag.Value = DateTime.Today.AddDays(1); else this.dTPLiefertag.Value = DateTime.Today.AddDays(1);
if (kunde.Service == "Geschäft")
{
this.comboBoxTyp.SelectedItem = AuftragTyp.Geschäft;
this.comboBoxTyp.Enabled = false;
}
dTPLiefertag_Leave(this.dTPLiefertag, EventArgs.Empty); dTPLiefertag_Leave(this.dTPLiefertag, EventArgs.Empty);
textBoxCont_TextChanged(this.textBoxCont, EventArgs.Empty); textBoxCont_TextChanged(this.textBoxCont, EventArgs.Empty);
} }
private void comboBox_Load() private void comboBox_Load()
{ {
// Items werden von AuftragTyp geladen.
this.comboBoxTyp.DataSource = Enum.GetValues(typeof(AuftragTyp)); this.comboBoxTyp.DataSource = Enum.GetValues(typeof(AuftragTyp));
//TODO: Wenn kunde null dann return.
// Wenn der Kunde ein Geschäftskunde ist, wird AuftragTyp.Geschäft ausgewählt. Andernfalls wird der AuftragTyp aus dem Konstruktor gewählt.
if (kunde.Service == "Geschäft") this.comboBoxTyp.SelectedItem = AuftragTyp.Geschäft;
else this.comboBoxTyp.SelectedItem = auftragtyp;
this.comboBoxTyp.Enabled = false;
} }
private void Load_Gridview(string kundeid, AuftragTyp auftragTyp) private void Load_Gridview(string kundeid, AuftragTyp auftragTyp)
{ {
@ -486,29 +468,61 @@ namespace Deckungsbeitrag
private void comboBoxTyp_SelectedValueChanged(object sender, EventArgs e) private void comboBoxTyp_SelectedValueChanged(object sender, EventArgs e)
{ {
if((AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.Inventur) switch ((AuftragTyp)comboBoxTyp.SelectedValue)
{
if (this.kunde != null) Load_Gridview(this.kunde.KundeID.ToString(), (AuftragTyp)comboBoxTyp.SelectedValue);
this.dGArtikel.Enabled = this.dGArtikel.Visible = true;
this.Width = this.dGArtikel.Right + 25;
this.Height = this.dGArtikel.Bottom + this.buttonSpeichern.Height + 60;
}
if ((AuftragTyp)comboBoxTyp.SelectedValue >= AuftragTyp.Standerhöhung)
{
if (this.kunde != null) Load_Gridview(this.kunde.KundeID.ToString(), (AuftragTyp)comboBoxTyp.SelectedValue);
this.dGArtikel.Enabled = this.dGArtikel.Visible = true;
this.Width = this.dGArtikel.Right + 25;
this.Height = this.dGArtikel.Bottom + this.buttonSpeichern.Height + 60;
}
if ((AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.Standart)
{ {
case AuftragTyp.Geschäft: // Wird derzeit wenig verwendet da die Auswahl in DatenLaden nach KundenService erfolgt.
this.dGArtikel.Enabled = this.dGArtikel.Visible = false; this.dGArtikel.Enabled = this.dGArtikel.Visible = false;
this.Width = textBoxKundeName.Right + 30; this.Width = textBoxKundeName.Right + 30;
this.Height = 405; this.Height = 405;
break;
case AuftragTyp.Standart:
this.dGArtikel.Enabled = this.dGArtikel.Visible = false;
this.Width = textBoxKundeName.Right + 30;
this.Height = 405;
break;
case AuftragTyp.Inventur:
if (this.kunde != null) Load_Gridview(this.kunde.KundeID.ToString(), (AuftragTyp)comboBoxTyp.SelectedValue);
this.dGArtikel.Enabled = this.dGArtikel.Visible = true;
this.Width = this.dGArtikel.Right + 25;
this.Height = this.dGArtikel.Bottom + this.buttonSpeichern.Height + 60;
break;
case AuftragTyp.Standerhöhung:
if (this.kunde != null) Load_Gridview(this.kunde.KundeID.ToString(), (AuftragTyp)comboBoxTyp.SelectedValue);
this.dGArtikel.Enabled = this.dGArtikel.Visible = true;
this.Width = this.dGArtikel.Right + 25;
this.Height = this.dGArtikel.Bottom + this.buttonSpeichern.Height + 60;
break;
case AuftragTyp.Standverminderung:
if (this.kunde != null) Load_Gridview(this.kunde.KundeID.ToString(), (AuftragTyp)comboBoxTyp.SelectedValue);
this.dGArtikel.Enabled = this.dGArtikel.Visible = true;
this.Width = this.dGArtikel.Right + 25;
this.Height = this.dGArtikel.Bottom + this.buttonSpeichern.Height + 60;
break;
default:
break;
} }
//if ((AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.Inventur)
//{
// if (this.kunde != null) Load_Gridview(this.kunde.KundeID.ToString(), (AuftragTyp)comboBoxTyp.SelectedValue);
// this.dGArtikel.Enabled = this.dGArtikel.Visible = true;
// this.Width = this.dGArtikel.Right + 25;
// this.Height = this.dGArtikel.Bottom + this.buttonSpeichern.Height + 60;
//}
//if ((AuftragTyp)comboBoxTyp.SelectedValue >= AuftragTyp.Standerhöhung)
//{
// if (this.kunde != null) Load_Gridview(this.kunde.KundeID.ToString(), (AuftragTyp)comboBoxTyp.SelectedValue);
// this.dGArtikel.Enabled = this.dGArtikel.Visible = true;
// this.Width = this.dGArtikel.Right + 25;
// this.Height = this.dGArtikel.Bottom + this.buttonSpeichern.Height + 60;
//}
//if ((AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.Standart)
//{
// this.dGArtikel.Enabled = this.dGArtikel.Visible = false;
// this.Width = textBoxKundeName.Right + 30;
// this.Height = 405;
//}
} }
} }
} }
//DONE: AuftragStatus mit Switch nach BenutzerRolle ermöglichen. //CHANGES: NeuerAuftrag wird jetzt mit Propertie AuftragTyp aufgerufen. Dadurch ist die Auswahl des AuftragTyp konstanter.
//DONE: FahrerAufträge erhalten Status "Abgeholt".
//DONE: Wenn der Auftrag nicht gefunden wird, wird neuer Auftrag erstellt und mit Status "Aufgelegt" versehen.

View File

@ -24,7 +24,8 @@ namespace DatenDB
} // LEER } // LEER
public static List<Kunde> GetTmpList(string text) public static List<Kunde> GetTmpList(string text)
{ {
bool endsWithSpecial = !char.IsLetterOrDigit(text[text.Length-1]); bool endsWithSpecial = false;
if(!string.IsNullOrWhiteSpace(text)) endsWithSpecial = !char.IsLetterOrDigit(text[text.Length-1]);
DatenbankConnection.GetConnection().Open(); DatenbankConnection.GetConnection().Open();
List<Kunde> resultList = new List<Kunde>(); List<Kunde> resultList = new List<Kunde>();
using (NpgsqlCommand command = new NpgsqlCommand()) using (NpgsqlCommand command = new NpgsqlCommand())

View File

@ -99,7 +99,7 @@ namespace Deckungsbeitrag
Application.Run(new FormMain(loginForm.Person)); Application.Run(new FormMain(loginForm.Person));
break; break;
case BenutzerRolle.Waschstrasse: //Bediener einer Waschstraße case BenutzerRolle.Waschstrasse: //Bediener einer Waschstraße
Application.Run(new FormNeuerAuftrag(loginForm.Person)); Application.Run(new FormNeuerAuftrag(loginForm.Person, AuftragTyp.Standart));
break; break;
case BenutzerRolle.Master: //Entwickler oder Claudia und Kevin case BenutzerRolle.Master: //Entwickler oder Claudia und Kevin
Application.Run(new FormMain(loginForm.Person)); Application.Run(new FormMain(loginForm.Person));

View File

@ -6,33 +6,34 @@ Build-Info:
- Build-Typ: Release Build - Build-Typ: Release Build
- Erledigte TODOs: 19 - Erledigte TODOs: 19
- Offene TODOs: 21 - Offene TODOs: 21
- Install-Reminders: 5 - Install-Reminders: 3
- Changes: 7 - Changes: 10
=== ⚙️ INSTALL-REMINDER (5) === === ⚙️ INSTALL-REMINDER (3) ===
- ⚙️ AufgabeErledigt als Spalte in DB hinzufügen. [Auftrag.cs] - ⚙️ AufgabeErledigt als Spalte in DB hinzufügen. [Auftrag.cs]
- ⚙️ AufgabeID als Spalte in DB hinzufügen. [Auftrag.cs] - ⚙️ AufgabeID als Spalte in DB hinzufügen. [Auftrag.cs]
- ⚙️ Spalte Aktiv in DB einfügen. [Aufgabe.cs] - ⚙️ Spalte Aktiv in DB einfügen. [Aufgabe.cs]
- ⚙️ Spalte Anmerkung in DB hinzufügen. [Kunde.cs]
- ⚙️ Spalte Aufgabe Count in DB hinzufügen. [Kunde.cs]
=== ✨ CHANGES (7) === === ✨ CHANGES (10) ===
- ✨ Aufleger muss keine Aufträge mehr erstellen da Fahrer das machen können. [FormWSVerfolgung.cs] - ✨ Aufleger muss keine Aufträge mehr erstellen da Fahrer das machen können. [FormWSVerfolgung.cs]
- ✨ Auftragsliste zeigt hier nur AuftragStatus "Abgeholt" Aufträge. [FormWSVerfolgung.cs] - ✨ Auftragsliste zeigt hier nur AuftragStatus "Abgeholt" Aufträge. [FormWSVerfolgung.cs]
- ✨ Auftragverwaltung Spalten wurden aktualisiert. Mit Icons, Buttons und Sortierung auf Liefertag. [FormMain.cs] - ✨ Auftragverwaltung Spalten wurden aktualisiert. Mit Icons, Buttons und Sortierung auf Liefertag. [FormMain.cs]
- ✨ Die Liste zeigt jetzt auch die Aufträge und die Kunden der möglich Aufträge an. (Erleichtert die Kundenauswahl bei Fehlmengecount) [FormListe.cs] - ✨ Die Liste zeigt jetzt auch die Aufträge und die Kunden der möglich Aufträge an. (Erleichtert die Kundenauswahl bei Fehlmengecount) [FormListe.cs]
- ✨ Es werden jetzt Meldungen gezeigt damit Aufgaben erledigt und Containeranzahl zuverlässig stimmt. [FormExpedit.cs]
- ✨ Fahrer können abgeholte Aufträge erstellen und ausgelieferte Aufträge markieren. [FormMain.cs] - ✨ Fahrer können abgeholte Aufträge erstellen und ausgelieferte Aufträge markieren. [FormMain.cs]
- ✨ Statistik für Expedit. (Same as in Main) [FormExpedit.cs] - ✨ NeuerAuftrag wird jetzt mit Propertie AuftragTyp aufgerufen. Dadurch ist die Auswahl des AuftragTyp konstanter. [FormNeuerAuftrag.cs]
- ✨ Wenn Auftrag als Vorbereitet markiert wird, wird nachgefragt ob die Aufgabe erledigt wurde. [FormExpedit.cs]
- ✨ Wenn Auftrag nicht gefunden kann er trotzdem einen neuen Erstellen. [FormWSVerfolgung.cs] - ✨ Wenn Auftrag nicht gefunden kann er trotzdem einen neuen Erstellen. [FormWSVerfolgung.cs]
- ✨ Wenn saubere Container sind 0 kann Auftrag nicht als Vorbereitet markiert werden. (Damit die Statistik stimmt) [FormExpedit.cs]
=== ✅ ERLEDIGTE TODOs (19) === === ✅ ERLEDIGTE TODOs (19) ===
- ✅ : Auch wenn Extra Auftrag benötigt wird funktioniert es über die Auftragsliste. [FormWSVerfolgung.cs] - ✅ : Auch wenn Extra Auftrag benötigt wird funktioniert es über die Auftragsliste. [FormWSVerfolgung.cs]
- ✅ : Aufgabe wird bei "Vorbereiten ohne Etikett" verarbeitet. [FormExpedit.cs]
- ✅ : Auftrag als Vorbereitet markieren geht nur wenn saubere Container nicht 0 sind. [FormExpedit.cs]
- ✅ : Auftrag über FormListe holen und daraus den Kunden für Fehlmenge holen. [FormFehlmengeCount.cs] - ✅ : Auftrag über FormListe holen und daraus den Kunden für Fehlmenge holen. [FormFehlmengeCount.cs]
- ✅ : AuftragStatus mit Switch nach BenutzerRolle ermöglichen. [FormNeuerAuftrag.cs]
- ✅ : Bei Transport wir ein Fach mit Aktuellem Auftrag erstellt. Das Alte wird bei Transport gespeichert. [FormAusschlager.cs] - ✅ : Bei Transport wir ein Fach mit Aktuellem Auftrag erstellt. Das Alte wird bei Transport gespeichert. [FormAusschlager.cs]
- ✅ : FahrerAufträge erhalten Status "Abgeholt". [FormNeuerAuftrag.cs]
- ✅ : Kunde anzeigen Reihenfolge der Spalten zuerst Suchtext danach Name. [FormListe.cs] - ✅ : Kunde anzeigen Reihenfolge der Spalten zuerst Suchtext danach Name. [FormListe.cs]
- ✅ : Listentyp.Auftragliste implementiert um über FormWSVerfolgung die Auftragliste abrufen zu können. [FormListe.cs] - ✅ : Listentyp.Auftragliste implementiert um über FormWSVerfolgung die Auftragliste abrufen zu können. [FormListe.cs]
- ✅ : Logik überlegen wie ein bearbeiteter Auftrag nicht doppelt gewählt werden kann. (Abteilungen zu Auftrag hinzufügen und bei Ausschlager Druck definieren?) [FormFehlmengeCount.cs] - ✅ : Logik überlegen wie ein bearbeiteter Auftrag nicht doppelt gewählt werden kann. (Abteilungen zu Auftrag hinzufügen und bei Ausschlager Druck definieren?) [FormFehlmengeCount.cs]
@ -40,8 +41,8 @@ Build-Info:
- ✅ : Neuer Konstruktor für Auftragliste "Finishing" oder "Aufgelegt". (aufgelegte Aufträge die noch nicht [Auftrag.cs] - ✅ : Neuer Konstruktor für Auftragliste "Finishing" oder "Aufgelegt". (aufgelegte Aufträge die noch nicht [Auftrag.cs]
- ✅ : Neuer Konstruktor für Auftragliste "Rampe". (abgeholte Aufträge die noch nicht aufgelegt sind) [Auftrag.cs] - ✅ : Neuer Konstruktor für Auftragliste "Rampe". (abgeholte Aufträge die noch nicht aufgelegt sind) [Auftrag.cs]
- ✅ : Nur die Kunden der Aufträge als Liste anzeigen wäre möglich. Macht die Auswahl für das Personal einfacher weil 90% bereits weg fallen. [FormFehlmengeCount.cs] - ✅ : Nur die Kunden der Aufträge als Liste anzeigen wäre möglich. Macht die Auswahl für das Personal einfacher weil 90% bereits weg fallen. [FormFehlmengeCount.cs]
- ✅ : Spalten besser erkennbar gestalten damit Mirka die Spalte trifft wenn RechtsClick. [FormExpedit.cs]
- ✅ : Statt Neuen Auftrag wird Auftragsliste mit Status "abgeholt" angezeigt. Dadurch muss Aufleger weder scannen noch Namen eintippen und suchen. [FormWSVerfolgung.cs] - ✅ : Statt Neuen Auftrag wird Auftragsliste mit Status "abgeholt" angezeigt. Dadurch muss Aufleger weder scannen noch Namen eintippen und suchen. [FormWSVerfolgung.cs]
- ✅ : Wenn der Auftrag nicht gefunden wird, wird neuer Auftrag erstellt und mit Status "Aufgelegt" versehen. [FormNeuerAuftrag.cs]
- ✅ : Wenn Fahrer Auftragverwaltung öffnet werden Aufträge mit AuftragStatus "Fertig" angezeigt. Fahrer können dann als "Ausgeliefert" markieren. [FormMain.cs] - ✅ : Wenn Fahrer Auftragverwaltung öffnet werden Aufträge mit AuftragStatus "Fertig" angezeigt. Fahrer können dann als "Ausgeliefert" markieren. [FormMain.cs]
- ✅ : Wenn Fahrer registriert kann nur NeuerAuftrag aufgerufen werden. Dort kann er Aufträge erstellen mit dem Status "Abgeholt" (Wichtig für Auftragauswahl bei Waschstraße) [FormMain.cs] - ✅ : Wenn Fahrer registriert kann nur NeuerAuftrag aufgerufen werden. Dort kann er Aufträge erstellen mit dem Status "Abgeholt" (Wichtig für Auftragauswahl bei Waschstraße) [FormMain.cs]
- ✅ : Wenn kein Auftrag gefunden wird, kann ein neuer erstellt werden. [FormWSVerfolgung.cs] - ✅ : Wenn kein Auftrag gefunden wird, kann ein neuer erstellt werden. [FormWSVerfolgung.cs]
@ -63,14 +64,14 @@ Build-Info:
- 🔄 LadenScreen anzeigen etc. [FormMain.cs] - 🔄 LadenScreen anzeigen etc. [FormMain.cs]
- 🔄 Nach Test und Rücksprache eventuell wieder umbauen. Benutzer.Rolle etc. [FormFehlmengeCount.cs] - 🔄 Nach Test und Rücksprache eventuell wieder umbauen. Benutzer.Rolle etc. [FormFehlmengeCount.cs]
- 🔄 Settings hier ändern auf UserSettingsManager Klasse. [FormEinstellung.cs] - 🔄 Settings hier ändern auf UserSettingsManager Klasse. [FormEinstellung.cs]
- 🔄 Spalten besser erkennbar gestalten damit Mirka die Spalte trifft wenn RechtsClick. [FormExpedit.cs]
- 🔄 Testen ob Get_ArtikelKurzliste funktioniert. [FormMain.cs] - 🔄 Testen ob Get_ArtikelKurzliste funktioniert. [FormMain.cs]
- 🔄 Testen ob SWS-QRCodes gelesen werden können. Nur notwendig bis alle SWS-QRCodes richtig gedruckt und gelesen werden. [Kunde.cs] - 🔄 Testen ob SWS-QRCodes gelesen werden können. Nur notwendig bis alle SWS-QRCodes richtig gedruckt und gelesen werden. [Kunde.cs]
- 🔄 Überlegen ob das der richtige Weg ist. Eventuell in Expedit sowohl KundeAufgabe wie auch AuftragAufgabe anzeigen? NOTWENDIG? [FormNeuerAuftrag.cs] - 🔄 Überlegen ob das der richtige Weg ist. Eventuell in Expedit sowohl KundeAufgabe wie auch AuftragAufgabe anzeigen? NOTWENDIG? [FormNeuerAuftrag.cs]
- 🔄 Umbau in Switch. [FormWSVerfolgung.cs] - 🔄 Umbau in Switch. [FormWSVerfolgung.cs]
- 🔄 UserSetting Properties eintragen und in EinstellungsScreen abrufen. [UserSettingsManager.cs] - 🔄 UserSetting Properties eintragen und in EinstellungsScreen abrufen. [UserSettingsManager.cs]
- 🔄 Weitere Properties von oben hier zuweisen [UserSettingsManager.cs] - 🔄 Weitere Properties von oben hier zuweisen [UserSettingsManager.cs]
- 🔄 Wenn kunde null dann return. [FormNeuerAuftrag.cs]
- 🔄 Wenn Nachwäsche oder Müllwäsche alle Artikel anzeigen. [FormFehlmengeCount.cs] - 🔄 Wenn Nachwäsche oder Müllwäsche alle Artikel anzeigen. [FormFehlmengeCount.cs]
Installation: 18.12.2025 17:03 Installation: 19.12.2025 11:14
===================================== =====================================