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();