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(); } }
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(); } } }
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)); }
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(); } }
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(); }
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)); }
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(); } }; }
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; } } }