From acf4919364ff2c32138dd61c6e8845f2de397b21 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Mon, 20 Jul 2026 11:56:48 +0200 Subject: [PATCH] SBBMainzReports/Invoicing/CustomInvoiceCreationQA - Finetuning, auch unbew. HPs und NPE bei Wegepauschale SupportOID=167648 --- .../Invoicing/CustomInvoiceCreationQA.cs | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/ReportImp/SBBMainzReports/Invoicing/CustomInvoiceCreationQA.cs b/ReportImp/SBBMainzReports/Invoicing/CustomInvoiceCreationQA.cs index 43b0d46bd..c6cf19b26 100644 --- a/ReportImp/SBBMainzReports/Invoicing/CustomInvoiceCreationQA.cs +++ b/ReportImp/SBBMainzReports/Invoicing/CustomInvoiceCreationQA.cs @@ -7,6 +7,7 @@ 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; using DevExpress.Data.Helpers; @@ -24,6 +25,43 @@ namespace SBBMainzReports.Invoicing // nur wenn ein Kontingent bewilligt wurde, wird es nach Zeiterfassung abgerechnet bool bienen_ = false; + private DateTime? accountingPeriodStart = null; + private DateTime? accountingPeriodEnd = null; + + public override void SetInvoiceBaseData(int invoiceCounter, ServiceInvoice invoice, CostBearer costBearer, DateTimeSpan invoicePeriod, + IList supportConceptList) + { + if (invoicePeriod != null) + { + accountingPeriodStart = invoicePeriod.StartDate; + accountingPeriodEnd = invoicePeriod.EndDate; + } + base.SetInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConceptList); + } + + public override ServiceInvoice CreateSingleInvoice(int invoiceCounter, CostBearer costBearer, DateTimeSpan invoicePeriod, CompactSupportConceptDC supportConcept, List serviceRecords) + { + // auch nicht bewilligte abrechnen + if (!supportConcept.IsDeleted && !supportConcept.IsArchived) + { + var invoice = new ServiceInvoice(); + var supportConceptList = new List { supportConcept }; + + SetSenderInformation(invoice); + SetInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConceptList); + SetSingleInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConcept); + SetRecipientInformation(invoice, costBearer); + SetServiceInvoicePeriods(invoice, invoice.InvoiceBase.CostBearer2SupportConcept, invoicePeriod, serviceRecords); + SetServiceInvoicePeriodAmounts(invoice); + SetAmountAdvancePayments(invoice); + SetAmountEquityContribution(invoice); + + return invoice; + } + + return null; + } + public override void SetInvoiceItems(ServiceInvoice invoice, ServiceInvoicePeriod serviceInvoicePeriod, SupportConceptApprovalPeriodDC supportConceptApprovalPeriod,