diff --git a/Service/Import/AvisImport/AviseImporter.cs b/Service/Import/AvisImport/AviseImporter.cs index 2e34e6e50..880bbffdb 100644 --- a/Service/Import/AvisImport/AviseImporter.cs +++ b/Service/Import/AvisImport/AviseImporter.cs @@ -10,7 +10,6 @@ namespace BeWo.Service.Import.AvisImport { public class AviseImporter { - //Der Rückgabewert wird beim Client in einer Messagebox angezeigt public virtual String ImportAvise(List avise) { diff --git a/Service/Import/AvisImport/LvrAvisCsvReader.cs b/Service/Import/AvisImport/LvrAvisCsvReader.cs new file mode 100644 index 000000000..fe3bebd90 --- /dev/null +++ b/Service/Import/AvisImport/LvrAvisCsvReader.cs @@ -0,0 +1,77 @@ +using DevExpress.Pdf; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace BeWo.Service.Import.AvisImport +{ + public class LvrAvisCsvReader + { + public List LeseEinzelAvise(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 >= 15) + { + if (!String.IsNullOrEmpty(fields[0]) && !String.IsNullOrEmpty(fields[7])) + { + try + { + DateTime gueltigkeitsTag = DateTime.Now; + decimal betrag = 0m; + + var neuerAvis = new Avis(); + neuerAvis.Aktenzeichen = fields[0]; + decimal.TryParse(fields[7], out betrag); + neuerAvis.Betrag = betrag; + fields[12] = fields[12].Trim(); + if (!String.IsNullOrEmpty(fields[12])) + { + neuerAvis.Verwendungszweck = fields[12]; + var datumMonat = fields[12].Substring(fields[12].Length - 7, 2); + var datumJahr = fields[12].Substring(fields[12].Length - 4, 4); + if (int.TryParse(datumMonat, out int resultMonat) && int.TryParse(datumJahr, out int resultJahr)) + { + gueltigkeitsTag = new DateTime(resultJahr, resultMonat, 1); + } + else + { + if (DateTime.TryParse(fields[9], out DateTime resultHp)) + { + gueltigkeitsTag = resultHp; + } + } + } + else + { + neuerAvis.Verwendungszweck = fields[11]; + } + neuerAvis.GueltigkeitsDatum = gueltigkeitsTag; + neuerAvis.BuchungsDatum = DateTime.Now; + neuerAvis.Klient = fields[1] + ", " + fields[2]; + neuerAvis.Sachbearbeiter = fields[13] + ", " + fields[14]; + if (neuerAvis.Betrag != 0) + { + liste.Add(neuerAvis); + } + } + catch (Exception e) + { + //ignore + } + } + } + } + return liste; + } + } +} diff --git a/Service/Import/AvisImport/LvrAviseImporter.cs b/Service/Import/AvisImport/LvrAviseImporter.cs index 4b201c6ce..1d069395c 100644 --- a/Service/Import/AvisImport/LvrAviseImporter.cs +++ b/Service/Import/AvisImport/LvrAviseImporter.cs @@ -39,8 +39,6 @@ namespace BeWo.Service.Import.AvisImport public String ImportTextAvise(String text) { var reader = new LvrAvisTextReader(); - - var avise = reader.LeseAvise(text); return ImportAvise(avise); @@ -48,10 +46,11 @@ namespace BeWo.Service.Import.AvisImport public String ImportCsvAvise(String csv) { - // noch nicht implementiert - return null; - } - + var reader = new LvrAvisCsvReader(); + var avise = reader.LeseEinzelAvise(csv); + + return ImportAvise(avise); + } } } diff --git a/Service/Service.csproj b/Service/Service.csproj index 683989415..4f75c0466 100644 --- a/Service/Service.csproj +++ b/Service/Service.csproj @@ -417,6 +417,7 @@ +