711 lines
25 KiB
C#
711 lines
25 KiB
C#
using BrightIdeasSoftware;
|
|
using DatenDB;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Windows.Forms;
|
|
using System.Xml.Resolvers;
|
|
|
|
namespace Deckungsbeitrag
|
|
{
|
|
public partial class FormExpedit : Form
|
|
{
|
|
public Fehlermeldungen fehlermeldung = new Fehlermeldungen();
|
|
public Image etikett = null;
|
|
public Auftrag auftrag;
|
|
public Auftrag NeuerAuftrag; //NEU FÜR UPDATE
|
|
public AuftragArtikel auftragArtikel;
|
|
public Benutzer benutzer;
|
|
public Kunde kunde;
|
|
DateTime? letzterLiefertag = null;
|
|
bool nocont = false;
|
|
bool nocontclicked = false;
|
|
Fehlermeldungen meldung = new Fehlermeldungen();
|
|
public List<KundeArtikel> artikelListe;
|
|
public List<Auftrag> auftraglist;
|
|
public List<Auftrag> sonderlist;
|
|
int beforeedit = 0;
|
|
int? neuecontclean = null;
|
|
int? altecontclean = null;
|
|
Timer timer1 = new Timer();
|
|
private Screen[] screens;
|
|
|
|
public FormExpedit(Benutzer benutzer)
|
|
{
|
|
InitializeComponent();
|
|
|
|
this.benutzer = benutzer;
|
|
this.StartPosition = FormStartPosition.CenterScreen;
|
|
this.tabControlAuftragList.Visible = true;
|
|
|
|
//Timer für Autorefresh
|
|
timer1.Interval = 10000; // 10 Sekunden
|
|
timer1.Tick += Timer1_Tick;
|
|
timer1.Start();
|
|
|
|
}
|
|
|
|
public FormExpedit(Benutzer benutzer, Screen[] screens) : this(benutzer)
|
|
{
|
|
this.screens = screens;
|
|
foreach(Screen screen in screens)
|
|
{
|
|
if (screen.Primary)
|
|
{
|
|
if (screens[0].WorkingArea.Width < 1500) { this.objectListViewAuftrag.Font = new Font(this.objectListViewAuftrag.Font.FontFamily, 10); }
|
|
}
|
|
}
|
|
}
|
|
|
|
private void FormExpedit_Load(object sender, EventArgs e)
|
|
{
|
|
Cursor.Current = Cursors.WaitCursor;
|
|
this.SuspendLayout();
|
|
|
|
// Controls aktivieren und deaktivieren nach BenutzerRolle
|
|
switch (this.benutzer.Rolle)
|
|
{
|
|
case BenutzerRolle.Verwaltung:
|
|
this.buttonDrucken.Enabled = this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false;
|
|
this.groupBoxEtikett.Enabled = false;
|
|
|
|
// WENN Rolle Frottee (Expedit Frottee) dann ButtonClick deaktiviert. Nur Expedit kann abschließen
|
|
this.objectListViewAuftrag.ButtonClick -= objectListViewAuftrag_ButtonClick;
|
|
break;
|
|
case BenutzerRolle.Fahrer:
|
|
this.buttonDrucken.Enabled = this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false;
|
|
this.groupBoxEtikett.Enabled = false;
|
|
|
|
// WENN Rolle Frottee (Expedit Frottee) dann ButtonClick deaktiviert. Nur Expedit kann abschließen
|
|
this.objectListViewAuftrag.ButtonClick -= objectListViewAuftrag_ButtonClick;
|
|
break;
|
|
case BenutzerRolle.Admin:
|
|
this.objectListViewAuftrag.ButtonClick += objectListViewAuftrag_ButtonClick;
|
|
break;
|
|
case BenutzerRolle.Waschstrasse:
|
|
this.buttonDrucken.Enabled = this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false;
|
|
this.groupBoxEtikett.Enabled = false;
|
|
|
|
// WENN Rolle Frottee (Expedit Frottee) dann ButtonClick deaktiviert. Nur Expedit kann abschließen
|
|
this.objectListViewAuftrag.ButtonClick -= objectListViewAuftrag_ButtonClick;
|
|
break;
|
|
case BenutzerRolle.Master:
|
|
this.objectListViewAuftrag.ButtonClick += objectListViewAuftrag_ButtonClick;
|
|
break;
|
|
case BenutzerRolle.Expedit:
|
|
this.objectListViewAuftrag.ButtonClick += objectListViewAuftrag_ButtonClick;
|
|
break;
|
|
case BenutzerRolle.Frottee:
|
|
this.buttonDrucken.Enabled = this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false;
|
|
this.groupBoxEtikett.Enabled = false;
|
|
|
|
// WENN Rolle Frottee (Expedit Frottee) dann ButtonClick deaktiviert. Nur Expedit kann abschließen
|
|
this.objectListViewAuftrag.ButtonClick -= objectListViewAuftrag_ButtonClick;
|
|
break;
|
|
case BenutzerRolle.Flach:
|
|
this.buttonDrucken.Enabled = this.buttonNeuerAuftrag.Enabled = this.buttonSWS_Drucken.Enabled = false;
|
|
this.groupBoxEtikett.Enabled = false;
|
|
|
|
// WENN Rolle Frottee (Expedit Frottee) dann ButtonClick deaktiviert. Nur Expedit kann abschließen
|
|
this.objectListViewAuftrag.ButtonClick -= objectListViewAuftrag_ButtonClick;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
//Auftragslisten erstellen und in ObjectListViews laden.
|
|
GetLists();
|
|
|
|
Load_Etikett_GroupBox();
|
|
|
|
if (letzterLiefertag != null) this.dTPLiefertag.Value = (DateTime)letzterLiefertag;
|
|
else this.dTPLiefertag.Value = DateTime.Today.AddDays(1);
|
|
Get_RadioButtons();
|
|
|
|
|
|
this.ResumeLayout();
|
|
Cursor.Current = Cursors.Default;
|
|
WindowState = FormWindowState.Maximized;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Auftragslisten erstellen und in ObjectListViews laden.
|
|
/// </summary>
|
|
private void GetLists()
|
|
{
|
|
// Lade die ListView für Aufträge vom aktuellen Tag.
|
|
auftraglist = Auftrag.GetAuftragListToday(DateTime.Today);
|
|
OLV_Load(this.objectListViewAuftrag, auftraglist);
|
|
|
|
// Lade die ListView für Sonderaufträge wie STV, STH, oder INVENTUR
|
|
sonderlist = Auftrag.GetExpeditLists((int)AuftragTyp.Sonder);
|
|
if (sonderlist.Count == 0) { this.tabControlAuftragList.TabPages.Remove(tabPageSonder); }
|
|
else { OLV_Load(this.objectListViewSonder, sonderlist); if(this.tabControlAuftragList.TabPages.Count < 2) this.tabControlAuftragList.TabPages.Insert(1, tabPageSonder); }
|
|
|
|
// Lade die Artikel eines Kunden.
|
|
//if (kunde!= null) this.artikelListe = KundeArtikel.GetList(kunde.KundeID.ToString());
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Wenn Timer abgelaufen Funktion für Autorefresh.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void Timer1_Tick(object sender, EventArgs e)
|
|
{
|
|
Cursor.Current = Cursors.WaitCursor;
|
|
|
|
if(auftrag != null)
|
|
{
|
|
Auftrag _auftrag = Auftrag.GetAuftrag(auftrag.AuftragID);
|
|
Load_Gridview(_auftrag);
|
|
}
|
|
|
|
Cursor.Current = Cursors.Default;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Laden Events (GroupBox_Etikett und GridView)
|
|
/// </summary>
|
|
private void Load_Etikett_GroupBox()
|
|
{
|
|
if (this.auftrag == null)
|
|
{
|
|
this.buttonKundeNr.Text = "Auftrag in der Liste wählen";
|
|
this.pictureBoxEntwurf.Image = null;
|
|
this.textBoxCont.Text = "0";
|
|
this.pictureBoxMinus.Enabled = this.pictureBoxPlus.Enabled = this.buttonDrucken.Enabled = false;
|
|
this.buttonDrucken.BackColor = Color.Gray;
|
|
this.pictureBoxMinus.BackColor = Color.Gray;
|
|
this.pictureBoxPlus.BackColor = Color.Gray;
|
|
foreach (Control ctr in this.groupBoxEtikett.Controls)
|
|
{
|
|
if (ctr.GetType() == typeof(Label)) ctr.Enabled = true;
|
|
else if (ctr.Enabled == true) ctr.Enabled = false;
|
|
}
|
|
this.dTPLiefertag.Enabled = true;
|
|
|
|
}
|
|
else
|
|
{
|
|
//Kunde holen und Name anzeigen
|
|
this.kunde = Kunde.GetKunde(null, this.auftrag.KundeID, null);
|
|
this.buttonKundeNr.Text = kunde.Suchtext;
|
|
|
|
//Containeranzahl und Liefertag anzeigen
|
|
if (neuecontclean != null) this.textBoxCont.Text = neuecontclean.ToString();
|
|
else this.textBoxCont.Text = this.auftrag.ContainerClean.ToString();
|
|
this.dTPLiefertag.Value = this.auftrag.Liefertag;
|
|
this.dTPLiefertag.Enabled = false;
|
|
|
|
//Buttons Enablen und BackColor wechsel
|
|
this.buttonDrucken.BackColor = Color.FromArgb(0, 192, 0);
|
|
this.pictureBoxPlus.BackColor = Color.FromArgb(0, 192, 0);
|
|
this.buttonDrucken.Enabled = this.pictureBoxPlus.Enabled = true;
|
|
|
|
this.auftrag.ContainerClean = int.Parse(this.textBoxCont.Text);
|
|
etikett = Funktionen.Etikett_Entwurf(this, this.auftrag, nocont);
|
|
this.pictureBoxEntwurf.Image = etikett;
|
|
}
|
|
}
|
|
private void Load_Gridview(Auftrag auftrag)
|
|
{
|
|
//Alle Einträge der DataGridView entfernen. Davor muss die DataSource entfernt werden.
|
|
this.dGArtikel.DataSource = null;
|
|
this.dGArtikel.Rows.Clear();
|
|
|
|
if (auftrag != null)
|
|
{
|
|
Aufgabe auf;
|
|
if (auftrag.AufgabeID.HasValue) auf = Aufgabe.GetAufgabe(null, auftrag.AufgabeID);
|
|
else auf = new Aufgabe();
|
|
|
|
this.dGArtikel.AutoGenerateColumns = false;
|
|
|
|
foreach (DataGridViewColumn col in this.dGArtikel.Columns)
|
|
{
|
|
col.DataPropertyName = col.Name;
|
|
if (col.Name.Contains("Bearbeitet")) col.Visible = false;
|
|
if (col.Name == "Fehlmenge")
|
|
{
|
|
if (auf.Bezeichnung == null || auf.Bezeichnung == "STA") col.Visible = true;
|
|
else col.Visible = false;
|
|
}
|
|
if (col.Name == "Korrektur")
|
|
{
|
|
if (auf.Bezeichnung != null && auf.Bezeichnung != "STA") col.Visible = true;
|
|
else col.Visible = false;
|
|
}
|
|
}
|
|
|
|
// DataGridView mit ArtikelStand Liste verbinden und Columns automatisch generieren.
|
|
artikelListe = KundeArtikel.GetList(auftrag.KundeID.ToString());
|
|
this.dGArtikel.DataSource = artikelListe;
|
|
|
|
this.dGArtikel.ClearSelection();
|
|
//this.dGArtikel.CurrentCell = this.dGArtikel.Rows[0].Cells[3];
|
|
|
|
// Alle Spaltenbreiten an den Zellinhalt anpassen
|
|
this.dGArtikel.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
|
|
// Alle Zeilenhöhen an Zellinhalt anpassen
|
|
this.dGArtikel.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Containeranzahl bearbeiten und Funktion wenn Text geändert wird.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void Container_Click(object sender, EventArgs e)
|
|
{
|
|
PictureBox pb = (PictureBox)sender;
|
|
int cont = int.Parse(this.textBoxCont.Text);
|
|
if (pb.Name.ToString().Contains("Plus")) { cont++; }
|
|
|
|
if (pb.Name.ToString().Contains("Minus"))
|
|
{
|
|
if (cont > 0)
|
|
{
|
|
cont--;
|
|
}
|
|
//else { pb.BackColor = Color.Gray; pb.Enabled = false; }
|
|
}
|
|
this.textBoxCont.Text = cont.ToString();
|
|
//Load_Etikett_GroupBox();
|
|
}
|
|
private void textBoxCont_TextChanged(object sender, EventArgs e)
|
|
{
|
|
if(int.TryParse(this.textBoxCont.Text, out int result))
|
|
{
|
|
if (this.auftrag != null) { neuecontclean = result; altecontclean = this.auftrag.ContainerClean; }
|
|
|
|
if (result == 0) { this.pictureBoxMinus.Enabled = false; this.pictureBoxMinus.BackColor = Color.Gray; }
|
|
else { this.pictureBoxMinus.Enabled = true; this.pictureBoxMinus.BackColor = Color.Red; }
|
|
|
|
if (!nocontclicked)
|
|
{
|
|
if (result >= 10) { nocont = true; cBNoCont.Checked = true; }
|
|
else { nocont = false; cBNoCont.Checked = false; }
|
|
}
|
|
Load_Etikett_GroupBox();
|
|
}
|
|
else
|
|
{
|
|
meldung.Eingabefehler();
|
|
this.textBoxCont.Text = "0";
|
|
this.textBoxCont.Focus();
|
|
}
|
|
}
|
|
private void cBNoCont_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (cBNoCont.Checked) nocont = true;
|
|
else nocont = false;
|
|
|
|
if (kunde != null) Load_Etikett_GroupBox();
|
|
}
|
|
private void cBNoCont_Click(object sender, EventArgs e)
|
|
{
|
|
if (cBNoCont.Checked) nocont = nocontclicked = true;
|
|
else { nocont = false; nocontclicked = true; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Button Events (SWS-Drucken, Etikette-Drucken, Kundeauswahl, Abbrechen)
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void buttonDrucken_Click(object sender, EventArgs e)
|
|
{
|
|
//AUFTRAG UPDATE
|
|
this.auftrag.ContainerClean = int.Parse(this.textBoxCont.Text);
|
|
letzterLiefertag = this.auftrag.Liefertag = this.dTPLiefertag.Value;
|
|
|
|
//ETIKETT DRUCKEN
|
|
DialogResult result = Funktionen.Etikett_Drucken(auftrag, nocont);
|
|
if(result == DialogResult.OK)
|
|
{
|
|
this.auftrag.Gedruckt = this.auftrag.Erstellt = DateTime.Now;
|
|
this.auftrag.GedrucktVon = this.auftrag.ErstelltVon = (int)this.benutzer.BenutzerID;
|
|
this.auftrag.Status = AuftragStatus.Vorbereitet;
|
|
this.auftrag.Save();
|
|
this.auftrag = null;
|
|
FormExpedit_Load(this, e);
|
|
this.dGArtikel.DataSource = null;
|
|
this.dGArtikel.Rows.Clear();
|
|
}
|
|
|
|
//AUFTRAG SPEICHERN
|
|
}
|
|
private void buttonKundeNr_Click(object sender, EventArgs e)
|
|
{
|
|
//Open_List();
|
|
|
|
if (kunde != null)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(kunde.Suchtext)) this.buttonKundeNr.Text = kunde.KundeName;
|
|
else this.buttonKundeNr.Text = kunde.Suchtext;
|
|
this.dTPLiefertag.Enabled = true;
|
|
this.pictureBoxPlus.Enabled = true;
|
|
this.pictureBoxPlus.BackColor = Color.FromArgb(0, 192, 0);
|
|
Get_RadioButtons();
|
|
}
|
|
}
|
|
private void buttonNeuerAuftrag_Click(object sender, EventArgs e)
|
|
{
|
|
FormNeuerAuftrag neuerAuftrag = new FormNeuerAuftrag(benutzer, this.letzterLiefertag);
|
|
if (neuerAuftrag.ShowDialog() == DialogResult.OK)
|
|
{
|
|
this.letzterLiefertag = neuerAuftrag.letzterLiefertag;
|
|
List<Auftrag> auftraglist = Auftrag.GetAuftragListToday(DateTime.Today);
|
|
OLV_Load(this.objectListViewAuftrag, auftraglist);
|
|
}
|
|
}
|
|
private void buttonSWS_Drucken_Click(object sender, EventArgs e)
|
|
{
|
|
Kunde knd = Funktionen.KundenAuswahl();
|
|
if(knd != null) Funktionen.SWS_Drucken(null, knd, this);
|
|
}
|
|
private void buttonAbbrechen_Click(object sender, EventArgs e)
|
|
{
|
|
this.DialogResult = DialogResult.Cancel;
|
|
this.Close();
|
|
}
|
|
|
|
/// <summary>
|
|
/// ObjectListView Funktionen
|
|
/// </summary>
|
|
private void objectListViewAuftrag_CellClick(object sender, CellClickEventArgs e)
|
|
{
|
|
if(e.Model == null) return;
|
|
ObjectListView olv = (ObjectListView)sender;
|
|
Auftrag _auftrag = (Auftrag)e.Model;
|
|
if (_auftrag.Status != AuftragStatus.Fertig)
|
|
{
|
|
this.auftrag = _auftrag;
|
|
this.neuecontclean = null;
|
|
Load_Etikett_GroupBox();
|
|
this.artikelListe = KundeArtikel.GetList(kunde.KundeID.ToString());
|
|
Load_Gridview(this.auftrag);
|
|
}
|
|
else
|
|
{
|
|
fehlermeldung.AuftragFertig();
|
|
}
|
|
foreach (Control ctr in this.groupBoxEtikett.Controls) if (ctr.Enabled == false) ctr.Enabled = true;
|
|
this.buttonKundeNr.Enabled = false;
|
|
olv.Focus();
|
|
|
|
}
|
|
private void objectListViewAuftrag_ButtonClick(object sender, CellClickEventArgs e)
|
|
{
|
|
Cursor.Current = Cursors.WaitCursor;
|
|
|
|
ObjectListView olv = (ObjectListView)sender;
|
|
Auftrag _auftrag = (Auftrag)e.Model;
|
|
if (this.auftrag != _auftrag) neuecontclean = null;
|
|
|
|
this.auftrag = _auftrag;
|
|
//Load_Etikett_GroupBox();
|
|
|
|
if (this.auftrag.ContainerClean == 0)
|
|
{
|
|
switch (this.auftrag.Typ)
|
|
{
|
|
case AuftragTyp.Unbekannt:
|
|
break;
|
|
case AuftragTyp.Standart:
|
|
if (meldung.NoCleanContainer() == DialogResult.OK) return;
|
|
break;
|
|
case AuftragTyp.Sonder:
|
|
if (meldung.SonderNoCleanContainer() == DialogResult.Yes)
|
|
{
|
|
this.auftrag.Status = AuftragStatus.Fertig;
|
|
this.auftrag.Save();
|
|
this.auftrag = null;
|
|
Load_Etikett_GroupBox();
|
|
}
|
|
else return;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (neuecontclean != null && neuecontclean != altecontclean)
|
|
{
|
|
switch (meldung.DifferentCleanContainer())
|
|
{
|
|
case DialogResult.Cancel:
|
|
break;
|
|
case DialogResult.Yes:
|
|
{
|
|
this.auftrag.ContainerClean = (int)neuecontclean;
|
|
neuecontclean = null;
|
|
//this.auftrag.Liefertag = dTPLiefertag.Value;
|
|
//WENN BEARBEITET UND AUSGEDRUCKT WIRD GEDRUCKT VERÄNDERT UND ERSTELLT IST URSPRUNGSDATUM
|
|
this.auftrag.Gedruckt = DateTime.Now;
|
|
this.auftrag.GedrucktVon = benutzer.BenutzerID;
|
|
this.auftrag.Status = AuftragStatus.Fertig;
|
|
|
|
bool nocont = false;
|
|
if (MessageBox.Show("Möchtest du die Containeranzahl am Etikett anzeigen?", "FRAGE", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
|
{
|
|
nocont = true;
|
|
}
|
|
else nocont = false;
|
|
|
|
DialogResult result = Funktionen.Etikett_Drucken(auftrag, nocont);
|
|
if (result == DialogResult.OK)
|
|
{
|
|
this.auftrag.Save();
|
|
this.auftrag = null;
|
|
}
|
|
}
|
|
break;
|
|
case DialogResult.No:
|
|
{
|
|
this.auftrag.ContainerClean = (int)neuecontclean;
|
|
neuecontclean = null;
|
|
//this.auftrag.Liefertag = dTPLiefertag.Value;
|
|
//WENN BEARBEITET UND NICHT GEDRUCKT WIRD ERSTELLT VERÄNDERT UND GEDRUCKT IST URSPRUNGSDATUM
|
|
this.auftrag.Erstellt = DateTime.Now;
|
|
this.auftrag.ErstelltVon = (int)benutzer.BenutzerID;
|
|
this.auftrag.Status = AuftragStatus.Fertig;
|
|
|
|
this.auftrag.Save();
|
|
this.auftrag = null;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.auftrag.Status = AuftragStatus.Fertig;
|
|
this.auftrag.Save();
|
|
this.auftrag = null;
|
|
Load_Etikett_GroupBox();
|
|
}
|
|
|
|
}
|
|
olv.RefreshObject(e);
|
|
GetLists();
|
|
if (olv.Name.Contains("Sonder")) OLV_Load(olv, this.sonderlist);
|
|
else OLV_Load(olv, this.auftraglist);
|
|
Load_Gridview(this.auftrag);
|
|
|
|
Cursor.Current = Cursors.Default;
|
|
}
|
|
private void OLV_Load(ObjectListView olv, List<Auftrag> auftraglist)
|
|
{
|
|
Cursor.Current = Cursors.WaitCursor;
|
|
olv.SuspendLayout();
|
|
olv.BeginUpdate();
|
|
|
|
Generator.GenerateColumns(olv, typeof(Auftrag), true);
|
|
olv.SetObjects(auftraglist);
|
|
OLVColumn sortcolumn = (OLVColumn)olv.Columns[5];
|
|
olv.Sort(sortcolumn);
|
|
OLVColumn buttonColumn = new OLVColumn();
|
|
buttonColumn = (OLVColumn)olv.Columns[10];
|
|
buttonColumn.IsButton = true;
|
|
buttonColumn.ButtonSizing = OLVColumn.ButtonSizingMode.CellBounds;
|
|
|
|
|
|
|
|
olv.CheckedAspectName = "IsChecked";
|
|
Funktionen.Columns_Resize(olv);
|
|
olv.Columns[0].Width = 0;
|
|
olv.Columns[7].Width = 0;
|
|
olv.Columns[8].Width = 0;
|
|
olv.Columns[9].Width = 0;
|
|
|
|
if (olv.Name.Contains("Auftrag"))
|
|
{
|
|
this.labelauftragtag.Text = olv.Items.Count.ToString();
|
|
int summe = 0;
|
|
foreach(var obj in olv.Objects)
|
|
{
|
|
Auftrag auf = (Auftrag)obj;
|
|
if(auf.Erstellt.Value.Date == DateTime.Now.Date) summe += auf.ContainerClean;
|
|
}
|
|
this.labelcontainertag.Text = summe.ToString();
|
|
}
|
|
|
|
|
|
olv.EndUpdate();
|
|
olv.ResumeLayout();
|
|
Cursor.Current = Cursors.Default;
|
|
}
|
|
|
|
//Ursprünglich war der Zugang zu AuftragDetails über DoubleClick möglich. Womöglich nicht notwendig.
|
|
private void objectListViewAuftrag_MouseDoubleClick(object sender, MouseEventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Get_RadioButtons bearbeitet die Tagesauswahlbuttons.
|
|
/// Liefertag wird ermittelt und in Day of Week umgerechnet.
|
|
/// </summary>
|
|
private void Get_RadioButtons()
|
|
{
|
|
if (kunde != null)
|
|
{
|
|
foreach (RadioButton rb in this.groupBoxEtikett.Controls.OfType<RadioButton>())
|
|
{
|
|
if (rb.Name.Contains("MO")) rb.Tag = Liefertag.MO;
|
|
if (rb.Name.Contains("Di")) rb.Tag = Liefertag.DI;
|
|
if (rb.Name.Contains("MI")) rb.Tag = Liefertag.MI;
|
|
if (rb.Name.Contains("DO")) rb.Tag = Liefertag.DO;
|
|
if (rb.Name.Contains("FR")) rb.Tag = Liefertag.FR;
|
|
|
|
rb.Enabled = true;
|
|
}
|
|
}
|
|
else foreach (RadioButton rb in this.groupBoxEtikett.Controls.OfType<RadioButton>()) rb.Enabled = false;
|
|
|
|
}
|
|
private void dTPLiefertag_Leave(object sender, EventArgs e)
|
|
{
|
|
foreach (RadioButton liefertag in this.groupBoxEtikett.Controls.OfType<RadioButton>())
|
|
{
|
|
if (liefertag.Name.Contains(((Liefertag)dTPLiefertag.Value.DayOfWeek).ToString())) liefertag.Checked = true;
|
|
}
|
|
}
|
|
private void Liefertag_rB_Checked(object sender, EventArgs e)
|
|
{
|
|
foreach (RadioButton radioButton in this.groupBoxEtikett.Controls.OfType<RadioButton>())
|
|
{
|
|
if (radioButton.Checked) radioButton.BackColor = Color.Yellow;
|
|
else { radioButton.BackColor = Color.Gray; }
|
|
}
|
|
}
|
|
private void Liefertag_rB_Click(object sender, EventArgs e)
|
|
{
|
|
RadioButton radioButton = (RadioButton)sender;
|
|
foreach (Liefertag tag in Enum.GetValues(typeof(Liefertag)))
|
|
{
|
|
if (radioButton.Name.Contains(tag.ToString())) this.dTPLiefertag.Value = Berechnungen.GetNextWeekday((int)tag);
|
|
}
|
|
this.dTPLiefertag.Enabled = false;
|
|
}
|
|
private void dTPLiefertag_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
dTPLiefertag_Leave(sender, e);
|
|
|
|
if (this.auftrag != null)
|
|
{
|
|
this.auftrag.Liefertag = this.dTPLiefertag.Value;
|
|
Load_Etikett_GroupBox();
|
|
}
|
|
}
|
|
private void listViewSonder_ItemChecked(object sender, ItemCheckedEventArgs e)
|
|
{
|
|
ListView lv = (ListView)sender;
|
|
}
|
|
|
|
//WENN TAB GEWECHSELT ANZEIGE AKTUALISIEREN
|
|
private void tabControlAuftragList_Selected(object sender, TabControlEventArgs e)
|
|
{
|
|
TabControl tabControl = (TabControl)sender;
|
|
if(tabControl.SelectedIndex < 3) { this.groupBoxEtikett.Visible = true; }
|
|
if(tabControl.SelectedIndex == 3) { this.groupBoxEtikett.Visible = false; }
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Vor Beginn der Editierung wird Wert gespeichert um nach der Editierung vergleichen und eventuell speichern zu können.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void dGArtikel_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
|
|
{
|
|
DataGridView dataGrid = sender as DataGridView;
|
|
beforeedit = int.Parse(dataGrid.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
|
|
}
|
|
private void dGArtikel_CellEndEdit(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
DataGridView dgV = (DataGridView)sender;
|
|
// Aktuelle Zeile holen
|
|
var row = dgV.Rows[e.RowIndex];
|
|
var cell = row.Cells[e.ColumnIndex];
|
|
// Werte aus der Zeile auslesen
|
|
KundeArtikel stand = KundeArtikel.GetItem((int)row.Cells[0].Value);
|
|
if (cell.ColumnIndex == 4) { stand.Stand = int.Parse(row.Cells[4].Value.ToString()); stand.StandBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString(); }
|
|
if (cell.ColumnIndex == 5) { stand.Fehlmenge = int.Parse(row.Cells[5].Value.ToString()); stand.FehlmengeBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString(); }
|
|
if (cell.ColumnIndex == 6)
|
|
{
|
|
if (int.Parse(row.Cells[6].Value.ToString()) == 0)
|
|
{
|
|
stand.Stand = stand.Stand + beforeedit;
|
|
stand.Korrektur = int.Parse(row.Cells[6].Value.ToString());
|
|
stand.StandBearbeitet = stand.KorrekturBearbeitet = this.benutzer.BenutzerName + " am " + DateTime.Now.ToString();
|
|
}
|
|
|
|
}
|
|
|
|
// Hier kannst du die Werte speichern, z.B. in Datenbank oder Liste
|
|
if (stand.Save() != 1) meldung.Speicherfehler();
|
|
else Load_Gridview(this.auftrag);
|
|
}
|
|
private void dGArtikel_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
|
|
{
|
|
if (e.ColumnIndex >= 5)
|
|
{
|
|
DataGridView dgv = (DataGridView)sender;
|
|
DataGridViewCell dgc = dgv.CurrentCell;
|
|
if (!int.TryParse(dgc.EditedFormattedValue.ToString(), out int i))
|
|
{
|
|
meldung.Eingabefehler();
|
|
e.Cancel = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Beim Wechsel der Tabs wird die DataGridView geleert.
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void tabControlAuftragList_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
this.dGArtikel.DataSource = null;
|
|
this.dGArtikel.Rows.Clear();
|
|
|
|
}
|
|
|
|
private void FormExpedit_HelpButtonClicked(object sender, System.ComponentModel.CancelEventArgs e)
|
|
{
|
|
string[] keys = {
|
|
"Aufgelegt",
|
|
"Hergerichtet",
|
|
"Fertig" };
|
|
|
|
string[] keytext = {
|
|
"Auftrag wurde erstellt aber noch nicht ferig hergerichtet",
|
|
"Auftrag wurde fertig hergerichtet aber nicht abgeschlossen. Containeranzahl kann noch bearbeitet werden.",
|
|
"Auftrag wurde abgeschlossen und kann nichtmehr bearbeitet werden."};
|
|
|
|
FormHelp help = new FormHelp(keys, keytext);
|
|
help.ShowDialog();
|
|
e.Cancel = true;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//TODO: Zweites Auftrag-Tab für vergangene Aufträge. Möglichkeit zur Kontrolle und diese als "ausgeliefert" zu markieren.
|
|
}
|
|
}
|