FinanceRO - Erweiterung um Betrag bewilligte FLS im Zeitraum

This commit is contained in:
2024-04-15 16:01:01 +02:00
parent bf91fe3c33
commit 163cc80084
2 changed files with 72 additions and 5 deletions

View File

@@ -57,7 +57,9 @@ namespace BeWo.Report.ReportObjects
public decimal ApprovedHoursInReportTimeSpan { get; set; }
public decimal BillableHoursInReportTimeSpan { get; set; }
public decimal ApprovedAmountInReportTimeSpan { get; set; }
public decimal BillableHoursInReportTimeSpan { get; set; }
public decimal BillableHoursInReportTimeSpanWithFactor { get; set; }
@@ -315,7 +317,14 @@ namespace BeWo.Report.ReportObjects
ro.ApprovedHoursInReportTimeSpan = calc.GetApprovedHoursForPeriod(ro.Costbearer2Supportconcept, start.Value, end.Value);
}
if (splitByServiceCategory && ro.SupportConceptApprovalPeriod != null)
{
ro.ApprovedAmountInReportTimeSpan = (decimal)calc.GetApprovedAmountForPeriod(ro.Costbearer2Supportconcept, start.Value, end.Value, ro.SupportConceptApprovalPeriod.ServiceCategory);
}
else
{
ro.ApprovedAmountInReportTimeSpan = (decimal)calc.GetApprovedAmountForPeriod(ro.Costbearer2Supportconcept, start.Value, end.Value, null);
}
ro.AmountInReportTimeSpan = 0;
ro.AmountNichtFehlkontakteInReportTimeSpan = 0;
ro.AmountFehlkontakteInReportTimeSpan = 0;
@@ -486,9 +495,12 @@ namespace BeWo.Report.ReportObjects
ro = CreateSupportConceptFinanceRO(item, relDC, scapDC, true);
// statt dem auskommentierten Bereich
var AmountTotal = calc.GetApprovedAmount(scapDC, relDC.CostBearer.CostRatePeriods) ?? 0;
ro.AmountTotal = AmountTotal;
ro.OpenAmount = AmountTotal;
var amountTotal = calc.GetApprovedAmount(scapDC, relDC.CostBearer.CostRatePeriods) ?? 0;
ro.AmountTotal = amountTotal;
ro.OpenAmount = amountTotal;
//var approvedAmountInTimeSpan = calc.GetApprovedAmountInTimeSpan(relDC, result.ReportStartDate, result.ReportEndDate) ?? 0;
SmallList.Add(ro);

View File

@@ -43,6 +43,61 @@ namespace BS.Shared.Services
}
}
public virtual decimal? GetApprovedAmountForPeriod(SupportConceptCostBearerRelDC c2sDc, DateTime? start, DateTime? end, ServiceCategoryDC cat)
{
// Start- und Enddate sowie Leistungskategorie sind KannFelder
var dtStart = c2sDc.StartDate;
var dtEnd = c2sDc.EndDate;
if (start.HasValue && start > dtStart)
{
dtStart = start;
}
if (end.HasValue && end < dtEnd)
{
dtEnd = end;
}
decimal summe = 0;
var orgCrList = c2sDc.CostBearer.CostRatePeriods;
if (cat != null) // Im Fall, dass nur eine bestimmte Leistungskategorie berücksichtigt werden soll
{
foreach (var scap in c2sDc.ApprovalPeriodList)
{
if (scap.StartDate <= dtEnd && scap.EndDate >= dtStart && scap.ServiceCategory != null && scap.ServiceCategory.ServiceCategoryOid == cat.ServiceCategoryOid)
{
if (scap.ServiceCategory.CostRatePeriods != null && scap.ServiceCategory.CostRatePeriods.Count > 0)
{
summe += GetApprovedAmountDefaultHourlyRateForPeriod(scap, scap.ServiceCategory.CostRatePeriods, dtStart, dtEnd) ?? 0;
}
else
{
summe += GetApprovedAmountDefaultHourlyRateForPeriod(scap, orgCrList, dtStart, dtEnd) ?? 0;
}
}
}
}
else
{
foreach (var scap in c2sDc.ApprovalPeriodList)
{
if (scap.StartDate <= dtEnd && scap.EndDate >= dtStart)
{
if (scap.ServiceCategory != null && scap.ServiceCategory.CostRatePeriods != null && scap.ServiceCategory.CostRatePeriods.Count > 0)
{
summe += GetApprovedAmountDefaultHourlyRateForPeriod(scap, scap.ServiceCategory.CostRatePeriods, dtStart, dtEnd) ?? 0;
}
else
{
summe += GetApprovedAmountDefaultHourlyRateForPeriod(scap, orgCrList, dtStart, dtEnd) ?? 0;
}
}
}
}
return summe;
}
public virtual decimal? GetApprovedAmount(SupportConceptApprovalPeriodDC scap, List<CostRatePeriodDC> costRatePeriods)
{
decimal t1;