From 032380fa983d3514aa09e5adb2d8b752bb7d2500 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Fri, 24 Apr 2026 09:23:39 +0200 Subject: [PATCH] InputFamilienhilfe/Invoicing/UnterbringungInvoiceCreation - neue Abrechnungsart nur Tagessatz SupportOID=161010 --- .../Invoicing/UnterbringungInvoiceCreation.cs | 215 +++++------------- 1 file changed, 55 insertions(+), 160 deletions(-) diff --git a/ReportImp/InputFamilienhilfe/Invoicing/UnterbringungInvoiceCreation.cs b/ReportImp/InputFamilienhilfe/Invoicing/UnterbringungInvoiceCreation.cs index abf34dd97..59b6aacb7 100644 --- a/ReportImp/InputFamilienhilfe/Invoicing/UnterbringungInvoiceCreation.cs +++ b/ReportImp/InputFamilienhilfe/Invoicing/UnterbringungInvoiceCreation.cs @@ -72,64 +72,66 @@ namespace InputFamilienhilfe.Invoicing { list.Add(i); } - - var listIzl = CreateIZLItems(scap, calc, serviceRecordsInPeriod, invoicePeriod); - list.AddRange(listIzl); - - //Bekleidungsergänzung wird erst ab dem ersten VOLLEN Monat des Hilfeplans berechnet - DateTime startMonat2 = new DateTime(scap.StartDate.Value.Year, scap.StartDate.Value.Month, 1).AddMonths(1); - - if (scap.StartDate.Value.Day == 1 || invoicePeriod.StartDate >= startMonat2) + // AB, 24.04.2026: neue Betreuungsform wo (vorerst) nur die Tagessätze und nichts anderes abgerechnet wir -> Alias BJW EGH + if (!scap.CostBearer2SupportConcept.SupportConcept.Customer.CustomerAlias.ToLower().Contains("egh")) { - i = CreateInvoiceItem(scap, invoicePeriod, 1, 48, "Bekleidungsergänzung"); + var listIzl = CreateIZLItems(scap, calc, serviceRecordsInPeriod, invoicePeriod); + list.AddRange(listIzl); + + //Bekleidungsergänzung wird erst ab dem ersten VOLLEN Monat des Hilfeplans berechnet + DateTime startMonat2 = new DateTime(scap.StartDate.Value.Year, scap.StartDate.Value.Month, 1).AddMonths(1); + + if (scap.StartDate.Value.Day == 1 || invoicePeriod.StartDate >= startMonat2) + { + i = CreateInvoiceItem(scap, invoicePeriod, 1, 48, "Bekleidungsergänzung"); + if (i != null) + { + list.Add(i); + } + } + i = CreateInvoiceItem(scap, invoicePeriod, 1, 55, "Budget Sonderaufwendungen"); + if (i != null) + { + list.Add(i); + } + + decimal barbetragPreis = GetBarbetragPreis(scap, invoicePeriod.EndDate); + + if (barbetragPreis > 0) + { + i = CreateInvoiceItem(scap, invoicePeriod, 1, barbetragPreis, "Barbetrag"); + if (i != null) + { + list.Add(i); + } + } + + // AB 24.04.2026, noch ältere Abrechnungslogik, hab die Funktionen mal gelöscht, aber hier lass ich mal für den Fall der Fälle stehe + //i = CreateWohnenPauschale(scap, calc, invoicePeriod); + //if (i != null) + //{ + // list.Add(i); + //} + + //i = CreateHluPauschale(scap, calc, invoicePeriod); + //if (i != null) + //{ + // list.Add(i); + //} + //i = CreateBudget623Pauschale(scap, calc, invoicePeriod); + //if (i != null) + //{ + // list.Add(i); + //} + var iilist = CreateSonstigeKosten(scap, calc, serviceRecordsInPeriod, invoicePeriod); + list.AddRange(iilist); + + i = CreateLohnAnteil(scap, calc, invoicePeriod); if (i != null) { list.Add(i); } } - i = CreateInvoiceItem(scap, invoicePeriod, 1, 55, "Budget Sonderaufwendungen"); - if (i != null) - { - list.Add(i); - } - - decimal barbetragPreis = GetBarbetragPreis(scap, invoicePeriod.EndDate); - - if (barbetragPreis > 0) - { - i = CreateInvoiceItem(scap, invoicePeriod, 1, barbetragPreis, "Barbetrag"); - if (i != null) - { - list.Add(i); - } - } - //i = CreateWohnenPauschale(scap, calc, invoicePeriod); - //if (i != null) - //{ - // list.Add(i); - //} - - //i = CreateHluPauschale(scap, calc, invoicePeriod); - //if (i != null) - //{ - // list.Add(i); - //} - - - //i = CreateBudget623Pauschale(scap, calc, invoicePeriod); - //if (i != null) - //{ - // list.Add(i); - //} - var iilist = CreateSonstigeKosten(scap, calc, serviceRecordsInPeriod, invoicePeriod); - list.AddRange(iilist); - - i = CreateLohnAnteil(scap, calc, invoicePeriod); - if (i != null) - { - list.Add(i); - } - return CreateSummaryInvoiceItems(list, invoicePeriod, scap, calc); } @@ -227,15 +229,9 @@ namespace InputFamilienhilfe.Invoicing } unitCount = days; } - } - - - - + } } - - invoiceItem.UnitCount = unitCount; invoiceItem.AmountPerUnit = amount; invoiceItem.AmountTotal = invoiceItem.AmountPerUnit * invoiceItem.UnitCount; @@ -249,107 +245,6 @@ namespace InputFamilienhilfe.Invoicing return invoiceItem; } - private InvoiceItem CreateWohnenPauschale(SupportConceptApprovalPeriod scap, Calculations calc, DateTimeSpan invoicePeriod) - { - if (scap.ApprovedFixedAmount.HasValue) - { - - var invoiceItem = new InvoiceItem(); - - if (scap.ApprovedFixedAmountInterval.HasValue && - scap.ApprovedFixedAmountInterval.Value == SupportConceptApprovalInterval.Monthly) - { - invoiceItem.UnitCount = 1; - } - else - { - DateTime start = invoicePeriod.StartDate; - DateTime end = invoicePeriod.EndDate; - - if (scap.StartDate.HasValue && scap.StartDate.Value > start) - { - start = scap.StartDate.Value; - } - if (scap.EndDate.HasValue && scap.EndDate.Value < end) - { - end = scap.EndDate.Value; - } - - decimal days = 0; - - if (end >= start) - { - days = (decimal)end.Subtract(start).TotalDays + 1; - } - - invoiceItem.UnitCount = days; - } - - invoiceItem.AmountPerUnit = scap.ApprovedFixedAmount.Value; - invoiceItem.AmountTotal = invoiceItem.AmountPerUnit * invoiceItem.UnitCount; - invoiceItem.GrossAmountTotal = invoiceItem.AmountTotal; - invoiceItem.ItemPeriodStart = invoicePeriod.StartDate; - invoiceItem.ItemPeriodEnd = invoicePeriod.EndDate; - invoiceItem.AccountingInterval = AccountingIntervalType.FlatRate; - invoiceItem.ItemDescription = "Wohnen / Tag"; - invoiceItem.SupportConceptApprovalPeriodOid = scap.Oid; - - return invoiceItem; - } - - return null; - } - - private InvoiceItem CreateHluPauschale(SupportConceptApprovalPeriod scap, Calculations calc, DateTimeSpan invoicePeriod) - { - var invoiceItem = new InvoiceItem(); - - - decimal preis = 432; - - var cat = DAOFactory.SearchDAO.FindServiceCategoryByName("HLU"); - { - if (cat != null) - { - var crpList = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(cat.CostRatePeriods); - var crp = crpList.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, invoicePeriod.StartDate); - if (crp != null && crp.CostRateValue.HasValue) - { - preis = crp.CostRateValue.Value; - } - - } - } - invoiceItem.UnitCount = 1; - invoiceItem.AmountPerUnit = preis; - invoiceItem.AmountTotal = invoiceItem.AmountPerUnit * invoiceItem.UnitCount; - invoiceItem.GrossAmountTotal = invoiceItem.AmountTotal; - invoiceItem.ItemPeriodStart = invoicePeriod.StartDate; - invoiceItem.ItemPeriodEnd = invoicePeriod.EndDate; - invoiceItem.AccountingInterval = AccountingIntervalType.FlatRate; - invoiceItem.ItemDescription = "HLU / Monat"; - invoiceItem.SupportConceptApprovalPeriodOid = scap.Oid; - - return invoiceItem; - } - - private InvoiceItem CreateBudget623Pauschale(SupportConceptApprovalPeriod scap, Calculations calc, DateTimeSpan invoicePeriod) - { - var invoiceItem = new InvoiceItem(); - - invoiceItem.UnitCount = 1; - invoiceItem.AmountPerUnit = 22; - invoiceItem.AmountTotal = invoiceItem.AmountPerUnit * invoiceItem.UnitCount; - invoiceItem.GrossAmountTotal = invoiceItem.AmountTotal; - invoiceItem.ItemPeriodStart = invoicePeriod.StartDate; - invoiceItem.ItemPeriodEnd = invoicePeriod.EndDate; - invoiceItem.AccountingInterval = AccountingIntervalType.FlatRate; - invoiceItem.ItemDescription = "Budget nach § 6.2.3"; - invoiceItem.SupportConceptApprovalPeriodOid = scap.Oid; - - return invoiceItem; - } - private InvoiceItem CreateInvoiceItem(SupportConceptApprovalPeriod scap, DateTimeSpan invoicePeriod, decimal unitCount, decimal amountPerUnit, String bezeichnung) { var invoiceItem = new InvoiceItem();