]>
gitweb.pimeys.fr Git - scripts-20-100.git/blob - bde/combiennegs.py
c6f43fbf51d2e9ab511959571d32b06cd192b624
2 # -*- encoding: utf-8 -*-
4 """ Pour savoir combien de fois les gens sont passés en négatif """
11 def get_data(con
, year
):
12 cur
= con
.getcursor(cursor_factory
= psycopg2
.DictCursor
)
13 cur
.execute("SELECT * FROM transactions ORDER BY date ASC;")
14 transactions
= cur
.fetchall()
15 cur
.execute("SELECT adherent FROM inscriptions WHERE annee = %s;", (year
,))
16 numcbdes
= cur
.fetchall()
17 return (numcbdes
, transactions
)
19 def combienneg(numcbdes
, alltrans
):
20 soldes
= {n
: 0 for n
in numcbdes
}
21 nbnegs
= {n
: 0 for n
in numcbdes
}
22 for trans
in [t
for t
in alltrans
if t
["valide"]]:
23 for (num
, signe
) in [(t
["emetteur"], -1), (t
["destinataire"], 1)]:
24 newsolde
= soldes
[num
] + t
["montant"] * t
["quantite"] * signe
25 if soldes
[num
] >= 0 and newsolde
< 0:
27 soldes
[num
] += newsolde
30 if __name__
== "__main__":
31 con
= psycopg2
.connect("bde")
32 numcbdes
, transactions
= get_data(con
, year
)
33 nbnegs
= combienneg(numcbdes
, transactions
)