Beispiel #1
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();
                }
            }
        }
Beispiel #2
0
        public bool ErgebnissFormular(bool?ErgebnissShowDialog, bool istNeu, K Datensatz)
        {
            if (ErgebnissShowDialog ?? false)
            {
                if (istNeu)
                {
                    Add(Datensatz);
                }
                else
                {
                    _Db.SaveChanges();
                }

                return(true);
            }
            else if (!istNeu)
            {
                MerkeZeile();
                Reload(Datensatz);
                Refresh();
                GeheZuZeile();
            }

            return(false);
        }
Beispiel #3
0
        private tabArbeitszeitAuswertung ArbeitszeitAuswertungErstellen(tabBediener Bediener, short Jahr, byte Monat, TimeSpan SollStundenMonat)
        {
            var az = new tabArbeitszeitAuswertung()
            {
                Id        = Guid.NewGuid(),
                fBediener = Bediener.Id,
                Jahr      = Jahr,
                Monat     = Monat,
                Urlaub    = 0,
                AuszahlungUeberstunden = "00:00",
                SollStunden            = JgZeit.ZeitInString(SollStundenMonat),
                Status = EnumStatusArbeitszeitAuswertung.InArbeit,
            };

            _Db.tabArbeitszeitAuswertungSet.Add(az);
            _Db.SaveChanges();

            return(az);
        }
Beispiel #4
0
        public static void DatenAusDatenbankLaden(OptionenArbeitszeit Optionen)
        {
            string msg;

            try
            {
                using (var Db = new JgModelContainer())
                {
                    if (Optionen.VerbindungsString != "")
                    {
                        Db.Database.Connection.ConnectionString = Optionen.VerbindungsString;
                    }

                    msg = $"Datenbank öffnen -> {Db.Database.Connection.ConnectionString}";
                    Logger.Write(msg, "Service", 0, 0, TraceEventType.Information);

                    Optionen.ListeTerminals = Db.tabArbeitszeitTerminalSet.Where(w => !w.DatenAbgleich.Geloescht).Include(i => i.eStandort).ToList();
                    msg = $"{Optionen.ListeTerminals.Count} Terminals aus DB eingelesen";
                    Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);

                    if (Optionen.ErsterDurchlauf)
                    {
                        Optionen.ErsterDurchlauf = false;
                        var anzFehlerNichtNull = Optionen.ListeTerminals.Where(w => w.AnzahlFehler > 0).ToList();
                        if (anzFehlerNichtNull.Count > 0)
                        {
                            foreach (var nn in anzFehlerNichtNull)
                            {
                                nn.AnzahlFehler = 0;
                            }
                            Db.SaveChanges();
                        }
                    }

                    Optionen.UpdateBenutzerAusfuehren = (Optionen.ListeTerminals.Any(w => w.UpdateTerminal));
                    if (Optionen.UpdateBenutzerAusfuehren)
                    {
                        Optionen.ListeBediener = Db.tabBedienerSet.Where(w => (w.Status != EnumStatusBediener.Stillgelegt) && (!w.DatenAbgleich.Geloescht)).ToList();
                        msg = $"{Optionen.ListeBediener.Count} Bediener für Update Terminal aus DB eingelesen";
                        Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);
                    }
                }
                msg = $"Daten aus Datenbank erfolgreich geladen.";
                Logger.Write(msg, "Service", 0, 0, TraceEventType.Information);
            }
            catch (Exception f)
            {
                msg = $"Fehler beim Laden der Daten aus der Datenbank.";
                throw new MyException(msg, f);
            }
        }
Beispiel #5
0
        private async void Window_Loaded(object sender, RoutedEventArgs e)
        {
            _Db       = new JgModelContainer();
            _Standort = await _Db.tabStandortSet.FirstOrDefaultAsync(f => f.Id == Properties.Settings.Default.IdStandort);

            if (_Standort == null)
            {
                _Standort = await _Db.tabStandortSet.FirstOrDefaultAsync();
            }

            tblStandort.Text = _Standort.Bezeichnung;

            InitListen();

            _Report = new FastReport.Report()
            {
                FileName = "Datenbank"
            };
            _ReportSettings.CustomSaveReport += (obj, repEvent) =>
            {
                MemoryStream memStr = new MemoryStream();
                try
                {
                    repEvent.Report.Save(memStr);
                    _Db.tabAuswertungSet.Attach(_AktAuswertung);
                    _AktAuswertung.Report         = memStr.ToArray();
                    _AktAuswertung.GeaendertDatum = DateTime.Now;
                    _AktAuswertung.GeaendertName  = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                    _Db.SaveChanges();
                }
                catch (Exception f)
                {
                    Helper.InfoBox("Fehler beim speichern des Reports!", f);
                }
                finally
                {
                    memStr.Dispose();
                }
            };

            _TimerAktualisierungTreeView = new DispatcherTimer(new TimeSpan(0, 1, 0), DispatcherPriority.ApplicationIdle, (sen, erg) =>
            {
                TreeViewMaschinenAktualisieren();
            }, Dispatcher.CurrentDispatcher);
        }
Beispiel #6
0
        public void DatenInDatenbankEintragen(List <HandyDaten> ListeDaten)
        {
            var listeAuswertung = ListeDaten.Select(s => new ArbeitszeitImportDaten()
            {
                Datum     = s.timestamp,
                MatchCode = s.userId,
                Vorgang   = s.isCheckIn ? ArbeitszeitImportDaten.EnumVorgang.Komme : ArbeitszeitImportDaten.EnumVorgang.Gehen,
                Baustelle = s.construction
            }).ToList();

            var msg = "";

            try
            {
                using (var Db = new JgModelContainer())
                {
                    if (!string.IsNullOrWhiteSpace(_ConnectionString))
                    {
                        Db.Database.Connection.ConnectionString = _ConnectionString;
                    }

                    var azImport = new ArbeitszeitImport();
                    azImport.ImportStarten(Db, listeAuswertung);

                    Db.SaveChanges();

                    msg = $"{azImport.AnzahlAnmeldungen} Handy Anmeldungen in Datenbank gespeichert.\n{azImport.ProtokollOk}";
                    Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);

                    if (azImport.ProtokollFehler != null)
                    {
                        msg = $"Anmeldungen ohne Benutzerzuordnung.\n{azImport.ProtokollFehler}";
                        Logger.Write(msg, "Service", 0, 0, TraceEventType.Warning);
                    }
                }
            }
            catch (Exception f)
            {
                msg = "Fehler beim eintragen der Anmeldedaten in die Datenbank.";
                throw new MyException(msg, f);
            }
        }
Beispiel #7
0
        public static void ArbeitszeitenInDatenbank(OptionenArbeitszeit Optionen)
        {
            var msg = "";

            try
            {
                using (var Db = new JgModelContainer())
                {
                    if (Optionen.VerbindungsString != "")
                    {
                        Db.Database.Connection.ConnectionString = Optionen.VerbindungsString;
                    }

                    msg = "Beginne Eintragungen in Datenbank.";
                    Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);

                    if (Optionen.ListeAnmeldungen.Count > 0)
                    {
                        var azImport = new ArbeitszeitImport();
                        azImport.ImportStarten(Db, Optionen.ListeAnmeldungen);

                        Db.SaveChanges();
                        msg = $"{azImport.AnzahlAnmeldungen} Anmeldungen erfolgreich in Datenbank gespeichert.\n\n{azImport.ProtokollOk}";
                        Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);

                        if (azImport.ProtokollFehler != null)
                        {
                            msg = $"Anmeldungen ohne Benutzerzuordnung!\n\n{azImport.ProtokollFehler}";
                            Logger.Write(msg, "Service", 0, 0, TraceEventType.Warning);
                        }
                    }

                    foreach (var term in Optionen.ListeTerminals)
                    {
                        if ((term.TerminaldatenWurdenAktualisiert) ||
                            (term.FehlerTerminalAusgeloest) ||
                            ((!term.FehlerTerminalAusgeloest) && (term.AnzahlFehler != 0)))
                        {
                            Db.tabArbeitszeitTerminalSet.Attach(term);
                            Db.Entry(term).State = EntityState.Modified;

                            // Terminals die erfolgreich geUpdatet wurden eintragen
                            if (term.TerminaldatenWurdenAktualisiert)
                            {
                                term.UpdateTerminal = false;
                            }

                            // Wenn Fehleranzahl erreicht wurde, Fehler anzeigen und FehlerAnzahl auf 0 setzen
                            if (term.FehlerTerminalAusgeloest)
                            {
                                term.AnzahlFehler = (short)(term.AnzahlFehler + 1);

                                if (term.AnzahlFehler >= Optionen.AnzahlBisFehlerAusloesen)
                                {
                                    term.AnzahlFehler = 0;
                                    msg = $"Fehleranzahl Verbindungsaufbau Terminal {term.Bezeichnung} / {term.eStandort.Bezeichnung} größer {Optionen.AnzahlBisFehlerAusloesen}.";
                                    Logger.Write(msg, "Service", 0, 0, TraceEventType.Error);
                                }
                            }
                            else
                            {
                                if (term.AnzahlFehler != 0)
                                {
                                    term.AnzahlFehler = 0;
                                }
                            }

                            msg = $"Terminal {term.Bezeichnung} / {term.eStandort.Bezeichnung} aktualisiert.";
                            Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);
                        }
                    }

                    Db.SaveChanges();
                }
            }
            catch (Exception f)
            {
                msg = "Fehler beim eintragen der Anmeldedaten in die Datenbank.";
                throw new MyException(msg, f);
            }
        }