Beispiel #1
0
        private void ReparaturBearbeitenAktuell_Click(object sender, RoutedEventArgs e)
        {
            Fenster.FormReparatur form = new Fenster.FormReparatur(_ListeReparaturen.Current, _ListeBediener.Daten);

            if (form.ShowDialog() ?? false)
            {
                _ListeReparaturen.DsSave();
            }
            else
            {
                _ListeReparaturen.Reload();
            }
        }
Beispiel #2
0
        private void AnmeldungBenutzerBearbeiten_Click(object sender, RoutedEventArgs e)
        {
            var anmeldung     = _ListeAnmeldungAuswahl.Current;
            var msg           = $"Korrektur der Arbeitszeit für den Mitarbeiter {anmeldung.eBediener.Name}.";
            var zeitAnmeldung = (DateTime?)anmeldung.Anmeldung;
            var zeitAbmeldung = anmeldung.Abmeldung;

            if (JgZeit.AbfrageZeit(msg, "Berichtigung Arbeitszeit", ref zeitAnmeldung, false, ref zeitAbmeldung, true))
            {
                bool safe = false;
                if (zeitAnmeldung != anmeldung.Anmeldung)
                {
                    anmeldung.AnzeigeAnmeldung  = zeitAnmeldung.Value;
                    anmeldung.ManuelleAnmeldung = true;
                    safe = true;
                }
                if (zeitAbmeldung != anmeldung.Abmeldung)
                {
                    anmeldung.AnzeigeAbmeldung  = zeitAbmeldung;
                    anmeldung.ManuelleAbmeldung = true;
                    safe = true;
                }
                if (safe)
                {
                    _ListeAnmeldungAuswahl.DsSave();
                }
            }
        }
Beispiel #3
0
        public MainWindow()
        {
            InitializeComponent();

            Helper.FensterEinstellung(this, Properties.Settings.Default);

            CommandBindings.Add(new CommandBinding(MyCommands.ArbeitszeitLoeschen, (sen, erg) =>
            {
                var az     = _ListeArbeitszeitenAuswahl.Current;
                var msg    = $"Arbeitszeit von {az.eBediener.Name} löschen ?";
                var ergBox = MessageBox.Show(msg, "Löschabfrage", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
                if (ergBox == MessageBoxResult.Yes)
                {
                    az.AnzeigeGeloescht = true;
                    _ListeArbeitszeitenAuswahl.DsSave();
                }
            },
                                                   (sen, erg) =>
            {
                erg.CanExecute = _ListeArbeitszeitenAuswahl.Current?.DatenAbgleich.Geloescht == false;
            }));

            void IstArbeitzeitAndern(object Obj, CanExecuteRoutedEventArgs Erg)
            {
                Erg.CanExecute = _Erstellung?.AktuellerBediener?.EArbeitszeitHelper?.Status == EnumStatusArbeitszeitAuswertung.InArbeit || false;
            }

            CommandBindings.Add(new CommandBinding(MyCommands.SollStundenAendern, (sen, erg) =>
            {
                var form = new FormSollstundenEinstellen(_Erstellung.AktuellerBediener.EArbeitszeitHelper.SollStunden);
                if (form.ShowDialog() ?? false)
                {
                    _Erstellung.AzBediener.SetSollstunden(form.Sollstunden);
                    _Erstellung.BenutzerGeaendert();
                }
            }, IstArbeitzeitAndern));

            CommandBindings.Add(new CommandBinding(MyCommands.UberstundenBezahltAendern, (sen, erg) =>
            {
                var form = new FormUeberstundenAuszahlen(_Erstellung.AzBediener.AuswertungMonat.UeberstundenBezahltAnzeige);
                if (form.ShowDialog() ?? false)
                {
                    _Erstellung.AzBediener.SetUebestundenAuszahlung(form.UerbstundenAuszahlem);
                }
            }, IstArbeitzeitAndern));
        }
Beispiel #4
0
        private void BenutzerMaschineAbmelden_Click(object sender, RoutedEventArgs e)
        {
            var anmeldung     = _ListeAnmeldungen.Current;
            var msg           = $"Möchten Sie den Bediener {anmeldung.eBediener.Name} von der Maschine {anmeldung.eMaschine.MaschinenName} abmelden ?";
            var zeitAbmeldung = (DateTime?)(anmeldung.Abmeldung ?? DateTime.Now);

            if (JgZeit.AbfrageZeit(msg, "Abmeldung", ref zeitAbmeldung, false))
            {
                BenutzerVonMaschineAbmelden(anmeldung, zeitAbmeldung.Value);
                BedienerVonReparaturAbmelden(anmeldung.eMaschine, anmeldung.eBediener);
                _ListeAnmeldungen.Remove(anmeldung);
                TreeViewMaschinenAktualisieren();
                _ListeAnmeldungen.DsSave();
            }
        }
Beispiel #5
0
        private void RibbonWindow_Loaded(object sender, RoutedEventArgs e)
        {
            _Db = new JgModelContainer();
            if (Properties.Settings.Default.DatenbankVerbindungsString != "")
            {
                _Db.Database.Connection.ConnectionString = Properties.Settings.Default.DatenbankVerbindungsString;
            }

            _Auswertungen = new JgEntityList <tabAuswertung>(_Db)
            {
                ViewSource   = (CollectionViewSource)FindResource("vsAuswertung"),
                Tabellen     = new DataGrid[] { dgAuswertung },
                OnDatenLaden = (d, p) =>
                {
                    return(d.tabAuswertungSet.Where(w => w.FilterAuswertung == EnumFilterAuswertung.Allgemein).ToList());
                }
            };
            _Auswertungen.DatenLaden();
            _Auswertungen.Daten = _Auswertungen.Daten.OrderBy(o => o.ReportName).ToList();

            _Report          = new FastReport.Report();
            _Report.FileName = "Datenbank";
            _ReportSettings.CustomSaveReport += (obj, repEvent) =>
            {
                MemoryStream memStr = new MemoryStream();
                try
                {
                    var ausw = _Auswertungen.Current;

                    repEvent.Report.Save(memStr);
                    ausw.Report         = memStr.ToArray();
                    ausw.GeaendertDatum = DateTime.Now;
                    ausw.GeaendertName  = Helper.Benutzer;
                    _Auswertungen.DsSave(ausw);
                }
                catch (Exception f)
                {
                    System.Windows.MessageBox.Show("Fehler beim speichern des Reports !\r\nGrund: " + f.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                finally
                {
                    memStr.Dispose();
                }
            };

            InitCommands();
        }
Beispiel #6
0
        private void InitCommands()
        {
            CommandBindings.Add(new CommandBinding(MyCommands.ReportNeu, (sen, erg) =>
            {
                Fenster.FormAuswertungBearbeiten form = new Fenster.FormAuswertungBearbeiten(null);
                if (form.ShowDialog() ?? false)
                {
                    string username = Helper.Benutzer;
                    form.Auswertung.FilterAuswertung = JgMaschineData.EnumFilterAuswertung.Allgemein;
                    form.Auswertung.ErstelltDatum    = DateTime.Now;
                    form.Auswertung.ErstelltName     = username;

                    form.Auswertung.GeaendertName  = form.Auswertung.ErstelltName;
                    form.Auswertung.GeaendertDatum = form.Auswertung.ErstelltDatum;

                    _Auswertungen.Add(form.Auswertung);

                    _Report.Clear();
                    _Report.SetParameterValue("SqlVerbindung", Properties.Settings.Default.DatenbankVerbindungsString);

                    _Report.Design();
                }
            }));

            CommandBindings.Add(new CommandBinding(MyCommands.ReportAnzeigen, ExceReportAnzeigenDruck, CanExecReportVorhandenAndNull));
            CommandBindings.Add(new CommandBinding(MyCommands.ReportDrucken, ExceReportAnzeigenDruck, CanExecReportVorhandenAndNull));
            CommandBindings.Add(new CommandBinding(MyCommands.ReportBearbeiten, ExceReportAnzeigenDruck, CanExecReportVorhanden));

            CommandBindings.Add(new CommandBinding(MyCommands.ReportAusDateiLaden, (sen, erg) =>
            {
                Microsoft.Win32.OpenFileDialog dia = new Microsoft.Win32.OpenFileDialog();
                dia.Filter      = "Fastreport (*.frx)|*.frx|Alle Dateien (*.*)|*.*";
                dia.FilterIndex = 1;
                if (dia.ShowDialog() ?? false)
                {
                    MemoryStream mem = new MemoryStream();
                    using (Stream f = File.OpenRead(dia.FileName))
                    {
                        f.CopyTo(mem);
                    }
                    _Auswertungen.Current.Report = mem.ToArray();
                    _Auswertungen.DsSave();
                    _Auswertungen.Refresh();
                }
            }, CanExecReportVorhanden));

            CommandBindings.Add(new CommandBinding(MyCommands.ReportOptionen, (sen, erg) =>
            {
                Fenster.FormAuswertungBearbeiten form = new Fenster.FormAuswertungBearbeiten(_Auswertungen.Current);
                if (form.ShowDialog() ?? false)
                {
                    string username = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                    form.Auswertung.GeaendertName  = username;
                    form.Auswertung.GeaendertDatum = form.Auswertung.ErstelltDatum;
                    _Auswertungen.DsSave();
                }
                else
                {
                    _Auswertungen.Reload();
                }
            }, CanExecReportVorhanden));

            CommandBindings.Add(new CommandBinding(MyCommands.ReportInDateiSpeichern, (sen, erg) =>
            {
                Microsoft.Win32.SaveFileDialog dia = new Microsoft.Win32.SaveFileDialog();
                dia.Filter      = "Fastreport (*.frx)|*.frx|Alle Dateien (*.*)|*.*";
                dia.FilterIndex = 1;
                if (dia.ShowDialog() ?? false)
                {
                    MemoryStream mem;
                    mem = new MemoryStream(_Auswertungen.Current.Report);
                    using (Stream f = File.Create(dia.FileName))
                    {
                        mem.CopyTo(f);
                    }
                }
            }, CanExecReportVorhandenAndNull));
        }
Beispiel #7
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;

            this.Title += " - V " + version.ToString();

            _Db = new JgModelContainer();
            if (Properties.Settings.Default.DatenbankVerbindungsString != "")
            {
                _Db.Database.Connection.ConnectionString = Properties.Settings.Default.DatenbankVerbindungsString;
            }

            var heute = DateTime.Now.Date;

            _AzRunden = new ArbeitszeitRunden(_Db, heute.Year);

            _DzArbeitszeitVon.AnzeigeDatumZeit = heute;
            _DzArbeitszeitBis.AnzeigeDatumZeit = new DateTime(heute.Year, heute.Month, heute.Day, 23, 59, 59);

            _ListeArbeitszeitenAuswahl = new JgEntityList <tabArbeitszeit>(_Db)
            {
                ViewSource   = (CollectionViewSource)FindResource("vsArbeitszeitAuswahl"),
                Tabellen     = new DataGrid[] { dgArbeitszeitAuswahl },
                OnDatenLaden = (d, p) =>
                {
                    var datVom   = (DateTime)p.Params["DatumVon"];
                    var datBis   = (DateTime)p.Params["DatumBis"];
                    var azRunden = (ArbeitszeitRunden)p.Params["AzRunden"];

                    var lZeiten = d.tabArbeitszeitSet.Where(w => (((w.Anmeldung >= datVom) && (w.Anmeldung <= datBis)) ||
                                                                  ((w.Anmeldung == null) && (w.Abmeldung >= datVom) && (w.Abmeldung <= datBis))));

                    if (!p.IstSortiert)
                    {
                        lZeiten = lZeiten.OrderBy(o => o.Anmeldung);
                    }

                    foreach (var zeit in lZeiten.ToList())
                    {
                        zeit.AnmeldungGerundet = azRunden.GetZeitGerundet(EnumZeitpunkt.Anmeldung, zeit.fStandort, zeit.Anmeldung);
                        zeit.AbmeldungGerundet = azRunden.GetZeitGerundet(EnumZeitpunkt.Abmeldung, zeit.fStandort, zeit.Abmeldung);
                    }

                    return(lZeiten);
                }
            };
            _ListeArbeitszeitenAuswahl.Parameter["AzRunden"] = _AzRunden;
            _ListeArbeitszeitenAuswahl.Parameter["DatumVon"] = _DzArbeitszeitVon.AnzeigeDatumZeit;
            _ListeArbeitszeitenAuswahl.Parameter["DatumBis"] = _DzArbeitszeitBis.AnzeigeDatumZeit;
            _ListeArbeitszeitenAuswahl.DatenLaden();

            // Report initialisieren ********************************

            _ListeReporteArbeitszeiten = new JgEntityList <tabAuswertung>(_Db)
            {
                ViewSource   = (CollectionViewSource)FindResource("vsReporteArbeitszeit"),
                OnDatenLaden = (d, p) =>
                {
                    return(_Db.tabAuswertungSet.Where(w => (w.FilterAuswertung == EnumFilterAuswertung.Arbeitszeit) && (!w.DatenAbgleich.Geloescht))
                           .OrderBy(o => o.ReportName).ToList());
                }
            };
            _ListeReporteArbeitszeiten.DatenLaden();

            _ListeReporteAuswertung = new JgEntityList <tabAuswertung>(_ListeReporteArbeitszeiten.Db)
            {
                ViewSource   = (CollectionViewSource)FindResource("vsReporteAuswertung"),
                OnDatenLaden = (d, p) =>
                {
                    return(_Db.tabAuswertungSet.Where(w => (w.FilterAuswertung == EnumFilterAuswertung.ArbeitszeitAuswertung) && (!w.DatenAbgleich.Geloescht))
                           .OrderBy(o => o.ReportName).ToList());
                }
            };
            _ListeReporteAuswertung.DatenLaden();

            // Klasse Auswertung intitialisieren

            _Erstellung = new AnmeldungAuswertung(_Db, cbJahr, cbMonat,
                                                  (CollectionViewSource)FindResource("vsBediener"),
                                                  _AzRunden,
                                                  (ArbeitszeitBediener)FindResource("ArbeitszeitBediener"),
                                                  (CollectionViewSource)FindResource("vsArbeitszeitTage"));

            // Report für Auswertung erstellen

            _Report = new FastReport.Report()
            {
                FileName = "Datenbank"
            };
            _ReportSettings.CustomSaveReport += (obj, repEvent) =>
            {
                MemoryStream memStr = new MemoryStream();
                try
                {
                    repEvent.Report.Save(memStr);
                    _AktuellerReport.Report         = memStr.ToArray();
                    _AktuellerReport.GeaendertDatum = DateTime.Now;
                    _AktuellerReport.GeaendertName  = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                    _ListeReporteArbeitszeiten.DsSave(_AktuellerReport);
                    if (_AktuellerReport.FilterAuswertung == EnumFilterAuswertung.ArbeitszeitAuswertung)
                    {
                        _ListeReporteAuswertung.Refresh();
                    }
                    else
                    {
                        _ListeReporteArbeitszeiten.Refresh();
                    }
                }
                catch (Exception f)
                {
                    MessageBox.Show("Fehler beim speichern des Reports !\r\nGrund: " + f.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                finally
                {
                    memStr.Dispose();
                }
            };
        }
Beispiel #8
0
        private void BtnDrucken_Click(object sender, RoutedEventArgs e)
        {
            _Report.Clear();
            var vorgang = Convert.ToInt32((sender as Button).Tag);  // 1 - Anzeigen, 2 - Drucken, 3 - Design, 4 - Neuer Report, 5 - Report Exportieren, 6 - Löschen

            var auswahl = EnumFilterAuswertung.Arbeitszeit;

            if (tcArbeitszeit.SelectedIndex == 1)
            {
                auswahl = EnumFilterAuswertung.ArbeitszeitAuswertung;
            }

            if (vorgang != 4)
            {
                switch (auswahl)
                {
                case EnumFilterAuswertung.Arbeitszeit: _AktuellerReport = _ListeReporteArbeitszeiten.Current; break;

                case EnumFilterAuswertung.ArbeitszeitAuswertung: _AktuellerReport = _ListeReporteAuswertung.Current; break;
                }

                if (_AktuellerReport == null)
                {
                    MessageBox.Show("Es wurde kein Report ausgewählt.", "Fehler !", MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }

                switch (vorgang)
                {
                case 0:     // Reportname ändern
                    var formNeu = new Fenster.FormReportName(_AktuellerReport.ReportName);
                    if (formNeu.ShowDialog() ?? false)
                    {
                        _AktuellerReport.AnzeigeReportname = formNeu.ReportName;
                        _ListeReporteArbeitszeiten.DsSave();
                    }
                    return;

                case 5:     // Exportieren
                    SaveFileDialog dia = new SaveFileDialog()
                    {
                        FileName    = _AktuellerReport.ReportName,
                        Filter      = "Fastreport (*.frx)|*.frx|Alle Dateien (*.*)|*.*",
                        FilterIndex = 1
                    };
                    if (dia.ShowDialog() ?? false)
                    {
                        _Report.Save(dia.FileName);
                        MemoryStream mem;
                        mem = new MemoryStream(_AktuellerReport.Report);
                        using (Stream f = File.Create(dia.FileName))
                        {
                            mem.CopyTo(f);
                        }
                    }
                    return;

                case 6:      // Report löschen
                    var mb = MessageBox.Show($"Report {_AktuellerReport.ReportName} löschen ?", "Löschabfrage", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.None);
                    if (mb == MessageBoxResult.Yes)
                    {
                        _AktuellerReport.DatenAbgleich.Geloescht = true;
                        switch (auswahl)
                        {
                        case EnumFilterAuswertung.Arbeitszeit: _ListeReporteArbeitszeiten.Remove(_AktuellerReport); break;

                        case EnumFilterAuswertung.ArbeitszeitAuswertung: _ListeReporteAuswertung.Remove(_AktuellerReport); break;
                        }
                    }
                    return;
                }

                if (_AktuellerReport.Report == null)
                {
                    vorgang = 3;
                }
                else
                {
                    var mem = new MemoryStream(_AktuellerReport.Report);
                    _Report.Load(mem);
                }
            }

            switch (auswahl)
            {
            case EnumFilterAuswertung.Arbeitszeit:
                var bediener = _ListeArbeitszeitenAuswahl.Daten.Select(s => s.eBediener).Distinct().ToList();
                _Report.RegisterData(bediener.Select(s => new { s.Id, s.Name }).ToList(), "Bediener");

                var dat         = _DzArbeitszeitBis.AnzeigeDatumZeit;
                var db          = _ListeArbeitszeitenAuswahl.Db;
                var sollStunden = JgZeit.StringInZeit(db.tabSollStundenSet.FirstOrDefault(w => (w.Jahr == dat.Year) && (w.Monat == dat.Month) && !w.DatenAbgleich.Geloescht).SollStunden, TimeSpan.Zero);
                var lFeiertage  = db.tabFeiertageSet.Where(w => (w.Datum.Year == dat.Year) && (w.Datum.Month == dat.Month) && !w.DatenAbgleich.Geloescht).ToList();
                var lPausen     = db.tabPausenzeitSet.Where(w => !w.DatenAbgleich.Geloescht).ToList();

                var listeAuswertungen = new List <ArbeitszeitBediener>();

                foreach (var bedAusw in bediener)
                {
                    var ds = new ArbeitszeitBediener(_Erstellung.Db, _AzRunden);
                    ds.BedienerBerechnen(bedAusw, (short)dat.Year, (byte)dat.Month, sollStunden, lFeiertage, lPausen);
                    listeAuswertungen.Add(ds);
                }
                _Report.RegisterData(listeAuswertungen, "Auswertungen");

                _Report.RegisterData(_ListeArbeitszeitenAuswahl.Daten, "Stechzeiten");
                _Report.SetParameterValue("Zeitraum.DatumVon", _DzArbeitszeitVon.AnzeigeDatumZeit);
                _Report.SetParameterValue("Zeitraum.DatumBis", _DzArbeitszeitBis.AnzeigeDatumZeit);
                break;

            case EnumFilterAuswertung.ArbeitszeitAuswertung:
                var aktStandort = _Erstellung.AktuellerBediener.eStandort;

                var bedienerImStandort = _Erstellung.ListeBediener.Daten.Where(w => w.fStandort == aktStandort.Id).ToList();
                var listeAuswertung    = new List <ArbeitszeitBediener>();

                foreach (var bedAusw in bedienerImStandort)
                {
                    var ds = new ArbeitszeitBediener(_Erstellung.Db, _AzRunden);
                    ds.BedienerBerechnen(bedAusw, _Erstellung.Jahr, _Erstellung.Monat, _Erstellung.SollStundenMonat, _Erstellung.ListeFeiertageMonat, _Erstellung.ListePausen.Daten);
                    listeAuswertung.Add(ds);
                }

                _Report.RegisterData(bedienerImStandort.Select(s => new { s.Id, s.Name }).ToList(), "Bediener");
                _Report.RegisterData(listeAuswertung, "ListeAuswertung");
                _Report.SetParameterValue("Auswertung.Monat", (JgZeitHelper.JgZeit.Monate)_Erstellung.Monat);
                _Report.SetParameterValue("Auswertung.Jahr", _Erstellung.Jahr);
                break;

            default:
                break;
            }

            if (vorgang == 4) // Neuer Report
            {
                var repName = "";

                var formNeu = new Fenster.FormReportName();
                if (!formNeu.ShowDialog() ?? false)
                {
                    return;
                }
                repName = formNeu.ReportName;

                string username = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                _AktuellerReport = new tabAuswertung()
                {
                    Id = Guid.NewGuid(),
                    FilterAuswertung = auswahl,
                    ReportName       = repName,
                    ErstelltDatum    = DateTime.Now,
                    ErstelltName     = username,
                    GeaendertDatum   = DateTime.Now,
                    GeaendertName    = username,
                };

                switch (auswahl)
                {
                case EnumFilterAuswertung.Arbeitszeit: _ListeReporteArbeitszeiten.Add(_AktuellerReport); break;

                case EnumFilterAuswertung.ArbeitszeitAuswertung: _ListeReporteAuswertung.Add(_AktuellerReport); break;
                }

                _Report.Design();
            }

            else
            {
                switch (vorgang)
                {
                case 1:
                    try
                    {
                        _Report.Show();
                    }
                    catch (Exception ex)
                    {
                        Helper.InfoBox("Fehler beim Aufruf der Auswertung", ex);
                    }
                    break;

                case 2:
                    try
                    {
                        _Report.Print();
                    }
                    catch (Exception ex)
                    {
                        Helper.InfoBox("Fehler beim Drucken der Auswertung", ex);
                    }
                    break;

                case 3:
                    try
                    {
                        _Report.Design();
                    }
                    catch { }
                    break;
                }
            }
        }