Änderung Bew FLS ohne Assistenz
This commit is contained in:
@@ -13,44 +13,62 @@ using BS.Shared.Services;
|
||||
|
||||
namespace AidsHilfeDuisburg.Invoicing
|
||||
{
|
||||
|
||||
|
||||
public class CustomSettlementInvoiceCreation : SettlementInvoiceCreation
|
||||
{
|
||||
public override bool CanCreateInvoiceTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
|
||||
{
|
||||
var relDC = c2s.MapToNewDC();
|
||||
public override bool CanCreateInvoiceTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
|
||||
{
|
||||
var relDC = c2s.MapToNewDC();
|
||||
|
||||
DateTime start = si.AccountingPeriodStart.Value.Date;
|
||||
DateTime end = si.AccountingPeriodEnd.Value.Date;
|
||||
if (c2s.SupportConcept.Customer.TerminationDate.HasValue &&
|
||||
c2s.SupportConcept.Customer.TerminationDate.Value < end)
|
||||
end = c2s.SupportConcept.Customer.TerminationDate.Value;
|
||||
if (end > DateTime.Now)
|
||||
{
|
||||
var srList = c2s.ServiceRecords;
|
||||
var max = srList.Max(s => s.End);
|
||||
DateTime start = si.AccountingPeriodStart.Value.Date;
|
||||
DateTime end = si.AccountingPeriodEnd.Value.Date;
|
||||
if (c2s.SupportConcept.Customer.TerminationDate.HasValue &&
|
||||
c2s.SupportConcept.Customer.TerminationDate.Value < end)
|
||||
end = c2s.SupportConcept.Customer.TerminationDate.Value;
|
||||
if (end > DateTime.Now)
|
||||
{
|
||||
var srList = c2s.ServiceRecords;
|
||||
var max = srList.Max(s => s.End);
|
||||
|
||||
if (max.HasValue && max < end)
|
||||
end = max.Value;
|
||||
}
|
||||
if (max.HasValue && max < end)
|
||||
end = max.Value;
|
||||
}
|
||||
|
||||
var hourlyRatesInSpanList = relDC.CostBearer.CostRatePeriods.GetSpans(CostRatePeriodType.HourlyRate, start, end).ToList();
|
||||
if (hourlyRatesInSpanList.Count > 3)
|
||||
return false;
|
||||
var hourlyRatesInSpanList = relDC.CostBearer.CostRatePeriods.GetSpans(CostRatePeriodType.HourlyRate, start, end).ToList();
|
||||
if (hourlyRatesInSpanList.Count > 3)
|
||||
return false;
|
||||
|
||||
var factorInSpanList = relDC.CostBearer.CostRatePeriods.GetSpans(CostRatePeriodType.RateFactor, start, end).ToList();
|
||||
if (factorInSpanList.Count > 1)
|
||||
return false;
|
||||
var factorInSpanList = relDC.CostBearer.CostRatePeriods.GetSpans(CostRatePeriodType.RateFactor, start, end).ToList();
|
||||
if (factorInSpanList.Count > 1)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool IsServiceRecordBillable(ServiceRecord iRecord)
|
||||
{
|
||||
if (iRecord.ServiceDescription.ServiceCategory.Name.Contains("Assistenz"))
|
||||
return false;
|
||||
public override bool IsServiceRecordBillable(ServiceRecord iRecord)
|
||||
{
|
||||
if (iRecord.ServiceDescription.ServiceCategory.Name.Contains("Assistenz"))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void CalculateSettlementInvoiceApprovedAmounts(Settlement2DC si, SupportConceptCostBearerRelDC relDC, Calculations calc)
|
||||
{
|
||||
si.ApprovedFLSWeekly = 0;
|
||||
si.ApprovedFLS = 0;
|
||||
foreach (var sp in relDC.ApprovalPeriodList)
|
||||
{
|
||||
if (sp.ServiceCategory == null || !sp.ServiceCategory.Name.Contains("Assistenz"))
|
||||
{
|
||||
si.ApprovedFLSWeekly += calc.GetApprovedHoursPerWeek(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
|
||||
|
||||
decimal flsTotal = calc.GetApprovedHoursTotal(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
|
||||
flsTotal = Math.Round(flsTotal, 2, MidpointRounding.AwayFromZero);
|
||||
|
||||
si.ApprovedFLS += flsTotal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,5 +52,23 @@ namespace BehindertNaUnd.Invoicing
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public override void CalculateSettlementInvoiceApprovedAmounts(Settlement2DC si, SupportConceptCostBearerRelDC relDC, Calculations calc)
|
||||
{
|
||||
si.ApprovedFLSWeekly = 0;
|
||||
si.ApprovedFLS = 0;
|
||||
foreach (var sp in relDC.ApprovalPeriodList)
|
||||
{
|
||||
if (sp.ServiceCategory == null || !sp.ServiceCategory.Name.Contains("Assistenz"))
|
||||
{
|
||||
si.ApprovedFLSWeekly += calc.GetApprovedHoursPerWeek(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
|
||||
|
||||
decimal flsTotal = calc.GetApprovedHoursTotal(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
|
||||
flsTotal = Math.Round(flsTotal, 2, MidpointRounding.AwayFromZero);
|
||||
|
||||
si.ApprovedFLS += flsTotal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,5 +52,23 @@ namespace PZDDuesseldorf.Invoicing
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public override void CalculateSettlementInvoiceApprovedAmounts(Settlement2DC si, SupportConceptCostBearerRelDC relDC, Calculations calc)
|
||||
{
|
||||
si.ApprovedFLSWeekly = 0;
|
||||
si.ApprovedFLS = 0;
|
||||
foreach (var sp in relDC.ApprovalPeriodList)
|
||||
{
|
||||
if (sp.ServiceCategory == null || !sp.ServiceCategory.Name.Contains("Assistenz"))
|
||||
{
|
||||
si.ApprovedFLSWeekly += calc.GetApprovedHoursPerWeek(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
|
||||
|
||||
decimal flsTotal = calc.GetApprovedHoursTotal(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
|
||||
flsTotal = Math.Round(flsTotal, 2, MidpointRounding.AwayFromZero);
|
||||
|
||||
si.ApprovedFLS += flsTotal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,5 +52,23 @@ namespace RatPlusTat.Invoicing
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public override void CalculateSettlementInvoiceApprovedAmounts(Settlement2DC si, SupportConceptCostBearerRelDC relDC, Calculations calc)
|
||||
{
|
||||
si.ApprovedFLSWeekly = 0;
|
||||
si.ApprovedFLS = 0;
|
||||
foreach (var sp in relDC.ApprovalPeriodList)
|
||||
{
|
||||
if (sp.ServiceCategory == null || !sp.ServiceCategory.Name.Contains("Assistenz"))
|
||||
{
|
||||
si.ApprovedFLSWeekly += calc.GetApprovedHoursPerWeek(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
|
||||
|
||||
decimal flsTotal = calc.GetApprovedHoursTotal(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
|
||||
flsTotal = Math.Round(flsTotal, 2, MidpointRounding.AwayFromZero);
|
||||
|
||||
si.ApprovedFLS += flsTotal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user