Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
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);
            }
        }
Beispiel #4
0
        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);
            }
        }