diff --git a/tresorerie/controle_rapide.py b/tresorerie/controle_rapide.py index 27c025f5..fcabd5fc 100755 --- a/tresorerie/controle_rapide.py +++ b/tresorerie/controle_rapide.py @@ -103,9 +103,9 @@ def traiter_factures(ldap, args): while True: # On trie les factures par fid en ordre décroissant. - controle_ok.sort(cmp=lambda x,y: cmp(int(x['fid'][0]), int(y['fid'][0])), reverse=True) - controle_non.sort(cmp=lambda x,y: cmp(int(x['fid'][0]), int(y['fid'][0])), reverse=True) - sans_controle.sort(cmp=lambda x,y: cmp(int(x['fid'][0]),int(y['fid'][0])), reverse=True) + controle_ok.sort(cmp=lambda x, y: cmp(int(x['fid'][0]), int(y['fid'][0])), reverse=True) + controle_non.sort(cmp=lambda x, y: cmp(int(x['fid'][0]), int(y['fid'][0])), reverse=True) + sans_controle.sort(cmp=lambda x, y: cmp(int(x['fid'][0]), int(y['fid'][0])), reverse=True) # Menu principal (code, tag) = dialog_interface.menu( @@ -200,7 +200,8 @@ def structure_liste_factures(factures, idx=0): def show_list_factures(choix, dialog_interface, titre, description): """Construit un menu avec les factures listées dedans""" # Affiche la fenêtre dialog et retourne le résultat fourni - return dialog_interface.checklist(description, + return dialog_interface.checklist( + description, height=LIGNES-10, width=0, timeout=TIMEOUT, @@ -359,7 +360,20 @@ def trie_factures(ldap, args): controle_non = [] sans_controle = [] - factures = ldap.search(filterstr=u"(&(fid=*)(recuPaiement=*))", mode="w", sizelimit=0) + filtre = u"(&(fid=*)(recuPaiement=*)%(modes)s)" + + if args.mode: + _modes = args.mode.split(',') + _modes = u"".join([u"(modePaiement=%s)" % (_mode,) for _mode in _modes]) + _modes = u"(|%s)" % (_modes,) + else: + _modes = u"" + + filtre = filtre % { + 'modes': _modes, + } + + factures = ldap.search(filterstr=filtre, mode="w", sizelimit=0) for facture in factures: if unicode(facture.get('controle', [u''])[0]) == u"TRUE": controle_ok.append(facture) @@ -376,6 +390,7 @@ if __name__ == '__main__': 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("-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") ARGS = PARSER.parse_args()