diff --git a/ReportImp/AuswegHeikePuetz/AuswegHeikePuetz.csproj b/ReportImp/AuswegHeikePuetz/AuswegHeikePuetz.csproj
index 114bb35ad..15375f0c3 100644
--- a/ReportImp/AuswegHeikePuetz/AuswegHeikePuetz.csproj
+++ b/ReportImp/AuswegHeikePuetz/AuswegHeikePuetz.csproj
@@ -63,6 +63,7 @@
InvoiceCustomerReport.cs
+
diff --git a/ReportImp/AuswegHeikePuetz/Invoicing/CustomInvoiceFactory.cs b/ReportImp/AuswegHeikePuetz/Invoicing/CustomInvoiceFactory.cs
index 80e26648c..69c448e94 100644
--- a/ReportImp/AuswegHeikePuetz/Invoicing/CustomInvoiceFactory.cs
+++ b/ReportImp/AuswegHeikePuetz/Invoicing/CustomInvoiceFactory.cs
@@ -30,10 +30,10 @@ namespace Ausweg.Invoicing
String cat = sd.Name.ToLower().Trim();
if (cat.IndexOf("assistenz") >= 0)
{
- return new CustomAssistenzInvoiceCreation();
+ return new CustomAssistenzInvoiceCreation(); // Klassischer Filter für Abrechnung Assistenz in Sammelrg und FLS in Spitzabrechnung für LVR
}
}
- return null;
+ return new CustomJugendamtInvoiceCreation(); // Abrechnung mit JA geht über FLS in Sammelrechnung, aber die Abwesenheiten spielen keine Rolle
}
}
}
diff --git a/ReportImp/AuswegHeikePuetz/Invoicing/JugendamtInvoiceCreation.cs b/ReportImp/AuswegHeikePuetz/Invoicing/JugendamtInvoiceCreation.cs
new file mode 100644
index 000000000..bff331f2e
--- /dev/null
+++ b/ReportImp/AuswegHeikePuetz/Invoicing/JugendamtInvoiceCreation.cs
@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using BeWo.Data.Access;
+using BeWo.Data.Entities;
+using BeWo.Service.DCEntityMapper;
+using BeWo.Service.Invoicing;
+using BeWo.Service.Plugins;
+using BS.Shared;
+using BS.Shared.Core;
+using BS.Shared.DataContracts;
+using BS.Shared.DataContracts.Compact;
+using BS.Shared.Extensions;
+using BS.Shared.Services;
+
+namespace Ausweg.Invoicing
+{
+ // keine Berücksichtung von Abwesenheiten in Abrechnung
+
+ public class CustomJugendamtInvoiceCreation : InvoiceCreation
+ {
+ public override void SetAmountAdvancePayments(ServiceInvoice invoice)
+ {
+ //do nothing
+ }
+
+ public override void SetAmountEquityContribution(ServiceInvoice invoice)
+ {
+ //do nothing
+ }
+
+ public override void SetInvoiceItems(ServiceInvoice invoice,
+ ServiceInvoicePeriod serviceInvoicePeriod,
+ SupportConceptApprovalPeriodDC supportConceptApprovalPeriod,
+ CostBearer2SupportConcept cb2sc,
+ DateTimeSpan invoicePeriod,
+ List serviceRecords)
+ {
+ Calculations calc = PluginLoader.FindClass(_SpecificID) ?? Calculations.GetInstance(_SpecificID);
+
+ if (ShouldCreateFixedAmounts(serviceInvoicePeriod, supportConceptApprovalPeriod, cb2sc))
+ {
+ CreateFixedAmounts(serviceInvoicePeriod, supportConceptApprovalPeriod, cb2sc);
+ }
+ else
+ {
+ List serviceRecordsInPeriod = serviceRecords.Where(
+ i =>
+ {
+ bool valid = i.Start.Value.InBetween(serviceInvoicePeriod.Start.Value,
+ serviceInvoicePeriod.End.Value, true);
+
+ if (valid && serviceInvoicePeriod.SupportConceptApprovalPeriod != null && serviceInvoicePeriod.SupportConceptApprovalPeriod.ServiceCategory != null)
+ valid = serviceInvoicePeriod.SupportConceptApprovalPeriod.ServiceCategory.Oid ==
+ i.ServiceDescription.Category.ServiceCategoryOid;
+ return valid;
+ }).ToList();
+
+ if (serviceRecordsInPeriod.Count > 0)
+ {
+ var absenceTimes = MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(cb2sc.SupportConcept.Customer.AbsenceTimes);
+ Dictionary span2Hours = calc.GetAbsencesTimesNotBillable(absenceTimes);
+
+ // serviceInvoicePeriod.HoursNotBillableAbsence - eingeschränkte Anzahl bei Abwesenheit nicht bei Jugenämtern
+ serviceInvoicePeriod.HoursNotBillableNotApproved +=
+ calc.GetHoursNotBillableDueToMoreThanApproved(supportConceptApprovalPeriod,
+ cb2sc.CostBearer.CostRatePeriods.MapToNewDCs(),
+ serviceRecordsInPeriod,
+ true, true);
+
+ var itemList = CreateInvoiceItems(serviceRecordsInPeriod, invoicePeriod, serviceInvoicePeriod.SupportConceptApprovalPeriod, calc);
+ serviceInvoicePeriod.InvoiceItemList.AddRange(itemList);
+ }
+ }
+ }
+ }
+}