FeidPartnerReports - Finish Umstellung auf Min - insbesondere Hilfeplanübersicht
This commit is contained in:
@@ -30,7 +30,7 @@ namespace FeidPartnerReports.Calculation
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return GetApprovedHoursForPeriod(pStart.Value, pEnd.Value, GetApprovedHoursPerMonth(scap));
|
||||
return GetApprovedHoursForPeriod(pStart.Value, pEnd.Value, GetApprovedHoursPerMonth(scap, costRatePeriods));
|
||||
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace FeidPartnerReports.Calculation
|
||||
|
||||
if (scap.StartDate.HasValue)
|
||||
{
|
||||
return GetApprovedHoursForPeriod(scap.StartDate.Value, end, GetApprovedHoursPerMonth(scap));
|
||||
return GetApprovedHoursForPeriod(scap.StartDate.Value, end, GetApprovedHoursPerMonth(scap, costRates));
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -76,7 +76,7 @@ namespace FeidPartnerReports.Calculation
|
||||
{
|
||||
foreach (var scap in relDC.ApprovalPeriodList)
|
||||
{
|
||||
totalApproved += GetApprovedHoursTillNow(scap, null, appointedDate, false) ?? 0;
|
||||
totalApproved += GetApprovedHoursTillNow(scap, relDC.CostBearer.CostRatePeriods, appointedDate, false) ?? 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ namespace FeidPartnerReports.Calculation
|
||||
decimal total = 0;
|
||||
foreach (var scap in relDC.ApprovalPeriodList)
|
||||
{
|
||||
var approvedPerMonth = GetApprovedHoursPerMonth(scap);
|
||||
var approvedPerMonth = GetApprovedHoursPerMonth(scap, relDC.CostBearer.CostRatePeriods);
|
||||
// Anpassung auf Minuten noch nötig!!!
|
||||
// var approvedPerMonth = GetApprovedHoursPerMonth(scap, relDC);
|
||||
var approved = GetApprovedHoursForPeriod(scap.StartDate.Value, scap.EndDate.Value, approvedPerMonth);
|
||||
@@ -126,12 +126,12 @@ namespace FeidPartnerReports.Calculation
|
||||
decimal total = 0;
|
||||
foreach (var scap in c2s.ApprovalPeriodList)
|
||||
{
|
||||
total += GetApprovedHoursPerMonth(scap);
|
||||
total += GetApprovedHoursPerMonth(scap, c2s.CostBearer.CostRatePeriods);
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
private decimal GetApprovedHoursPerMonth(SupportConceptApprovalPeriodDC scap)
|
||||
private decimal GetApprovedHoursPerMonth(SupportConceptApprovalPeriodDC scap, List<CostRatePeriodDC> costRatePeriods)
|
||||
{
|
||||
if (scap.ApprovedBEInterval.HasValue && scap.ApprovedBEPerInterval.HasValue)
|
||||
{
|
||||
@@ -153,9 +153,37 @@ namespace FeidPartnerReports.Calculation
|
||||
}
|
||||
}
|
||||
|
||||
var flsProWoche = GetApprovedHoursPerWeek(scap, new List<CostRatePeriodDC>()) ?? 0;
|
||||
var flsProWoche = GetApprovedHoursPerWeek(scap, costRatePeriods) ?? 0;
|
||||
|
||||
return flsProWoche * 4.34m;
|
||||
}
|
||||
|
||||
public override decimal? GetApprovedHoursPerWeekAverage(SupportConceptCostBearerRelDC relDC, bool useIsCalculationWithFactor)
|
||||
{
|
||||
// Fahrtzeiten nicht in Ministatistik nur für Abrechnung
|
||||
relDC.ApprovalPeriodList = relDC.ApprovalPeriodList.Where(p => p.ServiceCategory == null || String.IsNullOrEmpty(p.ServiceCategory.Abbreviation) ||
|
||||
!p.ServiceCategory.Abbreviation.Contains("FZQA")).ToList();
|
||||
|
||||
var duration = relDC.GetApprovedDuration();
|
||||
if (!duration.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
if (relDC.ApprovalPeriodList != null && relDC.ApprovalPeriodList.Count == 1)
|
||||
{
|
||||
decimal? hoursPerWeek = GetApprovedHoursPerWeek(relDC.ApprovalPeriodList[0], relDC.CostBearer.CostRatePeriods);
|
||||
if (useIsCalculationWithFactor)
|
||||
hoursPerWeek = ApplyIsCalculationWithFactor(relDC, hoursPerWeek);
|
||||
return hoursPerWeek;
|
||||
}
|
||||
|
||||
if (duration.Value.Days != 0)
|
||||
{
|
||||
var averagePerDay = this.GetApprovedHoursTotal(relDC, useIsCalculationWithFactor) / duration.Value.Days;
|
||||
return averagePerDay * 7;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,36 @@ using BeWo.Service.ServiceImplementations;
|
||||
namespace FeidPartnerReports
|
||||
{
|
||||
public class CustomSupportConceptAnalysisCreator : SupportConceptAnalysisCreator
|
||||
{
|
||||
{
|
||||
public override List<SupportConceptOverviewDC> GetSupportConceptAnalysis2(IList<long> c2sOids, long? employeeOid, long? teamOid, long? catOid, DateTime? startDate, DateTime? endDate,
|
||||
int? expiredMonths, bool showArchivedScs)
|
||||
{
|
||||
var result = base.GetSupportConceptAnalysis2(c2sOids, employeeOid, teamOid, catOid, startDate, endDate, expiredMonths, showArchivedScs);
|
||||
// Die Berechnungen sind jetzt soweit in Ordnung, werden nur im letzen Schritt, dass was hier auch ist, wieder verfälscht,
|
||||
// da der Kostenträger auf Min und nicht wie von denen gewünscht Std ist - das drehe ich hier inkl. Beschriftung in Stunden zurück
|
||||
foreach (var iDC in result)
|
||||
{
|
||||
if (iDC.ServiceUnit.CostRateValue == 1)
|
||||
{
|
||||
iDC.ServiceUnit.UnitName = "Stunden";
|
||||
iDC.HeaderString.Replace("Minuten/Woche", "Stunden/Woche");
|
||||
iDC.BEApprovedPerWeek = iDC.BEApprovedPerWeek / 60m;
|
||||
iDC.BEApprovedSum = iDC.FLSApprovedSum;
|
||||
iDC.BEApprovedTillNow = iDC.FLSApprovedTillNow;
|
||||
iDC.BEBilledTillNow = iDC.FLSBilledTillNow;
|
||||
iDC.BEDifferenceApprovedRecordedTillNow = iDC.FLSDifferenceApprovedRecordedTillNow;
|
||||
iDC.BEDifferenceApprovedRecordedTillNowInPercent = iDC.FLSDifferenceApprovedRecordedTillNowInPercent;
|
||||
iDC.BEOpen = iDC.FLSOpen;
|
||||
iDC.BEOpenPerWeek = iDC.FLSOpenPerWeek;
|
||||
if (iDC.BEOpenPerWeek > iDC.BEOpen)
|
||||
iDC.BEOpenPerWeek = iDC.BEOpen;
|
||||
iDC.BERecordedTillNow = iDC.FLSRecordedTillNow;
|
||||
iDC.BERecordedTillNowInPercent = iDC.FLSRecordedTillNowInPercent;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public override List<ServiceRecordDC> GetServiceRecordDCs(CostBearer2SupportConcept c2s, DateTime minDate, DateTime maxDate)
|
||||
{
|
||||
var dcList = new List<ServiceRecordDC>();
|
||||
@@ -28,7 +57,11 @@ namespace FeidPartnerReports
|
||||
if (_cs2ServiceRecords.ContainsKey(c2s.Oid.Value))
|
||||
{
|
||||
dcList = _cs2ServiceRecords[c2s.Oid.Value];
|
||||
dcList.Where(s => s.Start >= minDate && s.Start < maxDate).ToList();
|
||||
dcList = dcList.Where(s => s.Start >= minDate && s.Start < maxDate).ToList();
|
||||
if (dcList != null && dcList.Count() > 0)
|
||||
{
|
||||
dcList = dcList.Where(s => !s.GroupOid.HasValue).ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -79,10 +79,11 @@ namespace FeidPartnerReports.Statistics
|
||||
}
|
||||
start = start.AddDays(7);
|
||||
}
|
||||
if (!cb2sc.CostBearer.Organisation.Name.ToLower().Contains("alt"))
|
||||
{
|
||||
item.MinutesApprovedTotal /= 60;
|
||||
}
|
||||
// AB, 12.09.2025: wird jetzt in Calculations schon richtig gemacht
|
||||
//if (!cb2sc.CostBearer.Organisation.Name.ToLower().Contains("alt"))
|
||||
//{
|
||||
// item.MinutesApprovedTotal /= 60;
|
||||
//}
|
||||
SetMinutesFreePerWeek(stat, item);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user