From 4bb6177e45bc580be44482f8b8dd411b2e591c3e Mon Sep 17 00:00:00 2001 From: Ben Sturmfels Date: Thu, 10 Feb 2022 10:23:00 +1100 Subject: [PATCH] reconcile: Update cleared query. --- .../reconcile/prototype_amex_reconciler.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/conservancy_beancount/reconcile/prototype_amex_reconciler.py b/conservancy_beancount/reconcile/prototype_amex_reconciler.py index 4fb37af..5126875 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