Service/Import/AvisImport/LvrAvisCsvReader.cs - Import der csv Dateien

This commit is contained in:
2025-06-04 16:12:58 +02:00
parent 01aada16b5
commit 1adbca0e52
4 changed files with 83 additions and 7 deletions

View File

@@ -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<Avis> avise)
{

View File

@@ -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<Avis> LeseEinzelAvise(string importfile)
{
List<Avis> liste = new List<Avis>();
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;
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -417,6 +417,7 @@
<Compile Include="Import\AvisImport\LvrAviseImporter.cs" />
<Compile Include="Import\AvisImport\AviseImporter.cs" />
<Compile Include="Import\AvisImport\HilfeplanInfo.cs" />
<Compile Include="Import\AvisImport\LvrAvisCsvReader.cs" />
<Compile Include="Import\AvisImport\LvrAvisTextReader.cs" />
<Compile Include="Import\AvisImport\LvrAvisTextAbschnittReader.cs" />
<Compile Include="Import\AvisImport\LvrAvisMonatGesamt.cs" />