Was forced to hack the '=' transaction operator to get it to work. This
feature's implementation needs more work, so it's being pulled from 2.6.1 in order to be developed further.
This commit is contained in:
parent
ef0d32cd5d
commit
d83e2f3487
2 changed files with 26 additions and 10 deletions
16
journal.cc
16
journal.cc
|
|
@ -272,6 +272,22 @@ bool entry_base_t::finalize()
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add the final calculated totals each to their related account
|
||||||
|
|
||||||
|
if (dynamic_cast<entry_t *>(this)) {
|
||||||
|
for (transactions_list::const_iterator x = transactions.begin();
|
||||||
|
x != transactions.end();
|
||||||
|
x++) {
|
||||||
|
account_xdata_t& xdata(account_xdata(*(*x)->account));
|
||||||
|
// jww (2008-08-09): For now, this feature only works for
|
||||||
|
// non-specific commodities.
|
||||||
|
xdata.value += (*x)->amount.strip_annotations();
|
||||||
|
if ((*x)->account->fullname() == "Assets:Cash")
|
||||||
|
DEBUG_PRINT("ledger.xact.assign",
|
||||||
|
"account " << (*x)->account->fullname() << " balance = " << xdata.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
20
textual.cc
20
textual.cc
|
|
@ -293,16 +293,6 @@ transaction_t * parse_transaction(char * line, account_t * account,
|
||||||
|
|
||||||
parse_assign:
|
parse_assign:
|
||||||
if (entry != NULL) {
|
if (entry != NULL) {
|
||||||
// Add this amount to the related account now
|
|
||||||
|
|
||||||
account_xdata_t& xdata(account_xdata(*xact->account));
|
|
||||||
|
|
||||||
if (xact->amount) {
|
|
||||||
xdata.value += xact->amount;
|
|
||||||
DEBUG_PRINT("ledger.textual.parse", "line " << linenum << ": " <<
|
|
||||||
"XACT assign: account total = " << xdata.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Parse the optional assigned (= AMOUNT)
|
// Parse the optional assigned (= AMOUNT)
|
||||||
|
|
||||||
if (in.good() && ! in.eof()) {
|
if (in.good() && ! in.eof()) {
|
||||||
|
|
@ -327,6 +317,13 @@ parse_assign:
|
||||||
|
|
||||||
unsigned long end = (long)in.tellg();
|
unsigned long end = (long)in.tellg();
|
||||||
|
|
||||||
|
account_xdata_t& xdata(account_xdata(*xact->account));
|
||||||
|
|
||||||
|
DEBUG_PRINT("ledger.xact.assign",
|
||||||
|
"account balance = " << xdata.value);
|
||||||
|
DEBUG_PRINT("ledger.xact.assign",
|
||||||
|
"xact amount = " << amt);
|
||||||
|
|
||||||
amount_t diff;
|
amount_t diff;
|
||||||
if (xdata.value.type == value_t::AMOUNT)
|
if (xdata.value.type == value_t::AMOUNT)
|
||||||
diff = amt - *((amount_t *) xdata.value.data);
|
diff = amt - *((amount_t *) xdata.value.data);
|
||||||
|
|
@ -337,6 +334,9 @@ parse_assign:
|
||||||
else
|
else
|
||||||
diff = amt;
|
diff = amt;
|
||||||
|
|
||||||
|
DEBUG_PRINT("ledger.xact.assign",
|
||||||
|
"diff = " << diff);
|
||||||
|
|
||||||
DEBUG_PRINT("ledger.textual.parse", "line " << linenum << ": " <<
|
DEBUG_PRINT("ledger.textual.parse", "line " << linenum << ": " <<
|
||||||
"XACT assign: diff = " << diff);
|
"XACT assign: diff = " << diff);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue