예제 #1
0
        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();
            }
        }
예제 #2
0
        //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();
                }
            }
        }
예제 #3
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);
                }
            }
        }
예제 #4
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);
            }
        }