Auftrag_Status wird bei Change gespeichert.

This commit is contained in:
Kilian Wirl 2026-02-25 17:10:48 +01:00
parent 9411a5b8e3
commit 9805aae717
15 changed files with 400 additions and 106 deletions

View File

@ -105,6 +105,10 @@
this.label15 = new System.Windows.Forms.Label();
this.tabPageAllgemein = new System.Windows.Forms.TabPage();
this.panelButtons = new System.Windows.Forms.Panel();
this.comboBoxTourenlisteDrucker = new System.Windows.Forms.ComboBox();
this.label24 = new System.Windows.Forms.Label();
this.groupBoxPfade = new System.Windows.Forms.GroupBox();
this.tabPageExpedit = new System.Windows.Forms.TabPage();
((System.ComponentModel.ISupportInitialize)(this.numUpDownMinWert)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numUpDownMaxWert)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numUpDownAnzahl)).BeginInit();
@ -120,6 +124,7 @@
this.groupBoxRegeln.SuspendLayout();
this.tabPageAllgemein.SuspendLayout();
this.panelButtons.SuspendLayout();
this.groupBoxPfade.SuspendLayout();
this.SuspendLayout();
//
// buttonVarKost
@ -514,7 +519,7 @@
// textBoxSortiment
//
this.textBoxSortiment.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxSortiment.Location = new System.Drawing.Point(181, 75);
this.textBoxSortiment.Location = new System.Drawing.Point(170, 34);
this.textBoxSortiment.Margin = new System.Windows.Forms.Padding(2);
this.textBoxSortiment.Name = "textBoxSortiment";
this.textBoxSortiment.Size = new System.Drawing.Size(422, 26);
@ -527,7 +532,7 @@
// textBoxRatingbild
//
this.textBoxRatingbild.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxRatingbild.Location = new System.Drawing.Point(181, 104);
this.textBoxRatingbild.Location = new System.Drawing.Point(170, 63);
this.textBoxRatingbild.Margin = new System.Windows.Forms.Padding(2);
this.textBoxRatingbild.Name = "textBoxRatingbild";
this.textBoxRatingbild.Size = new System.Drawing.Size(422, 26);
@ -546,7 +551,7 @@
this.buttonSortiment.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonSortiment.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonSortiment.ForeColor = System.Drawing.Color.White;
this.buttonSortiment.Location = new System.Drawing.Point(16, 75);
this.buttonSortiment.Location = new System.Drawing.Point(5, 34);
this.buttonSortiment.Margin = new System.Windows.Forms.Padding(2);
this.buttonSortiment.Name = "buttonSortiment";
this.buttonSortiment.Size = new System.Drawing.Size(160, 24);
@ -564,7 +569,7 @@
this.buttonRatingbild.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonRatingbild.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonRatingbild.ForeColor = System.Drawing.Color.White;
this.buttonRatingbild.Location = new System.Drawing.Point(16, 104);
this.buttonRatingbild.Location = new System.Drawing.Point(5, 63);
this.buttonRatingbild.Margin = new System.Windows.Forms.Padding(2);
this.buttonRatingbild.Name = "buttonRatingbild";
this.buttonRatingbild.Size = new System.Drawing.Size(160, 24);
@ -795,7 +800,7 @@
//
this.label13.AutoSize = true;
this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label13.Location = new System.Drawing.Point(22, 37);
this.label13.Location = new System.Drawing.Point(5, 37);
this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(73, 13);
@ -806,7 +811,7 @@
//
this.label14.AutoSize = true;
this.label14.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label14.Location = new System.Drawing.Point(22, 64);
this.label14.Location = new System.Drawing.Point(5, 64);
this.label14.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(78, 13);
@ -833,6 +838,8 @@
//
// groupBoxDrucker
//
this.groupBoxDrucker.Controls.Add(this.comboBoxTourenlisteDrucker);
this.groupBoxDrucker.Controls.Add(this.label24);
this.groupBoxDrucker.Controls.Add(this.numericUpDownSWSKopien);
this.groupBoxDrucker.Controls.Add(this.label1);
this.groupBoxDrucker.Controls.Add(this.comboBoxSWSDrucker);
@ -842,7 +849,7 @@
this.groupBoxDrucker.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBoxDrucker.Location = new System.Drawing.Point(14, 32);
this.groupBoxDrucker.Name = "groupBoxDrucker";
this.groupBoxDrucker.Size = new System.Drawing.Size(547, 90);
this.groupBoxDrucker.Size = new System.Drawing.Size(547, 123);
this.groupBoxDrucker.TabIndex = 48;
this.groupBoxDrucker.TabStop = false;
this.groupBoxDrucker.Text = "Standart Drucker";
@ -871,11 +878,12 @@
this.tabControlEinstellung.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabControlEinstellung.Controls.Add(this.tabPageAllgemein);
this.tabControlEinstellung.Controls.Add(this.tabPageFarben);
this.tabControlEinstellung.Controls.Add(this.tabPageDeckungsbeitrag);
this.tabControlEinstellung.Controls.Add(this.tabPageDrucker);
this.tabControlEinstellung.Controls.Add(this.tabPageTourenplanung);
this.tabControlEinstellung.Controls.Add(this.tabPageAllgemein);
this.tabControlEinstellung.Controls.Add(this.tabPageExpedit);
this.tabControlEinstellung.Location = new System.Drawing.Point(0, 0);
this.tabControlEinstellung.Name = "tabControlEinstellung";
this.tabControlEinstellung.SelectedIndex = 0;
@ -1137,10 +1145,7 @@
//
// tabPageAllgemein
//
this.tabPageAllgemein.Controls.Add(this.buttonSortiment);
this.tabPageAllgemein.Controls.Add(this.textBoxSortiment);
this.tabPageAllgemein.Controls.Add(this.textBoxRatingbild);
this.tabPageAllgemein.Controls.Add(this.buttonRatingbild);
this.tabPageAllgemein.Controls.Add(this.groupBoxPfade);
this.tabPageAllgemein.Location = new System.Drawing.Point(4, 22);
this.tabPageAllgemein.Name = "tabPageAllgemein";
this.tabPageAllgemein.Size = new System.Drawing.Size(1184, 597);
@ -1158,6 +1163,49 @@
this.panelButtons.Size = new System.Drawing.Size(1192, 49);
this.panelButtons.TabIndex = 50;
//
// comboBoxTourenlisteDrucker
//
this.comboBoxTourenlisteDrucker.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.comboBoxTourenlisteDrucker.FormattingEnabled = true;
this.comboBoxTourenlisteDrucker.Location = new System.Drawing.Point(123, 83);
this.comboBoxTourenlisteDrucker.Name = "comboBoxTourenlisteDrucker";
this.comboBoxTourenlisteDrucker.Size = new System.Drawing.Size(195, 21);
this.comboBoxTourenlisteDrucker.TabIndex = 51;
//
// label24
//
this.label24.AutoSize = true;
this.label24.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label24.Location = new System.Drawing.Point(5, 91);
this.label24.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(100, 13);
this.label24.TabIndex = 50;
this.label24.Text = "Tourenliste-Drucker";
//
// groupBoxPfade
//
this.groupBoxPfade.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.groupBoxPfade.Controls.Add(this.textBoxSortiment);
this.groupBoxPfade.Controls.Add(this.buttonSortiment);
this.groupBoxPfade.Controls.Add(this.buttonRatingbild);
this.groupBoxPfade.Controls.Add(this.textBoxRatingbild);
this.groupBoxPfade.Location = new System.Drawing.Point(8, 454);
this.groupBoxPfade.Name = "groupBoxPfade";
this.groupBoxPfade.Size = new System.Drawing.Size(652, 131);
this.groupBoxPfade.TabIndex = 34;
this.groupBoxPfade.TabStop = false;
this.groupBoxPfade.Text = "Pfade für Dokumente";
//
// tabPageExpedit
//
this.tabPageExpedit.Location = new System.Drawing.Point(4, 22);
this.tabPageExpedit.Name = "tabPageExpedit";
this.tabPageExpedit.Size = new System.Drawing.Size(1184, 597);
this.tabPageExpedit.TabIndex = 5;
this.tabPageExpedit.Text = "Expedit";
this.tabPageExpedit.UseVisualStyleBackColor = true;
//
// FormEinstellung
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -1191,8 +1239,9 @@
this.groupBoxRegeln.ResumeLayout(false);
this.groupBoxRegeln.PerformLayout();
this.tabPageAllgemein.ResumeLayout(false);
this.tabPageAllgemein.PerformLayout();
this.panelButtons.ResumeLayout(false);
this.groupBoxPfade.ResumeLayout(false);
this.groupBoxPfade.PerformLayout();
this.ResumeLayout(false);
}
@ -1275,5 +1324,9 @@
private System.Windows.Forms.ComboBox comboBox3;
private System.Windows.Forms.ComboBox comboBox4;
private System.Windows.Forms.Label label22;
private System.Windows.Forms.ComboBox comboBoxTourenlisteDrucker;
private System.Windows.Forms.Label label24;
private System.Windows.Forms.GroupBox groupBoxPfade;
private System.Windows.Forms.TabPage tabPageExpedit;
}
}

View File

@ -1,4 +1,5 @@
using Deckungsbeitrag.Properties;
using DatenDB;
using Deckungsbeitrag.Properties;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@ -21,6 +22,7 @@ namespace Deckungsbeitrag
string fixmietkosten = ConfigurationManager.AppSettings["FixMiete"];
public bool changed = false;
public bool validating = true;
private Benutzer benutzer;
public FormEinstellung()
{
@ -35,12 +37,15 @@ namespace Deckungsbeitrag
}
else
{
if (x.GetType() == typeof(FormExpedit))
if (x.GetType() == typeof(Benutzer))
{
foreach(Control ctr in this.Controls)
this.benutzer = (Benutzer)x;
if (benutzer.Rolle == BenutzerRolle.Expedit)
{
if (ctr.Name.Contains("Drucker") || ctr.Name.Contains("Speichern") || ctr.Name.Contains("Abbrechen")) ctr.Enabled = true;
else ctr.Enabled = false;
foreach (TabPage tP in this.tabControlEinstellung.TabPages)
{
if (!tP.Name.Contains("Drucker")) this.tabControlEinstellung.Controls.Remove(tP);
}
}
}
}
@ -53,6 +58,7 @@ namespace Deckungsbeitrag
{
this.comboBoxEtikettDrucker.Items.Add(printer);
this.comboBoxSWSDrucker.Items.Add(printer);
this.comboBoxTourenlisteDrucker.Items.Add(printer);
}
@ -74,8 +80,10 @@ namespace Deckungsbeitrag
// Ab hier wurde bereits auf UserSettingsManager umgebaut.
this.comboBoxEtikettDrucker.SelectedText = _settings.DruckerEtikett;
this.comboBoxTourenlisteDrucker.SelectedText = _settings.DruckerTourenListe;
this.comboBoxSWSDrucker.SelectedText = _settings.DruckerSWS;
this.numericUpDownSWSKopien.Value = _settings.CopiesSWS;
foreach (Button btn in this.groupBoxFarben.Controls.OfType<Button>())
@ -108,11 +116,8 @@ namespace Deckungsbeitrag
if (this.comboBoxEtikettDrucker.SelectedItem != null) _settings.DruckerEtikett = this.comboBoxEtikettDrucker.SelectedItem.ToString();
if (this.comboBoxSWSDrucker.SelectedItem != null) { _settings.DruckerSWS = this.comboBoxSWSDrucker.SelectedItem.ToString(); _settings.CopiesSWS = this.numericUpDownSWSKopien.Value; }
if (this.comboBoxTourenlisteDrucker.SelectedItem != null) _settings.DruckerTourenListe = this.comboBoxTourenlisteDrucker.ToString();
//Settings.Default.ZAnzahl = (int)this.numUpDownAnzahl.Value;
//Settings.Default.Save();
_settings.Save();
}

View File

@ -39,7 +39,6 @@ namespace Deckungsbeitrag
public List<Auftrag> sonderlist;
public List<Auftrag> geschaeftlist;
int beforeedit = 0;
int? neuecontclean = null;
int? altecontclean = null;
Timer timer1 = new Timer(); // Timer für Nachwäsche
Timer timer2 = new Timer(); // Timer für Refresh Auftragliste
@ -372,7 +371,7 @@ namespace Deckungsbeitrag
}
private void buttonEinstellung_Click(object sender, EventArgs e)
{
FormEinstellung einstellung = new FormEinstellung(this);
FormEinstellung einstellung = new FormEinstellung(this.benutzer);
einstellung.ShowDialog();
}
private void buttonSuchen_Click(object sender, EventArgs e)
@ -682,7 +681,6 @@ namespace Deckungsbeitrag
{
this.auftrag = _auftrag;
this.kunde = Kunde.GetKunde(null, this.auftrag.KundeID, null);
this.neuecontclean = null;
Load_Etikett_GroupBox();
this.artikelListe = KundeArtikel.GetList(kunde.KundeID.ToString());
@ -830,8 +828,8 @@ namespace Deckungsbeitrag
return;
case DialogResult.Yes:
{
this.auftrag.ContainerClean = (int)neuecontclean;
neuecontclean = null;
//this.auftrag.ContainerClean = (int)neuecontclean;
//neuecontclean = null;
//this.auftrag.Liefertag = dTPLiefertag.Value;
//WENN BEARBEITET UND AUSGEDRUCKT WIRD GEDRUCKT VERÄNDERT UND ERSTELLT IST URSPRUNGSDATUM
this.auftrag.Gedruckt = DateTime.Now;
@ -853,8 +851,8 @@ namespace Deckungsbeitrag
break;
case DialogResult.No:
{
this.auftrag.ContainerClean = (int)neuecontclean;
neuecontclean = null;
//this.auftrag.ContainerClean = (int)neuecontclean;
//neuecontclean = null;
//this.auftrag.Liefertag = dTPLiefertag.Value;
//WENN BEARBEITET UND NICHT GEDRUCKT WIRD ERSTELLT VERÄNDERT UND GEDRUCKT IST URSPRUNGSDATUM
this.auftrag.Erstellt = DateTime.Now;

View File

@ -102,9 +102,12 @@ namespace Deckungsbeitrag
this.labelStatistik1 = new System.Windows.Forms.Label();
this.groupBoxUpdate = new System.Windows.Forms.GroupBox();
this.tableLayoutPanelUpdate = new System.Windows.Forms.TableLayoutPanel();
this.labelSoftwareDatum = new System.Windows.Forms.Label();
this.labelArtikelDatum = new System.Windows.Forms.Label();
this.label16 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.labelKundenDatum = new System.Windows.Forms.Label();
this.groupBoxAuftrag = new System.Windows.Forms.GroupBox();
this.objectListViewAuftrag = new BrightIdeasSoftware.ObjectListView();
this.rBAufAbruf = new System.Windows.Forms.RadioButton();
@ -119,9 +122,6 @@ namespace Deckungsbeitrag
this.textBoxScannTest = new System.Windows.Forms.TextBox();
this.buttonScannTest = new System.Windows.Forms.Button();
this.labelScannTest = new System.Windows.Forms.Label();
this.labelKundenDatum = new System.Windows.Forms.Label();
this.labelArtikelDatum = new System.Windows.Forms.Label();
this.labelSoftwareDatum = new System.Windows.Forms.Label();
this.toolStripMenu.SuspendLayout();
this.panelMain.SuspendLayout();
this.groupBoxContAnz.SuspendLayout();
@ -1275,16 +1275,16 @@ namespace Deckungsbeitrag
this.groupBoxUpdate.Controls.Add(this.tableLayoutPanelUpdate);
this.groupBoxUpdate.Location = new System.Drawing.Point(8, 573);
this.groupBoxUpdate.Name = "groupBoxUpdate";
this.groupBoxUpdate.Size = new System.Drawing.Size(282, 110);
this.groupBoxUpdate.Size = new System.Drawing.Size(593, 110);
this.groupBoxUpdate.TabIndex = 60;
this.groupBoxUpdate.TabStop = false;
this.groupBoxUpdate.Text = "LETZTE UPDATES ODER IMPORTS";
this.groupBoxUpdate.Text = "PFAD FÜR UPDATES ODER IMPORTE";
//
// tableLayoutPanelUpdate
//
this.tableLayoutPanelUpdate.ColumnCount = 2;
this.tableLayoutPanelUpdate.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanelUpdate.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanelUpdate.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 199F));
this.tableLayoutPanelUpdate.Controls.Add(this.labelSoftwareDatum, 1, 2);
this.tableLayoutPanelUpdate.Controls.Add(this.labelArtikelDatum, 1, 1);
this.tableLayoutPanelUpdate.Controls.Add(this.label16, 0, 2);
@ -1298,9 +1298,33 @@ namespace Deckungsbeitrag
this.tableLayoutPanelUpdate.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanelUpdate.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanelUpdate.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanelUpdate.Size = new System.Drawing.Size(276, 91);
this.tableLayoutPanelUpdate.Size = new System.Drawing.Size(587, 91);
this.tableLayoutPanelUpdate.TabIndex = 0;
//
// labelSoftwareDatum
//
this.labelSoftwareDatum.AutoSize = true;
this.labelSoftwareDatum.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelSoftwareDatum.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelSoftwareDatum.Location = new System.Drawing.Point(80, 60);
this.labelSoftwareDatum.Name = "labelSoftwareDatum";
this.labelSoftwareDatum.Size = new System.Drawing.Size(504, 31);
this.labelSoftwareDatum.TabIndex = 7;
this.labelSoftwareDatum.Text = "label17";
this.labelSoftwareDatum.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelArtikelDatum
//
this.labelArtikelDatum.AutoSize = true;
this.labelArtikelDatum.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelArtikelDatum.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelArtikelDatum.Location = new System.Drawing.Point(80, 30);
this.labelArtikelDatum.Name = "labelArtikelDatum";
this.labelArtikelDatum.Size = new System.Drawing.Size(504, 30);
this.labelArtikelDatum.TabIndex = 6;
this.labelArtikelDatum.Text = "label15";
this.labelArtikelDatum.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label16
//
this.label16.AutoSize = true;
@ -1337,6 +1361,18 @@ namespace Deckungsbeitrag
this.label3.Text = "Kunden:";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelKundenDatum
//
this.labelKundenDatum.AutoSize = true;
this.labelKundenDatum.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelKundenDatum.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelKundenDatum.Location = new System.Drawing.Point(80, 0);
this.labelKundenDatum.Name = "labelKundenDatum";
this.labelKundenDatum.Size = new System.Drawing.Size(504, 30);
this.labelKundenDatum.TabIndex = 5;
this.labelKundenDatum.Text = "label7";
this.labelKundenDatum.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// groupBoxAuftrag
//
this.groupBoxAuftrag.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
@ -1547,42 +1583,6 @@ namespace Deckungsbeitrag
this.labelScannTest.Text = "label1";
this.labelScannTest.Visible = false;
//
// labelKundenDatum
//
this.labelKundenDatum.AutoSize = true;
this.labelKundenDatum.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelKundenDatum.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelKundenDatum.Location = new System.Drawing.Point(80, 0);
this.labelKundenDatum.Name = "labelKundenDatum";
this.labelKundenDatum.Size = new System.Drawing.Size(193, 30);
this.labelKundenDatum.TabIndex = 5;
this.labelKundenDatum.Text = "label7";
this.labelKundenDatum.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelArtikelDatum
//
this.labelArtikelDatum.AutoSize = true;
this.labelArtikelDatum.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelArtikelDatum.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelArtikelDatum.Location = new System.Drawing.Point(80, 30);
this.labelArtikelDatum.Name = "labelArtikelDatum";
this.labelArtikelDatum.Size = new System.Drawing.Size(193, 30);
this.labelArtikelDatum.TabIndex = 6;
this.labelArtikelDatum.Text = "label15";
this.labelArtikelDatum.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelSoftwareDatum
//
this.labelSoftwareDatum.AutoSize = true;
this.labelSoftwareDatum.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelSoftwareDatum.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelSoftwareDatum.Location = new System.Drawing.Point(80, 60);
this.labelSoftwareDatum.Name = "labelSoftwareDatum";
this.labelSoftwareDatum.Size = new System.Drawing.Size(193, 31);
this.labelSoftwareDatum.TabIndex = 7;
this.labelSoftwareDatum.Text = "label17";
this.labelSoftwareDatum.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// FormMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

View File

@ -67,7 +67,7 @@ namespace Deckungsbeitrag
{
case BenutzerRolle.Verwaltung:
this.toolStripDB.Enabled = this.toolStripButtonImport.Enabled = this.tSBExpedit.Enabled = false;
this.groupBoxUpdate.Visible = this.toolStripDB.Visible = this.toolStripButtonImport.Visible = this.tSBExpedit.Enabled = false;
this.toolStripDB.Visible = this.toolStripButtonImport.Visible = this.tSBExpedit.Enabled = false;
break;
case BenutzerRolle.Fahrer:
@ -91,7 +91,6 @@ namespace Deckungsbeitrag
}
break;
case BenutzerRolle.Admin:
this.groupBoxUpdate.Visible = false;
break;
case BenutzerRolle.Waschstrasse:
this.toolStripDB.Enabled = this.toolStripButtonImport.Enabled = this.tSBBenutzerVW.Enabled = this.tSBAufgabeVW.Enabled = this.tSBExpedit.Enabled = false;
@ -125,9 +124,9 @@ namespace Deckungsbeitrag
this.panelMain.Width = this.Width - this.toolStripMenu.Right - 20;
this.panelMain.Location = new Point(this.toolStripMenu.Right, 0);
this.Text += Assembly.GetExecutingAssembly().GetName().Version.ToString();
this.labelKundenDatum.Text = Settings.Default.LastKundeUpdate.ToShortDateString() == "01.01.0001" ? string.Empty : Settings.Default.LastKundeUpdate.ToShortDateString();
this.labelSoftwareDatum.Text = Settings.Default.LastSoftwareUpdate.ToShortDateString() == "01.01.0001" ? string.Empty : Settings.Default.LastSoftwareUpdate.ToShortDateString();
this.labelArtikelDatum.Text = Settings.Default.LastArtikelUpdate.ToShortDateString() == "01.01.0001" ? string.Empty : Settings.Default.LastArtikelUpdate.ToShortDateString();
this.labelKundenDatum.Text = @"N:\TECHNIK\Software\Wirl-Verwaltung\Listen\Kundenstammblatt.csv";
this.labelSoftwareDatum.Text = @"N:\TECHNIK\Software\Wirl-Verwaltung\Setup\SetupVerwaltung*.msi";
this.labelArtikelDatum.Text = @"N:\TECHNIK\Software\Wirl-Verwaltung\Listen\Artikelkurzliste.csv";
GetStatistik();
GetSaison();
@ -1015,7 +1014,7 @@ namespace Deckungsbeitrag
}
private void GetStatistik()
{
string[] statistik = { "Container gewaschen:", "Container abgeschlossen:", " Container abgeholt:", "Kunden gewaschen:", "Kunden abgeschlossen:", "Kunden abgeholt:" };
string[] statistik = { "Container gewaschen:", "Container abgeschlossen:", "Container abgeholt:", "Kunden gewaschen:", "Kunden abgeschlossen:", "Kunden abgeholt:" };
List<Auftrag> auftraglist = Auftrag.GetAuftragStatsListToday(this.dateTimePicker1.Value.Date);
for (int i = 1; i <= statistik.Length; i++)

View File

@ -4,10 +4,13 @@ using HarfBuzzSharp;
using Npgsql;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace DatenDB
@ -70,7 +73,8 @@ namespace DatenDB
private const string TABLE = "kundenverwaltung.auftrag";
public const string ASPECTS = "FahrerID,AufgabeID,KundeID,ZusatzInfo,Wann,Gedruckt,Erledigt,Erstellt von,Erstellt Am";
static bool isExpedit = false;
public Auftrag()
public event PropertyChangedEventHandler PropertyChanged;
public Auftrag()
{
}
#region async Tasks
@ -304,6 +308,43 @@ namespace DatenDB
return result;
}
private bool FindAuftragStatus(int? auftragid, AuftragStatus status)
{
if (!auftragid.HasValue) return false;
NpgsqlConnection conn = null;
NpgsqlCommand cmd = null;
try
{
conn = new NpgsqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
conn.Open();
cmd = new NpgsqlCommand(@"
SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END
FROM kundenverwaltung.auftrag_status
WHERE auftrag_id = @AuftragId AND auftrag_status = @Status", conn);
cmd.Parameters.AddWithValue("AuftragId", auftragid.Value);
cmd.Parameters.AddWithValue("Status", (int)status);
int result = (int)cmd.ExecuteScalar();
return result > 0;
}
catch (Exception)
{
throw;
}
finally
{
if (cmd != null) cmd.Dispose();
if (conn != null && conn.State == ConnectionState.Open)
{
conn.Close();
conn.Dispose();
}
}
}
public (bool Gefunden, int auftragID) FindeAuftrag(bool exakt)
{
@ -452,15 +493,30 @@ namespace DatenDB
[OLVColumn("sauber", DisplayIndex = 4, TextAlign = System.Windows.Forms.HorizontalAlignment.Center)]
public int ContainerClean { get; set; }
/// <summary>
/// SPALTE 6 - Der Status wird angezeigt.
/// </summary>
/// <summary>
/// SPALTE 6 - Der Status wird angezeigt.
/// </summary>
private AuftragStatus _status;
[OLVColumn("Status", DisplayIndex = 5)]
public AuftragStatus Status { get; set; }
public AuftragStatus Status
{
get => _status;
set
{
if (_status == value) return;
/// <summary>
/// SPALTE 7 - Der Auftragtyp wird angezeigt.
/// </summary>
_status = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Status)));
if (!FindAuftragStatus(this.AuftragID, Status))
SpeichereStatus(); // Automatisches Speichern
}
}
/// <summary>
/// SPALTE 7 - Der Auftragtyp wird angezeigt.
/// </summary>
[OLVColumn("Typ", IsVisible = true, DisplayIndex = 6)]
public AuftragTyp Typ { get; set; }
@ -622,6 +678,41 @@ namespace DatenDB
public AbteilungsStatus Abteilungen { get; set; }
#endregion
private void SpeichereStatus()
{
var conn = new NpgsqlConnection(ConfigurationManager.AppSettings["ConnectionString"]); // Pro Task!
try
{
conn.Open();
int auftragStatusID = 0;
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = conn;
command.CommandText = "select nextval('kundenverwaltung.auftrag_status_seq')";
auftragStatusID = (int)(long)command.ExecuteScalar();
command.CommandText = $"INSERT INTO kundenverwaltung.auftrag_status(auftrag_status_id, auftrag_id, benutzer_id, auftrag_status, status_changed) VALUES (:p0, :p1, :p2, :p3, :p4)";
command.Parameters.AddWithValue("p0", auftragStatusID);
command.Parameters.AddWithValue("p1", this.AuftragID);
command.Parameters.AddWithValue("p2", Program.benutzer == null ? (object)DBNull.Value : Program.benutzer.BenutzerID);
command.Parameters.AddWithValue("p3", (int)_status);
command.Parameters.AddWithValue("p4", DateTime.Now);
command.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
conn.Dispose();
}
}
public int[] Save()
{
@ -680,4 +771,7 @@ namespace DatenDB
}
}
//INSTALL-REMINDER: Change Status in DB-Auftrag von 7 auf 6
//INSTALL-REMINDER: Change Status in DB-Auftrag von 7 auf 6
//INSTALL-REMINDER: Tabelle Auftrag_Status muss in DB erstellt werden.
//CHANGES: Wenn AuftragStatus geändert wird, wird in der DB gesucht ob bereits ein Eintrag mit AuftragID und Status übereinstimmt. Wenn ja wird ignoriert, sonst wird ein Eintrag erstellt.
//CHANGES: Abfragen müssen versucht werden wenn Einträge existieren. (Wieviele Container wurden pro Tag gewaschen?, etc.)

28
AppStarter/AppStarter.cs Normal file
View File

@ -0,0 +1,28 @@
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.Diagnostics;
using System.IO;
using System.Runtime.Remoting.Contexts;
namespace AppStarter
{
[RunInstaller(true)]
public class AppStarterInstaller : Installer
{
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
string appPath = Path.Combine(
@"C:\Program Files (x86)\Kilian Wirl GmbH\Verwaltung",
"Deckungsbeitrag.exe"); // Deine Haupt-App
if (File.Exists(appPath))
{
Process.Start(appPath);
}
}
}
}

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{30FAD621-D1A4-45A4-B5BC-52B9B5D8A540}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>AppStarter</RootNamespace>
<AssemblyName>AppStarter</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AppStarter.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -0,0 +1,33 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("AppStarter")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AppStarter")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("30fad621-d1a4-45a4-b5bc-52b9b5d8a540")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -27,6 +27,7 @@ namespace Deckungsbeitrag
{
public static ImageList imagelist = new ImageList();
public static string userid;
public static Benutzer benutzer = new Benutzer();
public static bool Artikelliste_Importiert = false;
public static bool Kundenliste_Importiert = false;
public static bool Software_Updated = false;
@ -42,19 +43,19 @@ namespace Deckungsbeitrag
{
userid = ConfigurationManager.AppSettings["ConnectionString"].Split(';')[0];
userid = userid.Split('=')[1];
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Screen[] screens = Screen.AllScreens;
timer = new System.Timers.Timer();
timer.Interval = 1000;
timer.Elapsed += Timer_Elapsed;
timer.Start();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Screen[] screens = Screen.AllScreens;
Cursor.Current = Cursors.WaitCursor;
// Check, Install und Update wenn Update vorhanden.
if (CheckAndInstallUpdate())
{
MessageBox.Show("Update wurde erfolgreich durchgeführt.", "UPDATE INFO",MessageBoxButtons.OK, MessageBoxIcon.Information);
MessageBox.Show("Update wurde erfolgreich durchgeführt.\nStarte das Programm über den Desktop neu.", "UPDATE INFO",MessageBoxButtons.OK, MessageBoxIcon.Information);
Software_Updated = true;
Settings.Default.LastSoftwareUpdate = DateTime.Now;
return;
@ -77,8 +78,40 @@ namespace Deckungsbeitrag
if (userid.StartsWith("ms") | userid.StartsWith("ps"))
{
if (userid.Contains("wstrasse")) Application.Run(new FormAufleger(userid));
else Application.Run(new FormFehlmengeCount(userid));
switch (userid)
{
case var s when s.Contains("wstrasse"):
benutzer = Benutzer.GetBenutzer(null, 4);
Application.Run(new FormAufleger(userid));
break;
case var s when s.Contains("frottee"):
if (userid.Contains("01")) benutzer = Benutzer.GetBenutzer(null, 10);
if (userid.Contains("02")) benutzer = Benutzer.GetBenutzer(null, 17);
Application.Run(new FormFehlmengeCount(userid));
break;
case var s when s.Contains("kleinteile"):
if (userid.Contains("01")) benutzer = Benutzer.GetBenutzer(null, 11);
if (userid.Contains("02")) benutzer = Benutzer.GetBenutzer(null, 11);
Application.Run(new FormFehlmengeCount(userid));
break;
case var s when s.Contains("grossteile"):
if (userid.Contains("01")) benutzer = Benutzer.GetBenutzer(null, 9);
if (userid.Contains("02")) benutzer = Benutzer.GetBenutzer(null, 9);
Application.Run(new FormFehlmengeCount(userid));
break;
case var s when s.Contains("spannleintuch"):
benutzer = Benutzer.GetBenutzer(null, 22);
Application.Run(new FormFehlmengeCount(userid));
break;
default:
break;
}
if (userid.Contains("wstrasse"))
{
benutzer = Benutzer.GetBenutzer(null, 4);
Application.Run(new FormAufleger(userid));
}
else Application.Run(new FormFehlmengeCount(userid));
}
else
{
@ -88,6 +121,7 @@ namespace Deckungsbeitrag
FormLogin loginForm = new FormLogin();
if (loginForm.ShowDialog() == DialogResult.OK)
{
benutzer = loginForm.Person;
// Switch on BenutzerRolle für Weiterleitung zum richtigen Screen
switch (loginForm.Person.Rolle)
{

View File

@ -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.7.0")]
[assembly: AssemblyFileVersion("1.0.7.0")]
[assembly: AssemblyVersion("1.0.7.4")]
[assembly: AssemblyFileVersion("1.0.7.4")]

View File

@ -787,7 +787,7 @@
{
"CustomAction"
{
"{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_361CBAC1329945C3B59EDDE91B890C89"
"{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_F327D87C7F334F77B67654D04DF5F77F"
{
"Name" = "8:Primäre Ausgabe from Verwaltung (Active)"
"Condition" = "8:"
@ -797,9 +797,9 @@
"Arguments" = "8:"
"EntryPoint" = "8:"
"Sequence" = "3:1"
"Identifier" = "8:_21EB0CCF_0F46_48D6_888C_4906CAEEBE87"
"Identifier" = "8:_3CDDA993_216B_4B6C_8C57_2A49BFD979B5"
"InstallerClass" = "11:TRUE"
"CustomActionData" = "8:/showreadme=\"1\""
"CustomActionData" = "8:"
}
}
"DefaultFeature"
@ -1881,15 +1881,15 @@
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:SetupVerwaltung"
"ProductCode" = "8:{DC8D6CEE-94A5-4EAA-8E27-52202560DDCF}"
"PackageCode" = "8:{74761092-68D1-48CE-8BF6-0C2CEED75CEC}"
"ProductCode" = "8:{062D8297-D2E9-4A1D-87EF-121D7B996FC6}"
"PackageCode" = "8:{C0097167-765D-44AA-A5C5-45F3AA144265}"
"UpgradeCode" = "8:{2DC7CE56-8D1C-42EB-B326-2E887EBB7F5A}"
"AspNetVersion" = "8:"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:FALSE"
"ProductVersion" = "8:1.0.70"
"ProductVersion" = "8:1.0.74"
"Manufacturer" = "8:Kilian Wirl GmbH"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"

View File

@ -8,6 +8,7 @@ public class UserSettingsManager
#region Speicher-Properties
public string DruckerSWS { get; set; } = "";
public string DruckerEtikett { get; set; } = "";
public string DruckerTourenListe { get; set; } = "";
public decimal CopiesSWS { get; set; } = 0;
public Color Hintergrund { get; set; } = Color.Black;
public Color Beladeband { get; set; } = Color.Yellow;
@ -50,6 +51,7 @@ public class UserSettingsManager
{
DruckerSWS = loadedSettings.DruckerSWS;
DruckerEtikett = loadedSettings.DruckerEtikett;
DruckerTourenListe = loadedSettings.DruckerTourenListe;
CopiesSWS = loadedSettings.CopiesSWS;
Hintergrund = loadedSettings.Hintergrund;
Beladeband = loadedSettings.Beladeband;

View File

@ -372,9 +372,6 @@
<Compile Include="AA-Klassen\Saison.cs" />
<Compile Include="AA-Klassen\Tour.cs" />
<Compile Include="AA-Klassen\WSFach.cs" />
<Compile Include="AA-Klassen\AppStarter.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Config.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />

View File

@ -1,5 +1,5 @@
=====================================
NEUIGKEITEN - Version 1.0.7.0
NEUIGKEITEN - Version 1.0.7.4
=====================================
Build-Info:
@ -99,5 +99,5 @@ Build-Info:
- 🔄 Wenn kunde null dann return. [FormNeuerAuftrag.cs]
- 🔄 Wenn Nachwäsche oder Müllwäsche alle Artikel anzeigen. [FormFehlmengeCount.cs]
Installation: 25.02.2026 08:36
Installation: 25.02.2026 16:59
=====================================