private void NeueAnmeldungMaschine_Click(object sender, RoutedEventArgs e) { var form = new FormNeueAnmeldung(_ListeBediener.Daten, _ListeMaschinen.Daten, _Maschine); if (_ListeAnmeldungen.ErgebnissFormular(form.ShowDialog(), true, form.AnmeldungMaschine)) { var anmeldungAlt = form.AnmeldungMaschine.eBediener.eAktivAnmeldung; if (anmeldungAlt != null) { BedienerVonReparaturAbmelden(anmeldungAlt.eMaschine, anmeldungAlt.eBediener); BenutzerVonMaschineAbmelden(anmeldungAlt, form.AnmeldungMaschine.Anmeldung); } form.AnmeldungMaschine.eBediener.eAktivAnmeldung = form.AnmeldungMaschine; if (form.AnmeldungMaschine.eMaschine.eAktivReparatur != null) { var anmeldRepa = new tabAnmeldungReparatur() { Id = Guid.NewGuid(), Anmeldung = form.AnmeldungMaschine.Anmeldung, eBediener = form.AnmeldungMaschine.eBediener, eReparatur = form.AnmeldungMaschine.eMaschine.eAktivReparatur, }; _Db.tabAnmeldungReparaturSet.Add(anmeldRepa); } _Db.SaveChanges(); TreeViewMaschinenAktualisieren(); } }
//private void GeheZu(Guid? Id) //{ // if (Id == null) // return; // try // { // foreach (var dsMaschine in treeViewMaschinen.Items) // { // if ((dsMaschine as tabMaschine).Id == Id) // { // (treeViewMaschinen.ItemContainerGenerator.ContainerFromItem(dsMaschine) as TreeViewItem).IsSelected = true; // return; // } // var itemMaschine = (TreeViewItem)treeViewMaschinen.ItemContainerGenerator.ContainerFromItem(dsMaschine); // foreach (var dsAnmeldung in itemMaschine.Items) // { // if ((dsAnmeldung as tabAnmeldungMaschine).Id == Id) // { // (itemMaschine.ItemContainerGenerator.ContainerFromItem(dsAnmeldung) as TreeViewItem).IsSelected = true; // return; // } // } // } // } // catch { } //} #region Reparaturen ************************************************************ private void NeueReparaturErstellen_Click(object sender, RoutedEventArgs e) { if (_Maschine == null) { Helper.InfoBox("Bitte Maschine in linker Tabelle auswahlen !", Helper.ProtokollArt.Warnung); } else if (_Maschine.fAktivReparatur != null) { Helper.InfoBox($"Die Maschine {_Maschine.MaschinenName} ist bereits im Reparaturmodus.", Helper.ProtokollArt.Info); } else { var form = new Fenster.FormReparatur(null, _ListeBediener.Daten, _Maschine); if (_ListeReparaturen.ErgebnissFormular(form.ShowDialog(), true, form.Reparatur)) { _Maschine.eAktivReparatur = form.Reparatur; foreach (var anmeldungMaschine in _Maschine.AktiveAnmeldungen) { var anmledRep = new tabAnmeldungReparatur() { Id = Guid.NewGuid(), Anmeldung = form.Reparatur.VorgangBeginn, eReparatur = form.Reparatur, eBediener = anmeldungMaschine.eBediener }; _Db.tabAnmeldungReparaturSet.Add(anmledRep); } TreeViewMaschinenAktualisieren(); ((CollectionViewSource)FindResource("vsReparaturAktuellBediener")).View.Refresh(); _Db.SaveChanges(); } } }
private static void ProgrammeEintragen(ScannerOptionen Optionen, tabMaschine Maschine, ScannerText e) { string msg = ""; var reparatur = Maschine.eAktivReparatur; if (e.VorgangProgramm == VorgangProgram.REPA_ENDE) { if (reparatur == null) { e.FehlerAusgabe(" ", "Kein Vorgang", "angemeldet !"); } else { e.SendeText("Vorgang beendet", " ", $"> {reparatur.Vorgang.ToString().ToUpper()} <", " ", Maschine.MaschinenName); reparatur.VorgangEnde = DateTime.Now; Maschine.eAktivReparatur = null; foreach (var anmledungReparatur in reparatur.sAnmeldungen.Where(w => w.IstAktiv).ToList()) { anmledungReparatur.Abmeldung = reparatur.VorgangEnde; } msg = $"Reparatur {reparatur.Vorgang} an Maschine {Maschine.MaschinenName} beendet."; Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Information); }; } else // Anmeldung einer Reparatur { if (reparatur != null) { e.FehlerAusgabe(" ", $"> {reparatur.Vorgang.ToString().ToUpper()} <", "bereits angemeldet !"); } else { reparatur = new tabReparatur() { Id = Guid.NewGuid(), VorgangBeginn = DateTime.Now, fMaschine = Maschine.Id, }; switch (e.VorgangProgramm) { case VorgangProgram.REPASTART: reparatur.Vorgang = EnumReperaturVorgang.Reparatur; break; case VorgangProgram.WARTSTART: reparatur.Vorgang = EnumReperaturVorgang.Wartung; break; case VorgangProgram.COILSTART: reparatur.Vorgang = EnumReperaturVorgang.Coilwechsel; break; } var anzCoils = " "; if (e.VorgangProgramm == VorgangProgram.COILSTART) { reparatur.CoilwechselAnzahl = Convert.ToByte(e.ScannerKoerper); anzCoils = $"Anzahl {reparatur.CoilwechselAnzahl}"; } e.SendeText("Beginn Vorgang", " ", $"> {reparatur.Vorgang.ToString().ToUpper()} <", anzCoils, Maschine.MaschinenName); Maschine.eAktivReparatur = reparatur; foreach (var anmeldungen in Maschine.AktiveAnmeldungen) { var anmeldungReparatur = new tabAnmeldungReparatur() { Id = Guid.NewGuid(), Anmeldung = reparatur.VorgangBeginn, fBediener = anmeldungen.fBediener, fReparatur = reparatur.Id, }; Optionen.DbScann.tabAnmeldungReparaturSet.Add(anmeldungReparatur); } msg = $"Reparatur {reparatur.Vorgang} an Maschine {Maschine.MaschinenName} gestartet."; Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Information); } } }
private static void BedienerAnmelden(ScannerOptionen Optionen, tabMaschine Maschine, ScannerText ScText) { string msg = ""; var matchCode = ScText.ScannerKoerper; var anmeldungVorhanden = Maschine.AktiveAnmeldungen.FirstOrDefault(f => f.eBediener.MatchCode == matchCode); if ((ScText.VorgangProgramm == VorgangProgram.ANMELDUNG) && (anmeldungVorhanden != null)) { ScText.FehlerAusgabe("Sie sind bereits an", Maschine.MaschinenName, "angemeldet !"); return; } var bediener = anmeldungVorhanden?.eBediener; if (anmeldungVorhanden == null) { bediener = SuchBediener(Optionen, ScText); if (bediener == null) { return; } anmeldungVorhanden = bediener.eAktivAnmeldung; } // Wenn Bediener an anderer Maschine angemeldet -> abmelden if (anmeldungVorhanden != null) { // Kontrolle, ob an anderer Maschine eine Reparatur läuft if (anmeldungVorhanden.eMaschine.eAktivReparatur != null) { var anmeldungReparatur = anmeldungVorhanden.eMaschine.eAktivReparatur.sAnmeldungen.FirstOrDefault(f => f.IstAktiv && (f.fBediener == bediener.Id)); if (anmeldungReparatur != null) { anmeldungReparatur.Abmeldung = DateTime.Now; } } anmeldungVorhanden.Abmeldung = DateTime.Now; anmeldungVorhanden.ManuelleAbmeldung = false; anmeldungVorhanden.eBediener.eAktivAnmeldung = null; } if (ScText.VorgangProgramm == VorgangProgram.ABMELDUNG) { if (anmeldungVorhanden == null) { ScText.FehlerAusgabe("Sie sind an keiner", "Maschine", "angemeldet !"); return; } ScText.SendeText(" - Abmeldung -", anmeldungVorhanden.eBediener.Name, anmeldungVorhanden.eMaschine.MaschinenName); msg = $"Bediener {anmeldungVorhanden.eBediener.Name} an Maschine {anmeldungVorhanden.eMaschine.MaschinenName} abgemeldet."; Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Information); } else // Anmeldung an Maschine { ScText.SendeText(" ", "- A N M E L D U N G -", " ", bediener.Name, Maschine.MaschinenName); var anmeldungNeu = new tabAnmeldungMaschine() { Id = Guid.NewGuid(), Anmeldung = DateTime.Now, fBediener = bediener.Id, fMaschine = Maschine.Id, ManuelleAnmeldung = false, ManuelleAbmeldung = false, }; Optionen.DbScann.tabAnmeldungMaschineSet.Add(anmeldungNeu); bediener.fAktivAnmeldung = anmeldungNeu.Id; // Wenn eine Reparatur läuft, an dieser anmelden if (Maschine.eAktivReparatur != null) { var anmeldungReparatur = new tabAnmeldungReparatur() { Id = Guid.NewGuid(), Anmeldung = DateTime.Now, fBediener = bediener.Id, fReparatur = (Guid)Maschine.fAktivReparatur, }; Optionen.DbScann.tabAnmeldungReparaturSet.Add(anmeldungReparatur); } msg = $"Bediener {bediener.Name} an Maschine {Maschine.MaschinenName} angemeldet."; Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Verbose); } }