From f503d7f30962a1c4d587fa8248ed4318cb2187d8 Mon Sep 17 00:00:00 2001 From: HirschleM Date: Wed, 29 Jan 2025 09:20:14 +0100 Subject: [PATCH] MH: BeWo am Rhein Stundenkonto --- .../BWARMitarbeiterstundenkontoBerechnung.cs | 197 +----------------- 1 file changed, 3 insertions(+), 194 deletions(-) diff --git a/ReportImp/BetreutesWohnenAmRheinReports/BWARMitarbeiterstundenkontoBerechnung.cs b/ReportImp/BetreutesWohnenAmRheinReports/BWARMitarbeiterstundenkontoBerechnung.cs index 3eca53ffd..d398434d7 100644 --- a/ReportImp/BetreutesWohnenAmRheinReports/BWARMitarbeiterstundenkontoBerechnung.cs +++ b/ReportImp/BetreutesWohnenAmRheinReports/BWARMitarbeiterstundenkontoBerechnung.cs @@ -38,6 +38,8 @@ namespace BeWo.BetreutesWohnenAmRheinReports //} } + // Wird nicht genutzt? + private void AddUeberstunden(MitarbeiterstundenkontoRO.EmployeeDetail employeeDetail, decimal stunden, bool auchVormonat) { if (!employeeDetail.Ueberstunden.HasValue) @@ -59,206 +61,13 @@ namespace BeWo.BetreutesWohnenAmRheinReports employeeDetail.UeberstundenGesamt += stunden; } - - public override bool AddServiceRecordToDuration(ServiceRecord item) - { - if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null) - { - if (item.ServiceDescription.Name != "Pause") - { - if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit") - { - return true; - } - } - } - return false; - } - - protected override ServiceRecordSummary BerechneStunden(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, IList groupFilteredRecords, DateTime berichtsAnfang, - DateTime berichtsEnde) - { - decimal flsGesamt = 0; - decimal arbeitszeit = 0; - - var sum = new ServiceRecordSummary(); - sum.RecordsImBerichtszeitraum = new List(); - //base.CorrectOverlappingTimes(groupFilteredRecords); - - foreach (var item in groupFilteredRecords) - { - if (!IsServiceRecordFehlzeit(item)) - { - if (item.Start.Value >= berichtsAnfang && item.Start.Value < berichtsEnde) - { - //if (AddServiceRecordToDuration(item)) - //{ - decimal duration = 0; - - if (item.GroupRoundedDuration.HasValue) - { - duration = item.GroupRoundedDuration.Value; - } - else - { - duration = item.RoundedDuration; - } - - if (item.ServiceDescription != null && - item.ServiceDescription.ServiceCategory != null) - { - if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit") - { - - if (item.ServiceDescription.Name != "Pause") - { - arbeitszeit += duration; - } - else - { - //arbeitszeit -= duration; - } - } - else if (item.ServiceDescription.ServiceCategory.IsBillable) - { - flsGesamt += duration; - } - - } - sum.RecordsImBerichtszeitraum.Add(item); - } - } - } - - sum.IstAbrechenbar = flsGesamt; - sum.IstNichtAbrechenbar = arbeitszeit - flsGesamt; - - return sum; - } - public override MitarbeiterstundenkontoRO.EmployeeDetail BerechneUeberstundenBis(MitarbeiterstundenkontoRO.EmployeeDetail edOrig, IList records, DateTime monat, out decimal? ueberstunden, out decimal alteExtraUeberstunden) { return base.BerechneUeberstundenBis(edOrig, records, monat, out ueberstunden, out alteExtraUeberstunden); } - - public override IList CreateDayDetails(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList recordsAll) - { - var list = base.CreateDayDetails(berichtStart, berichtEnde, ed, recordsAll); - - - foreach (var dd in list) - { - dd.MinutesTotal = 0; - dd.SpecialHours = 0; - dd.PauseInMinuten = 0; - - foreach (var sr in recordsAll) - { - if (sr.Start.HasValue && sr.Start >= berichtStart && sr.Start < berichtEnde && sr.End.HasValue && sr.Start.Value.Day == dd.Date.Day) - { - decimal duration = GetDuration(sr); - - if (sr.ServiceDescription.Name == "Pause") - { - dd.PauseInMinuten += (decimal)sr.DurationMinutes; - - } - else if (sr.ServiceDescription.ServiceCategory.Name == "Arbeitszeit") - { - dd.MinutesTotal += (decimal)sr.DurationMinutes; - } - else if (sr.ServiceDescription.Name != "Arbeitszeit" && - sr.ServiceDescription.ServiceCategory.IsBillable) - { - dd.SpecialHours += (decimal)sr.DurationMinutes; - } - - } - } - - - if (dd.PauseInMinuten > 0) - { - dd.MinutesTotal -= dd.PauseInMinuten; - if (dd.MinutesTotal < 0) - { - dd.MinutesTotal = 0; - } - } - - } - return list; - } - - private decimal GetDuration(ServiceRecord sr) - { - decimal duration = 0; - - if (sr.GroupRoundedDuration.HasValue) - { - duration = sr.GroupRoundedDuration.Value; - } - else - { - duration = sr.RoundedDuration; - } - - return duration; - } - - public override bool SollPauseBerechnen() - { - return true; - } - - public override bool ShouldCreateDayDetails() - { - return true; - } - - public override MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed) - { - var dd = base.CreateDayDetail(date, ed); - dd.MaxHoursUntilBreak = null; - dd.MaxHoursUntilBreak2 = null; - dd.BreakMinutes = null; - dd.BreakMinutes2 = null; - return dd; - } - - public override decimal BerechnePauseMinuten(IList srListAlle) - { - - var srList = srListAlle.Where(s => s.ServiceDescription.ServiceCategory.Name == "Arbeitszeit"); - - - decimal pausenZeit = 0; - - List pausen = new List(); - List nichtpausen = new List(); - - foreach (var sr in srList) - { - if (sr.ServiceDescription.Name == "Pause") - { - pausen.Add(sr); - } - else - { - nichtpausen.Add(sr); - } - } - - foreach (var pause in pausen) - { - pausenZeit += pause.RoundedDuration; - - } - return pausenZeit; - } - + public override decimal GetFeiertagsFaktor(DateTime start) { if (start.Year >= 2024 && start.Month == 12 && (start.Day == 24 || start.Day == 31))