--- /dev/null
+#!/usr/bin/python
+# -*- coding:utf8 -*-
+
+""" Codé par 20-100 le 21/04/12
+
+ sert à connaître le solde d'un comtpe à une date t donnée."""
+
+import sys
+import psycopg2,psycopg2.extras
+
+con=psycopg2.connect(database='bde')
+cur=con.cursor(cursor_factory=psycopg2.extras.DictCursor)
+
+try:
+ numcbde=int(sys.argv[1])
+ date=" ".join(sys.argv[2:])
+ #on checke que ça se comprend comme une date
+ if date in ["now","maintenant","today"]:
+ date="now()"
+ else:
+ cur.execute("SELECT CAST(%s AS timestamp);",(date,))
+except Exception, exc:
+ print "Usage : solde_date numcbde date\nDonne le solde de l'adhérent numcbde à la date donnée."
+ exit(1)
+
+cur.execute("SELECT sum(montant*quantite) FROM transactions WHERE valide=true AND destinataire=%s AND date<CAST(%s AS timestamp)"
+ ,(numcbde,date))
+received=cur.fetchone()[0]
+cur.execute("SELECT sum(montant*quantite) FROM transactions WHERE valide=true AND emetteur=%s AND date<CAST(%s AS timestamp)"
+ ,(numcbde,date))
+given=cur.fetchone()[0]
+
+print received-given