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)
|
||||
{
|
||||
fb = new UCFeedback(benutzer);
|
||||
@ -554,18 +553,18 @@ namespace Deckungsbeitrag
|
||||
|
||||
ObjectListView olv = (ObjectListView)sender;
|
||||
AuftragArtikel auftragArtikel = (AuftragArtikel)e.RowObject;
|
||||
if (e.Column.Text == "Anzahl") diff = (int)e.Value - ((int)e.NewValue);
|
||||
if (diff > 0) Tosave = true;
|
||||
int newValue = (int)e.NewValue;
|
||||
|
||||
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))
|
||||
{
|
||||
val = (int)e.NewValue;
|
||||
if ((int)e.NewValue == 0) e.ListViewItem.Checked = true;
|
||||
val = newValue;
|
||||
if (newValue == 0) e.ListViewItem.Checked = true;
|
||||
}
|
||||
else auftragDictionary.Add((int)auftragArtikel.AuftragArtikelID, (int)e.NewValue);
|
||||
|
||||
//auftragArtikel.Anzahl = (int)e.NewValue;
|
||||
//auftragArtikel.Save();
|
||||
else auftragDictionary.Add((int)auftragArtikel.AuftragArtikelID, newValue);
|
||||
|
||||
KundeArtikel kndart = KundeArtikel.GetKundeArtikelVonArtikelID(this.kunde.KundeID, auftragArtikel.ArtikelID);
|
||||
|
||||
@ -574,12 +573,7 @@ namespace Deckungsbeitrag
|
||||
int stand = kndart.Stand;
|
||||
int korrektur = kndart.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))
|
||||
{
|
||||
for (int i = 0; i < value.Length; i++)
|
||||
@ -598,7 +592,7 @@ namespace Deckungsbeitrag
|
||||
bestand = new int[4];
|
||||
if (diff == 0)
|
||||
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;
|
||||
|
||||
@ -667,3 +661,4 @@ namespace Deckungsbeitrag
|
||||
//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: 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
|
||||
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)
|
||||
{
|
||||
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: 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: 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.Text = "SWS-Drucken";
|
||||
this.buttonSWS_Drucken.UseVisualStyleBackColor = false;
|
||||
this.buttonSWS_Drucken.Visible = false;
|
||||
this.buttonSWS_Drucken.Click += new System.EventHandler(this.ButtonDrucken_Click);
|
||||
//
|
||||
// pictureBoxEntwurf
|
||||
@ -401,7 +402,7 @@ namespace Deckungsbeitrag
|
||||
this.tabPageUmsatz.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
|
||||
this.tabPageUmsatz.Name = "tabPageUmsatz";
|
||||
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.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.TabIndex = 48;
|
||||
this.textBoxText.Visible = false;
|
||||
this.textBoxText.VisibleChanged += new System.EventHandler(this.textBoxText_VisibleChanged);
|
||||
this.textBoxText.VisibleChanged += new System.EventHandler(this.TextBoxText_VisibleChanged);
|
||||
//
|
||||
// pictureBoxAddArtikel
|
||||
//
|
||||
|
||||
@ -64,7 +64,7 @@ namespace Deckungsbeitrag
|
||||
{
|
||||
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;
|
||||
}
|
||||
@ -85,17 +85,8 @@ namespace Deckungsbeitrag
|
||||
if (this.auftragtyp == AuftragTyp.Regelmäßig) {kndService = "Geschäft"; labelLiefertag.Text = "Erster Liefertag:"; }
|
||||
if (this.benutzer.Rolle == BenutzerRolle.Fahrer) kndService = "Geschäft";
|
||||
|
||||
// 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;
|
||||
|
||||
if (this.auftragtyp == null || this.auftragtyp == AuftragTyp.Geschäft) SonderDatenLaden();
|
||||
else DatenLaden();
|
||||
if (this.auftragtyp == null || this.auftragtyp == AuftragTyp.Geschäft) SonderDatenLaden(kndService);
|
||||
else DatenLaden(kndService);
|
||||
}
|
||||
private async void FormNeuerAuftrag_HelpButtonClicked(object sender, CancelEventArgs e)
|
||||
{
|
||||
@ -104,16 +95,22 @@ namespace Deckungsbeitrag
|
||||
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
|
||||
ComboBoxTyp_Load();
|
||||
ComboBoxFahrer_Load();
|
||||
}
|
||||
private void DatenLaden()
|
||||
private void DatenLaden(string kndService)
|
||||
{
|
||||
this.SuspendLayout();
|
||||
|
||||
// Kunde laden
|
||||
if (!GetKunde(kndService)) { CloseForm(DialogResult.Cancel); return; }
|
||||
|
||||
// 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();
|
||||
else { CloseForm(DialogResult.Cancel); return; }
|
||||
@ -127,6 +124,19 @@ namespace Deckungsbeitrag
|
||||
|
||||
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()
|
||||
{
|
||||
DateTime nextLiefertag = DateTime.Today;
|
||||
@ -226,11 +236,12 @@ namespace Deckungsbeitrag
|
||||
List<Tour> tourliste = Tour.GetSaisonListe(saison);
|
||||
this.comboBoxFahrer.DataSource = tourliste;
|
||||
this.comboBoxFahrer.DisplayMember = "Bezeichnung";
|
||||
this.comboBoxFahrer.ValueMember = "TourID";
|
||||
this.comboBoxFahrer.DropDownWidth = GetDropDownWidth(this.comboBoxFahrer);
|
||||
// ComboBox-Auswahl vordefinieren.
|
||||
if (this.benutzer.Rolle == BenutzerRolle.Fahrer)
|
||||
{
|
||||
this.comboBoxFahrer.SelectedItem = tour;
|
||||
this.comboBoxFahrer.SelectedValue = tour.TourID;
|
||||
}
|
||||
else this.comboBoxFahrer.SelectedIndex = -1;
|
||||
this.comboBoxFahrer.Validating += ComboBoxFahrer_Validating;
|
||||
@ -326,7 +337,7 @@ namespace Deckungsbeitrag
|
||||
do
|
||||
{
|
||||
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++;
|
||||
} while (!int.TryParse(anzahl, out artAnzahl));
|
||||
|
||||
@ -449,6 +460,8 @@ namespace Deckungsbeitrag
|
||||
return;
|
||||
case AuftragTyp.Regelmäßig: SpezialAuftragSpeichern(Auftrag);
|
||||
return;
|
||||
case AuftragTyp.IST_Erhoehung: SpezialAuftragSpeichern(Auftrag);
|
||||
return;
|
||||
default:
|
||||
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.
|
||||
TourID = selectedTour?.TourID, // Wenn Tour hinterlegt dann TourID speichern.
|
||||
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,
|
||||
};
|
||||
|
||||
@ -677,7 +690,7 @@ namespace Deckungsbeitrag
|
||||
if (this.benutzer.Rolle == BenutzerRolle.Fahrer)
|
||||
{
|
||||
this.Auftrag = null;
|
||||
DatenLaden();
|
||||
DatenLaden(string.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
@ -739,7 +752,7 @@ namespace Deckungsbeitrag
|
||||
//this.Close(); // Onboarding beendet
|
||||
}
|
||||
}
|
||||
private void textBoxText_VisibleChanged(object sender, EventArgs e)
|
||||
private void TextBoxText_VisibleChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (textBoxText.Visible)
|
||||
{
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<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="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" />
|
||||
|
||||
@ -43,6 +43,7 @@ if (Test-Path $assemblyInfoPath) {
|
||||
}
|
||||
|
||||
# Dateien durchsuchen
|
||||
$changesList = @()
|
||||
$openTodos = @()
|
||||
$doneTodos = @()
|
||||
$installReminders = @()
|
||||
@ -74,10 +75,39 @@ foreach ($file in $csFiles) {
|
||||
}
|
||||
|
||||
# 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) {
|
||||
$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
|
||||
$doneTodos = $doneTodos | Sort-Object | Get-Unique
|
||||
$installReminders = $installReminders | Sort-Object | Get-Unique
|
||||
$changes = $changes | Sort-Object | Get-Unique
|
||||
|
||||
# Formatierte Abschnitte
|
||||
$doneSection = if ($doneTodos.Count -gt 0) {
|
||||
@ -109,9 +138,9 @@ $installSection = if ($installReminders.Count -gt 0) {
|
||||
@("Keine Install-Reminder vorhanden ✅")
|
||||
}
|
||||
|
||||
$changesSection = if ($changes.Count -gt 0) {
|
||||
@("=== ✨ CHANGES ($($changes.Count)) ===") +
|
||||
($changes | ForEach-Object { "- $_" })
|
||||
$changesSection = if ($markdownLines.Count -gt 0) {
|
||||
@("=== ✨ CHANGES ($($markdownLines.Count)) ===") +
|
||||
($markdownLines | ForEach-Object { "- $_" })
|
||||
} else {
|
||||
@("Keine Changes vorhanden")
|
||||
}
|
||||
@ -121,6 +150,7 @@ $doneText = $doneSection -join "`r`n"
|
||||
$openText = $openSection -join "`r`n"
|
||||
$installText = $installSection -join "`r`n"
|
||||
$changesText = $changesSection -join "`r`n"
|
||||
$markdown = $markdownLines -join "`n"
|
||||
|
||||
$custom = "Release Build"
|
||||
$buildDate = Get-Date -Format "dd.MM.yyyy HH:mm"
|
||||
@ -136,9 +166,10 @@ Build-Info:
|
||||
- Erledigte TODOs: $($doneTodos.Count)
|
||||
- Offene TODOs: $($openTodos.Count)
|
||||
- Install-Reminders: $($installReminders.Count)
|
||||
- Changes: $($changes.Count)
|
||||
- Changes: $($changesList.Count)
|
||||
|
||||
$changesText
|
||||
=== ✨ CHANGES ($($changesList.Count)) ===
|
||||
$markdown
|
||||
|
||||
$installText
|
||||
|
||||
|
||||
@ -157,6 +157,12 @@
|
||||
</Reference>
|
||||
</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">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
||||
@ -7,38 +7,64 @@ Build-Info:
|
||||
- Erledigte TODOs: 6
|
||||
- Offene TODOs: 24
|
||||
- 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) ===
|
||||
- ⚙️ 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