diff --git a/BeWoAllReports.sln b/BeWoAllReports.sln
index c867b7989..2f2b320d8 100644
--- a/BeWoAllReports.sln
+++ b/BeWoAllReports.sln
@@ -892,6 +892,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Intego", "ReportImp\Intego\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WendepunktVelbert", "ReportImp\WendepunktVelbert\WendepunktVelbert.csproj", "{5BC38A8A-6BFB-405C-BF79-2C2594B80F6B}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jusina", "ReportImp\Jusina\Jusina.csproj", "{E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|.NET = Debug|.NET
@@ -10935,6 +10937,30 @@ Global
{5BC38A8A-6BFB-405C-BF79-2C2594B80F6B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{5BC38A8A-6BFB-405C-BF79-2C2594B80F6B}.Release|x86.ActiveCfg = Release|Any CPU
{5BC38A8A-6BFB-405C-BF79-2C2594B80F6B}.Release|x86.Build.0 = Release|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Debug|.NET.Build.0 = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Debug|x86.Build.0 = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.DebugRemote|.NET.Build.0 = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.DebugRemote|x86.Build.0 = Debug|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Release|.NET.ActiveCfg = Release|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Release|.NET.Build.0 = Release|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Release|x86.ActiveCfg = Release|Any CPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -11377,6 +11403,7 @@ Global
{A17118EF-CC8C-4984-8225-8B9155CC14D8} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{23A3DE8B-C179-4C40-855B-1E36FBFF76F1} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{5BC38A8A-6BFB-405C-BF79-2C2594B80F6B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7} = {D8A691C5-146D-4613-86CC-438F02FE9106}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}
diff --git a/ReportImp/Jusina/Calculations/CustomGroupDurationCalculator.cs b/ReportImp/Jusina/Calculations/CustomGroupDurationCalculator.cs
new file mode 100644
index 000000000..358832ef4
--- /dev/null
+++ b/ReportImp/Jusina/Calculations/CustomGroupDurationCalculator.cs
@@ -0,0 +1,18 @@
+using BeWo.Service.Plugins;
+using BS.Shared.DataContracts;
+
+namespace Jusina.Calculation
+{
+
+ public class CustomGroupDurationCalculator : GroupDurationCalculator
+ {
+ public override GroupDurationDC CalculateGroupDuration(int personCount, int employeeCount, decimal totalDuration)
+ {
+ return new GroupDurationDC()
+ {
+ SingleDuration = (totalDuration * employeeCount) / personCount,
+ TotalDuration = totalDuration
+ };
+ }
+ }
+}
diff --git a/ReportImp/Jusina/Jusina.csproj b/ReportImp/Jusina/Jusina.csproj
new file mode 100644
index 000000000..a0d9a1d02
--- /dev/null
+++ b/ReportImp/Jusina/Jusina.csproj
@@ -0,0 +1,80 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {E65C96E4-FD76-4C92-B161-B1E07ABBE1A7}
+ Library
+ Properties
+ Jusina
+ 4974272973_Reports
+ v4.7.2
+ 512
+
+
+
+ true
+ full
+ false
+ ..\..\CustomerDlls\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\..\CustomerDlls\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}
+ Data
+
+
+ {40d8b312-ea64-49e3-a31a-5e57ed4d5654}
+ Report
+
+
+ {094331c3-ecee-4c89-bbfd-4c9ded89f0ef}
+ Service
+
+
+ {2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}
+ Shared
+
+
+
+
\ No newline at end of file
diff --git a/ReportImp/Jusina/Properties/AssemblyInfo.cs b/ReportImp/Jusina/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..4acfcc71c
--- /dev/null
+++ b/ReportImp/Jusina/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die einer Assembly zugeordnet sind.
+[assembly: AssemblyTitle("Jusina")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Jusina")]
+[assembly: AssemblyCopyright("Copyright © 2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
+// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
+// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("c1fed668-adb9-47e0-b589-1389618e1b6e")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+// Hauptversion
+// Nebenversion
+// Buildnummer
+// Revision
+//
+// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+// indem Sie "*" wie unten gezeigt eingeben:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/ReportImp/MobileEV/Calculations/CustomCalculations.cs b/ReportImp/MobileEV/Calculations/CustomCalculations.cs
deleted file mode 100644
index 8b9b7720f..000000000
--- a/ReportImp/MobileEV/Calculations/CustomCalculations.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using BS.Shared.Core;
-using BS.Shared.Services;
-
-namespace MobileEV
-{
- [IDSpecificClass(Identifier = "RundungWieLWL")]
- public class CustomCalculations : Calculations
- {
- public override int GetRoundedDuration(int minuteInterval, decimal durationInMinutes)
- {
- decimal lRoundedDuration = durationInMinutes;
-
- if (minuteInterval > 0 && durationInMinutes >= 5)
- {
- lRoundedDuration = durationInMinutes % minuteInterval != 0
- ? durationInMinutes + (minuteInterval - (durationInMinutes % minuteInterval))
- : durationInMinutes;
- }
-
- return (int)Math.Round(lRoundedDuration, 0, MidpointRounding.AwayFromZero);
- }
- }
-}
\ No newline at end of file
diff --git a/ReportImp/MobileEV/MobileEV.csproj b/ReportImp/MobileEV/MobileEV.csproj
index f9f73a331..426b36c1c 100644
--- a/ReportImp/MobileEV/MobileEV.csproj
+++ b/ReportImp/MobileEV/MobileEV.csproj
@@ -55,7 +55,6 @@
-
diff --git a/ReportImp/MobileEV/Service/CustomSaveInterceptor.cs b/ReportImp/MobileEV/Service/CustomSaveInterceptor.cs
index 4f0deeb4a..5169befc8 100644
--- a/ReportImp/MobileEV/Service/CustomSaveInterceptor.cs
+++ b/ReportImp/MobileEV/Service/CustomSaveInterceptor.cs
@@ -2,10 +2,6 @@
using BeWo.Service.Plugins;
using BS.Shared.Extensions;
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
namespace MobileEV.Service
{
@@ -14,28 +10,49 @@ namespace MobileEV.Service
public override void BeforeSaveServiceRecord(ServiceRecord sr)
{
- if (sr.CostBearer2SupportConcept != null && sr.CostBearer2SupportConcept.CostBearer.Organisation.Function != null && !sr.CostBearer2SupportConcept.CostBearer.Organisation.Function.Value.IsNullOrEmpty() && sr.CostBearer2SupportConcept.CostBearer.Organisation.Function.Value == "Rundung Selbstzahler wie LWL")
- {
- // Nach LWL-Regeln runden
-
- if (sr.DurationMinutes <= 7)
- {
- sr.RoundedDuration = 0; // Runde auf 0 Minuten, da kleiner als 8
- }
- else
- {
- int rest = Convert.ToInt32(sr.DurationMinutes) % 15;
+ if (sr.CostBearer2SupportConcept != null)
+ {
+ var costBearer = sr.CostBearer2SupportConcept.CostBearer;
- if (rest <= 7)
+ if (costBearer.Organisation.Function != null &&
+ !costBearer.Organisation.Function.Value.IsNullOrEmpty())
+ {
+ var function = costBearer.Organisation.Function.Value;
+ if (function.Equals("Rundung Selbstzahler wie LWL"))
{
- sr.RoundedDuration = Convert.ToInt32(sr.DurationMinutes) - rest; // Abgerundet auf das vorherige Vielfache von 15
+ if (sr.DurationMinutes <= 7)
+ {
+ sr.RoundedDuration = 0;
+ }
+ else
+ {
+ int rest = Convert.ToInt32(sr.DurationMinutes) % 15;
+
+ if (rest <= 7)
+ {
+ sr.RoundedDuration = Convert.ToInt32(sr.DurationMinutes) - rest;
+ }
+ else
+ {
+ sr.RoundedDuration = Convert.ToInt32(sr.DurationMinutes) + (15 - rest);
+ }
+ }
}
- else
- {
- sr.RoundedDuration = Convert.ToInt32(sr.DurationMinutes) + (15 - rest); // Auf das nächste Vielfache von 15 aufrunden
- }
- }
- }
+ else if (function.Equals("Rundung wie LWL"))
+ {
+ var duration = sr.DurationMinutes;
+
+ if (duration >= 5)
+ {
+ duration = duration % 10 != 0
+ ? duration + (10 - (duration % 10))
+ : duration;
+ }
+
+ sr.RoundedDuration = (int)Math.Round(duration, 0, MidpointRounding.AwayFromZero);
+ }
+ }
+ }
}
}
}