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 ReparaturBeenden_Click(object sender, RoutedEventArgs e) { var reparatur = _ListeReparaturen.Current; var anzeigeText = $"Maschine {reparatur.eMaschine.MaschinenName} mit Vorgang {reparatur.Vorgang} abmelden?"; var ergZeitAbfrage = (DateTime?)DateTime.Now; if (JgZeit.AbfrageZeit(anzeigeText, "Abmeldung", ref ergZeitAbfrage, false)) { var repBedienerAustragen = reparatur.sAnmeldungen.Where(w => w.IstAktiv).ToList(); foreach (var bediener in repBedienerAustragen) { bediener.AnzeigeAbmeldung = ergZeitAbfrage; } reparatur.AnzeigeVorgangEnde = ergZeitAbfrage; reparatur.eMaschine.fAktivReparatur = null; _ListeReparaturen.DsSave(); _ListeReparaturen.Remove(); TreeViewMaschinenAktualisieren(); } }
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; } } }