Ich stehe monatlich vor der Gretchenfrage, wie man diese dämlichen Ebay-Rechnungen buchen soll. Inzwischen ist der Verein ja in Deutschland angesiedelt und seitdem passen Nettobetrag, Umsatzsteuer und Bruttobetrag nie zusammen. Das ganze ergibt sich natürlich aus den Rundungsdifferenzen der einzelnen Transaktionen.
Variante 1: Ich orientiere mich an dem Nettobetrag und rechne USt. und Brutto aus
Variante 2: Ich orientiere mich an dem Bruttobetrag und rechne USt. und Netto aus
Variante 3: Ich buche jede Transaktion separat, dann stimmt auch alles. Das sind dann rund 500 jeden Monat. Alles händisch, denn ein funktionierendes AWK-Script habe ich noch nicht zustande gebracht, welches die csv-Datei so zurechtschnitzt, dass sie verarbeitet werden kann (v.a. Datum ändern von "16. Sep. 2021 00:43:58 PDT" in "16.09.2021").
Man kann bei diesem Thema übrigens auch "Ebay" durch "Klarna" ersetzen. Andere Firma, gleiches Problem.
Wo macht das Finanzamt am wenigsten Theater? Oder hat jemand die nötigen Kenntnisse, das über GAWK zu machen?
Muss gestehen, dass ich es aufgegeben habe, bei eBay eine Antwort zu erhalten, warum sie was wie buchen und woher die Zahlen kommen. Weder telefonisch, noch per Mail noch schriftlich wurde sich dazu geäußert. Ich nehme mittlerweile stumpf die eBay Rechnung, mit deren Zahlen. Für alles andere wäre der Aufwand zu hoch. Die Rechnung habe ich schriftlich und die hat bisher auch das FA nicht beanstandet. Vielleicht auch deswegen, weil sich eBay nicht zu meinen Gunsten verrechnet.
FNR > 0 {
for (i = 1; i <= 42; i++)
array[count,i] = $i;
Betrag = array[count,10];
Betrag_mit_Dezimalpunkt = Betrag
sub(/ *\"$/, "", Betrag_mit_Dezimalpunkt) # Anführungszeichen am Ende des Betrags löschen
sub(/^\"/, "", Betrag_mit_Dezimalpunkt) # Anführungszeichen am Anfang des Betrags löschen
sub(/,/, ".", Betrag_mit_Dezimalpunkt) # Komma durch Punkt ersetzen
if (Betrag_mit_Dezimalpunkt < 0)
{
if (length (array[count,4]) > 5 && (substr(array[count,4], 2, 3) == "in " || substr(array[count,4], 2, 4) == "von "))
{
array[count,11] = email
name_alt = array[count,4]
sub(/ *\"$/, "", name_alt) # Leerzeichen und Anführungszeichen am Ende des Namens löschen
sub(/^\"/, "", name_alt) # Anführungszeichen am Anfang des Namens löschen
array[count,4] = sprintf("%s (%s)", name, name_alt)
}
else if (array[count,11] != "" && array[count,11] != "\"\"")
{
email = array[count,11];
name = array[count,4];
}
}
Betrag_mit_Dezimalpunkt = Betrag
sub(/ *\"$/, "", Betrag_mit_Dezimalpunkt) # Anführungszeichen am Ende des Betrags löschen
sub(/^\"/, "", Betrag_mit_Dezimalpunkt) # Anführungszeichen am Anfang des Betrags löschen
sub(/,/, ".", Betrag_mit_Dezimalpunkt) # Komma durch Punkt ersetzen
if (Betrag_mit_Dezimalpunkt >= 0)
{
if (length (array[line,4]) > 5 && (substr(array[line,4], 2, 3) == "in " || substr(array[line,4], 2, 4) == "von "))
{
array[line,11] = email
name_alt = array[line,4]
sub(/ *\"$/, "", name_alt) # Leerzeichen und Anführungszeichen am Ende des Namens löschen
sub(/^\"/, "", name_alt) # Anführungszeichen am Anfang des Namens löschen
array[line,4] = sprintf("%s (%s)", name, name_alt)
}
else if (array[line,11] != "" && array[line,11] != "\"\"")
{
email = array[line,11];
name = array[line,4];
}
}
Datum = array[line,1];
Beschreibung = array[line,4];
Belegnummer = array[line,13];
if (array[line,7] == "\"EUR\"" || array[line,7] == "EUR") # nur EUR-Zeilen ausgeben
{
#ursprüngliche Zeile:
#for (i = 1; i <= 42; i++)
# printf "%s;", array[line,i];
#print
Betrieb = "Mein Betrieb";
Bestandskonto = "PayPal für meinen Betrieb";
Konto = "Warenverkäufe";
Steuersatz = 19;
if (array[line,5] == "\"Abbuchung auf Bankkonto\"" || array[line,5] == "\"Allgemeine Abbuchung\"" ||
array[line,5] == "Abbuchung auf Bankkonto" || array[line,5] == "Allgemeine Abbuchung")
{
Konto = "/Transfers zwischen Bankkonten";
Beschreibung = "PayPal-Abbuchung auf Bankkonto"
Steuersatz = 0;
}
# Buchungen, die mit 0% Steuer gemacht werden müssen
switch (Beschreibung)
{
case /Pommeroy/:
case /Badalamenti/:
Konto = "Warenverkäufe Ausland"
Steuersatz = 0
break
case /Privateinkauf/:
case /Einlage/:
Steuersatz = 0;
if (Betrag_mit_Dezimalpunkt > 0)
{
Konto = "/Privateinlagen"
}
else
{
Konto = "/Privatentnahmen"
}
break;
case /Deutsche Post AG/:
Steuersatz = 0;
if (Betrag_mit_Dezimalpunkt > 0)
{
Konto = "Sonstige Betriebseinnahmen"
}
else
{
Konto = "Porto"
}
break;
case /Zulieferer/:
case /Servicedienstleister/:
Steuersatz = 0;
if (Betrag_mit_Dezimalpunkt > 0)
{
Konto = "Sonstige Betriebseinnahmen"
}
else
{
Konto = "Sonstige Betriebsausgaben"
}
break;
}
print Datum ";" Betrag ";" Beschreibung ";" Belegnummer ";" Konto ";" Steuersatz ";" Betrieb ";" Bestandskonto
}
}
Das Nervigste bei gawk ist die Umwandlung des Kommas als Dezimaltrenner in den Punkt. Außerdem sortiere ich hier die Reihenfolge um, wozu ich alles erstmal in ein array packe.
Oje, da muss ich erst mal die awk-Hilfe durchlesen, um das zu durchdringen. Aber danke schon mal für's posten, ich schaue mal, was ich draus machen kann.
Warum man (Ebay) auch immer alles komplizert machen muss. Das Datum ist so formatiert: "16. Mär. 2021 00:09:50 PDT"
Bis jetzt habe ich mich am Nettobetrag orientiert. Damit war ich dann mit der errechneten VSt. immer leicht unter der ausgewiesenen USt. So komme ich wenigstens nicht in Verdacht, das FA betuppen zu wollen.
Bearbeitet von JensF am 05.01.2022 15:15:24
Du musst dich einloggen um eine Nachricht zu senden.
mielket
14.10.2025 10:40:17
Naja, wäre EC&T nativ für MacOS entwickelt worden und man bräuche einen Mac-Emulator drumrum, damit es auf Windows läuft, gäbe es auch Reibungsverluste.
Thomas R
04.10.2025 11:39:18
Danke, ich weiß schon, warum ich lieber in der Win-Welt lebe.
mielket
04.10.2025 11:12:27
Der Plugin-Manager kann nur EC&T updaten, nicht das Crossover, das im EasyCT4Mac.zip Paket enthalten ist.
mielket
04.10.2025 11:09:47
nicht ganz: Das Problem war, dass der Fehler nicht in der EC&T-Software an sich steckte, sondern in der Windows-Simulation der Firma Codeweavers drum herum.
Thomas R
04.10.2025 07:48:12
@thomas_stahl Wenn du auf das Icon des Button "Plugin" klickst geht dein Wunsch in Erfüllung.
thomas_stahl
03.10.2025 20:43:01
Version 3.4. hat meine Druck-Probleme gelöst! Danke
thomas_stahl
03.10.2025 20:37:06
Warum gibt es keinen Button "Update" wo ich einfach die neueste version einfach Installieren kann?