From f8c2797ab7437d0bbfde57ddf0d5ed6f2df6cf60 Mon Sep 17 00:00:00 2001 From: Kilian Wirl Date: Tue, 17 Feb 2026 18:10:23 +0100 Subject: [PATCH] AutoUpdate implementiert, TourListen implementiert, Aufleger Rampenansicht implementiert. --- AA-Forms/FormArtikelVW.cs | 2 +- AA-Forms/FormAufgabeVW.cs | 2 +- AA-Forms/FormAufleger.Designer.cs | 197 +++++---- AA-Forms/FormAufleger.cs | 203 ++++++++- AA-Forms/FormAuftragDetail.cs | 6 +- AA-Forms/FormBenutzerVW.Designer.cs | 3 +- AA-Forms/FormBenutzerVW.cs | 33 +- AA-Forms/FormExpedit.Designer.cs | 395 ++--------------- AA-Forms/FormExpedit.cs | 185 ++------ AA-Forms/FormExpedit.resx | 104 ++--- AA-Forms/FormFehlmengeCount.cs | 3 +- AA-Forms/FormListe.cs | 26 +- AA-Forms/FormMain.Designer.cs | 573 ++++++++++++++++++++++--- AA-Forms/FormMain.cs | 380 ++++++++++------ AA-Forms/FormNeuerAuftrag.cs | 55 ++- AA-Forms/FormNeuerBenutzer.Designer.cs | 11 +- AA-Forms/FormNeuerBenutzer.cs | 56 +-- AA-Forms/FormNeuerBenutzer.resx | 2 +- AA-Klassen/Auftrag.cs | 70 ++- AA-Klassen/Funktionen.cs | 230 ++++++++-- Program.cs | 67 ++- Properties/AssemblyInfo.cs | 4 +- SetupVerwaltung/SetupVerwaltung.vdproj | 6 +- UserControls/UCAuftrag.Designer.cs | 3 +- UserControls/UCAuftrag.cs | 9 +- UserSettingsManager.cs | 19 +- Verwaltung_ReadMe.txt | 19 +- 27 files changed, 1688 insertions(+), 975 deletions(-) diff --git a/AA-Forms/FormArtikelVW.cs b/AA-Forms/FormArtikelVW.cs index 232ee08..cccfa3e 100644 --- a/AA-Forms/FormArtikelVW.cs +++ b/AA-Forms/FormArtikelVW.cs @@ -54,7 +54,7 @@ namespace Deckungsbeitrag buttonColumn = (OLVColumn)this.objectListViewArtikel.Columns[7]; buttonColumn.IsButton = true; buttonColumn.ButtonSizing = OLVColumn.ButtonSizingMode.CellBounds; - Funktionen.Columns_Resize(this.objectListViewArtikel); + this.objectListViewArtikel = Funktionen.Columns_Resize(null, this.objectListViewArtikel).olv; this.objectListViewArtikel.FilterMenuBuildStrategy = new MeinFilterMenu(); diff --git a/AA-Forms/FormAufgabeVW.cs b/AA-Forms/FormAufgabeVW.cs index ef5d0a8..1b6dc49 100644 --- a/AA-Forms/FormAufgabeVW.cs +++ b/AA-Forms/FormAufgabeVW.cs @@ -46,7 +46,7 @@ namespace Deckungsbeitrag this.objectListViewAufgabe.Sort(sortcolumn); this.objectListViewAufgabe.FilterMenuBuildStrategy = new MeinFilterMenu(); - Funktionen.Columns_Resize(this.objectListViewAufgabe); + this.objectListViewAufgabe = Funktionen.Columns_Resize(null, this.objectListViewAufgabe).olv; } diff --git a/AA-Forms/FormAufleger.Designer.cs b/AA-Forms/FormAufleger.Designer.cs index 0efb966..c4dba1e 100644 --- a/AA-Forms/FormAufleger.Designer.cs +++ b/AA-Forms/FormAufleger.Designer.cs @@ -30,6 +30,11 @@ { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAufleger)); this.tLPAuftrag = new System.Windows.Forms.TableLayoutPanel(); + this.labelContT5 = new System.Windows.Forms.Label(); + this.labelContT4 = new System.Windows.Forms.Label(); + this.labelContT3 = new System.Windows.Forms.Label(); + this.labelContT2 = new System.Windows.Forms.Label(); + this.labelContT1 = new System.Windows.Forms.Label(); this.fLP_T5 = new System.Windows.Forms.FlowLayoutPanel(); this.fLP_T4 = new System.Windows.Forms.FlowLayoutPanel(); this.fLP_T3 = new System.Windows.Forms.FlowLayoutPanel(); @@ -40,12 +45,9 @@ this.labelT2 = new System.Windows.Forms.Label(); this.labelT1 = new System.Windows.Forms.Label(); this.fLP_T1 = new System.Windows.Forms.FlowLayoutPanel(); - this.labelContT5 = new System.Windows.Forms.Label(); - this.labelContT4 = new System.Windows.Forms.Label(); - this.labelContT3 = new System.Windows.Forms.Label(); - this.labelContT2 = new System.Windows.Forms.Label(); - this.labelContT1 = new System.Windows.Forms.Label(); this.textBoxScan = new System.Windows.Forms.TextBox(); + this.buttonCloseForm = new System.Windows.Forms.Button(); + this.labelVersion = new System.Windows.Forms.Label(); this.tLPAuftrag.SuspendLayout(); this.SuspendLayout(); // @@ -73,6 +75,8 @@ this.tLPAuftrag.Controls.Add(this.labelT1, 0, 0); this.tLPAuftrag.Controls.Add(this.fLP_T1, 0, 1); this.tLPAuftrag.Controls.Add(this.textBoxScan, 0, 3); + this.tLPAuftrag.Controls.Add(this.buttonCloseForm, 4, 3); + this.tLPAuftrag.Controls.Add(this.labelVersion, 2, 3); this.tLPAuftrag.Dock = System.Windows.Forms.DockStyle.Fill; this.tLPAuftrag.ForeColor = System.Drawing.Color.Black; this.tLPAuftrag.Location = new System.Drawing.Point(0, 0); @@ -85,6 +89,81 @@ this.tLPAuftrag.Size = new System.Drawing.Size(1037, 605); this.tLPAuftrag.TabIndex = 2; // + // labelContT5 + // + this.labelContT5.AutoSize = true; + this.labelContT5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); + this.labelContT5.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelContT5.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContT5.ForeColor = System.Drawing.Color.White; + this.labelContT5.Location = new System.Drawing.Point(3, 505); + this.labelContT5.Name = "labelContT5"; + this.labelContT5.Size = new System.Drawing.Size(201, 50); + this.labelContT5.TabIndex = 24; + this.labelContT5.Tag = "FR"; + this.labelContT5.Text = "0"; + this.labelContT5.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // labelContT4 + // + this.labelContT4.AutoSize = true; + this.labelContT4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); + this.labelContT4.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelContT4.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContT4.ForeColor = System.Drawing.Color.White; + this.labelContT4.Location = new System.Drawing.Point(210, 505); + this.labelContT4.Name = "labelContT4"; + this.labelContT4.Size = new System.Drawing.Size(201, 50); + this.labelContT4.TabIndex = 23; + this.labelContT4.Tag = "DO"; + this.labelContT4.Text = "0"; + this.labelContT4.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // labelContT3 + // + this.labelContT3.AutoSize = true; + this.labelContT3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); + this.labelContT3.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelContT3.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContT3.ForeColor = System.Drawing.Color.White; + this.labelContT3.Location = new System.Drawing.Point(417, 505); + this.labelContT3.Name = "labelContT3"; + this.labelContT3.Size = new System.Drawing.Size(201, 50); + this.labelContT3.TabIndex = 22; + this.labelContT3.Tag = "MI"; + this.labelContT3.Text = "0"; + this.labelContT3.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // labelContT2 + // + this.labelContT2.AutoSize = true; + this.labelContT2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); + this.labelContT2.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelContT2.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContT2.ForeColor = System.Drawing.Color.White; + this.labelContT2.Location = new System.Drawing.Point(624, 505); + this.labelContT2.Name = "labelContT2"; + this.labelContT2.Size = new System.Drawing.Size(201, 50); + this.labelContT2.TabIndex = 21; + this.labelContT2.Tag = "DI"; + this.labelContT2.Text = "0"; + this.labelContT2.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // labelContT1 + // + this.labelContT1.AutoSize = true; + this.labelContT1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); + this.labelContT1.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelContT1.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContT1.ForeColor = System.Drawing.Color.White; + this.labelContT1.Location = new System.Drawing.Point(831, 505); + this.labelContT1.Name = "labelContT1"; + this.labelContT1.Size = new System.Drawing.Size(203, 50); + this.labelContT1.TabIndex = 20; + this.labelContT1.Tag = "MO"; + this.labelContT1.Text = "0"; + this.labelContT1.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // // fLP_T5 // this.fLP_T5.AllowDrop = true; @@ -215,81 +294,6 @@ this.fLP_T1.TabIndex = 15; this.fLP_T1.Tag = "MO"; // - // labelContT5 - // - this.labelContT5.AutoSize = true; - this.labelContT5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); - this.labelContT5.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelContT5.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelContT5.ForeColor = System.Drawing.Color.White; - this.labelContT5.Location = new System.Drawing.Point(3, 505); - this.labelContT5.Name = "labelContT5"; - this.labelContT5.Size = new System.Drawing.Size(201, 50); - this.labelContT5.TabIndex = 24; - this.labelContT5.Tag = "FR"; - this.labelContT5.Text = "0"; - this.labelContT5.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // - // labelContT4 - // - this.labelContT4.AutoSize = true; - this.labelContT4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); - this.labelContT4.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelContT4.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelContT4.ForeColor = System.Drawing.Color.White; - this.labelContT4.Location = new System.Drawing.Point(210, 505); - this.labelContT4.Name = "labelContT4"; - this.labelContT4.Size = new System.Drawing.Size(201, 50); - this.labelContT4.TabIndex = 23; - this.labelContT4.Tag = "DO"; - this.labelContT4.Text = "0"; - this.labelContT4.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // - // labelContT3 - // - this.labelContT3.AutoSize = true; - this.labelContT3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); - this.labelContT3.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelContT3.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelContT3.ForeColor = System.Drawing.Color.White; - this.labelContT3.Location = new System.Drawing.Point(417, 505); - this.labelContT3.Name = "labelContT3"; - this.labelContT3.Size = new System.Drawing.Size(201, 50); - this.labelContT3.TabIndex = 22; - this.labelContT3.Tag = "MI"; - this.labelContT3.Text = "0"; - this.labelContT3.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // - // labelContT2 - // - this.labelContT2.AutoSize = true; - this.labelContT2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); - this.labelContT2.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelContT2.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelContT2.ForeColor = System.Drawing.Color.White; - this.labelContT2.Location = new System.Drawing.Point(624, 505); - this.labelContT2.Name = "labelContT2"; - this.labelContT2.Size = new System.Drawing.Size(201, 50); - this.labelContT2.TabIndex = 21; - this.labelContT2.Tag = "DI"; - this.labelContT2.Text = "0"; - this.labelContT2.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // - // labelContT1 - // - this.labelContT1.AutoSize = true; - this.labelContT1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); - this.labelContT1.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelContT1.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelContT1.ForeColor = System.Drawing.Color.White; - this.labelContT1.Location = new System.Drawing.Point(831, 505); - this.labelContT1.Name = "labelContT1"; - this.labelContT1.Size = new System.Drawing.Size(203, 50); - this.labelContT1.TabIndex = 20; - this.labelContT1.Tag = "MO"; - this.labelContT1.Text = "0"; - this.labelContT1.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // // textBoxScan // this.textBoxScan.Dock = System.Windows.Forms.DockStyle.Fill; @@ -300,6 +304,36 @@ this.textBoxScan.TabIndex = 25; this.textBoxScan.TextChanged += new System.EventHandler(this.textBoxScan_TextChanged); // + // buttonCloseForm + // + this.buttonCloseForm.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101))))); + this.buttonCloseForm.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonCloseForm.FlatAppearance.BorderColor = System.Drawing.Color.White; + this.buttonCloseForm.FlatAppearance.BorderSize = 2; + this.buttonCloseForm.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonCloseForm.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.buttonCloseForm.ForeColor = System.Drawing.Color.White; + this.buttonCloseForm.Location = new System.Drawing.Point(830, 557); + this.buttonCloseForm.Margin = new System.Windows.Forms.Padding(2); + this.buttonCloseForm.Name = "buttonCloseForm"; + this.buttonCloseForm.Size = new System.Drawing.Size(205, 46); + this.buttonCloseForm.TabIndex = 27; + this.buttonCloseForm.Text = "Schließen"; + this.buttonCloseForm.UseVisualStyleBackColor = false; + this.buttonCloseForm.Click += new System.EventHandler(this.buttonCloseForm_Click); + // + // labelVersion + // + this.labelVersion.AutoSize = true; + this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelVersion.ImageAlign = System.Drawing.ContentAlignment.BottomCenter; + this.labelVersion.Location = new System.Drawing.Point(417, 555); + this.labelVersion.Name = "labelVersion"; + this.labelVersion.Size = new System.Drawing.Size(201, 50); + this.labelVersion.TabIndex = 28; + this.labelVersion.Text = "Version: "; + this.labelVersion.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // // FormAufleger // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -316,6 +350,7 @@ this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.Text = "Waschstrasse"; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormAufleger_FormClosing); this.Load += new System.EventHandler(this.FormAufleger_Load); this.Shown += new System.EventHandler(this.FormAufleger_Shown); this.tLPAuftrag.ResumeLayout(false); @@ -343,5 +378,7 @@ private System.Windows.Forms.Label labelContT2; private System.Windows.Forms.Label labelContT1; private System.Windows.Forms.TextBox textBoxScan; + private System.Windows.Forms.Button buttonCloseForm; + private System.Windows.Forms.Label labelVersion; } } \ No newline at end of file diff --git a/AA-Forms/FormAufleger.cs b/AA-Forms/FormAufleger.cs index 5386e89..a868a85 100644 --- a/AA-Forms/FormAufleger.cs +++ b/AA-Forms/FormAufleger.cs @@ -10,6 +10,7 @@ using System.Data; using System.Drawing; using System.Drawing.Printing; using System.Linq; +using System.Reflection; using System.Runtime.ConstrainedExecution; using System.Text; using System.Threading; @@ -22,6 +23,9 @@ namespace Deckungsbeitrag { private Dictionary> auftragliste; private System.Windows.Forms.Timer timer; + private Auftrag auftrag; + private Meldungen meldung = new Meldungen(); + private bool iswechsel = false; public FormAufleger() { @@ -30,7 +34,7 @@ namespace Deckungsbeitrag // Timer für Wartezeit bis TextChanged eintritt. timer = new System.Windows.Forms.Timer(); timer.Interval = 700; // 0,7 Sekunden - //timer.Tick += Timer_Tick; + timer.Tick += Timer_Tick; } @@ -38,21 +42,35 @@ namespace Deckungsbeitrag { this.Cursor = Cursors.WaitCursor; this.SuspendLayout(); + this.labelVersion.Text += Assembly.GetExecutingAssembly().GetName().Version; - await GetAuftraege(); - - - - this.Invoke(new Action(() => + try { - LoadPanel(); - })); + await GetAuftraege(); + + + + this.Invoke(new Action(() => + { + LoadPanel(); + SortFlowLayoutPanels(); + })); + + } + finally + { + this.ResumeLayout(true); + this.Cursor = Cursors.Default; + this.textBoxScan.Focus(); + } - } private void LoadPanel() { + this.Cursor = Cursors.WaitCursor; + this.SuspendLayout(); + for (int i = 0; i < this.tLPAuftrag.RowCount; i++) { if(i == 0) @@ -69,20 +87,53 @@ namespace Deckungsbeitrag } if(i == 1) { + // 1. Dictionary: Column-Index → FlowLayoutPanel + var flpDictionary = new Dictionary(); + for (int column = 0; column < this.tLPAuftrag.ColumnCount; column++) + { + Control ctr = this.tLPAuftrag.GetControlFromPosition(column, i); + if (ctr is FlowLayoutPanel flp) + flpDictionary[column] = flp; + } + + // 2. Dictionary: Column → Array aller UCAuftrag für diesen Tag + var ucArrays = new Dictionary(); + + int col = 0; foreach (List liste in auftragliste.Values) { - int col = 0; + UCAuftrag[] alleUCA = new UCAuftrag[liste.Count]; + + int anzUCA = 0; foreach (Auftrag auftrag in liste) { - Control ctr = this.tLPAuftrag.GetControlFromPosition(col, i); - FlowLayoutPanel flp = ctr as FlowLayoutPanel; - UCAuftrag uca = new UCAuftrag(auftrag); uca.Tag = auftrag; - uca.Size = new Size(flp.Width - 30, uca.Height); - flp.Controls.Add(uca); - col++; + if (auftrag.Status == AuftragStatus.Aufgelegt) + { + this.auftrag = auftrag; + uca.BackColor = Color.YellowGreen; + } + else + uca.BackColor = Color.Silver; + + uca.Size = new Size(flpDictionary[col].Width - 30, uca.Height); + alleUCA[anzUCA] = uca; + anzUCA++; + } + + ucArrays[col] = alleUCA; + col++; + } + + // 3. ATOMAR: Alle FLPs leeren + Arrays auf einmal hinzufügen + foreach (var kvp in flpDictionary) + { + if (ucArrays.TryGetValue(kvp.Key, out UCAuftrag[] ucArray)) + { + kvp.Value.Controls.Clear(); + kvp.Value.Controls.AddRange(ucArray); // EIN Paint-Event pro FLP! } } } @@ -100,6 +151,8 @@ namespace Deckungsbeitrag } } + this.ResumeLayout(true); + this.Cursor = Cursors.Default; } private async Task GetAuftraege() @@ -108,7 +161,7 @@ namespace Deckungsbeitrag try { await conn.OpenAsync(); - auftragliste = await Auftrag.GetAuftraegeProLiefertagAsync(conn, AuftragTyp.Standart, AuftragStatus.Abgeholt); + auftragliste = await Auftrag.GetAuftraegeProLiefertagAsync(conn, AuftragTyp.Standart, AuftragStatus.Aufgelegt); } finally { @@ -120,9 +173,9 @@ namespace Deckungsbeitrag private void FormAufleger_Shown(object sender, EventArgs e) { - - this.ResumeLayout(false); + this.ResumeLayout(true); this.Cursor = Cursors.Default; + this.textBoxScan.Focus(); } @@ -147,5 +200,117 @@ namespace Deckungsbeitrag timer.Start(); // Neuen Timer starten } + private void Timer_Tick(object sender, EventArgs e) + { + this.Cursor = Cursors.WaitCursor; + timer.Stop(); // Timer stoppen + Kunde kunde; + string zusatz = string.Empty; + + if (string.IsNullOrEmpty(textBoxScan.Text)) { return; } + if (int.TryParse(textBoxScan.Text, out _)) kunde = Kunde.GetKunde(textBoxScan.Text, null, null); + else + { + if (textBoxScan.Text.Contains(",")) + { + kunde = Kunde.GetKunde(textBoxScan.Text.Substring(0, textBoxScan.Text.IndexOf(',')), null, null); + zusatz = textBoxScan.Text.Substring(textBoxScan.Text.IndexOf(',') + 1); + } + else kunde = Kunde.GetKunde(null, null, textBoxScan.Text); + } + + List auftList = Auftrag.FindeAuftragVonKunde(kunde, zusatz); + if (auftList.Count == 0) { meldung.GetFehler(this, "Es konnte kein Auftrag zum eingescannten Kunden gefunden werden.\nBitte Informiere deinen Vorgesetzten."); return; } + + // Alten Auftrag Speichern (Status Gewaschen) wenn neuer Auftrag gefunden wurde. + if(auftrag != null) + { + if (AuftragSpeichern() == false) return; + iswechsel = true; + } + if (auftList.Count == 1) auftrag = auftList[0]; + if (auftList.Count > 1) + { + if (meldung.GetFrage(this, $"Es konnten mehrere Aufträge für den gescannten Kunden gefunden werden.\nIst auf der Containerkarte Auftrag 2 vermerkt?", false) == DialogResult.Yes) + { + auftrag = auftList.Find(a => a.ZusatzInfo.Contains("Auftrag 2")); + } + else + { + auftrag = auftList.Find(a => !a.ZusatzInfo.Contains("Auftrag 2")); + } + } + + SucheAuftrag(); + this.Cursor = Cursors.Default; + } + private void SortFlowLayoutPanels() + { + foreach (FlowLayoutPanel flp in this.tLPAuftrag.Controls.OfType()) + { + if (flp.Controls.Count > 0) + { + var controls = flp.Controls.Cast() + .OrderBy(c => ((Auftrag)c.Tag).Fahrer) // oder c.Tag + .ToArray(); + + flp.SuspendLayout(); + for (int i = 0; i < controls.Length; i++) + { + flp.Controls.SetChildIndex(controls[i], i); + } + flp.ResumeLayout(); + } + + } + } + private void SucheAuftrag() + { + this.textBoxScan.TextChanged -= textBoxScan_TextChanged; + + foreach (FlowLayoutPanel flp in this.tLPAuftrag.Controls.OfType()) + { + foreach (UCAuftrag uca in flp.Controls) + { + if (((Auftrag)uca.Tag).AuftragID == this.auftrag.AuftragID) + { + // Wenn neuer Auftrag gefunden dann Status Aufgelegt und UserControl Grüner Hintergrund. + this.auftrag.Status = AuftragStatus.Aufgelegt; + this.auftrag.Save(); + uca.Tag = this.auftrag; + if (this.auftrag.Status == AuftragStatus.Aufgelegt) uca.BackColor = Color.YellowGreen; + } + } + } + if (iswechsel) { FormAufleger_Load(this, null); iswechsel = false; } + this.textBoxScan.Clear(); + this.textBoxScan.Focus(); + + this.textBoxScan.TextChanged += textBoxScan_TextChanged; + } + private bool AuftragSpeichern() + { + auftrag.Status = AuftragStatus.Gewaschen; + if (auftrag.Save()[0] == 1) auftrag = null; + else { meldung.Speicherfehler(); return false; } + + return true; + } + private void FormAufleger_FormClosing(object sender, FormClosingEventArgs e) + { + //if (auftrag == null) return; + //if (AuftragSpeichern() == false) e.Cancel = true; + } + private void buttonCloseForm_Click(object sender, EventArgs e) + { + if (meldung.GetFrage(this, "Möchtest du das Programm wirklich schließen?", false) == DialogResult.No) return; + + Application.Exit(); + } } } +//CHANGES: Form für Aufleger soweit fertig. +//CHANGES: Kontrolle ob mehrere Aufträge vorhanden fertig. +//CHANGES: Status anpassen fertig. +//CHANGES: Programm wird mit Button geschlossen. (Sicherheitsabfrage ob wirklich gewollt wird gemacht.) +//CHANGES: Hintergrundfarbe wird jetzt immer richtig zugewiesen. \ No newline at end of file diff --git a/AA-Forms/FormAuftragDetail.cs b/AA-Forms/FormAuftragDetail.cs index d64e175..2721ee1 100644 --- a/AA-Forms/FormAuftragDetail.cs +++ b/AA-Forms/FormAuftragDetail.cs @@ -110,8 +110,8 @@ namespace Deckungsbeitrag } int width = this.listViewDavor.Width; - this.listViewDavor = Funktionen.Columns_Resize(this.listViewDavor); - this.listViewDanach = Funktionen.Columns_Resize(this.listViewDanach); + this.listViewDavor = Funktionen.Columns_Resize(this.listViewDavor, null).lv; + this.listViewDanach = Funktionen.Columns_Resize(this.listViewDanach, null).lv; this.listViewDanach.Width = this.listViewDavor.Width = width; } else listViewDanach.Visible = listViewDavor.Visible = label3.Visible = label4.Visible = false; @@ -138,7 +138,7 @@ namespace Deckungsbeitrag } - Funktionen.Columns_Resize(this.listViewArtikel); + this.listViewArtikel = Funktionen.Columns_Resize(this.listViewArtikel, null).lv; } //WENN STATUS VORBEREITET BUTTON FERTIG ENABLEN diff --git a/AA-Forms/FormBenutzerVW.Designer.cs b/AA-Forms/FormBenutzerVW.Designer.cs index f36ecc7..aa61915 100644 --- a/AA-Forms/FormBenutzerVW.Designer.cs +++ b/AA-Forms/FormBenutzerVW.Designer.cs @@ -42,7 +42,6 @@ this.objectListViewBenutzer.CellEditActivation = BrightIdeasSoftware.ObjectListView.CellEditActivateMode.DoubleClick; this.objectListViewBenutzer.CellEditUseWholeCell = false; 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; @@ -61,6 +60,7 @@ this.objectListViewBenutzer.UseFiltering = true; this.objectListViewBenutzer.View = System.Windows.Forms.View.Details; this.objectListViewBenutzer.CellEditFinished += new BrightIdeasSoftware.CellEditEventHandler(this.objectListViewBenutzer_CellEditFinished); + this.objectListViewBenutzer.CellEditStarting += new BrightIdeasSoftware.CellEditEventHandler(this.objectListViewBenutzer_CellEditStarting); this.objectListViewBenutzer.SubItemChecking += new System.EventHandler(this.objectListViewBenutzer_SubItemChecking); this.objectListViewBenutzer.SelectedIndexChanged += new System.EventHandler(this.objectListViewBenutzer_SelectedIndexChanged); // @@ -133,6 +133,7 @@ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "BENUTZERVERWALTUNG"; this.Load += new System.EventHandler(this.FormBenutzerVW_Load); + this.Shown += new System.EventHandler(this.FormBenutzerVW_Shown); ((System.ComponentModel.ISupportInitialize)(this.objectListViewBenutzer)).EndInit(); this.ResumeLayout(false); diff --git a/AA-Forms/FormBenutzerVW.cs b/AA-Forms/FormBenutzerVW.cs index 603480d..945276d 100644 --- a/AA-Forms/FormBenutzerVW.cs +++ b/AA-Forms/FormBenutzerVW.cs @@ -18,19 +18,28 @@ namespace Deckungsbeitrag { public Meldungen meldung = new Meldungen(); public Benutzer user; + private List fahrerliste; public FormBenutzerVW() { InitializeComponent(); //Load_ListView(); } + + public FormBenutzerVW(List fahrerliste) : this() + { + this.fahrerliste = fahrerliste; + } + private void FormBenutzerVW_Load(object sender, EventArgs e) { - List list = new List(); + List list = new List(); try { - list = new List(Benutzer.GetList()); + if (this.fahrerliste.Count > 0) list = this.fahrerliste; + else list = new List(Benutzer.GetList()); Load_OLV(list); + this.Width = this.objectListViewBenutzer.Width + 10; } catch (Exception ex) { @@ -40,7 +49,7 @@ namespace Deckungsbeitrag } - private void Load_OLV(List alist) + private void Load_OLV(List alist) { Generator.GenerateColumns(this.objectListViewBenutzer, typeof(Benutzer), true); this.objectListViewBenutzer.SetObjects(alist); @@ -55,7 +64,8 @@ namespace Deckungsbeitrag - Funktionen.Columns_Resize(this.objectListViewBenutzer); + this.objectListViewBenutzer = Funktionen.Columns_Resize(null, this.objectListViewBenutzer).olv; + } @@ -96,5 +106,20 @@ namespace Deckungsbeitrag { } + + private void objectListViewBenutzer_CellEditStarting(object sender, CellEditEventArgs e) + { + ObjectListView olv = (ObjectListView)sender; + user = e.RowObject as Benutzer; + + if (user == null) return; + else { this.DialogResult = DialogResult.OK; this.Close(); } + + } + + private void FormBenutzerVW_Shown(object sender, EventArgs e) + { + this.CenterToScreen(); + } } } diff --git a/AA-Forms/FormExpedit.Designer.cs b/AA-Forms/FormExpedit.Designer.cs index 51d2453..a776c5e 100644 --- a/AA-Forms/FormExpedit.Designer.cs +++ b/AA-Forms/FormExpedit.Designer.cs @@ -28,28 +28,11 @@ /// private void InitializeComponent() { + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); + System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Title title1 = new System.Windows.Forms.DataVisualization.Charting.Title(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormExpedit)); - System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); - System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend(); - System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Title title2 = new System.Windows.Forms.DataVisualization.Charting.Title(); - this.label10 = new System.Windows.Forms.Label(); - this.buttonDrucken = new System.Windows.Forms.Button(); - this.groupBoxEtikett = new System.Windows.Forms.GroupBox(); - this.textBoxCont = new System.Windows.Forms.TextBox(); - this.label5 = new System.Windows.Forms.Label(); - this.cBNoCont = new System.Windows.Forms.CheckBox(); - this.rBDI = new System.Windows.Forms.RadioButton(); - this.rBMI = new System.Windows.Forms.RadioButton(); - this.rBDO = new System.Windows.Forms.RadioButton(); - this.rBFR = new System.Windows.Forms.RadioButton(); - this.rBMO = new System.Windows.Forms.RadioButton(); - this.dTPLiefertag = new System.Windows.Forms.DateTimePicker(); - this.label1 = new System.Windows.Forms.Label(); - this.pictureBoxMinus = new System.Windows.Forms.PictureBox(); - this.pictureBoxPlus = new System.Windows.Forms.PictureBox(); - this.pictureBoxEntwurf = new System.Windows.Forms.PictureBox(); - this.buttonKundeNr = new System.Windows.Forms.Button(); this.buttonNeuerAuftrag = new System.Windows.Forms.Button(); this.dGArtikel = new System.Windows.Forms.DataGridView(); this.KundeArtikelID = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -94,10 +77,7 @@ this.tableLayoutPanelInfo = new System.Windows.Forms.TableLayoutPanel(); this.labelAnmerkung = new System.Windows.Forms.Label(); this.labelAufgabe = new System.Windows.Forms.Label(); - this.groupBoxEtikett.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxMinus)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxPlus)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxEntwurf)).BeginInit(); + this.buttonTourenListe = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.dGArtikel)).BeginInit(); this.tabPageSonder.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.objectListViewSonder)).BeginInit(); @@ -113,298 +93,6 @@ this.tableLayoutPanelInfo.SuspendLayout(); this.SuspendLayout(); // - // label10 - // - this.label10.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.label10.AutoSize = true; - this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label10.Location = new System.Drawing.Point(10, 196); - this.label10.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(157, 16); - this.label10.TabIndex = 12; - this.label10.Text = "Anzahl Container/Pakete:"; - // - // buttonDrucken - // - this.buttonDrucken.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonDrucken.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); - this.buttonDrucken.FlatAppearance.BorderSize = 0; - this.buttonDrucken.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.buttonDrucken.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.buttonDrucken.Location = new System.Drawing.Point(9, 362); - this.buttonDrucken.Margin = new System.Windows.Forms.Padding(2); - this.buttonDrucken.Name = "buttonDrucken"; - this.buttonDrucken.Size = new System.Drawing.Size(286, 41); - this.buttonDrucken.TabIndex = 13; - this.buttonDrucken.Text = "Etikett-Drucken"; - this.buttonDrucken.UseVisualStyleBackColor = false; - this.buttonDrucken.Click += new System.EventHandler(this.buttonDrucken_Click); - // - // groupBoxEtikett - // - this.groupBoxEtikett.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.groupBoxEtikett.Controls.Add(this.textBoxCont); - this.groupBoxEtikett.Controls.Add(this.label5); - this.groupBoxEtikett.Controls.Add(this.cBNoCont); - this.groupBoxEtikett.Controls.Add(this.rBDI); - this.groupBoxEtikett.Controls.Add(this.rBMI); - this.groupBoxEtikett.Controls.Add(this.rBDO); - this.groupBoxEtikett.Controls.Add(this.rBFR); - this.groupBoxEtikett.Controls.Add(this.rBMO); - this.groupBoxEtikett.Controls.Add(this.dTPLiefertag); - this.groupBoxEtikett.Controls.Add(this.label1); - this.groupBoxEtikett.Controls.Add(this.pictureBoxMinus); - this.groupBoxEtikett.Controls.Add(this.pictureBoxPlus); - this.groupBoxEtikett.Controls.Add(this.buttonDrucken); - this.groupBoxEtikett.Controls.Add(this.pictureBoxEntwurf); - this.groupBoxEtikett.Controls.Add(this.label10); - this.groupBoxEtikett.Controls.Add(this.buttonKundeNr); - this.groupBoxEtikett.ForeColor = System.Drawing.Color.White; - this.groupBoxEtikett.Location = new System.Drawing.Point(668, 650); - this.groupBoxEtikett.Margin = new System.Windows.Forms.Padding(2); - this.groupBoxEtikett.Name = "groupBoxEtikett"; - this.groupBoxEtikett.Padding = new System.Windows.Forms.Padding(2); - this.groupBoxEtikett.Size = new System.Drawing.Size(302, 412); - this.groupBoxEtikett.TabIndex = 2; - this.groupBoxEtikett.TabStop = false; - this.groupBoxEtikett.Text = "Etikett-Druck"; - this.groupBoxEtikett.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(218, 181); - this.textBoxCont.MaxLength = 2; - this.textBoxCont.Name = "textBoxCont"; - this.textBoxCont.Size = new System.Drawing.Size(39, 40); - this.textBoxCont.TabIndex = 45; - this.textBoxCont.Text = "0"; - this.textBoxCont.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.textBoxCont.TextChanged += new System.EventHandler(this.textBoxCont_TextChanged); - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.label5.AutoSize = true; - this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(136, 318); - this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(138, 16); - this.label5.TabIndex = 44; - this.label5.Text = "Container ausblenden"; - // - // cBNoCont - // - this.cBNoCont.AutoSize = true; - this.cBNoCont.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; - this.cBNoCont.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cBNoCont.Location = new System.Drawing.Point(138, 317); - this.cBNoCont.Name = "cBNoCont"; - this.cBNoCont.Size = new System.Drawing.Size(157, 20); - this.cBNoCont.TabIndex = 42; - this.cBNoCont.Text = "Container ausblenden"; - this.cBNoCont.UseVisualStyleBackColor = true; - this.cBNoCont.CheckedChanged += new System.EventHandler(this.cBNoCont_CheckedChanged); - this.cBNoCont.Click += new System.EventHandler(this.cBNoCont_Click); - // - // rBDI - // - this.rBDI.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.rBDI.Appearance = System.Windows.Forms.Appearance.Button; - this.rBDI.BackColor = System.Drawing.SystemColors.ButtonFace; - this.rBDI.Enabled = false; - this.rBDI.FlatAppearance.BorderSize = 0; - this.rBDI.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.rBDI.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rBDI.ForeColor = System.Drawing.Color.Black; - this.rBDI.Location = new System.Drawing.Point(72, 89); - this.rBDI.Margin = new System.Windows.Forms.Padding(2); - this.rBDI.Name = "rBDI"; - this.rBDI.Size = new System.Drawing.Size(45, 45); - this.rBDI.TabIndex = 38; - this.rBDI.TabStop = true; - this.rBDI.Text = "DI"; - this.rBDI.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.rBDI.UseVisualStyleBackColor = false; - this.rBDI.CheckedChanged += new System.EventHandler(this.Liefertag_rB_Checked); - this.rBDI.Click += new System.EventHandler(this.Liefertag_rB_Click); - // - // rBMI - // - this.rBMI.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.rBMI.Appearance = System.Windows.Forms.Appearance.Button; - this.rBMI.BackColor = System.Drawing.SystemColors.ButtonFace; - this.rBMI.Enabled = false; - this.rBMI.FlatAppearance.BorderSize = 0; - this.rBMI.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.rBMI.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rBMI.ForeColor = System.Drawing.Color.Black; - this.rBMI.Location = new System.Drawing.Point(131, 89); - this.rBMI.Margin = new System.Windows.Forms.Padding(2); - this.rBMI.Name = "rBMI"; - this.rBMI.Size = new System.Drawing.Size(45, 45); - this.rBMI.TabIndex = 39; - this.rBMI.TabStop = true; - this.rBMI.Text = "MI"; - this.rBMI.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.rBMI.UseVisualStyleBackColor = false; - this.rBMI.CheckedChanged += new System.EventHandler(this.Liefertag_rB_Checked); - this.rBMI.Click += new System.EventHandler(this.Liefertag_rB_Click); - // - // rBDO - // - this.rBDO.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.rBDO.Appearance = System.Windows.Forms.Appearance.Button; - this.rBDO.BackColor = System.Drawing.SystemColors.ButtonFace; - this.rBDO.Enabled = false; - this.rBDO.FlatAppearance.BorderSize = 0; - this.rBDO.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.rBDO.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rBDO.ForeColor = System.Drawing.Color.Black; - this.rBDO.Location = new System.Drawing.Point(188, 89); - this.rBDO.Margin = new System.Windows.Forms.Padding(2); - this.rBDO.Name = "rBDO"; - this.rBDO.Size = new System.Drawing.Size(45, 45); - this.rBDO.TabIndex = 40; - this.rBDO.TabStop = true; - this.rBDO.Text = "DO"; - this.rBDO.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.rBDO.UseVisualStyleBackColor = false; - this.rBDO.CheckedChanged += new System.EventHandler(this.Liefertag_rB_Checked); - this.rBDO.Click += new System.EventHandler(this.Liefertag_rB_Click); - // - // rBFR - // - this.rBFR.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.rBFR.Appearance = System.Windows.Forms.Appearance.Button; - this.rBFR.BackColor = System.Drawing.SystemColors.ButtonFace; - this.rBFR.Enabled = false; - this.rBFR.FlatAppearance.BorderSize = 0; - this.rBFR.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.rBFR.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rBFR.ForeColor = System.Drawing.Color.Black; - this.rBFR.Location = new System.Drawing.Point(245, 89); - this.rBFR.Margin = new System.Windows.Forms.Padding(2); - this.rBFR.Name = "rBFR"; - this.rBFR.Size = new System.Drawing.Size(45, 45); - this.rBFR.TabIndex = 41; - this.rBFR.TabStop = true; - this.rBFR.Text = "FR"; - this.rBFR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.rBFR.UseVisualStyleBackColor = false; - this.rBFR.CheckedChanged += new System.EventHandler(this.Liefertag_rB_Checked); - this.rBFR.Click += new System.EventHandler(this.Liefertag_rB_Click); - // - // rBMO - // - this.rBMO.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.rBMO.Appearance = System.Windows.Forms.Appearance.Button; - this.rBMO.BackColor = System.Drawing.SystemColors.ButtonFace; - this.rBMO.Enabled = false; - this.rBMO.FlatAppearance.BorderSize = 0; - this.rBMO.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.rBMO.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rBMO.ForeColor = System.Drawing.Color.Black; - this.rBMO.Location = new System.Drawing.Point(13, 89); - this.rBMO.Margin = new System.Windows.Forms.Padding(2); - this.rBMO.Name = "rBMO"; - this.rBMO.Size = new System.Drawing.Size(45, 45); - this.rBMO.TabIndex = 37; - this.rBMO.TabStop = true; - this.rBMO.Tag = ""; - this.rBMO.Text = "MO"; - this.rBMO.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.rBMO.UseVisualStyleBackColor = false; - this.rBMO.CheckedChanged += new System.EventHandler(this.Liefertag_rB_Checked); - this.rBMO.Click += new System.EventHandler(this.Liefertag_rB_Click); - // - // dTPLiefertag - // - this.dTPLiefertag.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.dTPLiefertag.CalendarFont = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.dTPLiefertag.Cursor = System.Windows.Forms.Cursors.Default; - this.dTPLiefertag.CustomFormat = ""; - this.dTPLiefertag.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.dTPLiefertag.Format = System.Windows.Forms.DateTimePickerFormat.Short; - this.dTPLiefertag.Location = new System.Drawing.Point(163, 143); - this.dTPLiefertag.Name = "dTPLiefertag"; - this.dTPLiefertag.Size = new System.Drawing.Size(132, 26); - this.dTPLiefertag.TabIndex = 36; - this.dTPLiefertag.ValueChanged += new System.EventHandler(this.dTPLiefertag_ValueChanged); - this.dTPLiefertag.Leave += new System.EventHandler(this.dTPLiefertag_Leave); - // - // label1 - // - this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - 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(14, 17); - this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(79, 20); - this.label1.TabIndex = 34; - this.label1.Text = "Kunde Nr:"; - // - // pictureBoxMinus - // - this.pictureBoxMinus.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.pictureBoxMinus.BackColor = System.Drawing.Color.Gray; - this.pictureBoxMinus.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxMinus.Image"))); - this.pictureBoxMinus.Location = new System.Drawing.Point(181, 181); - this.pictureBoxMinus.Margin = new System.Windows.Forms.Padding(2); - this.pictureBoxMinus.Name = "pictureBoxMinus"; - this.pictureBoxMinus.Size = new System.Drawing.Size(38, 40); - this.pictureBoxMinus.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBoxMinus.TabIndex = 33; - this.pictureBoxMinus.TabStop = false; - this.pictureBoxMinus.Click += new System.EventHandler(this.Container_Click); - // - // pictureBoxPlus - // - this.pictureBoxPlus.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.pictureBoxPlus.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); - this.pictureBoxPlus.Enabled = false; - this.pictureBoxPlus.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxPlus.Image"))); - this.pictureBoxPlus.Location = new System.Drawing.Point(257, 181); - this.pictureBoxPlus.Margin = new System.Windows.Forms.Padding(2); - this.pictureBoxPlus.Name = "pictureBoxPlus"; - this.pictureBoxPlus.Size = new System.Drawing.Size(38, 40); - this.pictureBoxPlus.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBoxPlus.TabIndex = 32; - this.pictureBoxPlus.TabStop = false; - this.pictureBoxPlus.Click += new System.EventHandler(this.Container_Click); - // - // pictureBoxEntwurf - // - this.pictureBoxEntwurf.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.pictureBoxEntwurf.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.pictureBoxEntwurf.Location = new System.Drawing.Point(9, 232); - this.pictureBoxEntwurf.Margin = new System.Windows.Forms.Padding(2); - this.pictureBoxEntwurf.Name = "pictureBoxEntwurf"; - this.pictureBoxEntwurf.Size = new System.Drawing.Size(286, 80); - this.pictureBoxEntwurf.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBoxEntwurf.TabIndex = 15; - this.pictureBoxEntwurf.TabStop = false; - // - // buttonKundeNr - // - this.buttonKundeNr.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.buttonKundeNr.BackColor = System.Drawing.Color.White; - this.buttonKundeNr.Enabled = false; - this.buttonKundeNr.FlatAppearance.BorderSize = 0; - this.buttonKundeNr.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.buttonKundeNr.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.buttonKundeNr.ForeColor = System.Drawing.Color.Black; - this.buttonKundeNr.Location = new System.Drawing.Point(9, 37); - this.buttonKundeNr.Margin = new System.Windows.Forms.Padding(2); - this.buttonKundeNr.Name = "buttonKundeNr"; - this.buttonKundeNr.Size = new System.Drawing.Size(286, 41); - this.buttonKundeNr.TabIndex = 35; - this.buttonKundeNr.Text = "Auftrag in der Liste wählen"; - this.buttonKundeNr.UseVisualStyleBackColor = false; - // // buttonNeuerAuftrag // this.buttonNeuerAuftrag.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); @@ -966,26 +654,26 @@ | System.Windows.Forms.AnchorStyles.Right))); this.chartFehlmenge.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101))))); this.chartFehlmenge.BorderSkin.PageColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101))))); - chartArea2.InnerPlotPosition.Auto = false; - chartArea2.InnerPlotPosition.Height = 92.2266F; - chartArea2.InnerPlotPosition.Width = 76.05405F; - chartArea2.InnerPlotPosition.X = 20.54054F; - chartArea2.Name = "ChartArea1"; - this.chartFehlmenge.ChartAreas.Add(chartArea2); - legend2.Name = "Legend1"; - this.chartFehlmenge.Legends.Add(legend2); + chartArea1.InnerPlotPosition.Auto = false; + chartArea1.InnerPlotPosition.Height = 92.2266F; + chartArea1.InnerPlotPosition.Width = 76.05405F; + chartArea1.InnerPlotPosition.X = 20.54054F; + chartArea1.Name = "ChartArea1"; + this.chartFehlmenge.ChartAreas.Add(chartArea1); + legend1.Name = "Legend1"; + this.chartFehlmenge.Legends.Add(legend1); this.chartFehlmenge.Location = new System.Drawing.Point(908, 12); this.chartFehlmenge.Name = "chartFehlmenge"; - series2.ChartArea = "ChartArea1"; - series2.Legend = "Legend1"; - series2.Name = "Series1"; - this.chartFehlmenge.Series.Add(series2); + series1.ChartArea = "ChartArea1"; + series1.Legend = "Legend1"; + series1.Name = "Series1"; + this.chartFehlmenge.Series.Add(series1); this.chartFehlmenge.Size = new System.Drawing.Size(301, 434); this.chartFehlmenge.TabIndex = 2; this.chartFehlmenge.Text = "chart1"; - title2.Name = "Title1"; - title2.Text = "Hallo Test"; - this.chartFehlmenge.Titles.Add(title2); + title1.Name = "Title1"; + title1.Text = "Hallo Test"; + this.chartFehlmenge.Titles.Add(title1); this.chartFehlmenge.Visible = false; // // groupBoxKndInfo @@ -1039,11 +727,30 @@ this.labelAufgabe.TabIndex = 1; this.labelAufgabe.Text = "label3"; // + // buttonTourenListe + // + this.buttonTourenListe.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonTourenListe.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.buttonTourenListe.BackColor = System.Drawing.Color.PaleVioletRed; + this.buttonTourenListe.FlatAppearance.BorderSize = 0; + this.buttonTourenListe.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonTourenListe.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.buttonTourenListe.ForeColor = System.Drawing.Color.Black; + this.buttonTourenListe.Location = new System.Drawing.Point(413, 649); + this.buttonTourenListe.Margin = new System.Windows.Forms.Padding(2); + this.buttonTourenListe.Name = "buttonTourenListe"; + this.buttonTourenListe.Size = new System.Drawing.Size(200, 41); + this.buttonTourenListe.TabIndex = 66; + this.buttonTourenListe.Text = "Tourenliste Drucken"; + this.buttonTourenListe.UseVisualStyleBackColor = false; + this.buttonTourenListe.Click += new System.EventHandler(this.buttonTourenListe_Click); + // // FormExpedit // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101))))); this.ClientSize = new System.Drawing.Size(1221, 703); + this.Controls.Add(this.buttonTourenListe); this.Controls.Add(this.groupBoxKndInfo); this.Controls.Add(this.chartFehlmenge); this.Controls.Add(this.buttonReklamation); @@ -1053,7 +760,6 @@ this.Controls.Add(this.buttonNeuerAuftrag); this.Controls.Add(this.buttonSWS_Drucken); this.Controls.Add(this.tabControlAuftragList); - this.Controls.Add(this.groupBoxEtikett); this.Controls.Add(this.dGArtikel); this.Controls.Add(this.groupBoxStatistik); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; @@ -1069,11 +775,6 @@ this.Load += new System.EventHandler(this.FormExpedit_Load); this.Shown += new System.EventHandler(this.FormExpedit_Shown); this.Resize += new System.EventHandler(this.FormExpedit_Resize); - this.groupBoxEtikett.ResumeLayout(false); - this.groupBoxEtikett.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxMinus)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxPlus)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxEntwurf)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dGArtikel)).EndInit(); this.tabPageSonder.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.objectListViewSonder)).EndInit(); @@ -1094,26 +795,9 @@ } #endregion - private System.Windows.Forms.Label label10; - private System.Windows.Forms.Button buttonDrucken; - private System.Windows.Forms.PictureBox pictureBoxEntwurf; - private System.Windows.Forms.GroupBox groupBoxEtikett; - private System.Windows.Forms.PictureBox pictureBoxMinus; - private System.Windows.Forms.PictureBox pictureBoxPlus; - private System.Windows.Forms.Label label1; private System.Windows.Forms.Button buttonSWS_Drucken; - private System.Windows.Forms.Button buttonKundeNr; - private System.Windows.Forms.DateTimePicker dTPLiefertag; - private System.Windows.Forms.RadioButton rBDI; - private System.Windows.Forms.RadioButton rBMI; - private System.Windows.Forms.RadioButton rBDO; - private System.Windows.Forms.RadioButton rBFR; - private System.Windows.Forms.RadioButton rBMO; - private System.Windows.Forms.CheckBox cBNoCont; private System.Windows.Forms.Button buttonNeuerAuftrag; private System.Windows.Forms.DataGridView dGArtikel; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.TextBox textBoxCont; private System.Windows.Forms.TabPage tabPageSonder; private BrightIdeasSoftware.ObjectListView objectListViewSonder; private System.Windows.Forms.TabPage tabPageAll; @@ -1155,5 +839,6 @@ private System.Windows.Forms.TableLayoutPanel tableLayoutPanelInfo; private System.Windows.Forms.Label labelAnmerkung; private System.Windows.Forms.Label labelAufgabe; + private System.Windows.Forms.Button buttonTourenListe; } } \ No newline at end of file diff --git a/AA-Forms/FormExpedit.cs b/AA-Forms/FormExpedit.cs index 2e3dfc9..79c6bea 100644 --- a/AA-Forms/FormExpedit.cs +++ b/AA-Forms/FormExpedit.cs @@ -11,6 +11,7 @@ using System.Diagnostics; using System.Drawing; using System.Linq; using System.Net.Sockets; +using System.Reflection; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml.Resolvers; @@ -87,6 +88,7 @@ namespace Deckungsbeitrag this.Cursor = Cursors.WaitCursor; this.Visible = false; this.SuspendLayout(); + this.Text += " Version: " + Assembly.GetExecutingAssembly().GetName().Version; _settings.Load(); @@ -124,17 +126,6 @@ namespace Deckungsbeitrag string.Format("Laden fehlgeschlagen: {0}", ex.Message)))); } }); - - - //TODO: Wenn GroupBox nicht notwendig, dann löschen. - //Load_Etikett_GroupBox(); - this.groupBoxEtikett.Visible = false; - - if (letzterLiefertag != null) this.dTPLiefertag.Value = (DateTime)letzterLiefertag; - else this.dTPLiefertag.Value = DateTime.Today.AddDays(1); - - if (this.kunde != null) Funktionen.Get_RadioButtons(this.groupBoxEtikett); - } @@ -146,22 +137,22 @@ namespace Deckungsbeitrag switch (this.benutzer.Rolle) { case BenutzerRolle.Verwaltung: - this.buttonDrucken.Enabled = this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false; - this.groupBoxEtikett.Enabled = false; + this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false; + GetUnvisibleButtonColumn(); break; case BenutzerRolle.Fahrer: - this.buttonDrucken.Enabled = this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false; - this.groupBoxEtikett.Enabled = false; + this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false; + GetUnvisibleButtonColumn(); break; case BenutzerRolle.Admin: break; case BenutzerRolle.Waschstrasse: - this.buttonDrucken.Enabled = this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false; - this.groupBoxEtikett.Enabled = false; + this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false; + GetUnvisibleButtonColumn(); break; @@ -170,15 +161,15 @@ namespace Deckungsbeitrag case BenutzerRolle.Expedit: break; case BenutzerRolle.Frottee: - this.buttonDrucken.Visible = this.buttonNeuerAuftrag.Visible = this.buttonSWS_Drucken.Visible = false; + this.buttonNeuerAuftrag.Visible = this.buttonSWS_Drucken.Visible = false; this.buttonStats.Visible = this.buttonEinstellung.Visible = this.buttonReklamation.Visible = false; // buttonReklamation einblenden wenn Frottee-Expedit auch Reklamation bearbeitet. - this.groupBoxEtikett.Enabled = false; + GetUnvisibleButtonColumn(); break; case BenutzerRolle.Flach: - this.buttonDrucken.Enabled = this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false; - this.groupBoxEtikett.Enabled = false; + this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false; + // WENN Rolle Frottee (Expedit Frottee) dann ButtonClick deaktiviert. Nur Expedit kann abschließen GetUnvisibleButtonColumn(); @@ -361,97 +352,7 @@ namespace Deckungsbeitrag //} } - #region Container-Events - - /// - /// Containeranzahl bearbeiten und Funktion wenn Text geändert wird. - /// - /// - /// - 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")) - { - if (cont > 0) - { - cont--; - } - //else { pb.BackColor = Color.Gray; pb.Enabled = false; } - } - this.textBoxCont.Text = cont.ToString(); - //Load_Etikett_GroupBox(); - } - private void textBoxCont_TextChanged(object sender, EventArgs e) - { - if(int.TryParse(this.textBoxCont.Text, out int result)) - { - if (this.auftrag != null) { neuecontclean = result; altecontclean = this.auftrag.ContainerClean; } - - if (result == 0) { this.pictureBoxMinus.Enabled = false; this.pictureBoxMinus.BackColor = Color.Gray; } - else { this.pictureBoxMinus.Enabled = true; this.pictureBoxMinus.BackColor = Color.Red; } - - if (!nocontclicked) - { - if (result >= 10) { nocont = true; cBNoCont.Checked = true; } - else { nocont = false; cBNoCont.Checked = false; } - } - Load_Etikett_GroupBox(); - } - else - { - meldung.Eingabefehler(); - this.textBoxCont.Text = "0"; - this.textBoxCont.Focus(); - } - } - private void cBNoCont_CheckedChanged(object sender, EventArgs e) - { - if (cBNoCont.Checked) nocont = true; - else nocont = false; - - if (kunde != null) Load_Etikett_GroupBox(); - } - private void cBNoCont_Click(object sender, EventArgs e) - { - if (cBNoCont.Checked) nocont = nocontclicked = true; - else { nocont = false; nocontclicked = true; } - } - - #endregion - #region Button_Click-Events - private void buttonDrucken_Click(object sender, EventArgs e) - { - if (this.auftrag.AufgabeID != null) - { - if (meldung.GetAchtung(this, $"Bei dem ausgewählten Auftrag ist die Aufgabe {Aufgabe.GetAufgabe(null, auftrag.AufgabeID).Bezeichnung} zu erledigen. Hast du die Aufgabe erledigt? ", false) == DialogResult.No) return; - } - - if (this.textBoxCont.Text != "0") - { - //AUFTRAG UPDATE - this.auftrag.ContainerClean = int.Parse(this.textBoxCont.Text); - letzterLiefertag = this.auftrag.Liefertag = this.dTPLiefertag.Value; - - //ETIKETT DRUCKEN - DialogResult result = Funktionen.Etikett_Drucken(auftrag, nocont); - if (result == DialogResult.OK) - { - this.auftrag.Gedruckt = this.auftrag.Erstellt = DateTime.Now; - this.auftrag.GedrucktVon = this.auftrag.ErstelltVon = (int)this.benutzer.BenutzerID; - this.auftrag.Status = AuftragStatus.Vorbereitet; - this.auftrag.Save(); - this.auftrag = null; - //FormExpedit_Load(this, e); - this.dGArtikel.DataSource = null; - this.dGArtikel.Rows.Clear(); - } - } - } private async void buttonNeuerAuftrag_Click(object sender, EventArgs e) { FormNeuerAuftrag neuerAuftrag = new FormNeuerAuftrag(benutzer, this.letzterLiefertag, AuftragTyp.Standart); @@ -720,7 +621,7 @@ namespace Deckungsbeitrag olv.Sort(); // ========== SPALTEN ANPASSEN ========== - Funktionen.Columns_Resize(olv); // Externe Funktion für responsive Spaltenbreiten + olv = Funktionen.Columns_Resize(null, olv).olv; // Externe Funktion für responsive Spaltenbreiten olv.FilterMenuBuildStrategy = new MeinFilterMenu(); // ========== AUFRÄUMEN & AKTIVIEREN ========== @@ -807,8 +708,6 @@ namespace Deckungsbeitrag { fehlermeldung.AuftragFertig(); } - foreach (Control ctr in this.groupBoxEtikett.Controls) if (ctr.Enabled == false) ctr.Enabled = true; - this.buttonKundeNr.Enabled = false; olv.Focus(); @@ -988,7 +887,7 @@ namespace Deckungsbeitrag if (this.auftrag.ContainerClean != 0) { //AUFTRAG UPDATE - letzterLiefertag = this.auftrag.Liefertag = this.dTPLiefertag.Value; + letzterLiefertag = this.auftrag.Liefertag; } else @@ -1131,47 +1030,6 @@ namespace Deckungsbeitrag this.dGArtikel.Visible = false; } - #region Liefertag-Events - /// - /// Liefertag wird ermittelt und in Day of Week umgerechnet. RadioButtons werden Checked oder Unchecked und Click wird registriert. - /// - private void dTPLiefertag_Leave(object sender, EventArgs e) - { - foreach (RadioButton liefertag in this.groupBoxEtikett.Controls.OfType()) - { - if (liefertag.Name.Contains(((Liefertag)dTPLiefertag.Value.DayOfWeek).ToString())) liefertag.Checked = true; - } - } - private void Liefertag_rB_Checked(object sender, EventArgs e) - { - foreach (RadioButton radioButton in this.groupBoxEtikett.Controls.OfType()) - { - if (radioButton.Checked) radioButton.BackColor = Color.Yellow; - else { radioButton.BackColor = Color.Gray; } - } - } - private void Liefertag_rB_Click(object sender, EventArgs e) - { - RadioButton radioButton = (RadioButton)sender; - foreach (Liefertag tag in Enum.GetValues(typeof(Liefertag))) - { - if (radioButton.Name.Contains(tag.ToString())) this.dTPLiefertag.Value = Berechnungen.GetNextWeekday((int)tag); - } - this.dTPLiefertag.Enabled = false; - } - private void dTPLiefertag_ValueChanged(object sender, EventArgs e) - { - dTPLiefertag_Leave(sender, e); - - if (this.auftrag != null) - { - this.auftrag.Liefertag = this.dTPLiefertag.Value; - this.auftrag.Save(); - Load_Etikett_GroupBox(); - this.objectListViewAuftrag.RefreshObject(this.auftrag); - } - } - #endregion /// /// Wenn das dritte Tab gewählt ist, wird die GroupBox Etikett ausgeblendet. 3.Tab wäre für vergangene Aufträge - weshalb kein Etikett mehr notwendig. @@ -1181,8 +1039,6 @@ namespace Deckungsbeitrag private void tabControlAuftragList_Selected(object sender, TabControlEventArgs e) { TabControl tabControl = (TabControl)sender; - if(tabControl.SelectedIndex < 3) { this.groupBoxEtikett.Visible = false; } - if(tabControl.SelectedIndex == 3) { this.groupBoxEtikett.Visible = false; } } /// @@ -1403,6 +1259,19 @@ namespace Deckungsbeitrag this.Cursor = Cursors.Default; WindowState = FormWindowState.Maximized; } + + private void buttonTourenListe_Click(object sender, EventArgs e) + { + List fahrerliste = Benutzer.GetFahrerList(); + Benutzer fahrer = new Benutzer(); + FormBenutzerVW benutzerVW = new FormBenutzerVW(fahrerliste); + if (benutzerVW.ShowDialog() == DialogResult.OK) + { + fahrer = benutzerVW.user; + List auftragliste = Auftrag.GetTourenListe(fahrer); + if (fahrer != null) Funktionen.TourenListe_Drucken(auftragliste, fahrer, this); + } + } } } //INSTALL-REMINDER: Spalte Abteilungen in Auftrag muss in Wirl_DB_17012023 eingefügt werden. diff --git a/AA-Forms/FormExpedit.resx b/AA-Forms/FormExpedit.resx index 1b1f7ae..4df8578 100644 --- a/AA-Forms/FormExpedit.resx +++ b/AA-Forms/FormExpedit.resx @@ -117,81 +117,37 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAADJJREFUOE9jYBgF1Affv393IITR9aCAb9++/SeE0fWgAJACJycnnJg+BhDC6HpG - wUADABXZimqO3LMmAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAAFZJREFUOE+9kEEKACEMxHxb//+eXruwbGEwHhwKK+QSaqSuqloTIFwgXCBcKL6T - maW0xzyEBCLixQroqxpo9vljoC/u/BcYrTD+RA0o1wEXCBcIFwiXB07Nzd/k/DvRAAAAAElFTkSuQmCC - - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - AAABAAEAAAAAAAEAIAC5FQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAFv diff --git a/AA-Forms/FormFehlmengeCount.cs b/AA-Forms/FormFehlmengeCount.cs index a098d76..263fa62 100644 --- a/AA-Forms/FormFehlmengeCount.cs +++ b/AA-Forms/FormFehlmengeCount.cs @@ -8,6 +8,7 @@ using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; +using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Web.UI.WebControls.WebParts; @@ -51,7 +52,7 @@ namespace Deckungsbeitrag private void FormFehlmengeCount_Load(object sender, EventArgs e) { videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); - + this.Text = " Version: " + Assembly.GetExecutingAssembly().GetName().Version; //Kunde wird durch Scan oder Handeingabe Ausgewählt. //this.kunde = Funktionen.KundenAuswahl(); diff --git a/AA-Forms/FormListe.cs b/AA-Forms/FormListe.cs index 3fa448e..dcac17a 100644 --- a/AA-Forms/FormListe.cs +++ b/AA-Forms/FormListe.cs @@ -88,7 +88,7 @@ namespace Deckungsbeitrag // Timer für Wartezeit bis TextChanged eintritt. timer = new Timer(); timer.Interval = 700; // 0,7 Sekunden - //timer.Tick += Timer_Tick; + timer.Tick += Timer_Tick; this.buttonOK.Visible = this.buttonOK.Enabled = false; @@ -271,6 +271,30 @@ namespace Deckungsbeitrag timer.Stop(); // Alten Timer beenden timer.Start(); // Neuen Timer starten } + private void Timer_Tick(object sender, EventArgs e) + { + timer.Stop(); // Timer stoppen + + if (string.IsNullOrEmpty(textBoxKunde.Text)) { return; } + + // Wenn kein Fragezeichen am Anfang wird Kundenliste erstellt. + if (!textBoxKunde.Text.StartsWith("?")) + { + this.Kundenliste = Kunde.GetTmpList(this.textBoxKunde.Text); + listViewKunde_Load(); + return; + } + + // Wenn Fragezeichen am Anfang wird OK-Button aktiviert. + if (textBoxKunde.Text.StartsWith("?")) + { + this.listViewKunde.Visible = this.listViewKunde.Enabled = false; + this.buttonOK.Visible = this.buttonOK.Enabled = true; + this.Height = this.buttonOK.Bottom + 100; + } + + } + private void listViewKunde_MouseClick(object sender, MouseEventArgs e) { ListViewItem item = this.listViewKunde.GetItemAt(e.X, e.Y); diff --git a/AA-Forms/FormMain.Designer.cs b/AA-Forms/FormMain.Designer.cs index 1dc8716..9db9a8c 100644 --- a/AA-Forms/FormMain.Designer.cs +++ b/AA-Forms/FormMain.Designer.cs @@ -47,6 +47,35 @@ namespace Deckungsbeitrag this.tSBTourenplanung = new System.Windows.Forms.ToolStripButton(); this.toolStripBeenden = new System.Windows.Forms.ToolStripButton(); this.panelMain = new System.Windows.Forms.Panel(); + this.groupBoxContAnz = new System.Windows.Forms.GroupBox(); + this.tLPContAnz = new System.Windows.Forms.TableLayoutPanel(); + this.label14 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.labelContGes = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.labelContZahl5 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.labelZeit52 = new System.Windows.Forms.Label(); + this.labelZeit42 = new System.Windows.Forms.Label(); + this.labelZeit32 = new System.Windows.Forms.Label(); + this.labelZeit22 = new System.Windows.Forms.Label(); + this.labelZeit12 = new System.Windows.Forms.Label(); + this.labelZeit5 = new System.Windows.Forms.Label(); + this.labelZeit4 = new System.Windows.Forms.Label(); + this.labelZeit3 = new System.Windows.Forms.Label(); + this.labelZeit2 = new System.Windows.Forms.Label(); + this.labelZeit1 = new System.Windows.Forms.Label(); + this.labelContZahl4 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.labelContZahl3 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.labelContZahl2 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.labelContZahl1 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); this.groupBoxSaison = new System.Windows.Forms.GroupBox(); this.comboBoxSaison = new System.Windows.Forms.ComboBox(); this.buttonNeuerStand = new System.Windows.Forms.Button(); @@ -92,6 +121,8 @@ namespace Deckungsbeitrag this.labelScannTest = new System.Windows.Forms.Label(); this.toolStripMenu.SuspendLayout(); this.panelMain.SuspendLayout(); + this.groupBoxContAnz.SuspendLayout(); + this.tLPContAnz.SuspendLayout(); this.groupBoxSaison.SuspendLayout(); this.groupBoxStatistik.SuspendLayout(); this.tableLayoutPanelStatistik.SuspendLayout(); @@ -427,6 +458,7 @@ namespace Deckungsbeitrag // this.panelMain.AllowDrop = true; this.panelMain.BackColor = System.Drawing.Color.White; + this.panelMain.Controls.Add(this.groupBoxContAnz); this.panelMain.Controls.Add(this.groupBoxSaison); this.panelMain.Controls.Add(this.buttonNeuerStand); this.panelMain.Controls.Add(this.buttonNeueInventur); @@ -443,20 +475,432 @@ namespace Deckungsbeitrag this.panelMain.Name = "panelMain"; this.panelMain.Size = new System.Drawing.Size(938, 689); this.panelMain.TabIndex = 5; - this.panelMain.DragDrop += new System.Windows.Forms.DragEventHandler(this.panelMain_DragDrop); - this.panelMain.DragEnter += new System.Windows.Forms.DragEventHandler(this.panelMain_DragEnter); this.panelMain.Paint += new System.Windows.Forms.PaintEventHandler(this.panelMain_Paint); // + // groupBoxContAnz + // + this.groupBoxContAnz.AutoSize = true; + this.groupBoxContAnz.Controls.Add(this.tLPContAnz); + this.groupBoxContAnz.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101))))); + this.groupBoxContAnz.Location = new System.Drawing.Point(324, 57); + this.groupBoxContAnz.Name = "groupBoxContAnz"; + this.groupBoxContAnz.Size = new System.Drawing.Size(305, 248); + this.groupBoxContAnz.TabIndex = 62; + this.groupBoxContAnz.TabStop = false; + this.groupBoxContAnz.Text = "CONT. ANZAHL / WASCHZEIT"; + this.groupBoxContAnz.GiveFeedback += new System.Windows.Forms.GiveFeedbackEventHandler(this.groupBox_GiveFeedback); + this.groupBoxContAnz.Paint += new System.Windows.Forms.PaintEventHandler(this.groupBox_Paint); + // + // tLPContAnz + // + this.tLPContAnz.AutoSize = true; + this.tLPContAnz.ColumnCount = 4; + this.tLPContAnz.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tLPContAnz.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tLPContAnz.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tLPContAnz.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tLPContAnz.Controls.Add(this.label14, 3, 6); + this.tLPContAnz.Controls.Add(this.label13, 2, 6); + this.tLPContAnz.Controls.Add(this.labelContGes, 1, 6); + this.tLPContAnz.Controls.Add(this.label9, 0, 6); + this.tLPContAnz.Controls.Add(this.label5, 3, 5); + this.tLPContAnz.Controls.Add(this.label4, 2, 5); + this.tLPContAnz.Controls.Add(this.labelContZahl5, 1, 5); + this.tLPContAnz.Controls.Add(this.label2, 0, 5); + this.tLPContAnz.Controls.Add(this.labelZeit52, 3, 4); + this.tLPContAnz.Controls.Add(this.labelZeit42, 3, 3); + this.tLPContAnz.Controls.Add(this.labelZeit32, 3, 2); + this.tLPContAnz.Controls.Add(this.labelZeit22, 3, 1); + this.tLPContAnz.Controls.Add(this.labelZeit12, 3, 0); + this.tLPContAnz.Controls.Add(this.labelZeit5, 2, 4); + this.tLPContAnz.Controls.Add(this.labelZeit4, 2, 3); + this.tLPContAnz.Controls.Add(this.labelZeit3, 2, 2); + this.tLPContAnz.Controls.Add(this.labelZeit2, 2, 1); + this.tLPContAnz.Controls.Add(this.labelZeit1, 2, 0); + this.tLPContAnz.Controls.Add(this.labelContZahl4, 1, 4); + this.tLPContAnz.Controls.Add(this.label1, 0, 4); + this.tLPContAnz.Controls.Add(this.labelContZahl3, 1, 3); + this.tLPContAnz.Controls.Add(this.label6, 0, 3); + this.tLPContAnz.Controls.Add(this.labelContZahl2, 1, 2); + this.tLPContAnz.Controls.Add(this.label8, 0, 2); + this.tLPContAnz.Controls.Add(this.labelContZahl1, 1, 1); + this.tLPContAnz.Controls.Add(this.label10, 0, 1); + this.tLPContAnz.Controls.Add(this.label12, 0, 0); + this.tLPContAnz.Location = new System.Drawing.Point(3, 19); + this.tLPContAnz.Name = "tLPContAnz"; + this.tLPContAnz.RowCount = 7; + this.tLPContAnz.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tLPContAnz.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tLPContAnz.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tLPContAnz.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tLPContAnz.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tLPContAnz.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tLPContAnz.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tLPContAnz.Size = new System.Drawing.Size(296, 210); + this.tLPContAnz.TabIndex = 0; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Dock = System.Windows.Forms.DockStyle.Right; + this.label14.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label14.ForeColor = System.Drawing.SystemColors.ControlText; + this.label14.Location = new System.Drawing.Point(249, 180); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(44, 30); + this.label14.TabIndex = 29; + this.label14.Text = "0,00"; + this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Dock = System.Windows.Forms.DockStyle.Right; + this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label13.ForeColor = System.Drawing.SystemColors.ControlText; + this.label13.Location = new System.Drawing.Point(199, 180); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(44, 30); + this.label13.TabIndex = 28; + this.label13.Text = "0,00"; + this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelContGes + // + this.labelContGes.AutoSize = true; + this.labelContGes.Dock = System.Windows.Forms.DockStyle.Left; + this.labelContGes.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContGes.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelContGes.Location = new System.Drawing.Point(134, 180); + this.labelContGes.Name = "labelContGes"; + this.labelContGes.Size = new System.Drawing.Size(59, 30); + this.labelContGes.TabIndex = 27; + this.labelContGes.Text = "Zahl 5"; + this.labelContGes.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Dock = System.Windows.Forms.DockStyle.Left; + this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label9.ForeColor = System.Drawing.SystemColors.ControlText; + this.label9.Location = new System.Drawing.Point(3, 180); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(72, 30); + this.label9.TabIndex = 25; + this.label9.Text = "Gesamt"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Dock = System.Windows.Forms.DockStyle.Right; + this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.ForeColor = System.Drawing.SystemColors.ControlText; + this.label5.Location = new System.Drawing.Point(253, 150); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(40, 30); + this.label5.TabIndex = 23; + this.label5.Text = "0,00"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Dock = System.Windows.Forms.DockStyle.Right; + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.ForeColor = System.Drawing.SystemColors.ControlText; + this.label4.Location = new System.Drawing.Point(203, 150); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(40, 30); + this.label4.TabIndex = 22; + this.label4.Text = "0,00"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelContZahl5 + // + this.labelContZahl5.AutoSize = true; + this.labelContZahl5.Dock = System.Windows.Forms.DockStyle.Left; + this.labelContZahl5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContZahl5.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelContZahl5.Location = new System.Drawing.Point(134, 150); + this.labelContZahl5.Name = "labelContZahl5"; + this.labelContZahl5.Size = new System.Drawing.Size(53, 30); + this.labelContZahl5.TabIndex = 21; + this.labelContZahl5.Text = "Zahl 5"; + this.labelContZahl5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Dock = System.Windows.Forms.DockStyle.Left; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.ForeColor = System.Drawing.SystemColors.ControlText; + this.label2.Location = new System.Drawing.Point(3, 150); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(90, 30); + this.label2.TabIndex = 20; + this.label2.Text = "Cont Rest"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // labelZeit52 + // + this.labelZeit52.AutoSize = true; + this.labelZeit52.Dock = System.Windows.Forms.DockStyle.Right; + this.labelZeit52.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelZeit52.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelZeit52.Location = new System.Drawing.Point(253, 120); + this.labelZeit52.Name = "labelZeit52"; + this.labelZeit52.Size = new System.Drawing.Size(40, 30); + this.labelZeit52.TabIndex = 19; + this.labelZeit52.Text = "0,00"; + this.labelZeit52.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelZeit42 + // + this.labelZeit42.AutoSize = true; + this.labelZeit42.Dock = System.Windows.Forms.DockStyle.Right; + this.labelZeit42.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelZeit42.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelZeit42.Location = new System.Drawing.Point(253, 90); + this.labelZeit42.Name = "labelZeit42"; + this.labelZeit42.Size = new System.Drawing.Size(40, 30); + this.labelZeit42.TabIndex = 18; + this.labelZeit42.Text = "0,00"; + this.labelZeit42.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelZeit32 + // + this.labelZeit32.AutoSize = true; + this.labelZeit32.Dock = System.Windows.Forms.DockStyle.Right; + this.labelZeit32.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelZeit32.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelZeit32.Location = new System.Drawing.Point(253, 60); + this.labelZeit32.Name = "labelZeit32"; + this.labelZeit32.Size = new System.Drawing.Size(40, 30); + this.labelZeit32.TabIndex = 17; + this.labelZeit32.Text = "0,00"; + this.labelZeit32.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelZeit22 + // + this.labelZeit22.AutoSize = true; + this.labelZeit22.Dock = System.Windows.Forms.DockStyle.Right; + this.labelZeit22.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelZeit22.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelZeit22.Location = new System.Drawing.Point(253, 30); + this.labelZeit22.Name = "labelZeit22"; + this.labelZeit22.Size = new System.Drawing.Size(40, 30); + this.labelZeit22.TabIndex = 16; + this.labelZeit22.Text = "0,00"; + this.labelZeit22.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelZeit12 + // + this.labelZeit12.AutoSize = true; + this.labelZeit12.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelZeit12.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelZeit12.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelZeit12.Location = new System.Drawing.Point(249, 0); + this.labelZeit12.Name = "labelZeit12"; + this.labelZeit12.Size = new System.Drawing.Size(44, 30); + this.labelZeit12.TabIndex = 15; + this.labelZeit12.Text = "2"; + this.labelZeit12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelZeit5 + // + this.labelZeit5.AutoSize = true; + this.labelZeit5.Dock = System.Windows.Forms.DockStyle.Right; + this.labelZeit5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelZeit5.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelZeit5.Location = new System.Drawing.Point(203, 120); + this.labelZeit5.Name = "labelZeit5"; + this.labelZeit5.Size = new System.Drawing.Size(40, 30); + this.labelZeit5.TabIndex = 14; + this.labelZeit5.Text = "0,00"; + this.labelZeit5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelZeit4 + // + this.labelZeit4.AutoSize = true; + this.labelZeit4.Dock = System.Windows.Forms.DockStyle.Right; + this.labelZeit4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelZeit4.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelZeit4.Location = new System.Drawing.Point(203, 90); + this.labelZeit4.Name = "labelZeit4"; + this.labelZeit4.Size = new System.Drawing.Size(40, 30); + this.labelZeit4.TabIndex = 13; + this.labelZeit4.Text = "0,00"; + this.labelZeit4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelZeit3 + // + this.labelZeit3.AutoSize = true; + this.labelZeit3.Dock = System.Windows.Forms.DockStyle.Right; + this.labelZeit3.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelZeit3.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelZeit3.Location = new System.Drawing.Point(203, 60); + this.labelZeit3.Name = "labelZeit3"; + this.labelZeit3.Size = new System.Drawing.Size(40, 30); + this.labelZeit3.TabIndex = 12; + this.labelZeit3.Text = "0,00"; + this.labelZeit3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelZeit2 + // + this.labelZeit2.AutoSize = true; + this.labelZeit2.Dock = System.Windows.Forms.DockStyle.Right; + this.labelZeit2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelZeit2.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelZeit2.Location = new System.Drawing.Point(203, 30); + this.labelZeit2.Name = "labelZeit2"; + this.labelZeit2.Size = new System.Drawing.Size(40, 30); + this.labelZeit2.TabIndex = 11; + this.labelZeit2.Text = "0,00"; + this.labelZeit2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelZeit1 + // + this.labelZeit1.AutoSize = true; + this.labelZeit1.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelZeit1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelZeit1.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelZeit1.Location = new System.Drawing.Point(199, 0); + this.labelZeit1.Name = "labelZeit1"; + this.labelZeit1.Size = new System.Drawing.Size(44, 30); + this.labelZeit1.TabIndex = 10; + this.labelZeit1.Text = "1"; + this.labelZeit1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // labelContZahl4 + // + this.labelContZahl4.AutoSize = true; + this.labelContZahl4.Dock = System.Windows.Forms.DockStyle.Left; + this.labelContZahl4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContZahl4.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelContZahl4.Location = new System.Drawing.Point(134, 120); + this.labelContZahl4.Name = "labelContZahl4"; + this.labelContZahl4.Size = new System.Drawing.Size(53, 30); + this.labelContZahl4.TabIndex = 9; + this.labelContZahl4.Text = "Zahl 5"; + this.labelContZahl4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.ForeColor = System.Drawing.SystemColors.ControlText; + this.label1.Location = new System.Drawing.Point(3, 120); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(118, 30); + this.label1.TabIndex = 8; + this.label1.Text = "Cont heute+3"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // labelContZahl3 + // + this.labelContZahl3.AutoSize = true; + this.labelContZahl3.Dock = System.Windows.Forms.DockStyle.Left; + this.labelContZahl3.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContZahl3.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelContZahl3.Location = new System.Drawing.Point(134, 90); + this.labelContZahl3.Name = "labelContZahl3"; + this.labelContZahl3.Size = new System.Drawing.Size(53, 30); + this.labelContZahl3.TabIndex = 7; + this.labelContZahl3.Text = "Zahl 4"; + this.labelContZahl3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Dock = System.Windows.Forms.DockStyle.Left; + this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label6.ForeColor = System.Drawing.SystemColors.ControlText; + this.label6.Location = new System.Drawing.Point(3, 90); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(118, 30); + this.label6.TabIndex = 6; + this.label6.Text = "Cont heute+2"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // labelContZahl2 + // + this.labelContZahl2.AutoSize = true; + this.labelContZahl2.Dock = System.Windows.Forms.DockStyle.Left; + this.labelContZahl2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContZahl2.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelContZahl2.Location = new System.Drawing.Point(134, 60); + this.labelContZahl2.Name = "labelContZahl2"; + this.labelContZahl2.Size = new System.Drawing.Size(53, 30); + this.labelContZahl2.TabIndex = 5; + this.labelContZahl2.Text = "Zahl 3"; + this.labelContZahl2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Dock = System.Windows.Forms.DockStyle.Left; + this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label8.ForeColor = System.Drawing.SystemColors.ControlText; + this.label8.Location = new System.Drawing.Point(3, 60); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(118, 30); + this.label8.TabIndex = 4; + this.label8.Text = "Cont heute+1"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // labelContZahl1 + // + this.labelContZahl1.AutoSize = true; + this.labelContZahl1.Dock = System.Windows.Forms.DockStyle.Left; + this.labelContZahl1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelContZahl1.ForeColor = System.Drawing.SystemColors.ControlText; + this.labelContZahl1.Location = new System.Drawing.Point(134, 30); + this.labelContZahl1.Name = "labelContZahl1"; + this.labelContZahl1.Size = new System.Drawing.Size(53, 30); + this.labelContZahl1.TabIndex = 3; + this.labelContZahl1.Text = "Zahl 2"; + this.labelContZahl1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Dock = System.Windows.Forms.DockStyle.Left; + this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label10.ForeColor = System.Drawing.SystemColors.ControlText; + this.label10.Location = new System.Drawing.Point(3, 30); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(98, 30); + this.label10.TabIndex = 2; + this.label10.Text = "Cont heute"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Dock = System.Windows.Forms.DockStyle.Left; + this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label12.ForeColor = System.Drawing.SystemColors.ControlText; + this.label12.Location = new System.Drawing.Point(3, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(125, 30); + this.label12.TabIndex = 0; + this.label12.Text = "Waschstraßen"; + this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // // groupBoxSaison // this.groupBoxSaison.Controls.Add(this.comboBoxSaison); this.groupBoxSaison.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101))))); - this.groupBoxSaison.Location = new System.Drawing.Point(8, 251); + this.groupBoxSaison.Location = new System.Drawing.Point(8, 457); this.groupBoxSaison.Name = "groupBoxSaison"; this.groupBoxSaison.Size = new System.Drawing.Size(279, 59); this.groupBoxSaison.TabIndex = 62; this.groupBoxSaison.TabStop = false; this.groupBoxSaison.Text = "AKTIVE SAISON"; + this.groupBoxSaison.GiveFeedback += new System.Windows.Forms.GiveFeedbackEventHandler(this.groupBox_GiveFeedback); this.groupBoxSaison.Paint += new System.Windows.Forms.PaintEventHandler(this.groupBox_Paint); // // comboBoxSaison @@ -479,7 +923,7 @@ namespace Deckungsbeitrag 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.Location = new System.Drawing.Point(8, 116); this.buttonNeuerStand.Margin = new System.Windows.Forms.Padding(5); this.buttonNeuerStand.Name = "buttonNeuerStand"; this.buttonNeuerStand.Size = new System.Drawing.Size(250, 41); @@ -488,8 +932,6 @@ namespace Deckungsbeitrag 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); // // buttonNeueInventur // @@ -500,7 +942,7 @@ namespace Deckungsbeitrag this.buttonNeueInventur.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.buttonNeueInventur.ForeColor = System.Drawing.Color.White; this.buttonNeueInventur.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; - this.buttonNeueInventur.Location = new System.Drawing.Point(268, 5); + this.buttonNeueInventur.Location = new System.Drawing.Point(8, 65); this.buttonNeueInventur.Margin = new System.Windows.Forms.Padding(5); this.buttonNeueInventur.Name = "buttonNeueInventur"; this.buttonNeueInventur.Size = new System.Drawing.Size(250, 41); @@ -509,8 +951,6 @@ namespace Deckungsbeitrag this.buttonNeueInventur.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.buttonNeueInventur.UseVisualStyleBackColor = false; this.buttonNeueInventur.Click += new System.EventHandler(this.buttonNeueInventur_Click); - this.buttonNeueInventur.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown); - this.buttonNeueInventur.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Button_MouseMove); // // buttonNeueAufgabe // @@ -521,7 +961,7 @@ namespace Deckungsbeitrag 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.Location = new System.Drawing.Point(8, 218); this.buttonNeueAufgabe.Margin = new System.Windows.Forms.Padding(5); this.buttonNeueAufgabe.Name = "buttonNeueAufgabe"; this.buttonNeueAufgabe.Size = new System.Drawing.Size(250, 41); @@ -530,8 +970,6 @@ namespace Deckungsbeitrag 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); // // buttonNeuerAuftrag // @@ -542,7 +980,7 @@ 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.ForeColor = System.Drawing.Color.White; this.buttonNeuerAuftrag.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; - this.buttonNeuerAuftrag.Location = new System.Drawing.Point(8, 5); + this.buttonNeuerAuftrag.Location = new System.Drawing.Point(8, 14); this.buttonNeuerAuftrag.Margin = new System.Windows.Forms.Padding(5); this.buttonNeuerAuftrag.Name = "buttonNeuerAuftrag"; this.buttonNeuerAuftrag.Size = new System.Drawing.Size(250, 41); @@ -551,8 +989,6 @@ namespace Deckungsbeitrag this.buttonNeuerAuftrag.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.buttonNeuerAuftrag.UseVisualStyleBackColor = false; this.buttonNeuerAuftrag.Click += new System.EventHandler(this.buttonNeuerAuftrag_Click); - this.buttonNeuerAuftrag.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown); - this.buttonNeuerAuftrag.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Button_MouseMove); // // buttonNeuerUser // @@ -563,7 +999,7 @@ 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.ForeColor = System.Drawing.Color.Black; this.buttonNeuerUser.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; - this.buttonNeuerUser.Location = new System.Drawing.Point(8, 56); + this.buttonNeuerUser.Location = new System.Drawing.Point(8, 167); this.buttonNeuerUser.Margin = new System.Windows.Forms.Padding(5); this.buttonNeuerUser.Name = "buttonNeuerUser"; this.buttonNeuerUser.Size = new System.Drawing.Size(250, 41); @@ -572,20 +1008,20 @@ namespace Deckungsbeitrag this.buttonNeuerUser.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.buttonNeuerUser.UseVisualStyleBackColor = false; this.buttonNeuerUser.Click += new System.EventHandler(this.buttonNeuerUser_Click); - this.buttonNeuerUser.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Button_MouseDown); - this.buttonNeuerUser.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Button_MouseMove); // // groupBoxStatistik // + this.groupBoxStatistik.AutoSize = true; this.groupBoxStatistik.Controls.Add(this.dateTimePicker1); this.groupBoxStatistik.Controls.Add(this.tableLayoutPanelStatistik); this.groupBoxStatistik.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101))))); - this.groupBoxStatistik.Location = new System.Drawing.Point(8, 321); + this.groupBoxStatistik.Location = new System.Drawing.Point(299, 317); this.groupBoxStatistik.Name = "groupBoxStatistik"; - this.groupBoxStatistik.Size = new System.Drawing.Size(279, 197); + this.groupBoxStatistik.Size = new System.Drawing.Size(282, 250); this.groupBoxStatistik.TabIndex = 61; this.groupBoxStatistik.TabStop = false; this.groupBoxStatistik.Text = "STATISTIK"; + this.groupBoxStatistik.GiveFeedback += new System.Windows.Forms.GiveFeedbackEventHandler(this.groupBox_GiveFeedback); this.groupBoxStatistik.Paint += new System.Windows.Forms.PaintEventHandler(this.groupBox_Paint); // // dateTimePicker1 @@ -601,6 +1037,7 @@ namespace Deckungsbeitrag // // tableLayoutPanelStatistik // + this.tableLayoutPanelStatistik.AutoSize = true; this.tableLayoutPanelStatistik.ColumnCount = 2; this.tableLayoutPanelStatistik.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanelStatistik.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); @@ -616,17 +1053,16 @@ namespace Deckungsbeitrag this.tableLayoutPanelStatistik.Controls.Add(this.labelStatistik2, 0, 1); this.tableLayoutPanelStatistik.Controls.Add(this.labelZahl1, 1, 0); this.tableLayoutPanelStatistik.Controls.Add(this.labelStatistik1, 0, 0); - this.tableLayoutPanelStatistik.Dock = System.Windows.Forms.DockStyle.Bottom; this.tableLayoutPanelStatistik.Location = new System.Drawing.Point(3, 51); this.tableLayoutPanelStatistik.Name = "tableLayoutPanelStatistik"; this.tableLayoutPanelStatistik.RowCount = 6; - this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); - this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); - this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); - this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); - this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); - this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); - this.tableLayoutPanelStatistik.Size = new System.Drawing.Size(273, 143); + this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanelStatistik.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanelStatistik.Size = new System.Drawing.Size(273, 180); this.tableLayoutPanelStatistik.TabIndex = 0; this.tableLayoutPanelStatistik.MouseDown += new System.Windows.Forms.MouseEventHandler(this.groupBox_MouseDown); this.tableLayoutPanelStatistik.MouseMove += new System.Windows.Forms.MouseEventHandler(this.groupBox_MouseMove); @@ -638,9 +1074,9 @@ namespace Deckungsbeitrag this.labelZahl6.Dock = System.Windows.Forms.DockStyle.Left; this.labelZahl6.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelZahl6.ForeColor = System.Drawing.SystemColors.ControlText; - this.labelZahl6.Location = new System.Drawing.Point(99, 115); + this.labelZahl6.Location = new System.Drawing.Point(99, 150); this.labelZahl6.Name = "labelZahl6"; - this.labelZahl6.Size = new System.Drawing.Size(53, 28); + this.labelZahl6.Size = new System.Drawing.Size(53, 30); this.labelZahl6.TabIndex = 11; this.labelZahl6.Text = "Zahl 6"; this.labelZahl6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -651,9 +1087,9 @@ namespace Deckungsbeitrag this.labelStatistik6.Dock = System.Windows.Forms.DockStyle.Left; this.labelStatistik6.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelStatistik6.ForeColor = System.Drawing.SystemColors.ControlText; - this.labelStatistik6.Location = new System.Drawing.Point(3, 115); + this.labelStatistik6.Location = new System.Drawing.Point(3, 150); this.labelStatistik6.Name = "labelStatistik6"; - this.labelStatistik6.Size = new System.Drawing.Size(90, 28); + this.labelStatistik6.Size = new System.Drawing.Size(90, 30); this.labelStatistik6.TabIndex = 10; this.labelStatistik6.Text = "Statistik 6"; this.labelStatistik6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -664,9 +1100,9 @@ namespace Deckungsbeitrag this.labelZahl5.Dock = System.Windows.Forms.DockStyle.Left; this.labelZahl5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelZahl5.ForeColor = System.Drawing.SystemColors.ControlText; - this.labelZahl5.Location = new System.Drawing.Point(99, 92); + this.labelZahl5.Location = new System.Drawing.Point(99, 120); this.labelZahl5.Name = "labelZahl5"; - this.labelZahl5.Size = new System.Drawing.Size(53, 23); + this.labelZahl5.Size = new System.Drawing.Size(53, 30); this.labelZahl5.TabIndex = 9; this.labelZahl5.Text = "Zahl 5"; this.labelZahl5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -677,9 +1113,9 @@ namespace Deckungsbeitrag this.labelStatistik5.Dock = System.Windows.Forms.DockStyle.Left; this.labelStatistik5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelStatistik5.ForeColor = System.Drawing.SystemColors.ControlText; - this.labelStatistik5.Location = new System.Drawing.Point(3, 92); + this.labelStatistik5.Location = new System.Drawing.Point(3, 120); this.labelStatistik5.Name = "labelStatistik5"; - this.labelStatistik5.Size = new System.Drawing.Size(90, 23); + this.labelStatistik5.Size = new System.Drawing.Size(90, 30); this.labelStatistik5.TabIndex = 8; this.labelStatistik5.Text = "Statistik 5"; this.labelStatistik5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -690,9 +1126,9 @@ namespace Deckungsbeitrag this.labelZahl4.Dock = System.Windows.Forms.DockStyle.Left; this.labelZahl4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelZahl4.ForeColor = System.Drawing.SystemColors.ControlText; - this.labelZahl4.Location = new System.Drawing.Point(99, 69); + this.labelZahl4.Location = new System.Drawing.Point(99, 90); this.labelZahl4.Name = "labelZahl4"; - this.labelZahl4.Size = new System.Drawing.Size(53, 23); + this.labelZahl4.Size = new System.Drawing.Size(53, 30); this.labelZahl4.TabIndex = 7; this.labelZahl4.Text = "Zahl 4"; this.labelZahl4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -703,9 +1139,9 @@ namespace Deckungsbeitrag this.labelStatistik4.Dock = System.Windows.Forms.DockStyle.Left; this.labelStatistik4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelStatistik4.ForeColor = System.Drawing.SystemColors.ControlText; - this.labelStatistik4.Location = new System.Drawing.Point(3, 69); + this.labelStatistik4.Location = new System.Drawing.Point(3, 90); this.labelStatistik4.Name = "labelStatistik4"; - this.labelStatistik4.Size = new System.Drawing.Size(90, 23); + this.labelStatistik4.Size = new System.Drawing.Size(90, 30); this.labelStatistik4.TabIndex = 6; this.labelStatistik4.Text = "Statistik 4"; this.labelStatistik4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -716,9 +1152,9 @@ namespace Deckungsbeitrag this.labelZahl3.Dock = System.Windows.Forms.DockStyle.Left; this.labelZahl3.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelZahl3.ForeColor = System.Drawing.SystemColors.ControlText; - this.labelZahl3.Location = new System.Drawing.Point(99, 46); + this.labelZahl3.Location = new System.Drawing.Point(99, 60); this.labelZahl3.Name = "labelZahl3"; - this.labelZahl3.Size = new System.Drawing.Size(53, 23); + this.labelZahl3.Size = new System.Drawing.Size(53, 30); this.labelZahl3.TabIndex = 5; this.labelZahl3.Text = "Zahl 3"; this.labelZahl3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -729,9 +1165,9 @@ namespace Deckungsbeitrag this.labelStatistik3.Dock = System.Windows.Forms.DockStyle.Left; this.labelStatistik3.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelStatistik3.ForeColor = System.Drawing.SystemColors.ControlText; - this.labelStatistik3.Location = new System.Drawing.Point(3, 46); + this.labelStatistik3.Location = new System.Drawing.Point(3, 60); this.labelStatistik3.Name = "labelStatistik3"; - this.labelStatistik3.Size = new System.Drawing.Size(90, 23); + this.labelStatistik3.Size = new System.Drawing.Size(90, 30); this.labelStatistik3.TabIndex = 4; this.labelStatistik3.Text = "Statistik 3"; this.labelStatistik3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -742,9 +1178,9 @@ namespace Deckungsbeitrag this.labelZahl2.Dock = System.Windows.Forms.DockStyle.Left; this.labelZahl2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelZahl2.ForeColor = System.Drawing.SystemColors.ControlText; - this.labelZahl2.Location = new System.Drawing.Point(99, 23); + this.labelZahl2.Location = new System.Drawing.Point(99, 30); this.labelZahl2.Name = "labelZahl2"; - this.labelZahl2.Size = new System.Drawing.Size(53, 23); + this.labelZahl2.Size = new System.Drawing.Size(53, 30); this.labelZahl2.TabIndex = 3; this.labelZahl2.Text = "Zahl 2"; this.labelZahl2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -755,9 +1191,9 @@ namespace Deckungsbeitrag this.labelStatistik2.Dock = System.Windows.Forms.DockStyle.Left; this.labelStatistik2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelStatistik2.ForeColor = System.Drawing.SystemColors.ControlText; - this.labelStatistik2.Location = new System.Drawing.Point(3, 23); + this.labelStatistik2.Location = new System.Drawing.Point(3, 30); this.labelStatistik2.Name = "labelStatistik2"; - this.labelStatistik2.Size = new System.Drawing.Size(90, 23); + this.labelStatistik2.Size = new System.Drawing.Size(90, 30); this.labelStatistik2.TabIndex = 2; this.labelStatistik2.Text = "Statistik 2"; this.labelStatistik2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -770,7 +1206,7 @@ namespace Deckungsbeitrag this.labelZahl1.ForeColor = System.Drawing.SystemColors.ControlText; this.labelZahl1.Location = new System.Drawing.Point(99, 0); this.labelZahl1.Name = "labelZahl1"; - this.labelZahl1.Size = new System.Drawing.Size(53, 23); + this.labelZahl1.Size = new System.Drawing.Size(53, 30); this.labelZahl1.TabIndex = 1; this.labelZahl1.Text = "Zahl 1"; this.labelZahl1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -783,7 +1219,7 @@ namespace Deckungsbeitrag this.labelStatistik1.ForeColor = System.Drawing.SystemColors.ControlText; this.labelStatistik1.Location = new System.Drawing.Point(3, 0); this.labelStatistik1.Name = "labelStatistik1"; - this.labelStatistik1.Size = new System.Drawing.Size(90, 23); + this.labelStatistik1.Size = new System.Drawing.Size(90, 30); this.labelStatistik1.TabIndex = 0; this.labelStatistik1.Text = "Statistik 1"; this.labelStatistik1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; @@ -1103,7 +1539,7 @@ namespace Deckungsbeitrag this.Margin = new System.Windows.Forms.Padding(2); this.Name = "FormMain"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Wolfgang Wirl GmbH - GRUNDPROGRAMM"; + this.Text = "VERWALTUNG Version: "; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; this.HelpButtonClicked += new System.ComponentModel.CancelEventHandler(this.FormMain_HelpButtonClicked); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing); @@ -1113,8 +1549,14 @@ namespace Deckungsbeitrag this.toolStripMenu.ResumeLayout(false); this.toolStripMenu.PerformLayout(); this.panelMain.ResumeLayout(false); + this.panelMain.PerformLayout(); + this.groupBoxContAnz.ResumeLayout(false); + this.groupBoxContAnz.PerformLayout(); + this.tLPContAnz.ResumeLayout(false); + this.tLPContAnz.PerformLayout(); this.groupBoxSaison.ResumeLayout(false); this.groupBoxStatistik.ResumeLayout(false); + this.groupBoxStatistik.PerformLayout(); this.tableLayoutPanelStatistik.ResumeLayout(false); this.tableLayoutPanelStatistik.PerformLayout(); this.groupBoxUpdate.ResumeLayout(false); @@ -1191,6 +1633,35 @@ namespace Deckungsbeitrag private System.Windows.Forms.ToolStripButton tSBTourenplanung; private System.Windows.Forms.ComboBox comboBoxSaison; private System.Windows.Forms.GroupBox groupBoxSaison; + private System.Windows.Forms.GroupBox groupBoxContAnz; + private System.Windows.Forms.TableLayoutPanel tLPContAnz; + private System.Windows.Forms.Label labelContZahl3; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label labelContZahl2; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label labelContZahl1; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label labelContZahl4; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label labelZeit5; + private System.Windows.Forms.Label labelZeit4; + private System.Windows.Forms.Label labelZeit3; + private System.Windows.Forms.Label labelZeit2; + private System.Windows.Forms.Label labelZeit1; + private System.Windows.Forms.Label labelZeit52; + private System.Windows.Forms.Label labelZeit42; + private System.Windows.Forms.Label labelZeit32; + private System.Windows.Forms.Label labelZeit22; + private System.Windows.Forms.Label labelZeit12; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label labelContZahl5; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label labelContGes; + private System.Windows.Forms.Label label9; } } diff --git a/AA-Forms/FormMain.cs b/AA-Forms/FormMain.cs index f1b4d72..d52d6c9 100644 --- a/AA-Forms/FormMain.cs +++ b/AA-Forms/FormMain.cs @@ -10,14 +10,18 @@ using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; +using System.Drawing.Imaging; using System.IO; using System.Linq; +using System.Management.Instrumentation; +using System.Reflection; using System.Runtime; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; +using System.Windows.Input; using System.Xml.Serialization; using Timer = System.Windows.Forms.Timer; @@ -35,18 +39,21 @@ namespace Deckungsbeitrag private bool _handlingResize; private readonly UserSettingsManager _settings = new UserSettingsManager(); private bool formloading = false; - + private Dictionary> auftragliste; + private GroupBox draggedBox; + private Point dragOffset; + private Point dragOffsetButton; + private PictureBox ghostImage; + private Button draggedButton; + private bool isButtonDragging = false; + private Timer dragEndTimer; public FormMain() { InitializeComponent(); - + this.panelMain.AllowDrop = true; this.toolStripMenu.Size = new Size(toolStripButton1.Size.Width + 20, this.Height); - //this.panelMain.Location = new Point(toolStripMenu.Right + 10, 12); - if (Properties.Settings.Default.Location_ButtonNeuerAuftrag_Main != Point.Empty) this.buttonNeuerAuftrag.Location = Properties.Settings.Default.Location_ButtonNeuerAuftrag_Main; - if (Properties.Settings.Default.Location_ButtonNeuerUser_Main != Point.Empty) this.buttonNeuerUser.Location = Properties.Settings.Default.Location_ButtonNeuerUser_Main; - if (Properties.Settings.Default.Location_GroupBoxStatistik_Main != Point.Empty) this.groupBoxStatistik.Location = Properties.Settings.Default.Location_GroupBoxStatistik_Main; } public FormMain(Benutzer benutzer) : this() @@ -76,7 +83,11 @@ namespace Deckungsbeitrag { // Ausgewählte Buttons bleiben aktiv. if (ctr.Name.Contains("Auftrag")) ctr.Enabled = true; - else ctr.Enabled = false; + else + { + if (ctr.GetType() == typeof(Button)) ctr.BackColor = Color.Gray; + ctr.Enabled = false; + } } break; case BenutzerRolle.Admin: @@ -91,56 +102,65 @@ namespace Deckungsbeitrag default: break; } - } + + ghostImage = new PictureBox + { + Size = new Size(200, 100), // GroupBox-Größe + Visible = false, + BackColor = Color.Transparent, + SizeMode = PictureBoxSizeMode.StretchImage + }; + panelMain.Controls.Add(ghostImage); // Zum Panel! + } - private void FormMain_Load(object sender, EventArgs e) + private async void FormMain_Load(object sender, EventArgs e) { formloading = true; _settings.Load(); - this.WindowState = FormWindowState.Maximized; this.MaximizedBounds = Screen.PrimaryScreen.WorkingArea; this.panelMain.Width = this.Width - this.toolStripMenu.Right - 20; this.panelMain.Location = new Point(this.toolStripMenu.Right, 0); + this.Text += Assembly.GetExecutingAssembly().GetName().Version; GetStatistik(); GetSaison(); + + await GetAuftraege(); + GetContainerProTag(); // GroupBoxen im PanelMain werden ausgeblendet foreach (GroupBox gb in this.panelMain.Controls.OfType()) { - if (!gb.Name.Contains("Update") & !gb.Name.Contains("Statistik") & !gb.Name.Contains("Neuer") & !gb.Name.Contains("Saison")) + if (!gb.Name.Contains("Update") & !gb.Name.Contains("Statistik") & !gb.Name.Contains("Neuer") & !gb.Name.Contains("Saison") & !gb.Name.Contains("ContAnz")) { gb.Visible = false; gb.Location = new Point(0, 0); gb.Size = new Size(this.panelMain.Width, this.panelMain.Height); - } - + RegisterDragEvents(gb); } this.Activate(); _fixedSize = this.Size; formloading = false; } - - private void GetSaison() + private async Task GetAuftraege() { - var listenQuelle = Saison.LadeSaisons(); // Liste - - comboBoxSaison.DataSource = listenQuelle; - comboBoxSaison.DisplayMember = nameof(Saison.Bezeichnung); - comboBoxSaison.ValueMember = nameof(Saison.SaisonId); - - // aktiven Eintrag suchen (falls genau einer aktiv ist) - var aktiveSaison = listenQuelle - .FirstOrDefault(s => s.Aktiv); // LINQ FirstOrDefault [web:13][web:16][web:19] - - if (aktiveSaison != null) + var conn = new NpgsqlConnection(ConfigurationManager.AppSettings["ConnectionString"]); // Pro Task! + try { - comboBoxSaison.SelectedValue = aktiveSaison.SaisonId; // per ValueMember setzen [web:11][web:20] + await conn.OpenAsync(); + auftragliste = await Auftrag.GetAuftraegeProLiefertagAsync(conn, AuftragTyp.Standart, AuftragStatus.Aufgelegt); + } + finally + { + if (conn.State == ConnectionState.Open) + conn.Close(); + conn.Dispose(); } } + private void Paint_Boarder(Size size, Point location, PaintEventArgs e) { Pen pen = new Pen(Color.FromArgb(1, 53, 101), 4); @@ -917,7 +937,7 @@ namespace Deckungsbeitrag this.objectListViewAuftrag.RebuildColumns(); if (_settings.OLV_State != null) this.objectListViewAuftrag.RestoreState(_settings.OLV_State); - Funktionen.Columns_Resize(this.objectListViewAuftrag); + this.objectListViewAuftrag = Funktionen.Columns_Resize(null, this.objectListViewAuftrag).olv; // Cursor auf Default-Status setzen, um Benutzerfeedback zu geben this.Cursor = Cursors.Default; @@ -946,7 +966,7 @@ namespace Deckungsbeitrag } private void GetStatistik() { - string[] statistik = { "Container gewaschen:", "Container hergerichtet:", "Container fertig:", "Kunden gewaschen:", "Kunden hergerichtet:", "Kunden abgeschlossen:" }; + string[] statistik = { "Container gewaschen:", "Container abgeschlossen:", " Container abgeholt:", "Kunden gewaschen:", "Kunden abgeschlossen:", "Kunden abgeholt:" }; List auftraglist = Auftrag.GetAuftragStatsListToday(this.dateTimePicker1.Value.Date); for (int i = 1; i <= statistik.Length; i++) @@ -965,7 +985,7 @@ namespace Deckungsbeitrag switch (lbl.Name) { case var s when s.Contains($"1"): - foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Aufgelegt) j += a.Container; + foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Gewaschen) j += a.Container; lbl.Text = j.ToString(); break; case var s when s.Contains($"2"): @@ -973,11 +993,11 @@ namespace Deckungsbeitrag lbl.Text = j.ToString(); break; case var s when s.Contains($"3"): - foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Fertig) j += a.ContainerClean; + foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Abgeholt) j += a.ContainerClean; lbl.Text = j.ToString(); break; case var s when s.Contains($"4"): - foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Aufgelegt) j++; + foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Gewaschen) j++; lbl.Text = j.ToString(); break; case var s when s.Contains($"5"): @@ -985,7 +1005,7 @@ namespace Deckungsbeitrag lbl.Text = j.ToString(); break; case var s when s.Contains($"{i}"): - foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Fertig) j++; + foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Abgeholt) j++; lbl.Text = j.ToString(); break; default: @@ -998,6 +1018,78 @@ namespace Deckungsbeitrag //this.groupBoxStatistik.Width = this.tableLayoutPanelStatistik.Right; } + private void GetContainerProTag() + { + for (int i = 0; i < this.tLPContAnz.ColumnCount; i++) + { + if (i == 0) + { + int row = 1; + foreach (var key in auftragliste.Keys.OrderBy(k => k)) + { + Control ctr = this.tLPContAnz.GetControlFromPosition(i, row); + ctr.Text = Funktionen.GetWochentagDeutsch(key.DayOfWeek); + ctr.Text += " (" + key.ToShortDateString() + "):"; // "13.02.2026" + + row++; + } + Control control = this.tLPContAnz.GetControlFromPosition(i, row - 1); + control.Text = "Rest"; + } + if (i == 1) + { + int row = 1; + int cont = 0; + int gescont = 0; + foreach (List liste in auftragliste.Values) + { + foreach (Auftrag a in liste) + { + cont += a.Container; + } + Control ctr = this.tLPContAnz.GetControlFromPosition(i, row); + ctr.Text = cont.ToString(); + gescont += cont; + row++; + cont = 0; + } + Control control = this.tLPContAnz.GetControlFromPosition(1, 6); + control.Text = gescont.ToString(); + } + if (i == 2 || i == 3) + { + double geszeit = 0; + for (int j = 1; j < this.tLPContAnz.RowCount; j++) + { + Control ctr = this.tLPContAnz.GetControlFromPosition(1, j); + if (double.TryParse(ctr.Text, out double cont)) cont = (cont * 2.7 * 3.5) / 60 / (i-1); + Control control = this.tLPContAnz.GetControlFromPosition(i, j); + control.Text = cont.ToString("F1") + " h"; + if (j < 6) geszeit += cont; + } + Control _ctr = this.tLPContAnz.GetControlFromPosition(i, 6); + _ctr.Text = geszeit.ToString("F1") + " h"; + + } + } + } + private void GetSaison() + { + var listenQuelle = Saison.LadeSaisons(); // Liste + + comboBoxSaison.DataSource = listenQuelle; + comboBoxSaison.DisplayMember = nameof(Saison.Bezeichnung); + comboBoxSaison.ValueMember = nameof(Saison.SaisonId); + + // aktiven Eintrag suchen (falls genau einer aktiv ist) + var aktiveSaison = listenQuelle + .FirstOrDefault(s => s.Aktiv); // LINQ FirstOrDefault [web:13][web:16][web:19] + + if (aktiveSaison != null) + { + comboBoxSaison.SelectedValue = aktiveSaison.SaisonId; // per ValueMember setzen [web:11][web:20] + } + } private void dateTimePicker1_CloseUp(object sender, EventArgs e) @@ -1013,7 +1105,7 @@ namespace Deckungsbeitrag private void groupBox_Paint(object sender, PaintEventArgs e) { GroupBox gb = (GroupBox)sender; - base.OnPaint(e); + base.OnPaint(e); Funktionen.GetGroupBoxBoarder(gb, e); gb.MouseDown += groupBox_MouseDown; @@ -1029,116 +1121,143 @@ namespace Deckungsbeitrag } private void groupBox_MouseDown(object sender, MouseEventArgs e) { - GroupBox gb; - Control ctr = null; - //if(hit == null && e.Button == MouseButtons.Left) { - if (sender.GetType() == typeof(GroupBox)) gb = (GroupBox)sender; - else - { - ctr = (Control)sender; - gb = (GroupBox)ctr.Parent; - } - - if (e.Button == MouseButtons.Left) { - isDragging = true; - dragStartPoint = new Point(e.X, e.Y); + + draggedBox = FindParentGroupBox((Control)sender); + // 1. BILD der GroupBox erstellen + Bitmap dragImage = new Bitmap(draggedBox.Width, draggedBox.Height); + draggedBox.DrawToBitmap(dragImage, draggedBox.ClientRectangle); + + // 2. Ghost-Bild setzen + sichtbar machen + ghostImage.Image?.Dispose(); + ghostImage.Image = dragImage; + ghostImage.Size = draggedBox.Size; + ghostImage.Visible = true; + ghostImage.BringToFront(); + + dragOffset = e.Location; + isDragging = true; + panelMain.SuspendLayout(); + + // 2. Original unsichtbar machen + draggedBox.Visible = false; } - else isDragging = false; } private void groupBox_MouseMove(object sender, MouseEventArgs e) { - GroupBox gb; - if (sender.GetType() == typeof(GroupBox)) gb = (GroupBox)sender; - else - { - var ctr = (Control)sender; - gb = (GroupBox)ctr.Parent; - } - Panel panel = (Panel)gb.Parent; - if (isDragging) - { - // Neue Position berechnen, relativ zum ursprünglichen Klickpunkt - newLocation = gb.PointToScreen(dragStartPoint); - newLocation.X += e.X - dragStartPoint.X; - newLocation.Y += e.Y - dragStartPoint.Y; + if (isButtonDragging) return; + if (isDragging) + { + Point mousePos = panelMain.PointToClient(MousePosition); + Point newPos = new Point(mousePos.X - dragOffset.X, mousePos.Y - dragOffset.Y); - // Optional: Keep inside form bounds - newLocation.X = Math.Max(0, Math.Min(panel.Width - gb.Width, newLocation.X)); - newLocation.Y = Math.Max(0, Math.Min(panel.Height - gb.Height, newLocation.Y)); + // Grenzen + newPos.X = Math.Max(0, Math.Min(panelMain.Width - draggedBox.Width, newPos.X)); + newPos.Y = Math.Max(0, Math.Min(panelMain.Height - draggedBox.Height, newPos.Y)); - // Position des Controls setzen - newLocation = panel.PointToClient(newLocation); + // 1. Ghost folgt Maus + ghostImage.Location = newPos; + + // 2. Original folgt (unsichtbar) + draggedBox.Location = newPos; + } + } + private void groupBox_GiveFeedback(object sender, GiveFeedbackEventArgs e) + { + if (draggedBox != null) + { + // Screenshot erstellen + Bitmap bmp = new Bitmap(draggedBox.Width, draggedBox.Height); + draggedBox.DrawToBitmap(bmp, draggedBox.ClientRectangle); + + // Ghost 50% transparent machen + float[][] matrix = { + new float[] {1, 0, 0, 0, 0}, + new float[] {0, 1, 0, 0, 0}, + new float[] {0, 0, 1, 0, 0}, + new float[] {0, 0, 0, 0.5f, 0}, + new float[] {0, 0, 0, 0, 1} + }; + using (ImageAttributes attr = new ImageAttributes()) + { + attr.SetColorMatrix(new ColorMatrix(matrix)); + // Graphics.FromImage für DragImage rendern (komplex) + } } } private void groupBox_MouseUp(object sender, MouseEventArgs e) - { - GroupBox gb; - if (sender.GetType() == typeof(GroupBox)) gb = (GroupBox)sender; - else - { - var ctr = (Control)sender; - gb = (GroupBox)ctr.Parent; - } - - if (e.Button == MouseButtons.Left) - { - isDragging = false; - gb.Location = newLocation; - } - Properties.Settings.Default.Location_GroupBoxStatistik_Main = gb.Location; - Properties.Settings.Default.Save(); - } - - /// - /// Drag & Drop für Buttons. - /// - /// - /// - private void Button_MouseDown(object sender, MouseEventArgs e) - { - Button btn = (Button)sender; - if (btn != null && e.Button == MouseButtons.Left) - { - //btn.DoDragDrop(btn, DragDropEffects.Move); - dragStartPoint = e.Location; - isDragging = false; - } - } - private void panelMain_DragEnter(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(typeof(Button))) - e.Effect = DragDropEffects.Move; - else - e.Effect = DragDropEffects.None; - } - private void panelMain_DragDrop(object sender, DragEventArgs e) { if (isDragging) { - Button btn = e.Data.GetData(typeof(Button)) as Button; - if (btn != null) - { - Point p = this.panelMain.PointToClient(new Point(e.X, e.Y)); - btn.Location = new Point(p.X - btn.Width / 2, p.Y - btn.Height / 2); - } + isDragging = false; + ghostImage.Visible = false; + draggedBox.Visible = true;// Ghost weg + panelMain.ResumeLayout(); } } - private void Button_MouseMove(object sender, MouseEventArgs e) + private void RegisterDragEvents(Control parent) { - if (e.Button == MouseButtons.Left) + parent.MouseDown += Child_MouseDown; + // 1. Parent selbst behandeln (GroupBox) + if (parent is GroupBox gb) { - var dx = Math.Abs(e.X - dragStartPoint.X); - var dy = Math.Abs(e.Y - dragStartPoint.Y); - if (!isDragging && (dx > SystemInformation.DragSize.Width || dy > SystemInformation.DragSize.Height)) - { - isDragging = true; - var btn = sender as Button; - btn.DoDragDrop(btn, DragDropEffects.Move); - } + gb.MouseDown += groupBox_MouseDown; + gb.MouseMove += groupBox_MouseMove; + gb.MouseUp += groupBox_MouseUp; } + + // 2. ALLE Children (rekursiv) - auch Child of Child! + foreach (Control child in parent.Controls) + { + // JEDES Control bekommt Child-Handler + child.MouseDown += Child_MouseDown; + child.MouseMove += Child_MouseMove; + child.MouseUp += Child_MouseUp; + + // Rekursion für NESTED Children + RegisterDragEvents(child); + } + } + private void Child_MouseDown(object sender, MouseEventArgs e) + { + // Koordinaten an Parent weiterleiten + Control child = (Control)sender; + GroupBox parentGb = FindParentGroupBox(child); + + if (parentGb != null) + { + Point parentPos = child.PointToClient(child.PointToScreen(e.Location)); + MouseEventArgs parentEvent = new MouseEventArgs(e.Button, e.Clicks, + parentPos.X, parentPos.Y, e.Delta); + groupBox_MouseDown(parentGb, parentEvent); + } + } + private void Child_MouseMove(object sender, MouseEventArgs e) + { + GroupBox gb = FindParentGroupBox((Control)sender); + if (gb != null && isDragging && draggedBox == gb) + { + groupBox_MouseMove(gb, e); + } + } + private void Child_MouseUp(object sender, MouseEventArgs e) + { + GroupBox gb = FindParentGroupBox((Control)sender); + if (gb != null && isDragging && draggedBox == gb) + { + groupBox_MouseUp(gb, e); // ← Dragging beenden! + } + } + private GroupBox FindParentGroupBox(Control control) + { + while (control != null) + { + if (control is GroupBox) return (GroupBox)control; + control = control.Parent; + } + return null; } /// @@ -1161,11 +1280,15 @@ namespace Deckungsbeitrag { try { - Properties.Settings.Default.Location_ButtonNeuerAuftrag_Main = this.buttonNeuerAuftrag.Location; - Properties.Settings.Default.Location_ButtonNeuerUser_Main = this.buttonNeuerUser.Location; - Properties.Settings.Default.Location_GroupBoxStatistik_Main = this.groupBoxStatistik.Location; + _settings.LocationButtonNeueAufgabe = this.buttonNeueAufgabe.Location; + _settings.LocationButtonNeueInventur = this.buttonNeueInventur.Location; + _settings.LocationButtonNeuerAuftrag = this.buttonNeuerAuftrag.Location; + _settings.LocationButtonNeuerStand = this.buttonNeuerStand.Location; + _settings.LocationButtonNeuerUser = this.buttonNeuerUser.Location; - Properties.Settings.Default.Save(); + _settings.LocationGroupBoxContainer = this.groupBoxContAnz.Location; + _settings.LocationGroupBoxSaison = this.groupBoxSaison.Location; + _settings.LocationGroupBoxStatistik = this.groupBoxStatistik.Location; _settings.OLV_State = this.objectListViewAuftrag.SaveState(); _settings.Save(); @@ -1243,6 +1366,7 @@ namespace Deckungsbeitrag FehlmengeChart chart = new FehlmengeChart(); chart.Show(); } + } } //CHANGES: Fahrer können abgeholte Aufträge erstellen und ausgelieferte Aufträge markieren. diff --git a/AA-Forms/FormNeuerAuftrag.cs b/AA-Forms/FormNeuerAuftrag.cs index ba96da3..0ba2631 100644 --- a/AA-Forms/FormNeuerAuftrag.cs +++ b/AA-Forms/FormNeuerAuftrag.cs @@ -246,14 +246,15 @@ namespace Deckungsbeitrag } else Auftrag = new Auftrag(); + if (this.benutzer.Rolle == BenutzerRolle.Fahrer) { AuftragSpeichern(); return; } + //AUFTRAG DATEN ÜBERGEBEN Auftrag.KundeID = (int)kunde.KundeID; // Wenn Kundennummer ist Div.Barzahler(in FormListe wenn mit ? am Anfang) wird individueller Kundename als Zusatzinfo gespeichert. - if (kunde.KundeNummer == "2320000") Auftrag.ZusatzInfo = kunde.Suchtext; + if (kunde.KundeNummer == "2320000") Auftrag.ZusatzInfo = string.IsNullOrWhiteSpace(kunde.Suchtext) ? kunde.KundeName : kunde.Suchtext; else if (!string.IsNullOrWhiteSpace(eingabe)) Auftrag.ZusatzInfo = eingabe; - //TODO: Überlegen ob das der richtige Weg ist. Eventuell in Expedit sowohl KundeAufgabe wie auch AuftragAufgabe anzeigen? NOTWENDIG? if (Auftrag.AufgabeID == null) { if (kunde.Aufgabe != null) Auftrag.AufgabeID = kunde.Aufgabe; } Auftrag.Liefertag = this.dTPLiefertag.Value; Auftrag.Container = int.Parse(this.textBoxCont.Text); @@ -265,7 +266,7 @@ namespace Deckungsbeitrag if (maschine != null) Auftrag.MaschineID = (int)maschine.MaschineID; else Auftrag.MaschineID = null; - if(Auftrag.FindeAuftrag(Auftrag) == true) //TODO: Aufträge zusammenführen wenn gleicher Kunde und Liefertag. + if (Auftrag.FindeAuftrag(true).Gefunden) //TODO: Aufträge zusammenführen wenn gleicher Kunde und Liefertag. { if (meldung.AuftragVorhanden(Auftrag) == DialogResult.Yes) { @@ -425,14 +426,57 @@ namespace Deckungsbeitrag { this.Auftrag = null; this.kunde = Funktionen.KundenAuswahl(); - DatenLaden(); - return; + if (this.kunde != null) { DatenLaden(); return; } } this.DialogResult = DialogResult.OK; this.Close(); } + + private void AuftragSpeichern() + { + //AUFTRAG DATEN ÜBERGEBEN + Auftrag.KundeID = (int)kunde.KundeID; + + if (Auftrag.AufgabeID == null) { if (kunde.Aufgabe != null) Auftrag.AufgabeID = kunde.Aufgabe; } + Auftrag.Liefertag = this.dTPLiefertag.Value; + Auftrag.Container = int.Parse(this.textBoxCont.Text); + Auftrag.ErstelltVon = (int)this.benutzer.BenutzerID; + Auftrag.Erstellt = DateTime.Now; + Auftrag.Container = int.Parse(this.textBoxCont.Text); + Auftrag.Typ = (AuftragTyp)comboBoxTyp.SelectedItem; + Auftrag.ArbeiterID = this.comboBoxFahrer.SelectedIndex == -1 ? null : ((Benutzer)this.comboBoxFahrer.SelectedItem).BenutzerID; + Auftrag.Status = AuftragStatus.Abgeholt; + + if (Auftrag.FindeAuftrag(false).Gefunden) + { + if (meldung.GetFrage(this, $"Der Auftrag {Kunde.GetKunde(null, Auftrag.KundeID, null).Suchtext} Liefertag {Auftrag.Liefertag.ToShortDateString()} ist bereits vorhanden.\nMöchtest du diesen bearbeiten?\n\n[JA] => Auftrag bearbeiten\n[NEIN] => Neuen Auftrag erstellen", false) == DialogResult.Yes) + { + Auftrag = Auftrag.GetAuftrag(Auftrag.FindeAuftrag(false).auftragID); + Auftrag.Container += int.Parse(this.textBoxCont.Text); + if (Auftrag.Save()[0] != 1) meldung.Speicherfehler(); + else meldung.GetInfo(this, $"Der Auftrag wurde bearbeitet.\nBitte suche den Auftrag von {Kunde.GetKunde(null, Auftrag.KundeID, null).Suchtext} mit Liefertag {Auftrag.Liefertag.ToShortDateString()} und stelle deine Container dazu.\nVergiss nicht die Containeranzahl auf der Karte auszubessern.", false); + } + else + { + Auftrag.ZusatzInfo += " Auftrag 2"; + if (Auftrag.Save()[0] != 1) meldung.Speicherfehler(); + else meldung.GetInfo(this, "Der Auftrag wurde als neuer Auftrag gespeichert.\nBitte vermerke auf der Containerkarte, dass dieser Auftrag 'Auftrag 2' ist.\n\nSollte das nicht richtig sein, melde es deinem Vorgesetzten.", false); + } + } + else if (Auftrag.Save()[0] != 1) meldung.Speicherfehler(); + + if (this.benutzer.Rolle == BenutzerRolle.Fahrer) + { + this.Auftrag = null; + this.kunde = Funktionen.KundenAuswahl(); + if (this.kunde != null) { DatenLaden(); return; } + else this.Close(); + } + + } + private void Container_Click(object sender, EventArgs e) { PictureBox pb = (PictureBox)sender; @@ -630,6 +674,7 @@ namespace Deckungsbeitrag else { eingabe = Interaction.InputBox("Warum möchtest du den Auftrag einem anderen Fahrer zuteilen?\n\nGrund:", "Sonderzuteilung", ""); + eingabe += " / "; } } diff --git a/AA-Forms/FormNeuerBenutzer.Designer.cs b/AA-Forms/FormNeuerBenutzer.Designer.cs index 00b5d17..eb88610 100644 --- a/AA-Forms/FormNeuerBenutzer.Designer.cs +++ b/AA-Forms/FormNeuerBenutzer.Designer.cs @@ -71,6 +71,7 @@ // // comboBoxRolle // + this.comboBoxRolle.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxRolle.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.comboBoxRolle.FormattingEnabled = true; this.comboBoxRolle.Location = new System.Drawing.Point(16, 165); @@ -157,8 +158,6 @@ this.textBoxFuehrerschein.Name = "textBoxFuehrerschein"; this.textBoxFuehrerschein.Size = new System.Drawing.Size(292, 26); this.textBoxFuehrerschein.TabIndex = 11; - this.textBoxFuehrerschein.Leave += new System.EventHandler(this.textBoxFuehrerschein_Leave); - this.textBoxFuehrerschein.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxFuehrerschein_Validating); // // dateTimePickerFSGueltig // @@ -169,7 +168,7 @@ this.dateTimePickerFSGueltig.Name = "dateTimePickerFSGueltig"; this.dateTimePickerFSGueltig.Size = new System.Drawing.Size(127, 26); this.dateTimePickerFSGueltig.TabIndex = 12; - this.dateTimePickerFSGueltig.Leave += new System.EventHandler(this.dateTimePickerFSGueltig_Leave); + this.dateTimePickerFSGueltig.CloseUp += new System.EventHandler(this.dateTimePickerFSGueltig_CloseUp); // // labelFSGueltig // @@ -209,7 +208,7 @@ this.buttonAbbrechen.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 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(281, 210); + this.buttonAbbrechen.Location = new System.Drawing.Point(281, 377); this.buttonAbbrechen.Margin = new System.Windows.Forms.Padding(2); this.buttonAbbrechen.Name = "buttonAbbrechen"; this.buttonAbbrechen.Size = new System.Drawing.Size(41, 41); @@ -230,7 +229,7 @@ this.buttonSpeichern.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 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(16, 210); + this.buttonSpeichern.Location = new System.Drawing.Point(16, 377); this.buttonSpeichern.Margin = new System.Windows.Forms.Padding(2); this.buttonSpeichern.Name = "buttonSpeichern"; this.buttonSpeichern.Size = new System.Drawing.Size(41, 41); @@ -245,7 +244,7 @@ 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(339, 261); + this.ClientSize = new System.Drawing.Size(339, 428); this.Controls.Add(this.buttonAbbrechen); this.Controls.Add(this.buttonSpeichern); this.Controls.Add(this.groupBoxFuehrerschein); diff --git a/AA-Forms/FormNeuerBenutzer.cs b/AA-Forms/FormNeuerBenutzer.cs index 6b5c4bc..ffc4ae3 100644 --- a/AA-Forms/FormNeuerBenutzer.cs +++ b/AA-Forms/FormNeuerBenutzer.cs @@ -171,30 +171,34 @@ namespace Deckungsbeitrag.AA_Forms tosave[2] = e.Cancel; } } - else { groupBoxFuehrerschein.ForeColor = Color.White; tosave[2] = !e.Cancel; } - - - Enable_Speichern(); - } - - /// - /// TextBox Führerschein validieren. Keine Regelung für Speicherbuttonstatus. - /// - /// - /// - private void textBoxFuehrerschein_Validating(object sender, CancelEventArgs e) - { - if (!string.IsNullOrWhiteSpace(textBoxFuehrerschein.Text)) + else { - if (int.TryParse(textBoxFuehrerschein.Text, out int value)) textBoxFuehrerschein.BackColor = SystemColors.Window; - else + if (!int.TryParse(textBoxFuehrerschein.Text, out _)) { meldung.Eingabefehler(); - e.Cancel = true; textBoxFuehrerschein.BackColor = Color.Red; + textBoxFuehrerschein.Focus(); + tosave[2] = e.Cancel = true; + return; } + else { textBoxFuehrerschein.BackColor = Color.White; e.Cancel = false; } + if (dateTimePickerFSGueltig.Value <= DateTime.Today) + { + meldung.EingabeFehltoderFalsch("Das Ablaufdatum des Führerscheins muss in der Zukunft liegen."); + tosave[2] = e.Cancel = true; + + this.BeginInvoke(new Action(() => + { + dateTimePickerFSGueltig.Focus(); + SendKeys.SendWait("%{DOWN}"); + + })); + return; + } + //groupBoxFuehrerschein.ForeColor = Color.White; tosave[2] = !e.Cancel; } - else textBoxFuehrerschein.BackColor = SystemColors.Window; + + Enable_Speichern(); } /// @@ -202,21 +206,11 @@ namespace Deckungsbeitrag.AA_Forms /// /// /// - private void dateTimePickerFSGueltig_Leave(object sender, EventArgs e) - { - CancelEventArgs ce = new CancelEventArgs(); - groupBoxFuehrerschein_Validating(groupBoxFuehrerschein, ce); - } private void comboBoxRolle_Leave(object sender, EventArgs e) { CancelEventArgs ce = new CancelEventArgs(); comboBoxRolle_Validating(comboBoxRolle, ce); } - private void textBoxFuehrerschein_Leave(object sender, EventArgs e) - { - CancelEventArgs ce = new CancelEventArgs(); - textBoxFuehrerschein_Validating(textBoxFuehrerschein, ce); - } /// /// Leave-Events ohne Auswirkung auf Speicherbuttonstatus Regelung. @@ -242,5 +236,11 @@ namespace Deckungsbeitrag.AA_Forms comboBoxRolle.BackColor = SystemColors.Window; } + private void dateTimePickerFSGueltig_CloseUp(object sender, EventArgs e) + { + CancelEventArgs ce = new CancelEventArgs(); + groupBoxFuehrerschein_Validating(this.groupBoxFuehrerschein, ce); + + } } } diff --git a/AA-Forms/FormNeuerBenutzer.resx b/AA-Forms/FormNeuerBenutzer.resx index 0249b21..5c72aad 100644 --- a/AA-Forms/FormNeuerBenutzer.resx +++ b/AA-Forms/FormNeuerBenutzer.resx @@ -121,7 +121,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAAHNJREFUOE+1krEJwDAMBD1IyrTZv02XJbLLBYEKh5eFHRHBF5b+D2TUgFaRNFbV + wQAADsEBuJFr7QAAAHNJREFUOE+1krEJwDAMBD1IyrTZv02XJbLLBYEKh5eFHRHBF5b+D2TUgFaRNFbV P3bgBLY2KJsBF3BEAAtb3RHEwzazMogAesMLEs0EkBil514FDCASTgEBRMLu+QlQWiEIz3/iyJiABVA+ pPIpf5I0VvUA30mnWXzROjQAAAAASUVORK5CYII= diff --git a/AA-Klassen/Auftrag.cs b/AA-Klassen/Auftrag.cs index 5b3d586..2c9535b 100644 --- a/AA-Klassen/Auftrag.cs +++ b/AA-Klassen/Auftrag.cs @@ -92,6 +92,7 @@ namespace DatenDB } } + isExpedit = false; return resultList; } public static async Task> GetExpeditListsAsync(int? typ, NpgsqlConnection conn, int? abtstatus) @@ -111,7 +112,7 @@ namespace DatenDB resultList.Add(new Auftrag(reader)); } } - + isExpedit = false; return resultList; } public static async Task> GetStatusListAsync(int? status, NpgsqlConnection conn) @@ -131,9 +132,10 @@ namespace DatenDB } } + isExpedit = false; return resultList; } - public static async Task>> GetAuftraegeProLiefertagAsync(NpgsqlConnection conn, AuftragTyp standart, AuftragStatus abgeholt) + public static async Task>> GetAuftraegeProLiefertagAsync(NpgsqlConnection conn, AuftragTyp standart, AuftragStatus aufgelegt) { // ✅ 5 FIXED Keys mit Sonntags-Check @@ -145,7 +147,7 @@ namespace DatenDB using (var command = new NpgsqlCommand()) { command.Connection = conn; - command.CommandText = $"SELECT {COLUMNS} from {TABLE} where typ <= {(int)standart} and status = {(int)abgeholt} and liefertag >= CURRENT_DATE order by liefertag"; + command.CommandText = $"SELECT {COLUMNS} from {TABLE} where typ <= {(int)standart} and status <= {(int)aufgelegt} and liefertag >= CURRENT_DATE order by liefertag"; using (var reader = await command.ExecuteReaderAsync()) { @@ -242,7 +244,24 @@ namespace DatenDB DatenbankConnection.GetConnection().Close(); return resultList; } - public static Auftrag GetAuftrag(int? auftragID) + public static List GetTourenListe(Benutzer fahrer) + { + DateTime dateTime = NaechsterLiefertag(); + DatenbankConnection.GetConnection().Open(); + List resultList = new List(); + NpgsqlCommand command = new NpgsqlCommand(); + command.Connection = DatenbankConnection.GetConnection(); + + command.CommandText = $"select {ACOLUMNS} from {TABLE} a join kundenverwaltung.kunde k on a.kunde_id = k.kunde_id where typ = 1 and a.liefertag = '{dateTime}' and a.benutzer_id = {fahrer.BenutzerID} and a.status >= {(int)AuftragStatus.Vorbereitet} and a.status <= {(int)AuftragStatus.Fertig} order by k.region, k.bezeichnung"; + + 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(); @@ -269,23 +288,40 @@ namespace DatenDB return result; } - public bool FindeAuftrag(Auftrag auftrag) + public static List FindeAuftragVonKunde(Kunde kunde, string zusatz) + { + List result = new List(); + DatenbankConnection.GetConnection().Open(); + NpgsqlCommand command = new NpgsqlCommand(); + + command.Connection = DatenbankConnection.GetConnection(); + if (string.IsNullOrWhiteSpace(zusatz)) command.CommandText = $"select {COLUMNS} from {TABLE} where kunde_id = {kunde.KundeID} and status = {(int)AuftragStatus.Abgeholt}"; + else command.CommandText = $"select {COLUMNS} from {TABLE} where kunde_id = {kunde.KundeID} and status = {(int)AuftragStatus.Abgeholt} and zusatz ~* '{zusatz}'"; + NpgsqlDataReader reader = command.ExecuteReader(); + while (reader.Read()) result.Add(new Auftrag(reader)); + reader.Close(); + DatenbankConnection.GetConnection().Close(); + + return result; + } + + public (bool Gefunden, int auftragID) FindeAuftrag(bool exakt) { 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}'"; - + if (exakt) command.CommandText = $"select auftrag_id from {TABLE} where kunde_id = {this.KundeID} and erstellt::date = '{this.Erstellt.Value.Date}' and liefertag = '{this.Liefertag}'"; + else command.CommandText = $"select auftrag_id from {TABLE} where kunde_id = {this.KundeID} and liefertag = '{this.Liefertag}' and status = {(int)AuftragStatus.Abgeholt}"; NpgsqlDataReader reader = command.ExecuteReader(); while (reader.Read()) result = reader.GetInt16(0); reader.Close(); DatenbankConnection.GetConnection().Close(); - if(result > 0) return true; - else return false; + if(result > 0) return (true, result); + else return (false, result); } public static int[] GetContainerAnzahlen(int? kundeId) { @@ -630,11 +666,17 @@ namespace DatenDB DatenbankConnection.GetConnection().Close(); return result; } - // Hilfsfunktion (oben definieren) - static DateTime GetNextWorkday(int offset) => - DateTime.Today.AddDays(offset).Date.DayOfWeek == DayOfWeek.Sunday - ? DateTime.Today.AddDays(offset + 1).Date - : DateTime.Today.AddDays(offset).Date; + public static DateTime NaechsterLiefertag() + { + DateTime heute = DateTime.Today; + DateTime kandidat = heute.AddDays(1); + + // Wochenende überspringen + while (kandidat.DayOfWeek == DayOfWeek.Saturday || kandidat.DayOfWeek == DayOfWeek.Sunday) + kandidat = kandidat.AddDays(1); + + return kandidat; + } } } diff --git a/AA-Klassen/Funktionen.cs b/AA-Klassen/Funktionen.cs index 1fb6a09..00c493a 100644 --- a/AA-Klassen/Funktionen.cs +++ b/AA-Klassen/Funktionen.cs @@ -30,14 +30,16 @@ namespace Deckungsbeitrag //public FormAufleger _aufleger; public static Auftrag _auftrag; public static Kunde _adresse; - private int currentPage = 0; + private static int currentPage = 0; private int totalPages = 0; int i = 0; int j = 0; private bool printOK; private static bool _nocont; private static Meldungen meldung = new Meldungen(); - + private static List _auftragliste; + private static Benutzer _fahrer; + public Funktionen() { @@ -629,14 +631,15 @@ namespace Deckungsbeitrag Image img = null; BarcodeWriter code = new BarcodeWriter(); code.Format = BarcodeFormat.QR_CODE; - img = code.Write(kunde.KundeNummer.ToString()); + if (kunde.KundeNummer == "2320000") img = code.Write(kunde.KundeNummer + "," + kunde.Suchtext); + else img = code.Write(kunde.KundeNummer.ToString()); //img = code.Write(auftrag.AuftragID + "," + kunde.KundeNummer + "," + auftrag.Liefertag.ToShortDateString()); return img; } /// - /// DRUCKEN VON SCHMUTZWÄSCHESCHEINEN & ETIKETTEN + /// DRUCKEN VON SCHMUTZWÄSCHESCHEINEN & ETIKETTEN & TOURENLISTEN /// public static Image SWS_Entwurf(Auftrag auftrag, Kunde adresse) { @@ -822,6 +825,115 @@ namespace Deckungsbeitrag return DialogResult.Cancel; } + public static Image TourenListe_Entwurf(List auftragliste, Benutzer fahrer, int bottom) + { + DateTime liefertag = auftragliste[0].Liefertag; + int ezl = 50; int handzeile = 33; float textsize = 15; float textsize2 = 30; int idx = 0; int idx1 = 0; int length = 0; float textsize3 = 10; + + int bitmapHeight = CalculateBitmapHeight(auftragliste); + Bitmap bitmap = new Bitmap(790, bitmapHeight); + 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 textSize4 = g.MeasureString("MO", new Font("Arial", textsize3, FontStyle.Regular)); + SizeF textSizePos = g.MeasureString("Container Gesamt: ", new Font("Arial", textsize, FontStyle.Regular)); + SizeF textSizePos2 = g.MeasureString("Container: ", new Font("Arial", textsize, FontStyle.Regular)); + int zeile = (int)textSize2.Height + 20; //PIXEL + int posTag = 145; + string sortNr = string.Empty; + + + g.FillRectangle(Brushes.White, 0, 0, bitmap.Width, bitmap.Height); + + //Adressblock + g.DrawString($"{fahrer.Vorname} {fahrer.Nachname}", new Font("Arial", textsize2, FontStyle.Regular), Brushes.Black, adressblock); + g.DrawString($"{GetWochentagDeutsch(liefertag.DayOfWeek)} {liefertag.ToShortDateString()}", new Font("Arial", textsize2, FontStyle.Regular), Brushes.Black, adressblock.X, adressblock.Y + (int)textSize3.Height); + + int lastline = 0; + int gesCont = 0; + int kndanzahl = 0; + foreach (Auftrag auftrag in auftragliste) + { + Kunde knd = Kunde.GetKunde(string.Empty, auftrag.KundeID, string.Empty); + string kndName = string.Empty; + gesCont += auftrag.ContainerClean; + if (knd == null) return null; + //Image qrcode = Get_QR_Code(adresse, null); + //QR-Code + //g.DrawImage(qrcode, bitmap.Width - 150, 50, 120, 120); + if (knd.KundeNummer == "2320000") kndName = auftrag.ZusatzInfo; + else kndName = string.IsNullOrWhiteSpace(knd.Suchtext) ? knd.KundeName : knd.Suchtext; + + SizeF kundenname = g.MeasureString(kndName, new Font("Arial", textsize, FontStyle.Regular)); + SizeF ortwidth = g.MeasureString(knd.Ort, new Font("Arial", textsize, FontStyle.Regular)); + SizeF adressewidth = g.MeasureString($"{knd.PLZ.ToString()} {knd.Ort}, {knd.Strasse}", new Font("Arial", textsize3, FontStyle.Regular)); + + ++idx1; + if (kndanzahl >= 15) + { + if (kndanzahl >= 35) + { + if (kndanzahl >= 55) length = (int)textSize3.Height * idx1 + 420; + else length = (int)textSize3.Height * idx1 + 280; + } + else length = (int)textSize3.Height * idx1 + 140; + } + else length = (int)textSize3.Height * idx1; + //ZEILE 1 + g.DrawString($"{kndName}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X, tabelle.Y + length - 20); + g.DrawString($"Container: {auftrag.ContainerClean}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + 450 - textSizePos2.Width, tabelle.Y + length - 20); + //ZEILE 2 + g.DrawString($"{knd.PLZ.ToString()} {knd.Ort}, {knd.Strasse}", new Font("Arial", textsize3, FontStyle.Regular), Brushes.Black, tabelle.X, tabelle.Y + textSize2.Height + length - 20); + //CHECKBOX ÜBER 2 ZEILEN + g.DrawRectangle(new Pen(Brushes.Black), ezl + 550, tabelle.Y + length - 18, textsize + textsize3 + 10, textsize3 + textsize + 10); + //LINIE UNTER ZEILE + g.DrawLine(new Pen(Brushes.Black), new Point(tabelle.X, lastline = tabelle.Y + (int)textSize2.Height + length), new Point(bitmap.Width - 50, tabelle.Y + (int)textSize2.Height + length)); + + kndanzahl++; + } + g.DrawString($"Anzahl Kunden: {kndanzahl.ToString()}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X, lastline + 10); + g.DrawString($"Container Gesamt: {gesCont.ToString()}", new Font("Arial", textsize, FontStyle.Regular), Brushes.Black, tabelle.X + 450 - textSizePos.Width, lastline = lastline + 10); + + + + Image img = bitmap; + return img; + + } + public static void TourenListe_Drucken(List auftragliste, Benutzer benutzer, object sender) + { + + if (auftragliste != null) _auftragliste = auftragliste; + if (benutzer != null) _fahrer = benutzer; + + PrintDialog dialog = new PrintDialog(); + foreach (string printer in PrinterSettings.InstalledPrinters) if (printer.Contains(Properties.Settings.Default.SWS_Drucker)) dialog.PrinterSettings.PrinterName = printer; + dialog.PrinterSettings.Copies = 1; + + + if (dialog.ShowDialog() == DialogResult.OK) + { + PrintDocument printDocument = new PrintDocument(); + printDocument.OriginAtMargins = true; + + printDocument.PrinterSettings = dialog.PrinterSettings; + printDocument.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 50); + printDocument.PrintPage += new PrintPageEventHandler(PrintDocument_PrintPage); + if (!sender.ToString().Contains("KundeDaten")) + { + PrintPreviewDialog preview = new PrintPreviewDialog(); + preview.StartPosition = FormStartPosition.CenterScreen; + preview.WindowState = FormWindowState.Maximized; + preview.Document = printDocument; + preview.Document.DocumentName = "TourenListe"; + preview.ShowDialog(); + } + else { dialog.Document = printDocument; dialog.Document.DocumentName = "TourenListe"; printDocument.Print(); } + } + + } private static void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { if (sender.ToString().Contains("SWS-Schein")) @@ -850,6 +962,52 @@ namespace Deckungsbeitrag e.HasMorePages = false; } if (sender.ToString().Contains("Etikett")) e.Graphics.DrawImage(Funktionen.Etikett_Entwurf(null, _auftrag, _nocont), e.PageBounds); + if (sender.ToString().Contains("TourenListe")) + { + int bottom = e.MarginBounds.Bottom - e.MarginBounds.Size.Height; + Image img = TourenListe_Entwurf(_auftragliste, _fahrer, bottom); + if (img == null) return; + + Rectangle printArea = e.MarginBounds; + + // Feste Höhe pro Seite (Pixel der Bitmap) + int pageHeight = printArea.Height; + int startY = currentPage * pageHeight; // Offset für diese Seite + + // Ausschnitt: Originalgröße, nur vertikal verschoben + Rectangle sourceRect = new Rectangle( + 0, // X=0 (kein horizontaler Ausschnitt) + startY, // Y dieser Seite + img.Width, // volle Breite + pageHeight // nur diese Seitenhöhe + ); + + // Ziel: Vollbild ohne Skalierung + Rectangle destRect = new Rectangle( + printArea.X, printArea.Y, + img.Width, pageHeight + ); + + // 1:1 ohne Skalierung zeichnen + e.Graphics.DrawImage(img, destRect, sourceRect, GraphicsUnit.Pixel); + + // Nächste Seite? + currentPage++; + e.HasMorePages = (startY + pageHeight) < img.Height; + } + } + private static int CalculateBitmapHeight(List auftragliste) + { + int firstPageItems = 15; // Erste Seite: 15 Aufträge + int otherPagesItems = 20; // Weitere Seiten: 20 Aufträge + + if (auftragliste.Count <= firstPageItems) + return 1119; // Nur 1 Seite + + int remainingItems = auftragliste.Count - firstPageItems; + int additionalPages = (int)Math.Ceiling((double)remainingItems / otherPagesItems); + + return 1119 * (1 + additionalPages); // 1. Seite + weitere Seiten } /// @@ -911,31 +1069,51 @@ namespace Deckungsbeitrag /// /// LISTVIEW COLUMNSBREITE WIRD ANGEPASST UND DAS UMREIHEN ERMÖGLICHT /// - public static ListView Columns_Resize(ListView lv) + public static (ListView lv, ObjectListView olv) Columns_Resize(ListView lv, ObjectListView olv) { - int realwidth = lv.Width; - int lvwWidth = 0; - lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); - ListView.ColumnHeaderCollection cc = lv.Columns; - for (int i = 0; i < cc.Count; i++) + if (olv == null) { - int colWidth = TextRenderer.MeasureText(cc[i].Text, lv.Font).Width + 30; - if (colWidth > cc[i].Width) + int realwidth = lv.Width; + int lvwWidth = 0; + lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); + ListView.ColumnHeaderCollection cc = lv.Columns; + for (int i = 0; i < cc.Count; i++) { - lvwWidth += cc[i].Width = colWidth; - } - else lvwWidth += cc[i].Width; - }//COLUMNS BREITE CONTENT ODER HEADER SIZE + int colWidth = TextRenderer.MeasureText(cc[i].Text, lv.Font).Width + 30; + if (colWidth > cc[i].Width) + { + lvwWidth += cc[i].Width = colWidth; + } + else lvwWidth += cc[i].Width; + }//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.Name.Contains("AufgabeVW") & !lv.Name.Contains("BenutzerVW") & !lv.Name.Contains("Auftrag")) lv.Width = lvwWidth; + //BREITE DER LISTVIEW UNVERÄNDERT BEI NAMEN MIT... + if (!lv.Name.Contains("Lieferungen") & !lv.Name.Contains("STH") & !lv.Name.Contains("Artikel") & !lv.Name.Contains("AufgabeVW") & !lv.Name.Contains("Auftrag")) lv.Width = lvwWidth; - return lv; - } - public static ListView Columns_Reorder(ListView lv) - { - lv.AllowColumnReorder = true; - return lv; + return (lv, null); + } + else + { + int realwidth = olv.Width; + int lvwWidth = 10; + olv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); + ObjectListView.ColumnHeaderCollection cc = olv.Columns; + for (int i = 0; i < cc.Count; i++) + { + int colWidth = TextRenderer.MeasureText(cc[i].Text, olv.Font).Width + 30; + if (colWidth > cc[i].Width) + { + lvwWidth += cc[i].Width = colWidth; + } + else lvwWidth += cc[i].Width; + }//COLUMNS BREITE CONTENT ODER HEADER SIZE + + //BREITE DER LISTVIEW UNVERÄNDERT BEI NAMEN MIT... + if (!olv.Name.Contains("Lieferungen") & !olv.Name.Contains("STH") & !olv.Name.Contains("Artikel") & !olv.Name.Contains("AufgabeVW") & !olv.Name.Contains("Auftrag")) olv.Width = lvwWidth; + + return (null, olv); + + } } /// @@ -1027,7 +1205,7 @@ namespace Deckungsbeitrag break; } //RESIZE COLUMNS - Columns_Resize(lv); + lv = Columns_Resize(lv, null).lv; //lv.Width = lv.Width + 22; lv.AllowColumnReorder = true; //lv.Height = 150; @@ -1053,7 +1231,7 @@ namespace Deckungsbeitrag string text = gb.Text; Font font = gb.Font; Size textSize = TextRenderer.MeasureText(text, font); - Pen pen = new Pen(Color.FromArgb(1, 53, 101), 2); + Pen pen = new Pen(Color.FromArgb(1, 53, 101), 3); int textWidth = textSize.Width; int textHeight = textSize.Height; diff --git a/Program.cs b/Program.cs index 3514e40..05debae 100644 --- a/Program.cs +++ b/Program.cs @@ -9,6 +9,8 @@ using System.Diagnostics; using System.IO; using System.Linq; using System.Management; +using System.Net; +using System.Reflection; using System.Runtime.CompilerServices; using System.Security.Cryptography.X509Certificates; using System.Threading; @@ -21,7 +23,7 @@ namespace Deckungsbeitrag { public static ImageList imagelist = new ImageList(); public static string userid; - private static bool istest = true; + private static bool istest = false; /// /// Der Haupteinstiegspunkt für die Anwendung. /// @@ -34,6 +36,11 @@ namespace Deckungsbeitrag Application.SetCompatibleTextRenderingDefault(false); Screen[] screens = Screen.AllScreens; + if (CheckAndInstallUpdate()) + { + return; + } + ImageList_Laden(); string readmePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Verwaltung_ReadMe.txt"); @@ -129,6 +136,64 @@ namespace Deckungsbeitrag } } + + private static bool CheckAndInstallUpdate() + { + string currentVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(); + string updatePath = @"N:\TECHNIK\Software\Wirl-Verwaltung\Setup"; // Ihr interner UNC-Pfad + + try + { + string newVersion = File.ReadAllText(Path.Combine(updatePath, "Version.txt")).Trim(); + + if (new Version(newVersion).CompareTo(new Version(currentVersion)) > 0) + { + DialogResult result = MessageBox.Show( + $"Update verfügbar: {newVersion}\nInstallieren?", + "Update verfügbar", + MessageBoxButtons.YesNo, + MessageBoxIcon.Question); + + string msiPath = Path.Combine(updatePath, "SetupVerwaltung.msi"); + + if (result == DialogResult.Yes) + { + try + { + // 1. Laufende Prozesse killen + //foreach (var proc in Process.GetProcessesByName("Deckungsbeitrag")) + // try { proc.Kill(); } catch { } + + // 2. MSI lokal kopieren (umgeht UNC-Fehler 2203) + string localMsi = Path.Combine(Path.GetTempPath(), "SetupVerwaltung.msi"); + File.Copy(msiPath, localMsi, true); + + // 3. MSI starten + var psi = new ProcessStartInfo + { + FileName = "msiexec.exe", + Arguments = $"/i \"{localMsi}\" /qn /norestart ALLUSERS=1 /L*v \"C:\\tmp\\update.log\"", + Verb = "runas", + UseShellExecute = true + }; + + Process.Start(psi)?.Dispose(); + return true; + } + catch (Exception ex) + { + MessageBox.Show($"Start fehlgeschlagen: {ex.Message}"); + } + } + } + } + catch (Exception ex) + { + MessageBox.Show($"Update-Prüfung fehlgeschlagen: {ex.Message}\nPfad: {updatePath}", + "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + return false; + } private static void ImageList_Laden() { imagelist.Images.Add(Resources.Exclamation_Red); diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index a4eae41..2261117 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // // Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, // indem Sie "*" wie unten gezeigt eingeben: -[assembly: AssemblyVersion("1.0.5.0")] -[assembly: AssemblyFileVersion("1.0.5.0")] +[assembly: AssemblyVersion("1.0.5.6")] +[assembly: AssemblyFileVersion("1.0.5.6")] diff --git a/SetupVerwaltung/SetupVerwaltung.vdproj b/SetupVerwaltung/SetupVerwaltung.vdproj index e5c8427..87b1e0e 100644 --- a/SetupVerwaltung/SetupVerwaltung.vdproj +++ b/SetupVerwaltung/SetupVerwaltung.vdproj @@ -1661,15 +1661,15 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:SetupVerwaltung" - "ProductCode" = "8:{6B3C669E-C722-4D03-89A0-20A0A08DB496}" - "PackageCode" = "8:{782FEDD4-F1E8-46A9-8434-AE7679248C4E}" + "ProductCode" = "8:{4FD79103-576E-403C-9E02-10D5B764821C}" + "PackageCode" = "8:{BA6A18B4-83A2-4F0C-A72C-B5A0AF2D5643}" "UpgradeCode" = "8:{2DC7CE56-8D1C-42EB-B326-2E887EBB7F5A}" "AspNetVersion" = "8:" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE" "InstallAllUsers" = "11:FALSE" - "ProductVersion" = "8:1.0.34" + "ProductVersion" = "8:1.0.43" "Manufacturer" = "8:Kilian Wirl GmbH" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" diff --git a/UserControls/UCAuftrag.Designer.cs b/UserControls/UCAuftrag.Designer.cs index 39cdc8f..0d6208a 100644 --- a/UserControls/UCAuftrag.Designer.cs +++ b/UserControls/UCAuftrag.Designer.cs @@ -60,6 +60,7 @@ namespace Deckungsbeitrag // // labelFahrer // + this.labelFahrer.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.labelFahrer.AutoSize = true; this.labelFahrer.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.labelFahrer.Location = new System.Drawing.Point(151, 32); @@ -104,7 +105,7 @@ namespace Deckungsbeitrag this.Controls.Add(this.labelFahrer); this.Controls.Add(this.labelRegion); this.Controls.Add(this.labelKunde); - this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.Margin = new System.Windows.Forms.Padding(2); this.Name = "UCAuftrag"; this.Size = new System.Drawing.Size(280, 61); this.ResumeLayout(false); diff --git a/UserControls/UCAuftrag.cs b/UserControls/UCAuftrag.cs index 2bbebb8..0dff5f8 100644 --- a/UserControls/UCAuftrag.cs +++ b/UserControls/UCAuftrag.cs @@ -46,10 +46,17 @@ namespace Deckungsbeitrag this.auftrag = auftrag; this.kunde = Kunde.GetKunde(null, auftrag.KundeID, null); Benutzer fahrer = Benutzer.GetBenutzer(null, auftrag.ArbeiterID); - KundenName = !string.IsNullOrWhiteSpace(this.kunde.Suchtext) ? this.kunde.Suchtext : this.kunde.KundeName; + // Wenn Kunde ist Bar Diverse 2320000. + if (auftrag.KundeID == 1299) KundenName = auftrag.ZusatzInfo; + else KundenName = !string.IsNullOrWhiteSpace(this.kunde.Suchtext) ? this.kunde.Suchtext : this.kunde.KundeName; + // Wenn Fahrer hat zweiten Auftrag auf Rampe erstellt, dann Auftrag 2 als Zusatzinfo. + if (auftrag.ZusatzInfo.Contains("Auftrag 2")) KundenName += " Auftrag 2"; KundenRegion = this.kunde.Region; ContainerAnzahl = auftrag.Container.ToString(); Fahrer = fahrer.Vorname + " " + fahrer.Nachname; + + if (this.auftrag.Status == AuftragStatus.Aufgelegt) + this.BackColor = Color.YellowGreen; } } diff --git a/UserSettingsManager.cs b/UserSettingsManager.cs index d22362c..821f319 100644 --- a/UserSettingsManager.cs +++ b/UserSettingsManager.cs @@ -5,6 +5,7 @@ using System.Text.Json; public class UserSettingsManager { + #region Speicher-Properties public string DruckerSWS { get; set; } = ""; public string DruckerEtikett { get; set; } = ""; public decimal CopiesSWS { get; set; } = 0; @@ -15,12 +16,19 @@ public class UserSettingsManager public Color Hubband { get; set; } = Color.LightBlue; public Color Trockner { get; set; } = Color.Green; public Color Entladeband { get; set; } = Color.Violet; - public Point LocationGroupBox { get; set; } = new Point(0, 0); + public Point LocationGroupBoxStatistik { get; set; } = new Point(0, 0); + public Point LocationGroupBoxSaison { get; set; } = new Point(0, 0); + public Point LocationGroupBoxContainer { get; set; } = new Point(0, 0); public Point LocationButtonNeuerUser { get; set; } = new Point(0, 0); public Point LocationButtonNeuerAuftrag { get; set; } = new Point(0, 0); + public Point LocationButtonNeueInventur { get; set; } = new Point(0, 0); + public Point LocationButtonNeuerStand { get; set; } = new Point(0, 0); + public Point LocationButtonNeueAufgabe { get; set; } = new Point(0, 0); public Byte[] OLV_State { get; set; } //TODO: UserSetting Properties eintragen und in EinstellungsScreen abrufen. + + #endregion private readonly string _configPath; public UserSettingsManager() @@ -50,10 +58,17 @@ public class UserSettingsManager Hubband = loadedSettings.Hubband; Trockner = loadedSettings.Trockner; Entladeband = loadedSettings.Entladeband; - LocationGroupBox = loadedSettings.LocationGroupBox; + LocationGroupBoxStatistik = loadedSettings.LocationGroupBoxStatistik; + LocationGroupBoxSaison = loadedSettings.LocationGroupBoxSaison; + LocationGroupBoxContainer = loadedSettings.LocationGroupBoxContainer; LocationButtonNeuerUser = loadedSettings.LocationButtonNeuerUser; LocationButtonNeuerAuftrag = loadedSettings.LocationButtonNeuerAuftrag; + LocationButtonNeueInventur = loadedSettings.LocationButtonNeueInventur; + LocationButtonNeuerStand = loadedSettings.LocationButtonNeuerStand; + LocationButtonNeueAufgabe = loadedSettings.LocationButtonNeueAufgabe; + OLV_State = loadedSettings.OLV_State; + // Weitere Properties hier zuweisen //TODO: Weitere Properties von oben hier zuweisen } diff --git a/Verwaltung_ReadMe.txt b/Verwaltung_ReadMe.txt index 52404ec..d33ab51 100644 --- a/Verwaltung_ReadMe.txt +++ b/Verwaltung_ReadMe.txt @@ -1,13 +1,13 @@ ===================================== -NEUIGKEITEN - Version 1.0.5.0 +NEUIGKEITEN - Version 1.0.5.6 ===================================== Build-Info: - Build-Typ: Release Build - Erledigte TODOs: 18 -- Offene TODOs: 34 +- Offene TODOs: 32 - Install-Reminders: 3 -- Changes: 42 +- Changes: 47 === ⚙️ INSTALL-REMINDER (3) === @@ -15,7 +15,7 @@ Build-Info: - ⚙️ Spalte Abteilungen in Auftrag muss in Wirl_DB_17012023 eingefügt werden. [FormExpedit.cs] - ⚙️ Spalte Reklamation in Wirl_DB_17012023 einfügen [KundeArtikel.cs] -=== ✨ CHANGES (42) === +=== ✨ CHANGES (47) === - ✨ AbteilungsStatus ist implementiert. [FormExpedit.cs] - ✨ Als zweite Sortierung wird immer der Liefertag gewählt. [FormExpedit.cs] - ✨ Auftragverwaltung Spalten wurden aktualisiert. Mit Icons, Buttons und Sortierung auf Liefertag. [FormMain.cs] @@ -32,22 +32,27 @@ Build-Info: - ✨ Es wird der zuständige Fahrer angezeigt. ToolTip zeigt den Grund falls vorhanden(Bei Sonderzuteilung). [FormExpedit.cs] - ✨ Expedit hat Button für Reklamation statt Nachwäsche. Dadurch kann Mirka die Reklamation bearbeiten und eingeben. (AKTUELL NUR MIRKA) [FormExpedit.cs] - ✨ Fahrer können abgeholte Aufträge erstellen und ausgelieferte Aufträge markieren. [FormMain.cs] +- ✨ Form für Aufleger soweit fertig. [FormAufleger.cs] - ✨ Frottee Expedit alle Buttons werden ausgeblendet. [FormExpedit.cs] - ✨ Frottee Expedit zeigt Aufträge die bei Frottee nicht Beendet wurden. [FormExpedit.cs] - ✨ Geschäftaufträge werden in neuem Tab angezeigt. [FormExpedit.cs] - ✨ GroupBox nicht mehr notwendig. Etikette Druck über ObjectListView. [FormExpedit.cs] - ✨ Highlightfarbe bleibt auch wenn unfocused. (Farbe ändern?) [FormExpedit.cs] +- ✨ Hintergrundfarbe wird jetzt immer richtig zugewiesen. [FormAufleger.cs] - ✨ Innerhalb eines Tages kann die Reihenfolge angepasst werden. [UCTabPageLKW.cs] - ✨ Keine Timer da Probleme mit DB-Connection. DataGridView wird neu geladen wenn Auftrag neu gewählt wird. [FormExpedit.cs] +- ✨ Kontrolle ob mehrere Aufträge vorhanden fertig. [FormAufleger.cs] - ✨ Kundeneingabe mit ? fügt einmaligen Kundenname als ZusatzInfo hinzu und wählt Kunde BAR DIVERSE 2320000 [FormExpedit.cs] - ✨ Lieferrhythmen können angepasst und übernommen werden. [UCTabPageLKW.cs] - ✨ Liefertag errechnet sich jetzt aus dem Lieferrhythmus. Funktion wählt nächstmöglichen Liefertermin im Rhythmus. Bei Klick auf Tag bleibt alles gleich. (Auch mit Heute liefern?) [FormNeuerAuftrag.cs] - ✨ NeuerAuftrag wird jetzt mit Propertie AuftragTyp aufgerufen. Dadurch ist die Auswahl des AuftragTyp konstanter. [FormNeuerAuftrag.cs] - ✨ ObjectListView speichert Status automatisch beim schließen des Fensters und läd wieder wenn neu gestartet wird. [FormExpedit.cs] +- ✨ Programm wird mit Button geschlossen. (Sicherheitsabfrage ob wirklich gewollt wird gemacht.) [FormAufleger.cs] - ✨ Rechtsklick auf Spaltenheader ermöglicht Filtern. [FormExpedit.cs] - ✨ Saisonauswahl DropDown eingefügt. Wenn Zwischensaison gewählt wir Warnung wegen falschen Liefertagen gezeigt. Sonst wird Saisonrhythmus als Liefertag beachtet. [FormMain.cs] - ✨ Sortierte Spalte hat leicht andere Farbe. (Besser zu erkennen wonach sortiert wird) [FormExpedit.cs] - ✨ Speichern und Laden wurde angepasst, JSON enthält jetzt pro Tag eine Kundenliste. [UCTabPageLKW.cs] +- ✨ Status anpassen fertig. [FormAufleger.cs] - ✨ Suchen eines Auftrags mit Scan möglich. [FormExpedit.cs] - ✨ TabText wird mit Benutzerliste verglichen. Wenn ein passender gefunden wird Tag hinterlegt. [FormTourenplanung.cs] - ✨ Wenn BenutzerRolle ist Expedit wird abgefragt ob weitere Reklamation eingegeben wird. [FormFehlmengeCount.cs] @@ -81,7 +86,7 @@ Build-Info: - ✅ : Wenn NeuerAuftrag gewählt wie gehts weiter? [FormAusschlager.cs] -=== 🔄 OFFENE TODOs (34) === +=== 🔄 OFFENE TODOs (32) === - 🔄 Alle Icons in einer Spalte anzeigen? I für Anmerkung und ! für Aufgabe?? [FormExpedit.cs] - 🔄 Alle Icons in einer Spalte anzeigen? I für Anmerkung und ! für Aufgabe?? [FormMain.cs] - 🔄 Artikel Update weiter testen und programmieren. Für ArtikelKurzliste ausprogrammieren. [FormMain.cs] @@ -107,15 +112,13 @@ Build-Info: - 🔄 Testen ob Get_ArtikelKurzliste funktioniert. [FormMain.cs] - 🔄 Testen ob Scan mit Prompt bei Suchen funktioniert. Kundenummer und Text etc. (meherere QR-Codes teseten) [FormExpedit.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] - 🔄 Umbau in Switch. [FormAufleger.cs] - 🔄 Umbau in Switch. [FormWSVerfolgung.cs] - 🔄 UserSetting Properties eintragen und in EinstellungsScreen abrufen. [UserSettingsManager.cs] - 🔄 Weitere Properties von oben hier zuweisen [UserSettingsManager.cs] - 🔄 Wenn Frottee-Expedit auch Relamation bearbeitet, muss BenutzerRolle abgefragt werden. siehe CHANGES. [FormFehlmengeCount.cs] -- 🔄 Wenn GroupBox nicht notwendig, dann löschen. [FormExpedit.cs] - 🔄 Wenn kunde null dann return. [FormNeuerAuftrag.cs] - 🔄 Wenn Nachwäsche oder Müllwäsche alle Artikel anzeigen. [FormFehlmengeCount.cs] -Installation: 13.02.2026 17:06 +Installation: 17.02.2026 18:05 =====================================