summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Dittmann <github@christoph-d.de>2018-06-09 21:57:39 +0100
committerChristoph Dittmann <github@christoph-d.de>2018-06-09 23:47:49 +0100
commit6853464fd0c4a0428540edc635f1257cfb534bcd (patch)
treea83265b4107befc5299c21f1198694f5a6bcee51
parente3fa7e9d89c17c69a163dfb031436ca8830f6562 (diff)
downloadfork-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.cc3
-rw-r--r--test/regress/1127.test15
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