This repository has been archived on 2025-05-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cardmarketbot/ConsoleApp3/InvoiceParser.cs

128 lines
4.9 KiB
C#

// See https://aka.ms/new-console-template for more information
using ConsoleApp3.DataContracts;
/*
*
* referalPage: /de/OnePiece
username: Skywalkerex
userPassword: Magnatpower310!!
/de/OnePiece/PostGetAction/User_Login
curbpJUJmtup1t.Tq0awbHIhIRwhzMW7vrsWxLAJu.pI9X4r
*/
namespace CardmarketBot
{
class InvoiceParser
{
Dictionary<Helper.Porto, decimal> PortoPreis = new Dictionary<Helper.Porto, decimal>()
{
{Helper.Porto.BRIEF085, 1.15m },
{Helper.Porto.BRIEF100, 1.30m },
{Helper.Porto.BRIEF160, 2.10m },
{Helper.Porto.BRIEF275, 3.25m },
{Helper.Porto.PRIO210, 2.60m },
{Helper.Porto.PRIO270, 3.20m }
};
private static string DateTimeConverter(string input)
{
//2023-06-20T11:30:00"
//2023-02-22T00:00:00.000+01:0
string datum = input.Substring(0, 10);
string uhrzeit = input.Substring(10, input.Length - 10);
input = string.Format("{0} {1}", datum, uhrzeit);
DateTime converted = Convert.ToDateTime(input);
var format = "yyyy-MM-ddTHH:mm:ssK";
string res = converted.ToString(format);
return string.Format("{0}.000+01:00", res);
}
List<Kunde> kunden;
public InvoiceParser(List<Kunde> kunden)
{
this.kunden = kunden;
}
public List<ModelRechnung> GetInvoices()
{
List<ModelRechnung> result = new List<ModelRechnung>();
foreach (Kunde kunde in kunden)
{
ModelRechnung temp = new ModelRechnung();
Invoice rechnung = new Invoice();
rechnung.Id = null;
rechnung.ObjectName = "Invoice";
//rechnung.InvoiceNumber = string.Format("RE-{0}", await GetNextInvoiceNumber()); => Should be done by services.
rechnung.InvoiceDate = kunde.Bezahldatum;
rechnung.Header = string.Format("Verkauf #{0}",kunde.BestellungID);
rechnung.HeadText = "Sehr geehrte Damen und Herren," +
"Wir stellen Ihnen für Ihre bestellung folgende Rechnung." +
"Bitte Beachte, dass der Lieferdatum die Bestelldatum entspricht.";
rechnung.FootText = "Ihre Rechnung ist bereits über Cardmarket beglichen worden.";
rechnung.TimeToPay = new DateTime(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.AddressCountry = new ModelStaticCountry()
{
Id = 1
};
//rechnung.PayDate = new DateTime(2019, 08, 24, 14, 15, 22);
rechnung.DeliveryDate = kunde.Bezahldatum;
rechnung.Status = EInvoiceStatus.OPEN;
rechnung.TaxRate = 19;
rechnung.TaxText = "Umsatzsteuer 19%";
rechnung.TaxType = "default";
rechnung.SendDate = kunde.Bezahldatum;
rechnung.InvoiceType = "RE";
rechnung.Contact = new ModelContact()
{
Id = 64055231,
ObjectName = "Contact"
};
temp.Invoice = rechnung;
temp.InvoicePosSaves = new InvoicePosSave[kunde.Artikels.Count + 1];
for(int i = 0; i < kunde.Artikels.Count; i++)
{
temp.InvoicePosSaves[i] = new InvoicePosSave()
{
Id = null,
MapAll = true,
Quantity = (uint)kunde.Artikels[i].Amount,
Name = string.Format("{0} ({1})", kunde.Artikels[i].ENGName, kunde.Artikels[i].Source),
PositionNumber = 0,
TaxRate = 19,
Price = Convert.ToDecimal(kunde.Artikels[i].Preis),
Discount = 0,
PriceGross = Convert.ToDecimal(kunde.Artikels[i].Preis),
PriceTax = 19
};
}
// Versandskosten
temp.InvoicePosSaves[temp.InvoicePosSaves.Length - 1] = new InvoicePosSave()
{
Id = null,
MapAll = true,
Quantity = 1,
Price = PortoPreis[kunde.Versandskosten],
Name = "Versandskosten",
PositionNumber = 0,
Discount = 0,
TaxRate = 19,
PriceGross = PortoPreis[kunde.Versandskosten],
PriceTax = 19
};
result.Add(temp);
}
return result;
}
}
}