diff --git a/ReportImp/BeWoDarmstadt/Calculations/CustomGroupDurationCalculator.cs b/ReportImp/BeWoDarmstadt/Calculations/CustomGroupDurationCalculator.cs index 5a064cd8c..50b0f9a05 100644 --- a/ReportImp/BeWoDarmstadt/Calculations/CustomGroupDurationCalculator.cs +++ b/ReportImp/BeWoDarmstadt/Calculations/CustomGroupDurationCalculator.cs @@ -13,8 +13,6 @@ namespace BeWoDarmstadt.Calculation { public override void CalculateGroupDuration(ServiceRecordGroup group) { - - var hatGruppenLeistung = group.ServiceRecordList.Any(s => GetMaxDuration(s.ServiceDescription.Name).HasValue); if (hatGruppenLeistung) { diff --git a/ReportImp/BeWoDarmstadt/Teamuebersicht.cs b/ReportImp/BeWoDarmstadt/Teamuebersicht.cs index 38183df95..3577814f3 100644 --- a/ReportImp/BeWoDarmstadt/Teamuebersicht.cs +++ b/ReportImp/BeWoDarmstadt/Teamuebersicht.cs @@ -1,9 +1,12 @@ using System; +using System.Linq; using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.Report; using BeWo.Report.ReportObjects; using BeWo.Service.DCEntityMapper; +using BS.Shared.DataContracts; +using BS.Shared.Extensions; using BS.Shared.Services; namespace BeWoDarmstadt @@ -45,7 +48,7 @@ namespace BeWoDarmstadt var cb2sc = scRo.Costbearer2Supportconcept; var costRateDcs = cb2sc.CostBearer.CostRatePeriods; var calc = BS.Shared.Services.Calculations.GetInstance(cb2sc.CostBearer.CostBearerID); - scRo.ApprovedHours = calc.GetApprovedHoursForPeriod(cb2sc, monthStart, end); + scRo.ApprovedHours = GetApprovedHoursOhneFahrzeitForPeriod(cb2sc, monthStart, end); scRo.BillableHours = 0; scRo.AmountPaid = 0; @@ -85,5 +88,60 @@ namespace BeWoDarmstadt } return scRo.Costbearer2Supportconcept.SupportConcept.Customer.RelatedTeams; } + + private decimal GetApprovedHoursOhneFahrzeitForPeriod(SupportConceptCostBearerRelDC relDC, + DateTime pStart, + DateTime pEnd) + { + + var costRatePeriods = relDC.CostBearer.CostRatePeriods; + + decimal approvedHours = 0; + + DateTime start = pStart; + DateTime end = pEnd; + if (relDC.SupportConcept.CustomerFullName.Contains("Sanna")) + { + int test = 0; + } + + foreach (var scap in relDC.ApprovalPeriodList) + { + if (start.InBetween(scap.Span, true) && scap.ServiceCategory != null && !scap.ServiceCategory.Name.ToLower().Contains("fahrzeit")) + { + while (start <= end) + { + if (scap != null) + { + if (scap.EndDate.HasValue && scap.EndDate.Value < end) + end = scap.EndDate.Value; + + var periodInDays = end.Subtract(start).Days + 1; + + var calc = BS.Shared.Services.Calculations.GetInstance(relDC.CostBearer.CostBearerID); + approvedHours += (calc.GetApprovedHoursPerDay(scap, costRatePeriods) ?? 0) * periodInDays; + } + else + { + DateTime minStart = DateTime.MaxValue; + foreach (var period in relDC.ApprovalPeriodList) + { + if (period.StartDate.HasValue && period.EndDate.HasValue) + { + if (period.StartDate.Value > start && period.StartDate.Value <= pEnd && period.StartDate.Value < minStart) + { + minStart = period.StartDate.Value; + } + } + } + end = minStart.AddDays(-1); + } + + start = end.AddDays(1); + } + } + } + return approvedHours; + } } } diff --git a/ReportImp/BeWoDarmstadt/Zeitzuschlagsbeleg.cs b/ReportImp/BeWoDarmstadt/Zeitzuschlagsbeleg.cs index 7743dbd3e..afb485f50 100644 --- a/ReportImp/BeWoDarmstadt/Zeitzuschlagsbeleg.cs +++ b/ReportImp/BeWoDarmstadt/Zeitzuschlagsbeleg.cs @@ -320,7 +320,8 @@ namespace BeWoDarmstadt zv.minutenLeistung = CheckUhrzeiten(datum, 0, 24, (double)duration); if (sr.ServiceDescription.ServiceCategory.Name.ToLower().Contains("eingliederungshilfe") || sr.ServiceDescription.ServiceCategory.Name.ToLower().Contains("jugendhilfe") - || sr.ServiceDescription.ServiceCategory.Name.ToLower().Contains("fachleistungsstunde")) // FLS nach Debug entfernen + || sr.ServiceDescription.ServiceCategory.Name.ToLower().Contains("qualifizierte assistenz") + || sr.ServiceDescription.ServiceCategory.Name.ToLower().Contains("kompensatorische assistenz")) { if (sr.ServiceDescription.Name.ToLower().StartsWith("indirekte")) AddValueToCell(zv.minutenLeistung, datum, tableFLS.Rows[2], indirekteBetr2Minuten);