Пример #1
0
 public ArbeitszeitBediener(JgModelContainer Db, ArbeitszeitRunden AzRunden)
 {
     Init(Db, AzRunden);
 }
Пример #2
0
 public void Init(JgModelContainer Db, ArbeitszeitRunden AzRunden)
 {
     _Db       = Db;
     _AzRunden = AzRunden;
 }
Пример #3
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();
                }
            };
        }