예제 #1
0
        /// <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));
        }
예제 #2
0
 /// <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";
     }
 }
예제 #3
0
        /// <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();
            }
        }
예제 #4
0
        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();
            }
        }