From d0fc4731343edfef1a8442657cc5ff3af852cfb5 Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Sat, 1 Mar 2025 13:51:15 +0100 Subject: [PATCH] =?UTF-8?q?Fix:=20cas=20where=20impay=C3=A9=20raise=20erro?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pdf_oralia/pages/locataire.py | 35 ++++++++++++++++++++++++----------- pdf_oralia/scripts.py | 32 ++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/pdf_oralia/pages/locataire.py b/pdf_oralia/pages/locataire.py index 95a19fc..644bd15 100644 --- a/pdf_oralia/pages/locataire.py +++ b/pdf_oralia/pages/locataire.py @@ -75,17 +75,30 @@ def fsm(): line = yield elif current_state == "add_totaux": if line[0] == "Totaux": - row.update( - { - "Loyers": line[2], - "Taxes": line[3], - "Provisions": line[4], - "Divers": line[5], - "Total": line[7], - "Réglés": line[8], - "Impayés": line[9], - } - ) + if line[6] is None: + row.update( + { + "Loyers": line[2], + "Taxes": line[3], + "Provisions": line[4], + "Divers": line[5], + "Total": line[7], + "Réglés": line[8], + "Impayés": line[9], + } + ) + else: + row.update( + { + "Loyers": line[2], + "Taxes": line[3], + "Provisions": line[4], + "Divers": line[5], + "Total": line[6], + "Réglés": line[7], + "Impayés": line[8], + } + ) line = yield row row = {} current_state = "new_row" diff --git a/pdf_oralia/scripts.py b/pdf_oralia/scripts.py index a0cd3ad..f97f41d 100644 --- a/pdf_oralia/scripts.py +++ b/pdf_oralia/scripts.py @@ -42,12 +42,40 @@ def extract(): @extract.command() @click.argument("pdf_file", required=1) @click.option("--dest", help="Où mettre les fichiers produits", default="") -def on(pdf_file, dest): +@click.option( + "--only-plan", + help="Ne produit rien mais indique les changements", + default=False, + is_flag=True, +) +@click.option( + "--force", + help="Écrase les fichiers produits précédemment", + default=False, + is_flag=True, +) +def on(pdf_file, dest, force, only_plan): + pdf_file = Path(pdf_file) if not dest: pdf_path = Path(pdf_file) dest = pdf_path.parent + else: + dest = Path(dest) - extract_save(pdf_file, dest) + logging.info(f"Found {pdf_file}") + + plan_dest = extract_plan(pdf_file, dest) + save = [] + for k, p in plan_dest.items(): + if not p.exists() or force: + save.append(k) + + if only_plan: + for s in save: + logging.info(f"Planing to create {plan_dest[s]}") + else: + dest.mkdir(parents=True, exist_ok=True) + extract_save(pdf_file, dest, save) @extract.command()