AuslastungBerechnung + SupportConceptPeriodStatisticsDC - Anpassung um MinutesFree ZUM StatisticDate

This commit is contained in:
2025-04-30 15:26:28 +02:00
parent 0ecaf02140
commit bd0cb5b308
2 changed files with 18 additions and 25 deletions

View File

@@ -123,8 +123,6 @@ namespace BeWo.Report.ReportObjects
b.Customer.Person.LastName + ", " + b.Customer.Person.FirstName);
});
}
}
public virtual void CreateEmployeeDetails(MitarbeiterauslastungRO ro)
@@ -386,7 +384,7 @@ namespace BeWo.Report.ReportObjects
}
var scDC = new MitarbeiterauslastungRO.SupportConceptDetail();
scDC.Customer = customer;
if (customer.Person.FirstName == "Ilona ")
if (customer.Person.FirstName == "Leo")
{
int test = 0;
}
@@ -403,8 +401,8 @@ namespace BeWo.Report.ReportObjects
if (stats.PeriodStatistics != null && stats.PeriodStatistics.Any(s => s.SupportConceptApprovalPeriod.SupportConceptApprovalPeriodOid == scap.Oid))
{
var stat = stats.PeriodStatistics.First(s => s.SupportConceptApprovalPeriod.SupportConceptApprovalPeriodOid == scap.Oid);
scDC.FreiProWoche = Math.Round(stat.MinutesFreePerWeek / 60, 2, MidpointRounding.AwayFromZero);
scDC.FreiProMonat = Math.Round(stat.MinutesFreePerMonth / 60, 2, MidpointRounding.AwayFromZero);
scDC.FreiProWoche = Math.Round(stat.MinutesFreePerWeekStatisticDate / 60, 2, MidpointRounding.AwayFromZero);
scDC.FreiProMonat = Math.Round(stat.MinutesFreePerMonthStatisticDate / 60, 2, MidpointRounding.AwayFromZero);
}
// Prozentwert aus der Bewilligung einbeziehen
if (anteil != null)
@@ -707,10 +705,8 @@ namespace BeWo.Report.ReportObjects
{
scapOhneCat = scap;
}
}
}
}
return scapOhneCat;
}
@@ -831,11 +827,10 @@ namespace BeWo.Report.ReportObjects
if (scDC.CostBearer2SupportConcept != null && scDC.SupportConceptApprovalPeriod != null)
{
var calc = PluginLoader.FindClass<Calculations>(scDC.CostBearer2SupportConcept.CostBearer.ID) ?? Calculations.GetInstance(scDC.CostBearer2SupportConcept.CostBearer.ID);
var cb2scDc =
MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(scDC.CostBearer2SupportConcept);
var cb2scDc = MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(scDC.CostBearer2SupportConcept);
var scapDc = MapperFactory.SupportConceptApprovalPeriodDC_SupportConceptApprovalPeriod.MapToNewDC(scDC.SupportConceptApprovalPeriod);
var bewilligt = calc.GetApprovedHoursPerWeek(scapDc, cb2scDc.CostBearer.CostRatePeriods) ?? 0m;
scDC.ApprovedHoursPerWeek = calc.ApplyIsCalculationWithFactor(cb2scDc, bewilligt) ?? 0m;
scDC.ApprovedHoursPerWeekTotal = scDC.ApprovedHoursPerWeek;
scDC.ApprovedHoursPerWeekWithRateFactor = bewilligt;
@@ -845,32 +840,26 @@ namespace BeWo.Report.ReportObjects
if (scapDc.ApprovedBEInterval.HasValue && scapDc.ApprovedBEPerInterval.HasValue && scapDc.ApprovedBEInterval.Value == SupportConceptApprovalInterval.Monthly)
{
bewilligtMonth = scapDc.ApprovedBEPerInterval.Value;
scDC.ApprovedHoursPerMonth = calc.ApplyIsCalculationWithFactor(cb2scDc, bewilligtMonth) ?? 0m;
scDC.ApprovedHoursPerMonthTotal = scDC.ApprovedHoursPerMonth;
scDC.ApprovedHoursPerMonthWithRateFactor = bewilligtMonth;
scDC.ApprovedHoursPerMonthWithRateFactorTotal = scDC.ApprovedHoursPerMonthWithRateFactor;
}
else
{
var periodInDays = 0;
if (scapDc.EndDate.HasValue && scapDc.StartDate.HasValue)
{
periodInDays = (scapDc.EndDate.Value - scapDc.StartDate.Value).Days + 1;
}
var bewTag = calc.GetApprovedHoursPerDay(scapDc, cb2scDc.CostBearer.CostRatePeriods);
bewilligtMonth = periodInDays* bewTag ?? 0;
scDC.ApprovedHoursPerMonth = scDC.ApprovedHoursPerWeek * 4.33m;
scDC.ApprovedHoursPerMonthTotal = scDC.ApprovedHoursPerWeekTotal * 4.33m;
scDC.ApprovedHoursPerMonthWithRateFactor = scDC.ApprovedHoursPerWeekWithRateFactor * 4.33m;
scDC.ApprovedHoursPerMonthWithRateFactorTotal = scDC.ApprovedHoursPerWeekWithRateFactorTotal * 4.33m;
}
scDC.ApprovedHoursPerMonth = calc.ApplyIsCalculationWithFactor(cb2scDc, bewilligtMonth) ?? 0m;
scDC.ApprovedHoursPerMonthTotal = scDC.ApprovedHoursPerMonth;
scDC.ApprovedHoursPerMonthWithRateFactor = bewilligtMonth;
scDC.ApprovedHoursPerMonthWithRateFactorTotal = scDC.ApprovedHoursPerMonthWithRateFactor;
scDC.StartDate = scDC.SupportConceptApprovalPeriod.StartDate;
scDC.EndDate = scDC.SupportConceptApprovalPeriod.EndDate;
scDC.WeekCountUntilNow = calc.GetDurationInWeeksTillNow(cb2scDc, date) ?? 0;
}
else if (scDC.CostBearer2SupportConcept != null && scDC.SupportConceptApprovalPeriod == null)
{
var calc = PluginLoader.FindClass<Calculations>(scDC.CostBearer2SupportConcept.CostBearer.ID) ?? Calculations.GetInstance(scDC.CostBearer2SupportConcept.CostBearer.ID);
var cb2scDc =
MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(scDC.CostBearer2SupportConcept);
var cb2scDc = MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(scDC.CostBearer2SupportConcept);
scDC.ApprovedHoursPerWeek = calc.GetApprovedHoursPerWeek(cb2scDc, date) ?? 0m;
scDC.ApprovedHoursPerWeekTotal = scDC.ApprovedHoursPerWeek;

View File

@@ -38,6 +38,10 @@ namespace BS.Shared.DataContracts
public decimal MinutesFreePerMonth { get; set; }
public decimal MinutesFreePerWeekStatisticDate { get; set; }
public decimal MinutesFreePerMonthStatisticDate { get; set; }
[DataMember]
public decimal MinutesOutOfApprovedPeriod { get; set; }