Import Einnahme/Ausgabe
|
payday |
Geschrieben am 18.07.2014 22:40:04
|

Mitglied
Beiträge: 39
Registriert am: 02.12.2013
|
Gibt es eine Möglichkeit wie ich negative Gegenbuchungen auf ein Einahmekonto importieren kann und umgekehrt?
In meiner csv-Datei gibt es positive und negative Beträge die auf ein Einnahmekonto gebucht werden sollen (die negativen Beträge als negative Gegenbuchung auf das Einnahmekonto). Wenn ich bei Ein/Aus die Option "Entsprechend Vorzeichen" einstelle werden die positiven Beträge auf das Einnahmekonto gebucht und die negativen Beträge auf ein Ausgabenkonto mit der selben Bezeichnung. Ich möchte aber, dass auch die negativen Beträge auf das Einnahmekonto als Gegenbuchung gebucht werden. Natürlich gibt es in der csv-Datei auch den umgekehrten Fall (positive Gegenbuchung auf ein Ausgabenkonto), so dass ich nicht einfach bei Ein/Aus "nur Einnahme" oder "nur Ausgabe" einstellen kann.
csv-Beispiel:
Rechnungsnummer;Konto;Betrag;Buchungstext;UST
R2014/44444;Umsatzsteuerpflichtige Betriebseinnahmen;102,88;Warenverkauf;19
G2014/44444;Umsatzsteuerpflichtige Betriebseinnahmen;-102,88;Rechnungskorrektur;19
Im Moment filtere ich alle Gegenbuchungen vorher manuell raus und importiere Sie dann extra. Gibt es eine einfachere Möglichkeit?
Es wäre schön, wenn es eine Einstellmöglichkeit geben würde, dass man ein Konto als Einnahme- bzw. Ausgabekonto festlegt und dann alle negativen bzw. positiven Beträge beim Import auf dieses Konto als Gegenbuchung erfasst werden.
Bearbeitet von payday am 19.07.2014 11:34:45
|
|
|
|
mielket |
Geschrieben am 19.07.2014 13:16:40
|

Seiten Administrator
Beiträge: 2684
Registriert am: 08.02.2005
|
Genau für solche Fälle gibt es GAWK-Scripting.
Das müsste in etwa so aussehen:
# Feldtrennzeichen festlegen
BEGIN { FS=";"; }
# für jede Zeile filtern:
{
betrag = $3;
buchungstext = $4;
# Zeile übernehmen wenn positiver Betrag bzw. negativer Betrag und dabei "Rechnungskorrektur" im Buchungstext -- dabei Kopfzeile (FNR == 0) immer replizieren
if (substr(betrag, 0, 1) != "-" || (buchungstext == "Rechnungskorrektur" && substr(betrag, 0, 1) == "-") || FNR == 0)
{
print $0
anzahl_extrahiert = anzahl_extrahiert + 1;
}
anzahl_zeilen = anzahl_zeilen + 1;
}
# kleine Statistik am Ende
END { print anzahl_zeilen " Zeilen verarbeitet und" anzahl_extrahiert " daraus extrahiert"> "/dev/stderr" } Für den Ausgaben-Filter einfach das '!=' in ein '==' und das das '==' in ein '!=' umwandeln.
Bearbeitet von mielket am 19.07.2014 13:20:11
|
|
|
|
payday |
Geschrieben am 19.07.2014 13:41:38
|

Mitglied
Beiträge: 39
Registriert am: 02.12.2013
|
Vielen Dank für den Hinweis auf GAWK und das Script. Das hilft mit schon etwas weiter und vereinfacht das extrahieren der entsprechenden Buchungen. Richtig glücklich macht mich die Sache allerdings leider noch nicht, da ich dann wieder mehrmals importieren und mit verschiedenen csv-Datein und GAWK-Scripten arbeiten muss.
Eventuell ist das ja eine Idee die in einer zukünftigen Version berücksichtigt werden kann. Also eine Option beim Import, dass auf ein bestehendes Einnahmekonto bzw. Ausgabekonto sowohl positive als auch negative Beträge gebucht werden können. |
|
|
|
mielket |
Geschrieben am 19.07.2014 20:04:49
|

Seiten Administrator
Beiträge: 2684
Registriert am: 08.02.2005
|
Du könntest natürlich ein neues Feld in die Ausgabe-CSV einfügen mit E für Einnahmen und A für Ausgaben und im Plugin statt "(Nur Einnahmen)" oder "(Nur Ausgaben)" dieses Feld auswählen und rechts von der Auswahl-Dropdown-Box "E" und "A" Kürzel definieren... |
|
|
|
mielket |
Geschrieben am 19.07.2014 20:07:16
|

Seiten Administrator
Beiträge: 2684
Registriert am: 08.02.2005
|
Zitat payday geschrieben:
Eventuell ist das ja eine Idee die in einer zukünftigen Version berücksichtigt werden kann. Also eine Option beim Import, dass auf ein bestehendes Einnahmekonto bzw. Ausgabekonto sowohl positive als auch negative Beträge gebucht werden können.
Das Problem ist hier: Woher soll das Plugin wissen, ob eine Zeile als Einnahme oder aber als Ausgabe gemeint ist. Da führt leider kein Weg darum herum, das mit hilfe eines intelligenten Scripts festzulegen. |
|
|
|
payday |
Geschrieben am 19.07.2014 22:58:19
|

Mitglied
Beiträge: 39
Registriert am: 02.12.2013
|
Das mit dem extra Feld E für Einnahme und A für Ausgabe habe ich mir auch schon überlegt, aber da ist leider der Aufwand noch größer als die einzelnen betroffenen Buchungen rauszufiltern.
Gedacht habe ich mir die Option so, dass das Import-Script anhand des Kontos entscheidet ob Einnahme oder Ausgabe. Ist das Konto als Einnahmekonto angelegt und definiert, dann sollen alle Beträge, sowohl positiv wie negativ, auf dieses Einnahmekonto gebucht werden bzw. es soll kein extra Ausgabekonto mit der selben Bezeichnung erstellt werden auf dem die negativen Beträge landen. |
|
|
|
mielket |
Geschrieben am 20.07.2014 10:52:30
|

Seiten Administrator
Beiträge: 2684
Registriert am: 08.02.2005
|
Es ist theoretisch möglich Einnahmen- und Ausgaben-Konten mit gleichem Namen zu anzulegen. Z.B. habe ich hier eines namens "/Transfer".
Mit dem angehängten Script kann ein neues Feld in der CSV-Datei erzeugt werden, das den Typ enthält, 'E' oder 'A', |
|
|
|
payday |
Geschrieben am 20.07.2014 11:06:36
|

Mitglied
Beiträge: 39
Registriert am: 02.12.2013
|
Vielen Dank für das Script, ich werde es mal ausprobieren.
Wenn es ein Einnahmen- und Ausgaben-Konten mit gleichem Namen gibt könnte man so wie bisher verfahren positive Beträge als Einahmen und negative Beträge als Ausgaben. |
|
|
|
mielket |
Geschrieben am 20.07.2014 13:59:56
|

Seiten Administrator
Beiträge: 2684
Registriert am: 08.02.2005
|
Das wäre so eine Heuristik, ja... Aber überall bei Software, wo etwas nicht klar geregelt ist, gibt es über kurz oder lang immer wieder Probleme, weil es bei jeder Krücke, die man dranbaut komplexer und unübersichtlicher wird.
Bei der Vielfalt an CSV-Varianten gibt es natürlich notwendiger Weise Komplexität. Aber die Fallweise in individuellen Scripten aufzufangen ist meiner Meinung die beste Art damit umzugehen.
Ich habe das Script noch nicht getestet. Sag mal bescheid, ob es funktioniert. Wenn nicht, maile mir mal eine live CSV-Datei von Dir. |
|
|