MH: Wendepunkt Velbert Regenartionstage als Urlaub

This commit is contained in:
2025-12-19 08:30:26 +01:00
parent 4cc6f54b6d
commit a5e17bc007
12 changed files with 91 additions and 13 deletions

View File

@@ -0,0 +1,19 @@
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WendepunktVelbert
{
public class CustomMitarbeiterstundenkontoBerechnung : MitarbeiterstundenkontoBerechnung
{
//public override bool IsUrlaubAbsenceTime(AbsenceTime absenceTime)
//{
// return !String.IsNullOrEmpty(absenceTime.AbsenceReason.Description) &&
// (absenceTime.AbsenceReason.Description.ToLower().IndexOf("urlaub") >= 0 || absenceTime.AbsenceReason.Description.ToLower().IndexOf("regeneration") >= 0);
//}
}
}

View File

@@ -0,0 +1,18 @@
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WendepunktVelbert
{
public class CustomMitarbeiterstundenkontoBerechnungMonate : MitarbeiterstundenkontoBerechnungMonate
{
public override MitarbeiterstundenkontoBerechnung CreateMitarbeiterstundenkontoBerechnung()
{
return new CustomMitarbeiterstundenkontoBerechnung();
}
}
}

View File

@@ -8,7 +8,7 @@ using BeWo.Service.Plugins;
using BS.Shared.Core;
using DevExpress.XtraReports.UI;
namespace BeWo.Report.DefaultReports
namespace WendepunktVelbert
{
[IDSpecificClass(Identifier = "Mitarbeiterarbeitszeitkonto")]
public partial class Mitarbeiterarbeitszeitkonto : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<MitarbeiterstundenkontoRO>
@@ -21,11 +21,12 @@ namespace BeWo.Report.DefaultReports
public void SetReportDataSource(MitarbeiterstundenkontoRO pRO)
{
var msb = PluginLoader.FindClass<MitarbeiterstundenkontoBerechnung>();
msb.CreateReport(pRO);
var msb = new CustomMitarbeiterstundenkontoBerechnung();
msb.CreateReport(pRO);
foreach (var ed in pRO.EmployeeDetailList)
{
var c = ed.Employee.GetValidContractForDate(pRO.ReportStartDate);
if (c != null)
{
@@ -44,13 +45,21 @@ namespace BeWo.Report.DefaultReports
{
foreach (var day in ed.Days)
{
// Zeit von Urlaub in Sonstige schieben. Regeneration soll vom Urlaubsbudget abgezogen werden, aber nicht als solcher einsortiert werden
if (day.HoursOtherAbsenceTimes > 0)
{
//CB: In der Standard Berechnungsklasse wurden die anderen Abwesenheiten auch auf die MinutesTotal addiert, daher hier wieder abziehen
//Ich traue mich nicht, das in der Berechnungsklasse zu ändern, weil es dann bestimmt wieder zu Fehlern in angepassten Konten führt.
day.MinutesTotal -= day.HoursOtherAbsenceTimes * 60;
}
//if (day.ZeitraeumeString.Contains("Regeneration"))
//{
// day.HoursOtherAbsenceTimes += day.HoursInVacation;
// day.HoursInVacation -= day.HoursOtherAbsenceTimes;
//}
ed.UrlaubUndKrankheit += (day.HoursSick + day.HoursInVacation + day.HoursOtherAbsenceTimes);
}
}

View File

@@ -1,5 +1,5 @@
using BeWo.Report.ReportObjects;
namespace BeWo.Report.DefaultReports
namespace WendepunktVelbert
{
partial class Mitarbeiterarbeitszeitkonto
{

View File

@@ -1,11 +1,12 @@
using System;
using System.Linq;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BeWo.Service.Plugins;
using BS.Shared.Core;
using static BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO;
namespace BeWo.Report.DefaultReports
namespace WendepunktVelbert
{
[IDSpecificClass(Identifier = "Mitarbeiterstundenkonto")]
public partial class Mitarbeiterstundenkonto : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<MitarbeiterstundenkontoRO>
@@ -20,7 +21,7 @@ namespace BeWo.Report.DefaultReports
public void SetReportDataSource(MitarbeiterstundenkontoRO pRO)
{
//var msb = new MitarbeiterstundenkontoBerechnung();
var msb = PluginLoader.FindClass<MitarbeiterstundenkontoBerechnung>();
var msb = new CustomMitarbeiterstundenkontoBerechnung();
msb.CreateReport(pRO);
foreach (var detail in pRO.EmployeeDetailList)

View File

@@ -1,5 +1,5 @@
using BeWo.Report.ReportObjects;
namespace BeWo.Report.DefaultReports
namespace WendepunktVelbert
{
partial class Mitarbeiterstundenkonto
{

View File

@@ -1,11 +1,12 @@
using System;
using System.Linq;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BeWo.Service.Plugins;
using BS.Shared.Core;
using static BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO;
namespace BeWo.Report.DefaultReports
namespace WendepunktVelbert
{
[IDSpecificClass(Identifier = "MitarbeiterstundenkontoJahr")]
public partial class MitarbeiterstundenkontoJahr : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<MitarbeiterstundenkontoMonateRO>
@@ -19,7 +20,7 @@ namespace BeWo.Report.DefaultReports
public void SetReportDataSource(MitarbeiterstundenkontoMonateRO pRO)
{
var msb = PluginLoader.FindClass<MitarbeiterstundenkontoBerechnungMonate>();
var msb = new CustomMitarbeiterstundenkontoBerechnungMonate();
msb.CreateReport(pRO);

View File

@@ -1,5 +1,5 @@
using BeWo.Report.ReportObjects;
namespace BeWo.Report.DefaultReports
namespace WendepunktVelbert
{
partial class MitarbeiterstundenkontoJahr
{

View File

@@ -1,4 +1,6 @@
using BeWo.Service.Plugins;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Plugins;
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
@@ -29,5 +31,28 @@ namespace WendepunktVelbert.Service
return sonderurlaubsItems;
}
// In die VacationReasonIDs müssen auch die Regenerationstage einbezogen werden, da diese sonst nicht vom Urlaubskontingent abgezogen werden
public override List<long> GetVacationReasonIDs()
{
var res = new List<long>();
var filters = new List<string> { "URLAUB", "REGENERATION" };
var reasons = DAOFactory.GenericDAO.GetAll<AbsenceReason>();
foreach (var reason in reasons)
{
var desc = reason.Description.ToUpper();
foreach (var filter in filters)
{
if (desc.Contains(filter))
{
res.Add(reason.Oid.Value);
break;
}
}
}
return res;
}
}
}

View File

@@ -1,5 +1,5 @@
using BeWo.Report.ReportObjects;
namespace BeWo.Report.DefaultReports
namespace WendepunktVelbert
{
partial class ServiceInvoiceReport
{

View File

@@ -1,10 +1,11 @@
using System;
using System.Text;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Extensions;
using DevExpress.XtraReports.UI;
namespace BeWo.Report.DefaultReports
namespace WendepunktVelbert
{
public partial class ServiceInvoiceReport : XtraReport, IBeWoReport<ServiceInvoiceRO>
{

View File

@@ -31,6 +31,7 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.DataAccess.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Drawing.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Office.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
@@ -39,6 +40,7 @@
<Reference Include="DevExpress.Printing.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.Desktop.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpo.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Charts.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraCharts.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
@@ -55,6 +57,8 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CustomMitarbeiterstundenkontoBerechnungMonate.cs" />
<Compile Include="CustomMitarbeiterstundenkontoBerechnung.cs" />
<Compile Include="Invoicing\CustomInvoiceCreation.cs" />
<Compile Include="Invoicing\CustomInvoiceFactory.cs" />
<Compile Include="Invoicing\CustomSettlementInvoiceCreation.cs" />