From e578a23c81de56e3500e4d5ea6670e3900f60f4a Mon Sep 17 00:00:00 2001 From: Marcel Hirschle Date: Tue, 5 Apr 2022 12:26:24 +0200 Subject: [PATCH] =?UTF-8?q?MH:=20Bugfix=20f=C3=BCr=20VSD=20Hamm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ServiceInvoiceReport.Designer.cs | 25 +------- ReportImp/VSDHammReports/Budgetnachweis.cs | 3 + .../VSDHammReports/Budgetnachweis.designer.cs | 11 ++-- .../Budgetnachweis2.Designer.cs | 1 - ReportImp/VSDHammReports/Budgetnachweis2.cs | 3 + Service/Plugins/VacationService.cs | 64 ++++++++++++++++++- 6 files changed, 77 insertions(+), 30 deletions(-) diff --git a/ReportImp/ChristopherusHausFamilienhilfe/ServiceInvoiceReport.Designer.cs b/ReportImp/ChristopherusHausFamilienhilfe/ServiceInvoiceReport.Designer.cs index 72ead6696..591285bbe 100644 --- a/ReportImp/ChristopherusHausFamilienhilfe/ServiceInvoiceReport.Designer.cs +++ b/ReportImp/ChristopherusHausFamilienhilfe/ServiceInvoiceReport.Designer.cs @@ -98,8 +98,6 @@ namespace ChristopherusHausFamilienhilfe this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow(); this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableRow5 = new DevExpress.XtraReports.UI.XRTableRow(); - this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); @@ -1026,9 +1024,8 @@ namespace ChristopherusHausFamilienhilfe this.xrTableRow2, this.xrTableRow12, this.xrTableRow13, - this.xrTableRow4, - this.xrTableRow5}); - this.xrTable2.SizeF = new System.Drawing.SizeF(200.8751F, 94.00001F); + this.xrTableRow4}); + this.xrTable2.SizeF = new System.Drawing.SizeF(200.8751F, 77.00001F); this.xrTable2.StylePriority.UseBorders = false; this.xrTable2.StylePriority.UseFont = false; // @@ -1109,24 +1106,10 @@ namespace ChristopherusHausFamilienhilfe this.xrTableCell5.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; this.xrTableCell5.StylePriority.UseFont = false; this.xrTableCell5.StylePriority.UseTextAlignment = false; - this.xrTableCell5.Text = "Mobiltelefon 1: 01577-6087778"; + this.xrTableCell5.Text = "Mobiltelefon: 01577-6087778"; this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; this.xrTableCell5.Weight = 1D; // - // xrTableRow5 - // - this.xrTableRow5.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { - this.xrTableCell6}); - this.xrTableRow5.Name = "xrTableRow5"; - this.xrTableRow5.Weight = 0.11258278145695365D; - // - // xrTableCell6 - // - this.xrTableCell6.Name = "xrTableCell6"; - this.xrTableCell6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); - this.xrTableCell6.Text = "Mobiltelefon 2: 01577-3862385"; - this.xrTableCell6.Weight = 1D; - // // xrLabel7 // this.xrLabel7.Borders = DevExpress.XtraPrinting.BorderSide.None; @@ -1550,8 +1533,6 @@ namespace ChristopherusHausFamilienhilfe private DevExpress.XtraReports.UI.XRTableCell xrTableCell4; private DevExpress.XtraReports.UI.XRTableRow xrTableRow4; private DevExpress.XtraReports.UI.XRTableCell xrTableCell5; - private DevExpress.XtraReports.UI.XRTableRow xrTableRow5; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell6; private DevExpress.XtraReports.UI.XRLabel xrLabel21; private DevExpress.XtraReports.UI.XRLabel xrLabel20; private DevExpress.XtraReports.UI.XRLabel xrLabel12; diff --git a/ReportImp/VSDHammReports/Budgetnachweis.cs b/ReportImp/VSDHammReports/Budgetnachweis.cs index b7a7f4de4..757ccb6b9 100644 --- a/ReportImp/VSDHammReports/Budgetnachweis.cs +++ b/ReportImp/VSDHammReports/Budgetnachweis.cs @@ -25,7 +25,10 @@ namespace VSDHammReports.Alt lblZad.Text = "60 - 9011896.1"; } else + { lblZad.Text = "60-9011897.1"; + pRO.RecordedFLSTotal *= 1.2; + } foreach (var ii in pRO.InvoiceItems) { diff --git a/ReportImp/VSDHammReports/Budgetnachweis.designer.cs b/ReportImp/VSDHammReports/Budgetnachweis.designer.cs index 2379345cc..5ad964089 100644 --- a/ReportImp/VSDHammReports/Budgetnachweis.designer.cs +++ b/ReportImp/VSDHammReports/Budgetnachweis.designer.cs @@ -118,11 +118,11 @@ namespace VSDHammReports.Alt this.xrTableRow13 = new DevExpress.XtraReports.UI.XRTableRow(); this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand(); this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel(); this.xrCheckBox1 = new DevExpress.XtraReports.UI.XRCheckBox(); this.xrCheckBox2 = new DevExpress.XtraReports.UI.XRCheckBox(); - this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit(); @@ -1060,7 +1060,6 @@ namespace VSDHammReports.Alt this.xrLabel20.StylePriority.UseBackColor = false; this.xrLabel20.StylePriority.UseBorders = false; this.xrLabel20.StylePriority.UseFont = false; - this.xrLabel20.Text = "Hamm,"; this.xrLabel20.WordWrap = false; // // xrLabel19 @@ -1174,6 +1173,10 @@ namespace VSDHammReports.Alt this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight; this.xrTableCell16.Weight = 0.21685899000901443D; // + // bindingSource1 + // + this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.SettlementRO); + // // ReportFooter // this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { @@ -1222,10 +1225,6 @@ namespace VSDHammReports.Alt this.xrCheckBox2.StylePriority.UseFont = false; this.xrCheckBox2.Text = " Die Betreuung dauert an."; // - // bindingSource1 - // - this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.SettlementRO); - // // Budgetnachweis // this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { diff --git a/ReportImp/VSDHammReports/Budgetnachweis2.Designer.cs b/ReportImp/VSDHammReports/Budgetnachweis2.Designer.cs index 83c4bec15..47a0466c8 100644 --- a/ReportImp/VSDHammReports/Budgetnachweis2.Designer.cs +++ b/ReportImp/VSDHammReports/Budgetnachweis2.Designer.cs @@ -319,7 +319,6 @@ namespace VSDHammReports this.xrLabel20.StylePriority.UseBackColor = false; this.xrLabel20.StylePriority.UseBorders = false; this.xrLabel20.StylePriority.UseFont = false; - this.xrLabel20.Text = "Hamm,"; this.xrLabel20.WordWrap = false; // // xrLabel19 diff --git a/ReportImp/VSDHammReports/Budgetnachweis2.cs b/ReportImp/VSDHammReports/Budgetnachweis2.cs index a2c9e24a3..dbfc24e22 100644 --- a/ReportImp/VSDHammReports/Budgetnachweis2.cs +++ b/ReportImp/VSDHammReports/Budgetnachweis2.cs @@ -27,7 +27,10 @@ namespace VSDHammReports lblZad.Text = "60 - 9011896.1"; } else + { lblZad.Text = "60-9011897.1"; + pRO.RecordedFlsTotal *= 1.2m; + } //if (!pRO.HourlyRateNew.HasValue && pRO.DifferentHourlyRateCount > 0 && pRO.InvoiceItems != null && // pRO.InvoiceItems.Count > 0) diff --git a/Service/Plugins/VacationService.cs b/Service/Plugins/VacationService.cs index 616f7cc38..bea3ec80f 100644 --- a/Service/Plugins/VacationService.cs +++ b/Service/Plugins/VacationService.cs @@ -705,6 +705,68 @@ namespace BeWo.Service.Plugins } } + internal decimal BerechneAnzahlUrlaubstageMitWeeklyDays(AbsenceTimeDC absenceDC, int year, int weeklyDays) + { + decimal tage = 0; + + if (absenceDC.Start.HasValue) + { + DateTime start = (absenceDC.Start.Value.Year == year) ? absenceDC.Start.Value : new DateTime(year, 1, 1); + DateTime end = start; + DateTime maxend = new DateTime(year, 12, 31); + + if (absenceDC.End.HasValue) + { + end = absenceDC.End.Value; + } + if (maxend < end) + { + end = maxend; + } + + decimal tageInEinerWoche = 0; // Tage für die Ist- und Sollstunden + int wochentageVergangen = 0; // Vergangene Wochentage + while (start <= end) + { + // Wenn Wochentag Montag ist, werden Tage einer Woche resetted und die vergangenen Arbeitstage + var wochentag = start.DayOfWeek; + if (wochentag == DayOfWeek.Monday) + { + tageInEinerWoche = 0; + wochentageVergangen = 0; + } + + if (!IstFeiertag(start)) + { + if (wochentageVergangen < weeklyDays) + { + if (start.Date == end.Date && start.TimeOfDay != end.TimeOfDay) + { + tageInEinerWoche += 0.5m; + if (tageInEinerWoche >= weeklyDays) + tage += tageInEinerWoche > weeklyDays ? 0 - tage + weeklyDays : 0.5m; + else + tage += 0.5m; + } + else + { + tageInEinerWoche++; + if (tageInEinerWoche >= weeklyDays) + tage += tageInEinerWoche > weeklyDays ? 0 - tage + weeklyDays : 1; + else + tage++; + } + } + } + + wochentageVergangen++; + start = start.AddDays(1); + } + } + + return tage; + } + // Methode zur Berechnung der Urlaubstage, wenn Vertrag mitten im Jahr beginnt oder endet. // BSP: 30 Urlaubstage, Beginn am 01.06.; Dann entfallen eine bestimmte Anzahl an Tagen, das wird hier berechnet private decimal CalcCorrectNumberOfLeaveDaysForSpecialContractSituation(DateTime entryDate, DateTime? endDate, int anzahlArbeitstage, int restlicheTageImJahr, decimal? urlaubstageProJahr) @@ -789,7 +851,7 @@ namespace BeWo.Service.Plugins while (start <= end) { - if (start.DayOfWeek != DayOfWeek.Saturday && start.DayOfWeek != DayOfWeek.Sunday && !IstFeiertag(start)) + if (/*start.DayOfWeek != DayOfWeek.Saturday && start.DayOfWeek != DayOfWeek.Sunday &&*/ !IstFeiertag(start)) { if (start.Date == end.Date && start.TimeOfDay != end.TimeOfDay) days += 0.5m;