]> gitweb.pimeys.fr Git - scripts-20-100.git/commitdiff
[bde] Rangement
authorVincent Le Gallic <legallic@crans.org>
Mon, 30 Sep 2013 12:47:49 +0000 (14:47 +0200)
committerVincent Le Gallic <legallic@crans.org>
Mon, 30 Sep 2013 12:47:49 +0000 (14:47 +0200)
.gitignore
bde/integrite/fix_integrity.py [deleted file]
bde/integrite/integrite_solde.py [deleted file]
bde/integrite/memo [deleted file]
bde/old/integrite/fix_integrity.py [new file with mode: 0755]
bde/old/integrite/integrite_solde.py [new file with mode: 0755]
bde/old/integrite/memo [new file with mode: 0644]

index da66d2ec084aa6d7177f701bf6b299cd107bec81..d4a249860257a8fc0885a5bf0338ceb20e5ea13c 100644 (file)
@@ -19,4 +19,4 @@ newsbot/dicoread.txt
 ssh/plouf.json
 color_output
 test_color_output
-bde/integrite/*.sql
+bde/old/integrite/*.sql
diff --git a/bde/integrite/fix_integrity.py b/bde/integrite/fix_integrity.py
deleted file mode 100755 (executable)
index 9324600..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/python
-# -*- coding:utf8 -*-
-
-""" Codé pour rétablir l'intégrité de la BDD.
-    
-    Pour générer des transactions dans le passé
-    pour les gens qui n'avaient pas commencé avec un solde nul.
-"""
-
-import psycopg2, psycopg2.extras
-
-con = psycopg2.connect(database="bde", connection_factory=psycopg2.extras.DictConnection)
-cur = con.cursor()
-
-from commands import getstatusoutput as ex
-import os
-import sys
-
-req="""SELECT numcbde,pseudo,gagne-perdu as calcul,effectif,effectif-(gagne-perdu) as a_enlever 
-FROM
-  (SELECT numcbde,pseudo,
-    (SELECT COALESCE(sum(montant*quantite), 0)
-     FROM transactions
-     WHERE destinataire=main.numcbde AND valide='t') as gagne,
-    (SELECT COALESCE(sum(montant*quantite), 0)
-     FROM transactions
-     WHERE emetteur=main.numcbde AND valide='t') as perdu,
-    (SELECT solde
-     FROM adherents WHERE numcbde=main.numcbde) as effectif
-   FROM adherents as main)
-AS calculs
-WHERE gagne-perdu!=effectif AND numcbde>0 ORDER BY numcbde;"""
-
-cur.execute(req)
-
-l = cur.fetchall()
-
-f=open("request_fixing.sql", "w")
-f.write("ALTER TABLE transactions DISABLE TRIGGER ALL;\n")
-for bug in l:
-    to_credit = bug["effectif"] - bug["calcul"]
-    if to_credit > 0:
-        emet, dest = 0, bug["numcbde"]
-    elif to_credit < 0:
-        emet, dest = bug["numcbde"], 0
-    f.write("INSERT INTO transactions (conso, emetteur, destinataire, montant, quantite, remarque) VALUES (1, %s, %s, %s, 1, 'Solde initial');\n" % (emet, dest, abs(to_credit)))
-    # En fait à cause des solde négatifs, il faut DISABLE les triggers, donc on n'a pas besoin d'update après
-    #f.write("UPDATE adherents SET solde=solde - (%s) WHERE numcbde=%s;\n" % (to_credit, bug["numcbde"]))
-
-f.write("ALTER TABLE transactions ENABLE TRIGGER ALL;\n")
-f.close()
diff --git a/bde/integrite/integrite_solde.py b/bde/integrite/integrite_solde.py
deleted file mode 100755 (executable)
index fa49ac3..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env python
-# -*- coding:Latin-1 -*-
-
-""" Liste les adhérents, fait la somme de leurs transactions et regarde la différence avec le solde actuel.
-    Broken, apparemment."""
-
-
-import os
-
-l=os.popen("psql bde -c \"SELECT numcbde,gagne-perdu as calcul,effectif,effectif-(gagne-perdu) as a_enlever FROM (SELECT numcbde,(SELECT sum(montant*quantite) FROM transactions WHERE destinataire=main.numcbde AND valide='t') as gagne,(SELECT sum(montant*quantite) FROM transactions WHERE emetteur=main.numcbde AND valide='t') as perdu, (SELECT solde FROM adherents WHERE numcbde=main.numcbde) as effectif FROM adherents as main) AS calculs WHERE gagne-perdu!=effectif;\"").readlines()
-
-g=[]
-print l
-for i in l[1:-3]:
-  i=i.strip().split()
-  print i
-  g.append([i[0],i[2],i[4],i[6]])
-
-f=open("requêtes à effectuer.txt","w")
-for i in g:
-  montant = eval(i[3])
-  if montant>0:
-    f.write("INSERT INTO transactions (date,conso,emetteur,destinataire,montant,quantite,remarque) VALUES ('1970-01-01 00:13:37',1,0,%s,%s,1,'Solde initial');\n"%(i[0],i[3]))
-  elif montant<0:
-    f.write("INSERT INTO transactions (date,conso,emetteur,destinataire,montant,quantite,remarque) VALUES ('1970-01-01 00:13:37',1,%s,0,-(%s),1,'Solde initial');\n"%(i[0],i[3]))
-  f.write("UPDATE adherents SET solde = solde - (%s)  WHERE numcbde=%s;\n"%(i[3],i[0]))
diff --git a/bde/integrite/memo b/bde/integrite/memo
deleted file mode 100644 (file)
index f7519c1..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# pour créer la table numcbde,gagne,perdu,effectif :
-
-SELECT numcbde,(SELECT sum(montant*quantite) FROM transactions WHERE destinataire=main.numcbde AND valide='t') as gagne,(SELECT sum(montant*quantite) FROM transactions WHERE emetteur=main.numcbde AND valide='t') as perdu, (SELECT solde FROM adherents WHERE numcbde=main.numcbde) as effectif FROM adherents as main;
-
-# et créer la table + en extraire seulement les gens intéressants :
-# NB : c'est long à exécuter...
-SELECT numcbde,gagne-perdu,effectif FROM (SELECT numcbde,(SELECT sum(montant*quantite) FROM transactions WHERE destinataire=main.numcbde AND valide='t') as gagne,(SELECT sum(montant*quantite) FROM transactions WHERE emetteur=main.numcbde AND valide='t') as perdu, (SELECT solde FROM adherents WHERE numcbde=main.numcbde) as effectif FROM adherents as main) AS calculs WHERE gagne-perdu!=effectif;
diff --git a/bde/old/integrite/fix_integrity.py b/bde/old/integrite/fix_integrity.py
new file mode 100755 (executable)
index 0000000..9324600
--- /dev/null
@@ -0,0 +1,51 @@
+#!/usr/bin/python
+# -*- coding:utf8 -*-
+
+""" Codé pour rétablir l'intégrité de la BDD.
+    
+    Pour générer des transactions dans le passé
+    pour les gens qui n'avaient pas commencé avec un solde nul.
+"""
+
+import psycopg2, psycopg2.extras
+
+con = psycopg2.connect(database="bde", connection_factory=psycopg2.extras.DictConnection)
+cur = con.cursor()
+
+from commands import getstatusoutput as ex
+import os
+import sys
+
+req="""SELECT numcbde,pseudo,gagne-perdu as calcul,effectif,effectif-(gagne-perdu) as a_enlever 
+FROM
+  (SELECT numcbde,pseudo,
+    (SELECT COALESCE(sum(montant*quantite), 0)
+     FROM transactions
+     WHERE destinataire=main.numcbde AND valide='t') as gagne,
+    (SELECT COALESCE(sum(montant*quantite), 0)
+     FROM transactions
+     WHERE emetteur=main.numcbde AND valide='t') as perdu,
+    (SELECT solde
+     FROM adherents WHERE numcbde=main.numcbde) as effectif
+   FROM adherents as main)
+AS calculs
+WHERE gagne-perdu!=effectif AND numcbde>0 ORDER BY numcbde;"""
+
+cur.execute(req)
+
+l = cur.fetchall()
+
+f=open("request_fixing.sql", "w")
+f.write("ALTER TABLE transactions DISABLE TRIGGER ALL;\n")
+for bug in l:
+    to_credit = bug["effectif"] - bug["calcul"]
+    if to_credit > 0:
+        emet, dest = 0, bug["numcbde"]
+    elif to_credit < 0:
+        emet, dest = bug["numcbde"], 0
+    f.write("INSERT INTO transactions (conso, emetteur, destinataire, montant, quantite, remarque) VALUES (1, %s, %s, %s, 1, 'Solde initial');\n" % (emet, dest, abs(to_credit)))
+    # En fait à cause des solde négatifs, il faut DISABLE les triggers, donc on n'a pas besoin d'update après
+    #f.write("UPDATE adherents SET solde=solde - (%s) WHERE numcbde=%s;\n" % (to_credit, bug["numcbde"]))
+
+f.write("ALTER TABLE transactions ENABLE TRIGGER ALL;\n")
+f.close()
diff --git a/bde/old/integrite/integrite_solde.py b/bde/old/integrite/integrite_solde.py
new file mode 100755 (executable)
index 0000000..fa49ac3
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- coding:Latin-1 -*-
+
+""" Liste les adhérents, fait la somme de leurs transactions et regarde la différence avec le solde actuel.
+    Broken, apparemment."""
+
+
+import os
+
+l=os.popen("psql bde -c \"SELECT numcbde,gagne-perdu as calcul,effectif,effectif-(gagne-perdu) as a_enlever FROM (SELECT numcbde,(SELECT sum(montant*quantite) FROM transactions WHERE destinataire=main.numcbde AND valide='t') as gagne,(SELECT sum(montant*quantite) FROM transactions WHERE emetteur=main.numcbde AND valide='t') as perdu, (SELECT solde FROM adherents WHERE numcbde=main.numcbde) as effectif FROM adherents as main) AS calculs WHERE gagne-perdu!=effectif;\"").readlines()
+
+g=[]
+print l
+for i in l[1:-3]:
+  i=i.strip().split()
+  print i
+  g.append([i[0],i[2],i[4],i[6]])
+
+f=open("requêtes à effectuer.txt","w")
+for i in g:
+  montant = eval(i[3])
+  if montant>0:
+    f.write("INSERT INTO transactions (date,conso,emetteur,destinataire,montant,quantite,remarque) VALUES ('1970-01-01 00:13:37',1,0,%s,%s,1,'Solde initial');\n"%(i[0],i[3]))
+  elif montant<0:
+    f.write("INSERT INTO transactions (date,conso,emetteur,destinataire,montant,quantite,remarque) VALUES ('1970-01-01 00:13:37',1,%s,0,-(%s),1,'Solde initial');\n"%(i[0],i[3]))
+  f.write("UPDATE adherents SET solde = solde - (%s)  WHERE numcbde=%s;\n"%(i[3],i[0]))
diff --git a/bde/old/integrite/memo b/bde/old/integrite/memo
new file mode 100644 (file)
index 0000000..f7519c1
--- /dev/null
@@ -0,0 +1,7 @@
+# pour créer la table numcbde,gagne,perdu,effectif :
+
+SELECT numcbde,(SELECT sum(montant*quantite) FROM transactions WHERE destinataire=main.numcbde AND valide='t') as gagne,(SELECT sum(montant*quantite) FROM transactions WHERE emetteur=main.numcbde AND valide='t') as perdu, (SELECT solde FROM adherents WHERE numcbde=main.numcbde) as effectif FROM adherents as main;
+
+# et créer la table + en extraire seulement les gens intéressants :
+# NB : c'est long à exécuter...
+SELECT numcbde,gagne-perdu,effectif FROM (SELECT numcbde,(SELECT sum(montant*quantite) FROM transactions WHERE destinataire=main.numcbde AND valide='t') as gagne,(SELECT sum(montant*quantite) FROM transactions WHERE emetteur=main.numcbde AND valide='t') as perdu, (SELECT solde FROM adherents WHERE numcbde=main.numcbde) as effectif FROM adherents as main) AS calculs WHERE gagne-perdu!=effectif;