- 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
72 lines
2.7 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|