MH: VacationService generelle Rundung der Urlaubstage angepasst.
This commit is contained in:
@@ -926,9 +926,9 @@ namespace BeWo.Service.Plugins
|
||||
|
||||
if (year >= start && year <= end)
|
||||
workdays = contract.WeeklyDays;
|
||||
// Durch jedes Jahr des Vertrags gehen und vertr. Urlaubsanspruch setzen. Noch keine Abwesenheiten, nur Urlaubsanspruch
|
||||
// Durch jedes Jahr des Vertrags gehen und vertr. Urlaubsanspruch setzen. Noch keine Abwesenheiten/ResturlaubVorjahr, nur Urlaubsanspruch
|
||||
for (int i = start; i <= end; i++)
|
||||
{
|
||||
{
|
||||
if (konten.ContainsKey(i))
|
||||
{
|
||||
// Konto für aktuelles Jahr in Schleife auswählen
|
||||
@@ -1010,7 +1010,8 @@ namespace BeWo.Service.Plugins
|
||||
|
||||
var absYear = tuple.Item1;
|
||||
var absence = tuple.Item2;
|
||||
|
||||
if(absYear == 2026)
|
||||
{ }
|
||||
_Feiertage = GetFeiertage(absYear);
|
||||
|
||||
// Resturlaub aus Vorjahr übertragen
|
||||
@@ -1030,7 +1031,11 @@ namespace BeWo.Service.Plugins
|
||||
}
|
||||
|
||||
var current = konten[absYear];
|
||||
|
||||
if (absYear == 2025)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Start und Ende auf Jahresanfang/-ende setzen, wenn Start des Urlaubs im Vorjahr oder Ende des Urlaubs im nächsten Jahr liegt
|
||||
var start = DateTimeExtensions.GetMax(absence.Start, new DateTime(absYear, 1, 1));
|
||||
var end = DateTimeExtensions.GetMin(absence.End, new DateTime(absYear, 12, 31));
|
||||
@@ -1331,16 +1336,19 @@ namespace BeWo.Service.Plugins
|
||||
|
||||
public virtual decimal UrlaubstageRunden(decimal urlaubstage)
|
||||
{
|
||||
if (urlaubstage - (int)urlaubstage <= 0.1m)
|
||||
// Bis 0.25 wird abgerundet
|
||||
if (urlaubstage - (int)urlaubstage < 0.25m)
|
||||
{
|
||||
urlaubstage = Math.Round(urlaubstage, MidpointRounding.AwayFromZero);
|
||||
}
|
||||
else if (urlaubstage - (int)urlaubstage <= 0.5m)
|
||||
// Zwischen 0.25 und 0.75 wird auf 0.5 gerundet
|
||||
else if (urlaubstage - (int)urlaubstage < 0.75m)
|
||||
{
|
||||
decimal digits = urlaubstage - (int)urlaubstage;
|
||||
urlaubstage = urlaubstage - digits + 0.5m;
|
||||
}
|
||||
else if (urlaubstage - (int)urlaubstage <= 1.0m)
|
||||
// Ab 0.75 auf nächste volle Zahl aufrunden
|
||||
else
|
||||
{
|
||||
urlaubstage = Math.Ceiling(urlaubstage);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user