diff --git a/ReportImp/KollegiumEv/KollegiumEv.csproj b/ReportImp/KollegiumEv/KollegiumEv.csproj
index 3e2bce4c5..5d4978d65 100644
--- a/ReportImp/KollegiumEv/KollegiumEv.csproj
+++ b/ReportImp/KollegiumEv/KollegiumEv.csproj
@@ -116,6 +116,7 @@
RechnungAssistenzstunden.cs
+
Component
diff --git a/ReportImp/KollegiumEv/Service/CustomVacationService.cs b/ReportImp/KollegiumEv/Service/CustomVacationService.cs
new file mode 100644
index 000000000..9bcf5eb2a
--- /dev/null
+++ b/ReportImp/KollegiumEv/Service/CustomVacationService.cs
@@ -0,0 +1,33 @@
+using BeWo.Service.Plugins;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace KollegiumEv.Service
+{
+ public class CustomVacationService: VacationService
+ {
+ public override decimal UrlaubstageRunden(decimal urlaubstage)
+ {
+ if (urlaubstage - (int)urlaubstage <= 0.1m)
+ {
+ urlaubstage = Math.Round(urlaubstage, MidpointRounding.AwayFromZero);
+ }
+ else if (urlaubstage - (int)urlaubstage <= 0.5m)
+ {
+ decimal digits = urlaubstage - (int)urlaubstage;
+
+ // aufrunden auf halbe Tage rausgenommen
+ urlaubstage = urlaubstage - digits;
+ }
+ else if (urlaubstage - (int)urlaubstage <= 1.0m)
+ {
+ urlaubstage = Math.Ceiling(urlaubstage);
+ }
+
+ return urlaubstage;
+ }
+ }
+}
diff --git a/Service/Plugins/VacationService.cs b/Service/Plugins/VacationService.cs
index d8c36455d..198a1661f 100644
--- a/Service/Plugins/VacationService.cs
+++ b/Service/Plugins/VacationService.cs
@@ -1012,6 +1012,13 @@ namespace BeWo.Service.Plugins
}
// Runden
+ urlaubstage = UrlaubstageRunden(urlaubstage);
+
+ return urlaubstage;
+ }
+
+ public virtual decimal UrlaubstageRunden(decimal urlaubstage)
+ {
if (urlaubstage - (int)urlaubstage <= 0.1m)
{
urlaubstage = Math.Round(urlaubstage, MidpointRounding.AwayFromZero);