private void BenutzerVonMaschineAbmelden(tabAnmeldungMaschine Anmeldung, DateTime ZeitAbmeldung) { if (Anmeldung != null) { Anmeldung.AnzeigeAbmeldung = ZeitAbmeldung; Anmeldung.ManuelleAbmeldung = true; Anmeldung.eBediener.eAktivAnmeldung = null; } }
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); } }