ArtikelVW anpassen, ComboBox adaptieren, div. Adaptierungen

This commit is contained in:
Kilian Wirl 2026-04-07 17:00:16 +02:00
parent 830347ae42
commit d5675e81dc
14 changed files with 182 additions and 74 deletions

View File

@ -98,6 +98,7 @@
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(4); this.Margin = new System.Windows.Forms.Padding(4);
this.Name = "FormArtikelVW"; this.Name = "FormArtikelVW";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "ARTIKELVERWALTUNG"; this.Text = "ARTIKELVERWALTUNG";
this.Load += new System.EventHandler(this.FormArtikelVW_Load); this.Load += new System.EventHandler(this.FormArtikelVW_Load);
((System.ComponentModel.ISupportInitialize)(this.objectListViewArtikel)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.objectListViewArtikel)).EndInit();

View File

@ -21,6 +21,7 @@ namespace Deckungsbeitrag
private Benutzer user; private Benutzer user;
private List<Artikel> artikelList; private List<Artikel> artikelList;
private List<ArtikelNachwaesche> artNWList; private List<ArtikelNachwaesche> artNWList;
private int dropdownWidth;
public FormArtikelVW() public FormArtikelVW()
{ {
InitializeComponent(); InitializeComponent();
@ -37,6 +38,12 @@ namespace Deckungsbeitrag
this.comboBoxArtikel.SelectedIndexChanged -= comboBoxArtikel_SelectedIndexChanged; this.comboBoxArtikel.SelectedIndexChanged -= comboBoxArtikel_SelectedIndexChanged;
this.comboBoxArtikel.DataSource = artlist; this.comboBoxArtikel.DataSource = artlist;
this.comboBoxArtikel.DisplayMember = "Bezeichnung"; this.comboBoxArtikel.DisplayMember = "Bezeichnung";
foreach (Artikel art in artlist)
{
int bezWidth = TextRenderer.MeasureText(art.Bezeichnung, comboBoxArtikel.Font).Width;
if (dropdownWidth < bezWidth) dropdownWidth = bezWidth;
}
this.comboBoxArtikel.DropDownWidth = dropdownWidth;
this.comboBoxArtikel.SelectedIndex = -1; this.comboBoxArtikel.SelectedIndex = -1;
this.comboBoxArtikel.SelectedIndexChanged += comboBoxArtikel_SelectedIndexChanged; this.comboBoxArtikel.SelectedIndexChanged += comboBoxArtikel_SelectedIndexChanged;
@ -64,8 +71,6 @@ namespace Deckungsbeitrag
private void OLV_Load_with_Artikel() private void OLV_Load_with_Artikel()
{ {
//foreach (OLVColumn col in this.objectListViewArtikel.Columns) col.IsEditable = false;
if (this.user.Rolle == BenutzerRolle.Expedit || this.user.Rolle == BenutzerRolle.Frottee || this.user.Rolle == BenutzerRolle.Master) if (this.user.Rolle == BenutzerRolle.Expedit || this.user.Rolle == BenutzerRolle.Frottee || this.user.Rolle == BenutzerRolle.Master)
{ {
//TODO: Einbinden der NachwaescheArtikelData... //TODO: Einbinden der NachwaescheArtikelData...
@ -74,7 +79,6 @@ namespace Deckungsbeitrag
var NWArtikelList = new List<NachwaescheArtikelData>(); var NWArtikelList = new List<NachwaescheArtikelData>();
foreach (Artikel art in this.artikelList) foreach (Artikel art in this.artikelList)
{ {
NWArtikelList.Add(new NachwaescheArtikelData NWArtikelList.Add(new NachwaescheArtikelData
{ {
ArtikelID = art.ArtikelID, ArtikelID = art.ArtikelID,
@ -85,11 +89,8 @@ namespace Deckungsbeitrag
Muell = 0, Muell = 0,
Kategorie = art.Kategorie Kategorie = art.Kategorie
}); });
} }
//foreach (OLVColumn col in this.objectListViewArtikel.Columns) if (col.Text == "Kategorie" || col.Text == "Abkürzung") col.IsVisible = col.IsEditable = false;
this.objectListViewArtikel.Font = new Font(this.objectListViewArtikel.Font.FontFamily, 16, FontStyle.Regular); this.objectListViewArtikel.Font = new Font(this.objectListViewArtikel.Font.FontFamily, 16, FontStyle.Regular);
//this.objectListViewArtikel.SetObjects(this.artikelList);
this.objectListViewArtikel.SetObjects(NWArtikelList); this.objectListViewArtikel.SetObjects(NWArtikelList);
this.objectListViewArtikel.PrimarySortColumn = (OLVColumn)this.objectListViewArtikel.AllColumns[6]; this.objectListViewArtikel.PrimarySortColumn = (OLVColumn)this.objectListViewArtikel.AllColumns[6];
this.objectListViewArtikel.SecondarySortColumn = (OLVColumn)this.objectListViewArtikel.Columns["Abkürzung"]; this.objectListViewArtikel.SecondarySortColumn = (OLVColumn)this.objectListViewArtikel.Columns["Abkürzung"];
@ -185,6 +186,7 @@ namespace Deckungsbeitrag
DateTime timestamp = DateTime.Now.Date; DateTime timestamp = DateTime.Now.Date;
if (col == null) return; if (col == null) return;
if (e.NewValue == e.Value) return;
if (int.TryParse(e.NewValue.ToString(), out int i)) if (int.TryParse(e.NewValue.ToString(), out int i))
{ {
@ -225,11 +227,12 @@ namespace Deckungsbeitrag
} }
else else
{ {
if (col.Text == "Nachwäsche") if (col.Text == "NW")
{ {
NWData nw = (NWData)e.RowObject; NWData nw = (NWData)e.RowObject;
KundeArtikel kndart = KundeArtikel.GetItem((int)nw.KndArtID); KundeArtikel kndart = KundeArtikel.GetItem((int)nw.KndArtID);
kndart.Fehlmenge = i; kndart.Fehlmenge = i;
kndart.FehlmengeBearbeitet = this.user.BenutzerName + " am " + DateTime.Now.ToString();
kndart.Save(); kndart.Save();
} }
} }
@ -256,7 +259,6 @@ namespace Deckungsbeitrag
private void objectListViewArtikel_Resize(object sender, EventArgs e) private void objectListViewArtikel_Resize(object sender, EventArgs e)
{ {
this.ClientSize = new Size(this.objectListViewArtikel.Width + this.objectListViewArtikel.Left, this.ClientSize.Height); this.ClientSize = new Size(this.objectListViewArtikel.Width + this.objectListViewArtikel.Left, this.ClientSize.Height);
} }
} }
} }

View File

@ -442,6 +442,7 @@
this.MaximizeBox = false; this.MaximizeBox = false;
this.Name = "FormAuftragDetail"; this.Name = "FormAuftragDetail";
this.Text = "Auftrag Detail"; this.Text = "Auftrag Detail";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormAuftragDetail_FormClosing);
this.Load += new System.EventHandler(this.FormAuftragDetail_Load); this.Load += new System.EventHandler(this.FormAuftragDetail_Load);
this.Shown += new System.EventHandler(this.FormAuftragDetail_Shown); this.Shown += new System.EventHandler(this.FormAuftragDetail_Shown);
this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.FormAuftragDetail_MouseClick); this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.FormAuftragDetail_MouseClick);

View File

@ -263,6 +263,7 @@ namespace Deckungsbeitrag
WriteToCSV(dictionary); WriteToCSV(dictionary);
} }
} }
tosave = false;
} }
@ -274,6 +275,21 @@ namespace Deckungsbeitrag
//AUFTRAG ABBRECHEN //AUFTRAG ABBRECHEN
private void buttonAbbrechen_Click(object sender, EventArgs e) private void buttonAbbrechen_Click(object sender, EventArgs e)
{ {
//if (_tosave)
//{
// if (MessageBox.Show("Möchtest du die Änderungen wirklich verwerfen?", "ÄNDERUNGEN VERWERFEN", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
// {
// this.DialogResult = DialogResult.Cancel;
// this.Close();
// }
// else return;
//}
//else
//{
// this.DialogResult = DialogResult.Cancel;
// this.Close();
//}
this.DialogResult = DialogResult.Cancel; this.DialogResult = DialogResult.Cancel;
this.Close(); this.Close();
} }
@ -352,6 +368,7 @@ namespace Deckungsbeitrag
File.Delete(Path.Combine(loadPath, invFiles[0])); File.Delete(Path.Combine(loadPath, invFiles[0]));
} }
} }
toclose = tosave = false;
} }
this.DialogResult = DialogResult.OK; this.DialogResult = DialogResult.OK;
@ -367,7 +384,7 @@ namespace Deckungsbeitrag
//TODO: Erstellen von SonderAuftrag und Drucken von Etikett testen. //TODO: Erstellen von SonderAuftrag und Drucken von Etikett testen.
if (MessageBox.Show("Möchtest du Etiketten für die Änderung drucken?", "FRAGE", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) if (MessageBox.Show("Möchtest du Etiketten für die Änderung drucken?", "FRAGE", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{ {
Funktionen.SonderEtikett_Drucken(this.auftrag, bestand); Funktionen.SonderEtikett_Drucken(this.auftrag, dictionary);
etikettgedruckt = true; etikettgedruckt = true;
@ -604,12 +621,24 @@ namespace Deckungsbeitrag
{ {
this.ClientSize = new Size(oLVArtikel.Right + 10, oLVArtikel.Bottom + buttonAbbrechen.Height + 25); this.ClientSize = new Size(oLVArtikel.Right + 10, oLVArtikel.Bottom + buttonAbbrechen.Height + 25);
} }
private void FormAuftragDetail_FormClosing(object sender, FormClosingEventArgs e)
{
if (tosave)
{
if (MessageBox.Show("Möchtest du die Änderungen wirklich verwerfen?", "ÄNDERUNGEN VERWERFEN", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
else { e.Cancel = true; return; }
}
}
} }
} }
//TODO: Standverminderung und Standerhöhung mit einem Aufruf (Standveränderung?) Bei Verminderung -Zahlen sonst Plus.
//DONE: Korrigiere Bestand: Wenn -Zahl dann Stand - Zahl. //DONE: Korrigiere Bestand: Wenn -Zahl dann Stand - Zahl.
//TODO: Speichern etc. durchgehen und adaptieren //TODO: Speichern etc. durchgehen und adaptieren
//TODO: Liste vorher/nachher durchdenken
//DONE: Feedback Button hinzufügen //DONE: Feedback Button hinzufügen
//DONE: ComboBox Fahrer und Priorität implementieren //DONE: ComboBox Fahrer und Priorität implementieren
//DONE: Container schmutzig bearbeitbar machen //DONE: Container schmutzig bearbeitbar machen

View File

@ -56,6 +56,7 @@
this.tabControlAuftragList = new System.Windows.Forms.TabControl(); this.tabControlAuftragList = new System.Windows.Forms.TabControl();
this.tabPageVorbereitet = new System.Windows.Forms.TabPage(); this.tabPageVorbereitet = new System.Windows.Forms.TabPage();
this.objectListViewVorbereitet = new BrightIdeasSoftware.ObjectListView(); this.objectListViewVorbereitet = new BrightIdeasSoftware.ObjectListView();
this.buttonNW = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.chartFehlmenge)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.chartFehlmenge)).BeginInit();
this.groupBoxKndInfo.SuspendLayout(); this.groupBoxKndInfo.SuspendLayout();
this.tableLayoutPanelInfo.SuspendLayout(); this.tableLayoutPanelInfo.SuspendLayout();
@ -99,7 +100,7 @@
this.buttonSuchen.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.buttonSuchen.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonSuchen.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.buttonSuchen.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonSuchen.ForeColor = System.Drawing.Color.Black; this.buttonSuchen.ForeColor = System.Drawing.Color.Black;
this.buttonSuchen.Location = new System.Drawing.Point(209, 649); this.buttonSuchen.Location = new System.Drawing.Point(284, 649);
this.buttonSuchen.Margin = new System.Windows.Forms.Padding(2); this.buttonSuchen.Margin = new System.Windows.Forms.Padding(2);
this.buttonSuchen.Name = "buttonSuchen"; this.buttonSuchen.Name = "buttonSuchen";
this.buttonSuchen.Size = new System.Drawing.Size(200, 41); this.buttonSuchen.Size = new System.Drawing.Size(200, 41);
@ -116,7 +117,7 @@
this.buttonReklamation.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.buttonReklamation.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonReklamation.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.buttonReklamation.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonReklamation.ForeColor = System.Drawing.Color.White; this.buttonReklamation.ForeColor = System.Drawing.Color.White;
this.buttonReklamation.Location = new System.Drawing.Point(4, 649); this.buttonReklamation.Location = new System.Drawing.Point(79, 649);
this.buttonReklamation.Name = "buttonReklamation"; this.buttonReklamation.Name = "buttonReklamation";
this.buttonReklamation.Size = new System.Drawing.Size(200, 41); this.buttonReklamation.Size = new System.Drawing.Size(200, 41);
this.buttonReklamation.TabIndex = 64; this.buttonReklamation.TabIndex = 64;
@ -192,12 +193,12 @@
this.tableLayoutPanelInfo.Controls.Add(this.labelAnmerkung, 0, 0); this.tableLayoutPanelInfo.Controls.Add(this.labelAnmerkung, 0, 0);
this.tableLayoutPanelInfo.Controls.Add(this.labelAufgabe, 0, 1); this.tableLayoutPanelInfo.Controls.Add(this.labelAufgabe, 0, 1);
this.tableLayoutPanelInfo.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanelInfo.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanelInfo.Location = new System.Drawing.Point(3, 22); this.tableLayoutPanelInfo.Location = new System.Drawing.Point(3, 26);
this.tableLayoutPanelInfo.Name = "tableLayoutPanelInfo"; this.tableLayoutPanelInfo.Name = "tableLayoutPanelInfo";
this.tableLayoutPanelInfo.RowCount = 2; this.tableLayoutPanelInfo.RowCount = 2;
this.tableLayoutPanelInfo.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanelInfo.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanelInfo.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanelInfo.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanelInfo.Size = new System.Drawing.Size(287, 158); this.tableLayoutPanelInfo.Size = new System.Drawing.Size(287, 154);
this.tableLayoutPanelInfo.TabIndex = 0; this.tableLayoutPanelInfo.TabIndex = 0;
// //
// labelAnmerkung // labelAnmerkung
@ -207,7 +208,7 @@
this.labelAnmerkung.ForeColor = System.Drawing.Color.Red; this.labelAnmerkung.ForeColor = System.Drawing.Color.Red;
this.labelAnmerkung.Location = new System.Drawing.Point(3, 0); this.labelAnmerkung.Location = new System.Drawing.Point(3, 0);
this.labelAnmerkung.Name = "labelAnmerkung"; this.labelAnmerkung.Name = "labelAnmerkung";
this.labelAnmerkung.Size = new System.Drawing.Size(281, 79); this.labelAnmerkung.Size = new System.Drawing.Size(281, 77);
this.labelAnmerkung.TabIndex = 0; this.labelAnmerkung.TabIndex = 0;
this.labelAnmerkung.Text = "label2"; this.labelAnmerkung.Text = "label2";
// //
@ -215,9 +216,9 @@
// //
this.labelAufgabe.AutoSize = true; this.labelAufgabe.AutoSize = true;
this.labelAufgabe.Dock = System.Windows.Forms.DockStyle.Fill; this.labelAufgabe.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelAufgabe.Location = new System.Drawing.Point(3, 79); this.labelAufgabe.Location = new System.Drawing.Point(3, 77);
this.labelAufgabe.Name = "labelAufgabe"; this.labelAufgabe.Name = "labelAufgabe";
this.labelAufgabe.Size = new System.Drawing.Size(281, 79); this.labelAufgabe.Size = new System.Drawing.Size(281, 77);
this.labelAufgabe.TabIndex = 1; this.labelAufgabe.TabIndex = 1;
this.labelAufgabe.Text = "label3"; this.labelAufgabe.Text = "label3";
// //
@ -230,7 +231,7 @@
this.buttonTourenListe.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 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.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.ForeColor = System.Drawing.Color.Black;
this.buttonTourenListe.Location = new System.Drawing.Point(413, 649); this.buttonTourenListe.Location = new System.Drawing.Point(488, 649);
this.buttonTourenListe.Margin = new System.Windows.Forms.Padding(2); this.buttonTourenListe.Margin = new System.Windows.Forms.Padding(2);
this.buttonTourenListe.Name = "buttonTourenListe"; this.buttonTourenListe.Name = "buttonTourenListe";
this.buttonTourenListe.Size = new System.Drawing.Size(200, 41); this.buttonTourenListe.Size = new System.Drawing.Size(200, 41);
@ -270,9 +271,9 @@
// tabPageRampe // tabPageRampe
// //
this.tabPageRampe.Controls.Add(this.objectListViewRampe); this.tabPageRampe.Controls.Add(this.objectListViewRampe);
this.tabPageRampe.Location = new System.Drawing.Point(4, 34); this.tabPageRampe.Location = new System.Drawing.Point(4, 39);
this.tabPageRampe.Name = "tabPageRampe"; this.tabPageRampe.Name = "tabPageRampe";
this.tabPageRampe.Size = new System.Drawing.Size(890, 584); this.tabPageRampe.Size = new System.Drawing.Size(890, 579);
this.tabPageRampe.TabIndex = 3; this.tabPageRampe.TabIndex = 3;
this.tabPageRampe.Text = "Rampe"; this.tabPageRampe.Text = "Rampe";
this.tabPageRampe.UseVisualStyleBackColor = true; this.tabPageRampe.UseVisualStyleBackColor = true;
@ -291,7 +292,7 @@
this.objectListViewRampe.Location = new System.Drawing.Point(0, 0); this.objectListViewRampe.Location = new System.Drawing.Point(0, 0);
this.objectListViewRampe.Name = "objectListViewRampe"; this.objectListViewRampe.Name = "objectListViewRampe";
this.objectListViewRampe.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu; this.objectListViewRampe.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu;
this.objectListViewRampe.Size = new System.Drawing.Size(890, 584); this.objectListViewRampe.Size = new System.Drawing.Size(890, 579);
this.objectListViewRampe.Sorting = System.Windows.Forms.SortOrder.Ascending; this.objectListViewRampe.Sorting = System.Windows.Forms.SortOrder.Ascending;
this.objectListViewRampe.TabIndex = 2; this.objectListViewRampe.TabIndex = 2;
this.objectListViewRampe.TintSortColumn = true; this.objectListViewRampe.TintSortColumn = true;
@ -309,10 +310,10 @@
// tabPageSonder // tabPageSonder
// //
this.tabPageSonder.Controls.Add(this.objectListViewSonder); this.tabPageSonder.Controls.Add(this.objectListViewSonder);
this.tabPageSonder.Location = new System.Drawing.Point(4, 34); this.tabPageSonder.Location = new System.Drawing.Point(4, 39);
this.tabPageSonder.Name = "tabPageSonder"; this.tabPageSonder.Name = "tabPageSonder";
this.tabPageSonder.Padding = new System.Windows.Forms.Padding(3); this.tabPageSonder.Padding = new System.Windows.Forms.Padding(3);
this.tabPageSonder.Size = new System.Drawing.Size(890, 584); this.tabPageSonder.Size = new System.Drawing.Size(890, 579);
this.tabPageSonder.TabIndex = 1; this.tabPageSonder.TabIndex = 1;
this.tabPageSonder.Text = "Sonderaufträge"; this.tabPageSonder.Text = "Sonderaufträge";
this.tabPageSonder.UseVisualStyleBackColor = true; this.tabPageSonder.UseVisualStyleBackColor = true;
@ -330,7 +331,7 @@
this.objectListViewSonder.Location = new System.Drawing.Point(3, 3); this.objectListViewSonder.Location = new System.Drawing.Point(3, 3);
this.objectListViewSonder.Name = "objectListViewSonder"; this.objectListViewSonder.Name = "objectListViewSonder";
this.objectListViewSonder.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu; this.objectListViewSonder.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu;
this.objectListViewSonder.Size = new System.Drawing.Size(884, 578); this.objectListViewSonder.Size = new System.Drawing.Size(884, 573);
this.objectListViewSonder.Sorting = System.Windows.Forms.SortOrder.Ascending; this.objectListViewSonder.Sorting = System.Windows.Forms.SortOrder.Ascending;
this.objectListViewSonder.TabIndex = 2; this.objectListViewSonder.TabIndex = 2;
this.objectListViewSonder.TintSortColumn = true; this.objectListViewSonder.TintSortColumn = true;
@ -348,10 +349,10 @@
// tabPageGeschaeft // tabPageGeschaeft
// //
this.tabPageGeschaeft.Controls.Add(this.objectListViewGeschaeft); this.tabPageGeschaeft.Controls.Add(this.objectListViewGeschaeft);
this.tabPageGeschaeft.Location = new System.Drawing.Point(4, 34); this.tabPageGeschaeft.Location = new System.Drawing.Point(4, 39);
this.tabPageGeschaeft.Name = "tabPageGeschaeft"; this.tabPageGeschaeft.Name = "tabPageGeschaeft";
this.tabPageGeschaeft.Padding = new System.Windows.Forms.Padding(3); this.tabPageGeschaeft.Padding = new System.Windows.Forms.Padding(3);
this.tabPageGeschaeft.Size = new System.Drawing.Size(890, 584); this.tabPageGeschaeft.Size = new System.Drawing.Size(890, 579);
this.tabPageGeschaeft.TabIndex = 2; this.tabPageGeschaeft.TabIndex = 2;
this.tabPageGeschaeft.Text = "Geschäft"; this.tabPageGeschaeft.Text = "Geschäft";
this.tabPageGeschaeft.UseVisualStyleBackColor = true; this.tabPageGeschaeft.UseVisualStyleBackColor = true;
@ -370,7 +371,7 @@
this.objectListViewGeschaeft.Location = new System.Drawing.Point(3, 3); this.objectListViewGeschaeft.Location = new System.Drawing.Point(3, 3);
this.objectListViewGeschaeft.Name = "objectListViewGeschaeft"; this.objectListViewGeschaeft.Name = "objectListViewGeschaeft";
this.objectListViewGeschaeft.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu; this.objectListViewGeschaeft.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu;
this.objectListViewGeschaeft.Size = new System.Drawing.Size(884, 578); this.objectListViewGeschaeft.Size = new System.Drawing.Size(884, 573);
this.objectListViewGeschaeft.Sorting = System.Windows.Forms.SortOrder.Ascending; this.objectListViewGeschaeft.Sorting = System.Windows.Forms.SortOrder.Ascending;
this.objectListViewGeschaeft.TabIndex = 2; this.objectListViewGeschaeft.TabIndex = 2;
this.objectListViewGeschaeft.TintSortColumn = true; this.objectListViewGeschaeft.TintSortColumn = true;
@ -393,10 +394,10 @@
// tabPageAll // tabPageAll
// //
this.tabPageAll.Controls.Add(this.objectListViewAuftrag); this.tabPageAll.Controls.Add(this.objectListViewAuftrag);
this.tabPageAll.Location = new System.Drawing.Point(4, 34); this.tabPageAll.Location = new System.Drawing.Point(4, 39);
this.tabPageAll.Name = "tabPageAll"; this.tabPageAll.Name = "tabPageAll";
this.tabPageAll.Padding = new System.Windows.Forms.Padding(3); this.tabPageAll.Padding = new System.Windows.Forms.Padding(3);
this.tabPageAll.Size = new System.Drawing.Size(890, 584); this.tabPageAll.Size = new System.Drawing.Size(890, 579);
this.tabPageAll.TabIndex = 0; this.tabPageAll.TabIndex = 0;
this.tabPageAll.Text = "Aufträge heute"; this.tabPageAll.Text = "Aufträge heute";
this.tabPageAll.UseVisualStyleBackColor = true; this.tabPageAll.UseVisualStyleBackColor = true;
@ -415,7 +416,7 @@
this.objectListViewAuftrag.Location = new System.Drawing.Point(3, 3); this.objectListViewAuftrag.Location = new System.Drawing.Point(3, 3);
this.objectListViewAuftrag.Name = "objectListViewAuftrag"; this.objectListViewAuftrag.Name = "objectListViewAuftrag";
this.objectListViewAuftrag.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu; this.objectListViewAuftrag.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu;
this.objectListViewAuftrag.Size = new System.Drawing.Size(884, 578); this.objectListViewAuftrag.Size = new System.Drawing.Size(884, 573);
this.objectListViewAuftrag.Sorting = System.Windows.Forms.SortOrder.Ascending; this.objectListViewAuftrag.Sorting = System.Windows.Forms.SortOrder.Ascending;
this.objectListViewAuftrag.TabIndex = 1; this.objectListViewAuftrag.TabIndex = 1;
this.objectListViewAuftrag.TintSortColumn = true; this.objectListViewAuftrag.TintSortColumn = true;
@ -458,9 +459,9 @@
// tabPageVorbereitet // tabPageVorbereitet
// //
this.tabPageVorbereitet.Controls.Add(this.objectListViewVorbereitet); this.tabPageVorbereitet.Controls.Add(this.objectListViewVorbereitet);
this.tabPageVorbereitet.Location = new System.Drawing.Point(4, 34); this.tabPageVorbereitet.Location = new System.Drawing.Point(4, 39);
this.tabPageVorbereitet.Name = "tabPageVorbereitet"; this.tabPageVorbereitet.Name = "tabPageVorbereitet";
this.tabPageVorbereitet.Size = new System.Drawing.Size(890, 584); this.tabPageVorbereitet.Size = new System.Drawing.Size(890, 579);
this.tabPageVorbereitet.TabIndex = 4; this.tabPageVorbereitet.TabIndex = 4;
this.tabPageVorbereitet.Text = "Vorbereitet"; this.tabPageVorbereitet.Text = "Vorbereitet";
this.tabPageVorbereitet.UseVisualStyleBackColor = true; this.tabPageVorbereitet.UseVisualStyleBackColor = true;
@ -480,7 +481,7 @@
this.objectListViewVorbereitet.Location = new System.Drawing.Point(0, 0); this.objectListViewVorbereitet.Location = new System.Drawing.Point(0, 0);
this.objectListViewVorbereitet.Name = "objectListViewVorbereitet"; this.objectListViewVorbereitet.Name = "objectListViewVorbereitet";
this.objectListViewVorbereitet.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu; this.objectListViewVorbereitet.SelectColumnsOnRightClickBehaviour = BrightIdeasSoftware.ObjectListView.ColumnSelectBehaviour.Submenu;
this.objectListViewVorbereitet.Size = new System.Drawing.Size(890, 584); this.objectListViewVorbereitet.Size = new System.Drawing.Size(890, 579);
this.objectListViewVorbereitet.Sorting = System.Windows.Forms.SortOrder.Ascending; this.objectListViewVorbereitet.Sorting = System.Windows.Forms.SortOrder.Ascending;
this.objectListViewVorbereitet.TabIndex = 2; this.objectListViewVorbereitet.TabIndex = 2;
this.objectListViewVorbereitet.TintSortColumn = true; this.objectListViewVorbereitet.TintSortColumn = true;
@ -498,11 +499,28 @@
this.objectListViewVorbereitet.CellClick += new System.EventHandler<BrightIdeasSoftware.CellClickEventArgs>(this.objectListViewAuftrag_CellClick); this.objectListViewVorbereitet.CellClick += new System.EventHandler<BrightIdeasSoftware.CellClickEventArgs>(this.objectListViewAuftrag_CellClick);
this.objectListViewVorbereitet.FormatCell += new System.EventHandler<BrightIdeasSoftware.FormatCellEventArgs>(this.objectListViewAuftrag_FormatCell); this.objectListViewVorbereitet.FormatCell += new System.EventHandler<BrightIdeasSoftware.FormatCellEventArgs>(this.objectListViewAuftrag_FormatCell);
// //
// buttonNW
//
this.buttonNW.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.buttonNW.FlatAppearance.BorderColor = System.Drawing.Color.White;
this.buttonNW.FlatAppearance.BorderSize = 3;
this.buttonNW.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonNW.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonNW.ForeColor = System.Drawing.Color.White;
this.buttonNW.Location = new System.Drawing.Point(4, 649);
this.buttonNW.Name = "buttonNW";
this.buttonNW.Size = new System.Drawing.Size(69, 41);
this.buttonNW.TabIndex = 67;
this.buttonNW.Text = "NW";
this.buttonNW.UseVisualStyleBackColor = true;
this.buttonNW.Click += new System.EventHandler(this.buttonNW_Click);
//
// FormExpedit // FormExpedit
// //
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101))))); this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(1)))), ((int)(((byte)(53)))), ((int)(((byte)(101)))));
this.ClientSize = new System.Drawing.Size(1221, 703); this.ClientSize = new System.Drawing.Size(1221, 703);
this.Controls.Add(this.buttonNW);
this.Controls.Add(this.buttonTourenListe); this.Controls.Add(this.buttonTourenListe);
this.Controls.Add(this.groupBoxKndInfo); this.Controls.Add(this.groupBoxKndInfo);
this.Controls.Add(this.chartFehlmenge); this.Controls.Add(this.chartFehlmenge);
@ -569,5 +587,6 @@
private System.Windows.Forms.TabControl tabControlAuftragList; private System.Windows.Forms.TabControl tabControlAuftragList;
private System.Windows.Forms.TabPage tabPageVorbereitet; private System.Windows.Forms.TabPage tabPageVorbereitet;
private BrightIdeasSoftware.ObjectListView objectListViewVorbereitet; private BrightIdeasSoftware.ObjectListView objectListViewVorbereitet;
private System.Windows.Forms.Button buttonNW;
} }
} }

View File

@ -128,9 +128,10 @@ namespace Deckungsbeitrag
catch (Exception ex) catch (Exception ex)
{ {
// Vermeide $ für C# älter // Vermeide $ für C# älter
this.BeginInvoke(new Action(() => MessageBox.Show( Random rnd = new Random();
string.Format($"Laden fehlgeschlagen: {0}", ex.Message)))); int zahl = rnd.Next(1, 10001);
Program.AddFehler(this.benutzer, ex.Message, ex.StackTrace, null); this.BeginInvoke(new Action(() => MessageBox.Show(string.Format($"Laden fehlgeschlagen. Leite den Fehler {zahl} an Kilian weiter. ", ex.Message))));
Program.AddFehler(this.benutzer, $"Fehler {zahl} - ex.Message", ex.StackTrace, null);
} }
}); });
} }
@ -471,7 +472,6 @@ namespace Deckungsbeitrag
e.Text = Kunde.GetKunde(null, _auftrag.KundeID, null).Anmerkung; e.Text = Kunde.GetKunde(null, _auftrag.KundeID, null).Anmerkung;
} }
} }
//TODO: Alle Icons in einer Spalte anzeigen? I für Anmerkung und ! für Aufgabe??
if (e.Column.Text == "Fahrer" && e.Model is Auftrag auftrag1) if (e.Column.Text == "Fahrer" && e.Model is Auftrag auftrag1)
{ {
e.Text = auftrag1.ZusatzInfo; e.Text = auftrag1.ZusatzInfo;
@ -932,7 +932,6 @@ namespace Deckungsbeitrag
} }
else if (meldung.GetFrage(this, $"Möchtest du die gewählte Zelle wirklich bearbeiten?", false) == DialogResult.No) e.Cancel = true; else if (meldung.GetFrage(this, $"Möchtest du die gewählte Zelle wirklich bearbeiten?", false) == DialogResult.No) e.Cancel = true;
//TODO: Soll hier ebenfalls der nächste Liefertag laut Rhythmus vorgeschlagen werden?
} }
#endregion #endregion
@ -1276,5 +1275,11 @@ namespace Deckungsbeitrag
olv.RefreshObject(olv.SelectedObject); olv.RefreshObject(olv.SelectedObject);
e.Cancel = true; e.Cancel = true;
} }
private void buttonNW_Click(object sender, EventArgs e)
{
FormArtikelVW artikelVW = new FormArtikelVW(this.benutzer);
artikelVW.ShowDialog();
}
} }
} }

View File

@ -5,6 +5,7 @@ using System;
using System.CodeDom; using System.CodeDom;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Configuration;
using System.Data; using System.Data;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing; using System.Drawing;
@ -106,8 +107,21 @@ namespace Deckungsbeitrag
if (this.kunde.HatNachwaesche) this.artikelListe = KundeArtikel.GetFehlmengeList(kunde.KundeID.ToString(), null); if (this.kunde.HatNachwaesche) this.artikelListe = KundeArtikel.GetFehlmengeList(kunde.KundeID.ToString(), null);
this.textBoxScann.Text = this.kunde.KundeNummer; this.textBoxScann.Text = this.kunde.KundeNummer;
this.textBoxScann.Enabled = false; this.textBoxScann.Enabled = false;
if ((userid != null && userid.Contains("reklamation")) || (this.benutzer != null && this.benutzer.Rolle == BenutzerRolle.Expedit)) Reklamation_GroupBox(); if (userid != null && !userid.Contains("reklamation")) GroupBox_Load();
else GroupBox_Load(); else
{
if (this.benutzer != null && (this.benutzer.Rolle == BenutzerRolle.Expedit || this.benutzer.Rolle == BenutzerRolle.Frottee)) Reklamation_GroupBox();
else
{
Random rnd = new Random();
int zahl = rnd.Next(1, 10001); // 1 bis 10000
Program.AddFehler(this.benutzer, $"Fehler{zahl} Falsche userid oder BenutzerRolle.", "FormFehlmengeCount.ControlLaden/Zeilen: 109 - 119", null);
MessageBox.Show($"Falsche userid oder BenutzerRolle. Bitte Kilian Fehler: {zahl} nennen.", "FEHLER", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
}
}
//if ((userid != null && userid.Contains("reklamation")) || (this.benutzer != null && (this.benutzer.Rolle == BenutzerRolle.Expedit || this.benutzer.Rolle == BenutzerRolle.Frottee))) Reklamation_GroupBox();
//else GroupBox_Load();
if (kunde.Aufgabe != null) if (kunde.Aufgabe != null)
{ {
@ -129,7 +143,7 @@ namespace Deckungsbeitrag
} }
/// <summary> /// <summary>
/// Die GroupBox mit den Artikel-Buttons wird geladen /// Die GroupBox mit den Artikel-Buttons wird geladen wenn BenutzerRolle ist nicht Expedit oder Frottee.
/// </summary> /// </summary>
private void GroupBox_Load() private void GroupBox_Load()
{ {
@ -321,6 +335,9 @@ namespace Deckungsbeitrag
} }
} }
/// <summary>
/// GroupBox wird für Reklamationen geladen. Passiert nur wenn BenutzerRolle ist Expedit oder Frottee.
/// </summary>
private void Reklamation_GroupBox() private void Reklamation_GroupBox()
{ {
this.groupBoxArtikel.Controls.Clear(); this.groupBoxArtikel.Controls.Clear();
@ -375,6 +392,7 @@ namespace Deckungsbeitrag
groupBoxArtikel.ResumeLayout(); groupBoxArtikel.ResumeLayout();
groupBoxArtikel.Visible = true; groupBoxArtikel.Visible = true;
} }
/// <summary> /// <summary>
/// Wenn der Kunde Fertig gemacht wurde, werden Controls deaktiviert und ausgeblendet bis neuer Kunde gewählt /// Wenn der Kunde Fertig gemacht wurde, werden Controls deaktiviert und ausgeblendet bis neuer Kunde gewählt
/// </summary> /// </summary>
@ -431,6 +449,7 @@ namespace Deckungsbeitrag
Open_Liste(); Open_Liste();
ControlLaden(); ControlLaden();
} }
/// <summary> /// <summary>
/// Auftragliste aufrufen. /// Auftragliste aufrufen.
/// </summary> /// </summary>
@ -464,7 +483,6 @@ namespace Deckungsbeitrag
/// <param name="e"></param> /// <param name="e"></param>
private void textBoxScann_Leave(object sender, EventArgs e) private void textBoxScann_Leave(object sender, EventArgs e)
{ {
//TODO: Wenn Nachwäsche oder Müllwäsche alle Artikel anzeigen.
// Kundennummer wird ausgelesen und Kunde aus DB geholt. Form_Load wird danach ausgelöst // Kundennummer wird ausgelesen und Kunde aus DB geholt. Form_Load wird danach ausgelöst
if (this.kunde == null) if (this.kunde == null)
{ {

View File

@ -53,13 +53,14 @@ namespace DatenDB
DatenbankConnection.GetConnection().Close(); DatenbankConnection.GetConnection().Close();
return result; return result;
} }
internal static string GetShort(int? artikelID) internal static string GetShort(int? artikelID, string artname)
{ {
DatenbankConnection.GetConnection().Open(); DatenbankConnection.GetConnection().Open();
string result = null; string result = null;
NpgsqlCommand command = new NpgsqlCommand(); NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection(); command.Connection = DatenbankConnection.GetConnection();
command.CommandText = $"select short from {TABLE} where artikel_id = {artikelID}"; if (artikelID != null) command.CommandText = $"select short from {TABLE} where artikel_id = {artikelID}";
if (!string.IsNullOrWhiteSpace(artname)) command.CommandText = $"select short from {TABLE} where bezeichnung = '{artname}'";
NpgsqlDataReader reader = command.ExecuteReader(); NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) result = reader.IsDBNull(0) ? string.Empty : reader.GetString(0); while (reader.Read()) result = reader.IsDBNull(0) ? string.Empty : reader.GetString(0);
reader.Close(); reader.Close();
@ -105,7 +106,8 @@ namespace DatenDB
command.Connection = DatenbankConnection.GetConnection(); command.Connection = DatenbankConnection.GetConnection();
if (s == "Alle") command.CommandText = $"select {COLUMNS} from {TABLE}"; if (s == "Alle") command.CommandText = $"select {COLUMNS} from {TABLE}";
if (s == "Nachwaesche") command.CommandText = $"select {COLUMNS} from {TABLE} where kategorie > 0 and SUBSTRING(nummer::text, 1, 1) = '6' order by kategorie ASC"; if (s == "Nachwaesche") command.CommandText = $"select {COLUMNS} from {TABLE} where kategorie > 0 and SUBSTRING(nummer::text, 1, 1) = '6' order by kategorie ASC, nummer ASC";
if (s == "MitNachwaesche") command.CommandText = $"select {COLUMNS} from {TABLE} where nachwaesche > 0";
NpgsqlDataReader reader = command.ExecuteReader(); NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new Artikel(reader)); while (reader.Read()) resultList.Add(new Artikel(reader));

View File

@ -3,6 +3,7 @@ using BrightIdeasSoftware;
using DatenDB; using DatenDB;
using Deckungsbeitrag.AA_Klassen; using Deckungsbeitrag.AA_Klassen;
using Deckungsbeitrag.Properties; using Deckungsbeitrag.Properties;
using Deckungsbeitrag.UserControls;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Configuration; using System.Configuration;
@ -49,7 +50,7 @@ namespace Deckungsbeitrag
private static Benutzer _benutzer; private static Benutzer _benutzer;
private static PrintDocument printdoc; private static PrintDocument printdoc;
public static bool IsPhysicalPrint = false; // Globaler Schalter public static bool IsPhysicalPrint = false; // Globaler Schalter
static int[] _bestand; static Dictionary<string, int[]> _dictionary;
public Funktionen() public Funktionen()
{ {
@ -1120,7 +1121,7 @@ namespace Deckungsbeitrag
} }
} }
} }
public static Image SonderEtikett_Entwurf(Auftrag auftrag, int[] bestand) public static Image SonderEtikett_Entwurf(Auftrag auftrag, Dictionary<string, int[]> dictionary)
{ {
Kunde kunde = Kunde.GetKunde(string.Empty, auftrag.KundeID, string.Empty); Kunde kunde = Kunde.GetKunde(string.Empty, auftrag.KundeID, string.Empty);
if (kunde.Suchtext.StartsWith("?") | kunde.KundeNummer == "2320000") kunde.Suchtext = auftrag.ZusatzInfo; if (kunde.Suchtext.StartsWith("?") | kunde.KundeNummer == "2320000") kunde.Suchtext = auftrag.ZusatzInfo;
@ -1144,24 +1145,33 @@ namespace Deckungsbeitrag
g.FillRectangle(Brushes.White, 0, 0, bitmap.Width, bitmap.Height); g.FillRectangle(Brushes.White, 0, 0, bitmap.Width, bitmap.Height);
//Etikett-Text //Etikett-Text
g.DrawString($"{kunde.KundeNummer}", font1, Brushes.Black, startpoint); g.DrawString($"{kunde.KundeNummer}", font2, Brushes.Black, startpoint);
nextposition += (int)height_font1; nextposition += (int)height_font2;
g.DrawString($"{kunde.Suchtext}", font1, Brushes.Black, einzug, nextposition); g.DrawString($"{kunde.Suchtext}", font2, Brushes.Black, einzug, nextposition);
nextposition += (int)height_font1; nextposition += (int)height_font2;
foreach (AuftragArtikel artikel in artliste) g.DrawString($"{auftrag.Liefertag.Date.ToString("dd.MM.yyyy")}", font2, Brushes.Black, einzug, nextposition);
nextposition += (int)height_font2;
g.DrawString("Artikel Rekl/NW/Stand/Inv", font1, Brushes.Black, einzug, nextposition + 20);
nextposition += 20 + (int)height_font1;
foreach (var kvp in dictionary)
{ {
g.DrawString($"{Artikel.GetShort(artikel.ArtikelID)}", font1, Brushes.Black, einzug, nextposition); string artikelKey = kvp.Key; // z.B. "ART1"
g.DrawString($"{bestand[0].ToString()}/{bestand[1].ToString()}/{bestand[2].ToString()}", font1, Brushes.Black, einzug + 50, nextposition); int[] artbestand = kvp.Value; // z.B. [3, 0, 5]
g.DrawString($"{Artikel.GetShort(null, artikelKey)}", font1, Brushes.Black, einzug, nextposition);
if (artbestand[2] < 0) g.DrawString($"{artbestand[0].ToString()}/{artbestand[1].ToString()}/({artbestand[2].ToString()})/{artbestand[3].ToString()}", font1, Brushes.Black, einzug + 50, nextposition);
else g.DrawString($"{artbestand[0].ToString()}/{artbestand[1].ToString()}/{artbestand[2].ToString()}/{artbestand[3].ToString()}", font1, Brushes.Black, einzug + 50, nextposition);
nextposition += (int)height_font1; nextposition += (int)height_font1;
} }
Image img = bitmap; Image img = bitmap;
return img; return img;
} }
public static void SonderEtikett_Drucken(Auftrag auftrag, int[] bestand) public static void SonderEtikett_Drucken(Auftrag auftrag, Dictionary<string, int[]> dictionary)
{ {
_auftrag = auftrag; _auftrag = auftrag;
_bestand = bestand; _dictionary = dictionary;
int x = auftrag.ContainerClean; int x = auftrag.ContainerClean;
PrintDialog dialog = new PrintDialog(); PrintDialog dialog = new PrintDialog();
PrintPreviewDialog preview = new PrintPreviewDialog(); PrintPreviewDialog preview = new PrintPreviewDialog();
@ -1214,8 +1224,8 @@ namespace Deckungsbeitrag
// Event abschließen (keine weiteren Seiten) // Event abschließen (keine weiteren Seiten)
e.HasMorePages = false; e.HasMorePages = false;
} }
if (sender.ToString().Contains("Etikett")) e.Graphics.DrawImage(Funktionen.Etikett_Entwurf(null, _auftrag, _nocont), e.PageBounds); if (sender.ToString().Contains("Etikett")) e.Graphics.DrawImage(Etikett_Entwurf(null, _auftrag, _nocont), e.PageBounds);
if (sender.ToString().Contains("Sonder")) e.Graphics.DrawImage(SonderEtikett_Entwurf(_auftrag, _bestand), e.PageBounds); if (sender.ToString().Contains("Sonder")) e.Graphics.DrawImage(SonderEtikett_Entwurf(_auftrag, _dictionary), e.PageBounds);
if (sender.ToString().Contains("TourenListe")) if (sender.ToString().Contains("TourenListe"))
{ {
if (pagesToPrint == currentPage) currentPage = 0; if (pagesToPrint == currentPage) currentPage = 0;
@ -1568,7 +1578,7 @@ namespace Deckungsbeitrag
} }
// Label setzen (X-Achse zeigt Artikelnamen) // Label setzen (X-Achse zeigt Artikelnamen)
string label = Artikel.GetShort(daten.ArtikelID); string label = Artikel.GetShort(daten.ArtikelID, null);
//if (label.Length > 10) //if (label.Length > 10)
// label = label.Substring(0, 10) + "..."; // label = label.Substring(0, 10) + "...";

View File

@ -98,7 +98,7 @@ namespace DatenDB
NpgsqlCommand command = new NpgsqlCommand(); NpgsqlCommand command = new NpgsqlCommand();
command.Connection = DatenbankConnection.GetConnection(); command.Connection = DatenbankConnection.GetConnection();
if (!string.IsNullOrWhiteSpace(kundeid)) command.CommandText = $"select {COLUMNS} from {TABLE} where kunde_id = {kundeid} order by reihung asc"; if (!string.IsNullOrWhiteSpace(kundeid)) command.CommandText = $"select {COLUMNS} from {TABLE} where kunde_id = {kundeid} order by reihung asc";
else command.CommandText = $"select {COLUMNS} from {TABLE} where artikel_id = {artikelID}"; else command.CommandText = $"select {COLUMNS} from {TABLE} where artikel_id = {artikelID} order by artikel_nr";
NpgsqlDataReader reader = command.ExecuteReader(); NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read()) resultList.Add(new KundeArtikel(reader)); while (reader.Read()) resultList.Add(new KundeArtikel(reader));
reader.Close(); reader.Close();

View File

@ -6,7 +6,7 @@
</sectionGroup> </sectionGroup>
</configSections> </configSections>
<appSettings> <appSettings>
<add key="ConnectionString" value="user id=postgres;password=Ki985941Wi;host=10.10.10.1;port=5432;database=Test_Wirl;Timeout=15" /> <add key="ConnectionString" value="user id=msfrottee01;password=5KsA4BSf4P;host=10.10.10.1;port=5432;database=Test_Wirl;Timeout=15" />
<add key="SortimentPfad" value="N:\\TECHNIK\\Software\\Wirl-Verwaltung\\Listen\\Kundensortiment.txt" /> <add key="SortimentPfad" value="N:\\TECHNIK\\Software\\Wirl-Verwaltung\\Listen\\Kundensortiment.txt" />
<add key="InventurPfad" value="N:\BÜRO\KUNDEN\INVENTUREN\Verwaltung" /> <add key="InventurPfad" value="N:\BÜRO\KUNDEN\INVENTUREN\Verwaltung" />
<add key="BildPfad" value="C:\\Users\\KilianWirl\\OneDrive - gehgassi GmbH\\Wäscherei Wirl\\Programme\\Deckungsbeitrag\\Deckungsbeitrag\\Star.png" /> <add key="BildPfad" value="C:\\Users\\KilianWirl\\OneDrive - gehgassi GmbH\\Wäscherei Wirl\\Programme\\Deckungsbeitrag\\Deckungsbeitrag\\Star.png" />

View File

@ -1,5 +1,6 @@
using DatenDB; using DatenDB;
using Deckungsbeitrag.AA_Forms; using Deckungsbeitrag.AA_Forms;
using Deckungsbeitrag.AA_Klassen;
using Deckungsbeitrag.Properties; using Deckungsbeitrag.Properties;
using Microsoft.Win32; using Microsoft.Win32;
using System; using System;
@ -77,6 +78,31 @@ namespace Deckungsbeitrag
// Importieren und Updaten der Artikelliste wenn Datei vorhanden. // Importieren und Updaten der Artikelliste wenn Datei vorhanden.
ArtikelList_Laden(); ArtikelList_Laden();
// EINMALIG BEI SWITCH AUF NW_Artikel
DateTime timestamp = DateTime.Today;
List<Artikel> artikellist = Artikel.GetArtikelList("MitNachwaesche");
foreach (Artikel art in artikellist)
{
ArtikelNachwaesche nw = ArtikelNachwaesche.FindeDatensatz(art.ArtikelID, timestamp);
if (nw.NachwaescheID != null) nw.Nachwaesche++;
else
{
nw = new ArtikelNachwaesche()
{
ArtikelID = art.ArtikelID,
Datum = timestamp,
Nachwaesche = art.Nachwaesche
};
}
if (nw.Save() == 1)
{
art.Nachwaesche = 0;
art.Save();
}
}
Settings.Default.Save(); Settings.Default.Save();
Cursor.Current = Cursors.Default; Cursor.Current = Cursors.Default;
@ -411,9 +437,9 @@ namespace Deckungsbeitrag
{ {
string[] linedata = line.Split(';'); string[] linedata = line.Split(';');
// Wenn 1. Datensatz von linedata keine Zahlen sind oder 5. Datensatz Preisgruppe enthält wird Zeile ignoriert. // Wenn 1. Datensatz von linedata keine Zahlen sind oder 6. Datensatz Preisgruppe enthält wird Zeile ignoriert.
if (!int.TryParse(linedata[0], out _)) continue; if (!int.TryParse(linedata[0], out _)) continue;
if (linedata[4].Contains("Preisgruppe")) continue; if (linedata[5].Contains("Preisgruppe")) continue;
tosave++; tosave++;

View File

@ -12,7 +12,7 @@ namespace Deckungsbeitrag.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "18.4.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

View File

@ -5,7 +5,7 @@ NEUIGKEITEN - Version 1.0.8.5
Build-Info: Build-Info:
- Build-Typ: Release Build - Build-Typ: Release Build
- Erledigte TODOs: 18 - Erledigte TODOs: 18
- Offene TODOs: 44 - Offene TODOs: 39
- Install-Reminders: 4 - Install-Reminders: 4
- Changes: 15 - Changes: 15
@ -55,10 +55,9 @@ Build-Info:
- ✅ : Wenn RegAuftrag wird als augeliefert markiert, wird dieser automatisch neu erstellt laut hinterlegtem Rhythmus. [FormMain.cs] - ✅ : Wenn RegAuftrag wird als augeliefert markiert, wird dieser automatisch neu erstellt laut hinterlegtem Rhythmus. [FormMain.cs]
=== 🔄 OFFENE TODOs (44) === === 🔄 OFFENE TODOs (39) ===
- 🔄 !!ÜBERLEGE!! DB-Query für Kundenanzahl und Containeranzahl Abgleich. (Aufträge haben TourID hinterlegt. So sollte alles vergleichbar sein.) [Tour.cs] - 🔄 !!ÜBERLEGE!! DB-Query für Kundenanzahl und Containeranzahl Abgleich. (Aufträge haben TourID hinterlegt. So sollte alles vergleichbar sein.) [Tour.cs]
- 🔄 !!ÜBERLEGE!! Tour Start und Ende automatisch erfassen. [Tour.cs] - 🔄 !!ÜBERLEGE!! Tour Start und Ende automatisch erfassen. [Tour.cs]
- 🔄 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] - 🔄 Alle Icons in einer Spalte anzeigen? I für Anmerkung und ! für Aufgabe?? [FormMain.cs]
- 🔄 Alle Icons in einer Spalte anzeigen? I für Anmerkung und ! für Aufgabe?? [UCAuftragListe.cs] - 🔄 Alle Icons in einer Spalte anzeigen? I für Anmerkung und ! für Aufgabe?? [UCAuftragListe.cs]
- 🔄 Auftrag Schnellerfassung erstellen. Kundenliste aus JSON in OLV einfügen wenn schmutzig > 0 dann Auftrag erstellen. Spalten: "Kunde, schmutzig, liefertag, zustellfahrer" evnetuell in AuftragVW? [FormMain.cs] - 🔄 Auftrag Schnellerfassung erstellen. Kundenliste aus JSON in OLV einfügen wenn schmutzig > 0 dann Auftrag erstellen. Spalten: "Kunde, schmutzig, liefertag, zustellfahrer" evnetuell in AuftragVW? [FormMain.cs]
@ -79,7 +78,6 @@ Build-Info:
- 🔄 Hier Settings speichern mit UserSettingsManager Klasse. [FormEinstellung.cs] - 🔄 Hier Settings speichern mit UserSettingsManager Klasse. [FormEinstellung.cs]
- 🔄 JSON nach angemeldeten Fahrer durchsuchen und Kundenliste des aktuellen Wochentag anzeigen. [FormMain.cs] - 🔄 JSON nach angemeldeten Fahrer durchsuchen und Kundenliste des aktuellen Wochentag anzeigen. [FormMain.cs]
- 🔄 Kundenanzahl bei Tourenliste erstellen vergleichen und anpassen. [Tour.cs] - 🔄 Kundenanzahl bei Tourenliste erstellen vergleichen und anpassen. [Tour.cs]
- 🔄 Liste vorher/nachher durchdenken [FormAuftragDetail.cs]
- 🔄 Mit AddFehler in Obsidian eine Fehlerliste betreiben. (Wichtige Infos feststellen und bereitstellen) [Program.cs] - 🔄 Mit AddFehler in Obsidian eine Fehlerliste betreiben. (Wichtige Infos feststellen und bereitstellen) [Program.cs]
- 🔄 Nach Test und Rücksprache eventuell wieder umbauen. Benutzer.Rolle etc. [FormFehlmengeCount.cs] - 🔄 Nach Test und Rücksprache eventuell wieder umbauen. Benutzer.Rolle etc. [FormFehlmengeCount.cs]
- 🔄 nicht ganze Aufträge holen sondern nur die Zahlen? [FormMain.cs] - 🔄 nicht ganze Aufträge holen sondern nur die Zahlen? [FormMain.cs]
@ -88,9 +86,7 @@ Build-Info:
- 🔄 Reg.Aufträge einbauen. Besonderheit: Die Artikel sollen ebenfalls erscheinen. [Funktionen.cs] - 🔄 Reg.Aufträge einbauen. Besonderheit: Die Artikel sollen ebenfalls erscheinen. [Funktionen.cs]
- 🔄 Reihenfolge Spalten richtig stellen. [FormExpedit.cs] - 🔄 Reihenfolge Spalten richtig stellen. [FormExpedit.cs]
- 🔄 Settings hier ändern auf UserSettingsManager Klasse. [FormEinstellung.cs] - 🔄 Settings hier ändern auf UserSettingsManager Klasse. [FormEinstellung.cs]
- 🔄 Soll hier ebenfalls der nächste Liefertag laut Rhythmus vorgeschlagen werden? [FormExpedit.cs]
- 🔄 Speichern etc. durchgehen und adaptieren [FormAuftragDetail.cs] - 🔄 Speichern etc. durchgehen und adaptieren [FormAuftragDetail.cs]
- 🔄 Standverminderung und Standerhöhung mit einem Aufruf (Standveränderung?) Bei Verminderung -Zahlen sonst Plus. [FormAuftragDetail.cs]
- 🔄 TourenListe Entwurf muss überarbeitet werden. [FormNeuerAuftrag.cs] - 🔄 TourenListe Entwurf muss überarbeitet werden. [FormNeuerAuftrag.cs]
- 🔄 Umbau in Switch. [FormWSVerfolgung.cs] - 🔄 Umbau in Switch. [FormWSVerfolgung.cs]
- 🔄 UserSetting Properties eintragen und in EinstellungsScreen abrufen. [UserSettingsManager.cs] - 🔄 UserSetting Properties eintragen und in EinstellungsScreen abrufen. [UserSettingsManager.cs]
@ -98,8 +94,7 @@ Build-Info:
- 🔄 Weitere Properties von oben hier zuweisen [UserSettingsManager.cs] - 🔄 Weitere Properties von oben hier zuweisen [UserSettingsManager.cs]
- 🔄 Wenn Auftrag abgeschlossen wird muss die Containerzahl sauber addiert werden. Kundenanzahl und Containeranzahl schmutzig darf nicht erhöht werden. [Tour.cs] - 🔄 Wenn Auftrag abgeschlossen wird muss die Containerzahl sauber addiert werden. Kundenanzahl und Containeranzahl schmutzig darf nicht erhöht werden. [Tour.cs]
- 🔄 Wenn Frottee-Expedit auch Relamation bearbeitet, muss BenutzerRolle abgefragt werden. siehe CHANGES. [FormFehlmengeCount.cs] - 🔄 Wenn Frottee-Expedit auch Relamation bearbeitet, muss BenutzerRolle abgefragt werden. siehe CHANGES. [FormFehlmengeCount.cs]
- 🔄 Wenn Nachwäsche oder Müllwäsche alle Artikel anzeigen. [FormFehlmengeCount.cs]
- 🔄 Zuweisung zu Fahrer muss geklärt werden. [Funktionen.cs] - 🔄 Zuweisung zu Fahrer muss geklärt werden. [Funktionen.cs]
Installation: 03.04.2026 16:05 Installation: 07.04.2026 12:59
===================================== =====================================