Änderungen an Auftragauswahl in FormWSVerfolgung und FehlmengeCount. FormListe mit AuftragListe und AuftragKundenListe versehen. Spalten in AuftragVW in FormMain aktualisiert. Fahrer Registrierung mit NeuerAuftrag implementiert.
This commit is contained in:
parent
651fcad886
commit
2a696e1207
@ -305,8 +305,8 @@ namespace Deckungsbeitrag
|
||||
Fach_Laden();
|
||||
}
|
||||
}
|
||||
//TODO: Wenn NeuerAuftrag gewählt wie gehts weiter?
|
||||
}
|
||||
}
|
||||
//DONE: Bei Transport wir ein Fach mit Aktuellem Auftrag erstellt. Das Alte wird bei Transport gespeichert.
|
||||
//DONE: Wenn NeuerAuftrag gewählt Fach ändern nicht vergessen.
|
||||
//DONE: Wenn NeuerAuftrag gewählt wie gehts weiter?
|
||||
|
||||
268
AA-Forms/FormExpedit.Designer.cs
generated
268
AA-Forms/FormExpedit.Designer.cs
generated
@ -71,7 +71,23 @@
|
||||
this.tabPageAll = new System.Windows.Forms.TabPage();
|
||||
this.objectListViewAuftrag = new BrightIdeasSoftware.ObjectListView();
|
||||
this.tabControlAuftragList = new System.Windows.Forms.TabControl();
|
||||
this.buttonStats = new System.Windows.Forms.Button();
|
||||
this.buttonEinstellung = new System.Windows.Forms.Button();
|
||||
this.groupBoxStatistik = new System.Windows.Forms.GroupBox();
|
||||
this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
|
||||
this.tableLayoutPanelStatistik = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.labelZahl6 = new System.Windows.Forms.Label();
|
||||
this.labelStatistik6 = new System.Windows.Forms.Label();
|
||||
this.labelZahl5 = new System.Windows.Forms.Label();
|
||||
this.labelStatistik5 = new System.Windows.Forms.Label();
|
||||
this.labelZahl4 = new System.Windows.Forms.Label();
|
||||
this.labelStatistik4 = new System.Windows.Forms.Label();
|
||||
this.labelZahl3 = new System.Windows.Forms.Label();
|
||||
this.labelStatistik3 = new System.Windows.Forms.Label();
|
||||
this.labelZahl2 = new System.Windows.Forms.Label();
|
||||
this.labelStatistik2 = new System.Windows.Forms.Label();
|
||||
this.labelZahl1 = new System.Windows.Forms.Label();
|
||||
this.labelStatistik1 = new System.Windows.Forms.Label();
|
||||
this.groupBoxEtikett.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxMinus)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxPlus)).BeginInit();
|
||||
@ -82,6 +98,8 @@
|
||||
this.tabPageAll.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.objectListViewAuftrag)).BeginInit();
|
||||
this.tabControlAuftragList.SuspendLayout();
|
||||
this.groupBoxStatistik.SuspendLayout();
|
||||
this.tableLayoutPanelStatistik.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label10
|
||||
@ -382,7 +400,7 @@
|
||||
this.buttonSWS_Drucken.FlatAppearance.BorderSize = 0;
|
||||
this.buttonSWS_Drucken.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.buttonSWS_Drucken.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.buttonSWS_Drucken.Location = new System.Drawing.Point(1226, 727);
|
||||
this.buttonSWS_Drucken.Location = new System.Drawing.Point(1179, 727);
|
||||
this.buttonSWS_Drucken.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.buttonSWS_Drucken.Name = "buttonSWS_Drucken";
|
||||
this.buttonSWS_Drucken.Size = new System.Drawing.Size(200, 41);
|
||||
@ -461,7 +479,7 @@
|
||||
this.buttonNeuerAuftrag.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
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.Black;
|
||||
this.buttonNeuerAuftrag.Location = new System.Drawing.Point(1022, 727);
|
||||
this.buttonNeuerAuftrag.Location = new System.Drawing.Point(975, 727);
|
||||
this.buttonNeuerAuftrag.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.buttonNeuerAuftrag.Name = "buttonNeuerAuftrag";
|
||||
this.buttonNeuerAuftrag.Size = new System.Drawing.Size(200, 41);
|
||||
@ -667,6 +685,20 @@
|
||||
this.tabControlAuftragList.SelectedIndexChanged += new System.EventHandler(this.tabControlAuftragList_SelectedIndexChanged);
|
||||
this.tabControlAuftragList.Selected += new System.Windows.Forms.TabControlEventHandler(this.tabControlAuftragList_Selected);
|
||||
//
|
||||
// buttonStats
|
||||
//
|
||||
this.buttonStats.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.buttonStats.FlatAppearance.BorderColor = System.Drawing.Color.White;
|
||||
this.buttonStats.FlatAppearance.BorderSize = 3;
|
||||
this.buttonStats.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.buttonStats.Image = global::Deckungsbeitrag.Properties.Resources.StatisticsWarning_16x;
|
||||
this.buttonStats.Location = new System.Drawing.Point(1384, 727);
|
||||
this.buttonStats.Name = "buttonStats";
|
||||
this.buttonStats.Size = new System.Drawing.Size(41, 41);
|
||||
this.buttonStats.TabIndex = 46;
|
||||
this.buttonStats.UseVisualStyleBackColor = true;
|
||||
this.buttonStats.Click += new System.EventHandler(this.buttonStats_Click);
|
||||
//
|
||||
// buttonEinstellung
|
||||
//
|
||||
this.buttonEinstellung.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
@ -681,12 +713,225 @@
|
||||
this.buttonEinstellung.UseVisualStyleBackColor = true;
|
||||
this.buttonEinstellung.Click += new System.EventHandler(this.buttonEinstellung_Click);
|
||||
//
|
||||
// groupBoxStatistik
|
||||
//
|
||||
this.groupBoxStatistik.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBoxStatistik.Controls.Add(this.dateTimePicker1);
|
||||
this.groupBoxStatistik.Controls.Add(this.tableLayoutPanelStatistik);
|
||||
this.groupBoxStatistik.ForeColor = System.Drawing.Color.White;
|
||||
this.groupBoxStatistik.Location = new System.Drawing.Point(1171, 12);
|
||||
this.groupBoxStatistik.Name = "groupBoxStatistik";
|
||||
this.groupBoxStatistik.Size = new System.Drawing.Size(301, 197);
|
||||
this.groupBoxStatistik.TabIndex = 62;
|
||||
this.groupBoxStatistik.TabStop = false;
|
||||
this.groupBoxStatistik.Text = "STATISTIK";
|
||||
this.groupBoxStatistik.Visible = false;
|
||||
//
|
||||
// dateTimePicker1
|
||||
//
|
||||
this.dateTimePicker1.CustomFormat = "dddd dd.MM.yyyy";
|
||||
this.dateTimePicker1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dateTimePicker1.Location = new System.Drawing.Point(10, 19);
|
||||
this.dateTimePicker1.Name = "dateTimePicker1";
|
||||
this.dateTimePicker1.Size = new System.Drawing.Size(224, 26);
|
||||
this.dateTimePicker1.TabIndex = 1;
|
||||
this.dateTimePicker1.CloseUp += new System.EventHandler(this.dateTimePicker1_CloseUp);
|
||||
//
|
||||
// tableLayoutPanelStatistik
|
||||
//
|
||||
this.tableLayoutPanelStatistik.ColumnCount = 2;
|
||||
this.tableLayoutPanelStatistik.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanelStatistik.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanelStatistik.Controls.Add(this.labelZahl6, 1, 5);
|
||||
this.tableLayoutPanelStatistik.Controls.Add(this.labelStatistik6, 0, 5);
|
||||
this.tableLayoutPanelStatistik.Controls.Add(this.labelZahl5, 1, 4);
|
||||
this.tableLayoutPanelStatistik.Controls.Add(this.labelStatistik5, 0, 4);
|
||||
this.tableLayoutPanelStatistik.Controls.Add(this.labelZahl4, 1, 3);
|
||||
this.tableLayoutPanelStatistik.Controls.Add(this.labelStatistik4, 0, 3);
|
||||
this.tableLayoutPanelStatistik.Controls.Add(this.labelZahl3, 1, 2);
|
||||
this.tableLayoutPanelStatistik.Controls.Add(this.labelStatistik3, 0, 2);
|
||||
this.tableLayoutPanelStatistik.Controls.Add(this.labelZahl2, 1, 1);
|
||||
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(295, 143);
|
||||
this.tableLayoutPanelStatistik.TabIndex = 0;
|
||||
//
|
||||
// labelZahl6
|
||||
//
|
||||
this.labelZahl6.AutoSize = true;
|
||||
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.Color.White;
|
||||
this.labelZahl6.Location = new System.Drawing.Point(99, 115);
|
||||
this.labelZahl6.Name = "labelZahl6";
|
||||
this.labelZahl6.Size = new System.Drawing.Size(53, 28);
|
||||
this.labelZahl6.TabIndex = 11;
|
||||
this.labelZahl6.Text = "Zahl 6";
|
||||
this.labelZahl6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelStatistik6
|
||||
//
|
||||
this.labelStatistik6.AutoSize = true;
|
||||
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.Color.White;
|
||||
this.labelStatistik6.Location = new System.Drawing.Point(3, 115);
|
||||
this.labelStatistik6.Name = "labelStatistik6";
|
||||
this.labelStatistik6.Size = new System.Drawing.Size(90, 28);
|
||||
this.labelStatistik6.TabIndex = 10;
|
||||
this.labelStatistik6.Text = "Statistik 6";
|
||||
this.labelStatistik6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelZahl5
|
||||
//
|
||||
this.labelZahl5.AutoSize = true;
|
||||
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.Color.White;
|
||||
this.labelZahl5.Location = new System.Drawing.Point(99, 92);
|
||||
this.labelZahl5.Name = "labelZahl5";
|
||||
this.labelZahl5.Size = new System.Drawing.Size(53, 23);
|
||||
this.labelZahl5.TabIndex = 9;
|
||||
this.labelZahl5.Text = "Zahl 5";
|
||||
this.labelZahl5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelStatistik5
|
||||
//
|
||||
this.labelStatistik5.AutoSize = true;
|
||||
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.Color.White;
|
||||
this.labelStatistik5.Location = new System.Drawing.Point(3, 92);
|
||||
this.labelStatistik5.Name = "labelStatistik5";
|
||||
this.labelStatistik5.Size = new System.Drawing.Size(90, 23);
|
||||
this.labelStatistik5.TabIndex = 8;
|
||||
this.labelStatistik5.Text = "Statistik 5";
|
||||
this.labelStatistik5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelZahl4
|
||||
//
|
||||
this.labelZahl4.AutoSize = true;
|
||||
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.Color.White;
|
||||
this.labelZahl4.Location = new System.Drawing.Point(99, 69);
|
||||
this.labelZahl4.Name = "labelZahl4";
|
||||
this.labelZahl4.Size = new System.Drawing.Size(53, 23);
|
||||
this.labelZahl4.TabIndex = 7;
|
||||
this.labelZahl4.Text = "Zahl 4";
|
||||
this.labelZahl4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelStatistik4
|
||||
//
|
||||
this.labelStatistik4.AutoSize = true;
|
||||
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.Color.White;
|
||||
this.labelStatistik4.Location = new System.Drawing.Point(3, 69);
|
||||
this.labelStatistik4.Name = "labelStatistik4";
|
||||
this.labelStatistik4.Size = new System.Drawing.Size(90, 23);
|
||||
this.labelStatistik4.TabIndex = 6;
|
||||
this.labelStatistik4.Text = "Statistik 4";
|
||||
this.labelStatistik4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelZahl3
|
||||
//
|
||||
this.labelZahl3.AutoSize = true;
|
||||
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.Color.White;
|
||||
this.labelZahl3.Location = new System.Drawing.Point(99, 46);
|
||||
this.labelZahl3.Name = "labelZahl3";
|
||||
this.labelZahl3.Size = new System.Drawing.Size(53, 23);
|
||||
this.labelZahl3.TabIndex = 5;
|
||||
this.labelZahl3.Text = "Zahl 3";
|
||||
this.labelZahl3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelStatistik3
|
||||
//
|
||||
this.labelStatistik3.AutoSize = true;
|
||||
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.Color.White;
|
||||
this.labelStatistik3.Location = new System.Drawing.Point(3, 46);
|
||||
this.labelStatistik3.Name = "labelStatistik3";
|
||||
this.labelStatistik3.Size = new System.Drawing.Size(90, 23);
|
||||
this.labelStatistik3.TabIndex = 4;
|
||||
this.labelStatistik3.Text = "Statistik 3";
|
||||
this.labelStatistik3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelZahl2
|
||||
//
|
||||
this.labelZahl2.AutoSize = true;
|
||||
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.Color.White;
|
||||
this.labelZahl2.Location = new System.Drawing.Point(99, 23);
|
||||
this.labelZahl2.Name = "labelZahl2";
|
||||
this.labelZahl2.Size = new System.Drawing.Size(53, 23);
|
||||
this.labelZahl2.TabIndex = 3;
|
||||
this.labelZahl2.Text = "Zahl 2";
|
||||
this.labelZahl2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelStatistik2
|
||||
//
|
||||
this.labelStatistik2.AutoSize = true;
|
||||
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.Color.White;
|
||||
this.labelStatistik2.Location = new System.Drawing.Point(3, 23);
|
||||
this.labelStatistik2.Name = "labelStatistik2";
|
||||
this.labelStatistik2.Size = new System.Drawing.Size(90, 23);
|
||||
this.labelStatistik2.TabIndex = 2;
|
||||
this.labelStatistik2.Text = "Statistik 2";
|
||||
this.labelStatistik2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelZahl1
|
||||
//
|
||||
this.labelZahl1.AutoSize = true;
|
||||
this.labelZahl1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.labelZahl1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelZahl1.ForeColor = System.Drawing.Color.White;
|
||||
this.labelZahl1.Location = new System.Drawing.Point(99, 0);
|
||||
this.labelZahl1.Name = "labelZahl1";
|
||||
this.labelZahl1.Size = new System.Drawing.Size(53, 23);
|
||||
this.labelZahl1.TabIndex = 1;
|
||||
this.labelZahl1.Text = "Zahl 1";
|
||||
this.labelZahl1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelStatistik1
|
||||
//
|
||||
this.labelStatistik1.AutoSize = true;
|
||||
this.labelStatistik1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.labelStatistik1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelStatistik1.ForeColor = System.Drawing.Color.White;
|
||||
this.labelStatistik1.Location = new System.Drawing.Point(3, 0);
|
||||
this.labelStatistik1.Name = "labelStatistik1";
|
||||
this.labelStatistik1.Size = new System.Drawing.Size(90, 23);
|
||||
this.labelStatistik1.TabIndex = 0;
|
||||
this.labelStatistik1.Text = "Statistik 1";
|
||||
this.labelStatistik1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// FormExpedit
|
||||
//
|
||||
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(1481, 777);
|
||||
this.Controls.Add(this.groupBoxStatistik);
|
||||
this.Controls.Add(this.buttonStats);
|
||||
this.Controls.Add(this.buttonEinstellung);
|
||||
this.Controls.Add(this.dGArtikel);
|
||||
this.Controls.Add(this.buttonNeuerAuftrag);
|
||||
@ -719,6 +964,9 @@
|
||||
this.tabPageAll.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.objectListViewAuftrag)).EndInit();
|
||||
this.tabControlAuftragList.ResumeLayout(false);
|
||||
this.groupBoxStatistik.ResumeLayout(false);
|
||||
this.tableLayoutPanelStatistik.ResumeLayout(false);
|
||||
this.tableLayoutPanelStatistik.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@ -766,5 +1014,21 @@
|
||||
private BrightIdeasSoftware.ObjectListView objectListViewAuftrag;
|
||||
private System.Windows.Forms.TabControl tabControlAuftragList;
|
||||
private System.Windows.Forms.Button buttonEinstellung;
|
||||
private System.Windows.Forms.Button buttonStats;
|
||||
private System.Windows.Forms.GroupBox groupBoxStatistik;
|
||||
private System.Windows.Forms.DateTimePicker dateTimePicker1;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanelStatistik;
|
||||
private System.Windows.Forms.Label labelZahl6;
|
||||
private System.Windows.Forms.Label labelStatistik6;
|
||||
private System.Windows.Forms.Label labelZahl5;
|
||||
private System.Windows.Forms.Label labelStatistik5;
|
||||
private System.Windows.Forms.Label labelZahl4;
|
||||
private System.Windows.Forms.Label labelStatistik4;
|
||||
private System.Windows.Forms.Label labelZahl3;
|
||||
private System.Windows.Forms.Label labelStatistik3;
|
||||
private System.Windows.Forms.Label labelZahl2;
|
||||
private System.Windows.Forms.Label labelStatistik2;
|
||||
private System.Windows.Forms.Label labelZahl1;
|
||||
private System.Windows.Forms.Label labelStatistik1;
|
||||
}
|
||||
}
|
||||
@ -1,10 +1,13 @@
|
||||
using BrightIdeasSoftware;
|
||||
using DatenDB;
|
||||
using Deckungsbeitrag.Properties;
|
||||
using Npgsql;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Net.Sockets;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Resolvers;
|
||||
|
||||
@ -34,7 +37,9 @@ namespace Deckungsbeitrag
|
||||
private Screen[] screens;
|
||||
private Point itemlocation;
|
||||
private ImageList imagelist = new ImageList();
|
||||
|
||||
private volatile bool _isProcessing = false; // Thread-sicherer Flag gegen Überlappung
|
||||
private int _consecutiveFailures = 0;
|
||||
private const int MAX_FAILURES = 3;
|
||||
|
||||
public FormExpedit(Benutzer benutzer)
|
||||
{
|
||||
@ -164,15 +169,62 @@ namespace Deckungsbeitrag
|
||||
/// <param name="e"></param>
|
||||
private void Timer1_Tick(object sender, EventArgs e)
|
||||
{
|
||||
// Vermeide Überlappung (wenn vorheriger Tick noch läuft)
|
||||
if (_isProcessing) return;
|
||||
|
||||
Cursor.Current = Cursors.WaitCursor;
|
||||
_isProcessing = true;
|
||||
|
||||
if(auftrag != null)
|
||||
try
|
||||
{
|
||||
Auftrag _auftrag = Auftrag.GetAuftrag(auftrag.AuftragID);
|
||||
if(dGArtikel.Visible) Load_Gridview(_auftrag);
|
||||
}
|
||||
if (auftrag != null)
|
||||
{
|
||||
const int maxRetries = 3;
|
||||
Auftrag _auftrag = null;
|
||||
|
||||
Cursor.Current = Cursors.Default;
|
||||
for (int retry = 0; retry < maxRetries; retry++)
|
||||
{
|
||||
try
|
||||
{
|
||||
_auftrag = Auftrag.GetAuftrag(auftrag.AuftragID);
|
||||
if (dGArtikel.Visible) Load_Gridview(_auftrag);
|
||||
|
||||
_consecutiveFailures = 0; // Erfolg -> Zähler reset
|
||||
break;
|
||||
}
|
||||
catch (NpgsqlException ex) when ((ex.InnerException is SocketException || ex.InnerException is System.IO.IOException) && retry < maxRetries - 1)
|
||||
{
|
||||
_consecutiveFailures++;
|
||||
Debug.WriteLine($"Retry {retry + 1}/{maxRetries}: {ex.Message}"); // Logging
|
||||
|
||||
System.Threading.Thread.Sleep(1000 * (int)Math.Pow(2, retry)); // Backoff: 1s, 2s, 4s
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine($"Unexpected error: {ex.Message}"); // Logging
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Timer stoppen bei zu vielen aufeinanderfolgenden Fehlern
|
||||
if (_consecutiveFailures >= MAX_FAILURES)
|
||||
{
|
||||
timer1.Enabled = false;
|
||||
Debug.WriteLine("Timer gestoppt nach " + MAX_FAILURES + " Fehlern. Bitte manuell neu starten.");
|
||||
// Optional: Status-Label setzen oder MessageBox
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine($"Timer1_Tick globaler Fehler: {ex}");
|
||||
_consecutiveFailures++;
|
||||
}
|
||||
finally
|
||||
{
|
||||
_isProcessing = false;
|
||||
Cursor.Current = Cursors.Default;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -379,9 +431,7 @@ namespace Deckungsbeitrag
|
||||
if(knd != null) Funktionen.SWS_Drucken(null, knd, this);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ObjectListView Funktionen
|
||||
/// </summary>
|
||||
#region ObjectListView-Events
|
||||
private void objectListViewAuftrag_CellClick(object sender, CellClickEventArgs e)
|
||||
{
|
||||
itemlocation = new Point(e.Location.X, e.Location.Y);
|
||||
@ -682,6 +732,8 @@ namespace Deckungsbeitrag
|
||||
// Cursor zurücksetzen
|
||||
Cursor.Current = Cursors.Default;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Liefertag wird ermittelt und in Day of Week umgerechnet. RadioButtons werden Checked oder Unchecked und Click wird registriert.
|
||||
@ -808,8 +860,71 @@ namespace Deckungsbeitrag
|
||||
einstellung.ShowDialog();
|
||||
}
|
||||
|
||||
#region Statistik
|
||||
private void buttonStats_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.groupBoxStatistik.Visible) this.groupBoxStatistik.Visible = false;
|
||||
else this.groupBoxStatistik.Visible = true;
|
||||
}
|
||||
private void GetStatistik()
|
||||
{
|
||||
string[] statistik = { "Container gewaschen:", "Container hergerichtet:", "Container fertig:", "Kunden gewaschen:", "Kunden hergerichtet:", "Kunden abgeschlossen:" };
|
||||
List<Auftrag> auftraglist = Auftrag.GetAuftragStatsListToday(this.dateTimePicker1.Value.Date);
|
||||
|
||||
for (int i = 1; i <= statistik.Length; i++)
|
||||
{
|
||||
foreach (Control ctr in this.tableLayoutPanelStatistik.Controls)
|
||||
{
|
||||
Label lbl;
|
||||
if (ctr.GetType() == typeof(Label))
|
||||
{
|
||||
lbl = (Label)ctr;
|
||||
if (lbl.Text.Contains("Statistik") && lbl.Text.Contains($"{i.ToString()}")) lbl.Text = statistik[i - 1].ToString();
|
||||
if (lbl.Name.Contains("Zahl"))
|
||||
{
|
||||
|
||||
int j = 0;
|
||||
switch (lbl.Name)
|
||||
{
|
||||
case var s when s.Contains($"1"):
|
||||
foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Aufgelegt) j += a.Container;
|
||||
lbl.Text = j.ToString();
|
||||
break;
|
||||
case var s when s.Contains($"2"):
|
||||
foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Vorbereitet) j += a.ContainerClean;
|
||||
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;
|
||||
lbl.Text = j.ToString();
|
||||
break;
|
||||
case var s when s.Contains($"4"):
|
||||
foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Aufgelegt) j++;
|
||||
lbl.Text = j.ToString();
|
||||
break;
|
||||
case var s when s.Contains($"5"):
|
||||
foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Vorbereitet) j++;
|
||||
lbl.Text = j.ToString();
|
||||
break;
|
||||
case var s when s.Contains($"{i}"):
|
||||
foreach (Auftrag a in auftraglist) if (a.Status == AuftragStatus.Fertig) j++;
|
||||
lbl.Text = j.ToString();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//this.groupBoxStatistik.Width = this.tableLayoutPanelStatistik.Right;
|
||||
|
||||
}
|
||||
private void dateTimePicker1_CloseUp(object sender, EventArgs e)
|
||||
{
|
||||
GetStatistik();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
//DONE: Breite der GridView festlegen.
|
||||
//DONE: OLV-Item refresh. Neuer Liefertag speichern.
|
||||
//DONE: Testen ob ausblenden der Button Column funktioniert. Benutzer-Verwaltung oder Frottee oder Flach notwendig.
|
||||
//CHANGES: Statistik für Expedit. (Same as in Main)
|
||||
@ -21,7 +21,8 @@ namespace Deckungsbeitrag
|
||||
Kunde kunde;
|
||||
List<KundeArtikel> artikelListe;
|
||||
Meldungen meldung = new Meldungen();
|
||||
//Benutzer benutzer;
|
||||
private List<Auftrag> auftragsliste;
|
||||
|
||||
string userid;
|
||||
public FormFehlmengeCount()
|
||||
{
|
||||
@ -45,7 +46,8 @@ namespace Deckungsbeitrag
|
||||
|
||||
|
||||
//Kunde wird durch Scan oder Handeingabe Ausgewählt.
|
||||
this.kunde = Funktionen.KundenAuswahl();
|
||||
//this.kunde = Funktionen.KundenAuswahl();
|
||||
Open_Liste();
|
||||
|
||||
ControlLaden();
|
||||
CloseKeyboard();
|
||||
@ -305,9 +307,30 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
|
||||
//Kunde wird durch Scan oder Handeingabe Ausgewählt.
|
||||
this.kunde = Funktionen.KundenAuswahl();
|
||||
Open_Liste();
|
||||
ControlLaden();
|
||||
}
|
||||
/// <summary>
|
||||
/// Auftragliste aufrufen.
|
||||
/// </summary>
|
||||
/// <param name="extra">Wenn Extrakunde dann true</param>
|
||||
private void Open_Liste()
|
||||
{
|
||||
auftragsliste = Auftrag.GetFinishingList();
|
||||
List<object> kundenliste = new List<object>();
|
||||
foreach(Auftrag auf in auftragsliste)
|
||||
{
|
||||
object kunde = Kunde.GetKunde(null, auf.KundeID, null);
|
||||
kundenliste.Add(kunde);
|
||||
}
|
||||
|
||||
FormListe liste = new FormListe(kundenliste, 0);
|
||||
if (liste.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
this.kunde = liste.kunde;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TextBox Scann Events
|
||||
@ -388,5 +411,6 @@ namespace Deckungsbeitrag
|
||||
|
||||
}
|
||||
}
|
||||
//DONE: Kunde Anmerkung anzeigen. Spezielle Farbe verwenden. Label oder Textbox?
|
||||
//TODO: Eventuell bei erstem Erscheinen Info anzeigen.
|
||||
//DONE: Auftrag über FormListe holen und daraus den Kunden für Fehlmenge holen.
|
||||
//DONE: Logik überlegen wie ein bearbeiteter Auftrag nicht doppelt gewählt werden kann. (Abteilungen zu Auftrag hinzufügen und bei Ausschlager Druck definieren?)
|
||||
//DONE: Nur die Kunden der Aufträge als Liste anzeigen wäre möglich. Macht die Auswahl für das Personal einfacher weil 90% bereits weg fallen.
|
||||
@ -538,5 +538,3 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
}
|
||||
}
|
||||
//DONE: TextBox Anmerkung ausprogrammieren. (Immer Enabled, Speichern bei Leave oder Button)
|
||||
//DONE: Zeichenanzahl aktuell/maximal anzeigen.
|
||||
40
AA-Forms/FormListe.Designer.cs
generated
40
AA-Forms/FormListe.Designer.cs
generated
@ -38,7 +38,7 @@ namespace Deckungsbeitrag
|
||||
this.textBoxKunde = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.buttonOK = new System.Windows.Forms.Button();
|
||||
this.buttonNeuerBenutzer = new System.Windows.Forms.Button();
|
||||
this.buttonNeuerAuftrag = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// listViewKunde
|
||||
@ -63,7 +63,7 @@ namespace Deckungsbeitrag
|
||||
this.listViewKunde.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.listViewKunde.MultiSelect = false;
|
||||
this.listViewKunde.Name = "listViewKunde";
|
||||
this.listViewKunde.Size = new System.Drawing.Size(396, 303);
|
||||
this.listViewKunde.Size = new System.Drawing.Size(396, 466);
|
||||
this.listViewKunde.TabIndex = 1;
|
||||
this.listViewKunde.UseCompatibleStateImageBehavior = false;
|
||||
this.listViewKunde.View = System.Windows.Forms.View.Details;
|
||||
@ -129,31 +129,30 @@ namespace Deckungsbeitrag
|
||||
this.buttonOK.UseVisualStyleBackColor = false;
|
||||
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
|
||||
//
|
||||
// buttonNeuerBenutzer
|
||||
// buttonNeuerAuftrag
|
||||
//
|
||||
this.buttonNeuerBenutzer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
this.buttonNeuerAuftrag.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.buttonNeuerBenutzer.BackColor = System.Drawing.Color.Yellow;
|
||||
this.buttonNeuerBenutzer.FlatAppearance.BorderSize = 0;
|
||||
this.buttonNeuerBenutzer.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.buttonNeuerBenutzer.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.buttonNeuerBenutzer.Location = new System.Drawing.Point(115, 114);
|
||||
this.buttonNeuerBenutzer.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.buttonNeuerBenutzer.Name = "buttonNeuerBenutzer";
|
||||
this.buttonNeuerBenutzer.Size = new System.Drawing.Size(167, 34);
|
||||
this.buttonNeuerBenutzer.TabIndex = 16;
|
||||
this.buttonNeuerBenutzer.Text = "Neuer Benutzer";
|
||||
this.buttonNeuerBenutzer.UseVisualStyleBackColor = false;
|
||||
this.buttonNeuerBenutzer.Visible = false;
|
||||
this.buttonNeuerBenutzer.Click += new System.EventHandler(this.buttonNeuerBenutzer_Click);
|
||||
this.buttonNeuerAuftrag.BackColor = System.Drawing.Color.Turquoise;
|
||||
this.buttonNeuerAuftrag.FlatAppearance.BorderSize = 0;
|
||||
this.buttonNeuerAuftrag.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.buttonNeuerAuftrag.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.buttonNeuerAuftrag.Location = new System.Drawing.Point(120, 467);
|
||||
this.buttonNeuerAuftrag.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.buttonNeuerAuftrag.Name = "buttonNeuerAuftrag";
|
||||
this.buttonNeuerAuftrag.Size = new System.Drawing.Size(167, 34);
|
||||
this.buttonNeuerAuftrag.TabIndex = 16;
|
||||
this.buttonNeuerAuftrag.Text = "Neuer Auftrag";
|
||||
this.buttonNeuerAuftrag.UseVisualStyleBackColor = false;
|
||||
this.buttonNeuerAuftrag.Click += new System.EventHandler(this.buttonNeuerAuftrag_Click);
|
||||
//
|
||||
// FormListe
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
|
||||
this.ClientSize = new System.Drawing.Size(413, 358);
|
||||
this.Controls.Add(this.buttonNeuerBenutzer);
|
||||
this.ClientSize = new System.Drawing.Size(413, 521);
|
||||
this.Controls.Add(this.buttonNeuerAuftrag);
|
||||
this.Controls.Add(this.buttonOK);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.textBoxKunde);
|
||||
@ -170,6 +169,7 @@ namespace Deckungsbeitrag
|
||||
this.Text = "LISTE";
|
||||
this.TopMost = true;
|
||||
this.Load += new System.EventHandler(this.FormListe_Load);
|
||||
this.Shown += new System.EventHandler(this.FormListe_Shown);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@ -185,6 +185,6 @@ namespace Deckungsbeitrag
|
||||
private System.Windows.Forms.TextBox textBoxKunde;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Button buttonOK;
|
||||
private System.Windows.Forms.Button buttonNeuerBenutzer;
|
||||
private System.Windows.Forms.Button buttonNeuerAuftrag;
|
||||
}
|
||||
}
|
||||
@ -20,29 +20,34 @@ namespace Deckungsbeitrag
|
||||
{
|
||||
Kundenliste = 0,
|
||||
Aufgabenliste = 1,
|
||||
Benutzerliste = 2
|
||||
Benutzerliste = 2,
|
||||
Auftragliste = 3
|
||||
}
|
||||
public partial class FormListe : Form
|
||||
{
|
||||
public Kunde kunde;
|
||||
public Benutzer benutzer;
|
||||
public List<Kunde> Kundenliste;
|
||||
public List<Aufgabe> Aufgabenliste;
|
||||
public List<Benutzer> Benutzerliste;
|
||||
public Auftrag auftrag;
|
||||
private List<Kunde> Kundenliste;
|
||||
private List<Aufgabe> Aufgabenliste;
|
||||
private List<Benutzer> Benutzerliste;
|
||||
private List<Auftrag> Auftragliste;
|
||||
private Meldungen meldung = new Meldungen();
|
||||
bool isKundenliste = false;
|
||||
bool isAufgabenliste = false;
|
||||
bool isBenutzerliste = false;
|
||||
int type_of_list;
|
||||
string path = "C:\\Windows\\WinSxS\\amd64_microsoft-windows-osk_31bf3856ad364e35_10.0.22621.3672_none_8a93c823d58f9d77\\osk.exe";
|
||||
string ben_col = "Vorname,Nachname,Benutzername,Rolle,Schein,Gueltig bis,Aktiv";
|
||||
string knd_col = "KundenNr,KundenName,PLZ,Ort";
|
||||
string knd_col = "KundenNr,Suchtext,KundenName,Ort";
|
||||
string auf_col = "Aufgabe,Beschreibung";
|
||||
string auftrag_col = "Kunde,Liefertag,Container";
|
||||
string progFiles = @"C:\Program Files\Common Files\Microsoft Shared\ink";
|
||||
string keyboardPath;
|
||||
private Timer timer;
|
||||
|
||||
//QR-Code Scan mit integrierter Kamera
|
||||
|
||||
#region Form-Konstruktor
|
||||
public FormListe()
|
||||
{
|
||||
InitializeComponent();
|
||||
@ -59,9 +64,20 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
public FormListe(List<object> objliste, int listentyp) : this()
|
||||
{
|
||||
this.type_of_list = listentyp;
|
||||
// Welcher Listentyp angezeigt wird muss beim Öffnen mitgegeben werden.
|
||||
this.type_of_list = listentyp;
|
||||
if(this.type_of_list == (int)Listentyp.Auftragliste)
|
||||
{
|
||||
this.Auftragliste = objliste.Cast<Auftrag>().ToList();
|
||||
}
|
||||
if(this.type_of_list == (int)Listentyp.Kundenliste)
|
||||
{
|
||||
this.Kundenliste = objliste.OfType<Kunde>().GroupBy(k => k.KundeID).Select(g => g.First()).ToList();
|
||||
}
|
||||
}
|
||||
private void FormListe_Load(object sender, EventArgs e)
|
||||
#endregion
|
||||
|
||||
private void FormListe_Load(object sender, EventArgs e)
|
||||
{
|
||||
// Timer für Wartezeit bis TextChanged eintritt.
|
||||
timer = new Timer();
|
||||
@ -72,11 +88,15 @@ namespace Deckungsbeitrag
|
||||
|
||||
listViewKunde_Load();
|
||||
|
||||
|
||||
this.textBoxKunde.Focus();
|
||||
StartPosition = FormStartPosition.CenterScreen;
|
||||
this.CenterToScreen();
|
||||
}
|
||||
private void listViewKunde_Load()
|
||||
private void FormListe_Shown(object sender, EventArgs e)
|
||||
{
|
||||
this.CenterToScreen();
|
||||
}
|
||||
|
||||
private void listViewKunde_Load()
|
||||
{
|
||||
//LISTE LEEREN
|
||||
this.listViewKunde.Items.Clear();
|
||||
@ -98,19 +118,20 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
//KUNDEN LADEN
|
||||
this.Text = "KUNDE WÄHLEN";
|
||||
foreach (Kunde kunde in Kunde.GetTmpList(textBoxKunde.Text))
|
||||
if (this.Kundenliste == null) this.Kundenliste = Kunde.GetTmpList(textBoxKunde.Text);
|
||||
foreach (Kunde kunde in this.Kundenliste)
|
||||
{
|
||||
ListViewItem item = new ListViewItem();
|
||||
item.Tag = kunde;
|
||||
item.Text = kunde.KundeNummer;
|
||||
item.SubItems.Add(kunde.Suchtext);
|
||||
item.SubItems.Add(kunde.KundeName);
|
||||
item.SubItems.Add(kunde.PLZ.ToString());
|
||||
item.SubItems.Add(kunde.Ort);
|
||||
|
||||
this.listViewKunde.Items.Add(item);
|
||||
}
|
||||
if (listViewKunde.Items.Count == 1) kunde = (Kunde)listViewKunde.Items[0].Tag;
|
||||
|
||||
this.buttonNeuerAuftrag.Visible = this.buttonNeuerAuftrag.Enabled = false;
|
||||
}
|
||||
break;
|
||||
case var aufliste when type_of_list == (int)Listentyp.Aufgabenliste:
|
||||
@ -128,7 +149,7 @@ namespace Deckungsbeitrag
|
||||
case var benliste when type_of_list == (int)Listentyp.Benutzerliste:
|
||||
{
|
||||
this.textBoxKunde.Visible = this.label1.Visible = false;
|
||||
this.buttonNeuerBenutzer.Visible = true;
|
||||
this.buttonNeuerAuftrag.Visible = true;
|
||||
string[] colname = ben_col.Split(',');
|
||||
foreach (string s in colname)
|
||||
{
|
||||
@ -155,6 +176,27 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
}
|
||||
break;
|
||||
case var auftragliste when type_of_list == (int)Listentyp.Auftragliste:
|
||||
string[] col = auftrag_col.Split(',');
|
||||
foreach(string s in col)
|
||||
{
|
||||
ColumnHeader ch = new ColumnHeader();
|
||||
ch.Text = s;
|
||||
this.listViewKunde.Columns.Add(ch);
|
||||
}
|
||||
this.Text = "AUFTRAG WÄHLEN";
|
||||
foreach(Auftrag auftrag in this.Auftragliste)
|
||||
{
|
||||
ListViewItem item = new ListViewItem();
|
||||
item.Tag = auftrag;
|
||||
item.Text = auftrag.Kundename;
|
||||
item.SubItems.Add(auftrag.Liefertag.ToString("ddd dd.MM"));
|
||||
item.SubItems.Add(auftrag.Container.ToString());
|
||||
|
||||
this.listViewKunde.Items.Add(item);
|
||||
}
|
||||
this.textBoxKunde.Enabled = false;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -180,15 +222,6 @@ namespace Deckungsbeitrag
|
||||
|
||||
this.Size = new Size(lvwWidth + 50, this.Height);
|
||||
}
|
||||
private void FormListe_Shown(object sender, EventArgs e)
|
||||
{
|
||||
if (isAufgabenliste)
|
||||
{
|
||||
//FormNeueAufgabe aufgabe = new FormNeueAufgabe();
|
||||
//aufgabe.ShowDialog();
|
||||
}
|
||||
FormListe_Load(this, null);
|
||||
}
|
||||
private void TextBoxKunde_Enter(object sender, EventArgs e)
|
||||
{
|
||||
this.textBoxKunde.ForeColor = Color.Black;
|
||||
@ -208,7 +241,7 @@ namespace Deckungsbeitrag
|
||||
// Wenn kein Fragezeichen am Anfang wird Kundenliste erstellt.
|
||||
if (!textBoxKunde.Text.StartsWith("?"))
|
||||
{
|
||||
Kundenliste = Kunde.GetTmpList(this.textBoxKunde.Text);
|
||||
if(this.Kundenliste == null) this.Kundenliste = Kunde.GetTmpList(this.textBoxKunde.Text);
|
||||
listViewKunde_Load();
|
||||
}
|
||||
|
||||
@ -234,6 +267,11 @@ namespace Deckungsbeitrag
|
||||
this.Close();
|
||||
}
|
||||
break;
|
||||
case var _ when type_of_list == (int)Listentyp.Auftragliste:
|
||||
auftrag = (Auftrag)item.Tag;
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -277,12 +315,6 @@ namespace Deckungsbeitrag
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
private void buttonNeuerBenutzer_Click(object sender, EventArgs e)
|
||||
{
|
||||
//FormBenutzerDetail benutzerdetail = new FormBenutzerDetail();
|
||||
//benutzerdetail.ShowDialog();
|
||||
this.Close();
|
||||
}
|
||||
private void textBoxKunde_Leave(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
@ -300,5 +332,16 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
}
|
||||
}
|
||||
private void buttonNeuerAuftrag_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (meldung.GetFrage(this, "Konntest du den gewünschten Auftrag nicht finden und möchtest diesen neu erstellen?", false) == DialogResult.Yes)
|
||||
{
|
||||
this.DialogResult = DialogResult.Yes;
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//CHANGES: Die Liste zeigt jetzt auch die Aufträge und die Kunden der möglich Aufträge an. (Erleichtert die Kundenauswahl bei Fehlmengecount)
|
||||
//DONE: Listentyp.Auftragliste implementiert um über FormWSVerfolgung die Auftragliste abrufen zu können.
|
||||
//DONE: Kunde anzeigen Reihenfolge der Spalten zuerst Suchtext danach Name.
|
||||
@ -1,6 +1,7 @@
|
||||
using BrightIdeasSoftware;
|
||||
using DatenDB;
|
||||
using Deckungsbeitrag.AA_Forms;
|
||||
using Deckungsbeitrag.Properties;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
@ -28,6 +29,8 @@ namespace Deckungsbeitrag
|
||||
private Point newLocation;
|
||||
private Size _fixedSize;
|
||||
private bool _handlingResize;
|
||||
private ImageList imagelist = new ImageList();
|
||||
|
||||
|
||||
public FormMain()
|
||||
{
|
||||
@ -52,11 +55,14 @@ namespace Deckungsbeitrag
|
||||
this.groupBoxUpdate.Visible = this.toolStripDB.Visible = this.toolStripButtonImport.Visible = this.tSBExpedit.Enabled = false;
|
||||
break;
|
||||
case BenutzerRolle.Fahrer:
|
||||
this.toolStripDB.Enabled = this.toolStripButtonImport.Enabled = this.tSBBenutzerVW.Enabled = this.tSBAufgabeVW.Enabled = this.tSBExpedit.Enabled = false;
|
||||
this.groupBoxUpdate.Visible = this.toolStripDB.Visible = this.toolStripButtonImport.Visible = this.tSBBenutzerVW.Enabled = this.tSBAufgabeVW.Enabled = this.tSBExpedit.Enabled = false;
|
||||
foreach(ToolStripButton tsb in this.toolStripMenu.Items)
|
||||
{
|
||||
if(!tsb.Name.Contains("Auftrag")) tsb.Enabled = false;
|
||||
}
|
||||
this.groupBoxStatistik.Enabled = this.buttonNeueAufgabe.Enabled = this.buttonNeuerUser.Enabled = false;
|
||||
this.groupBoxStatistik.Visible = this.buttonNeueAufgabe.Visible = this.buttonNeuerUser.Visible = this.groupBoxUpdate.Visible = false;
|
||||
break;
|
||||
case BenutzerRolle.Admin:
|
||||
|
||||
this.groupBoxUpdate.Visible = false;
|
||||
break;
|
||||
case BenutzerRolle.Waschstrasse:
|
||||
@ -73,7 +79,11 @@ namespace Deckungsbeitrag
|
||||
|
||||
private void FormMain_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.WindowState = FormWindowState.Maximized;
|
||||
imagelist.Images.Add(Resources.Exclamation_Red);
|
||||
imagelist.Images.Add(Resources.InformationSymbol_16x);
|
||||
imagelist.ImageSize = new Size(16, 16);
|
||||
|
||||
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);
|
||||
@ -109,12 +119,7 @@ namespace Deckungsbeitrag
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ToolStrip Buttons Click Events
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
#region ToolStripButton_Click-Events
|
||||
private void tSBBenutzerVW_Click(object sender, EventArgs e)
|
||||
{
|
||||
FormBenutzerVW benutzerVW = new FormBenutzerVW();
|
||||
@ -178,16 +183,17 @@ namespace Deckungsbeitrag
|
||||
{
|
||||
if (!this.objectListViewAuftrag.Visible)
|
||||
{
|
||||
this.rBAlle.Checked = true;
|
||||
if (benutzer.Rolle == BenutzerRolle.Fahrer) this.rBFertig.Checked = true;
|
||||
else this.rBAlle.Checked = true;
|
||||
this.rBAlle.Visible = this.rBAusgeliefert.Visible = this.rBFertig.Visible = this.rBVorbereitet.Visible = this.rBAufAbruf.Visible = true;
|
||||
this.groupBoxAuftrag.Visible = true;
|
||||
this.groupBoxStatistik.Visible = this.groupBoxUpdate.Visible = this.buttonNeuerAuftrag.Visible = this.buttonNeuerAuftrag.Enabled = this.buttonNeuerUser.Visible = this.buttonNeuerUser.Enabled = false;
|
||||
this.groupBoxStatistik.Visible = this.groupBoxUpdate.Visible = this.buttonNeueAufgabe.Visible = this.buttonNeueAufgabe.Enabled = this.buttonNeuerAuftrag.Visible = this.buttonNeuerAuftrag.Enabled = this.buttonNeuerUser.Visible = this.buttonNeuerUser.Enabled = false;
|
||||
this.objectListViewAuftrag.Enabled = this.objectListViewAuftrag.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.groupBoxAuftrag.Visible = this.buttonAufAbruf.Visible = this.buttonAusgeliefert.Visible = this.rBAlle.Visible = this.rBAusgeliefert.Visible = this.rBFertig.Visible = this.rBVorbereitet.Visible = this.rBAufAbruf.Visible = this.objectListViewAuftrag.Enabled = this.objectListViewAuftrag.Visible = false;
|
||||
this.groupBoxStatistik.Visible = this.buttonNeuerAuftrag.Visible = this.buttonNeuerAuftrag.Enabled = this.buttonNeuerUser.Enabled = this.buttonNeuerUser.Visible = true;
|
||||
this.groupBoxStatistik.Visible = this.buttonNeuerAuftrag.Visible = this.buttonNeueAufgabe.Visible = this.buttonNeueAufgabe.Enabled = this.buttonNeuerAuftrag.Enabled = this.buttonNeuerUser.Enabled = this.buttonNeuerUser.Visible = true;
|
||||
}
|
||||
}
|
||||
private void tSBScannTest_Click(object sender, EventArgs e)
|
||||
@ -212,12 +218,12 @@ namespace Deckungsbeitrag
|
||||
FormArtikelVW artikelVW = new FormArtikelVW();
|
||||
artikelVW.ShowDialog();
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// TOOLSTRIP BUTTON DESIGN
|
||||
/// </summary>
|
||||
private void get_Border_Paint(object sender, PaintEventArgs e)
|
||||
/// <summary>
|
||||
/// TOOLSTRIP BUTTON DESIGN
|
||||
/// </summary>
|
||||
private void get_Border_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
ToolStripItem item = (ToolStripItem)sender;
|
||||
ControlPaint.DrawBorder(e.Graphics, new Rectangle(0, 0, item.Width, item.Height), Color.White, ButtonBorderStyle.Solid);
|
||||
@ -505,7 +511,6 @@ namespace Deckungsbeitrag
|
||||
tSBArtikelVW.Enabled = true;
|
||||
progressBarArtikel.Value = 0;
|
||||
}
|
||||
|
||||
private void buttonAllUpdate_Click(object sender, EventArgs e)
|
||||
{
|
||||
//Update_Artikel();
|
||||
@ -637,14 +642,68 @@ namespace Deckungsbeitrag
|
||||
{
|
||||
this.objectListViewAuftrag.HeaderFormatStyle = Funktionen.GetHeader();
|
||||
Generator.GenerateColumns(this.objectListViewAuftrag, typeof(Auftrag), true);
|
||||
this.objectListViewAuftrag.SetObjects(alist);
|
||||
OLVColumn sortcolumn = (OLVColumn)this.objectListViewAuftrag.Columns[1];
|
||||
this.objectListViewAuftrag.Sort(sortcolumn);
|
||||
|
||||
// ========== SPALTE 11: BUTTON-COLUMNE ==========
|
||||
// Spalte 11 (Index 11) als Button-Spalte konfigurieren
|
||||
OLVColumn buttonColumn = new OLVColumn();
|
||||
buttonColumn = (OLVColumn)this.objectListViewAuftrag.Columns[10];
|
||||
buttonColumn = (OLVColumn)this.objectListViewAuftrag.Columns[11];
|
||||
buttonColumn.IsButton = true;
|
||||
buttonColumn.ButtonSizing = OLVColumn.ButtonSizingMode.CellBounds;
|
||||
|
||||
// ========== IMAGE-LIST ZUWEISEN ==========
|
||||
// SmallImageList für Icons in Detail-View (16x16 Pixel standard)
|
||||
this.objectListViewAuftrag.SmallImageList = imagelist; // Voraussetzung: imagelist mit Icon Index 0 gefüllt
|
||||
|
||||
// ========== SPALTE 10 & 1: ICON-KOLUMNE ==========
|
||||
// Spalte 10 als Icon-Spalte: zeigt Icon wenn AufgabeID vorhanden
|
||||
OLVColumn iconColumn = (OLVColumn)this.objectListViewAuftrag.Columns[10];
|
||||
iconColumn.ImageGetter = rowObject =>
|
||||
{
|
||||
var auftrag = rowObject as Auftrag;
|
||||
if (auftrag.AufgabeID == null) return null; // null = kein Icon anzeigen
|
||||
else return 0; // Index 0 aus SmallImageList
|
||||
};
|
||||
OLVColumn iColumn = (OLVColumn)this.objectListViewAuftrag.Columns[1];
|
||||
iColumn.ImageGetter = rowObject =>
|
||||
{
|
||||
var _auftrag = rowObject as Auftrag;
|
||||
if (string.IsNullOrWhiteSpace(Kunde.GetKunde(null, _auftrag.KundeID, null).Anmerkung)) return null; // null = kein Icon anzeigen
|
||||
else return 1; // Index 0 aus SmallImageList
|
||||
};
|
||||
|
||||
// ========== TOOLTIP FÜR ICON-SPALTE ==========
|
||||
// Automatischer Cell-Tooltip bei Mouse-Hover über Spalte 10 und 1
|
||||
this.objectListViewAuftrag.CellToolTipShowing += (s, e) =>
|
||||
{
|
||||
// Nur für Icon-Spalte (Index 10) und gültiges Model
|
||||
if (e.ColumnIndex == 10 && e.Model is Auftrag auftrag)
|
||||
{
|
||||
// Lade Bezeichnung der Aufgabe als Tooltip-Text
|
||||
e.Text = Aufgabe.GetAufgabe(null, auftrag.AufgabeID).Bezeichnung;
|
||||
}
|
||||
// Nur für Icon-Spalte (Index 1) und gültiges Model
|
||||
if (e.ColumnIndex == 1 && e.Model is Auftrag _auftrag)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(Kunde.GetKunde(null, _auftrag.KundeID, null).Anmerkung))
|
||||
{
|
||||
// Lade Anmerkung als Tooltip-Text
|
||||
e.Text = Kunde.GetKunde(null, _auftrag.KundeID, null).Anmerkung;
|
||||
}
|
||||
}
|
||||
//TODO: Alle Icons in einer Spalte anzeigen? I für Anmerkung und ! für Aufgabe??
|
||||
};
|
||||
|
||||
// ========== DATEN LADEN ==========
|
||||
// WICHTIG: SetObjects NACH Column-Konfiguration aufrufen!
|
||||
this.objectListViewAuftrag.SetObjects(alist);
|
||||
|
||||
// ========== SORTIERUNG ==========
|
||||
// Spalte 2 als primäre Sortier-Spalte festlegen (nach Datenbindung!)
|
||||
OLVColumn sortcolumn = (OLVColumn)this.objectListViewAuftrag.Columns[2];
|
||||
this.objectListViewAuftrag.Sort(sortcolumn);
|
||||
|
||||
// ========== CHECKBOX-FUNKTIONALITÄT ==========
|
||||
// Aktiviert Checkboxen basierend auf "IsChecked" Property des Auftrag-Modells
|
||||
this.objectListViewAuftrag.CheckedAspectName = "IsChecked";
|
||||
|
||||
Funktionen.Columns_Resize(this.objectListViewAuftrag);
|
||||
@ -930,7 +989,7 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
}
|
||||
}
|
||||
//DONE: DragDrop verbessern
|
||||
//DONE: GroupBox Realtime verschieben testen. Sonst Endposition nehmen. gb.Location hier entfernen und unten einkommentieren.
|
||||
//DONE: GroupBox wird an Endposition verschoben.
|
||||
|
||||
//DONE: Wenn Fahrer registriert kann nur NeuerAuftrag aufgerufen werden. Dort kann er Aufträge erstellen mit dem Status "Abgeholt" (Wichtig für Auftragauswahl bei Waschstraße)
|
||||
//DONE: Wenn Fahrer Auftragverwaltung öffnet werden Aufträge mit AuftragStatus "Fertig" angezeigt. Fahrer können dann als "Ausgeliefert" markieren.
|
||||
//CHANGES: Fahrer können abgeholte Aufträge erstellen und ausgelieferte Aufträge markieren.
|
||||
//CHANGES: Auftragverwaltung Spalten wurden aktualisiert. Mit Icons, Buttons und Sortierung auf Liefertag.
|
||||
@ -81,4 +81,4 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
}
|
||||
}
|
||||
//TODO: Neue Aufgabe Screen erstellen.
|
||||
//DONE: Neue Aufgabe Screen erstellen.
|
||||
@ -48,7 +48,6 @@ namespace Deckungsbeitrag
|
||||
{
|
||||
this.letzterLiefertag = letzterLiefertag;
|
||||
}
|
||||
|
||||
public FormNeuerAuftrag(string userid) : this()
|
||||
{
|
||||
this.userid = userid;
|
||||
@ -289,9 +288,32 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (benutzer.Rolle == BenutzerRolle.Verwaltung || benutzer.Rolle == BenutzerRolle.Admin) Auftrag.Status = AuftragStatus.Herrichten;
|
||||
else Auftrag.Status = AuftragStatus.Aufgelegt;
|
||||
switch (benutzer.Rolle)
|
||||
{
|
||||
case BenutzerRolle.Verwaltung:
|
||||
Auftrag.Status = AuftragStatus.Herrichten;
|
||||
break;
|
||||
case BenutzerRolle.Fahrer:
|
||||
Auftrag.Status = AuftragStatus.Abgeholt;
|
||||
break;
|
||||
case BenutzerRolle.Admin:
|
||||
Auftrag.Status = AuftragStatus.Herrichten;
|
||||
break;
|
||||
case BenutzerRolle.Waschstrasse:
|
||||
Auftrag.Status = AuftragStatus.Aufgelegt;
|
||||
break;
|
||||
case BenutzerRolle.Master:
|
||||
break;
|
||||
case BenutzerRolle.Expedit:
|
||||
Auftrag.Status = AuftragStatus.Herrichten;
|
||||
break;
|
||||
case BenutzerRolle.Frottee:
|
||||
break;
|
||||
case BenutzerRolle.Flach:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
//Wenn SONDERAUFTRAG(STH,STV,STA) dann ARTIKEL speichern.
|
||||
if (Auftrag.Typ >= AuftragTyp.Inventur)
|
||||
@ -487,3 +509,6 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
}
|
||||
}
|
||||
//DONE: AuftragStatus mit Switch nach BenutzerRolle ermöglichen.
|
||||
//DONE: FahrerAufträge erhalten Status "Abgeholt".
|
||||
//DONE: Wenn der Auftrag nicht gefunden wird, wird neuer Auftrag erstellt und mit Status "Aufgelegt" versehen.
|
||||
@ -25,6 +25,7 @@ namespace Deckungsbeitrag.AA_Forms
|
||||
private Aufgabe aufgabe;
|
||||
private WSFach fach;
|
||||
private Auftrag extraAuftrag;
|
||||
private List<object> auftragsliste;
|
||||
|
||||
public bool ws1transport = false;
|
||||
public bool ws2transport = false;
|
||||
@ -82,8 +83,6 @@ namespace Deckungsbeitrag.AA_Forms
|
||||
item.Click += AufgabeAuswaehlen_Click;
|
||||
toolStripDropDownButtonInfo.DropDownItems.Add(item);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -150,8 +149,8 @@ namespace Deckungsbeitrag.AA_Forms
|
||||
this.aufgabe = null;
|
||||
|
||||
// Neuen Auftrag eingeben. Wenn kein ExtraKunde wird false als extra weitergegeben.
|
||||
Open_NeuerAuftrag(false);
|
||||
|
||||
//Open_NeuerAuftrag(false); //TODO: Auftragauswahl aufrufen statt NeuerAuftrag. (Wenn Fahrer Aufträge erstellen)
|
||||
Open_Liste(false);
|
||||
// Fachliste neu laden damit neuer Auftrag in erstes Fach geladen werden kann.
|
||||
fachliste = WSFach.GetFachliste(maschine);
|
||||
}
|
||||
@ -233,6 +232,7 @@ namespace Deckungsbeitrag.AA_Forms
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Wenn eine Info von der Statusleiste gewählt wurde.
|
||||
/// </summary>
|
||||
@ -249,7 +249,8 @@ namespace Deckungsbeitrag.AA_Forms
|
||||
if (((Aufgabe)item.Tag).Bezeichnung == "Extra Kunde")
|
||||
{
|
||||
// Wenn ExtraKunde wird true als extra weitergegeben.
|
||||
Open_NeuerAuftrag(true);
|
||||
//Open_NeuerAuftrag(true);
|
||||
Open_Liste(true);
|
||||
}
|
||||
Fach_speichern(); // Gleiches Fach mit neuem Auftrag = Update.
|
||||
}
|
||||
@ -269,6 +270,53 @@ namespace Deckungsbeitrag.AA_Forms
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Auftragliste aufrufen.
|
||||
/// </summary>
|
||||
/// <param name="extra">Wenn Extrakunde dann true</param>
|
||||
private void Open_Liste(bool extra)
|
||||
{
|
||||
auftragsliste = new List<object>(Auftrag.GetRampeAuftragList());
|
||||
|
||||
FormListe liste = new FormListe(auftragsliste, 3);
|
||||
switch (liste.ShowDialog())
|
||||
{
|
||||
case DialogResult.None:
|
||||
break;
|
||||
case DialogResult.OK:
|
||||
if (extra)
|
||||
{
|
||||
this.extraAuftrag = liste.auftrag;
|
||||
this.extraAuftrag.Status = AuftragStatus.Aufgelegt;
|
||||
if (this.extraAuftrag.Save()[0] != 1) meldung.Speicherfehler();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.auftrag = liste.auftrag;
|
||||
this.auftrag.Status = AuftragStatus.Aufgelegt;
|
||||
if (this.auftrag.Save()[0] != 1) meldung.Speicherfehler();
|
||||
}
|
||||
Fach_speichern();
|
||||
break;
|
||||
case DialogResult.Cancel:
|
||||
break;
|
||||
case DialogResult.Abort:
|
||||
break;
|
||||
case DialogResult.Retry:
|
||||
break;
|
||||
case DialogResult.Ignore:
|
||||
break;
|
||||
case DialogResult.Yes:
|
||||
Open_NeuerAuftrag(extra);
|
||||
break;
|
||||
case DialogResult.No:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fach wird gespeichert. Bei Änderungen wird Fach überschrieben. Wenn FachID = 0 oder null wird neues Fach erstellt, sonst überschrieben.
|
||||
/// </summary>
|
||||
@ -284,6 +332,7 @@ namespace Deckungsbeitrag.AA_Forms
|
||||
if (this.extraAuftrag != null) this.fach.ExtraAuftragID = this.extraAuftrag.AuftragID;
|
||||
else this.fach.ExtraAuftragID = null;
|
||||
|
||||
|
||||
if (this.fach.Save() == 1) Panel_Laden(false);
|
||||
}
|
||||
|
||||
@ -345,7 +394,8 @@ namespace Deckungsbeitrag.AA_Forms
|
||||
if (Form.ModifierKeys == Keys.None && keyData == Keys.Insert)
|
||||
{
|
||||
// Neuer Auftrag wird geöffnet. Wenn nicht ExtraKunde wird false weitergegeben, sonst true.
|
||||
Open_NeuerAuftrag(false);
|
||||
//Open_NeuerAuftrag(false);
|
||||
Open_Liste(false);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -386,6 +436,11 @@ namespace Deckungsbeitrag.AA_Forms
|
||||
toolStripDropDownButtonInfo.DropDown.Show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
//DONE: Statt Neuen Auftrag wird Auftragsliste mit Status "abgeholt" angezeigt. Dadurch muss Aufleger weder scannen noch Namen eintippen und suchen.
|
||||
//DONE: Auch wenn Extra Auftrag benötigt wird funktioniert es über die Auftragsliste.
|
||||
//DONE: Wenn kein Auftrag gefunden wird, kann ein neuer erstellt werden.
|
||||
//CHANGES: Aufleger muss keine Aufträge mehr erstellen da Fahrer das machen können.
|
||||
//CHANGES: Wenn Auftrag nicht gefunden kann er trotzdem einen neuen Erstellen.
|
||||
//CHANGES: Auftragsliste zeigt hier nur AuftragStatus "Abgeholt" Aufträge.
|
||||
@ -135,5 +135,4 @@ namespace DatenDB
|
||||
}
|
||||
}
|
||||
}
|
||||
//TODO: Aktive Property einfügen.
|
||||
//INSTALL-REMINDER: Spalte Aktiv in DB einfügen.
|
||||
|
||||
@ -43,6 +43,38 @@ namespace DatenDB
|
||||
{
|
||||
}
|
||||
|
||||
public static List<Auftrag> GetFinishingList()
|
||||
{
|
||||
DatenbankConnection.GetConnection().Open();
|
||||
List<Auftrag> resultList = new List<Auftrag>();
|
||||
NpgsqlCommand cmd = new NpgsqlCommand();
|
||||
cmd.Connection = DatenbankConnection.GetConnection();
|
||||
|
||||
cmd.CommandText = $"select {COLUMNS} from {TABLE} where status = 1 order by liefertag asc";
|
||||
|
||||
NpgsqlDataReader reader = cmd.ExecuteReader();
|
||||
while (reader.Read()) resultList.Add(new Auftrag(reader));
|
||||
reader.Close();
|
||||
DatenbankConnection.GetConnection().Close();
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public static List<Auftrag> GetRampeAuftragList()
|
||||
{
|
||||
DatenbankConnection.GetConnection().Open();
|
||||
List<Auftrag> resultList = new List<Auftrag>();
|
||||
NpgsqlCommand cmd = new NpgsqlCommand();
|
||||
cmd.Connection = DatenbankConnection.GetConnection();
|
||||
|
||||
cmd.CommandText = $"select {COLUMNS} from {TABLE} where status = 0 order by liefertag asc";
|
||||
|
||||
NpgsqlDataReader reader = cmd.ExecuteReader();
|
||||
while (reader.Read()) resultList.Add(new Auftrag(reader));
|
||||
reader.Close();
|
||||
DatenbankConnection.GetConnection().Close();
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public static List<Auftrag> GetAuftragList(string s, Auftrag auftrag)
|
||||
{
|
||||
int? aID = null;
|
||||
@ -205,11 +237,11 @@ namespace DatenDB
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CheckBoxen zur Auftragsauswahl als erste Spalte.
|
||||
/// </summary>
|
||||
[OLVColumn("Auswählen", CheckBoxes = true, DisplayIndex = 0)]
|
||||
#region Properties
|
||||
/// <summary>
|
||||
/// CheckBoxen zur Auftragsauswahl als erste Spalte.
|
||||
/// </summary>
|
||||
[OLVColumn("Auswählen", CheckBoxes = true, DisplayIndex = 0)]
|
||||
public bool IsChecked { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@ -373,12 +405,9 @@ namespace DatenDB
|
||||
public int? AufgabeID { get; set; }
|
||||
[OLVIgnore]
|
||||
public bool AufgabeErledigt { get; set; } = false;
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public int[] Save()
|
||||
public int[] Save()
|
||||
{
|
||||
DatenbankConnection.GetConnection().Open();
|
||||
int[] result = new int[2];
|
||||
@ -425,3 +454,5 @@ namespace DatenDB
|
||||
}
|
||||
//INSTALL-REMINDER: AufgabeID als Spalte in DB hinzufügen.
|
||||
//INSTALL-REMINDER: AufgabeErledigt als Spalte in DB hinzufügen.
|
||||
//DONE: Neuer Konstruktor für Auftragliste "Rampe". (abgeholte Aufträge die noch nicht aufgelegt sind)
|
||||
//DONE: Neuer Konstruktor für Auftragliste "Finishing" oder "Aufgelegt". (aufgelegte Aufträge die noch nicht
|
||||
@ -1098,5 +1098,3 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//DONE: Funktionalität klären. MessageBox vor Screenauswahl? oder mit Button im Screen Kamera?
|
||||
|
||||
@ -290,7 +290,7 @@ namespace DatenDB
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#region Properties
|
||||
[OLVIgnore]
|
||||
public int? KundeID { get; set; }
|
||||
|
||||
@ -372,6 +372,7 @@ namespace DatenDB
|
||||
|
||||
[OLVIgnore]
|
||||
public string Anmerkung { get; set; }
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
//INSTALL-REMINDER: Spalte Anmerkung in DB hinzufügen.
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<appSettings>
|
||||
<add key="ConnectionString" value="user id=postgres;password=Ki985941Wi;host=10.10.10.1;port=5432;database=Test_Wirl;Timeout=5" />
|
||||
<add key="ConnectionString" value="user id=msfrottee01;password=5KsA4BSf4P;host=10.10.10.1;port=5432;database=Test_Wirl;Timeout=30" />
|
||||
<add key="SortimentPfad" value="N:\\BÜRO\\SOCOM\\Zaehlscheine\\Kundensortiment.txt" />
|
||||
<add key="BildPfad" value="C:\\Users\\KilianWirl\\OneDrive - gehgassi GmbH\\Wäscherei Wirl\\Programme\\Deckungsbeitrag\\Deckungsbeitrag\\Star.png" />
|
||||
<add key="QrPfad" value="N:\\BÜRO\\SOCOM\\Zaehlscheine\\qrweb.png" />
|
||||
|
||||
52
Program.cs
52
Program.cs
@ -1,8 +1,11 @@
|
||||
using DatenDB;
|
||||
using Deckungsbeitrag.AA_Forms;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Management;
|
||||
using System.Runtime.CompilerServices;
|
||||
@ -27,7 +30,53 @@ namespace Deckungsbeitrag
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Screen[] screens = Screen.AllScreens;
|
||||
|
||||
if (userid.StartsWith("ms") | userid.StartsWith("ps"))
|
||||
string readmePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Verwaltung_ReadMe.txt");
|
||||
|
||||
// Prüfe, ob ReadMe schon einmal geöffnet wurde
|
||||
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\KilianWirlGmbH\Verwaltung"))
|
||||
{
|
||||
if (key == null || key.GetValue("ReadMeShown") == null)
|
||||
{
|
||||
// Erstes Mal nach Installation
|
||||
if (File.Exists(readmePath))
|
||||
{
|
||||
Process.Start(new ProcessStartInfo
|
||||
{
|
||||
FileName = readmePath,
|
||||
UseShellExecute = true
|
||||
});
|
||||
|
||||
// WICHTIG: Warte 2 Sekunden (ReadMe öffnen)
|
||||
System.Threading.Thread.Sleep(2000);
|
||||
|
||||
// Abbruch-Dialog
|
||||
DialogResult result = MessageBox.Show(
|
||||
"ReadMe wurde geöffnet.\n\n" +
|
||||
"Falls INSTALL-REMINDER noch Änderungen enthält,\n" +
|
||||
"soll die Anwendung jetzt ABGEBROCHEN werden?\n\n" +
|
||||
"[JA = Abbruch | NEIN = Fortfahren]",
|
||||
"Nach Installation - Update prüfen",
|
||||
MessageBoxButtons.YesNo,
|
||||
MessageBoxIcon.Question,
|
||||
MessageBoxDefaultButton.Button1 // Standard: Abbruch
|
||||
);
|
||||
|
||||
if (result == DialogResult.Yes)
|
||||
{
|
||||
MessageBox.Show("Installation wurde abgebrochen.\nBitte Änderungen vornehmen und neu installieren.",
|
||||
"Abbruch", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return; // App beenden
|
||||
}
|
||||
|
||||
// Markiere als gezeigt
|
||||
Registry.CurrentUser.CreateSubKey(@"Software\KilianWirlGmbH\Verwaltung")
|
||||
.SetValue("ReadMeShown", 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (userid.StartsWith("ms") | userid.StartsWith("ps"))
|
||||
{
|
||||
if (userid.Contains("wstrasse")) Application.Run(new FormWSVerfolgung(userid));
|
||||
else Application.Run(new FormFehlmengeCount(userid));
|
||||
@ -75,4 +124,3 @@ namespace Deckungsbeitrag
|
||||
}
|
||||
}
|
||||
}
|
||||
//DONE: Für Maschinen keine Anmeldung notwendig.
|
||||
|
||||
@ -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.3.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.3.0")]
|
||||
[assembly: AssemblyVersion("1.0.4.2")]
|
||||
[assembly: AssemblyFileVersion("1.0.4.2")]
|
||||
|
||||
10
Properties/Resources.Designer.cs
generated
10
Properties/Resources.Designer.cs
generated
@ -140,6 +140,16 @@ namespace Deckungsbeitrag.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap StatisticsWarning_16x {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("StatisticsWarning_16x", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
|
||||
@ -121,11 +121,17 @@
|
||||
<data name="Checkmark_blue_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Checkmark_blue_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="PenOne_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\PenOne_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="InformationSymbol_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\InformationSymbol_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="WarningRule_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\WarningRule_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="Monaco_Settings_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Monaco_Settings_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Exclamation_Red" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\weather_warning_signal_alert_exclamation_icon_124159.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UpdatedScript_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UpdatedScript_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
@ -136,16 +142,13 @@
|
||||
<data name="Close_red_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Close_red_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Monaco_Settings_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Monaco_Settings_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Exclamation_Red" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\weather_warning_signal_alert_exclamation_icon_124159.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="WarningRule_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\WarningRule_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Close_WhiteNoHalo_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Close_WhiteNoHalo_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="PenOne_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\PenOne_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="StatisticsWarning_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\StatisticsWarning_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
BIN
Resources/StatisticsWarning_16x.png
Normal file
BIN
Resources/StatisticsWarning_16x.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 236 B |
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
# =====================================
|
||||
# Skript: UpdateVerwaltungReadMe.ps1 - mit INSTALL-REMINDER
|
||||
# Skript: UpdateVerwaltungReadMe.ps1 - mit INSTALL-REMINDER + CHANGES
|
||||
# =====================================
|
||||
|
||||
$ProjectDir = Split-Path $MyInvocation.MyCommand.Path -Parent
|
||||
@ -19,13 +19,16 @@ Build-Info:
|
||||
- Erledigte TODOs: ##DONE_COUNT##
|
||||
- Offene TODOs: ##OPEN_COUNT##
|
||||
- Install-Reminders: ##REMINDER_COUNT##
|
||||
- Changes: ##CHANGE_COUNT##
|
||||
|
||||
##INSTALL_REMINDERS##
|
||||
|
||||
##CHANGES##
|
||||
|
||||
##DONE_TODOS##
|
||||
|
||||
##OPEN_TODOS##
|
||||
|
||||
##INSTALL_REMINDERS##
|
||||
|
||||
Installation: ##BUILD_DATE##
|
||||
=====================================
|
||||
"@ | Out-File $readmePath -Encoding UTF8
|
||||
@ -47,6 +50,7 @@ if (Test-Path $assemblyInfoPath) {
|
||||
$openTodos = @()
|
||||
$doneTodos = @()
|
||||
$installReminders = @()
|
||||
$changes = @()
|
||||
$csFiles = Get-ChildItem -Path $ProjectDir -Recurse -Filter "*.cs" -ErrorAction SilentlyContinue
|
||||
|
||||
foreach ($file in $csFiles) {
|
||||
@ -72,12 +76,20 @@ foreach ($file in $csFiles) {
|
||||
$txt = $match.Groups[1].Value.Trim()
|
||||
if ($txt) { $installReminders += "⚙️ $txt [$($file.Name)]" }
|
||||
}
|
||||
|
||||
# CHANGES erkennen
|
||||
$changeMatches = [regex]::Matches($content, '//\s*CHANGES\s*:?\s*(.+?)(?=\r?\n|//|$)', 'IgnoreCase')
|
||||
foreach ($match in $changeMatches) {
|
||||
$txt = $match.Groups[1].Value.Trim()
|
||||
if ($txt) { $changes += "✨ $txt [$($file.Name)]" }
|
||||
}
|
||||
}
|
||||
|
||||
# Duplikate entfernen
|
||||
$openTodos = $openTodos | Sort-Object | Get-Unique
|
||||
$doneTodos = $doneTodos | Sort-Object | Get-Unique
|
||||
$installReminders = $installReminders | Sort-Object | Get-Unique
|
||||
$changes = $changes | Sort-Object | Get-Unique
|
||||
|
||||
# Formatierte Abschnitte
|
||||
$doneSection = if ($doneTodos.Count -gt 0) {
|
||||
@ -101,15 +113,23 @@ $installSection = if ($installReminders.Count -gt 0) {
|
||||
@("Keine Install-Reminder vorhanden ✅")
|
||||
}
|
||||
|
||||
$changesSection = if ($changes.Count -gt 0) {
|
||||
@("=== ✨ CHANGES ($($changes.Count)) ===") +
|
||||
($changes | ForEach-Object { "- $_" })
|
||||
} else {
|
||||
@("Keine Changes vorhanden")
|
||||
}
|
||||
|
||||
# Textaufbereitung
|
||||
$doneText = $doneSection -join "`r`n"
|
||||
$openText = $openSection -join "`r`n"
|
||||
$installText = $installSection -join "`r`n"
|
||||
$changesText = $changesSection -join "`r`n"
|
||||
|
||||
$custom = "Release Build"
|
||||
$buildDate = Get-Date -Format "dd.MM.yyyy HH:mm"
|
||||
|
||||
# ReadMe aufbauen
|
||||
# ReadMe aufbauen (CHANGES nach INSTALL-REMINDER)
|
||||
$readmeContent = @"
|
||||
=====================================
|
||||
NEUIGKEITEN - Version $version
|
||||
@ -120,10 +140,13 @@ Build-Info:
|
||||
- Erledigte TODOs: $($doneTodos.Count)
|
||||
- Offene TODOs: $($openTodos.Count)
|
||||
- Install-Reminders: $($installReminders.Count)
|
||||
- Changes: $($changes.Count)
|
||||
|
||||
|
||||
$installText
|
||||
|
||||
$changesText
|
||||
|
||||
`r`n$doneText
|
||||
|
||||
`r`n$openText
|
||||
@ -136,3 +159,4 @@ Installation: $buildDate
|
||||
$readmeContent | Out-File $readmePath -Encoding UTF8
|
||||
|
||||
Write-Host "✅ Verwaltung_ReadMe.txt erfolgreich aktualisiert!"
|
||||
Write-Host "📊 Stats: $($doneTodos.Count) DONE, $($openTodos.Count) TODO, $($installReminders.Count) REMINDER, $($changes.Count) CHANGES"
|
||||
|
||||
@ -494,6 +494,8 @@
|
||||
<Content Include="ILLink\ILLink.Descriptors.LibraryBuild.xml" />
|
||||
<None Include="Resources\InformationSymbol_16x.png" />
|
||||
<None Include="Resources\PenOne_16x.png" />
|
||||
<None Include="Resources\StatisticsWarning_16x.png" />
|
||||
<Content Include="Verwaltung_ReadMe.txt" />
|
||||
<Content Include="wirlneu_transparent %281%29.ico" />
|
||||
<None Include="Resources\Close_WhiteNoHalo_16x.png" />
|
||||
<None Include="Resources\Monaco_Settings_16x.png" />
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
=====================================
|
||||
NEUIGKEITEN - Version 1.0.3.0
|
||||
NEUIGKEITEN - Version 1.0.4.2
|
||||
=====================================
|
||||
|
||||
Build-Info:
|
||||
- Build-Typ: Release Build
|
||||
- Erledigte TODOs: 13
|
||||
- Offene TODOs: 22
|
||||
- Erledigte TODOs: 19
|
||||
- Offene TODOs: 20
|
||||
- Install-Reminders: 5
|
||||
- Changes: 7
|
||||
|
||||
|
||||
=== ⚙️ INSTALL-REMINDER (5) ===
|
||||
@ -16,37 +17,51 @@ Build-Info:
|
||||
- ⚙️ Spalte Anmerkung in DB hinzufügen. [Kunde.cs]
|
||||
- ⚙️ Spalte Aufgabe Count in DB hinzufügen. [Kunde.cs]
|
||||
|
||||
=== ✨ CHANGES (7) ===
|
||||
- ✨ Aufleger muss keine Aufträge mehr erstellen da Fahrer das machen können. [FormWSVerfolgung.cs]
|
||||
- ✨ Auftragsliste zeigt hier nur AuftragStatus "Abgeholt" Aufträge. [FormWSVerfolgung.cs]
|
||||
- ✨ Auftragverwaltung Spalten wurden aktualisiert. Mit Icons, Buttons und Sortierung auf Liefertag. [FormMain.cs]
|
||||
- ✨ Die Liste zeigt jetzt auch die Aufträge und die Kunden der möglich Aufträge an. (Erleichtert die Kundenauswahl bei Fehlmengecount) [FormListe.cs]
|
||||
- ✨ Fahrer können abgeholte Aufträge erstellen und ausgelieferte Aufträge markieren. [FormMain.cs]
|
||||
- ✨ Statistik für Expedit. (Same as in Main) [FormExpedit.cs]
|
||||
- ✨ Wenn Auftrag nicht gefunden kann er trotzdem einen neuen Erstellen. [FormWSVerfolgung.cs]
|
||||
|
||||
=== ✅ ERLEDIGTE TODOs (13) ===
|
||||
|
||||
=== ✅ ERLEDIGTE TODOs (19) ===
|
||||
- ✅ : Auch wenn Extra Auftrag benötigt wird funktioniert es über die Auftragsliste. [FormWSVerfolgung.cs]
|
||||
- ✅ : Auftrag über FormListe holen und daraus den Kunden für Fehlmenge holen. [FormFehlmengeCount.cs]
|
||||
- ✅ : AuftragStatus mit Switch nach BenutzerRolle ermöglichen. [FormNeuerAuftrag.cs]
|
||||
- ✅ : Bei Transport wir ein Fach mit Aktuellem Auftrag erstellt. Das Alte wird bei Transport gespeichert. [FormAusschlager.cs]
|
||||
- ✅ : Breite der GridView festlegen. [FormExpedit.cs]
|
||||
- ✅ : DragDrop verbessern [FormMain.cs]
|
||||
- ✅ : Funktionalität klären. MessageBox vor Screenauswahl? oder mit Button im Screen Kamera? [Funktionen.cs]
|
||||
- ✅ : Für Maschinen keine Anmeldung notwendig. [Program.cs]
|
||||
- ✅ : GroupBox Realtime verschieben testen. Sonst Endposition nehmen. gb.Location hier entfernen und unten einkommentieren. [FormMain.cs]
|
||||
- ✅ : GroupBox wird an Endposition verschoben. [FormMain.cs]
|
||||
- ✅ : Kunde Anmerkung anzeigen. Spezielle Farbe verwenden. Label oder Textbox? [FormFehlmengeCount.cs]
|
||||
- ✅ : OLV-Item refresh. Neuer Liefertag speichern. [FormExpedit.cs]
|
||||
- ✅ : Testen ob ausblenden der Button Column funktioniert. Benutzer-Verwaltung oder Frottee oder Flach notwendig. [FormExpedit.cs]
|
||||
- ✅ : TextBox Anmerkung ausprogrammieren. (Immer Enabled, Speichern bei Leave oder Button) [FormKundeVW.cs]
|
||||
- ✅ : FahrerAufträge erhalten Status "Abgeholt". [FormNeuerAuftrag.cs]
|
||||
- ✅ : Kunde anzeigen Reihenfolge der Spalten zuerst Suchtext danach Name. [FormListe.cs]
|
||||
- ✅ : Listentyp.Auftragliste implementiert um über FormWSVerfolgung die Auftragliste abrufen zu können. [FormListe.cs]
|
||||
- ✅ : Logik überlegen wie ein bearbeiteter Auftrag nicht doppelt gewählt werden kann. (Abteilungen zu Auftrag hinzufügen und bei Ausschlager Druck definieren?) [FormFehlmengeCount.cs]
|
||||
- ✅ : Neue Aufgabe Screen erstellen. [FormNeueAufgabe.cs]
|
||||
- ✅ : Neuer Konstruktor für Auftragliste "Finishing" oder "Aufgelegt". (aufgelegte Aufträge die noch nicht [Auftrag.cs]
|
||||
- ✅ : Neuer Konstruktor für Auftragliste "Rampe". (abgeholte Aufträge die noch nicht aufgelegt sind) [Auftrag.cs]
|
||||
- ✅ : Nur die Kunden der Aufträge als Liste anzeigen wäre möglich. Macht die Auswahl für das Personal einfacher weil 90% bereits weg fallen. [FormFehlmengeCount.cs]
|
||||
- ✅ : Statt Neuen Auftrag wird Auftragsliste mit Status "abgeholt" angezeigt. Dadurch muss Aufleger weder scannen noch Namen eintippen und suchen. [FormWSVerfolgung.cs]
|
||||
- ✅ : Wenn der Auftrag nicht gefunden wird, wird neuer Auftrag erstellt und mit Status "Aufgelegt" versehen. [FormNeuerAuftrag.cs]
|
||||
- ✅ : Wenn Fahrer Auftragverwaltung öffnet werden Aufträge mit AuftragStatus "Fertig" angezeigt. Fahrer können dann als "Ausgeliefert" markieren. [FormMain.cs]
|
||||
- ✅ : Wenn Fahrer registriert kann nur NeuerAuftrag aufgerufen werden. Dort kann er Aufträge erstellen mit dem Status "Abgeholt" (Wichtig für Auftragauswahl bei Waschstraße) [FormMain.cs]
|
||||
- ✅ : Wenn kein Auftrag gefunden wird, kann ein neuer erstellt werden. [FormWSVerfolgung.cs]
|
||||
- ✅ : Wenn NeuerAuftrag gewählt Fach ändern nicht vergessen. [FormAusschlager.cs]
|
||||
- ✅ : Zeichenanzahl aktuell/maximal anzeigen. [FormKundeVW.cs]
|
||||
- ✅ : Wenn NeuerAuftrag gewählt wie gehts weiter? [FormAusschlager.cs]
|
||||
|
||||
|
||||
=== 🔄 OFFENE TODOs (22) ===
|
||||
- 🔄 Aktive Property einfügen. [Aufgabe.cs]
|
||||
=== 🔄 OFFENE TODOs (20) ===
|
||||
- 🔄 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]
|
||||
- 🔄 Auftragauswahl aufrufen statt NeuerAuftrag. (Wenn Fahrer Aufträge erstellen) [FormWSVerfolgung.cs]
|
||||
- 🔄 Ausprobieren ob die Ausrichtung jetzt richtig ist. Sowohl beim ersten wie auch zweiten Mal. [Funktionen.cs]
|
||||
- 🔄 Deaktivieren wenn SPS funktioniert. Transport wird simuliert. [FormWSVerfolgung.cs]
|
||||
- 🔄 Einkommentieren wenn ArtikelUpdate auf ArtikelKurzliste umgestellt werden kann. [FormMain.cs]
|
||||
- 🔄 Eventuell auch andere ListViews einbinden? [Funktionen.cs]
|
||||
- 🔄 Eventuell bei erstem Erscheinen Info anzeigen. [FormFehlmengeCount.cs]
|
||||
- 🔄 für Ladescreen den Progressbar programieren. (perplexity fragen wie der Status an einen anderen Screen übergeben werden kann) [FormMain.cs]
|
||||
- 🔄 Hier Settings speichern mit UserSettingsManager Klasse. [FormEinstellung.cs]
|
||||
- 🔄 LadenScreen anzeigen etc. [FormMain.cs]
|
||||
- 🔄 Nach Test und Rücksprache eventuell wieder umbauen. Benutzer.Rolle etc. [FormFehlmengeCount.cs]
|
||||
- 🔄 Neue Aufgabe Screen erstellen. [FormNeueAufgabe.cs]
|
||||
- 🔄 Settings hier ändern auf UserSettingsManager Klasse. [FormEinstellung.cs]
|
||||
- 🔄 Testen ob Get_ArtikelKurzliste funktioniert. [FormMain.cs]
|
||||
- 🔄 Testen ob SWS-QRCodes gelesen werden können. Nur notwendig bis alle SWS-QRCodes richtig gedruckt und gelesen werden. [Kunde.cs]
|
||||
@ -55,7 +70,6 @@ Build-Info:
|
||||
- 🔄 UserSetting Properties eintragen und in EinstellungsScreen abrufen. [UserSettingsManager.cs]
|
||||
- 🔄 Weitere Properties von oben hier zuweisen [UserSettingsManager.cs]
|
||||
- 🔄 Wenn Nachwäsche oder Müllwäsche alle Artikel anzeigen. [FormFehlmengeCount.cs]
|
||||
- 🔄 Wenn NeuerAuftrag gewählt wie gehts weiter? [FormAusschlager.cs]
|
||||
|
||||
Installation: 15.12.2025 18:26
|
||||
Installation: 16.12.2025 16:57
|
||||
=====================================
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user