From 6d1c74dd24fa415ba2eb83cbc920ea48fc584994 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Tue, 17 Sep 2024 16:33:00 +0200 Subject: [PATCH] AWOMuensterlandRecklinghausen/Invoicing/CustomInvoiceCreation.cs - CreateFixedAmounts - Rechnungskorrekturen --- .../Invoicing/CustomInvoiceCreation.cs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/ReportImp/AWOMuensterlandRecklinghausen/Invoicing/CustomInvoiceCreation.cs b/ReportImp/AWOMuensterlandRecklinghausen/Invoicing/CustomInvoiceCreation.cs index e2d388abc..25b57b10e 100644 --- a/ReportImp/AWOMuensterlandRecklinghausen/Invoicing/CustomInvoiceCreation.cs +++ b/ReportImp/AWOMuensterlandRecklinghausen/Invoicing/CustomInvoiceCreation.cs @@ -35,6 +35,40 @@ namespace AWOMuensterlandRecklinghausen.Invoicing invoice.InvoiceBase.InvoiceTypeText = "Abrechnung Schulbegleitender Dienst"; } + 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(); + + + var itemList = CreateAllInvoiceItems(cb2sc, serviceRecordsInPeriod, invoicePeriod, serviceInvoicePeriod.SupportConceptApprovalPeriod, calc); + serviceInvoicePeriod.InvoiceItemList.AddRange(itemList); + } + } + public override IList CreateSbdInvoiceItems(Customer customer, List serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc) { IList result = new List();