diff --git a/BeWo.sln b/BeWo.sln
index 5d20c72f0..5254946cb 100644
--- a/BeWo.sln
+++ b/BeWo.sln
@@ -597,6 +597,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Club74DB2", "ReportImp\Club
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Inkomm", "ReportImp\Inkomm\Inkomm.csproj", "{AD3876F3-40C0-47CF-BA36-687139903F87}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MalteserJohanniterJohanneshaus", "ReportImp\MalteserJohanniterJohanneshaus\MalteserJohanniterJohanneshaus.csproj", "{28331CB1-17FD-4B58-A837-E0249CAAC535}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|.NET = Debug|.NET
@@ -4760,6 +4762,22 @@ Global
{AD3876F3-40C0-47CF-BA36-687139903F87}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{AD3876F3-40C0-47CF-BA36-687139903F87}.Release|x86.ActiveCfg = Release|Any CPU
{AD3876F3-40C0-47CF-BA36-687139903F87}.Release|x86.Build.0 = Release|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Debug|.NET.Build.0 = Debug|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Debug|x86.Build.0 = Debug|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Release|.NET.ActiveCfg = Release|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Release|.NET.Build.0 = Release|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Release|Any CPU.Build.0 = Release|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Release|x86.ActiveCfg = Release|Any CPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -5054,6 +5072,7 @@ Global
{C982ECDF-517C-45AD-AF50-F9C7AE07C5E5} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{50AFC9EA-61A7-4D3B-B8E6-82CABD29A421} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{AD3876F3-40C0-47CF-BA36-687139903F87} = {D8A691C5-146D-4613-86CC-438F02FE9106}
+ {28331CB1-17FD-4B58-A837-E0249CAAC535} = {D8A691C5-146D-4613-86CC-438F02FE9106}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}
diff --git a/ReportImp/MalteserJohanniterJohanneshaus/MalteserJohanniterJohanneshaus.csproj b/ReportImp/MalteserJohanniterJohanneshaus/MalteserJohanniterJohanneshaus.csproj
new file mode 100644
index 000000000..662893ac2
--- /dev/null
+++ b/ReportImp/MalteserJohanniterJohanneshaus/MalteserJohanniterJohanneshaus.csproj
@@ -0,0 +1,73 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {28331CB1-17FD-4B58-A837-E0249CAAC535}
+ Library
+ Properties
+ MalteserJohanniterJohanneshaus
+ 1422963536_Reports
+ v4.7.2
+ 512
+
+
+
+ true
+ full
+ false
+ ..\..\Host\bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\..\Host\bin\
+ 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/MalteserJohanniterJohanneshaus/Properties/AssemblyInfo.cs b/ReportImp/MalteserJohanniterJohanneshaus/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..930888dd6
--- /dev/null
+++ b/ReportImp/MalteserJohanniterJohanneshaus/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("KundeXyz")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("KundeXyz")]
+[assembly: AssemblyCopyright("Copyright © 2020")]
+[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/MalteserJohanniterJohanneshaus/Service/CustomCustomerService.cs b/ReportImp/MalteserJohanniterJohanneshaus/Service/CustomCustomerService.cs
new file mode 100644
index 000000000..d986fa41f
--- /dev/null
+++ b/ReportImp/MalteserJohanniterJohanneshaus/Service/CustomCustomerService.cs
@@ -0,0 +1,93 @@
+using BeWo.Data.Access;
+using BeWo.Data.Entities;
+using BeWo.Service.Plugins;
+using BS.Shared;
+using BS.Shared.DataContracts;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+
+
+namespace MalteserJohanniterJohanneshaus
+{
+ public class CustomCustomerService : CustomerService
+ {
+
+ public override long InsertNewCustomer(CustomerDC pCustomerDc)
+ {
+ var cOid = base.InsertNewCustomer(pCustomerDc);
+
+ ErstelleOrdnerStruktur(cOid);
+
+ return cOid;
+ }
+
+ public override CustomerDC LoadCustomer(long pCustomerOid)
+ {
+ var dc = base.LoadCustomer(pCustomerOid);
+
+ var folder = DAOFactory.SearchDAO.FindBeWoFolders(TableID.Customer, pCustomerOid);
+
+ if (folder.Count == 0)
+ {
+ ErstelleOrdnerStruktur(pCustomerOid);
+ }
+
+ return dc;
+
+ }
+
+ private void ErstelleOrdnerStruktur(long cOid)
+ {
+ // HIERACHIE LEVEL - 1 -
+ var folder01 = CreateBeWoFolder("01 Antragswesen", cOid, null);
+ var folder02 = CreateBeWoFolder("02 Vertragswesen", cOid, null);
+ var folder03 = CreateBeWoFolder("03 Sonstiges", cOid, null);
+ }
+
+ private BeWoFolder CreateBeWoFolder(string name, long? cOid, long? parentOid)
+ {
+ BeWoFolder f = new BeWoFolder();
+ f.Name = name;
+ f.ObjectOid = cOid;
+ f.ObjectTid = TableID.Customer;
+ f.ParentBeWoFolderOid = parentOid;
+
+ DAOFactory.GenericDAO.Insert(f);
+
+ return f;
+ }
+ private void CreateSubFolder(string[] vs, BeWoFolder folder)
+ {
+ foreach (var foldername in vs)
+ {
+ CreateBeWoFolder(foldername, folder.ObjectOid, folder.ParentBeWoFolderOid);
+ }
+ }
+
+ private void SaveHierarchie(List folderList, long cOid, long? parentOid)
+ {
+ foreach (var item in folderList)
+ {
+ var f = CreateBeWoFolder(item.Name, cOid, parentOid);
+
+ SaveHierarchie(item.Subfolder, cOid, f.Oid);
+ }
+ }
+ }
+
+ public class Folder
+ {
+ public Folder(String name)
+ {
+ Name = name;
+ Subfolder = new List();
+ }
+ public String Name { get; set; }
+
+ public List Subfolder { get; set; }
+ }
+}