From d49c87b6c355f7041598a6263c017154a38a04bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Sun, 18 Oct 2015 20:12:10 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20d'une=20option=20pour=20limiter=20la=20?= =?UTF-8?q?p=C3=A9riode=20de=20recherche=20de=20factures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tresorerie/controle_rapide.py | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/tresorerie/controle_rapide.py b/tresorerie/controle_rapide.py index 626d5828..4e40429e 100755 --- a/tresorerie/controle_rapide.py +++ b/tresorerie/controle_rapide.py @@ -34,6 +34,8 @@ en masse. La construction est un peu méta pour éviter la redondance de code.""" +#pylint: disable=line-too-long + import argparse import sys @@ -59,6 +61,16 @@ STYLES = { 'modePaiement': 'bleu', } +def str_to_gtf(time_str): + """Retourne un GTF sans timezone depuis un truc au format + JJ/MM/AAAA HH:MM:SS""" + + date, heure = time_str.split() + jour, mois, annee = date.split("/") + heure, minute, seconde = heure.split(":") + + return "%s%s%s%s%s%s" % (annee, mois, jour, heure, minute, seconde) + # Tout commence ici. def traiter_factures(ldap, args): """Liste les factures et les trie suivant trois catégories @@ -376,7 +388,19 @@ def trie_factures(ldap, args): controle_non = [] sans_controle = [] - filtre = u"(&(fid=*)(recuPaiement=*)%(modes)s)" + if not args.last: + args.last = crans_utils.localized_datetime() + else: + args.last = crans_utils.localized_datetime(str_to_gtf(args.last)) + if not args.begin: + args.begin = args.last.replace(year=args.last.year-1) + else: + args.begin = crans_utils.localized_datetime(str_to_gtf(args.begin)) + + _begin = crans_utils.datetime_to_generalized_time_format(args.begin) + _last = crans_utils.datetime_to_generalized_time_format(args.last) + + filtre = u"(&(fid=*)(recuPaiement>=%(begin)s)(recuPaiement<=%(end)s)%(modes)s)" if args.mode: _modes = args.mode.split(',') @@ -387,6 +411,8 @@ def trie_factures(ldap, args): filtre = filtre % { 'modes': _modes, + 'begin': _begin, + 'end': _last, } factures = ldap.search(filterstr=filtre, mode="w", sizelimit=0) @@ -401,11 +427,11 @@ def trie_factures(ldap, args): return controle_ok, controle_non, sans_controle if __name__ == '__main__': - (COLONNES, LIGNES) = affichage.getTerminalSize() PARSER = argparse.ArgumentParser(description="Script d'analyse d'échange de données entre un truc et un autre.", add_help=False) - PARSER.add_argument("-l", "--last", help="Date de début, dans un format compréhensible par postgresql (\"AAAA/MM/JJ HH:MM:SS\" fonctionne bien)", type=str, action="store") + PARSER.add_argument("-b", "--begin", help="Date de début, au format \"JJ/MM/AAAA HH:MM:SS\"", type=str, action="store") + PARSER.add_argument("-l", "--last", help="Date de fin, au format \"JJ/MM/AAAA HH:MM:SS\"", type=str, action="store") PARSER.add_argument("-m", "--mode", help="Filtre sur le mode de paiement", type=str, action="store") PARSER.add_argument("-h", "--help", help="Affiche cette aide et quitte.", action="store_true") PARSER.add_argument("-t", "--tri", help="Trie les factures suivant l'aid ou le fid", type=str, action="store")