From d5589ca9e66231b1a1af4bb1a193205acb9fc115 Mon Sep 17 00:00:00 2001 From: HirschleM Date: Tue, 17 Mar 2026 14:15:16 +0100 Subject: [PATCH] MH: LebenshilfeBadKreuznachAutismuszentrum Gruppendauern angepasst + QB erweitert --- .../CustomGroupDurationCalculator.cs | 22 +++ ...enshilfeBadKreuznachAutismuszentrum.csproj | 4 + .../Quittierungsbeleg.Designer.cs | 151 +++++++++++++++--- .../Quittierungsbeleg.cs | 18 ++- 4 files changed, 175 insertions(+), 20 deletions(-) create mode 100644 ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Calculation/CustomGroupDurationCalculator.cs diff --git a/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Calculation/CustomGroupDurationCalculator.cs b/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Calculation/CustomGroupDurationCalculator.cs new file mode 100644 index 000000000..c2c77f42e --- /dev/null +++ b/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Calculation/CustomGroupDurationCalculator.cs @@ -0,0 +1,22 @@ +using BeWo.Service.Plugins; +using BS.Shared.DataContracts; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LebenshilfeBadKreuznachAutismuszentrum.Calculation +{ + public class CustomGroupDurationCalculator : GroupDurationCalculator + { + public override GroupDurationDC CalculateGroupDuration(int personCount, int employeeCount, decimal totalDuration) + { + return new GroupDurationDC() + { + SingleDuration = totalDuration, + TotalDuration = totalDuration + }; + } + } +} diff --git a/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/LebenshilfeBadKreuznachAutismuszentrum.csproj b/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/LebenshilfeBadKreuznachAutismuszentrum.csproj index 5fcc320dc..a77f70be5 100644 --- a/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/LebenshilfeBadKreuznachAutismuszentrum.csproj +++ b/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/LebenshilfeBadKreuznachAutismuszentrum.csproj @@ -56,6 +56,7 @@ + @@ -110,5 +111,8 @@ Designer + + + \ No newline at end of file diff --git a/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Quittierungsbeleg.Designer.cs b/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Quittierungsbeleg.Designer.cs index f78eaf5b7..cd2886193 100644 --- a/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Quittierungsbeleg.Designer.cs +++ b/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Quittierungsbeleg.Designer.cs @@ -70,8 +70,16 @@ namespace BeWo.Report.DefaultReports this.xrTable4 = new DevExpress.XtraReports.UI.XRTable(); this.xrTableRow9 = new DevExpress.XtraReports.UI.XRTableRow(); this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell(); + this.lblSummeEinzel = new DevExpress.XtraReports.UI.XRTableCell(); this.MinutesAlsStunden = new DevExpress.XtraReports.UI.CalculatedField(); + this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel(); ((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); @@ -403,6 +411,8 @@ namespace BeWo.Report.DefaultReports // GroupFooter1 // this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel8, + this.xrLabel7, this.xrLabel12, this.xrLabel13, this.xrLabel1, @@ -453,7 +463,7 @@ namespace BeWo.Report.DefaultReports this.xrLabel1.StylePriority.UseFont = false; this.xrLabel1.StylePriority.UsePadding = false; this.xrLabel1.StylePriority.UseTextAlignment = false; - this.xrLabel1.Text = "Gesamtstunden"; + this.xrLabel1.Text = "Summe Einzeltermine"; this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; // // xrTable4 @@ -462,14 +472,16 @@ namespace BeWo.Report.DefaultReports this.xrTable4.Name = "xrTable4"; this.xrTable4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96F); this.xrTable4.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { - this.xrTableRow9}); - this.xrTable4.SizeF = new System.Drawing.SizeF(117.4397F, 25F); + this.xrTableRow9, + this.xrTableRow1, + this.xrTableRow3}); + this.xrTable4.SizeF = new System.Drawing.SizeF(117.4397F, 75F); // // xrTableRow9 // this.xrTableRow9.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { this.xrTableCell1, - this.xrTableCell11}); + this.lblSummeEinzel}); this.xrTableRow9.Name = "xrTableRow9"; this.xrTableRow9.Weight = 1D; // @@ -483,21 +495,19 @@ namespace BeWo.Report.DefaultReports this.xrTableCell1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; this.xrTableCell1.Weight = 0.39058440352233309D; // - // xrTableCell11 + // lblSummeEinzel // - this.xrTableCell11.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right) + this.lblSummeEinzel.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right) | DevExpress.XtraPrinting.BorderSide.Bottom))); - this.xrTableCell11.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.MinutesAlsStunden")}); - this.xrTableCell11.Multiline = true; - this.xrTableCell11.Name = "xrTableCell11"; - this.xrTableCell11.StylePriority.UseBorders = false; - this.xrTableCell11.StylePriority.UseTextAlignment = false; - xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group; - this.xrTableCell11.Summary = xrSummary1; - this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; - this.xrTableCell11.TextFormatString = "{0:0.00}"; - this.xrTableCell11.Weight = 0.55682842869226479D; + this.lblSummeEinzel.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "TotalFLMString")}); + this.lblSummeEinzel.Multiline = true; + this.lblSummeEinzel.Name = "lblSummeEinzel"; + this.lblSummeEinzel.StylePriority.UseBorders = false; + this.lblSummeEinzel.StylePriority.UseTextAlignment = false; + this.lblSummeEinzel.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.lblSummeEinzel.TextFormatString = "{0:0.00}"; + this.lblSummeEinzel.Weight = 0.55682842869226479D; // // MinutesAlsStunden // @@ -506,6 +516,101 @@ namespace BeWo.Report.DefaultReports this.MinutesAlsStunden.FieldType = DevExpress.XtraReports.UI.FieldType.String; this.MinutesAlsStunden.Name = "MinutesAlsStunden"; // + // xrTableRow1 + // + this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell10, + this.xrTableCell12}); + this.xrTableRow1.Name = "xrTableRow1"; + this.xrTableRow1.Weight = 1D; + // + // xrTableCell10 + // + this.xrTableCell10.Borders = DevExpress.XtraPrinting.BorderSide.Right; + this.xrTableCell10.Multiline = true; + this.xrTableCell10.Name = "xrTableCell10"; + this.xrTableCell10.StylePriority.UseBorders = false; + this.xrTableCell10.StylePriority.UseTextAlignment = false; + this.xrTableCell10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.xrTableCell10.Weight = 0.39058440352233309D; + // + // xrTableCell12 + // + this.xrTableCell12.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTableCell12.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "TotalFLSString")}); + this.xrTableCell12.Multiline = true; + this.xrTableCell12.Name = "xrTableCell12"; + this.xrTableCell12.StylePriority.UseBorders = false; + this.xrTableCell12.StylePriority.UseTextAlignment = false; + this.xrTableCell12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.xrTableCell12.Weight = 0.55682842869226479D; + // + // xrTableRow3 + // + this.xrTableRow3.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell13, + this.xrTableCell14}); + this.xrTableRow3.Name = "xrTableRow3"; + this.xrTableRow3.Weight = 1D; + // + // xrTableCell13 + // + this.xrTableCell13.Borders = DevExpress.XtraPrinting.BorderSide.Right; + this.xrTableCell13.Multiline = true; + this.xrTableCell13.Name = "xrTableCell13"; + this.xrTableCell13.StylePriority.UseBorders = false; + this.xrTableCell13.StylePriority.UseTextAlignment = false; + this.xrTableCell13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.xrTableCell13.Weight = 0.39058440352233309D; + // + // xrTableCell14 + // + this.xrTableCell14.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTableCell14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.MinutesAlsStunden")}); + this.xrTableCell14.Multiline = true; + this.xrTableCell14.Name = "xrTableCell14"; + this.xrTableCell14.StylePriority.UseBorders = false; + this.xrTableCell14.StylePriority.UseTextAlignment = false; + xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group; + this.xrTableCell14.Summary = xrSummary1; + this.xrTableCell14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.xrTableCell14.TextFormatString = "{0:0.00}"; + this.xrTableCell14.Weight = 0.55682842869226479D; + // + // xrLabel7 + // + this.xrLabel7.Font = new DevExpress.Drawing.DXFont("Arial", 10F); + this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(304.1341F, 25F); + this.xrLabel7.Name = "xrLabel7"; + this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F); + this.xrLabel7.SizeF = new System.Drawing.SizeF(304.1992F, 25F); + this.xrLabel7.StylePriority.UseBackColor = false; + this.xrLabel7.StylePriority.UseBorders = false; + this.xrLabel7.StylePriority.UseFont = false; + this.xrLabel7.StylePriority.UsePadding = false; + this.xrLabel7.StylePriority.UseTextAlignment = false; + this.xrLabel7.Text = "Summe Gruppentermine"; + this.xrLabel7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // + // xrLabel8 + // + this.xrLabel8.Font = new DevExpress.Drawing.DXFont("Arial", 10F); + this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(304.1341F, 49.99998F); + this.xrLabel8.Name = "xrLabel8"; + this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F); + this.xrLabel8.SizeF = new System.Drawing.SizeF(304.1992F, 25F); + this.xrLabel8.StylePriority.UseBackColor = false; + this.xrLabel8.StylePriority.UseBorders = false; + this.xrLabel8.StylePriority.UseFont = false; + this.xrLabel8.StylePriority.UsePadding = false; + this.xrLabel8.StylePriority.UseTextAlignment = false; + this.xrLabel8.Text = "Gesamtstunden"; + this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // // Quittierungsbeleg // this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { @@ -573,12 +678,20 @@ namespace BeWo.Report.DefaultReports private DevExpress.XtraReports.UI.XRLabel xrLabel1; private DevExpress.XtraReports.UI.XRTable xrTable4; private DevExpress.XtraReports.UI.XRTableRow xrTableRow9; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell11; + private DevExpress.XtraReports.UI.XRTableCell lblSummeEinzel; private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1; private DevExpress.XtraReports.UI.XRTableCell xrTableCell1; private DevExpress.XtraReports.UI.XRTableCell xrTableCell4; private DevExpress.XtraReports.UI.XRTableCell xrTableCell3; private DevExpress.XtraReports.UI.XRLabel xrLabel12; private DevExpress.XtraReports.UI.XRLabel xrLabel13; + private DevExpress.XtraReports.UI.XRLabel xrLabel8; + private DevExpress.XtraReports.UI.XRLabel xrLabel7; + private DevExpress.XtraReports.UI.XRTableRow xrTableRow1; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell10; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell12; + private DevExpress.XtraReports.UI.XRTableRow xrTableRow3; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell13; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell14; } } diff --git a/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Quittierungsbeleg.cs b/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Quittierungsbeleg.cs index 31a256389..823c37d31 100644 --- a/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Quittierungsbeleg.cs +++ b/ReportImp/LebenshilfeBadKreuznachAutismuszentrum/Quittierungsbeleg.cs @@ -33,6 +33,8 @@ namespace BeWo.Report.DefaultReports if (pRO.Services != null) { + + List servicesBillable = new List(); // Es sollen immer so viele Tage dargestellt werden, wie der Monat hat, also leere Einträge erzeugen @@ -59,6 +61,13 @@ namespace BeWo.Report.DefaultReports start = start.AddDays(1); } + // Summe Einzelstunden + pRO.TotalFLMString = ""; + double summeEinzel = 0; + // Summe Gruppenstunden + pRO.TotalFLSString = ""; + double summeGruppe = 0; + foreach (var sd in pRO.Services) { if (sd.IsBillable || sd.ServiceDescription.ToLower().Contains("fehlkontakt") || sd.ServiceCategory.ToLower().Contains("fehlkontakt")) @@ -66,12 +75,17 @@ namespace BeWo.Report.DefaultReports ServicesOverviewRO.CreateSignatureString(sd); if (sd.ServiceDescription != "leerer Eintrag") { - sd.Notice5 = "E"; if (sd.IsGroup) { //sd.Notice5 = String.Format("{0} Teilnehmer", sd.CustomerCount); sd.Notice5 = "GR"; hatGruppen = true; + summeGruppe += sd.Minutes / 60; + } + else + { + sd.Notice5 = "E"; + summeEinzel += sd.Minutes / 60; } } @@ -84,6 +98,8 @@ namespace BeWo.Report.DefaultReports } servicesBillable = servicesBillable.OrderBy(s => s.StartDate).ToList(); pRO.Services = servicesBillable; + pRO.TotalFLMString = string.Format("{0:0.00}", summeEinzel); + pRO.TotalFLSString = string.Format("{0:0.00}", summeGruppe); }