]> gitweb.pimeys.fr Git - scripts-20-100.git/blob - bde/stats/all_past.py
[all_past] Récupérer les gains/dépenses de tous les comptes dans le passé
[scripts-20-100.git] / bde / stats / all_past.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 """Pour récupérer les soldes des comptes à plusieurs moments du passé."""
5
6 import depenses
7
8 def get_idbdes():
9 """Récupère les idbdes de tous les comptes."""
10 con, cur = depenses.get_cursor()
11 cur.execute("SELECT idbde FROM comptes WHERE idbde >= 0;")
12 l = cur.fetchall()
13 l = [i[0] for i in l]
14 return l
15
16 def line_csv(idbde, li):
17 """Renvoie la liste ``li`` comme une ligne de fichier csv"""
18 return "%s;%s;%s;%s;%s\n" % (idbde, int(li[0]), int(li[1]), '"%s"' % (li[2],), '"%s"' % (li[3],))
19
20 def to_csv(data, path):
21 """Écrit le csv."""
22 f = open(path, "w")
23 f.write('''N° de compte;Année;Mois;Dépenses;Gains\n''')
24 idbdes = data.keys()
25 idbdes.sort()
26 for i in idbdes:
27 datai = data[i]
28 for l in datai:
29 f.write(line_csv(i, l))
30 f.close()
31
32 def get_all(idbdes, verbose=False):
33 """Récupère toutes les données."""
34 data = {}
35 if verbose:
36 print "Dernier idbde : %s" % (max(idbdes),)
37 for i in idbdes:
38 data[i] = depenses.get_depenses(i, bymonth=True)[0]
39 if i % 100 == 0:
40 if verbose:
41 print i
42 return data
43
44 if __name__ == "__main__":
45 idbdes = get_idbdes()
46 data = get_all(idbdes, verbose=True)
47 to_csv(data, "all_past.csv")