ReadMe-Änderungen für bessere Lesbarkeit von Usern/Kevin. DatenLaden bei NeuerAuftrag von Fahrer adaptiert.
This commit is contained in:
parent
197797672f
commit
dbfd17bad3
39
AA-Forms/CustomMessageBox.Designer.cs
generated
Normal file
39
AA-Forms/CustomMessageBox.Designer.cs
generated
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
namespace Deckungsbeitrag.AA_Forms
|
||||||
|
{
|
||||||
|
partial class CustomMessageBox
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||||
|
this.Text = "CustomMessageBox";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
20
AA-Forms/CustomMessageBox.cs
Normal file
20
AA-Forms/CustomMessageBox.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace Deckungsbeitrag.AA_Forms
|
||||||
|
{
|
||||||
|
public partial class CustomMessageBox : Form
|
||||||
|
{
|
||||||
|
public CustomMessageBox()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -511,7 +511,6 @@ namespace Deckungsbeitrag
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//PRINT PAGE FÜR DRUCK
|
|
||||||
private void FormAuftragDetail_Shown(object sender, EventArgs e)
|
private void FormAuftragDetail_Shown(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
fb = new UCFeedback(benutzer);
|
fb = new UCFeedback(benutzer);
|
||||||
@ -554,18 +553,18 @@ namespace Deckungsbeitrag
|
|||||||
|
|
||||||
ObjectListView olv = (ObjectListView)sender;
|
ObjectListView olv = (ObjectListView)sender;
|
||||||
AuftragArtikel auftragArtikel = (AuftragArtikel)e.RowObject;
|
AuftragArtikel auftragArtikel = (AuftragArtikel)e.RowObject;
|
||||||
if (e.Column.Text == "Anzahl") diff = (int)e.Value - ((int)e.NewValue);
|
int newValue = (int)e.NewValue;
|
||||||
if (diff > 0) Tosave = true;
|
|
||||||
|
if (this.auftrag.Typ == AuftragTyp.SOLL_Verminderung) if (newValue > 0) newValue = newValue * -1;
|
||||||
|
if (e.Column.Text == "Anzahl") diff = (int)e.Value - (newValue);
|
||||||
|
if (diff != 0) Tosave = true;
|
||||||
|
|
||||||
if (auftragDictionary.TryGetValue((int)auftragArtikel.AuftragArtikelID, out int val))
|
if (auftragDictionary.TryGetValue((int)auftragArtikel.AuftragArtikelID, out int val))
|
||||||
{
|
{
|
||||||
val = (int)e.NewValue;
|
val = newValue;
|
||||||
if ((int)e.NewValue == 0) e.ListViewItem.Checked = true;
|
if (newValue == 0) e.ListViewItem.Checked = true;
|
||||||
}
|
}
|
||||||
else auftragDictionary.Add((int)auftragArtikel.AuftragArtikelID, (int)e.NewValue);
|
else auftragDictionary.Add((int)auftragArtikel.AuftragArtikelID, newValue);
|
||||||
|
|
||||||
//auftragArtikel.Anzahl = (int)e.NewValue;
|
|
||||||
//auftragArtikel.Save();
|
|
||||||
|
|
||||||
KundeArtikel kndart = KundeArtikel.GetKundeArtikelVonArtikelID(this.kunde.KundeID, auftragArtikel.ArtikelID);
|
KundeArtikel kndart = KundeArtikel.GetKundeArtikelVonArtikelID(this.kunde.KundeID, auftragArtikel.ArtikelID);
|
||||||
|
|
||||||
@ -574,12 +573,7 @@ namespace Deckungsbeitrag
|
|||||||
int stand = kndart.Stand;
|
int stand = kndart.Stand;
|
||||||
int korrektur = kndart.Korrektur;
|
int korrektur = kndart.Korrektur;
|
||||||
KorrigiereBestand(diff, ref reklamation, ref fehlmenge, ref stand, ref korrektur);
|
KorrigiereBestand(diff, ref reklamation, ref fehlmenge, ref stand, ref korrektur);
|
||||||
//kndart.Reklamation = reklamation;
|
|
||||||
//kndart.Fehlmenge = fehlmenge;
|
|
||||||
//kndart.Stand = stand;
|
|
||||||
//kndart.Korrektur = korrektur;
|
|
||||||
|
|
||||||
//kndart.Save();
|
|
||||||
if (dictionary.TryGetValue((int)kndart.KundeArtikelID, out int[] value))
|
if (dictionary.TryGetValue((int)kndart.KundeArtikelID, out int[] value))
|
||||||
{
|
{
|
||||||
for (int i = 0; i < value.Length; i++)
|
for (int i = 0; i < value.Length; i++)
|
||||||
@ -598,7 +592,7 @@ namespace Deckungsbeitrag
|
|||||||
bestand = new int[4];
|
bestand = new int[4];
|
||||||
if (diff == 0)
|
if (diff == 0)
|
||||||
return;
|
return;
|
||||||
if (diff < 0) { bestand[2] = diff; stand += diff; return; }
|
if (diff < 0 || this.auftrag.Typ == AuftragTyp.SOLL_Erhoehung) { bestand[2] = diff; stand += diff; return; }
|
||||||
|
|
||||||
int rest = diff * 1;
|
int rest = diff * 1;
|
||||||
|
|
||||||
@ -667,3 +661,4 @@ namespace Deckungsbeitrag
|
|||||||
//CHANGES: 3. Abschließen nur möglich wenn alle Artikel auf 0 sind (Checked) und gespeichert wurde.
|
//CHANGES: 3. Abschließen nur möglich wenn alle Artikel auf 0 sind (Checked) und gespeichert wurde.
|
||||||
//CHANGES: Bei Druckabbruch wird die geänderte Zahl NICHT zurückgesetzt. (Das muss händisch erfolgen)
|
//CHANGES: Bei Druckabbruch wird die geänderte Zahl NICHT zurückgesetzt. (Das muss händisch erfolgen)
|
||||||
//CHANGES: Wenn die Zahlen zurückgesetzt werden sollen, muss AuftragDetail geschlossen werden.
|
//CHANGES: Wenn die Zahlen zurückgesetzt werden sollen, muss AuftragDetail geschlossen werden.
|
||||||
|
//CHANGES: Wenn die reduzierte Anzahl bei SOLL-Verminderung nicht negativ ist, wird diese negativ gemacht. So wird ein möglicher Fehler ausgebessert.
|
||||||
@ -161,7 +161,23 @@ namespace Deckungsbeitrag
|
|||||||
#region Button_Click-Events
|
#region Button_Click-Events
|
||||||
private async void ButtonNeuerAuftrag_Click(object sender, EventArgs e)
|
private async void ButtonNeuerAuftrag_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
FormNeuerAuftrag neuerAuftrag = new FormNeuerAuftrag(benutzer, this.letzterLiefertag, AuftragTyp.Standart);
|
DialogResult result = DialogResult.Cancel;
|
||||||
|
AuftragTyp? auftragTyp = null;
|
||||||
|
result = MessageBox.Show("Welchen Auftrag möchtest du erstellen?\n\n[JA] => Geschäft\n[NEIN] => Standart", "FRAGE", MessageBoxButtons.YesNoCancel);
|
||||||
|
|
||||||
|
switch (result)
|
||||||
|
{
|
||||||
|
case DialogResult.Yes:
|
||||||
|
auftragTyp = AuftragTyp.Geschäft;
|
||||||
|
break;
|
||||||
|
case DialogResult.No:
|
||||||
|
auftragTyp = AuftragTyp.Standart;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FormNeuerAuftrag neuerAuftrag = new FormNeuerAuftrag(benutzer, this.letzterLiefertag, auftragTyp);
|
||||||
if (neuerAuftrag.ShowDialog() == DialogResult.OK)
|
if (neuerAuftrag.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
this.letzterLiefertag = neuerAuftrag.letzterLiefertag;
|
this.letzterLiefertag = neuerAuftrag.letzterLiefertag;
|
||||||
@ -1319,3 +1335,4 @@ namespace Deckungsbeitrag
|
|||||||
//CHANGES: Im Tab Rampe wird bei DoppelClick der Auftrag als gewaschen markiert und im Tab Aufträge heute sichtbar.
|
//CHANGES: Im Tab Rampe wird bei DoppelClick der Auftrag als gewaschen markiert und im Tab Aufträge heute sichtbar.
|
||||||
//CHANGES: Wenn ein anderer Fahrer ausgewählt wird, wird auch die Priority laut dem Fahrer geändert.
|
//CHANGES: Wenn ein anderer Fahrer ausgewählt wird, wird auch die Priority laut dem Fahrer geändert.
|
||||||
//CHANGES: NumericUpDown markiert automatisch den Inhalt. Erleichtert die Eingabe.
|
//CHANGES: NumericUpDown markiert automatisch den Inhalt. Erleichtert die Eingabe.
|
||||||
|
//CHANGES: Wenn Expedit NeuerAuftrag aufruft wird gefragt welcher Auftrag gewünscht ist. Geschäftkunde = Geschäft (Notwendig bis ausschließlich Fahrer die Standardaufträge erstellen)
|
||||||
3
AA-Forms/FormKundeVW.designer.cs
generated
3
AA-Forms/FormKundeVW.designer.cs
generated
@ -369,6 +369,7 @@ namespace Deckungsbeitrag
|
|||||||
this.buttonSWS_Drucken.TabIndex = 36;
|
this.buttonSWS_Drucken.TabIndex = 36;
|
||||||
this.buttonSWS_Drucken.Text = "SWS-Drucken";
|
this.buttonSWS_Drucken.Text = "SWS-Drucken";
|
||||||
this.buttonSWS_Drucken.UseVisualStyleBackColor = false;
|
this.buttonSWS_Drucken.UseVisualStyleBackColor = false;
|
||||||
|
this.buttonSWS_Drucken.Visible = false;
|
||||||
this.buttonSWS_Drucken.Click += new System.EventHandler(this.ButtonDrucken_Click);
|
this.buttonSWS_Drucken.Click += new System.EventHandler(this.ButtonDrucken_Click);
|
||||||
//
|
//
|
||||||
// pictureBoxEntwurf
|
// pictureBoxEntwurf
|
||||||
@ -401,7 +402,7 @@ namespace Deckungsbeitrag
|
|||||||
this.tabPageUmsatz.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
this.tabPageUmsatz.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||||
this.tabPageUmsatz.Name = "tabPageUmsatz";
|
this.tabPageUmsatz.Name = "tabPageUmsatz";
|
||||||
this.tabPageUmsatz.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
this.tabPageUmsatz.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||||
this.tabPageUmsatz.Size = new System.Drawing.Size(925, 692);
|
this.tabPageUmsatz.Size = new System.Drawing.Size(1001, 734);
|
||||||
this.tabPageUmsatz.TabIndex = 0;
|
this.tabPageUmsatz.TabIndex = 0;
|
||||||
this.tabPageUmsatz.Text = "Umsatz";
|
this.tabPageUmsatz.Text = "Umsatz";
|
||||||
//
|
//
|
||||||
|
|||||||
2
AA-Forms/FormNeuerAuftrag.Designer.cs
generated
2
AA-Forms/FormNeuerAuftrag.Designer.cs
generated
@ -388,7 +388,7 @@ namespace Deckungsbeitrag
|
|||||||
this.textBoxText.Size = new System.Drawing.Size(518, 459);
|
this.textBoxText.Size = new System.Drawing.Size(518, 459);
|
||||||
this.textBoxText.TabIndex = 48;
|
this.textBoxText.TabIndex = 48;
|
||||||
this.textBoxText.Visible = false;
|
this.textBoxText.Visible = false;
|
||||||
this.textBoxText.VisibleChanged += new System.EventHandler(this.textBoxText_VisibleChanged);
|
this.textBoxText.VisibleChanged += new System.EventHandler(this.TextBoxText_VisibleChanged);
|
||||||
//
|
//
|
||||||
// pictureBoxAddArtikel
|
// pictureBoxAddArtikel
|
||||||
//
|
//
|
||||||
|
|||||||
@ -64,7 +64,7 @@ namespace Deckungsbeitrag
|
|||||||
{
|
{
|
||||||
this.auftragtyp = auftragTyp;
|
this.auftragtyp = auftragTyp;
|
||||||
}
|
}
|
||||||
public FormNeuerAuftrag(Benutzer benutzer, DateTime? letzterLiefertag, AuftragTyp auftragTyp) : this(benutzer, auftragTyp)
|
public FormNeuerAuftrag(Benutzer benutzer, DateTime? letzterLiefertag, AuftragTyp? auftragTyp) : this(benutzer, auftragTyp)
|
||||||
{
|
{
|
||||||
this.letzterLiefertag = letzterLiefertag;
|
this.letzterLiefertag = letzterLiefertag;
|
||||||
}
|
}
|
||||||
@ -85,17 +85,8 @@ namespace Deckungsbeitrag
|
|||||||
if (this.auftragtyp == AuftragTyp.Regelmäßig) {kndService = "Geschäft"; labelLiefertag.Text = "Erster Liefertag:"; }
|
if (this.auftragtyp == AuftragTyp.Regelmäßig) {kndService = "Geschäft"; labelLiefertag.Text = "Erster Liefertag:"; }
|
||||||
if (this.benutzer.Rolle == BenutzerRolle.Fahrer) kndService = "Geschäft";
|
if (this.benutzer.Rolle == BenutzerRolle.Fahrer) kndService = "Geschäft";
|
||||||
|
|
||||||
// Kunde laden
|
if (this.auftragtyp == null || this.auftragtyp == AuftragTyp.Geschäft) SonderDatenLaden(kndService);
|
||||||
this.kunde = Funktionen.Open_List(kndService);
|
else DatenLaden(kndService);
|
||||||
if (this.kunde == null) { CloseForm(DialogResult.Cancel); return; }
|
|
||||||
this.textBoxKndNr.Text = kunde.KundeNummer;
|
|
||||||
this.kundeName = this.textBoxKundeName.Text = this.kunde.Suchtext ?? this.kunde.KundeName;
|
|
||||||
|
|
||||||
this.textBoxKundeName.Enabled = false;
|
|
||||||
this.textBoxKndNr.Enabled = false;
|
|
||||||
|
|
||||||
if (this.auftragtyp == null || this.auftragtyp == AuftragTyp.Geschäft) SonderDatenLaden();
|
|
||||||
else DatenLaden();
|
|
||||||
}
|
}
|
||||||
private async void FormNeuerAuftrag_HelpButtonClicked(object sender, CancelEventArgs e)
|
private async void FormNeuerAuftrag_HelpButtonClicked(object sender, CancelEventArgs e)
|
||||||
{
|
{
|
||||||
@ -104,16 +95,22 @@ namespace Deckungsbeitrag
|
|||||||
ZeigeOnboarding();
|
ZeigeOnboarding();
|
||||||
|
|
||||||
}
|
}
|
||||||
private void SonderDatenLaden()
|
private void SonderDatenLaden(string kndService)
|
||||||
{
|
{
|
||||||
|
// Kunde laden
|
||||||
|
if (!GetKunde(kndService)) { CloseForm(DialogResult.Cancel); return; }
|
||||||
|
|
||||||
// ComboBox Typ & Fahrer wird mit Items geladen
|
// ComboBox Typ & Fahrer wird mit Items geladen
|
||||||
ComboBoxTyp_Load();
|
ComboBoxTyp_Load();
|
||||||
ComboBoxFahrer_Load();
|
ComboBoxFahrer_Load();
|
||||||
}
|
}
|
||||||
private void DatenLaden()
|
private void DatenLaden(string kndService)
|
||||||
{
|
{
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
|
|
||||||
|
// Kunde laden
|
||||||
|
if (!GetKunde(kndService)) { CloseForm(DialogResult.Cancel); return; }
|
||||||
|
|
||||||
// Containeranzahl laden
|
// Containeranzahl laden
|
||||||
if (int.TryParse(Interaction.InputBox($"Wieviel Container hast du beim Kunde {kundeName} abgeholt?", "CONTAINERANZAHL", "1"), out int i)) this.textBoxCont.Text = i.ToString();
|
if (int.TryParse(Interaction.InputBox($"Wieviel Container hast du beim Kunde {kundeName} abgeholt?", "CONTAINERANZAHL", "1"), out int i)) this.textBoxCont.Text = i.ToString();
|
||||||
else { CloseForm(DialogResult.Cancel); return; }
|
else { CloseForm(DialogResult.Cancel); return; }
|
||||||
@ -127,6 +124,19 @@ namespace Deckungsbeitrag
|
|||||||
|
|
||||||
this.ResumeLayout();
|
this.ResumeLayout();
|
||||||
}
|
}
|
||||||
|
private bool GetKunde(string kndService)
|
||||||
|
{
|
||||||
|
this.kunde = Funktionen.Open_List(kndService);
|
||||||
|
if (this.kunde == null) { CloseForm(DialogResult.Cancel); return false; }
|
||||||
|
|
||||||
|
this.textBoxKndNr.Text = kunde.KundeNummer;
|
||||||
|
this.kundeName = this.textBoxKundeName.Text = this.kunde.Suchtext ?? this.kunde.KundeName;
|
||||||
|
|
||||||
|
// Textboxen mit Kundedaten füllen
|
||||||
|
this.textBoxKundeName.Enabled = false;
|
||||||
|
this.textBoxKndNr.Enabled = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
private void GetNextLiefertag()
|
private void GetNextLiefertag()
|
||||||
{
|
{
|
||||||
DateTime nextLiefertag = DateTime.Today;
|
DateTime nextLiefertag = DateTime.Today;
|
||||||
@ -226,11 +236,12 @@ namespace Deckungsbeitrag
|
|||||||
List<Tour> tourliste = Tour.GetSaisonListe(saison);
|
List<Tour> tourliste = Tour.GetSaisonListe(saison);
|
||||||
this.comboBoxFahrer.DataSource = tourliste;
|
this.comboBoxFahrer.DataSource = tourliste;
|
||||||
this.comboBoxFahrer.DisplayMember = "Bezeichnung";
|
this.comboBoxFahrer.DisplayMember = "Bezeichnung";
|
||||||
|
this.comboBoxFahrer.ValueMember = "TourID";
|
||||||
this.comboBoxFahrer.DropDownWidth = GetDropDownWidth(this.comboBoxFahrer);
|
this.comboBoxFahrer.DropDownWidth = GetDropDownWidth(this.comboBoxFahrer);
|
||||||
// ComboBox-Auswahl vordefinieren.
|
// ComboBox-Auswahl vordefinieren.
|
||||||
if (this.benutzer.Rolle == BenutzerRolle.Fahrer)
|
if (this.benutzer.Rolle == BenutzerRolle.Fahrer)
|
||||||
{
|
{
|
||||||
this.comboBoxFahrer.SelectedItem = tour;
|
this.comboBoxFahrer.SelectedValue = tour.TourID;
|
||||||
}
|
}
|
||||||
else this.comboBoxFahrer.SelectedIndex = -1;
|
else this.comboBoxFahrer.SelectedIndex = -1;
|
||||||
this.comboBoxFahrer.Validating += ComboBoxFahrer_Validating;
|
this.comboBoxFahrer.Validating += ComboBoxFahrer_Validating;
|
||||||
@ -326,7 +337,7 @@ namespace Deckungsbeitrag
|
|||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (index > 0) if (MessageBox.Show("Bitte nur ganze Zahlen eingeben.", "ACHTUNG", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel) return;
|
if (index > 0) if (MessageBox.Show("Bitte nur ganze Zahlen eingeben.", "ACHTUNG", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel) return;
|
||||||
anzahl = Interaction.InputBox($"Wieviel Stück sollen geliefert werden?\n\nStück:", "Artikelanzahl", "");
|
anzahl = Interaction.InputBox($"Wieviel Stück sollen geliefert oder eingezogen werden?\n\nStück:", "Artikelanzahl", "");
|
||||||
index++;
|
index++;
|
||||||
} while (!int.TryParse(anzahl, out artAnzahl));
|
} while (!int.TryParse(anzahl, out artAnzahl));
|
||||||
|
|
||||||
@ -449,6 +460,8 @@ namespace Deckungsbeitrag
|
|||||||
return;
|
return;
|
||||||
case AuftragTyp.Regelmäßig: SpezialAuftragSpeichern(Auftrag);
|
case AuftragTyp.Regelmäßig: SpezialAuftragSpeichern(Auftrag);
|
||||||
return;
|
return;
|
||||||
|
case AuftragTyp.IST_Erhoehung: SpezialAuftragSpeichern(Auftrag);
|
||||||
|
return;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -579,7 +592,7 @@ namespace Deckungsbeitrag
|
|||||||
Rhythmus = this.comboBoxRhythmus.Enabled ? (RegRhythmen)this.comboBoxRhythmus.SelectedItem : RegRhythmen.Unbekannt, // Wenn Rhythmus ist nicht Enabled dann RegRhythmus Unbekannt.
|
Rhythmus = this.comboBoxRhythmus.Enabled ? (RegRhythmen)this.comboBoxRhythmus.SelectedItem : RegRhythmen.Unbekannt, // Wenn Rhythmus ist nicht Enabled dann RegRhythmus Unbekannt.
|
||||||
TourID = selectedTour?.TourID, // Wenn Tour hinterlegt dann TourID speichern.
|
TourID = selectedTour?.TourID, // Wenn Tour hinterlegt dann TourID speichern.
|
||||||
ArbeiterID = selectedTour?.BenutzerID, // Wenn Tour hinterlegt dann BenutzerID der Tour speichern. KANN AUCH null SEIN!!
|
ArbeiterID = selectedTour?.BenutzerID, // Wenn Tour hinterlegt dann BenutzerID der Tour speichern. KANN AUCH null SEIN!!
|
||||||
Priority = selectedTour.Priority, // Wenn Tour hinterlegt dann Priority der Tour speichern.
|
Priority = selectedTour == null ? Priority.None : selectedTour.Priority, // Wenn Tour hinterlegt dann Priority der Tour speichern.
|
||||||
ZusatzInfo = zusatz,
|
ZusatzInfo = zusatz,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -677,7 +690,7 @@ namespace Deckungsbeitrag
|
|||||||
if (this.benutzer.Rolle == BenutzerRolle.Fahrer)
|
if (this.benutzer.Rolle == BenutzerRolle.Fahrer)
|
||||||
{
|
{
|
||||||
this.Auftrag = null;
|
this.Auftrag = null;
|
||||||
DatenLaden();
|
DatenLaden(string.Empty);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -739,7 +752,7 @@ namespace Deckungsbeitrag
|
|||||||
//this.Close(); // Onboarding beendet
|
//this.Close(); // Onboarding beendet
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void textBoxText_VisibleChanged(object sender, EventArgs e)
|
private void TextBoxText_VisibleChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (textBoxText.Visible)
|
if (textBoxText.Visible)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
</sectionGroup>
|
</sectionGroup>
|
||||||
</configSections>
|
</configSections>
|
||||||
<appSettings>
|
<appSettings>
|
||||||
<add key="ConnectionString" value="user id=msfrottee01;password=5KsA4BSf4P;host=10.10.10.1;port=5432;database=Wirl_DB_17012023;Timeout=15" />
|
<add key="ConnectionString" value="user id=postgres;password=Ki985941Wi;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" />
|
||||||
|
|||||||
@ -43,6 +43,7 @@ if (Test-Path $assemblyInfoPath) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Dateien durchsuchen
|
# Dateien durchsuchen
|
||||||
|
$changesList = @()
|
||||||
$openTodos = @()
|
$openTodos = @()
|
||||||
$doneTodos = @()
|
$doneTodos = @()
|
||||||
$installReminders = @()
|
$installReminders = @()
|
||||||
@ -74,10 +75,39 @@ foreach ($file in $csFiles) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# CHANGES erkennen
|
# CHANGES erkennen
|
||||||
$changeMatches = [regex]::Matches($content, '//\s*CHANGES\s*:?\s*(.+?)(?=\r?\n|//|$)', 'IgnoreCase')
|
$pattern = '//\s*CHANGES\s*:?\s*(.+?)(?=\r?\n|//|$)'
|
||||||
|
|
||||||
|
$changeMatches = [regex]::Matches($content, $pattern, 'IgnoreCase')
|
||||||
foreach ($match in $changeMatches) {
|
foreach ($match in $changeMatches) {
|
||||||
$txt = $match.Groups[1].Value.Trim()
|
$txt = $match.Groups[1].Value.Trim()
|
||||||
if ($txt) { $changes += "✨ $txt [$($file.Name)]" }
|
if ($txt) {
|
||||||
|
$changesList += [PSCustomObject]@{
|
||||||
|
Datei = if ($file.Name.StartsWith("Form")) {
|
||||||
|
$file.Name.Substring(4)
|
||||||
|
} else {$file.Name}
|
||||||
|
Text = $txt
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$markdownLines = @()
|
||||||
|
|
||||||
|
# Nach Class gruppieren, Class‑Namen sortieren, dann pro Gruppe Text sortieren
|
||||||
|
$changesList |
|
||||||
|
Group-Object -Property Datei |
|
||||||
|
Sort-Object -Property Name |
|
||||||
|
ForEach-Object {
|
||||||
|
$datei = $_.Name
|
||||||
|
|
||||||
|
$markdownLines += "## $datei ##"
|
||||||
|
$markdownLines += ""
|
||||||
|
|
||||||
|
$_.Group |
|
||||||
|
Sort-Object -Property Text |
|
||||||
|
ForEach-Object {
|
||||||
|
$markdownLines += "- ✨ $($_.Text)"
|
||||||
|
}
|
||||||
|
|
||||||
|
$markdownLines += ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,7 +115,6 @@ foreach ($file in $csFiles) {
|
|||||||
$openTodos = $openTodos | Sort-Object | Get-Unique
|
$openTodos = $openTodos | Sort-Object | Get-Unique
|
||||||
$doneTodos = $doneTodos | Sort-Object | Get-Unique
|
$doneTodos = $doneTodos | Sort-Object | Get-Unique
|
||||||
$installReminders = $installReminders | Sort-Object | Get-Unique
|
$installReminders = $installReminders | Sort-Object | Get-Unique
|
||||||
$changes = $changes | Sort-Object | Get-Unique
|
|
||||||
|
|
||||||
# Formatierte Abschnitte
|
# Formatierte Abschnitte
|
||||||
$doneSection = if ($doneTodos.Count -gt 0) {
|
$doneSection = if ($doneTodos.Count -gt 0) {
|
||||||
@ -109,9 +138,9 @@ $installSection = if ($installReminders.Count -gt 0) {
|
|||||||
@("Keine Install-Reminder vorhanden ✅")
|
@("Keine Install-Reminder vorhanden ✅")
|
||||||
}
|
}
|
||||||
|
|
||||||
$changesSection = if ($changes.Count -gt 0) {
|
$changesSection = if ($markdownLines.Count -gt 0) {
|
||||||
@("=== ✨ CHANGES ($($changes.Count)) ===") +
|
@("=== ✨ CHANGES ($($markdownLines.Count)) ===") +
|
||||||
($changes | ForEach-Object { "- $_" })
|
($markdownLines | ForEach-Object { "- $_" })
|
||||||
} else {
|
} else {
|
||||||
@("Keine Changes vorhanden")
|
@("Keine Changes vorhanden")
|
||||||
}
|
}
|
||||||
@ -121,6 +150,7 @@ $doneText = $doneSection -join "`r`n"
|
|||||||
$openText = $openSection -join "`r`n"
|
$openText = $openSection -join "`r`n"
|
||||||
$installText = $installSection -join "`r`n"
|
$installText = $installSection -join "`r`n"
|
||||||
$changesText = $changesSection -join "`r`n"
|
$changesText = $changesSection -join "`r`n"
|
||||||
|
$markdown = $markdownLines -join "`n"
|
||||||
|
|
||||||
$custom = "Release Build"
|
$custom = "Release Build"
|
||||||
$buildDate = Get-Date -Format "dd.MM.yyyy HH:mm"
|
$buildDate = Get-Date -Format "dd.MM.yyyy HH:mm"
|
||||||
@ -136,9 +166,10 @@ Build-Info:
|
|||||||
- Erledigte TODOs: $($doneTodos.Count)
|
- Erledigte TODOs: $($doneTodos.Count)
|
||||||
- Offene TODOs: $($openTodos.Count)
|
- Offene TODOs: $($openTodos.Count)
|
||||||
- Install-Reminders: $($installReminders.Count)
|
- Install-Reminders: $($installReminders.Count)
|
||||||
- Changes: $($changes.Count)
|
- Changes: $($changesList.Count)
|
||||||
|
|
||||||
$changesText
|
=== ✨ CHANGES ($($changesList.Count)) ===
|
||||||
|
$markdown
|
||||||
|
|
||||||
$installText
|
$installText
|
||||||
|
|
||||||
|
|||||||
@ -157,6 +157,12 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="AA-Forms\CustomMessageBox.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="AA-Forms\CustomMessageBox.Designer.cs">
|
||||||
|
<DependentUpon>CustomMessageBox.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="AA-Forms\FehlmengeChart.cs">
|
<Compile Include="AA-Forms\FehlmengeChart.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|||||||
@ -7,38 +7,64 @@ Build-Info:
|
|||||||
- Erledigte TODOs: 6
|
- Erledigte TODOs: 6
|
||||||
- Offene TODOs: 24
|
- Offene TODOs: 24
|
||||||
- Install-Reminders: 1
|
- Install-Reminders: 1
|
||||||
- Changes: 26
|
- Changes: 28
|
||||||
|
|
||||||
|
=== ✨ CHANGES (28) ===
|
||||||
|
## ArtikelVW.cs ##
|
||||||
|
|
||||||
|
- ✨ Reklamation als Spalte hinzugefügt und Anzeigen implementiert. Sowohl bei KundeArtikel als auch bei NW_Artikel.
|
||||||
|
|
||||||
|
## AuftragDetail.cs ##
|
||||||
|
|
||||||
|
- ✨ 1. Es wird ab sofort nur ein Button zum Speichern und Abschließen bereitgestellt. System entscheidet was getan wird.
|
||||||
|
- ✨ 2. Änderungen werden nur gespeichert wenn ein Etikett gedruckt wurde.
|
||||||
|
- ✨ 3. Abschließen nur möglich wenn alle Artikel auf 0 sind (Checked) und gespeichert wurde.
|
||||||
|
- ✨ Bei Druckabbruch wird die geänderte Zahl NICHT zurückgesetzt. (Das muss händisch erfolgen)
|
||||||
|
- ✨ Wenn die reduzierte Anzahl bei SOLL-Verminderung nicht negativ ist, wird diese negativ gemacht. So wird ein möglicher Fehler ausgebessert.
|
||||||
|
- ✨ Wenn die Zahlen zurückgesetzt werden sollen, muss AuftragDetail geschlossen werden.
|
||||||
|
|
||||||
|
## Expedit.cs ##
|
||||||
|
|
||||||
|
- ✨ Im Tab Rampe wird bei DoppelClick der Auftrag als gewaschen markiert und im Tab Aufträge heute sichtbar.
|
||||||
|
- ✨ Im Tab Vorbereitet wird beim Ändern der sauberen Containeranzahl gefragt ob die Etiketten neu gedruckt werden sollen.
|
||||||
|
- ✨ NumericUpDown markiert automatisch den Inhalt. Erleichtert die Eingabe.
|
||||||
|
- ✨ Wenn ein anderer Fahrer ausgewählt wird, wird auch die Priority laut dem Fahrer geändert.
|
||||||
|
- ✨ Wenn Expedit NeuerAuftrag aufruft wird gefragt welcher Auftrag gewünscht ist. Geschäftkunde = Geschäft (Notwendig bis ausschließlich Fahrer die Standardaufträge erstellen)
|
||||||
|
|
||||||
|
## Main.cs ##
|
||||||
|
|
||||||
|
- ✨ Artikelliste und Kundenliste werden automatisch importiert wenn vorhanden.
|
||||||
|
- ✨ Fahrer können abgeholte Aufträge erstellen und ausgelieferte Aufträge markieren.
|
||||||
|
|
||||||
|
## NeuerAuftrag.cs ##
|
||||||
|
|
||||||
|
- ✨ Auftrag LAUFZETTEL (ehem. Einmalig) läuft als Sonderauftrag also Tab-Sonderaufträge.
|
||||||
|
- ✨ Der Text des LAUFZETTELS wird bei Expedit im InfoFeld angezeigt.
|
||||||
|
- ✨ DropDownWidth wird an das größte Item angepasst.
|
||||||
|
- ✨ Es kann ab jetzt Morgen als Liefertag gewählt werden.
|
||||||
|
|
||||||
|
## Tourenplanung.cs ##
|
||||||
|
|
||||||
|
- ✨ Es kann nach der Kontrolle der Lieferrhythmus geändert werden. Dazu muss auch die Anzahl der Liefertage gewählt werden.
|
||||||
|
- ✨ Es können nur so viele Clone erstellt werden wie Liefertag im Lieferrhythmus hinterlegt sind.
|
||||||
|
- ✨ Es wir kontrolliert ob der gewählte Liefertag zum hinterlegten Lieferrhythmus passt.
|
||||||
|
- ✨ TabText wird mit Benutzerliste verglichen. Wenn ein passender gefunden wird Tag hinterlegt.
|
||||||
|
|
||||||
|
## UCInventur.cs ##
|
||||||
|
|
||||||
|
- ✨ Beim nachträglichen Ändern des Standes wird jetzt die Schwund-Spalte neu berechnet. Damit sollte die Berechnung wieder stimmen.
|
||||||
|
- ✨ Es wird jetzt nur ein Button "Speichern/Freigeben" bereitgestellt und dort dann gefragt ob speichern oder freigeben. Hier wird auch zwischen den Rollen unterschieden.
|
||||||
|
|
||||||
|
## UCTabPageLKW.cs ##
|
||||||
|
|
||||||
|
- ✨ Innerhalb eines Tages kann die Reihenfolge angepasst werden.
|
||||||
|
- ✨ Lieferrhythmen können angepasst und übernommen werden.
|
||||||
|
- ✨ Speichern und Laden wurde angepasst, JSON enthält jetzt pro Tag eine Kundenliste.
|
||||||
|
- ✨ Wenn der Lieferrhythmus geändert wird, werden KundenControls an falschen Tagen gelöscht.
|
||||||
|
|
||||||
=== ✨ CHANGES (26) ===
|
|
||||||
- ✨ 1. Es wird ab sofort nur ein Button zum Speichern und Abschließen bereitgestellt. System entscheidet was getan wird. [FormAuftragDetail.cs]
|
|
||||||
- ✨ 2. Änderungen werden nur gespeichert wenn ein Etikett gedruckt wurde. [FormAuftragDetail.cs]
|
|
||||||
- ✨ 3. Abschließen nur möglich wenn alle Artikel auf 0 sind (Checked) und gespeichert wurde. [FormAuftragDetail.cs]
|
|
||||||
- ✨ Artikelliste und Kundenliste werden automatisch importiert wenn vorhanden. [FormMain.cs]
|
|
||||||
- ✨ Auftrag LAUFZETTEL (ehem. Einmalig) läuft als Sonderauftrag also Tab-Sonderaufträge. [FormNeuerAuftrag.cs]
|
|
||||||
- ✨ Bei Druckabbruch wird die geänderte Zahl NICHT zurückgesetzt. (Das muss händisch erfolgen) [FormAuftragDetail.cs]
|
|
||||||
- ✨ Beim nachträglichen Ändern des Standes wird jetzt die Schwund-Spalte neu berechnet. Damit sollte die Berechnung wieder stimmen. [UCInventur.cs]
|
|
||||||
- ✨ Der Text des LAUFZETTELS wird bei Expedit im InfoFeld angezeigt. [FormNeuerAuftrag.cs]
|
|
||||||
- ✨ DropDownWidth wird an das größte Item angepasst. [FormNeuerAuftrag.cs]
|
|
||||||
- ✨ Es kann ab jetzt Morgen als Liefertag gewählt werden. [FormNeuerAuftrag.cs]
|
|
||||||
- ✨ Es kann nach der Kontrolle der Lieferrhythmus geändert werden. Dazu muss auch die Anzahl der Liefertage gewählt werden. [FormTourenplanung.cs]
|
|
||||||
- ✨ Es können nur so viele Clone erstellt werden wie Liefertag im Lieferrhythmus hinterlegt sind. [FormTourenplanung.cs]
|
|
||||||
- ✨ Es wir kontrolliert ob der gewählte Liefertag zum hinterlegten Lieferrhythmus passt. [FormTourenplanung.cs]
|
|
||||||
- ✨ Es wird jetzt nur ein Button "Speichern/Freigeben" bereitgestellt und dort dann gefragt ob speichern oder freigeben. Hier wird auch zwischen den Rollen unterschieden. [UCInventur.cs]
|
|
||||||
- ✨ Fahrer können abgeholte Aufträge erstellen und ausgelieferte Aufträge markieren. [FormMain.cs]
|
|
||||||
- ✨ Im Tab Rampe wird bei DoppelClick der Auftrag als gewaschen markiert und im Tab Aufträge heute sichtbar. [FormExpedit.cs]
|
|
||||||
- ✨ Im Tab Vorbereitet wird beim Ändern der sauberen Containeranzahl gefragt ob die Etiketten neu gedruckt werden sollen. [FormExpedit.cs]
|
|
||||||
- ✨ Innerhalb eines Tages kann die Reihenfolge angepasst werden. [UCTabPageLKW.cs]
|
|
||||||
- ✨ Lieferrhythmen können angepasst und übernommen werden. [UCTabPageLKW.cs]
|
|
||||||
- ✨ NumericUpDown markiert automatisch den Inhalt. Erleichtert die Eingabe. [FormExpedit.cs]
|
|
||||||
- ✨ Reklamation als Spalte hinzugefügt und Anzeigen implementiert. Sowohl bei KundeArtikel als auch bei NW_Artikel. [FormArtikelVW.cs]
|
|
||||||
- ✨ Speichern und Laden wurde angepasst, JSON enthält jetzt pro Tag eine Kundenliste. [UCTabPageLKW.cs]
|
|
||||||
- ✨ TabText wird mit Benutzerliste verglichen. Wenn ein passender gefunden wird Tag hinterlegt. [FormTourenplanung.cs]
|
|
||||||
- ✨ Wenn der Lieferrhythmus geändert wird, werden KundenControls an falschen Tagen gelöscht. [UCTabPageLKW.cs]
|
|
||||||
- ✨ Wenn die Zahlen zurückgesetzt werden sollen, muss AuftragDetail geschlossen werden. [FormAuftragDetail.cs]
|
|
||||||
- ✨ Wenn ein anderer Fahrer ausgewählt wird, wird auch die Priority laut dem Fahrer geändert. [FormExpedit.cs]
|
|
||||||
|
|
||||||
=== ⚙️ INSTALL-REMINDER (1) ===
|
=== ⚙️ INSTALL-REMINDER (1) ===
|
||||||
- ⚙️ DB anpassen. (Priority in Auftrag etc.) [Auftrag.cs]
|
- ⚙️ DB anpassen. (Priority in Auftrag etc.) [Auftrag.cs]
|
||||||
|
|
||||||
Installation: 24.04.2026 13:46
|
Installation: 24.04.2026 17:10
|
||||||
=====================================
|
=====================================
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user