]> gitweb.pimeys.fr Git - scripts-20-100.git/blobdiff - bde/solde_date.py
[bde] Shortcuts utiles++
[scripts-20-100.git] / bde / solde_date.py
diff --git a/bde/solde_date.py b/bde/solde_date.py
new file mode 100755 (executable)
index 0000000..dfacdd4
--- /dev/null
@@ -0,0 +1,33 @@
+#!/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