Grundlage ist, dass ich bei der Sparkasse eine Liste von Buchungen herunterladen kann. Der Kontoabschluß stellt den "Kontoendstand" dar. Von dem aus wird zu jeder Buchung ein Buchungsergebnis errechnet.
Später wird aus diesen Buchungsergebnissen ein 2D-Plot erzeugt.
Dies ist eine, nur zum Testen, ausgelagerte Routine, die mir bis hier hin viel Kopfzerbrechen bereitet hat. Aber jetzt funktioniert sie.
Die Zeilen Nummern sind nur für mich da, um die Ausgabe mit meinem Wunschergebnis besser vergleichen zu können.
Schaut mal drüber, wo gibt es noch Verbesserungen?
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
KONTO_STARTSTAND = 0
KONTO_ENDSTAND = 1000.00
BUCHUNGEN = [-15.00, -100.00, -40.00, 500.00, -350.00]
""" Erwartetes Ergebnis:
Rechnung ausgehend vom KONTO_ENDSTAND = 1000.0
Zeile Nr | Buchung | Ergebnis der Buchung
------------+----------+----------------------
1 | -15.00, | 990.0
2 | -100.00, | 890.0
3 | -40.00, | 850.0
4 | 500.00, | 1350.0
5 | -350.00 | 1000.0
Danach sollte KONTO_STARTSTAND = 1005.0 sein."""
def main(startstand, buchungen, endstand):
ergebnis = []
for i, elem in enumerate(reversed(buchungen)):
if i > 0:
ergebnis.insert(0,
[len(buchungen)-i,
elem,
ergebnis[0][2] - ergebnis[0][1] ]
)
else:
# Setze in letzte Zeile den endstand ein
ergebnis.append([len(buchungen), buchungen[-1],endstand])
startstand = ergebnis[0][2] - ergebnis[0][1]
print "ergebnis: ", ergebnis
print "startstand: ", startstand
if __name__ == '__main__':
main(KONTO_STARTSTAND, BUCHUNGEN, KONTO_ENDSTAND)
Code: Alles auswählen
snede@knecht:~/Dokumente/konto$ python "calc_absolute_betraege.py"
ergebnis: [[1, -15.0, 990.0], [2, -100.0, 890.0], [3, -40.0, 850.0], [4, 500.0, 1350.0], [5, -350.0, 1000.0]]
startstand: 1005.0