Files
BeWoPlaner/Service/Import/AvisImport/LvrAvisCsvReader.cs
Christian 96e2265529 Bugfixing bei dem csv Avise Import:
- UTF8 Codierung berücksichtigen
- Gültigkeitsdatum wird nicht mehr aus dem Verwendungszweck sondern aus dem Field[9] gelesen
- übergebenes Buchungsdatum vom Client wird jetzt richtig gesetzt
2026-01-15 10:56:39 +01:00

72 lines
2.7 KiB
C#

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;
if (DateTime.TryParse(fields[9], out DateTime resultHp)) // es macht Sinn den letzten Monat (z.B. Spitzabrechnung) zu nehmen, aber eben wie oben auch den 1.
{
gueltigkeitsTag = new DateTime(resultHp.Year, resultHp.Month, 1);
}
fields[12] = fields[12].Trim();
if (!String.IsNullOrEmpty(fields[12]))
{
neuerAvis.Verwendungszweck = fields[12];
}
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;
}
}
}