MH: TeamPfeil Korridorabrechnung Zwischenstand
This commit is contained in:
@@ -122,40 +122,43 @@ namespace TeamPfeil.Invoicing
|
||||
else
|
||||
{
|
||||
bool korridorAufgebraucht = false;
|
||||
bool mischitem = false; // Mischitem = ServiceRecord kann nur teilweise mit Leistungsstundensatz abgerechnet werden, teils aber mit MA-Qual--Std.satz
|
||||
// KORRIDOR ERMITTELN
|
||||
var scapDC = MapperFactory.SupportConceptApprovalPeriodDC_SupportConceptApprovalPeriod.MapToNewDC(scap);
|
||||
var gesamtBewilligt = KorridorberechnungHelper.BerechneStundenBewilligtGesamt(scapDC);
|
||||
double korridorbudgetQualifiziert = 0;
|
||||
double korridorbudgetUnterstuetzend = 0;
|
||||
|
||||
double korridorbudget = 0;
|
||||
double genutztesKorridorbudget = 0;
|
||||
double rest = 0;
|
||||
|
||||
if (scap.ServiceCategory.Name.Contains("Qualifizierte Assistenz"))
|
||||
{
|
||||
korridorbudgetQualifiziert = KorridorberechnungHelper.BerechneBudgetFuerQualAss(gesamtBewilligt);
|
||||
double genutzt = KorridorberechnungHelper.BerechneGenutzteKorridorstunden(iServiceRecord.SupportConcept.SupportConceptOid, scapDC.ServiceCategory,
|
||||
korridorbudgetQualifiziert, iServiceRecord.Start.Value, true);
|
||||
var rest = korridorbudgetQualifiziert - genutzt;
|
||||
|
||||
// todo: Wenn das Item noch etwas Restbudget hat, aber es nicht ganz ausreicht, um alles abzudecken, muss eig ein Mischitem erzeugt werden.
|
||||
// Es muss also der Teil, der noch verfügbar ist, mit dem Leistungsstundensatz verrechnet werden und der Rest mit der Qualifikation
|
||||
if (rest > 0 && rest - Convert.ToDouble(iServiceRecord.RoundedDuration) / 60 < 0)
|
||||
{
|
||||
|
||||
}
|
||||
if (rest <= 0)
|
||||
korridorAufgebraucht = true;
|
||||
korridorbudget = KorridorberechnungHelper.BerechneBudgetFuerQualAss(gesamtBewilligt);
|
||||
genutztesKorridorbudget = KorridorberechnungHelper.BerechneGenutzteKorridorstunden(iServiceRecord.SupportConcept.SupportConceptOid, scapDC.ServiceCategory,
|
||||
korridorbudget, iServiceRecord.Start.Value, true);
|
||||
rest = korridorbudget - genutztesKorridorbudget;
|
||||
}
|
||||
else if (scap.ServiceCategory.Name.Contains("Unterstützende Assistenz"))
|
||||
{
|
||||
korridorbudgetUnterstuetzend = KorridorberechnungHelper.BerechneBudgetFuerUnterstAss(gesamtBewilligt);
|
||||
double genutzt = KorridorberechnungHelper.BerechneGenutzteKorridorstunden(iServiceRecord.SupportConcept.SupportConceptOid, scapDC.ServiceCategory,
|
||||
korridorbudgetUnterstuetzend, iServiceRecord.Start.Value, false);
|
||||
var rest = korridorbudgetUnterstuetzend - genutzt;
|
||||
|
||||
if (rest <= 0)
|
||||
korridorAufgebraucht = true;
|
||||
korridorbudget = KorridorberechnungHelper.BerechneBudgetFuerUnterstAss(gesamtBewilligt);
|
||||
genutztesKorridorbudget = KorridorberechnungHelper.BerechneGenutzteKorridorstunden(iServiceRecord.SupportConcept.SupportConceptOid, scapDC.ServiceCategory,
|
||||
korridorbudget, iServiceRecord.Start.Value, false);
|
||||
rest = korridorbudget - genutztesKorridorbudget;
|
||||
}
|
||||
|
||||
// todo: Wenn das Item noch etwas Restbudget hat, aber es nicht ganz ausreicht, um alles abzudecken, muss eig ein Mischitem erzeugt werden.
|
||||
// Es muss also der Teil, der noch verfügbar ist, mit dem Leistungsstundensatz verrechnet werden und der Rest mit der Qualifikation
|
||||
if (rest > 0 && rest - Convert.ToDouble(iServiceRecord.RoundedDuration) / 60 < 0)
|
||||
{
|
||||
decimal zeitNormalAbrechenbar = Convert.ToDecimal(rest);
|
||||
decimal zeitMitMitarbeiterStundensatz = iServiceRecord.RoundedDuration / 60 - Convert.ToDecimal(rest);
|
||||
|
||||
|
||||
|
||||
mischitem = true;
|
||||
}
|
||||
else if (rest <= 0)
|
||||
korridorAufgebraucht = true;
|
||||
|
||||
if (korridorAufgebraucht) // Stundensatz der Mitarbeitendenqualifikation
|
||||
{
|
||||
var qualifikation = iServiceRecord.Employee.ValueListEntries.FirstOrDefault(v => v.Value == ValueListEntryType.StaffQualificationsType);
|
||||
|
||||
Reference in New Issue
Block a user