From 948e6cd1b24b0205b58268c095bdcf4c693776a1 Mon Sep 17 00:00:00 2001 From: Kojo Date: Mon, 25 Nov 2024 17:12:43 +0100 Subject: [PATCH 1/3] =?UTF-8?q?MobileEV:=20Anpassung=20der=20Rundungslogik?= =?UTF-8?q?=20(f=C3=BCr=20Landkreis=20B=C3=B6rde=20wie=20LWL)=20=C3=BCber?= =?UTF-8?q?=20Funktion=20bei=20der=20Organisation=20(statt=20ID=20vom=20Co?= =?UTF-8?q?stbearer)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Calculations/CustomCalculations.cs | 24 ------- ReportImp/MobileEV/MobileEV.csproj | 1 - .../MobileEV/Service/CustomSaveInterceptor.cs | 63 ++++++++++++------- 3 files changed, 40 insertions(+), 48 deletions(-) delete mode 100644 ReportImp/MobileEV/Calculations/CustomCalculations.cs 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); + } + } + } } } } From d15c1ab1b2832b5927e8222febc41419f85b4803 Mon Sep 17 00:00:00 2001 From: Kojo Date: Mon, 25 Nov 2024 17:14:20 +0100 Subject: [PATCH 2/3] Jusina: Neues Projekt mit angepasster Gruppenbuchungslogik --- .../CustomGroupDurationCalculator.cs | 18 +++++ ReportImp/Jusina/Jusina.csproj | 80 +++++++++++++++++++ ReportImp/Jusina/Properties/AssemblyInfo.cs | 36 +++++++++ 3 files changed, 134 insertions(+) create mode 100644 ReportImp/Jusina/Calculations/CustomGroupDurationCalculator.cs create mode 100644 ReportImp/Jusina/Jusina.csproj create mode 100644 ReportImp/Jusina/Properties/AssemblyInfo.cs 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")] From 310ce063add2f108166beea3965894dd75c840ac Mon Sep 17 00:00:00 2001 From: Kojo Date: Mon, 25 Nov 2024 17:14:56 +0100 Subject: [PATCH 3/3] =?UTF-8?q?Jusina=20hinzugef=C3=BCgt=20zu=20BeWoAllRep?= =?UTF-8?q?orts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BeWoAllReports.sln | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) 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}