private static tabBediener SuchBediener(ScannerOptionen Optionen, ScannerText ScText) { var bed = Optionen.DbScann.tabBedienerSet.FirstOrDefault(f => f.MatchCode == ScText.ScannerKoerper); if (bed != null) { return(bed); } ScText.FehlerAusgabe("Bediener mit Matchcode", ScText.ScannerKoerper, "nicht vorhanden!"); var msg = $"Bediener mit Matchcode {ScText.ScannerKoerper} nicht vorhanden."; Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Verbose); return(null); }
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); } }
private static void Bf2dEintragen(ScannerOptionen Optionen, tabMaschine Maschine, ScannerText ScText) { string msg = ""; BvbsDatenaustausch btNeu = null; try { btNeu = new BvbsDatenaustausch(ScText.ScannerVorgangScan + ScText.ScannerKoerper, false); } catch (Exception f) { ScText.FehlerAusgabe("BVBS Code konnte nicht", "gelesen werden !"); msg = $"Bvbs Code konnte icht gelesen Werden.\nGrund: {f.Message}"; Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Warning); return; } if (Maschine.eAktivBauteil != null) { var letztesBt = Maschine.eAktivBauteil; letztesBt.DatumEnde = DateTime.Now; if (btNeu.BvbsString == letztesBt.BvbsCode) { msg = $"BauteilMaschine: {Maschine.MaschinenName}\nProject: {btNeu.ProjektNummer} erledigt"; Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Verbose); ScText.SendeText(" ", " - Bauteil erledigt -"); Maschine.eAktivBauteil = null; return; } } if (ScText.VorgangScan == VorgangScanner.BF2D) { DatenAnMaschineSenden(Optionen, Maschine, btNeu.BvbsString); } var btInDatenBank = Optionen.DbScann.tabBauteilSet.FirstOrDefault(f => ((f.fMaschine == Maschine.Id) && (f.BvbsCode == btNeu.BvbsString))); if (btInDatenBank != null) { msg = $"Bauteil an Maschine {Maschine.MaschinenName} bereits am {btInDatenBank.DatumStart.ToString("dd.MM.yy HH:mm")} gefertigt."; Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Verbose); ScText.FehlerAusgabe("Bauteil bereits am", btInDatenBank.DatumStart.ToString("dd.MM.yy HH:mm"), "gefertigt."); } else { ScText.SendeText(" ", "- Bauteil OK -"); var bvbs = new BvbsDatenaustausch(btNeu.BvbsString, false); var btNeuErstellt = new tabBauteil() { Id = Guid.NewGuid(), DatumStart = DateTime.Now, eMaschine = Maschine, BvbsCode = btNeu.BvbsString, BvbsDaten = bvbs, BtGewicht = StahlGewichte.GetGewichtKg((int)btNeu.Durchmesser, (int)btNeu.Laenge), IstHandeingabe = false, IstVorfertigung = Maschine.IstStangenschneider && ((byte)btNeu.ListeGeometrie.Count == 0), AnzahlBediener = (byte)Maschine.AktiveAnmeldungen.Count(), }; foreach (var bed in Maschine.AktiveAnmeldungen) { btNeuErstellt.sBediener.Add(bed.eBediener); } Maschine.eAktivBauteil = btNeuErstellt; msg = $"BT erstellt. Maschine: {Maschine.MaschinenName}\n Project: {btNeu.ProjektNummer} Anzahl: {btNeu.Anzahl} Gewicht: {btNeuErstellt.BtGewicht}"; Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Verbose); } }