diff options
author | Christoph Dittmann <github@christoph-d.de> | 2018-06-09 21:57:39 +0100 |
---|---|---|
committer | Christoph Dittmann <github@christoph-d.de> | 2018-06-09 23:47:49 +0100 |
commit | 6853464fd0c4a0428540edc635f1257cfb534bcd (patch) | |
tree | a83265b4107befc5299c21f1198694f5a6bcee51 | |
parent | e3fa7e9d89c17c69a163dfb031436ca8830f6562 (diff) | |
download | fork-ledger-6853464fd0c4a0428540edc635f1257cfb534bcd.tar.gz fork-ledger-6853464fd0c4a0428540edc635f1257cfb534bcd.tar.bz2 fork-ledger-6853464fd0c4a0428540edc635f1257cfb534bcd.zip |
Make automated transactions work with assertions
This fixes issue #1127. In my understanding, PR #552 was meant to fix
this, but was incomplete.
Without this patch, automated transactions are invisible to
assertions.
This patch fixes this by adding a flag to the account to tell it that
there is a new posting, analogous to the behavior of finalize().
I dug up issue #1127 too late to find that this is the same solution
proposed by @tbm. Although I wrote this independently, credit goes to
Martin Michlmayr (@tbm).
-rw-r--r-- | src/xact.cc | 3 | ||||
-rw-r--r-- | test/regress/1127.test | 15 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/xact.cc b/src/xact.cc index c62974df..5df9ebc5 100644 --- a/src/xact.cc +++ b/src/xact.cc @@ -806,8 +806,9 @@ void auto_xact_t::extend_xact(xact_base_t& xact, parse_context_t& context) xact.add_post(new_post); new_post->account->add_post(new_post); - // Add flag so this post updates the account balance + // Add flags so this post updates the account balance new_post->xdata().add_flags(POST_EXT_VISITED); + new_post->account->xdata().add_flags(ACCOUNT_EXT_VISITED); if (new_post->must_balance()) needs_further_verification = true; diff --git a/test/regress/1127.test b/test/regress/1127.test new file mode 100644 index 00000000..905401f8 --- /dev/null +++ b/test/regress/1127.test @@ -0,0 +1,15 @@ +; Test that automated transactions are added to accounts soon enough +; for assertions to work. + += expr account =~ /^Assets/ + (Foo) 1 + +2018-06-09 Something + Assets $100 + Equity + +2018-06-09 Assert amount added by automated transaction + [Foo] = $100 +test bal Foo + $100 Foo +end test |