reconcile: Add statement total and cleared total.
This commit is contained in:
parent
042633d82d
commit
5d45171ed7
1 changed files with 17 additions and 0 deletions
|
@ -27,6 +27,7 @@ Problems in scope:
|
|||
- transactions are entered manually and reconciled after the fact, but importing from statements may be useful in some cases
|
||||
|
||||
Q. How are reconciliation reports created currently? How do you read them?
|
||||
- by hand from copying and pasting from the helper tool output
|
||||
|
||||
TODO/ISSUES:
|
||||
- AMEX statement doesn't provide bank balance or running total
|
||||
|
@ -110,8 +111,11 @@ parser.add_argument('--account', required=True, help='eg. Liabilities:CreditCard
|
|||
parser.add_argument('--grep-output-filename')
|
||||
# parser.add_argument('--report-group-regex')
|
||||
parser.add_argument('--show-reconciled-matches', action='store_true')
|
||||
parser.add_argument('--statement-total', required=True)
|
||||
args = parser.parse_args()
|
||||
|
||||
statement_total = decimal.Decimal(args.statement_total)
|
||||
|
||||
# TODO: Should put in a sanity check to make sure the statement you're feeding
|
||||
# in matches the account you've provided.
|
||||
if 'AMEX' in args.account:
|
||||
|
@ -135,6 +139,16 @@ 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}"
|
||||
AND date <= {end_date.isoformat()} AND META('bank-statement') != NULL"""
|
||||
result_types, result_rows = run_query(
|
||||
entries,
|
||||
options,
|
||||
total_query,
|
||||
numberify=True,
|
||||
)
|
||||
cleared_total = result_rows[0][0]
|
||||
|
||||
# String concatenation looks bad, but there's no SQL injection possible here
|
||||
# because BQL can't write back to the Beancount files. I hope!
|
||||
query = f"SELECT filename, META('lineno') AS posting_line, META('bank-statement') AS posting_statement, date, number(cost(position)), payee, narration where account = '{args.account}' and date >= {begin_date} and date <= {end_date}"
|
||||
|
@ -183,6 +197,9 @@ print('-' * 155)
|
|||
for _, output in sorted(matches):
|
||||
print(output)
|
||||
print('-' * 155)
|
||||
print(f'STATEMENT TOTAL: {statement_total}')
|
||||
print(f'CLEARED TOTAL: {cleared_total:12,.2f}')
|
||||
print('-' * 155)
|
||||
|
||||
# Write statement metadata back to books
|
||||
if metadata_to_apply:
|
||||
|
|
Loading…
Reference in a new issue