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()