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