]>
gitweb.pimeys.fr Git - scripts-20-100.git/blob - bde/compta/sum_transacs_by_categorie.py
5 Affiche les gains BDE par mois et par catégorie.
7 Une catégorie est définie par une liste de descriptions.
8 Le script mange donc une liste de fichiers contenant une description par ligne.
15 def get_sum(descriptions
, debut
, fin
):
17 Récupère le montant total des transactions reçue par le BDE dans ayant
18 leur descrption dans ``descriptions``
21 SELECT COALESCE(sum(quantite*montant), 0) AS s
28 AND description = ANY (%(descriptions)s);
30 con
, cur
= base
.getcursor()
31 cur
.execute(req
, {"debut" : debut
+ ' 00:00:00', "fin" : fin
+ ' 00:00:00', "descriptions" : descriptions
})
32 s
= cur
.fetchone()["s"] or 0
35 def get_dates(y
, m
, d
, yf
, mf
, df
):
37 Donne les dates de découpage de ``d``/``m``/``y`` à ``d-1``/``m``/``y+1``.
39 dates
= ["%d-%02d-%02d" % (y
, m
, d
)]
44 while (y
, m
) <= (yf
, mf
):
45 dates
.append("%d-%02d-01" % (y
, m
))
50 # On a atteint le dernier mois
51 dates
.append("%d-%02d-%02d" % (yf
, mf
, df
))
54 def get_year_sums(dates
, filename
):
56 Récupère les données sur l'année pour une catégorie.
58 descriptions
= open(filename
).readlines()
59 descriptions
= [d
.rstrip('\n') for d
in descriptions
]
61 for id in range(len(dates
) - 1):
62 ddebut
, dfin
= dates
[id], dates
[id + 1]
63 sums
.append(get_sum(descriptions
, ddebut
, dfin
))
71 yf
, mf
, df
= 2016, 2, 19
72 dates
= get_dates(y
, m
, d
, yf
, mf
, df
)
75 ys
[fn
] = get_year_sums(dates
, fn
)
76 print "debut\tfin\t" + "\t".join(filenames
)
77 for id in range(len(dates
) - 1):
78 ddebut
, dfin
= dates
[id], dates
[id + 1]
79 print "%s\t%s\t%s" % (
82 "\t".join([str(ys
[fn
][id]) for fn
in filenames
])
86 print "%s-%s-%s\t %s-%s-%s\t %s" % (y
, m
, d
, yf
, mf
, df
,
87 "\t".join([str(sum(ys
[fn
])) for fn
in filenames
]),)
89 print str(sum([sum(ys
[fn
]) for fn
in filenames
]))
91 if __name__
== "__main__":
92 filenames
= sys
.argv
[1:]