]>
gitweb.pimeys.fr Git - scripts-20-100.git/blob - bde/all_date.py
2 # -*- encoding: utf-8 -*-
5 Pour récupérer les soldes de tous les comptes à une date donnée
6 et éventuellement les sommer.
11 import psycopg2
.extras
18 def get_idbdes(include_bde
=False, with_personnes
=True, with_clubs
=True):
19 """Récupère les idbdes de tous les comptes."""
20 req_template
= "SELECT idbde FROM comptes WHERE idbde %s 0 AND type = ANY (%%s);"
22 req
= req_template
% ">="
24 req
= req_template
% ">"
29 types
.append("personne")
30 con
, cur
= base
.getcursor()
31 cur
.execute(req
, (types
,))
37 """Calcule les solde de tous les comptes à ``date``"""
38 idbdes
= get_idbdes(args
.bde
, args
.personnes
, args
.clubs
)
40 nbchiffres
= len(str(nb
))
41 template
= "\r%%%ss/%%s" % nbchiffres
43 for (i
, idbde
) in enumerate(idbdes
):
44 soldes
[idbde
] = solde_date
.get_solde_date(idbde
, args
.date
)
45 if (i
+ 1) % 10 == 0 and not args
.quiet
:
46 sys
.stdout
.write(template
% (i
+ 1, nb
))
49 sys
.stdout
.write(template
% (i
+ 1, nb
))
55 parser
= argparse
.ArgumentParser(description
=__doc__
)
57 parser
.add_argument('-c', '--clubs', help="Inclure les clubs dans le calcul", action
="store_true")
58 parser
.add_argument('-p', '--personnes', help="Inclure les personnes dans le calcul", action
="store_true")
59 parser
.add_argument('-b', '--bde', help="Inclure le compte BDE dans le calcul", action
="store_true")
60 parser
.add_argument('-s', '--sum', help="Afficher les sommes", action
="store_true")
61 parser
.add_argument('-v', '--verbose', help="Afficher les soldes de tous les comptes", action
="store_true")
62 parser
.add_argument('-q', '--quiet', help="Ne pas afficher la progression", action
="store_true")
64 parser
.add_argument("date", type=str, help="La date à laquelle on veut faire le calcul")
66 if __name__
== "__main__":
67 args
= parser
.parse_args()
73 pos
= sum([s
for (i
, s
) in soldes
.iteritems() if s
> 0])
74 print "Total des soldes positifs : %s" % pos
75 neg
= sum([s
for (i
, s
) in soldes
.iteritems() if s
< 0])
76 print "Total des soldes négatifs : %s" % neg