/// <summary> /// Methode zur Berechnung der Arbeitszeit eines Mitarbeiters in einem vorgegebenen Zeitraum /// </summary> /// <param name="stundenDoc">Enthält: Anfang des Zeitraums der Berechnung, /// Ende des Zeitraums der Berechnung, /// den Mitarbeiter, für den Die Arbeitsstunden berechnet werden, /// Liste aller Tätigkeiten des Mitarbeiters</param> /// <returns>Geleistete Arbeitszeit in Stunden (--> <see cref="Taetigkeit.Minuten"/>)</returns> public static double ArbeitsZeit(StundenDoc stundenDoc) { double arbeitszeit = 0; foreach (Taetigkeit tat in stundenDoc.Tatlist) { arbeitszeit += tat.Minuten; } return(Math.Round(arbeitszeit / 60, 2)); }
/// <summary> /// Konstruktor für die <see cref="StundenView"/> /// </summary> public StundenView(string connection) { _connection = connection; InitializeComponent(); StuDoc = new StundenDoc(); using (var db = new EasyAuftragContext(_connection)) { var mitarbeiter = (from k in db.Mitarbeiters select new { ID = k.MitarbeiterID, mName = k.Name }).ToList(); cbMitarbeiter.DataSource = mitarbeiter; cbMitarbeiter.DisplayMember = "mName"; cbMitarbeiter.ValueMember = "ID"; } }
/// <summary> /// Methode zum Drucken der Sollstunden und geleisteten Stunden eines Mitarbeiters (--> <see cref="Core.Model.StundenDoc"/>) /// durch <see cref="PrintDocument_PrintStunden"/> /// </summary> public void StundenDruck(StundenDoc stundenDoc) { _stundenDoc = stundenDoc; PrintDocument doc = new PrintDocument(); doc.PrintPage += PrintDocument_PrintStunden; PrintDialog dlgPrinter = new PrintDialog(); dlgPrinter.Document = doc; if (dlgPrinter.ShowDialog() == DialogResult.OK) { doc.Print(); } }
public void ArbeitsZeitTest() { // Tätigkeitsliste erstellen und jeweils zwei Einträge für Mitarbeiter 1 und Mitarbeiter 2 erstellen List <Taetigkeit> testTaetigkeiten = new List <Taetigkeit>(); testTaetigkeiten.Add(new Taetigkeit() { AuftragID = 1, MitarbeiterID = 1, TaetigkeitID = 1, Datum = new DateTime(2017, 12, 4), Name = "Installation 1 M1", StartZeit = new TimeSpan(21, 13, 0), EndZeit = new TimeSpan(23, 54, 0) } ); testTaetigkeiten.Add(new Taetigkeit() { AuftragID = 2, MitarbeiterID = 1, TaetigkeitID = 2, Datum = new DateTime(2019, 9, 9), Name = "Installation 2 M1", StartZeit = new TimeSpan(13, 46, 0), EndZeit = new TimeSpan(19, 32, 0) } ); testTaetigkeiten.Add(new Taetigkeit() { AuftragID = 3, MitarbeiterID = 2, TaetigkeitID = 3, Datum = new DateTime(2018, 5, 17), Name = "Installation 1 M2", StartZeit = new TimeSpan(5, 29, 0), EndZeit = new TimeSpan(11, 28, 0) } ); testTaetigkeiten.Add(new Taetigkeit() { AuftragID = 2, MitarbeiterID = 2, TaetigkeitID = 4, Datum = new DateTime(2019, 1, 4), Name = "Installation 2 M2", StartZeit = new TimeSpan(17, 7, 0), EndZeit = new TimeSpan(22, 56, 0) } ); // Neues StundenDoc für Mitarbeiter 1 erstellen StundenDoc stundenDocM1 = new StundenDoc { Mitarbeiter = new Mitarbeiter { MitarbeiterID = 1 } }; // Tätigkeistliste nach Mitarbeiter 1, Anfangs- und Enddatum filtern stundenDocM1.Tatlist = (from t in testTaetigkeiten where t.MitarbeiterID == stundenDocM1.Mitarbeiter.MitarbeiterID && t.Datum >= new DateTime(2017, 12, 4) && t.Datum <= new DateTime(2018, 10, 20) select t).ToList(); // Neues StundenDoc für Mitarbeiter 2 erstellen StundenDoc stundenDocM2 = new StundenDoc { Mitarbeiter = new Mitarbeiter { MitarbeiterID = 2 } }; // Tätigkeistliste nach Mitarbeiter 2, Anfangs- und Enddatum filtern stundenDocM2.Tatlist = (from t in testTaetigkeiten where t.MitarbeiterID == stundenDocM2.Mitarbeiter.MitarbeiterID && t.Datum >= new DateTime(2018, 5, 17) && t.Datum <= new DateTime(2019, 1, 4) select t).ToList(); // Berechnung der Arbeitszeit überprüfen if (Berechnung.ArbeitsZeit(stundenDocM1) != 2.68) { Assert.Fail(); } if (Berechnung.ArbeitsZeit(stundenDocM2) != 11.8) { Assert.Fail(); } }