From 1e19b39c9fdf45050f345f0f8a76dab4c128ae60 Mon Sep 17 00:00:00 2001 From: HirschleM Date: Tue, 3 Mar 2026 14:28:43 +0100 Subject: [PATCH] =?UTF-8?q?MH:=20NovaSelbstbestimmtLebenUG=20Abschl=C3=A4g?= =?UTF-8?q?e=20in=20Sammelrechnung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Invoicing/CustomInvoiceCreation.cs | 27 ++++ .../NovaSelbstbestimmtLebenUG.csproj | 2 + .../ServiceInvoiceReport.Designer.cs | 119 ++++++++++++++++-- .../ServiceInvoiceReport.cs | 8 ++ 4 files changed, 143 insertions(+), 13 deletions(-) diff --git a/ReportImp/NovaSelbstbestimmtLebenUG/Invoicing/CustomInvoiceCreation.cs b/ReportImp/NovaSelbstbestimmtLebenUG/Invoicing/CustomInvoiceCreation.cs index f851f00d1..56aa5223b 100644 --- a/ReportImp/NovaSelbstbestimmtLebenUG/Invoicing/CustomInvoiceCreation.cs +++ b/ReportImp/NovaSelbstbestimmtLebenUG/Invoicing/CustomInvoiceCreation.cs @@ -18,6 +18,33 @@ namespace NovaSelbstbestimmtLebenUG.Invoicing private DateTime? accountingPeriodStart = null; private DateTime? accountingPeriodEnd = null; + public override ServiceInvoice CreateSingleInvoice(int invoiceCounter, CostBearer costBearer, DateTimeSpan invoicePeriod, CompactSupportConceptDC supportConcept, List serviceRecords) + { + 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); + + return invoice; + } + + return null; + } + public override void SetInvoiceBaseData(int invoiceCounter, ServiceInvoice invoice, CostBearer costBearer, DateTimeSpan invoicePeriod, IList supportConceptList) { diff --git a/ReportImp/NovaSelbstbestimmtLebenUG/NovaSelbstbestimmtLebenUG.csproj b/ReportImp/NovaSelbstbestimmtLebenUG/NovaSelbstbestimmtLebenUG.csproj index 1bc93e209..408b984cf 100644 --- a/ReportImp/NovaSelbstbestimmtLebenUG/NovaSelbstbestimmtLebenUG.csproj +++ b/ReportImp/NovaSelbstbestimmtLebenUG/NovaSelbstbestimmtLebenUG.csproj @@ -31,6 +31,7 @@ 4 + @@ -39,6 +40,7 @@ + diff --git a/ReportImp/NovaSelbstbestimmtLebenUG/ServiceInvoiceReport.Designer.cs b/ReportImp/NovaSelbstbestimmtLebenUG/ServiceInvoiceReport.Designer.cs index 502325b91..97b85b742 100644 --- a/ReportImp/NovaSelbstbestimmtLebenUG/ServiceInvoiceReport.Designer.cs +++ b/ReportImp/NovaSelbstbestimmtLebenUG/ServiceInvoiceReport.Designer.cs @@ -94,6 +94,11 @@ namespace BeWo.Report.DefaultReports this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand(); this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); + this.lblAbschlagszahlungenValue = new DevExpress.XtraReports.UI.XRLabel(); + this.lblEndbetragValue = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel(); + this.lblAbschlagszahlungenText = new DevExpress.XtraReports.UI.XRLabel(); + this.lblEndbetragText = new DevExpress.XtraReports.UI.XRLabel(); this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit(); @@ -458,7 +463,7 @@ namespace BeWo.Report.DefaultReports // xrLabel15 // this.xrLabel15.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); - this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(0F, 169.6667F); + this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(0F, 185.2917F); this.xrLabel15.Name = "xrLabel15"; this.xrLabel15.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrLabel15.SizeF = new System.Drawing.SizeF(175F, 17F); @@ -468,7 +473,7 @@ namespace BeWo.Report.DefaultReports // xrTable4 // this.xrTable4.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); - this.xrTable4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 123.8334F); + this.xrTable4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 155.0834F); this.xrTable4.Name = "xrTable4"; this.xrTable4.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRow10, @@ -520,7 +525,7 @@ namespace BeWo.Report.DefaultReports // xrLabel9 // this.xrLabel9.Font = new DevExpress.Drawing.DXFont("Verdana", 10F, DevExpress.Drawing.DXFontStyle.Italic); - this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 98.83336F); + this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 130.0833F); this.xrLabel9.Name = "xrLabel9"; this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrLabel9.SizeF = new System.Drawing.SizeF(250F, 17F); @@ -633,7 +638,7 @@ namespace BeWo.Report.DefaultReports this.xrTableCell33.StylePriority.UseTextAlignment = false; this.xrTableCell33.Text = "Stunden"; this.xrTableCell33.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; - this.xrTableCell33.Weight = 0.2893277257020575D; + this.xrTableCell33.Weight = 0.25367644132129874D; // // xrTableCell34 // @@ -651,7 +656,7 @@ namespace BeWo.Report.DefaultReports this.xrTableCell34.StylePriority.UseTextAlignment = false; this.xrTableCell34.Text = "Gesamt"; this.xrTableCell34.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; - this.xrTableCell34.Weight = 0.31923915575667006D; + this.xrTableCell34.Weight = 0.35489044013742888D; // // DetailReport2 // @@ -757,7 +762,7 @@ namespace BeWo.Report.DefaultReports this.xrTableCell44.StylePriority.UseTextAlignment = false; this.xrTableCell44.Text = "xrTableCell44"; this.xrTableCell44.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; - this.xrTableCell44.Weight = 0.2893277257020575D; + this.xrTableCell44.Weight = 0.25367644132129874D; // // xrTableCell47 // @@ -773,11 +778,16 @@ namespace BeWo.Report.DefaultReports this.xrTableCell47.StylePriority.UsePadding = false; this.xrTableCell47.StylePriority.UseTextAlignment = false; this.xrTableCell47.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; - this.xrTableCell47.Weight = 0.31923915575667006D; + this.xrTableCell47.Weight = 0.35489044013742888D; // // GroupFooter1 // this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel10, + this.lblAbschlagszahlungenText, + this.lblEndbetragText, + this.lblEndbetragValue, + this.lblAbschlagszahlungenValue, this.xrLabel5, this.xrLabel1, this.xrLabel9, @@ -790,11 +800,11 @@ namespace BeWo.Report.DefaultReports // xrLabel5 // this.xrLabel5.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); - this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 41.20833F); + this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 82.875F); this.xrLabel5.Multiline = true; this.xrLabel5.Name = "xrLabel5"; this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); - this.xrLabel5.SizeF = new System.Drawing.SizeF(677.0001F, 39.91668F); + this.xrLabel5.SizeF = new System.Drawing.SizeF(677.0001F, 36.79167F); this.xrLabel5.StylePriority.UseFont = false; this.xrLabel5.Text = "Bitte überweisen Sie den offenen Betrag an unser Konto mit der IBAN:\r\nDE52 2805 0" + "100 0095 9964 27"; @@ -802,17 +812,95 @@ namespace BeWo.Report.DefaultReports // xrLabel1 // this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "GrossClaim", "Gesamtsumme: {0}")}); + new DevExpress.XtraReports.UI.XRBinding("Text", null, "GrossClaim")}); this.xrLabel1.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold); - this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(420.9999F, 0F); + this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(573.1402F, 0F); this.xrLabel1.Name = "xrLabel1"; this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F); - this.xrLabel1.SizeF = new System.Drawing.SizeF(255.8333F, 25F); + this.xrLabel1.SizeF = new System.Drawing.SizeF(103.8598F, 21.875F); this.xrLabel1.StylePriority.UseFont = false; this.xrLabel1.StylePriority.UsePadding = false; this.xrLabel1.StylePriority.UseTextAlignment = false; this.xrLabel1.Text = "xrLabel1"; this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrLabel1.TextFormatString = "{0}"; + // + // lblAbschlagszahlungenValue + // + this.lblAbschlagszahlungenValue.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "AmountAdvancedPayments")}); + this.lblAbschlagszahlungenValue.Font = new DevExpress.Drawing.DXFont("Verdana", 9F); + this.lblAbschlagszahlungenValue.LocationFloat = new DevExpress.Utils.PointFloat(573.1353F, 21.87496F); + this.lblAbschlagszahlungenValue.Name = "lblAbschlagszahlungenValue"; + this.lblAbschlagszahlungenValue.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F); + this.lblAbschlagszahlungenValue.SizeF = new System.Drawing.SizeF(103.6979F, 21.87999F); + this.lblAbschlagszahlungenValue.StylePriority.UseFont = false; + this.lblAbschlagszahlungenValue.StylePriority.UsePadding = false; + this.lblAbschlagszahlungenValue.StylePriority.UseTextAlignment = false; + this.lblAbschlagszahlungenValue.Text = "xrLabel1"; + this.lblAbschlagszahlungenValue.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.lblAbschlagszahlungenValue.TextFormatString = "{0}"; + this.lblAbschlagszahlungenValue.Visible = false; + // + // lblEndbetragValue + // + this.lblEndbetragValue.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "NetClaim")}); + this.lblEndbetragValue.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold); + this.lblEndbetragValue.LocationFloat = new DevExpress.Utils.PointFloat(573.1353F, 43.755F); + this.lblEndbetragValue.Name = "lblEndbetragValue"; + this.lblEndbetragValue.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F); + this.lblEndbetragValue.SizeF = new System.Drawing.SizeF(103.6979F, 21.87998F); + this.lblEndbetragValue.StylePriority.UseFont = false; + this.lblEndbetragValue.StylePriority.UsePadding = false; + this.lblEndbetragValue.StylePriority.UseTextAlignment = false; + this.lblEndbetragValue.Text = "xrLabel1"; + this.lblEndbetragValue.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.lblEndbetragValue.TextFormatString = "{0}"; + this.lblEndbetragValue.Visible = false; + // + // xrLabel10 + // + this.xrLabel10.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold); + this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(198.3953F, 0F); + this.xrLabel10.Name = "xrLabel10"; + this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F); + this.xrLabel10.SizeF = new System.Drawing.SizeF(374.7449F, 21.875F); + this.xrLabel10.StylePriority.UseFont = false; + this.xrLabel10.StylePriority.UsePadding = false; + this.xrLabel10.StylePriority.UseTextAlignment = false; + this.xrLabel10.Text = "Gesamtsumme:"; + this.xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrLabel10.TextFormatString = "Gesamtsumme"; + // + // lblAbschlagszahlungenText + // + this.lblAbschlagszahlungenText.Font = new DevExpress.Drawing.DXFont("Verdana", 9F); + this.lblAbschlagszahlungenText.LocationFloat = new DevExpress.Utils.PointFloat(198.3953F, 21.87503F); + this.lblAbschlagszahlungenText.Name = "lblAbschlagszahlungenText"; + this.lblAbschlagszahlungenText.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F); + this.lblAbschlagszahlungenText.SizeF = new System.Drawing.SizeF(374.74F, 21.88F); + this.lblAbschlagszahlungenText.StylePriority.UseFont = false; + this.lblAbschlagszahlungenText.StylePriority.UsePadding = false; + this.lblAbschlagszahlungenText.StylePriority.UseTextAlignment = false; + this.lblAbschlagszahlungenText.Text = "abzgl. Abschlagszahlungen:"; + this.lblAbschlagszahlungenText.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.lblAbschlagszahlungenText.TextFormatString = " {0}"; + this.lblAbschlagszahlungenText.Visible = false; + // + // lblEndbetragText + // + this.lblEndbetragText.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold); + this.lblEndbetragText.LocationFloat = new DevExpress.Utils.PointFloat(198.3953F, 43.755F); + this.lblEndbetragText.Name = "lblEndbetragText"; + this.lblEndbetragText.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F); + this.lblEndbetragText.SizeF = new System.Drawing.SizeF(374.74F, 21.88F); + this.lblEndbetragText.StylePriority.UseFont = false; + this.lblEndbetragText.StylePriority.UsePadding = false; + this.lblEndbetragText.StylePriority.UseTextAlignment = false; + this.lblEndbetragText.Text = "Endsumme:"; + this.lblEndbetragText.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.lblEndbetragText.Visible = false; // // bindingSource1 // @@ -832,7 +920,7 @@ namespace BeWo.Report.DefaultReports this.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] { this.ruleRateFactorNull}); - this.Margins = new DevExpress.Drawing.DXMargins(53F, 39F, 157.5001F, 120.4999F); + this.Margins = new DevExpress.Drawing.DXMargins(53F, 32F, 157.5001F, 120.4999F); this.PageHeight = 1169; this.PageWidth = 827; this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4; @@ -913,5 +1001,10 @@ namespace BeWo.Report.DefaultReports private DevExpress.XtraReports.UI.XRLabel xrLabel6; private DevExpress.XtraReports.UI.XRLabel xrLabel7; private DevExpress.XtraReports.UI.XRLabel xrLabel12; + private DevExpress.XtraReports.UI.XRLabel lblEndbetragValue; + private DevExpress.XtraReports.UI.XRLabel lblAbschlagszahlungenValue; + private DevExpress.XtraReports.UI.XRLabel xrLabel10; + private DevExpress.XtraReports.UI.XRLabel lblAbschlagszahlungenText; + private DevExpress.XtraReports.UI.XRLabel lblEndbetragText; } } diff --git a/ReportImp/NovaSelbstbestimmtLebenUG/ServiceInvoiceReport.cs b/ReportImp/NovaSelbstbestimmtLebenUG/ServiceInvoiceReport.cs index 352c1552e..3559ce319 100644 --- a/ReportImp/NovaSelbstbestimmtLebenUG/ServiceInvoiceReport.cs +++ b/ReportImp/NovaSelbstbestimmtLebenUG/ServiceInvoiceReport.cs @@ -33,6 +33,14 @@ namespace BeWo.Report.DefaultReports SetzeAdresse(pRO); + if (pRO.AmountAdvancedPayments != null && pRO.AmountAdvancedPayments != "0,00 €") + { + lblAbschlagszahlungenValue.Visible = true; + lblAbschlagszahlungenText.Visible = true; + lblEndbetragValue.Visible = true; + lblEndbetragText.Visible = true; + } + this.bindingSource1.DataSource = pRO; }