]> gitweb.pimeys.fr Git - scripts-20-100.git/blobdiff - bde/credits_duplicates.py
[bde/credits_duplicates] Encoding (piping needs…)
[scripts-20-100.git] / bde / credits_duplicates.py
index 18b177fbc4910fd7af055a8cea7981c83f228aaa..3669e8e51b336b3e4450e5f1c147b996cbc5904b 100755 (executable)
@@ -107,6 +107,7 @@ def sort_by_blocks(data):
         l.sort()
     result = [", ".join([str(i) for i in l]) for l in result]
     result = list(set(result))
+    result.sort(key=lambda x : int(x.split(",")[0]))
     return result
 
 def get_transactions(cur, ids):
@@ -124,6 +125,7 @@ def interactive(blocks, cur, args):
     ou d'afficher une liste de toutes celles à dévalider.
     """
     ids_to_devalidate = []
+    total = 0
     for b in blocks:
         lb = [int(i) for i in b.split(",")]
         l = get_transactions(cur, b)
@@ -131,7 +133,7 @@ def interactive(blocks, cur, args):
         if not args.noless:
             p = subprocess.Popen(["less"], stdin=subprocess.PIPE)
             p.communicate(formatted.encode("utf-8"))
-        print formatted
+        print formatted.encode("utf-8")
         print "IDs : %s" % b
         idkeep = lb[0]
         question = "Ne garder que %s (= dévalider les autres) ? [o/N/s]" % idkeep
@@ -145,9 +147,11 @@ def interactive(blocks, cur, args):
         elif ans.lower() in ["s"]:
             lb.remove(idkeep)
             ids_to_devalidate.extend(lb)
+            total += l[0]["montant"] * (len(l) - 1)
     if ids_to_devalidate:
         print "\nIDs de transactions à dévalider (%s) :" % len(ids_to_devalidate)
         print ",".join([str(i) for i in ids_to_devalidate])
+        print "Montant total : %s" % (total,)
 
 if __name__ == "__main__":
     parser = argparse.ArgumentParser(description="Liste les crédits semblables trop proches dans le temps et propose de les dévalider tous sauf 1.")