]> gitweb.pimeys.fr Git - scripts-20-100.git/commitdiff
Mais en fait ça marche pas ce merge de dépôts ?
authorVincent Le Gallic <legallic@crans.org>
Fri, 11 Mar 2016 04:43:09 +0000 (05:43 +0100)
committerVincent Le Gallic <legallic@crans.org>
Fri, 11 Mar 2016 04:43:09 +0000 (05:43 +0100)
bde/compta/sum_transacs_by_categorie.py [new file with mode: 0755]
sum_transacs_by_categorie.py [deleted file]

diff --git a/bde/compta/sum_transacs_by_categorie.py b/bde/compta/sum_transacs_by_categorie.py
new file mode 100755 (executable)
index 0000000..5359a62
--- /dev/null
@@ -0,0 +1,93 @@
+#!/usr/bin/python
+# -*- coding:utf8 -*-
+
+"""
+Affiche les gains BDE par mois et par catégorie.
+
+Une catégorie est définie par une liste de descriptions.
+Le script mange donc une liste de fichiers contenant une description par ligne.
+"""
+
+import sys
+
+import base
+
+def get_sum(descriptions, debut, fin):
+    """
+    Récupère le montant total des transactions reçue par le BDE dans ayant
+    leur descrption dans ``descriptions``
+    """
+    req = """
+        SELECT COALESCE(sum(quantite*montant), 0) AS s
+        FROM transactions
+        WHERE valide
+          AND date >= %(debut)s
+          AND date < %(fin)s
+          AND destinataire = 0
+          AND montant != 0
+          AND description = ANY (%(descriptions)s);
+    """
+    con, cur = base.getcursor()
+    cur.execute(req, {"debut" : debut + ' 00:00:00', "fin" : fin + ' 00:00:00', "descriptions" : descriptions})
+    s = cur.fetchone()["s"] or 0
+    return s
+
+def get_dates(y, m, d, yf, mf, df):
+    """
+    Donne les dates de découpage de ``d``/``m``/``y`` à ``d-1``/``m``/``y+1``.
+    """
+    dates = ["%d-%02d-%02d" % (y, m, d)]
+    m += 1
+    if m == 13:
+        m = 1
+        y += 1
+    while (y, m) <= (yf, mf):
+        dates.append("%d-%02d-01" % (y, m))
+        m += 1
+        if m == 13:
+            m = 1
+            y += 1
+    # On a atteint le dernier mois
+    dates.append("%d-%02d-%02d" % (yf, mf, df))
+    return dates
+
+def get_year_sums(dates, filename):
+    """
+    Récupère les données sur l'année pour une catégorie.
+    """
+    descriptions = open(filename).readlines()
+    descriptions = [d.rstrip('\n') for d in descriptions]
+    sums = []
+    for id in range(len(dates) - 1):
+        ddebut, dfin = dates[id], dates[id + 1]
+        sums.append(get_sum(descriptions, ddebut, dfin))
+    return sums
+
+
+def main(filenames):
+    """Fait le boulot."""
+    print filenames
+    y, m, d = 2015, 2, 16
+    yf, mf, df = 2016, 2, 19
+    dates = get_dates(y, m, d, yf, mf, df)
+    ys = {}
+    for fn in filenames:
+        ys[fn] = get_year_sums(dates, fn)
+    print "debut\tfin\t" + "\t".join(filenames)
+    for id in range(len(dates) - 1):
+        ddebut, dfin = dates[id], dates[id + 1]
+        print "%s\t%s\t%s" % (
+            ddebut,
+            dfin,
+            "\t".join([str(ys[fn][id]) for fn in filenames])
+        )
+
+    print "totaux"
+    print "%s-%s-%s\t %s-%s-%s\t %s" % (y, m, d, yf, mf, df,
+        "\t".join([str(sum(ys[fn])) for fn in filenames]),)
+    print "total"
+    print str(sum([sum(ys[fn]) for fn in filenames]))
+
+if __name__ == "__main__":
+    filenames = sys.argv[1:]
+    main(filenames)
diff --git a/sum_transacs_by_categorie.py b/sum_transacs_by_categorie.py
deleted file mode 100755 (executable)
index 5359a62..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/python
-# -*- coding:utf8 -*-
-
-"""
-Affiche les gains BDE par mois et par catégorie.
-
-Une catégorie est définie par une liste de descriptions.
-Le script mange donc une liste de fichiers contenant une description par ligne.
-"""
-
-import sys
-
-import base
-
-def get_sum(descriptions, debut, fin):
-    """
-    Récupère le montant total des transactions reçue par le BDE dans ayant
-    leur descrption dans ``descriptions``
-    """
-    req = """
-        SELECT COALESCE(sum(quantite*montant), 0) AS s
-        FROM transactions
-        WHERE valide
-          AND date >= %(debut)s
-          AND date < %(fin)s
-          AND destinataire = 0
-          AND montant != 0
-          AND description = ANY (%(descriptions)s);
-    """
-    con, cur = base.getcursor()
-    cur.execute(req, {"debut" : debut + ' 00:00:00', "fin" : fin + ' 00:00:00', "descriptions" : descriptions})
-    s = cur.fetchone()["s"] or 0
-    return s
-
-def get_dates(y, m, d, yf, mf, df):
-    """
-    Donne les dates de découpage de ``d``/``m``/``y`` à ``d-1``/``m``/``y+1``.
-    """
-    dates = ["%d-%02d-%02d" % (y, m, d)]
-    m += 1
-    if m == 13:
-        m = 1
-        y += 1
-    while (y, m) <= (yf, mf):
-        dates.append("%d-%02d-01" % (y, m))
-        m += 1
-        if m == 13:
-            m = 1
-            y += 1
-    # On a atteint le dernier mois
-    dates.append("%d-%02d-%02d" % (yf, mf, df))
-    return dates
-
-def get_year_sums(dates, filename):
-    """
-    Récupère les données sur l'année pour une catégorie.
-    """
-    descriptions = open(filename).readlines()
-    descriptions = [d.rstrip('\n') for d in descriptions]
-    sums = []
-    for id in range(len(dates) - 1):
-        ddebut, dfin = dates[id], dates[id + 1]
-        sums.append(get_sum(descriptions, ddebut, dfin))
-    return sums
-
-
-def main(filenames):
-    """Fait le boulot."""
-    print filenames
-    y, m, d = 2015, 2, 16
-    yf, mf, df = 2016, 2, 19
-    dates = get_dates(y, m, d, yf, mf, df)
-    ys = {}
-    for fn in filenames:
-        ys[fn] = get_year_sums(dates, fn)
-    print "debut\tfin\t" + "\t".join(filenames)
-    for id in range(len(dates) - 1):
-        ddebut, dfin = dates[id], dates[id + 1]
-        print "%s\t%s\t%s" % (
-            ddebut,
-            dfin,
-            "\t".join([str(ys[fn][id]) for fn in filenames])
-        )
-
-    print "totaux"
-    print "%s-%s-%s\t %s-%s-%s\t %s" % (y, m, d, yf, mf, df,
-        "\t".join([str(sum(ys[fn])) for fn in filenames]),)
-    print "total"
-    print str(sum([sum(ys[fn]) for fn in filenames]))
-
-if __name__ == "__main__":
-    filenames = sys.argv[1:]
-    main(filenames)