Div. Änderungen (NeuerAuftrag, AuftragDetail)
This commit is contained in:
parent
5d3d8fbee5
commit
8fb5ad6cc4
10
AA-Forms/FormAuftragDetail.Designer.cs
generated
10
AA-Forms/FormAuftragDetail.Designer.cs
generated
@ -92,10 +92,10 @@
|
|||||||
this.buttonFertig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
this.buttonFertig.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||||
this.buttonFertig.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.buttonFertig.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.buttonFertig.ForeColor = System.Drawing.Color.Black;
|
this.buttonFertig.ForeColor = System.Drawing.Color.Black;
|
||||||
this.buttonFertig.Location = new System.Drawing.Point(557, 615);
|
this.buttonFertig.Location = new System.Drawing.Point(489, 615);
|
||||||
this.buttonFertig.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.buttonFertig.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
this.buttonFertig.Name = "buttonFertig";
|
this.buttonFertig.Name = "buttonFertig";
|
||||||
this.buttonFertig.Size = new System.Drawing.Size(267, 50);
|
this.buttonFertig.Size = new System.Drawing.Size(300, 50);
|
||||||
this.buttonFertig.TabIndex = 14;
|
this.buttonFertig.TabIndex = 14;
|
||||||
this.buttonFertig.Text = "Speichern/Abschließen";
|
this.buttonFertig.Text = "Speichern/Abschließen";
|
||||||
this.buttonFertig.UseVisualStyleBackColor = false;
|
this.buttonFertig.UseVisualStyleBackColor = false;
|
||||||
@ -109,10 +109,10 @@
|
|||||||
this.buttonAbbrechen.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
this.buttonAbbrechen.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||||
this.buttonAbbrechen.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.buttonAbbrechen.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.buttonAbbrechen.ForeColor = System.Drawing.Color.Black;
|
this.buttonAbbrechen.ForeColor = System.Drawing.Color.Black;
|
||||||
this.buttonAbbrechen.Location = new System.Drawing.Point(830, 615);
|
this.buttonAbbrechen.Location = new System.Drawing.Point(795, 615);
|
||||||
this.buttonAbbrechen.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.buttonAbbrechen.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
this.buttonAbbrechen.Name = "buttonAbbrechen";
|
this.buttonAbbrechen.Name = "buttonAbbrechen";
|
||||||
this.buttonAbbrechen.Size = new System.Drawing.Size(267, 50);
|
this.buttonAbbrechen.Size = new System.Drawing.Size(300, 50);
|
||||||
this.buttonAbbrechen.TabIndex = 0;
|
this.buttonAbbrechen.TabIndex = 0;
|
||||||
this.buttonAbbrechen.Text = "Abbrechen";
|
this.buttonAbbrechen.Text = "Abbrechen";
|
||||||
this.buttonAbbrechen.UseVisualStyleBackColor = false;
|
this.buttonAbbrechen.UseVisualStyleBackColor = false;
|
||||||
@ -364,7 +364,7 @@
|
|||||||
this.oLVArtikel.View = System.Windows.Forms.View.Details;
|
this.oLVArtikel.View = System.Windows.Forms.View.Details;
|
||||||
this.oLVArtikel.CellEditFinished += new BrightIdeasSoftware.CellEditEventHandler(this.oLVArtikel_CellEditFinished);
|
this.oLVArtikel.CellEditFinished += new BrightIdeasSoftware.CellEditEventHandler(this.oLVArtikel_CellEditFinished);
|
||||||
this.oLVArtikel.CellEditStarting += new BrightIdeasSoftware.CellEditEventHandler(this.oLVArtikel_CellEditStarting);
|
this.oLVArtikel.CellEditStarting += new BrightIdeasSoftware.CellEditEventHandler(this.oLVArtikel_CellEditStarting);
|
||||||
this.oLVArtikel.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.oLVArtikel_ItemCheck);
|
this.oLVArtikel.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.OLVArtikel_ItemCheck);
|
||||||
this.oLVArtikel.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.oLVArtikel_ItemChecked);
|
this.oLVArtikel.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.oLVArtikel_ItemChecked);
|
||||||
this.oLVArtikel.SizeChanged += new System.EventHandler(this.oLVArtikel_SizeChanged);
|
this.oLVArtikel.SizeChanged += new System.EventHandler(this.oLVArtikel_SizeChanged);
|
||||||
//
|
//
|
||||||
|
|||||||
@ -21,7 +21,8 @@ namespace Deckungsbeitrag
|
|||||||
{
|
{
|
||||||
public partial class FormAuftragDetail : Form
|
public partial class FormAuftragDetail : Form
|
||||||
{
|
{
|
||||||
private Dictionary<string, int[]> dictionary = new Dictionary<string, int[]>();
|
private Dictionary<int, int[]> dictionary = new Dictionary<int, int[]>();
|
||||||
|
private Dictionary<int, int> auftragDictionary = new Dictionary<int, int>();
|
||||||
public Auftrag auftrag;
|
public Auftrag auftrag;
|
||||||
public Benutzer benutzer;
|
public Benutzer benutzer;
|
||||||
public List<AuftragArtikel> artikelList;
|
public List<AuftragArtikel> artikelList;
|
||||||
@ -197,16 +198,36 @@ namespace Deckungsbeitrag
|
|||||||
|
|
||||||
if (auftrag.Typ == AuftragTyp.Regelmäßig || (auftrag.Typ == AuftragTyp.Inventur & auftrag.Status == AuftragStatus.Herrichten))
|
if (auftrag.Typ == AuftragTyp.Regelmäßig || (auftrag.Typ == AuftragTyp.Inventur & auftrag.Status == AuftragStatus.Herrichten))
|
||||||
{
|
{
|
||||||
foreach (OLVListItem item in this.oLVArtikel.Items)
|
foreach (var kvp in auftragDictionary)
|
||||||
{
|
{
|
||||||
AuftragArtikel art = (AuftragArtikel)item.RowObject;
|
AuftragArtikel aufart = AuftragArtikel.GetArtikel(kvp.Key);
|
||||||
if (item.Checked) art.Erledigt = true;
|
aufart.Anzahl = (int)kvp.Value;
|
||||||
else art.Erledigt = false;
|
if (aufart.Anzahl == 0) aufart.Erledigt = true;
|
||||||
|
else aufart.Erledigt = false;
|
||||||
art.Save();
|
aufart.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//foreach (OLVListItem item in this.oLVArtikel.Items)
|
||||||
|
//{
|
||||||
|
// AuftragArtikel art = (AuftragArtikel)item.RowObject;
|
||||||
|
// if (item.Checked) art.Erledigt = true;
|
||||||
|
// else art.Erledigt = false;
|
||||||
|
|
||||||
|
// art.Save();
|
||||||
|
//}
|
||||||
if (auftrag.Typ == AuftragTyp.Inventur)
|
if (auftrag.Typ == AuftragTyp.Inventur)
|
||||||
{
|
{
|
||||||
|
foreach (var kvp in dictionary)
|
||||||
|
{
|
||||||
|
KundeArtikel kndart = KundeArtikel.GetItem(kvp.Key);
|
||||||
|
|
||||||
|
kndart.Reklamation = kvp.Value[0];
|
||||||
|
kndart.Fehlmenge = kvp.Value[1];
|
||||||
|
kndart.Stand = kvp.Value[2];
|
||||||
|
kndart.Korrektur = kvp.Value[3];
|
||||||
|
|
||||||
|
kndart.Save();
|
||||||
|
}
|
||||||
WriteToCSV(dictionary);
|
WriteToCSV(dictionary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -215,14 +236,14 @@ namespace Deckungsbeitrag
|
|||||||
//SCHMUTZWÄSCHESCHEIN DRUCKEN
|
//SCHMUTZWÄSCHESCHEIN DRUCKEN
|
||||||
private void EtikettDrucken()
|
private void EtikettDrucken()
|
||||||
{
|
{
|
||||||
//DONE: Bestand von allen Artikeln speichern und für Druck vorbereiten.
|
if (MessageBox.Show("Möchtest du JETZT Etiketten für die erfolgten Änderung drucken?", "FRAGE", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||||
//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 (Funktionen.SonderEtikett_Drucken(this.auftrag, dictionary) == DialogResult.OK)
|
||||||
{
|
{
|
||||||
Funktionen.SonderEtikett_Drucken(this.auftrag, dictionary);
|
|
||||||
etikettgedruckt = true;
|
etikettgedruckt = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#region ToSave
|
#region ToSave
|
||||||
@ -264,7 +285,7 @@ namespace Deckungsbeitrag
|
|||||||
}
|
}
|
||||||
|
|
||||||
//WENN LISTVIEW NICHT FOCUSED (FORM.LOAD) TOSAVE BLEIBT FALSE
|
//WENN LISTVIEW NICHT FOCUSED (FORM.LOAD) TOSAVE BLEIBT FALSE
|
||||||
private void oLVArtikel_ItemCheck(object sender, ItemCheckEventArgs e)
|
private void OLVArtikel_ItemCheck(object sender, ItemCheckEventArgs e)
|
||||||
{
|
{
|
||||||
ObjectListView olv = (ObjectListView)sender;
|
ObjectListView olv = (ObjectListView)sender;
|
||||||
if (e.NewValue != e.CurrentValue) { Tosave = true; }
|
if (e.NewValue != e.CurrentValue) { Tosave = true; }
|
||||||
@ -298,7 +319,8 @@ namespace Deckungsbeitrag
|
|||||||
private void buttonFertig_Click(object sender, EventArgs e)
|
private void buttonFertig_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
EtikettDrucken();
|
EtikettDrucken();
|
||||||
if (Tosave) AuftragSpeichern();
|
if (Tosave && etikettgedruckt) AuftragSpeichern();
|
||||||
|
else Toclose = false;
|
||||||
if (Toclose)
|
if (Toclose)
|
||||||
{
|
{
|
||||||
if (int.Parse(this.labelContainer.Text) == 0)
|
if (int.Parse(this.labelContainer.Text) == 0)
|
||||||
@ -386,11 +408,10 @@ namespace Deckungsbeitrag
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Toclose = Tosave = false;
|
Toclose = Tosave = false;
|
||||||
}
|
|
||||||
|
|
||||||
this.DialogResult = DialogResult.OK;
|
this.DialogResult = DialogResult.OK;
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -415,7 +436,7 @@ namespace Deckungsbeitrag
|
|||||||
/// SonderAuftrag in CSV-Liste eintragen. Jede Änderung wird in eine Zeile eingetragen. Rek./NW/Rest
|
/// SonderAuftrag in CSV-Liste eintragen. Jede Änderung wird in eine Zeile eingetragen. Rek./NW/Rest
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="kndart"></param>
|
/// <param name="kndart"></param>
|
||||||
private void WriteToCSV(Dictionary<string, int[]> dictionary)
|
private void WriteToCSV(Dictionary<int, int[]> dictionary)
|
||||||
{
|
{
|
||||||
Kunde _knd = Kunde.GetKunde(null, auftrag.KundeID, null);
|
Kunde _knd = Kunde.GetKunde(null, auftrag.KundeID, null);
|
||||||
Benutzer _user = this.benutzer;
|
Benutzer _user = this.benutzer;
|
||||||
@ -456,7 +477,9 @@ namespace Deckungsbeitrag
|
|||||||
|
|
||||||
foreach (var kvp in dictionary)
|
foreach (var kvp in dictionary)
|
||||||
{
|
{
|
||||||
string artikelKey = kvp.Key; // z.B. "ART1"
|
KundeArtikel kndart = KundeArtikel.GetItem(kvp.Key);
|
||||||
|
Artikel _artikel = Artikel.GetArtikel(null, kndart.ArtikelID);
|
||||||
|
string artikelKey = _artikel.Bezeichnung; // z.B. "ART1"
|
||||||
int[] artbestand = kvp.Value; // z.B. [3, 0, 5]
|
int[] artbestand = kvp.Value; // z.B. [3, 0, 5]
|
||||||
|
|
||||||
int artikelIndex = Array.IndexOf(artikelArray, artikelKey);
|
int artikelIndex = Array.IndexOf(artikelArray, artikelKey);
|
||||||
@ -534,9 +557,15 @@ namespace Deckungsbeitrag
|
|||||||
if (e.Column.Text == "Anzahl") diff = (int)e.Value - ((int)e.NewValue);
|
if (e.Column.Text == "Anzahl") diff = (int)e.Value - ((int)e.NewValue);
|
||||||
if (diff > 0) Tosave = true;
|
if (diff > 0) Tosave = true;
|
||||||
|
|
||||||
auftragArtikel.Anzahl = (int)e.NewValue;
|
if (auftragDictionary.TryGetValue((int)auftragArtikel.AuftragArtikelID, out int val))
|
||||||
auftragArtikel.Save();
|
{
|
||||||
if (auftragArtikel.Anzahl == 0) e.ListViewItem.Checked = true;
|
val = (int)e.NewValue;
|
||||||
|
if ((int)e.NewValue == 0) e.ListViewItem.Checked = true;
|
||||||
|
}
|
||||||
|
else auftragDictionary.Add((int)auftragArtikel.AuftragArtikelID, (int)e.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);
|
||||||
|
|
||||||
@ -545,20 +574,20 @@ 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.Reklamation = reklamation;
|
||||||
kndart.Fehlmenge = fehlmenge;
|
//kndart.Fehlmenge = fehlmenge;
|
||||||
kndart.Stand = stand;
|
//kndart.Stand = stand;
|
||||||
kndart.Korrektur = korrektur;
|
//kndart.Korrektur = korrektur;
|
||||||
|
|
||||||
kndart.Save();
|
//kndart.Save();
|
||||||
if (dictionary.TryGetValue(kndart.ArtikelName, 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++)
|
||||||
{
|
{
|
||||||
value[i] += bestand[i];
|
value[i] += bestand[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else dictionary.Add(kndart.ArtikelName, bestand);
|
else dictionary.Add((int)kndart.KundeArtikelID, bestand);
|
||||||
//WriteToCSV(kndart);
|
//WriteToCSV(kndart);
|
||||||
this.ResumeLayout();
|
this.ResumeLayout();
|
||||||
this.Cursor = Cursors.Default;
|
this.Cursor = Cursors.Default;
|
||||||
@ -624,19 +653,17 @@ namespace Deckungsbeitrag
|
|||||||
{
|
{
|
||||||
if (Tosave)
|
if (Tosave)
|
||||||
{
|
{
|
||||||
if (MessageBox.Show("Möchtest du die Änderungen wirklich verwerfen?", "ÄNDERUNGEN VERWERFEN", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
if (MessageBox.Show("Möchtest du die Änderungen wirklich verwerfen?", "ÄNDERUNGEN VERWERFEN", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
||||||
{
|
{
|
||||||
this.DialogResult = DialogResult.Cancel;
|
e.Cancel = true;
|
||||||
this.Close();
|
return;
|
||||||
}
|
}
|
||||||
else { e.Cancel = true; return; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//DONE: Korrigiere Bestand: Wenn -Zahl dann Stand - Zahl.
|
//CHANGES: 1. Es wird ab sofort nur ein Button zum Speichern und Abschließen bereitgestellt. System entscheidet was getan wird.
|
||||||
//DONE: Speichern etc. durchgehen und adaptieren
|
//CHANGES: 2. Änderungen werden nur gespeichert wenn ein Etikett gedruckt wurde.
|
||||||
//DONE: Feedback Button hinzufügen
|
//CHANGES: 3. Abschließen nur möglich wenn alle Artikel auf 0 sind (Checked) und gespeichert wurde.
|
||||||
//DONE: ComboBox Fahrer und Priorität implementieren
|
//CHANGES: Bei Druckabbruch wird die geänderte Zahl NICHT zurückgesetzt. (Das muss händisch erfolgen)
|
||||||
//DONE: Container schmutzig bearbeitbar machen
|
//CHANGES: Wenn die Zahlen zurückgesetzt werden sollen, muss AuftragDetail geschlossen werden.
|
||||||
@ -600,7 +600,7 @@ namespace Deckungsbeitrag
|
|||||||
conn.Dispose();
|
conn.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (alist.Count == 0) meldung.KeineAufträge();
|
if (alist.Count == 0) { meldung.KeineAufträge(); this.groupBoxAuftrag.Visible = false; }
|
||||||
else Load_OLV(alist); // Load_ListView(alist);
|
else Load_OLV(alist); // Load_ListView(alist);
|
||||||
|
|
||||||
this.objectListViewAuftrag.EndUpdate();
|
this.objectListViewAuftrag.EndUpdate();
|
||||||
|
|||||||
3
AA-Forms/FormNeuerAuftrag.Designer.cs
generated
3
AA-Forms/FormNeuerAuftrag.Designer.cs
generated
@ -364,13 +364,13 @@ namespace Deckungsbeitrag
|
|||||||
//
|
//
|
||||||
// panelRegAuftrag
|
// panelRegAuftrag
|
||||||
//
|
//
|
||||||
this.panelRegAuftrag.Controls.Add(this.textBoxText);
|
|
||||||
this.panelRegAuftrag.Controls.Add(this.pictureBoxAddArtikel);
|
this.panelRegAuftrag.Controls.Add(this.pictureBoxAddArtikel);
|
||||||
this.panelRegAuftrag.Controls.Add(this.label8);
|
this.panelRegAuftrag.Controls.Add(this.label8);
|
||||||
this.panelRegAuftrag.Controls.Add(this.comboBoxArtikel);
|
this.panelRegAuftrag.Controls.Add(this.comboBoxArtikel);
|
||||||
this.panelRegAuftrag.Controls.Add(this.labelText);
|
this.panelRegAuftrag.Controls.Add(this.labelText);
|
||||||
this.panelRegAuftrag.Controls.Add(this.comboBoxRhythmus);
|
this.panelRegAuftrag.Controls.Add(this.comboBoxRhythmus);
|
||||||
this.panelRegAuftrag.Controls.Add(this.fLPArtikel);
|
this.panelRegAuftrag.Controls.Add(this.fLPArtikel);
|
||||||
|
this.panelRegAuftrag.Controls.Add(this.textBoxText);
|
||||||
this.panelRegAuftrag.Enabled = false;
|
this.panelRegAuftrag.Enabled = false;
|
||||||
this.panelRegAuftrag.Location = new System.Drawing.Point(409, -2);
|
this.panelRegAuftrag.Location = new System.Drawing.Point(409, -2);
|
||||||
this.panelRegAuftrag.Margin = new System.Windows.Forms.Padding(4);
|
this.panelRegAuftrag.Margin = new System.Windows.Forms.Padding(4);
|
||||||
@ -423,6 +423,7 @@ namespace Deckungsbeitrag
|
|||||||
this.comboBoxArtikel.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
this.comboBoxArtikel.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||||
this.comboBoxArtikel.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.comboBoxArtikel.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.comboBoxArtikel.FormattingEnabled = true;
|
this.comboBoxArtikel.FormattingEnabled = true;
|
||||||
|
this.comboBoxArtikel.IntegralHeight = false;
|
||||||
this.comboBoxArtikel.Location = new System.Drawing.Point(25, 132);
|
this.comboBoxArtikel.Location = new System.Drawing.Point(25, 132);
|
||||||
this.comboBoxArtikel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.comboBoxArtikel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
this.comboBoxArtikel.Name = "comboBoxArtikel";
|
this.comboBoxArtikel.Name = "comboBoxArtikel";
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using DatenDB;
|
using BrightIdeasSoftware;
|
||||||
|
using DatenDB;
|
||||||
using Deckungsbeitrag.AA_Forms;
|
using Deckungsbeitrag.AA_Forms;
|
||||||
using Deckungsbeitrag.AA_Klassen;
|
using Deckungsbeitrag.AA_Klassen;
|
||||||
using Deckungsbeitrag.UserControls;
|
using Deckungsbeitrag.UserControls;
|
||||||
@ -84,9 +85,17 @@ 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";
|
||||||
|
|
||||||
if (this.auftragtyp == null || this.auftragtyp == AuftragTyp.Geschäft) SonderDatenLaden(kndService);
|
// Kunde laden
|
||||||
else DatenLaden(kndService);
|
this.kunde = Funktionen.Open_List(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)
|
||||||
{
|
{
|
||||||
@ -95,32 +104,15 @@ namespace Deckungsbeitrag
|
|||||||
ZeigeOnboarding();
|
ZeigeOnboarding();
|
||||||
|
|
||||||
}
|
}
|
||||||
private void SonderDatenLaden(string kndService)
|
private void SonderDatenLaden()
|
||||||
{
|
{
|
||||||
// Kunde laden
|
|
||||||
this.kunde = Funktionen.Open_List(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;
|
|
||||||
|
|
||||||
// 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(string kndService)
|
private void DatenLaden()
|
||||||
{
|
{
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
// Kunde laden
|
|
||||||
this.kunde = Funktionen.Open_List(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;
|
|
||||||
|
|
||||||
// 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();
|
||||||
@ -200,10 +192,6 @@ namespace Deckungsbeitrag
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region ComboBox-Events
|
#region ComboBox-Events
|
||||||
/// <summary>
|
|
||||||
/// ComboBox wird mit AuftragTyp geladen.
|
|
||||||
/// SelectedItem wird gewählt. Wenn Kunde Service ist Geschäft dann Geschäft, sonst Prop. auftragtyp.
|
|
||||||
/// </summary>
|
|
||||||
private void ComboBoxTyp_Load()
|
private void ComboBoxTyp_Load()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -212,6 +200,7 @@ namespace Deckungsbeitrag
|
|||||||
this.comboBoxTyp.SelectedValueChanged -= ComboBoxTyp_SelectedValueChanged;
|
this.comboBoxTyp.SelectedValueChanged -= ComboBoxTyp_SelectedValueChanged;
|
||||||
// Items werden von AuftragTyp geladen.
|
// Items werden von AuftragTyp geladen.
|
||||||
this.comboBoxTyp.DataSource = Enum.GetValues(typeof(AuftragTyp));
|
this.comboBoxTyp.DataSource = Enum.GetValues(typeof(AuftragTyp));
|
||||||
|
this.comboBoxTyp.DropDownWidth = GetDropDownWidth(this.comboBoxTyp);
|
||||||
// Wenn der Kunde ein Geschäftskunde ist, wird AuftragTyp.Geschäft ausgewählt. Andernfalls wird der AuftragTyp aus dem Konstruktor gewählt.
|
// Wenn der Kunde ein Geschäftskunde ist, wird AuftragTyp.Geschäft ausgewählt. Andernfalls wird der AuftragTyp aus dem Konstruktor gewählt.
|
||||||
this.comboBoxTyp.SelectedValueChanged += ComboBoxTyp_SelectedValueChanged;
|
this.comboBoxTyp.SelectedValueChanged += ComboBoxTyp_SelectedValueChanged;
|
||||||
|
|
||||||
@ -230,11 +219,6 @@ namespace Deckungsbeitrag
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ComboBox wird mit Fahrerliste geladen.
|
|
||||||
/// Wenn Prop. tour ist leer wird Benutzername angezeigt, sonst Tourbezeichnung.
|
|
||||||
/// </summary>
|
|
||||||
private void ComboBoxFahrer_Load()
|
private void ComboBoxFahrer_Load()
|
||||||
{
|
{
|
||||||
Saison saison = Saison.GetAktivSaison();
|
Saison saison = Saison.GetAktivSaison();
|
||||||
@ -242,7 +226,7 @@ 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.DropDownWidth = GetDropDownWidth(this.comboBoxFahrer);
|
||||||
// ComboBox-Auswahl vordefinieren.
|
// ComboBox-Auswahl vordefinieren.
|
||||||
if (this.benutzer.Rolle == BenutzerRolle.Fahrer)
|
if (this.benutzer.Rolle == BenutzerRolle.Fahrer)
|
||||||
{
|
{
|
||||||
@ -267,53 +251,64 @@ namespace Deckungsbeitrag
|
|||||||
switch ((AuftragTyp)comboBoxTyp.SelectedValue)
|
switch ((AuftragTyp)comboBoxTyp.SelectedValue)
|
||||||
{
|
{
|
||||||
case AuftragTyp.Geschäft: // Wird derzeit wenig verwendet da die Auswahl in DatenLaden nach KundenService erfolgt.
|
case AuftragTyp.Geschäft: // Wird derzeit wenig verwendet da die Auswahl in DatenLaden nach KundenService erfolgt.
|
||||||
|
this.pictureBoxPlus.Enabled = this.pictureBoxMinus.Enabled = this.textBoxCont.Enabled = true;
|
||||||
this.Width = textBoxKundeName.Right + 30;
|
this.Width = textBoxKundeName.Right + 30;
|
||||||
this.Height = 470;
|
this.Height = 470;
|
||||||
break;
|
break;
|
||||||
case AuftragTyp.Standart:
|
case AuftragTyp.Standart:
|
||||||
|
this.pictureBoxPlus.Enabled = this.pictureBoxMinus.Enabled = this.textBoxCont.Enabled = true;
|
||||||
this.Width = textBoxKundeName.Right + 30;
|
this.Width = textBoxKundeName.Right + 30;
|
||||||
this.Height = 470;
|
this.Height = 470;
|
||||||
break;
|
break;
|
||||||
case AuftragTyp.Inventur:
|
case AuftragTyp.Inventur:
|
||||||
|
this.textBoxText.Visible = false;
|
||||||
this.DialogResult = DialogResult.Abort;
|
this.DialogResult = DialogResult.Abort;
|
||||||
this.Close();
|
this.Close();
|
||||||
break;
|
break;
|
||||||
case AuftragTyp.SOLL_Erhoehung:
|
case AuftragTyp.SOLL_Erhoehung:
|
||||||
if (this.kunde == null) return;
|
if (this.kunde == null) return;
|
||||||
|
this.textBoxText.Visible = false;
|
||||||
this.panelRegAuftrag.Enabled = this.panelRegAuftrag.Visible = true;
|
this.panelRegAuftrag.Enabled = this.panelRegAuftrag.Visible = true;
|
||||||
this.pictureBoxPlus.Enabled = this.pictureBoxMinus.Enabled = this.textBoxCont.Enabled = false;
|
this.pictureBoxPlus.Enabled = this.pictureBoxMinus.Enabled = this.textBoxCont.Enabled = false;
|
||||||
|
this.labelText.Text = "Rhythmus:";
|
||||||
this.Width = this.panelRegAuftrag.Right + 25;
|
this.Width = this.panelRegAuftrag.Right + 25;
|
||||||
this.Height = 470;
|
this.Height = 470;
|
||||||
break;
|
break;
|
||||||
case AuftragTyp.SOLL_Verminderung:
|
case AuftragTyp.SOLL_Verminderung:
|
||||||
if (this.kunde == null) return;
|
if (this.kunde == null) return;
|
||||||
|
this.textBoxText.Visible = false;
|
||||||
this.panelRegAuftrag.Enabled = this.panelRegAuftrag.Visible = true;
|
this.panelRegAuftrag.Enabled = this.panelRegAuftrag.Visible = true;
|
||||||
this.pictureBoxPlus.Enabled = this.pictureBoxMinus.Enabled = this.textBoxCont.Enabled = false;
|
this.pictureBoxPlus.Enabled = this.pictureBoxMinus.Enabled = this.textBoxCont.Enabled = false;
|
||||||
|
this.labelText.Text = "Rhythmus:";
|
||||||
this.Width = this.panelRegAuftrag.Right + 25;
|
this.Width = this.panelRegAuftrag.Right + 25;
|
||||||
this.Height = 470;
|
this.Height = 470;
|
||||||
break;
|
break;
|
||||||
case AuftragTyp.Regelmäßig:
|
case AuftragTyp.Regelmäßig:
|
||||||
|
this.textBoxText.Visible = false;
|
||||||
this.panelRegAuftrag.Enabled = this.panelRegAuftrag.Visible = true;
|
this.panelRegAuftrag.Enabled = this.panelRegAuftrag.Visible = true;
|
||||||
this.pictureBoxPlus.Enabled = this.pictureBoxMinus.Enabled = this.textBoxCont.Enabled = false;
|
this.pictureBoxPlus.Enabled = this.pictureBoxMinus.Enabled = this.textBoxCont.Enabled = false;
|
||||||
|
this.labelText.Text = "Rhythmus:";
|
||||||
this.Width = this.panelRegAuftrag.Right + 25;
|
this.Width = this.panelRegAuftrag.Right + 25;
|
||||||
this.Height = 470;
|
this.Height = 470;
|
||||||
break;
|
break;
|
||||||
case AuftragTyp.AufAbruf:
|
case AuftragTyp.AufAbruf:
|
||||||
|
this.pictureBoxPlus.Enabled = this.pictureBoxMinus.Enabled = this.textBoxCont.Enabled = true;
|
||||||
this.Width = textBoxKundeName.Right + 30;
|
this.Width = textBoxKundeName.Right + 30;
|
||||||
this.Height = 470;
|
this.Height = 470;
|
||||||
break;
|
break;
|
||||||
case AuftragTyp.Laufzettel:
|
case AuftragTyp.Laufzettel:
|
||||||
this.panelRegAuftrag.Enabled = this.panelRegAuftrag.Visible = true;
|
this.panelRegAuftrag.Enabled = this.panelRegAuftrag.Visible = true;
|
||||||
this.textBoxText.Visible = true;
|
this.textBoxText.Visible = true;
|
||||||
|
this.pictureBoxPlus.Enabled = this.pictureBoxMinus.Enabled = this.textBoxCont.Enabled = false;
|
||||||
this.labelText.Text = "Laufzetteltext:";
|
this.labelText.Text = "Laufzetteltext:";
|
||||||
this.Width = this.panelRegAuftrag.Right + 25;
|
this.Width = this.panelRegAuftrag.Right + 25;
|
||||||
this.Height = 470;
|
this.Height = 470;
|
||||||
|
this.textBoxText.BringToFront();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
PanelRegAuftrag_EnabledChanged(this.panelRegAuftrag, null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -354,7 +349,6 @@ namespace Deckungsbeitrag
|
|||||||
if (string.IsNullOrWhiteSpace(eingabe)) e.Cancel = true;
|
if (string.IsNullOrWhiteSpace(eingabe)) e.Cancel = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ComboBox Artikel & Rhythmus wird geladen.
|
/// ComboBox Artikel & Rhythmus wird geladen.
|
||||||
@ -375,31 +369,34 @@ namespace Deckungsbeitrag
|
|||||||
List<Artikel> artikelListe;
|
List<Artikel> artikelListe;
|
||||||
if ((AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.Regelmäßig) artikelListe = Artikel.GetRegArtikelList();
|
if ((AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.Regelmäßig) artikelListe = Artikel.GetRegArtikelList();
|
||||||
else artikelListe = Artikel.GetArtikelList("Alle");
|
else artikelListe = Artikel.GetArtikelList("Alle");
|
||||||
|
if (artikelListe.Count == 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Auswahl für den gewählten Kunden nicht verfügbar.", "FEHLER", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
this.comboBoxTyp.SelectedIndex = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
comboBoxArtikel.DataSource = artikelListe;
|
comboBoxArtikel.DataSource = artikelListe;
|
||||||
comboBoxArtikel.DisplayMember = "Bezeichnung";
|
comboBoxArtikel.DisplayMember = "ComboBoxAnzeige";
|
||||||
foreach (Artikel art in artikelListe)
|
comboBoxArtikel.DropDownWidth = GetDropDownWidth(comboBoxArtikel);
|
||||||
{
|
|
||||||
int bezWidth = TextRenderer.MeasureText(art.Bezeichnung, comboBoxArtikel.Font).Width;
|
|
||||||
if (dropdownWidth < bezWidth) dropdownWidth = bezWidth;
|
|
||||||
}
|
|
||||||
comboBoxArtikel.DropDownWidth = dropdownWidth;
|
|
||||||
comboBoxArtikel.SelectedIndex = -1;
|
comboBoxArtikel.SelectedIndex = -1;
|
||||||
|
|
||||||
comboBoxRhythmus.DataSource = Enum.GetValues(typeof(RegRhythmen));
|
comboBoxRhythmus.DataSource = Enum.GetValues(typeof(RegRhythmen));
|
||||||
comboBoxRhythmus.SelectedIndex = -1;
|
comboBoxRhythmus.SelectedIndex = -1;
|
||||||
|
comboBoxRhythmus.Enabled = true;
|
||||||
}
|
}
|
||||||
if ((AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.SOLL_Erhoehung || (AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.SOLL_Verminderung)
|
if ((AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.SOLL_Erhoehung || (AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.SOLL_Verminderung || (AuftragTyp)comboBoxTyp.SelectedValue == AuftragTyp.IST_Erhoehung)
|
||||||
{
|
{
|
||||||
List<KundeArtikel> kndartikel = KundeArtikel.GetList(this.kunde.KundeID.ToString());
|
List<KundeArtikel> kndartikel = KundeArtikel.GetList(this.kunde.KundeID.ToString());
|
||||||
comboBoxArtikel.DataSource = kndartikel;
|
if (kndartikel.Count == 0)
|
||||||
comboBoxArtikel.DisplayMember = "ArtikelName";
|
|
||||||
foreach (KundeArtikel art in kndartikel)
|
|
||||||
{
|
{
|
||||||
int bezWidth = TextRenderer.MeasureText(art.ArtikelName, comboBoxArtikel.Font).Width;
|
MessageBox.Show("Auswahl für den gewählten Kunden nicht verfügbar.", "FEHLER", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
if (dropdownWidth < bezWidth) dropdownWidth = bezWidth;
|
this.comboBoxTyp.SelectedIndex = -1;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
comboBoxArtikel.DropDownWidth = dropdownWidth;
|
comboBoxArtikel.DataSource = kndartikel;
|
||||||
|
comboBoxArtikel.DisplayMember = "ComboBoxAnzeige";
|
||||||
|
comboBoxArtikel.DropDownWidth = GetDropDownWidth(comboBoxArtikel);
|
||||||
comboBoxArtikel.SelectedIndex = -1;
|
comboBoxArtikel.SelectedIndex = -1;
|
||||||
|
|
||||||
comboBoxRhythmus.Enabled = false;
|
comboBoxRhythmus.Enabled = false;
|
||||||
@ -408,6 +405,18 @@ namespace Deckungsbeitrag
|
|||||||
|
|
||||||
comboBoxArtikel.SelectedIndexChanged += ComboBoxArtikel_SelectedIndexChanged;
|
comboBoxArtikel.SelectedIndexChanged += ComboBoxArtikel_SelectedIndexChanged;
|
||||||
}
|
}
|
||||||
|
private int GetDropDownWidth(ComboBox cb)
|
||||||
|
{
|
||||||
|
int maxLenght = 0;
|
||||||
|
foreach (object item in cb.Items)
|
||||||
|
{
|
||||||
|
int bezWidth = TextRenderer.MeasureText(cb.GetItemText(item), cb.Font).Width;
|
||||||
|
if (maxLenght < bezWidth) maxLenght = bezWidth;
|
||||||
|
}
|
||||||
|
return maxLenght;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
#region Click Events
|
#region Click Events
|
||||||
private void ButtonAbbrechen_Click(object sender, EventArgs e)
|
private void ButtonAbbrechen_Click(object sender, EventArgs e)
|
||||||
@ -668,7 +677,7 @@ namespace Deckungsbeitrag
|
|||||||
if (this.benutzer.Rolle == BenutzerRolle.Fahrer)
|
if (this.benutzer.Rolle == BenutzerRolle.Fahrer)
|
||||||
{
|
{
|
||||||
this.Auftrag = null;
|
this.Auftrag = null;
|
||||||
DatenLaden(string.Empty);
|
DatenLaden();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -736,6 +745,7 @@ namespace Deckungsbeitrag
|
|||||||
{
|
{
|
||||||
foreach (Control ctr in this.panelRegAuftrag.Controls) if (!ctr.Name.Contains("Text")) ctr.Enabled = false;
|
foreach (Control ctr in this.panelRegAuftrag.Controls) if (!ctr.Name.Contains("Text")) ctr.Enabled = false;
|
||||||
}
|
}
|
||||||
|
else foreach (Control ctr in this.panelRegAuftrag.Controls) if (!ctr.Name.Contains("Text")) ctr.Enabled = true;
|
||||||
}
|
}
|
||||||
private void CloseForm(DialogResult result)
|
private void CloseForm(DialogResult result)
|
||||||
{
|
{
|
||||||
@ -744,4 +754,7 @@ namespace Deckungsbeitrag
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TODO: TourenListe Entwurf muss überarbeitet werden.
|
//CHANGES: Es kann ab jetzt Morgen als Liefertag gewählt werden.
|
||||||
|
//CHANGES: Auftrag LAUFZETTEL (ehem. Einmalig) läuft als Sonderauftrag also Tab-Sonderaufträge.
|
||||||
|
//CHANGES: Der Text des LAUFZETTELS wird bei Expedit im InfoFeld angezeigt.
|
||||||
|
//CHANGES: DropDownWidth wird an das größte Item angepasst.
|
||||||
@ -60,7 +60,11 @@ namespace DatenDB
|
|||||||
NpgsqlCommand command = new NpgsqlCommand();
|
NpgsqlCommand command = new NpgsqlCommand();
|
||||||
command.Connection = DatenbankConnection.GetConnection();
|
command.Connection = DatenbankConnection.GetConnection();
|
||||||
if (artikelID != null) 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}'";
|
if (!string.IsNullOrWhiteSpace(artname))
|
||||||
|
{
|
||||||
|
artname += "%";
|
||||||
|
command.CommandText = $"select short from {TABLE} where bezeichnung ILIKE '{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();
|
||||||
@ -237,7 +241,8 @@ namespace DatenDB
|
|||||||
}
|
}
|
||||||
set { }
|
set { }
|
||||||
}
|
}
|
||||||
|
[OLVIgnore]
|
||||||
|
public string ComboBoxAnzeige => $"{Nummer} {Bezeichnung}";
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,7 +45,9 @@ 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 Dictionary<string, int[]> _dictionary;
|
static Dictionary<int, int[]> _dictionary;
|
||||||
|
private static bool printed = false;
|
||||||
|
private static bool inPreview = false;
|
||||||
|
|
||||||
public Funktionen()
|
public Funktionen()
|
||||||
{
|
{
|
||||||
@ -1081,7 +1083,7 @@ namespace Deckungsbeitrag
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static Image SonderEtikett_Entwurf(Auftrag auftrag, Dictionary<string, int[]> dictionary)
|
public static Image SonderEtikett_Entwurf(Auftrag auftrag, Dictionary<int, 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;
|
||||||
@ -1116,49 +1118,58 @@ namespace Deckungsbeitrag
|
|||||||
|
|
||||||
foreach (var kvp in dictionary)
|
foreach (var kvp in dictionary)
|
||||||
{
|
{
|
||||||
string artikelKey = kvp.Key; // z.B. "ART1"
|
KundeArtikel kndart = KundeArtikel.GetItem(kvp.Key);
|
||||||
|
Artikel _artikel = Artikel.GetArtikel(null, kndart.ArtikelID);
|
||||||
|
string artikelKey = _artikel.Bezeichnung; // z.B. "ART1"
|
||||||
int[] artbestand = kvp.Value; // z.B. [3, 0, 5]
|
int[] artbestand = kvp.Value; // z.B. [3, 0, 5]
|
||||||
string shortName = Artikel.GetShort(null, artikelKey);
|
string shortName = _artikel.Short;
|
||||||
|
float bestandWidth = g.MeasureString($"{artbestand[0].ToString()}/{artbestand[1].ToString()}/({artbestand[2].ToString()})/{artbestand[3].ToString()}", font1).Width;
|
||||||
g.DrawString($"{shortName}", font1, Brushes.Black, einzug, nextposition);
|
g.DrawString($"{shortName}", 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, bitmap.Width - bestandWidth - 10, nextposition);
|
||||||
if (artbestand[2] < 0) g.DrawString($"{artbestand[0].ToString()}/{artbestand[1].ToString()}/({artbestand[2].ToString()})/{artbestand[3].ToString()}", font1, Brushes.Black, einzug + g.MeasureString(shortName, font1).Width + 10, nextposition);
|
else g.DrawString($"{artbestand[0].ToString()}/{artbestand[1].ToString()}/{artbestand[2].ToString()}/{artbestand[3].ToString()}", font1, Brushes.Black, bitmap.Width - bestandWidth - 10, nextposition);
|
||||||
else g.DrawString($"{artbestand[0].ToString()}/{artbestand[1].ToString()}/{artbestand[2].ToString()}/{artbestand[3].ToString()}", font1, Brushes.Black, einzug + g.MeasureString(shortName, font1).Width + 10, nextposition);
|
|
||||||
nextposition += (int)height_font1;
|
nextposition += (int)height_font1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Image img = bitmap;
|
Image img = bitmap;
|
||||||
return img;
|
return img;
|
||||||
}
|
}
|
||||||
public static DialogResult SonderEtikett_Drucken(Auftrag auftrag, Dictionary<string, int[]> dictionary)
|
public static DialogResult SonderEtikett_Drucken(Auftrag auftrag, Dictionary<int, int[]> dictionary)
|
||||||
{
|
{
|
||||||
_auftrag = auftrag;
|
_auftrag = auftrag;
|
||||||
_dictionary = dictionary;
|
_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();
|
||||||
PrintDocument printDocument = new PrintDocument();
|
PrintDocument printDocument = new PrintDocument();
|
||||||
|
|
||||||
foreach (string printer in PrinterSettings.InstalledPrinters) if (printer.Contains(Properties.Settings.Default.Etikett_Drucker)) dialog.PrinterSettings.PrinterName = printer;
|
foreach (string printer in PrinterSettings.InstalledPrinters)
|
||||||
|
{
|
||||||
|
if (printer.Contains(Properties.Settings.Default.Etikett_Drucker))
|
||||||
|
{
|
||||||
|
dialog.PrinterSettings.PrinterName = printer;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
dialog.PrinterSettings.Copies = 2;
|
dialog.PrinterSettings.Copies = 2;
|
||||||
|
|
||||||
if (dialog.ShowDialog() == DialogResult.OK)
|
if (dialog.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
printDocument.PrinterSettings = dialog.PrinterSettings;
|
printDocument.PrinterSettings = dialog.PrinterSettings;
|
||||||
printDocument.PrintPage += new PrintPageEventHandler(PrintDocument_PrintPage);
|
printDocument.PrintPage -= PrintDocument_PrintPage;
|
||||||
|
printDocument.PrintPage += PrintDocument_PrintPage;
|
||||||
|
|
||||||
|
// Wenn Drucker ist NICHT Etikett_Drucker wird Papiergröße Custom gesetzt
|
||||||
if (!printDocument.PrinterSettings.PrinterName.Contains(Properties.Settings.Default.Etikett_Drucker)) printDocument.DefaultPageSettings.PaperSize = new PaperSize("Etikett-Custom", 29, 90);
|
if (!printDocument.PrinterSettings.PrinterName.Contains(Properties.Settings.Default.Etikett_Drucker)) printDocument.DefaultPageSettings.PaperSize = new PaperSize("Etikett-Custom", 29, 90);
|
||||||
preview.StartPosition = FormStartPosition.CenterScreen;
|
|
||||||
preview.WindowState = FormWindowState.Normal;
|
dialog.Document = printDocument;
|
||||||
preview.Document = printDocument;
|
dialog.Document.DocumentName = "SonderEtikett";
|
||||||
preview.Document.DocumentName = "SonderEtikett";
|
|
||||||
preview.ShowDialog();
|
printDocument.Print();
|
||||||
//dialog.Document = printDocument;
|
|
||||||
//dialog.Document.DocumentName = "Etikett";
|
|
||||||
//printDocument.Print();
|
|
||||||
|
|
||||||
return DialogResult.OK;
|
return DialogResult.OK;
|
||||||
}
|
}
|
||||||
|
else return DialogResult.Cancel;
|
||||||
return DialogResult.Cancel;
|
|
||||||
}
|
}
|
||||||
private static void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
|
private static void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
|
||||||
{
|
{
|
||||||
@ -1188,7 +1199,11 @@ namespace Deckungsbeitrag
|
|||||||
e.HasMorePages = false;
|
e.HasMorePages = false;
|
||||||
}
|
}
|
||||||
if (sender.ToString().Contains("Etikett")) e.Graphics.DrawImage(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, _dictionary), e.PageBounds);
|
if (sender.ToString().Contains("Sonder"))
|
||||||
|
{
|
||||||
|
if (!inPreview) printed = true;
|
||||||
|
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;
|
||||||
|
|||||||
@ -259,6 +259,6 @@ namespace DatenDB
|
|||||||
public int? ArtikelID { get; set; }
|
public int? ArtikelID { get; set; }
|
||||||
[OLVColumn("Reihung", IsVisible = false)]
|
[OLVColumn("Reihung", IsVisible = false)]
|
||||||
public int Reihung { get; set; }
|
public int Reihung { get; set; }
|
||||||
|
[OLVIgnore] public string ComboBoxAnzeige => $"{ArtikelNR} {ArtikelName}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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=Wirl_DB_17012023;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" />
|
||||||
|
|||||||
@ -42,7 +42,7 @@ namespace Deckungsbeitrag
|
|||||||
public static Color Wirlblau = Settings.Default.Wirlblau;
|
public static Color Wirlblau = Settings.Default.Wirlblau;
|
||||||
public static ImageList imagelist = new ImageList();
|
public static ImageList imagelist = new ImageList();
|
||||||
public static string userid;
|
public static string userid;
|
||||||
public static Benutzer benutzer = new Benutzer();
|
public static Benutzer benutzer;
|
||||||
public static bool Artikelliste_Importiert = false;
|
public static bool Artikelliste_Importiert = false;
|
||||||
public static bool Kundenliste_Importiert = false;
|
public static bool Kundenliste_Importiert = false;
|
||||||
public static bool Software_Updated = false;
|
public static bool Software_Updated = false;
|
||||||
@ -124,7 +124,7 @@ namespace Deckungsbeitrag
|
|||||||
switch (userid)
|
switch (userid)
|
||||||
{
|
{
|
||||||
case var s when s.Contains("wstrasse"):
|
case var s when s.Contains("wstrasse"):
|
||||||
benutzer = Benutzer.GetBenutzer(null, 4);
|
//benutzer = Benutzer.GetBenutzer(null, 4);
|
||||||
Application.Run(new FormAufleger(userid));
|
Application.Run(new FormAufleger(userid));
|
||||||
break;
|
break;
|
||||||
case var s when s.Contains("frottee"):
|
case var s when s.Contains("frottee"):
|
||||||
|
|||||||
@ -25,10 +25,6 @@ Build-Info:
|
|||||||
|
|
||||||
##CHANGES##
|
##CHANGES##
|
||||||
|
|
||||||
##DONE_TODOS##
|
|
||||||
|
|
||||||
##OPEN_TODOS##
|
|
||||||
|
|
||||||
Installation: ##BUILD_DATE##
|
Installation: ##BUILD_DATE##
|
||||||
=====================================
|
=====================================
|
||||||
"@ | Out-File $readmePath -Encoding UTF8
|
"@ | Out-File $readmePath -Encoding UTF8
|
||||||
@ -142,14 +138,9 @@ Build-Info:
|
|||||||
- Install-Reminders: $($installReminders.Count)
|
- Install-Reminders: $($installReminders.Count)
|
||||||
- Changes: $($changes.Count)
|
- Changes: $($changes.Count)
|
||||||
|
|
||||||
|
|
||||||
$installText
|
|
||||||
|
|
||||||
$changesText
|
$changesText
|
||||||
|
|
||||||
`r`n$doneText
|
$installText
|
||||||
|
|
||||||
`r`n$openText
|
|
||||||
|
|
||||||
Installation: $buildDate
|
Installation: $buildDate
|
||||||
=====================================
|
=====================================
|
||||||
|
|||||||
@ -400,7 +400,6 @@ namespace Deckungsbeitrag.UserControls
|
|||||||
|
|
||||||
if (groupBoxInventur.Visible)
|
if (groupBoxInventur.Visible)
|
||||||
{
|
{
|
||||||
this.buttonFreigeben.Visible = false;
|
|
||||||
this.labelInvText.Text = groupBoxInventur.Text;
|
this.labelInvText.Text = groupBoxInventur.Text;
|
||||||
this.groupBoxInventur.Visible = false;
|
this.groupBoxInventur.Visible = false;
|
||||||
this.labelInvText.Visible = true;
|
this.labelInvText.Visible = true;
|
||||||
@ -467,7 +466,6 @@ namespace Deckungsbeitrag.UserControls
|
|||||||
uci_loc = this.Location;
|
uci_loc = this.Location;
|
||||||
DataGridView_GetNewSize(this.dGArtikel);
|
DataGridView_GetNewSize(this.dGArtikel);
|
||||||
this.buttonFreigeben.Visible = true;
|
this.buttonFreigeben.Visible = true;
|
||||||
groupBoxInventur.Visible = true;
|
|
||||||
this.labelInvText.Visible = false;
|
this.labelInvText.Visible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -569,6 +567,5 @@ namespace Deckungsbeitrag.UserControls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//DONE: CLick auf Inventur freigeben Dateiname von "Warten" auf "Herrichten" ändern.
|
//CHANGES: Es wird jetzt nur ein Button "Speichern/Freigeben" bereitgestellt und dort dann gefragt ob speichern oder freigeben. Hier wird auch zwischen den Rollen unterschieden.
|
||||||
//DONE: Inventur freigeben nur für Admin oder Verwaltung.
|
//CHANGES: Beim nachträglichen Ändern des Standes wird jetzt die Schwund-Spalte neu berechnet. Damit sollte die Berechnung wieder stimmen.
|
||||||
//DONE: Inventur für Expedit zugänglich machen.
|
|
||||||
@ -4,20 +4,26 @@ NEUIGKEITEN - Version 1.0.9.6
|
|||||||
|
|
||||||
Build-Info:
|
Build-Info:
|
||||||
- Build-Typ: Release Build
|
- Build-Typ: Release Build
|
||||||
- Erledigte TODOs: 15
|
- Erledigte TODOs: 6
|
||||||
- Offene TODOs: 26
|
- Offene TODOs: 24
|
||||||
- Install-Reminders: 1
|
- Install-Reminders: 1
|
||||||
- Changes: 15
|
- Changes: 26
|
||||||
|
|
||||||
|
=== ✨ CHANGES (26) ===
|
||||||
=== ⚙️ INSTALL-REMINDER (1) ===
|
- ✨ 1. Es wird ab sofort nur ein Button zum Speichern und Abschließen bereitgestellt. System entscheidet was getan wird. [FormAuftragDetail.cs]
|
||||||
- ⚙️ DB anpassen. (Priority in Auftrag etc.) [Auftrag.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]
|
||||||
=== ✨ CHANGES (15) ===
|
|
||||||
- ✨ Artikelliste und Kundenliste werden automatisch importiert wenn vorhanden. [FormMain.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 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 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 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]
|
- ✨ 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 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]
|
- ✨ Im Tab Vorbereitet wird beim Ändern der sauberen Containeranzahl gefragt ob die Etiketten neu gedruckt werden sollen. [FormExpedit.cs]
|
||||||
@ -28,54 +34,11 @@ Build-Info:
|
|||||||
- ✨ Speichern und Laden wurde angepasst, JSON enthält jetzt pro Tag eine Kundenliste. [UCTabPageLKW.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]
|
- ✨ 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 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]
|
- ✨ Wenn ein anderer Fahrer ausgewählt wird, wird auch die Priority laut dem Fahrer geändert. [FormExpedit.cs]
|
||||||
|
|
||||||
|
=== ⚙️ INSTALL-REMINDER (1) ===
|
||||||
|
- ⚙️ DB anpassen. (Priority in Auftrag etc.) [Auftrag.cs]
|
||||||
|
|
||||||
=== ✅ ERLEDIGTE TODOs (15) ===
|
Installation: 24.04.2026 13:46
|
||||||
- ✅ : Bei Transport wir ein Fach mit Aktuellem Auftrag erstellt. Das Alte wird bei Transport gespeichert. [FormAusschlager.cs]
|
|
||||||
- ✅ : Bestand von allen Artikeln speichern und für Druck vorbereiten. [FormAuftragDetail.cs]
|
|
||||||
- ✅ : CLick auf Inventur freigeben Dateiname von "Warten" auf "Herrichten" ändern. [UCInventur.cs]
|
|
||||||
- ✅ : ComboBox Fahrer und Priorität implementieren [FormAuftragDetail.cs]
|
|
||||||
- ✅ : Container schmutzig bearbeitbar machen [FormAuftragDetail.cs]
|
|
||||||
- ✅ : Feedback Button hinzufügen [FormAuftragDetail.cs]
|
|
||||||
- ✅ : Inventur freigeben nur für Admin oder Verwaltung. [UCInventur.cs]
|
|
||||||
- ✅ : Inventur für Expedit zugänglich machen. [UCInventur.cs]
|
|
||||||
- ✅ : JSON nach angemeldeten Fahrer durchsuchen und Kundenliste des aktuellen Wochentag anzeigen. [FormMain.cs]
|
|
||||||
- ✅ : Korrigiere Bestand: Wenn -Zahl dann Stand - Zahl. [FormAuftragDetail.cs]
|
|
||||||
- ✅ : Mit AddFehler können Fehler aus try/chatch in Obsidian eingefügt werden. (Timestamp, PC-Name, Ex-Message) [Program.cs]
|
|
||||||
- ✅ : Speichern etc. durchgehen und adaptieren [FormAuftragDetail.cs]
|
|
||||||
- ✅ : Wenn Frottee-Expedit auch Reklamation bearbeitet, muss BenutzerRolle abgefragt werden. siehe CHANGES. [FormFehlmengeCount.cs]
|
|
||||||
- ✅ : Wenn NeuerAuftrag gewählt Fach ändern nicht vergessen. [FormAusschlager.cs]
|
|
||||||
- ✅ : Wenn NeuerAuftrag gewählt wie gehts weiter? [FormAusschlager.cs]
|
|
||||||
|
|
||||||
|
|
||||||
=== 🔄 OFFENE TODOs (26) ===
|
|
||||||
- 🔄 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]
|
|
||||||
- 🔄 Auftrag richtig speichern... mit gedruckt bzw. erledigt bzw. [FormExpedit.cs]
|
|
||||||
- 🔄 Auftragauswahl aufrufen statt NeuerAuftrag. (Wenn Fahrer Aufträge erstellen) [FormWSVerfolgung.cs]
|
|
||||||
- 🔄 Aufträge zusammenführen wenn gleicher Kunde und Liefertag. [FormNeuerAuftrag.cs]
|
|
||||||
- 🔄 Ausprobieren ob die Ausrichtung jetzt richtig ist. Sowohl beim ersten wie auch zweiten Mal. [Funktionen.cs]
|
|
||||||
- 🔄 Dateinamen aus Tikos anschauen. Eventuell Datum von letztem Import über Dateiname wählen? [FormMain.cs]
|
|
||||||
- 🔄 Deaktivieren wenn SPS funktioniert. Transport wird simuliert. [FormWSVerfolgung.cs]
|
|
||||||
- 🔄 Design des Controls anpassen. Eventuell im Designer erstellen. [UCKunde.cs]
|
|
||||||
- 🔄 Einbinden der NachwaescheArtikelData... [FormArtikelVW.cs]
|
|
||||||
- 🔄 Erstellen von SonderAuftrag und Drucken von Etikett testen. [FormAuftragDetail.cs]
|
|
||||||
- 🔄 Funktioniert mehrere KundenControls auf einmal DragDrop? [FormTourenplanung.cs]
|
|
||||||
- 🔄 Gesamt soll immer 100% sein. [Funktionen.cs]
|
|
||||||
- 🔄 Hier Settings speichern mit UserSettingsManager Klasse. [FormEinstellung.cs]
|
|
||||||
- 🔄 Mit Tour statt Fahrer durchgehen. [FormExpedit.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]
|
|
||||||
- 🔄 Non-Hard-Coded-Lösung für Priority finden. [Auftrag.cs]
|
|
||||||
- 🔄 Reg.Aufträge einbauen. Besonderheit: Die Artikel sollen ebenfalls erscheinen. [Funktionen.cs]
|
|
||||||
- 🔄 Richtige Liste holen, wahrscheinlich mit TourID von ShowTourenplan. [FormMain.cs]
|
|
||||||
- 🔄 Settings hier ändern auf UserSettingsManager Klasse. [FormEinstellung.cs]
|
|
||||||
- 🔄 TourenListe Entwurf muss überarbeitet werden. [FormNeuerAuftrag.cs]
|
|
||||||
- 🔄 UserSetting Properties eintragen und in EinstellungsScreen abrufen. [UserSettingsManager.cs]
|
|
||||||
- 🔄 Warum der falsche Path? Immer mit \\ [UCFeedback.cs]
|
|
||||||
- 🔄 Weitere Properties von oben hier zuweisen [UserSettingsManager.cs]
|
|
||||||
- 🔄 Zuweisung zu Fahrer muss geklärt werden. [Funktionen.cs]
|
|
||||||
|
|
||||||
Installation: 22.04.2026 17:39
|
|
||||||
=====================================
|
=====================================
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user