From 4bb6177e45bc580be44482f8b8dd411b2e591c3e 2022-02-09 23:23:00 From: Ben Sturmfels Date: 2022-02-09 23:23:00 Subject: [PATCH] reconcile: Update cleared query. --- diff --git a/conservancy_beancount/reconcile/prototype_amex_reconciler.py b/conservancy_beancount/reconcile/prototype_amex_reconciler.py index 4fb37af797c537881edf4442977ae7c4fb815563..512687542912f764603390c08a1c7fe287ab5b92 100644 --- a/conservancy_beancount/reconcile/prototype_amex_reconciler.py +++ b/conservancy_beancount/reconcile/prototype_amex_reconciler.py @@ -29,6 +29,8 @@ Problems in scope: Q. How are reconciliation reports created currently? How do you read them? - by hand from copying and pasting from the helper tool output +Problem is potentially similar to diff-ing, but in the books, transaction order isn't super significant. + TODO/ISSUES: - AMEX statement doesn't provide bank balance or running total @@ -139,14 +141,15 @@ end_date = statement_trans[-1]['date'] # but I'm not clear on how to use compile(). An example would help. entries, _, options = loader.load_file(args.beancount_file) -total_query = f"""SELECT sum(COST(position)) AS aa WHERE account = "{args.account}" +cleared_query = f"""SELECT sum(COST(position)) AS aa WHERE account = "{args.account}" AND date <= {end_date.isoformat()} AND META('bank-statement') != NULL""" result_types, result_rows = run_query( entries, options, - total_query, + cleared_query, numberify=True, ) + cleared_total = result_rows[0][0] # String concatenation looks bad, but there's no SQL injection possible here