diff --git a/BeWoAllReports.sln b/BeWoAllReports.sln index 1c4c7a657..bfafe0d5d 100644 --- a/BeWoAllReports.sln +++ b/BeWoAllReports.sln @@ -934,6 +934,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OwnSoftTestSchmitzi", "Repo EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeWoBoland", "ReportImp\BeWoBoland\BeWoBoland.csproj", "{55F0AC0E-4686-4671-8A20-3CF33D0F2F82}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EndartFabrik", "ReportImp\EndartFabrik\EndartFabrik.csproj", "{C6EB0254-6FCB-4143-BC33-73168E836FF8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HalteStelle", "ReportImp\HalteStelle\HalteStelle.csproj", "{D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|.NET = Debug|.NET @@ -11481,6 +11485,54 @@ Global {55F0AC0E-4686-4671-8A20-3CF33D0F2F82}.Release|Mixed Platforms.Build.0 = Release|Any CPU {55F0AC0E-4686-4671-8A20-3CF33D0F2F82}.Release|x86.ActiveCfg = Release|Any CPU {55F0AC0E-4686-4671-8A20-3CF33D0F2F82}.Release|x86.Build.0 = Release|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Debug|.NET.ActiveCfg = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Debug|.NET.Build.0 = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Debug|x86.ActiveCfg = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Debug|x86.Build.0 = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.DebugRemote|.NET.Build.0 = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.DebugRemote|x86.ActiveCfg = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.DebugRemote|x86.Build.0 = Debug|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Release|.NET.ActiveCfg = Release|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Release|.NET.Build.0 = Release|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Release|Any CPU.Build.0 = Release|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Release|x86.ActiveCfg = Release|Any CPU + {C6EB0254-6FCB-4143-BC33-73168E836FF8}.Release|x86.Build.0 = Release|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Debug|.NET.ActiveCfg = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Debug|.NET.Build.0 = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Debug|x86.ActiveCfg = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Debug|x86.Build.0 = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.DebugRemote|.NET.Build.0 = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.DebugRemote|x86.ActiveCfg = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.DebugRemote|x86.Build.0 = Debug|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Release|.NET.ActiveCfg = Release|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Release|.NET.Build.0 = Release|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Release|Any CPU.Build.0 = Release|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Release|x86.ActiveCfg = Release|Any CPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -11944,6 +11996,8 @@ Global {3D0ED6C8-21D3-46E3-B581-40EEDA98DE12} = {D8A691C5-146D-4613-86CC-438F02FE9106} {D357755F-6B30-4CA4-88B9-44F624030AAA} = {D8A691C5-146D-4613-86CC-438F02FE9106} {55F0AC0E-4686-4671-8A20-3CF33D0F2F82} = {D8A691C5-146D-4613-86CC-438F02FE9106} + {C6EB0254-6FCB-4143-BC33-73168E836FF8} = {D8A691C5-146D-4613-86CC-438F02FE9106} + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2} = {D8A691C5-146D-4613-86CC-438F02FE9106} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9} diff --git a/ReportImp/HalteStelle/Calculations/CustomGroupDurationCalculator.cs b/ReportImp/HalteStelle/Calculations/CustomGroupDurationCalculator.cs new file mode 100644 index 000000000..c12e4220d --- /dev/null +++ b/ReportImp/HalteStelle/Calculations/CustomGroupDurationCalculator.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using BeWo.Service.Plugins; +using BS.Shared.Core; +using BS.Shared.DataContracts; +using BS.Shared.Services; + +namespace TemplateNeuKunde.Calculations +{ + //public class CustomGroupDurationCalculator : GroupDurationCalculator + //{ + // public override GroupDurationDC CalculateGroupDuration(int personCount, int employeeCount, decimal totalDuration) + // { + // return new GroupDurationDC() + // { + // SingleDuration = (totalDuration / personCount) * employeeCount, + // TotalDuration = totalDuration + // }; + // } + + //} +} diff --git a/ReportImp/HalteStelle/Calculations/DefaultCalculations.cs b/ReportImp/HalteStelle/Calculations/DefaultCalculations.cs new file mode 100644 index 000000000..906e9d981 --- /dev/null +++ b/ReportImp/HalteStelle/Calculations/DefaultCalculations.cs @@ -0,0 +1,25 @@ +using System; + +namespace TemplateNeuKunde.Calculations +{ + + //public class DefaultCalculations : BS.Shared.Services.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/HalteStelle/HalteStelle.csproj b/ReportImp/HalteStelle/HalteStelle.csproj new file mode 100644 index 000000000..1c461648e --- /dev/null +++ b/ReportImp/HalteStelle/HalteStelle.csproj @@ -0,0 +1,97 @@ + + + + + Debug + AnyCPU + {D6B9FA58-F1F4-4737-9FB9-A994AD50AEF2} + Library + Properties + HalteStelle + 3475059258_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/HalteStelle/Import/CustomDataImporter.cs b/ReportImp/HalteStelle/Import/CustomDataImporter.cs new file mode 100644 index 000000000..8f5a66712 --- /dev/null +++ b/ReportImp/HalteStelle/Import/CustomDataImporter.cs @@ -0,0 +1,153 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BeWo.Service.Core; +using BeWo.Service.Import.AvisImport; +using BeWo.Service.Plugins; +using BS.Shared.Core; +using BS.Shared.DataContracts; +using Utils = BS.Shared.Core.Utils; + +namespace HalteStelle.Import +{ + public class CustomLvrAviseImporter : LvrAviseImporter + { + public override String ImportCsvAvise(String csv) + { + var reader = new LvrAvisCsvReader(); + var avise = LeseEinzelAviseLWL(csv); + var hilfeplaene = CreateHilfeplanInfos(); + + return ImportAvise(avise, hilfeplaene); + } + + private List LeseEinzelAviseLWL(string importfile) + { + List liste = new List(); + String[] lines = importfile.Split('\n'); + + for (int i = 0; i < lines.Count(); i++) + { + string line = lines[i]; + var fields = line.Split(';'); + if (fields.Length >= 11) + { + if (!String.IsNullOrEmpty(fields[6]) && !String.IsNullOrEmpty(fields[10]) && !String.IsNullOrEmpty(fields[11]) + && (fields[6].ToString().Contains("Westfalen-Lippe") || fields[6].ToString().Contains("LWL"))) + { + try + { + DateTime gueltigkeitsTag = DateTime.Now; + decimal betrag = 0m; + + var neuerAvis = new Avis(); + decimal.TryParse(fields[11], out betrag); + neuerAvis.Betrag = betrag; + fields[10] = fields[10].Trim(); + if (!String.IsNullOrEmpty(fields[10])) + { + var zweck = fields[10]; + string pattern = @"^(?:[^/]*/){5}([^/]*)(?=/?EREF)"; + Match matchVerwendung = Regex.Match(zweck, pattern); + if (matchVerwendung.Success) + { + neuerAvis.Klient = matchVerwendung.Groups[1].Value.Substring(8).Trim(); + neuerAvis.Verwendungszweck = matchVerwendung.Groups[1].Value.Substring(8).Trim(); + neuerAvis.Aktenzeichen = matchVerwendung.Groups[1].Value.Substring(0, 7); + } + else + { + neuerAvis.Klient = zweck; + neuerAvis.Verwendungszweck = zweck; + neuerAvis.Aktenzeichen = zweck; + } + + var date = zweck.Substring(23, 10); + if (int.TryParse(date, out int resultMonat) && int.TryParse(date, out int resultJahr)) + { + gueltigkeitsTag = new DateTime(resultJahr, resultMonat, 1); + } + else + { + if (DateTime.TryParse(date, out DateTime resultHp)) + { + gueltigkeitsTag = resultHp; + } + else + { + var datumMonat = fields[4].Substring(fields[4].Length - 7, 2); + var datumJahr = fields[4].Substring(fields[4].Length - 4, 4); + if (int.TryParse(datumMonat, out int resultMonth) && int.TryParse(datumJahr, out int resultYear)) + { + gueltigkeitsTag = new DateTime(resultYear, resultMonth, 1); + } + else + { + if (DateTime.TryParse(fields[4], out DateTime resultDate)) + { + gueltigkeitsTag = resultDate; + } + } + } + } + neuerAvis.GueltigkeitsDatum = gueltigkeitsTag; + } + else + { + neuerAvis.Verwendungszweck = "kein Text"; + neuerAvis.Aktenzeichen = "kein Text"; + } + neuerAvis.BuchungsDatum = DateTime.Now; + //neuerAvis.Sachbearbeiter = fields[13] + ", " + fields[14]; + if (neuerAvis.Betrag != 0) + { + liste.Add(neuerAvis); + } + } + catch (Exception e) + { + //ignore + } + } + } + } + return liste; + } + + public override List CreateHilfeplanInfos() + { + List liste = new List(); + var scList = DAOFactory.GenericDAO.GetAllActiveAndArchived(); + + foreach (var supportConcept in scList) + { + foreach (var cb2sc in supportConcept.CostBearer2SupportConceptList) + { + HilfeplanInfo hi = new HilfeplanInfo(); + hi.Start = cb2sc.StartDate; + hi.Ende = cb2sc.EndDate; + var reference = cb2sc.CustomerReferenceNumber; + if (!String.IsNullOrEmpty(reference)) + { + reference = reference.Replace("-", ""); + reference = reference.Replace("/", "").Trim(); + } + hi.Aktenzeichen = reference; + hi.CostBearer2SupportConcept = cb2sc; + hi.CustomerFirstName = cb2sc.SupportConcept.Customer.Person.FirstName; + hi.CustomerLastName = cb2sc.SupportConcept.Customer.Person.LastName; + + if (hi.Start.HasValue && hi.Ende.HasValue && !String.IsNullOrEmpty(hi.Aktenzeichen)) + { + liste.Add(hi); + } + } + } + + return liste; + } + } +} diff --git a/ReportImp/HalteStelle/Invoicing/CustomInvoiceCreation.cs b/ReportImp/HalteStelle/Invoicing/CustomInvoiceCreation.cs new file mode 100644 index 000000000..7d5aee1ec --- /dev/null +++ b/ReportImp/HalteStelle/Invoicing/CustomInvoiceCreation.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BeWo.Report.ReportObjects; +using BeWo.Service.DCEntityMapper; +using BeWo.Service.Invoicing; +using BS.Shared; +using BS.Shared.Core; +using BS.Shared.DataContracts; +using BS.Shared.Extensions; +using BS.Shared.Services; +using Service.Invoicing; + +namespace TemplateNeuKunde.Invoicing +{ + // public class CustomInvoiceCreation : InvoiceCreation + //{ + // //public override void SetInvoiceId(ServiceInvoice invoice) + // //{ + // // //invoice.InvoiceBase.InvoiceId = "SBD"; + // // //invoice.InvoiceBase.InvoiceTypeText = ""; + // //} + + + // // //Setze für Selbstzahler die Adresse des Klienten + // // public override void SetRecipientInformation(ServiceInvoice serviceInvoice, CostBearer costBearer) + // // { + // // if (costBearer.Organisation.Name == "Selbstzahler") + // // { + // // serviceInvoice.InvoiceBase.RecipientOrganisationOid = costBearer.Organisation.Oid; + + // // if (serviceInvoice.InvoiceBase.CostBearer2SupportConcept != null) + // // { + // // var cust = serviceInvoice.InvoiceBase.CostBearer2SupportConcept.SupportConcept.Customer; + + // // if (cust.Person.InvoiceAddress != null) + // // { + // // serviceInvoice.InvoiceBase.RecipientAddress = cust.Person.InvoiceAddress.CopyToNew(); + // // } + // // else if (cust.Person.Address != null) + // // { + // // serviceInvoice.InvoiceBase.RecipientAddress = cust.Person.Address.CopyToNew(); + // // } + + // // serviceInvoice.InvoiceBase.RecipientPersonFirstName = cust.Person.FirstName; + // // serviceInvoice.InvoiceBase.RecipientPersonLastName = cust.Person.LastName; + // // serviceInvoice.InvoiceBase.RecipientCustomerOid = cust.Oid; + // // } + // // } + // // } + // } +} diff --git a/ReportImp/HalteStelle/Invoicing/CustomInvoiceFactory.cs b/ReportImp/HalteStelle/Invoicing/CustomInvoiceFactory.cs new file mode 100644 index 000000000..261ac0d43 --- /dev/null +++ b/ReportImp/HalteStelle/Invoicing/CustomInvoiceFactory.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BeWo.Service.Invoicing; +using BS.Shared.DataContracts; +using BS.Shared.DataContracts.Compact; + +namespace TemplateNeuKunde.Invoicing +{ + public class CustomInvoiceFactory : InvoiceFactory + { + // public override InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary> supportConcepts2ServiceRecords) + // { + ////Hier einkommentieren, wenn die Rechnungserstellung von einer bestimmten Kategorie einer Bewilligung abhängt + //foreach (var item in supportConcepts2ServiceRecords) + //{ + // var csc = item.Key; + // var cb2sc = DAOFactory.GenericDAO.LoadByID(csc.CostBearerRelOids[0]); + + // foreach (var scap in cb2sc.ApprovalPeriodList) + // { + // if (scap.ServiceCategory != null) + // { + // var ic = GetInvoiceCreatorForCategory(scap.ServiceCategory.Name); + // if (ic != null) + // return ic; + // } + // } + //} + + ////Hier einkommentieren, wenn die Rechnungserstellung von einer bestimmten Kategorie oder Organisation eines ServiceRecords abhängt + //foreach (var list in supportConcepts2ServiceRecords.Values) + // { + // foreach (var sr in list) + // { + // //Hier wird Kategorie geprüft + // var ic = GetInvoiceCreatorForCategory(sr.ServiceDescription.Category.Name); + // if (ic != null) + // return ic; + + // //Hier wird Organisation geprüft + // if (sr.CostBearer.Name.ToLower().Contains("selbstzahler")) + // { + // return new CustomInvoiceCreation(); + // } + // } + // } + + + // return base.CreateInvoiceCreator(specificId, tenant, supportConcepts2ServiceRecords); + // } + + // private InvoiceCreation GetInvoiceCreatorForCategory(String catName) + // { + // if (!String.IsNullOrEmpty(catName)) + // { + // String cat = catName.ToLower().Trim(); + // if (cat.IndexOf("assistenz") >= 0) + // return new CustomInvoiceCreation(); + // } + // return null; + // } + } +} diff --git a/ReportImp/HalteStelle/Invoicing/CustomLWLDiggaBerechnung.cs b/ReportImp/HalteStelle/Invoicing/CustomLWLDiggaBerechnung.cs new file mode 100644 index 000000000..3d4dcc3af --- /dev/null +++ b/ReportImp/HalteStelle/Invoicing/CustomLWLDiggaBerechnung.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BeWo.Service.DCEntityMapper; +using BeWo.Service.Invoicing; +using BeWo.Service.Plugins; +using BS.Shared; +using BS.Shared.Core; +using BS.Shared.DataContracts; +using BS.Shared.Extensions; +using BS.Shared.Services; + +namespace TemplateNeuKunde.Invoicing +{ + public class CustomLWLDiggaBerechnung : LWLDiggaBerechnung + { + public override void InitBerechnung() + { + //this.Umstellungsdatum = new DateTime(2025, 1, 1); + } + } +} diff --git a/ReportImp/HalteStelle/Properties/AssemblyInfo.cs b/ReportImp/HalteStelle/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..930888dd6 --- /dev/null +++ b/ReportImp/HalteStelle/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/HalteStelle/Reporting/CustomMitarbeiterstundenkontoBerechnung.cs b/ReportImp/HalteStelle/Reporting/CustomMitarbeiterstundenkontoBerechnung.cs new file mode 100644 index 000000000..8b32a2d7b --- /dev/null +++ b/ReportImp/HalteStelle/Reporting/CustomMitarbeiterstundenkontoBerechnung.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using BeWo.Data.Entities; +using BeWo.Report.ReportObjects; + +using BS.Shared.Extensions; + + +namespace TemplateNeuKunde.Reporting +{ + public class CustomMitarbeiterstundenkontoBerechnung : MitarbeiterstundenkontoBerechnung + { + //Wenn halbe Feiertage konfiguriert werden sollen, muss diese Methode auch im VacationService einkommentiert werden + //public override decimal GetFeiertagsFaktor(DateTime start) + //{ + // if (start.Month == 12) + // { + // if (start.Day == 24 || start.Day == 31) + // { + // return 0.5m; + // } + // } + + // return base.GetFeiertagsFaktor(start); + //} + } +} diff --git a/ReportImp/HalteStelle/Reporting/CustomReportCreator.cs b/ReportImp/HalteStelle/Reporting/CustomReportCreator.cs new file mode 100644 index 000000000..3e064654a --- /dev/null +++ b/ReportImp/HalteStelle/Reporting/CustomReportCreator.cs @@ -0,0 +1,201 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BeWo.Report; +using BeWo.Report.DefaultReports; +using BeWo.Report.ReportObjects; +using BeWo.Service.DCEntityMapper; +using DevExpress.XtraReports.UI; + +namespace TemplateNeuKunde.Reporting +{ + //public class CustomReportCreator : DefaultReportCreator + //{ + // //Einkommentiere für LWL Prüfliste, ZAD Nummer und ServiceDescription ergänzen + + + // //SQL Queries: + // //INSERT INTO `query` (`Oid`,`Tid`,`Type`,`Title`,`SQL`,`Notice`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`,`UserGroupOids`,`ReportTypeName`,`FileName`,`ExportTitle`) + // //VALUES(500,24,0,'LWL Quittierungsbelege','select \':Von\', \':Bis\', \':Klient/in\'','direct', NULL, NULL, NULL,1,1, NULL,'1', NULL, NULL, NULL); + + // //INSERT INTO `parameter` (`Oid`,`QueryOid`,`Tid`,`Name`,`Type`,`DbType`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`) VALUES(4,500,25,'Von_Bis',5, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + // //INSERT INTO `parameter` (`Oid`,`QueryOid`,`Tid`,`Name`,`Type`,`DbType`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`) VALUES(5,500,25,'Klient/in',2, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + + // //public override XtraReport CreateQueryReport(long queryOid, string queryReportId) + // //{ + // // if (queryOid == 500) + // // { + // // return CreateLwlPruefliste(CreateQueryRO(queryOid, queryReportId)); + + // // } + // // return base.CreateQueryReport(queryOid, queryReportId); + // //} + + // //private LwlPruefliste CreateLwlPruefliste(QueryRO queryRo) + // //{ + // // var liste = new LwlPruefliste(); + + // // if (queryRo.Rows.Count > 0) + // // { + // // DateTime start = DateTime.MaxValue; + // // DateTime end = DateTime.MinValue; + + // // if (queryRo.Rows[0].Field1 != null) + // // { + // // DateTime.TryParse(queryRo.Rows[0].Field1.ToString(), out start); + // // } + // // if (queryRo.Rows[0].Field2 != null) + // // { + // // DateTime.TryParse(queryRo.Rows[0].Field2.ToString(), out end); + // // } + // // long? customerOid = null; + // // if (queryRo.Rows[0].Field3.ToString() == "0") + // // { + // // var masterReport = new LwlPruefliste(); + // // //masterReport.CreateDocument(); + + // // var customerList = DAOFactory.GenericDAO.GetAllActive(); + // // var customerListOrd = customerList.OrderBy(c => c.Person.LastNameFirstName).ToList(); + // // foreach (var c in customerListOrd) + // // { + // // var ro = LwlPrueflisteRO.Create(start, end, "9011113", c.Oid); + // // if (ro.ServiceRecords != null && ro.ServiceRecords.Count > 0) + // // { + // // try + // // { + // // liste = new LwlPruefliste(); + // // liste.SetReportDataSource(ro); + // // liste.CreateDocument(); + // // masterReport.Pages.AddRange(liste.Pages); + // // } + // // catch + // // { + // // // ignore - z.B. kein Hilfeplan + // // } + // // } + // // } + // // return (LwlPruefliste)masterReport; + // // } + + // // if (queryRo.Rows[0].Field3 != null) + // // { + // // if (Int64.TryParse(queryRo.Rows[0].Field3.ToString(), out var oidOut)) + // // { + // // customerOid = oidOut; + // // } + // // var ro = LwlPrueflisteRO.Create(start, end, "9011113", customerOid); + // // liste.SetReportDataSource(ro); + // // return liste; + // // } + // // } + + // // return liste; + // //} + + + // //Einkommentiere für LWL 2. Seite mit Anhang für Budgetnachweise + // //public override XtraReport CreateSettlementReport(string dcId, long? invoiceBaseOid) + // //{ + // // return base.CreateSettlementReport(dcId, invoiceBaseOid, true); + // //} + + + // //public override XtraReport CreateServiceOverviewAllCustomersReport(int month, int year, long orgaOid, long empOid, long? serviceCategoryOid, int startDay, int endDay) + // //{ + // // List lROs = ServicesOverviewRO.Create(month, year, orgaOid, empOid, startDay, endDay); + + // // if (lROs.Count > 0) + // // { + + // // var rootReport = CreateServicesOverviewReportForRo(lROs[0], serviceCategoryOid); + // // rootReport.CreateDocument(); + + // // for (int i = 1; i < lROs.Count; i++) + // // { + // // var lNext = CreateServicesOverviewReportForRo(lROs[i], serviceCategoryOid); + // // lNext.CreateDocument(); + // // rootReport.Pages.AddRange(lNext.Pages); + // // } + + // // return rootReport; + // // } + // // return new XtraReport(); + // //} + + // //public override XtraReport CreateServiceOverviewSingleCustomerReport(long customerOid, int month, int year, long orgaOid, long empOid, long? serviceCategoryOid, int startDay, int endDay) + // //{ + // // var ro = ServicesOverviewRO.Create(customerOid, month, year, false, orgaOid, empOid, startDay, endDay, serviceCategoryOid); + // // return CreateServicesOverviewReportForRo(ro, serviceCategoryOid); + // //} + // //public override XtraReport CreateServiceOverviewReportForCustomers(IList customerOids, int month, int year, long? orgaOid, long? empOid, long? serviceCategoryOid, int startDay, int endDay, bool nurFehlende) + // //{ + // // var roList = new List(); + + // // foreach (var coid in customerOids) + // // { + // // var ro = ServicesOverviewRO.Create(coid, month, year, true, orgaOid ?? 0, empOid ?? 0, startDay, endDay, serviceCategoryOid); + // // if (ro != null) + // // { + // // roList.Add(ro); + // // } + // // } + + // // if (roList.Count > 0) + // // { + + // // var rootReport = CreateServicesOverviewReportForRo(roList[0], serviceCategoryOid); + // // rootReport.CreateDocument(); + + // // for (int i = 1; i < roList.Count; i++) + // // { + // // var lNext = CreateServicesOverviewReportForRo(roList[i], serviceCategoryOid); + // // lNext.CreateDocument(); + // // rootReport.Pages.AddRange(lNext.Pages); + // // } + + // // return rootReport; + // // } + // // return new XtraReport(); + + // //} + //public override XtraReport CreateReportForServicesOverviewRo(ServicesOverviewRO ro, String reportId) + //{ + // return CreateServicesOverviewReportForRo(ro, null); + //} + + // //private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro, long? serviceCategoryOid) + // //{ + // // IBeWoReport report = null; + // // String kt = ""; + // // if (!String.IsNullOrWhiteSpace(ro.Costbearer)) + // // kt = ro.Costbearer.Trim(); + + // // String function = ""; + // // if (ro.CostBearer2SupportConceptList != null) + // // { + // // foreach (var c2s in ro.CostBearer2SupportConceptList) + // // { + // // if (c2s.CostBearer.Organisation.Function != null && !String.IsNullOrWhiteSpace(ro.Costbearer) && c2s.CostBearer.Organisation.Name == ro.Costbearer) + // // function = c2s.CostBearer.Organisation.Function.Value; + // // } + // // } + + // // if (kt == "Kreisverwaltung Mainz-Bingen") + // // report = new AlzeyTeilhabe.StundenzettelBi2(); + + // // if (report == null && function == "Kostenträger Soziotherapie") + // // report = new StundenzettelSoziotherapie(); + + // // if (report == null) + // // report = new AlzeyTeilhabe.StundenzettelWo(); + + // // report.SetReportDataSource(ro); + + // // return report as XtraReport; + // //} + + //} +} diff --git a/ReportImp/HalteStelle/Service/CustomHomeContentGenerator.cs b/ReportImp/HalteStelle/Service/CustomHomeContentGenerator.cs new file mode 100644 index 000000000..d05aaae5b --- /dev/null +++ b/ReportImp/HalteStelle/Service/CustomHomeContentGenerator.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using BeWo.Service.Plugins; +using BS.Shared; +using BS.Shared.Core; +using BS.Shared.DataContracts.Compact; + +namespace TemplateNeuKunde.Service +{ + //public class CustomHomeContentGenerator : HomeContentGenerator + //{ + + //Einkommentieren um Geburtstage auszublenden + // public override List GetPersonsHavingBirthday(DateTime birthdayUntil) + // { +// return new List(); + // List alle = base.GetPersonsHavingBirthday(birthdayUntil); + // List nurMitarbeiter = new List(); + + // foreach (var compactPersonDc in alle) + // { + // if (compactPersonDc.PersonType == PersonType.Employee) + // { + // nurMitarbeiter.Add(compactPersonDc); + // } + // } + // return nurMitarbeiter; + // } + //} +} diff --git a/ReportImp/HalteStelle/Service/CustomVacationService.cs b/ReportImp/HalteStelle/Service/CustomVacationService.cs new file mode 100644 index 000000000..46ee829e7 --- /dev/null +++ b/ReportImp/HalteStelle/Service/CustomVacationService.cs @@ -0,0 +1,45 @@ +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 TemplateNeuKunde.Service +{ + //public class CustomVacationService : VacationService + //{ + // //public override string Bundesland { get => "Bayern"; } + + // // public override List GetFeiertage(int year, String bundesland) + // // { + // // List list = base.GetFeiertage(year, bundesland); + // // list.Add(new FeiertagDC { Datum = new DateTime(year, 12, 31), Name = "Silvester" }); + + // // return list; + // // } + + + // //Wenn halbe Feiertage konfiguriert werden sollen, muss diese Methode auch in CustomMitarbeiterstundenkontoBerechnung einkommentiert werden + // //public override decimal GetFeiertagsFaktor(DateTime start) + // //{ + // // if (start.Month == 12) + // // { + // // if (start.Day == 24 || start.Day == 31) + // // { + // // return 0.5m; + // // } + // // } + + // // return base.GetFeiertagsFaktor(start); + // //} + //} + + +} diff --git a/ReportImp/HalteStelle/Service/DefaultSaveInterceptor.cs b/ReportImp/HalteStelle/Service/DefaultSaveInterceptor.cs new file mode 100644 index 000000000..28d127934 --- /dev/null +++ b/ReportImp/HalteStelle/Service/DefaultSaveInterceptor.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using BeWo.Data.Access; +using BeWo.Service.Plugins; +using BS.Shared; +using BS.Shared.Core; +using BS.Shared.DataContracts; +using BS.Shared.Extensions; +using BS.Shared.Services; + +namespace TemplateNeuKunde.Validation +{ + + //public class DefaultSaveInterceptor : SaveInterceptor + // { + // public override string AllowSaveCustomer(CustomerDC c) + // { + // if (c.CustomerOid.HasValue) + // { + // return null; + // } + + // if (!c.DateOfBirth.HasValue) + // { + // return "Bitte geben Sie ein Geburtsdatum an."; + // } + + // if (!String.IsNullOrWhiteSpace(c.FirstName) && !String.IsNullOrWhiteSpace(c.LastName) && c.DateOfBirth.HasValue) + // { + // var duplicates = DAOFactory.SearchDAO.FindCustomer(c.FirstName, c.LastName, c.DateOfBirth.Value); + // if (duplicates != null && duplicates.Count > 0) + // { + // var dc = duplicates[0]; + // String archiviert = ""; + + + // if (dc.Person.Sex.HasValue && dc.Person.Sex.Value == Sex.Female) + // { + // if (dc.IsActive == ActivationTypeId.Archived) + // { + // archiviert = "archivierte "; + // } + // return String.Format( + // "Es gibt bereits eine {3}Klientin {0} {1}, geb. am {2:dd.MM.yyyy}.", dc.Person.FirstName, dc.Person.LastName, dc.Person.DateOfBirth, archiviert); + // } + // else + // { + // if (dc.IsActive == ActivationTypeId.Archived) + // { + // archiviert = "archivierten "; + // } + // return String.Format( + // "Es gibt bereits einen {3}Klienten {0} {1}, geb. am {2:dd.MM.yyyy}.", dc.Person.FirstName, dc.Person.LastName, dc.Person.DateOfBirth, archiviert); + // } + // } + // } + // return base.AllowSaveCustomer(c); + // } + // } +} \ No newline at end of file diff --git a/ReportImp/HalteStelle/Statistics/CustomServiceRecordStatisticFactory.cs b/ReportImp/HalteStelle/Statistics/CustomServiceRecordStatisticFactory.cs new file mode 100644 index 000000000..2267e43b3 --- /dev/null +++ b/ReportImp/HalteStelle/Statistics/CustomServiceRecordStatisticFactory.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using BeWo.Service.Plugins; +using BS.Shared; +using BS.Shared.DataContracts; + + +namespace TemplateNeuKunde.Statistics +{ + //public class CustomServiceRecordStatisticFactory : ServiceRecordStatisticFactory + // { + + // public override ServiceRecordStatisticsInfoDC GetServiceRecordStatisticInfo(long costBearer2SupportConceptOid, DateTime statisticsDate) + // { + // var stats = CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate); + + // var dc = new ServiceRecordStatisticsInfoDC(); + + + + // dc.Header = new string[4]; + // dc.Header[0] = "Bewilligungszeitraum:"; + // dc.Header[1] = "Geleistet diesen Monat/Gesamt:"; + // dc.Header[2] = "Bewilligt diesen Monat/Gesamt:"; + // dc.Header[3] = "Frei diesen Monat/Gesamt:"; + + // dc.ForegroundColor = new string[4]; + // dc.ForegroundColor[0] = "#FF2B508B"; + // dc.ForegroundColor[1] = "#FF2B508B"; + // dc.ForegroundColor[2] = "#FF2B508B"; + // dc.ForegroundColor[3] = "#FF2B508B"; + + // dc.PeriodStatisticInfos = new List(); + + + // if (stats != null) + // { + // if (stats.PeriodStatistics.Count > 1 && !TimeSpanIsEqual(stats)) + // dc.PeriodStatisticInfos.Add(CreateTotalStatistics(stats, statisticsDate)); + + // foreach (var pdc in stats.PeriodStatistics) + // { + // dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, pdc, statisticsDate)); + // } + // } + + // return dc; + // } + + + // public ServiceRecordPeriodStatisticsInfoDC CreateTotalStatistics(SupportConceptStatisticsDC stats, DateTime statisticsDate) + // { + // var dc = CreateDefaultServiceRecordPeriodStatisticsInfo(4); + // dc.LeftValues[0] = "Gesamt"; + + // dc.LeftValues[1] = String.Format("{0:0.00}", stats.MinutesProvidedThisMonth / 60); + // dc.RightValues[1] = String.Format("{0:0.00}", stats.MinutesProvidedTotalRounded / 60); + + // dc.LeftValues[2] = String.Format("{0:0.00}", stats.MinutesApprovedPerMonth / 60); + // dc.RightValues[2] = String.Format("{0:0.00}", stats.MinutesApprovedTotal / 60); + + // dc.LeftValues[3] = String.Format("{0:0.00}", (stats.MinutesApprovedPerMonth - stats.MinutesProvidedThisMonth) / 60); + // dc.RightValues[3] = String.Format("{0:0.00}", (stats.MinutesApprovedTotal - stats.MinutesProvidedTotalRounded) / 60); + + // return dc; + // } + + // public ServiceRecordPeriodStatisticsInfoDC CreateServiceRecordPeriodStatisticsInfo(SupportConceptStatisticsDC stats, SupportConceptPeriodStatisticsDC periodStats, DateTime statisticsDate) + // { + // var dc = CreateDefaultServiceRecordPeriodStatisticsInfo(4); + + // if (periodStats.SupportConceptApprovalPeriod != null) + // { + // if (periodStats.SupportConceptApprovalPeriod.ServiceCategory != null) + // { + // dc.LeftValues[0] = String.Format("{0}: {1:dd.MM.yy} - {2:dd.MM.yy}", + // periodStats.SupportConceptApprovalPeriod.ServiceCategory.Name, + // periodStats.SupportConceptApprovalPeriod.StartDate, + // periodStats.SupportConceptApprovalPeriod.EndDate); + // } + // else + // { + // dc.LeftValues[0] = String.Format("{0:dd.MM.yy} - {1:dd.MM.yy}", + // periodStats.SupportConceptApprovalPeriod.StartDate, + // periodStats.SupportConceptApprovalPeriod.EndDate); + // } + // } + + // dc.LeftValues[1] = String.Format("{0:0.00}", periodStats.MinutesProvidedThisMonth / 60); + // dc.RightValues[1] = String.Format("{0:0.00}", periodStats.MinutesProvidedTotalRounded / 60); + + // dc.LeftValues[2] = String.Format("{0:0.00}", periodStats.MinutesApprovedPerMonth / 60); + // dc.RightValues[2] = String.Format("{0:0.00}", periodStats.MinutesApprovedTotal / 60); + + // dc.LeftValues[3] = String.Format("{0:0.00}", (periodStats.MinutesApprovedPerMonth - periodStats.MinutesProvidedThisMonth) / 60); + // dc.RightValues[3] = String.Format("{0:0.00}", (periodStats.MinutesApprovedTotal - periodStats.MinutesProvidedTotalRounded) / 60); + + // return dc; + // } + + // public override decimal GetApprovedMinutesPerMonth(SupportConceptPeriodStatisticsDC periodStats) + // { + // if (periodStats.SupportConceptApprovalPeriod != null && periodStats.SupportConceptApprovalPeriod.StartDate.HasValue && periodStats.SupportConceptApprovalPeriod.EndDate.HasValue) + // { + // if (periodStats.SupportConceptApprovalPeriod.ApprovedBEPerInterval.HasValue && periodStats.SupportConceptApprovalPeriod.ApprovedBEInterval.HasValue && periodStats.SupportConceptApprovalPeriod.ApprovedBEInterval.Value == SupportConceptApprovalInterval.Monthly) + // { + // return periodStats.SupportConceptApprovalPeriod.ApprovedBEPerInterval.Value * 60; + // } + // } + // return base.GetApprovedMinutesPerMonth(periodStats); + // } + // } +} diff --git a/ReportImp/HalteStelle/Validation/ServiceRecordValidator.cs b/ReportImp/HalteStelle/Validation/ServiceRecordValidator.cs new file mode 100644 index 000000000..3e394fda6 --- /dev/null +++ b/ReportImp/HalteStelle/Validation/ServiceRecordValidator.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using BeWo.Data; +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BeWo.Service.DCEntityMapper; +using BeWo.Service.Plugins; +using BS.Shared; +using BS.Shared.DataContracts; +using BS.Shared.Extensions; + +namespace TemplateNeuKunde.Validation +{ + //public class CustomServiceRecordValidator : ServiceRecordValidator + //{ + // public override string[] GetIgnoreCategoriesForOverlappingCheck() + // { + // return new[] { "Arbeitszeiterfassung" }; + // } + + + // public override List ValidateServiceRecord(ServiceRecordDC newServiceRecord, SupportConceptStatisticsDC statistics, + // int maxDaysEditServiceRecordsAllowed, IList employeeOids, IList cb2scOids) + // { + // var list = base.ValidateServiceRecord(newServiceRecord, statistics, maxDaysEditServiceRecordsAllowed, employeeOids, cb2scOids); + + // if (newServiceRecord.ServiceDescription.Category.IsBillable && newServiceRecord.RoundedDuration == 0) + // { + + // list.Add(new ServiceRecordValidationResultDC + // { + // ResultType = ServiceRecordValidationResult.Custom, + // Message = "Die Dauer muss größer als 0 sein." + // }); + + // } + + // var sd = newServiceRecord.ServiceDescription.Name.ToLower(); + // var cat = newServiceRecord.ServiceDescription.Category.Name.ToLower(); + + // if (cat.Contains("arztbesuch") || + // cat.Contains("krank") || + // cat.Contains("fortbildung") || + // cat.Contains("urlaub") || + // cat.Contains("indirekte zeiten") || + // (cat.Contains("betrieb") && cat.Contains("zeiten"))) + // { + // if (sd.Contains("abwesend")) + // { + + // list.Add(new ServiceRecordValidationResultDC + // { + // ResultType = ServiceRecordValidationResult.Custom, + // Message = "Dieser Eintrag kann nur von Fachleitungen oder Bereichsleitungen angelegt werden." + // }); + // } + // } + + + + // bool hasZukunftResult = false; + + // foreach (var r in list) + // { + // if (r.ResultType == ServiceRecordValidationResult.Custom && r.Message.Contains("Zukunft")) + // { + // hasZukunftResult = true; + // } + // } + // if (!hasZukunftResult) + // { + // if (newServiceRecord.End.Value > DateTime.Now.AddMinutes(20)) + // { + // list.Add(new ServiceRecordValidationResultDC + // { + // ResultType = ServiceRecordValidationResult.Custom, + // Message = "Das gewählte Datum darf nicht in der Zukunft liegen." + // }); + // } + // } + + + // return list; + // } + // } +} \ No newline at end of file diff --git a/ReportImp/HalteStelle/app.config b/ReportImp/HalteStelle/app.config new file mode 100644 index 000000000..677131bde --- /dev/null +++ b/ReportImp/HalteStelle/app.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file