InputFamilienhilfe/Invoicing/UnterbringungInvoiceCreation - neue Abrechnungsart nur Tagessatz
SupportOID=161010
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user