Adresse parser aktualisiert

Es werden nun alle Bestellungen CSV dateien erstellt
ledig nicht alle Rechnungen werden angelegt.
This commit is contained in:
2023-07-23 13:52:37 +02:00
parent 324f01df5e
commit e44385473f
5 changed files with 36 additions and 12 deletions

View File

@@ -64,6 +64,7 @@ namespace CardmarketBot
List<string> ids = new List<string>(); List<string> ids = new List<string>();
List<Kunde> kunden = new List<Kunde>(); List<Kunde> kunden = new List<Kunde>();
List<string> bereitsbearbeitet = _usedRepository.Query;
IWebElement element; IWebElement element;
try try
{ {
@@ -71,13 +72,13 @@ namespace CardmarketBot
string content = element.Text; string content = element.Text;
List<string> bereitsbearbeitet = _usedRepository.Query;
string[] datas = content.Split("\r\n"); string[] datas = content.Split("\r\n");
for (int i = 8; i < datas.Length; i += 7) for (int i = 8; i < datas.Length; i += 7)
{ {
if (bereitsbearbeitet.Find(x => x.Equals(datas[i])) != null) continue; //if (bereitsbearbeitet.Find(x => x.Equals(datas[i])) != null) continue;
ids.Add(datas[i]); ids.Add(datas[i]);
} }
} }
@@ -96,6 +97,8 @@ namespace CardmarketBot
Kunde kunde = Helper.ConvertToKunde(element.Text); Kunde kunde = Helper.ConvertToKunde(element.Text);
if (bereitsbearbeitet.Find(x => x.Equals(id)) != null) kunde.Rechnungerstellt = true;
// Bezahldatum // Bezahldatum
element = cd.FindElement(By.XPath("/html/body/main/section/div/div[1]/div/div[2]/div/div[2]/div[2]")); element = cd.FindElement(By.XPath("/html/body/main/section/div/div[1]/div/div[2]/div/div[2]/div[2]"));
kunde.Bezahldatum = Helper.ConvertBezahlDatum(element.Text); kunde.Bezahldatum = Helper.ConvertBezahlDatum(element.Text);
@@ -125,8 +128,9 @@ namespace CardmarketBot
kunden.Add(kunde); kunden.Add(kunde);
Thread.Sleep(TimeSpan.FromSeconds(5)); Thread.Sleep(TimeSpan.FromSeconds(3));
} }
cd.Quit();
return kunden; return kunden;
} }
} }

View File

@@ -1,5 +1,8 @@
// See https://aka.ms/new-console-template for more information // See https://aka.ms/new-console-template for more information
using System.Diagnostics;
using System.Text.RegularExpressions;
static class Helper static class Helper
{ {
public enum Porto public enum Porto
@@ -27,13 +30,25 @@ static class Helper
datas = adresseUNDHausnummer.Split(" "); datas = adresseUNDHausnummer.Split(" ");
string strasse = ""; string strasse = "";
for (int i = 0; i < datas.Length - 1; i++) string hausnummer = "";
Trace.WriteLine(datas.Length);
if (datas.Length <= 1)
{ {
strasse += datas[i] + " "; Regex myRegex = new Regex("[0-9]*$");
var matched = myRegex.Match(adresseUNDHausnummer);
strasse = adresseUNDHausnummer.Substring(0, matched.Index);
hausnummer = adresseUNDHausnummer.Substring(matched.Index);
}
else
{
for (int i = 0; i < datas.Length - 1; i++)
{
strasse += datas[i] + " ";
}
strasse = strasse.Trim();
hausnummer = datas[datas.Length - 1];
} }
strasse = strasse.Trim();
string hausnummer = datas[datas.Length - 1];
return new Kunde(name, strasse, hausnummer, plz, ort, land); return new Kunde(name, strasse, hausnummer, plz, ort, land);
} }

View File

@@ -42,7 +42,7 @@ namespace CardmarketBot
List<Kunde> kunden; List<Kunde> kunden;
public InvoiceParser(List<Kunde> kunden) public InvoiceParser(List<Kunde> kunden)
{ {
this.kunden = kunden; this.kunden = kunden.FindAll(x => x.Rechnungerstellt != true);
} }
public List<ModelRechnung> GetInvoices() public List<ModelRechnung> GetInvoices()
@@ -62,7 +62,7 @@ namespace CardmarketBot
"wir stellen Ihnen für ihre Bestellung folgende Rechnung. " + "wir stellen Ihnen für ihre Bestellung folgende Rechnung. " +
"Bitte Beachte, dass das Lieferdatum dem Bestelldatum entspricht."; "Bitte Beachte, dass das Lieferdatum dem Bestelldatum entspricht.";
rechnung.FootText = "Ihre Rechnung ist bereits über Cardmarket beglichen worden."; rechnung.FootText = "Ihre Rechnung ist bereits über Cardmarket beglichen worden.";
rechnung.TimeToPay = new DateTime(14); rechnung.TimeToPay = new DateTime().AddDays(14);
rechnung.Discount = 0; rechnung.Discount = 0;
rechnung.Address = string.Format("{0}\n{1} {2}\n{3} {4}", kunde.Name, kunde.Strasse, kunde.Hausnummer, kunde.Plz, kunde.Ort); //"Damian Wessels\nDät Haartje 27A\n26683 Saterland"; rechnung.Address = string.Format("{0}\n{1} {2}\n{3} {4}", kunde.Name, kunde.Strasse, kunde.Hausnummer, kunde.Plz, kunde.Ort); //"Damian Wessels\nDät Haartje 27A\n26683 Saterland";
rechnung.AddressCountry = new ModelStaticCountry() rechnung.AddressCountry = new ModelStaticCountry()

View File

@@ -11,6 +11,7 @@ class Kunde
string plz; string plz;
string ort; string ort;
string land; string land;
bool rechnungerstellt = false;
List<Artikel> artikels = new List<Artikel>(); List<Artikel> artikels = new List<Artikel>();
public DateTime Bezahldatum { get; set; } public DateTime Bezahldatum { get; set; }
@@ -40,6 +41,8 @@ class Kunde
} }
} }
public bool Rechnungerstellt { get => rechnungerstellt; set => rechnungerstellt = value; }
public Kunde(string Name, string Strasse, string Hausnummer, string PLZ, string Ort, string Land) public Kunde(string Name, string Strasse, string Hausnummer, string PLZ, string Ort, string Land)
{ {
name = Name; name = Name;

View File

@@ -1,6 +1,8 @@
using ConsoleApp3.DataContracts; using ConsoleApp3.DataContracts;
using ConsoleApp3; using ConsoleApp3;
using ConsoleApp3.Contracts; using ConsoleApp3.Contracts;
using System.Text.RegularExpressions;
using System.Diagnostics;
namespace CardmarketBot namespace CardmarketBot
{ {
@@ -8,7 +10,6 @@ namespace CardmarketBot
{ {
static void Main(string[] args) static void Main(string[] args)
{ {
IUsedRepository usedRepository = new UsedRepository(); IUsedRepository usedRepository = new UsedRepository();
@@ -26,7 +27,7 @@ namespace CardmarketBot
foreach (var item in rechnungen) foreach (ModelRechnung item in rechnungen)
{ {
SevdeskService sevdeskService = new SevdeskService("7251554968610b78ca865b2b774b4134"); SevdeskService sevdeskService = new SevdeskService("7251554968610b78ca865b2b774b4134");
sevdeskService.Create(item); sevdeskService.Create(item);
@@ -42,6 +43,7 @@ namespace CardmarketBot
Console.WriteLine("Fertig"); Console.WriteLine("Fertig");
Console.ReadLine(); Console.ReadLine();
} }
} }
} }