]> gitweb.pimeys.fr Git - scripts-20-100.git/commitdiff
[all_past] Récupérer les gains/dépenses de tous les comptes dans le passé
authorVincent Le Gallic <legallic@crans.org>
Sun, 15 Feb 2015 17:43:35 +0000 (18:43 +0100)
committerVincent Le Gallic <legallic@crans.org>
Sun, 15 Feb 2015 17:43:35 +0000 (18:43 +0100)
bde/stats/all_past.py [new file with mode: 0755]

diff --git a/bde/stats/all_past.py b/bde/stats/all_past.py
new file mode 100755 (executable)
index 0000000..75f1b1d
--- /dev/null
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""Pour récupérer les soldes des comptes à plusieurs moments du passé."""
+
+import depenses
+
+def get_idbdes():
+    """Récupère les idbdes de tous les comptes."""
+    con, cur = depenses.get_cursor()
+    cur.execute("SELECT idbde FROM comptes WHERE idbde >= 0;")
+    l = cur.fetchall()
+    l = [i[0] for i in l]
+    return l
+
+def line_csv(idbde, li):
+    """Renvoie la liste ``li`` comme une ligne de fichier csv"""
+    return "%s;%s;%s;%s;%s\n" % (idbde, int(li[0]), int(li[1]), '"%s"' % (li[2],), '"%s"' % (li[3],))
+
+def to_csv(data, path):
+    """Écrit le csv."""
+    f = open(path, "w")
+    f.write('''N° de compte;Année;Mois;Dépenses;Gains\n''')
+    idbdes = data.keys()
+    idbdes.sort()
+    for i in idbdes:
+        datai = data[i]
+        for l in datai:
+            f.write(line_csv(i, l))
+    f.close()
+
+def get_all(idbdes, verbose=False):
+    """Récupère toutes les données."""
+    data = {}
+    if verbose:
+        print "Dernier idbde : %s" % (max(idbdes),)
+    for i in idbdes:
+        data[i] = depenses.get_depenses(i, bymonth=True)[0]
+        if i % 100 == 0:
+            if verbose:
+                print i
+    return data
+
+if __name__ == "__main__":
+    idbdes = get_idbdes()
+    data = get_all(idbdes, verbose=True)
+    to_csv(data, "all_past.csv")