示例#1
0
        private void BerechneUeberstundenAusTagen()
        {
            var istZeit = new TimeSpan(ListeTage.Sum(c => c.Zeit.Ticks));
            var fTage   = new TimeSpan(8 * (AuswertungMonat.fUrlaub + AuswertungMonat.fKrank + AuswertungMonat.fFeiertage), 0, 0);

            AuswertungMonat.UeberstundenAnzeige = JgZeit.ZeitInString(istZeit + fTage - AuswertungMonat.fSollStunden);

            BerechneUeberstundenGesamt();
            AuswertungMonat.NotifyPropertyChanged("IstStundenAnzeige");
        }
示例#2
0
        public void SetUebestundenAuszahlung(TimeSpan UeberstundenAuszahlung)
        {
            if (UeberstundenAuszahlung != AuswertungMonat.fUeberstundenBezahlt)
            {
                AuswertungMonat.UeberstundenBezahltAnzeige          = JgZeit.ZeitInString(UeberstundenAuszahlung);
                AuswertungMonat.AzAuswertung.AuszahlungUeberstunden = AuswertungMonat.UeberstundenBezahltAnzeige;
                AuswertungGesamt.UeberstundenBezahltAnzeige         = JgZeit.ZeitInString(AuswertungKumulativ.fUeberstundenBezahlt + UeberstundenAuszahlung);

                BerechneUeberstundenGesamt();

                _Db.SaveChanges();
            }
        }
示例#3
0
        public void SetSollstunden(TimeSpan Sollstunden)
        {
            if (Sollstunden != AuswertungMonat.fSollStunden)
            {
                var sollStunden = JgZeit.ZeitInString(Sollstunden);
                AuswertungMonat.AzAuswertung.SollStunden = sollStunden;
                _Db.SaveChanges();

                AuswertungMonat.SollStundenAnzeige = sollStunden;
                BerechneUeberstundenAusTagen();
                BerechneUeberstundenGesamt();
                AuswertungMonat.NotifyPropertyChanged("IstStundenAnzeige");
            }
        }
示例#4
0
        private void DatenMonatInDatenbank()
        {
            var dsAz = AuswertungMonat.AzAuswertung;

            dsAz.Ueberstunden = JgZeit.ZeitInString(AuswertungMonat.fUeberstunden);

            dsAz.NachtschichtZuschlaege = JgZeit.ZeitInString(AuswertungMonat.fNachtschichtZuschlaege);
            dsAz.FeiertagZuschlaege     = JgZeit.ZeitInString(AuswertungMonat.fFeiertagZuschlaege);

            dsAz.Urlaub    = (byte)AuswertungMonat.fUrlaub;
            dsAz.Feiertage = (byte)AuswertungMonat.fFeiertage;
            dsAz.Krank     = (byte)AuswertungMonat.fKrank;

            _Db.SaveChanges();
        }
示例#5
0
        private tabArbeitszeitAuswertung ArbeitszeitAuswertungErstellen(tabBediener Bediener, short Jahr, byte Monat, TimeSpan SollStundenMonat)
        {
            var az = new tabArbeitszeitAuswertung()
            {
                Id        = Guid.NewGuid(),
                fBediener = Bediener.Id,
                Jahr      = Jahr,
                Monat     = Monat,
                Urlaub    = 0,
                AuszahlungUeberstunden = "00:00",
                SollStunden            = JgZeit.ZeitInString(SollStundenMonat),
                Status = EnumStatusArbeitszeitAuswertung.InArbeit,
            };

            _Db.tabArbeitszeitAuswertungSet.Add(az);
            _Db.SaveChanges();

            return(az);
        }
示例#6
0
        private void Datagrid_DoppelClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            var aktTag = (FindResource("vsArbeitszeitTage") as CollectionViewSource).View.CurrentItem;

            if (aktTag != null)
            {
                var aktDs = (tabArbeitszeitTag)aktTag;
                if (dgArbeitszeit.CurrentColumn == clPauseBerechnet)
                {
                    aktDs.PauseAnzeige = JgZeit.ZeitInString(aktDs.PauseBerechnet);
                }
                else if (dgArbeitszeit.CurrentColumn == clZeitBerechnet)
                {
                    aktDs.ZeitAnzeige = JgZeit.ZeitInString(aktDs.ZeitBerechnet);
                }
                else if (dgArbeitszeit.CurrentColumn == clNachtschichtBerechnet)
                {
                    aktDs.NachtschichtZuschlagAnzeige = JgZeit.ZeitInString(aktDs.NachtschichtBerechnet);
                }
            }
        }
示例#7
0
        public void BedienerBerechnen(tabBediener Bediener, short Jahr, byte Monat, TimeSpan SollStundenMonat,
                                      IEnumerable <tabFeiertage> ListeFeiertageMonat, IEnumerable <tabPausenzeit> ListePausen)
        {
            if (Bediener == null)
            {
                return;
            }

            this.Bediener = Bediener;
            var alleAuswertungenBediener = _Db.tabArbeitszeitAuswertungSet.Where(w => (w.fBediener == Bediener.Id) && (w.Jahr == Jahr) && (w.Monat <= Monat)).ToList();

            var auswErster = alleAuswertungenBediener.FirstOrDefault(w => w.Monat == 0);

            if (auswErster == null)
            {
                auswErster = ArbeitszeitAuswertungErstellen(Bediener, Jahr, 0, TimeSpan.Zero);
            }

            AuswertungVorjahr.AzAuswertung = auswErster;

            var auswMonat = alleAuswertungenBediener.FirstOrDefault(w => (w.Monat == Monat));

            if (auswMonat == null)
            {
                auswMonat = ArbeitszeitAuswertungErstellen(Bediener, Jahr, Monat, SollStundenMonat);
            }

            AuswertungMonat.AzAuswertung = auswMonat;
            Bediener.EArbeitszeitHelper  = auswMonat;

            var auswKumulativ = alleAuswertungenBediener.Where(w => (w.Monat > 0) && (w.Monat < Monat)).ToList();

            var sumUeberstunden = new TimeSpan(auswKumulativ.Sum(s => JgZeit.StringInZeit(s.Ueberstunden).Ticks));

            AuswertungKumulativ.UeberstundenAnzeige = JgZeit.ZeitInString(sumUeberstunden);
            var sumUeberstBezahlt = new TimeSpan(auswKumulativ.Sum(s => JgZeit.StringInZeit(s.AuszahlungUeberstunden).Ticks));

            AuswertungKumulativ.UeberstundenBezahltAnzeige = JgZeit.ZeitInString(sumUeberstBezahlt);
            AuswertungKumulativ.KrankAnzeige  = (byte)auswKumulativ.Sum(s => s.Krank);
            AuswertungKumulativ.UrlaubAnzeige = (byte)auswKumulativ.Sum(s => s.Urlaub);

            var berechneteWerteInDb = AuswertungMonat.AzAuswertung.Status == EnumStatusArbeitszeitAuswertung.InArbeit;

            ListeFuerJedenTagErstellen(Bediener.EArbeitszeitHelper, ListeFeiertageMonat, ListePausen, berechneteWerteInDb);

            BerechneKrank();
            BerechneUrlaub();
            BerechneFeiertage();
            BerechneFeiertagZuschlag();

            BerechneNachtschichtZuschlag();
            BerechneUeberstundenBezahlt();

            BerechneUeberstundenAusTagen();
            BerechneUeberstundenGesamt();

            if (berechneteWerteInDb)
            {
                DatenMonatInDatenbank();
            }

            return;
        }
示例#8
0
        private void BerechneUeberstundenBezahlt()
        {
            var ueberstundenBezahlt = AuswertungKumulativ.fUeberstundenBezahlt + AuswertungMonat.fUeberstundenBezahlt;

            AuswertungGesamt.UeberstundenBezahltAnzeige = JgZeit.ZeitInString(ueberstundenBezahlt);
        }
示例#9
0
        private void BerechneFeiertagZuschlag()
        {
            var sumZeit = new TimeSpan(ListeTage.Sum(c => c.FeiertagZuschlag.Ticks));

            AuswertungMonat.FeiertagZuschlaegeAnzeige = JgZeit.ZeitInString(sumZeit);
        }
示例#10
0
        private void BerechneNachtschichtZuschlag()
        {
            var sumNachtschicht = new TimeSpan(ListeTage.Sum(c => c.NachtschichtZuschlag.Ticks));

            AuswertungMonat.NachtschichtZuschlaegeAnzeige = JgZeit.ZeitInString(sumNachtschicht);
        }
示例#11
0
        private void OnWertWurdeManuellGeaendert(tabArbeitszeitTag AuswertungTag, string PropertyName)
        {
            if (PropertyName == "Pause")
            {
                var zeiten = AuswertungTag.sArbeitszeiten.Where(w => (w.Anmeldung != null) && (w.Abmeldung != null)).ToList();

                AuswertungTag.ZeitBerechnet         = TimeSpan.Zero;
                AuswertungTag.NachtschichtBerechnet = TimeSpan.Zero;

                foreach (var zeit in zeiten)
                {
                    AuswertungTag.ZeitBerechnet         += zeit.Dauer;
                    AuswertungTag.NachtschichtBerechnet += NachtSchichtBerechnen(22, 0, 8, 0, zeit.Anmeldung.Value, zeit.Abmeldung.Value);
                }
                AuswertungTag.ZeitBerechnet         = ZeitAufMinuteRunden(AuswertungTag.ZeitBerechnet - AuswertungTag.Pause);
                AuswertungTag.NachtschichtBerechnet = ZeitAufMinuteRunden(AuswertungTag.NachtschichtBerechnet);

                BerechneUeberstundenAusTagen();
                AuswertungMonat.AzAuswertung.Ueberstunden = JgZeit.ZeitInString(AuswertungMonat.fUeberstunden);
            }
            else if (PropertyName == "Zeit")
            {
                BerechneUeberstundenAusTagen();
                AuswertungMonat.AzAuswertung.Ueberstunden = JgZeit.ZeitInString(AuswertungMonat.fUeberstunden);
            }
            else if (PropertyName == "Urlaub")
            {
                BerechneUrlaub();
                AuswertungMonat.AzAuswertung.Urlaub = (byte)AuswertungMonat.fUrlaub;
                BerechneUeberstundenAusTagen();
                AuswertungMonat.AzAuswertung.Ueberstunden = JgZeit.ZeitInString(AuswertungMonat.fUeberstunden);
            }
            else if (PropertyName == "Krank")
            {
                BerechneKrank();
                AuswertungMonat.AzAuswertung.Krank = (byte)AuswertungMonat.fKrank;
                BerechneUeberstundenAusTagen();
                AuswertungMonat.AzAuswertung.Ueberstunden = JgZeit.ZeitInString(AuswertungMonat.fUeberstunden);
            }
            else if (PropertyName == "Feiertag")
            {
                BerechneFeiertage();
                AuswertungMonat.AzAuswertung.Feiertage = (byte)AuswertungMonat.fFeiertage;
                BerechneUeberstundenAusTagen();
                AuswertungMonat.AzAuswertung.Ueberstunden = JgZeit.ZeitInString(AuswertungMonat.fUeberstunden);
            }
            else if (PropertyName == "FeiertagZuschlag")
            {
                BerechneFeiertagZuschlag();
                AuswertungMonat.AzAuswertung.FeiertagZuschlaege = JgZeit.ZeitInString(AuswertungMonat.fFeiertagZuschlaege);
            }
            else if (PropertyName == "NachtschichtZuschlag")
            {
                BerechneNachtschichtZuschlag();
                AuswertungMonat.AzAuswertung.NachtschichtZuschlaege = JgZeit.ZeitInString(AuswertungMonat.fNachtschichtZuschlaege);
            }

            if (AuswertungTag.IstManuellGeaendert == false)
            {
                AuswertungTag.IstManuellGeaendert = true;
                AuswertungTag.NotifyPropertyChanged("IstManuellGeaendert");
            }

            _Db.SaveChanges();
        }
示例#12
0
        public void BerechneUeberstundenGesamt()
        {
            var erg = AuswertungVorjahr.fUeberstunden + AuswertungKumulativ.fUeberstunden + AuswertungMonat.fUeberstunden - AuswertungGesamt.fUeberstundenBezahlt;

            AuswertungGesamt.UeberstundenAnzeige = JgZeit.ZeitInString(erg);
        }