543 lines
21 KiB
C#
543 lines
21 KiB
C#
using AForge.Video.DirectShow;
|
|
using DatenDB;
|
|
using Deckungsbeitrag.AA_Klassen;
|
|
using System;
|
|
using System.CodeDom;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Configuration;
|
|
using System.Data;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Web.UI.WebControls.WebParts;
|
|
using System.Windows.Forms;
|
|
using ZXing;
|
|
|
|
namespace Deckungsbeitrag
|
|
{
|
|
public partial class FormFehlmengeCount : Form
|
|
{
|
|
private FilterInfoCollection videoDevices;
|
|
Kunde kunde;
|
|
Auftrag auftrag;
|
|
List<KundeArtikel> artikelListe;
|
|
readonly Meldungen meldung = new Meldungen();
|
|
private readonly Benutzer benutzer;
|
|
private List<object> auftragsliste;
|
|
private ArtikelKategorie kategorie;
|
|
readonly string userid;
|
|
|
|
#region Form-Konstruktor
|
|
|
|
public FormFehlmengeCount()
|
|
{
|
|
InitializeComponent();
|
|
|
|
this.groupBoxArtikel.Visible = false;
|
|
//this.textBoxScann.Focus();
|
|
}
|
|
public FormFehlmengeCount(Benutzer ben) : this()
|
|
{
|
|
this.benutzer = ben;
|
|
}
|
|
public FormFehlmengeCount(string uid) : this()
|
|
{
|
|
this.userid = uid;
|
|
}
|
|
|
|
#endregion
|
|
|
|
private void FormFehlmengeCount_Load(object sender, EventArgs e)
|
|
{
|
|
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
|
|
this.Text = " Version: " + Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
|
if (userid != null)
|
|
{
|
|
if (userid.Contains("kleinteile")) { kategorie = ArtikelKategorie.Kleinteile; }
|
|
if (userid.Contains("grossteile")) { kategorie = ArtikelKategorie.Grossteile; }
|
|
if (userid.Contains("frottee") || userid.Contains("spannleintuch")) { kategorie = ArtikelKategorie.Frottee; }
|
|
}
|
|
|
|
//Kunde wird durch Scan oder Handeingabe Ausgewählt.
|
|
//this.kunde = Funktionen.KundenAuswahl();
|
|
Open_Liste();
|
|
|
|
ControlLaden();
|
|
CloseKeyboard();
|
|
}
|
|
private void CloseKeyboard()
|
|
{
|
|
// Alle gestarteten Instanzen von TabTip.exe (Touch Tastatur) schließen
|
|
foreach (var process in Process.GetProcessesByName("TabTip"))
|
|
{
|
|
try
|
|
{
|
|
process.Close();
|
|
}
|
|
catch (Exception es)
|
|
{
|
|
// Fehlerbehandlung falls Prozess nicht beendet werden kann
|
|
MessageBox.Show($"Fehler beim Schließen: " + es.Message);
|
|
}
|
|
}
|
|
|
|
}
|
|
private void ControlLaden()
|
|
{
|
|
// Nachdem die textboxScann verlassen wird und ein Kunde gefunden wurde wird Form_Load ausgelöst.
|
|
if (kunde != null)
|
|
{
|
|
this.labelSuchtext.Text = kunde.Suchtext;
|
|
this.labelName.Text = kunde.KundeName;
|
|
this.labelName.Visible = this.labelSuchtext.Visible = true;
|
|
this.labelAnmerkung.Visible = this.labelAnmerkungText.Visible = true;
|
|
if (!string.IsNullOrWhiteSpace(this.kunde.Anmerkung))
|
|
{
|
|
this.labelAnmerkungText.Text = kunde.Anmerkung;
|
|
this.labelAnmerkungText.BackColor = Color.Yellow;
|
|
}
|
|
else
|
|
{
|
|
this.labelAnmerkungText.Text = "Derzeit keine Anmerkungen vorhanden.";
|
|
this.labelAnmerkungText.BackColor = Color.White;
|
|
}
|
|
//this.textBoxScann.Clear();
|
|
if (this.kunde.HatNachwaesche) this.artikelListe = KundeArtikel.GetFehlmengeList(kunde.KundeID.ToString(), null);
|
|
this.textBoxScann.Text = this.kunde.KundeNummer;
|
|
this.textBoxScann.Enabled = false;
|
|
if ((userid != null && userid.Contains("reklamation")) || (this.benutzer != null && this.benutzer.Rolle == BenutzerRolle.Expedit) || (this.benutzer != null && this.benutzer.Rolle == BenutzerRolle.Frottee)) Reklamation_GroupBox();
|
|
else GroupBox_Load();
|
|
|
|
if (kunde.Aufgabe != null)
|
|
{
|
|
string n = kunde.Suchtext ?? kunde.KundeName;
|
|
meldung.GetInfo(this, $"Bei Kunde {n} solltest du folgendes beachten: {Aufgabe.GetAufgabe(null, kunde.Aufgabe).Bezeichnung}", false);
|
|
}
|
|
}
|
|
|
|
if (auftrag != null)
|
|
{
|
|
if (this.benutzer == null | (userid != null && !userid.Contains("reklamation")))
|
|
{
|
|
// AbteilungsStatus Begonnen wird hier gesetzt.
|
|
if (userid.Contains("kleinteile")) { auftrag.Abteilungen |= AbteilungsStatus.KleinteileBegonnen; auftrag.Save(); }
|
|
if (userid.Contains("grossteile")) { auftrag.Abteilungen |= AbteilungsStatus.GrossteileBegonnen; auftrag.Save(); }
|
|
if (userid.Contains("frottee") || userid.Contains("spannleintuch")) { auftrag.Abteilungen |= AbteilungsStatus.FrotteeBegonnen; auftrag.Save(); }
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Die GroupBox mit den Artikel-Buttons wird geladen wenn BenutzerRolle ist nicht Expedit oder Frottee.
|
|
/// </summary>
|
|
private void GroupBox_Load()
|
|
{
|
|
if (!this.kunde.HatNachwaesche)
|
|
{
|
|
this.tableLayoutPanelArtikel.Visible = false;
|
|
Label label = new Label()
|
|
{
|
|
Name = "labelNoNW",
|
|
Text = "DIESER KUNDE HAT EIGENWÄSCHE.\n\nKEINE NACHWÄSCHE ZU ERFASSEN.\n\nSCHMUTZIGE TEILE SEPARAT AN KUNDE SCHICKEN.",
|
|
Font = new Font(labelSuchtext.Font.FontFamily, 40, FontStyle.Bold),
|
|
ForeColor = Color.White,
|
|
AutoSize = false,
|
|
Dock = DockStyle.Fill,
|
|
TextAlign = ContentAlignment.MiddleCenter
|
|
|
|
};
|
|
this.groupBoxArtikel.Controls.Add(label);
|
|
this.groupBoxArtikel.Visible = true;
|
|
return;
|
|
}
|
|
|
|
foreach (Button btn in this.tableLayoutPanelArtikel.Controls) btn.Tag = btn.Text = null;
|
|
this.groupBoxArtikel.Visible = true;
|
|
this.tableLayoutPanelArtikel.Visible = true;
|
|
//TODO: Nach Test und Rücksprache eventuell wieder umbauen. Benutzer.Rolle etc.
|
|
// Buttons werden den Artikeln aus der Artikelliste zugewiesen. Unterschied zwischen Frotteewäsche, Spannleintüchern, Großteilen und Kleinteilen
|
|
foreach (KundeArtikel artikel in artikelListe)
|
|
{
|
|
|
|
// Unterschied zwischen Maschine oder Person.
|
|
if(this.userid.StartsWith("ms"))
|
|
{
|
|
// Wird bei Frottee verarbeitet
|
|
if (this.userid.Contains("frottee"))
|
|
{
|
|
// Wird bei FROTTEE verarbeitet.
|
|
switch (artikel.ArtikelNR)
|
|
{
|
|
case var nr when nr.ToString().Substring(1).StartsWith("311"): //HANDTUCH
|
|
this.buttonArt1.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("312") & nr.ToString().EndsWith("0"): //DUSCHTUCH WEISS
|
|
this.buttonArt2.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("314"): //BADEVORLEGER
|
|
this.buttonArt3.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("313"): //BADETUCH
|
|
this.buttonArt4.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("316"): //BADEMANTEL
|
|
this.buttonArt5.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("324"): //SAUNATUCH
|
|
this.buttonArt6.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("312") & nr.ToString().EndsWith("1"): //DUSCHTUCH BLAU
|
|
this.buttonArt7.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1115") & (nr.ToString().EndsWith("00") || nr.ToString().EndsWith("10")): //SPANNLEINTUCH SINGLE
|
|
this.buttonArt8.Tag = artikel;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Wird bei Großteile verarbeitet
|
|
if (this.userid.Contains("grossteile"))
|
|
{
|
|
// Wird bei Großteilen verarbeitet
|
|
switch (artikel.ArtikelNR)
|
|
{
|
|
case var nr when nr.ToString().Substring(1).StartsWith("112"): //DECKENBEZUG
|
|
this.buttonArt1.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1110"): //LEINTUCH SINGLE
|
|
this.buttonArt2.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1112"): //DOPPELLEINTUCH
|
|
this.buttonArt3.Tag = artikel;
|
|
break;
|
|
//case var nr when nr.ToString().StartsWith(""):
|
|
// this.buttonArt4.Tag = artikel;
|
|
// break;
|
|
//case var nr when nr.ToString().StartsWith(""):
|
|
// this.buttonArt5.Tag = artikel;
|
|
// break;
|
|
//case var nr when nr.ToString().StartsWith(""):
|
|
// this.buttonArt6.Tag = artikel;
|
|
// break;
|
|
//case var nr when nr.ToString().StartsWith(""):
|
|
// this.buttonArt7.Tag = artikel;
|
|
// break;
|
|
//case var nr when nr.ToString().StartsWith(""):
|
|
// this.buttonArt8.Tag = artikel;
|
|
// break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Wird bei Kleinteile verarbeitet
|
|
if (this.userid.Contains("kleinteile"))
|
|
{
|
|
// Wird bei Kleinteilen verarbeitet
|
|
switch (artikel.ArtikelNR)
|
|
{
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1210"): //POLSTERBEZUG 60x80
|
|
this.buttonArt1.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1211") & nr.ToString().EndsWith("0"): //POLSTERBEZUG 40x40
|
|
this.buttonArt2.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1211") & nr.ToString().EndsWith("1"): //POLSTERBEZUG 40x50
|
|
this.buttonArt3.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1211") & nr.ToString().EndsWith("2"): //POLSTERBEZUG 40x60
|
|
this.buttonArt4.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1211") & nr.ToString().EndsWith("3"): //POLSTERBEZUG 40x70
|
|
this.buttonArt5.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1221"): //MUNDSERVIETTE
|
|
this.buttonArt6.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1222"): //DECKSERVIETTE
|
|
this.buttonArt7.Tag = artikel;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else // UserID Contains "ps" für Person
|
|
{
|
|
// Wird bei Spannleintuch verarbeitet.
|
|
if (this.userid.Contains("spannleintuch"))
|
|
{
|
|
switch (artikel.ArtikelNR)
|
|
{
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1115") & (nr.ToString().EndsWith("00") || nr.ToString().EndsWith("30")): //SPANNLEINTUCH SINGLE
|
|
this.buttonArt1.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1115") & nr.ToString().EndsWith("10"): //SPANNLEINTUCH SINGLE GELB
|
|
this.buttonArt2.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1115") & nr.ToString().EndsWith("20"): //SPANNLEINTUCH SINGLE WEISS
|
|
this.buttonArt3.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1115") & (nr.ToString().EndsWith("30") || nr.ToString().EndsWith("40")): //SPANNLEINTUCH QUEEN BLAU GELB
|
|
this.buttonArt4.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1116") & nr.ToString().EndsWith("00"): //SPANNLEINTUCH DOUBLE
|
|
this.buttonArt5.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1116") & (nr.ToString().EndsWith("10") || nr.ToString().EndsWith("40")): //SPANNLEINTUCH LILA ITALO
|
|
this.buttonArt6.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1116") & (nr.ToString().EndsWith("20") || nr.ToString().EndsWith("21")): //SPANNLEINTUCH DOUBLE WEISS GRAU
|
|
this.buttonArt7.Tag = artikel;
|
|
break;
|
|
case var nr when nr.ToString().Substring(1).StartsWith("1116") & nr.ToString().EndsWith("30"): //SPANNLEINTUCH DOUBLE ROT
|
|
this.buttonArt8.Tag = artikel;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
// Button mit Tag bearbeiten. Buttons ohne Tag werden deaktiviert.
|
|
foreach(Button btn in this.tableLayoutPanelArtikel.Controls)
|
|
{
|
|
if (btn.Tag == null) { btn.Enabled = false; btn.BackColor = Color.Gray; btn.Text = ""; }
|
|
else
|
|
{
|
|
KundeArtikel art = (KundeArtikel)btn.Tag;
|
|
int index = art.ArtikelName.IndexOf(" ");
|
|
btn.Text = art.ArtikelName;
|
|
btn.Font = new Font(btn.Font.Name, 18);
|
|
btn.BackColor = Color.Turquoise;
|
|
btn.Enabled = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// GroupBox wird für Reklamationen geladen. Passiert nur wenn BenutzerRolle ist Expedit oder Frottee.
|
|
/// </summary>
|
|
private void Reklamation_GroupBox()
|
|
{
|
|
this.groupBoxArtikel.Controls.Clear();
|
|
FlowLayoutPanel flowPanel = new FlowLayoutPanel
|
|
{
|
|
Dock = DockStyle.Fill,
|
|
FlowDirection = FlowDirection.LeftToRight,
|
|
WrapContents = true,
|
|
AutoSize = true
|
|
};
|
|
this.groupBoxArtikel.Controls.Add(flowPanel);
|
|
|
|
foreach (KundeArtikel artikel in artikelListe)
|
|
{
|
|
int index = artikel.ArtikelName.IndexOf(" ");
|
|
string name = string.Empty;
|
|
if (index > 0) name = artikel.ArtikelName.Substring(0, index) + "\n" + artikel.ArtikelName.Substring(index);
|
|
else name = artikel.ArtikelName;
|
|
Button btn = new Button
|
|
{
|
|
Text = name,
|
|
Tag = artikel,
|
|
Name = $"btn_{artikel.ArtikelNR}",
|
|
AutoSize = true,
|
|
Margin = new Padding(0),
|
|
BackColor = Color.Turquoise,
|
|
ForeColor = Color.Black,
|
|
};
|
|
btn.Click += Button_Click;
|
|
btn.MouseUp += Button_MouseUp;
|
|
btn.MouseDown += Button_MouseDown;
|
|
|
|
flowPanel.Controls.Add(btn);
|
|
}
|
|
int buttons = flowPanel.Controls.OfType<Button>().Count();
|
|
|
|
// Berechnen der Buttonbreite laut Panelbreit durch Buttonanzahl. (Zweireihig und deshalb durch 2)
|
|
Size btnsize = new Size((int)((double)flowPanel.ClientSize.Width / ((double)buttons / (double)2)), (flowPanel.ClientSize.Height / 2) - (flowPanel.Margin.All * 3));
|
|
|
|
// Breite der Buttons wird angepasst falls nicht alle angezeigt werden können.
|
|
while (((btnsize.Width + flowPanel.Margin.All) * (int)(buttons / 2)) >= flowPanel.ClientSize.Width)
|
|
{
|
|
btnsize.Width--;
|
|
}
|
|
|
|
foreach (Button btn in flowPanel.Controls)
|
|
{
|
|
btn.MaximumSize = btnsize;
|
|
btn.MinimumSize = btnsize;
|
|
}
|
|
|
|
groupBoxArtikel.ResumeLayout();
|
|
groupBoxArtikel.Visible = true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Wenn der Kunde Fertig gemacht wurde, werden Controls deaktiviert und ausgeblendet bis neuer Kunde gewählt
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void ButtonFertig_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
// Controls werden durchgegangen und ausgeblendet oder der Text entfernt.
|
|
foreach (Control ctr in this.Controls)
|
|
{
|
|
switch (ctr)
|
|
{
|
|
case Label lbl:
|
|
//lbl.Text = string.Empty;
|
|
lbl.Visible = false;
|
|
break;
|
|
case GroupBox gb:
|
|
gb.Visible = false;
|
|
break;
|
|
case TextBox txt:
|
|
txt.Clear();
|
|
txt.Enabled = true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
if ((userid != null && userid.Contains("reklamation")) || (this.benutzer != null && this.benutzer.Rolle == BenutzerRolle.Expedit) || (this.benutzer != null && this.benutzer.Rolle == BenutzerRolle.Frottee))
|
|
{
|
|
DialogResult result = meldung.GetFrage(this, "Möchtest du eine weitere Reklamation eingeben?", false);
|
|
switch (result)
|
|
{
|
|
case DialogResult.Yes:
|
|
break;
|
|
case DialogResult.No:
|
|
this.Close();
|
|
return;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// AbteilungsStatus für Kleinteile und Großteile wird hier gesetzt.
|
|
if (!userid.Contains("frottee") & !userid.Contains("spannleintuch"))
|
|
{
|
|
if (userid.Contains("kleinteile")) { auftrag.Abteilungen |= AbteilungsStatus.KleinteileBeendet; auftrag.Save(); }
|
|
if (userid.Contains("grossteile")) { auftrag.Abteilungen |= AbteilungsStatus.GrossteileBeendet; auftrag.Save(); }
|
|
}
|
|
}
|
|
//Kunde wird durch Scan oder Handeingabe Ausgewählt.
|
|
Open_Liste();
|
|
ControlLaden();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Auftragliste aufrufen.
|
|
/// </summary>
|
|
/// <param name="extra">Wenn Extrakunde dann true</param>
|
|
private async void Open_Liste()
|
|
{
|
|
int listentyp = 0;
|
|
|
|
|
|
if ((userid != null && userid.Contains("reklamation")) || (this.benutzer != null && this.benutzer.Rolle == BenutzerRolle.Expedit) || (this.benutzer != null && this.benutzer.Rolle == BenutzerRolle.Frottee)) { auftragsliste = null; listentyp = 5; }
|
|
else auftragsliste = new List<object>(Auftrag.GetFinishingList(kategorie));
|
|
|
|
FormListe liste = new FormListe(auftragsliste, listentyp);
|
|
if (liste.ShowDialog() == DialogResult.OK)
|
|
{
|
|
if (liste.auftrag != null)
|
|
{
|
|
this.auftrag = liste.auftrag;
|
|
this.kunde = Kunde.GetKunde(null, auftrag.KundeID, null);
|
|
}
|
|
else this.kunde = liste.kunde;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// TextBox Scann Events
|
|
/// Beim Verlassen der TextBox wird Kunde aus DB geholt
|
|
/// Wenn Enter gedrückt wird, wird TextBox verlassen
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void TextBoxScann_Leave(object sender, EventArgs e)
|
|
{
|
|
// Kundennummer wird ausgelesen und Kunde aus DB geholt. Form_Load wird danach ausgelöst
|
|
if (this.kunde == null)
|
|
{
|
|
this.kunde = Kunde.GetKunde(this.textBoxScann.Text, null, null);
|
|
ControlLaden();
|
|
}
|
|
}
|
|
private void TextBoxScann_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (e.KeyCode == Keys.Enter)
|
|
{
|
|
// Leave-Ereignis manuell ausführen
|
|
TextBoxScann_Leave(sender, EventArgs.Empty);
|
|
|
|
// Fokus auf das nächste Steuerelement verschieben
|
|
//this.SelectNextControl((Control)sender, true, true, true, true);
|
|
|
|
// Standardverhalten (Beep) unterdrücken
|
|
e.SuppressKeyPress = true;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// FehlmengeCount Button Events
|
|
/// Mouse Up & Down Event für Button Farbwechsel
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void Button_MouseUp(object sender, MouseEventArgs e)
|
|
{
|
|
if (sender is Button btn)
|
|
{
|
|
btn.BackColor = Color.Turquoise; // Gewünschte Farbe beim MouseUp
|
|
}
|
|
}
|
|
private void Button_MouseDown(object sender, MouseEventArgs e)
|
|
{
|
|
if (sender is Button btn)
|
|
{
|
|
btn.BackColor = Color.LightSeaGreen; // Gewünschte Farbe beim MouseDown
|
|
}
|
|
}
|
|
private void Button_Click(object sender, EventArgs e)
|
|
{
|
|
// Beim geklickten Artikel wird Fehlmenge erhöht
|
|
Button btn = (Button)sender;
|
|
KundeArtikel kndart = (KundeArtikel)btn.Tag;
|
|
DateTime timestamp = DateTime.Now.Date;
|
|
ArtikelNachwaesche artnw = ArtikelNachwaesche.FindeDatensatz(kndart.ArtikelID, timestamp);
|
|
if (artnw.NachwaescheID == null)
|
|
{
|
|
artnw = new ArtikelNachwaesche()
|
|
{
|
|
ArtikelID = kndart.ArtikelID,
|
|
Datum = timestamp,
|
|
Nachwaesche = 0,
|
|
Reklamation = 0
|
|
};
|
|
}
|
|
|
|
if ((userid != null && userid.Contains("reklamation")) || (this.benutzer != null && this.benutzer.Rolle == BenutzerRolle.Expedit)) { kndart.Reklamation++; artnw.Reklamation++; }
|
|
else { kndart.Fehlmenge++; artnw.Nachwaesche++; }
|
|
|
|
// Wenn speichern nicht möglich, wird darauf hingewiesen.
|
|
if (kndart.Save() != 1 || artnw.Save() != 1) meldung.FehlmengeCount();
|
|
}
|
|
}
|
|
}
|
|
//DONE: Wenn Frottee-Expedit auch Reklamation bearbeitet, muss BenutzerRolle abgefragt werden. siehe CHANGES. |