MH: VKM Hamm Stundenkonto Hotfix

This commit is contained in:
2024-05-17 10:55:35 +02:00
parent 641c2eead7
commit d96cbc488b
4 changed files with 83 additions and 41 deletions

View File

@@ -277,7 +277,7 @@ namespace VkmHamm
{
base.CreateEmployeeDetails(ro);
if (ro.EmployeeDetailList.Count > 0)
if (ro.ReportStartDate >= new DateTime(2024, 02, 01) && ro.EmployeeDetailList.Count > 0)
{
foreach (var ed in ro.EmployeeDetailList)
{
@@ -304,9 +304,9 @@ namespace VkmHamm
if (ed.Ueberstunden > toleranzstundenVorFaktor.Value)
{
var ueberstundenFuerFaktor = ed.Ueberstunden.Value - toleranzstundenVorFaktor.Value;
ed.Custom15 = ueberstundenFuerFaktor * (1 + toleranzstundenVorFaktor.Value / ed.SollProWoche);
ed.Custom15 = ueberstundenFuerFaktor * 1.25m; // Auf Stunden, die den Korridor überschritten haben, kommt der Faktor 1,25 drauf
ed.Ueberstunden = toleranzstundenVorFaktor;
ed.Ueberstunden = toleranzstundenVorFaktor; // Überstunden werden dann auf die Korridorstunden gesetzt, da die Stunden mit Faktor extra dargestellt werden
ed.UeberstundenGesamt += (ed.Ueberstunden + ed.Custom15) - (ed.Ueberstunden + ueberstundenFuerFaktor);
}
}
@@ -317,6 +317,9 @@ namespace VkmHamm
}
protected override decimal? BerechneUeberstunden(MitarbeiterstundenkontoRO.EmployeeDetail ed, decimal? ueberstundenStd, Contract contract, DateTime start, DateTime ende)
{
if (start < new DateTime(2024, 02, 01))
return ueberstundenStd;
if (ed.UeberstundenVormonat == null)
ed.UeberstundenVormonat = 0;
if (ed.UeberstundenGesamt == null)
@@ -328,7 +331,7 @@ namespace VkmHamm
{
var toleranzstundenVorFaktor = contract.ProbationPeriod2.Value;
var ueberstundenFuerFaktor = ueberstunden - toleranzstundenVorFaktor;
var bonusDurchKorridorStunden = ueberstundenFuerFaktor * (1 + toleranzstundenVorFaktor / ed.SollProWoche) - ueberstundenFuerFaktor;
var bonusDurchKorridorStunden = ueberstundenFuerFaktor * 1.25m - ueberstundenFuerFaktor;
ed.UeberstundenGesamt += ueberstunden + bonusDurchKorridorStunden + ed.UeberstundenVormonat;
@@ -399,21 +402,21 @@ namespace VkmHamm
private bool IsUrlaubAbsenceServiceRecord(ServiceRecord item)
{
if (item.Notice != null && item.Notice.Length > 0 && item.Notice.Trim().ToLower() == "urlaub")
if (item.Start.HasValue && item.Start.Value >= new DateTime(2024, 04, 1) && item.Notice != null && item.Notice.Length > 0 && item.Notice.Trim().ToLower() == "urlaub")
return true;
return false;
}
private bool IsKrankAbsenceServiceRecord(ServiceRecord item)
{
if (item.Notice != null && item.Notice.Length > 0 && item.Notice.Trim().ToLower() == "krank")
if (item.Start.HasValue && item.Start.Value >= new DateTime(2024, 04, 1) && item.Notice != null && item.Notice.Length > 0 && item.Notice.Trim().ToLower() == "krank")
return true;
return false;
}
public virtual bool IsServiceRecordFehlzeit(ServiceRecord sr)
{
if (sr.Notice != null && sr.Notice.Length > 0 && (sr.Notice.Trim().ToLower() == "krank" || sr.Notice.Trim().ToLower() == "urlaub"))
if (sr.Start.HasValue && sr.Start.Value >= new DateTime(2024, 04, 1) && sr.Notice != null && sr.Notice.Length > 0 && (sr.Notice.Trim().ToLower() == "krank" || sr.Notice.Trim().ToLower() == "urlaub"))
return true;
return false;
}

View File

@@ -39,7 +39,10 @@ namespace VkmHamm
{
ed.Regelarbeitszeit = String.Format("{0:0.00} Stunden pro Woche", c.WeeklyTotalHours);
}
}
tcStundenkorridor.Text = String.Format("{0:0.00}", c.ProbationPeriod2);
}
ed.UrlaubUndKrankheit = 0;
foreach (var day in ed.Days)

View File

@@ -124,6 +124,9 @@ namespace VkmHamm
this.fieldSumHoliday2 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldIstArbeitszeit = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldUeberstundenGesamt = new DevExpress.XtraReports.UI.CalculatedField();
this.xrTableRow7 = new DevExpress.XtraReports.UI.XRTableRow();
this.tcStundenkorridor = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell36 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
@@ -399,7 +402,7 @@ namespace VkmHamm
this.lblMonat,
this.xrTable2});
this.GroupHeader3.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
this.GroupHeader3.HeightF = 120F;
this.GroupHeader3.HeightF = 136.6667F;
this.GroupHeader3.Level = 1;
this.GroupHeader3.Name = "GroupHeader3";
this.GroupHeader3.PageBreak = DevExpress.XtraReports.UI.PageBreak.BeforeBand;
@@ -427,8 +430,9 @@ namespace VkmHamm
this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow1,
this.xrTableRow8,
this.xrTableRow10});
this.xrTable2.SizeF = new System.Drawing.SizeF(552.2002F, 54F);
this.xrTableRow10,
this.xrTableRow7});
this.xrTable2.SizeF = new System.Drawing.SizeF(623.0334F, 72F);
this.xrTable2.StylePriority.UseBorders = false;
this.xrTable2.StylePriority.UseFont = false;
this.xrTable2.StylePriority.UsePadding = false;
@@ -453,7 +457,7 @@ namespace VkmHamm
this.xrTableCell1.StylePriority.UseTextAlignment = false;
this.xrTableCell1.Text = "Mitarbeiter/in:";
this.xrTableCell1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell1.Weight = 0.138246012405208D;
this.xrTableCell1.Weight = 0.24072693199653611D;
//
// xrTableCell25
//
@@ -465,7 +469,7 @@ namespace VkmHamm
this.xrTableCell25.StylePriority.UseFont = false;
this.xrTableCell25.StylePriority.UseTextAlignment = false;
this.xrTableCell25.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell25.Weight = 0.49791629021026568D;
this.xrTableCell25.Weight = 0.47703886236140913D;
//
// xrTableRow8
//
@@ -485,7 +489,7 @@ namespace VkmHamm
this.xrTableCell6.StylePriority.UseTextAlignment = false;
this.xrTableCell6.Text = "Regelarbeitszeit:";
this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell6.Weight = 0.138246012405208D;
this.xrTableCell6.Weight = 0.24072693199653611D;
//
// cellRegelarbeitszeit
//
@@ -496,7 +500,7 @@ namespace VkmHamm
this.cellRegelarbeitszeit.StylePriority.UseTextAlignment = false;
this.cellRegelarbeitszeit.Text = "cellRegelarbeitszeit";
this.cellRegelarbeitszeit.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.cellRegelarbeitszeit.Weight = 0.49791629021026573D;
this.cellRegelarbeitszeit.Weight = 0.47703886236140919D;
//
// xrTableRow10
//
@@ -518,7 +522,7 @@ namespace VkmHamm
this.xrTableCell21.StylePriority.UseTextAlignment = false;
this.xrTableCell21.Text = "Soll-Stunden:";
this.xrTableCell21.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell21.Weight = 0.138246012405208D;
this.xrTableCell21.Weight = 0.24072693199653611D;
//
// xrTableCell24
//
@@ -527,7 +531,7 @@ namespace VkmHamm
this.xrTableCell24.Name = "xrTableCell24";
this.xrTableCell24.StylePriority.UseTextAlignment = false;
this.xrTableCell24.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell24.Weight = 0.17215478017129932D;
this.xrTableCell24.Weight = 0.12036345318862508D;
//
// xrTableCell28
//
@@ -537,7 +541,7 @@ namespace VkmHamm
this.xrTableCell28.StylePriority.UseTextAlignment = false;
this.xrTableCell28.Text = "Arbeitstage diesen Monat:";
this.xrTableCell28.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell28.Weight = 0.213129273221085D;
this.xrTableCell28.Weight = 0.21404195164570988D;
//
// xrTableCell23
//
@@ -547,7 +551,7 @@ namespace VkmHamm
this.xrTableCell23.StylePriority.UseFont = false;
this.xrTableCell23.StylePriority.UseTextAlignment = false;
this.xrTableCell23.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell23.Weight = 0.11263223681788141D;
this.xrTableCell23.Weight = 0.14263345752707424D;
//
// GroupFooter2
//
@@ -784,7 +788,7 @@ namespace VkmHamm
this.xrTableCell32.StylePriority.UseBorders = false;
this.xrTableCell32.StylePriority.UsePadding = false;
this.xrTableCell32.StylePriority.UseTextAlignment = false;
this.xrTableCell32.Text = "Korridorstunden";
this.xrTableCell32.Text = "Korridorstunden mit Faktor";
this.xrTableCell32.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell32.Weight = 0.22133305845875073D;
//
@@ -1082,6 +1086,35 @@ namespace VkmHamm
this.fieldUeberstundenGesamt.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldUeberstundenGesamt.Name = "fieldUeberstundenGesamt";
//
// xrTableRow7
//
this.xrTableRow7.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell36,
this.tcStundenkorridor});
this.xrTableRow7.Name = "xrTableRow7";
this.xrTableRow7.Weight = 0.75540991165010141D;
//
// tcStundenkorridor
//
this.tcStundenkorridor.Multiline = true;
this.tcStundenkorridor.Name = "tcStundenkorridor";
this.tcStundenkorridor.StylePriority.UseTextAlignment = false;
this.tcStundenkorridor.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.tcStundenkorridor.Weight = 0.47703886236140919D;
//
// xrTableCell36
//
this.xrTableCell36.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell36.Multiline = true;
this.xrTableCell36.Name = "xrTableCell36";
this.xrTableCell36.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell36.StylePriority.UseFont = false;
this.xrTableCell36.StylePriority.UsePadding = false;
this.xrTableCell36.StylePriority.UseTextAlignment = false;
this.xrTableCell36.Text = "Monatlicher Stundenkorridor:";
this.xrTableCell36.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell36.Weight = 0.24072693199653614D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
@@ -1224,5 +1257,8 @@ namespace VkmHamm
private DevExpress.XtraReports.UI.XRTableCell xrTableCell30;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell32;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell33;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow7;
private DevExpress.XtraReports.UI.XRTableCell tcStundenkorridor;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell36;
}
}

View File

@@ -42,6 +42,7 @@ namespace VkmHamm
this.xrTableCell28 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell23 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell25 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell24 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell26 = new DevExpress.XtraReports.UI.XRTableCell();
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
@@ -55,6 +56,7 @@ namespace VkmHamm
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
@@ -68,6 +70,7 @@ namespace VkmHamm
this.xrTableCell47 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell48 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell51 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.lblMonat = new DevExpress.XtraReports.UI.XRLabel();
this.pageFooterBand1 = new DevExpress.XtraReports.UI.PageFooterBand();
@@ -80,9 +83,6 @@ namespace VkmHamm
this.fieldFLS = new DevExpress.XtraReports.UI.CalculatedField();
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
@@ -201,6 +201,13 @@ namespace VkmHamm
this.xrTableCell25.Text = "xrTableCell25";
this.xrTableCell25.Weight = 0.09017132551848514D;
//
// xrTableCell8
//
this.xrTableCell8.Multiline = true;
this.xrTableCell8.Name = "xrTableCell8";
this.xrTableCell8.Text = "[Custom15!0.00]";
this.xrTableCell8.Weight = 0.09017132551848514D;
//
// xrTableCell24
//
this.xrTableCell24.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
@@ -318,6 +325,13 @@ namespace VkmHamm
this.xrTableCell13.Text = "Überstd. neu";
this.xrTableCell13.Weight = 0.090171327991870776D;
//
// xrTableCell7
//
this.xrTableCell7.Multiline = true;
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.Text = "Korridorstunden mit Faktor";
this.xrTableCell7.Weight = 0.090171327991870776D;
//
// xrTableCell14
//
this.xrTableCell14.Name = "xrTableCell14";
@@ -422,6 +436,10 @@ namespace VkmHamm
this.xrTableCell51.Name = "xrTableCell51";
this.xrTableCell51.Weight = 0.085078439807117892D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
//
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
@@ -528,24 +546,6 @@ namespace VkmHamm
this.bottomMarginBand1.HeightF = 30F;
this.bottomMarginBand1.Name = "bottomMarginBand1";
//
// xrTableCell7
//
this.xrTableCell7.Multiline = true;
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.Text = "Korridorstunden";
this.xrTableCell7.Weight = 0.090171327991870776D;
//
// xrTableCell8
//
this.xrTableCell8.Multiline = true;
this.xrTableCell8.Name = "xrTableCell8";
this.xrTableCell8.Text = "[Custom15!0.00]";
this.xrTableCell8.Weight = 0.09017132551848514D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
//
// Mitarbeiterstundenkonto
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {