diff options
author | John Wiegley <johnw@newartisans.com> | 2008-09-19 08:07:18 -0400 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2008-09-19 08:07:51 -0400 |
commit | 1c2944d8294a6bc25f6429403787ba0a951254bf (patch) | |
tree | f650746be90806ed09c42df86a45552adfc44b3f /src | |
parent | fdc7a4e4c5423e79df4ad8905b5a67d45d2f85bc (diff) | |
download | fork-ledger-1c2944d8294a6bc25f6429403787ba0a951254bf.tar.gz fork-ledger-1c2944d8294a6bc25f6429403787ba0a951254bf.tar.bz2 fork-ledger-1c2944d8294a6bc25f6429403787ba0a951254bf.zip |
When automatically associating lot details with a commodity, use only the
price (based on the cost of the transactions), don't automatically use the
date and the entry code -- since most people aren't going to be that specific
at the time of sale, it's causes confusion in certain cases.
Diffstat (limited to 'src')
-rw-r--r-- | src/commodity.cc | 5 | ||||
-rw-r--r-- | src/entry.cc | 5 | ||||
-rw-r--r-- | src/textual.cc | 10 |
3 files changed, 7 insertions, 13 deletions
diff --git a/src/commodity.cc b/src/commodity.cc index e57b5eac..01f14ac9 100644 --- a/src/commodity.cc +++ b/src/commodity.cc @@ -182,7 +182,10 @@ amount_t commodity_t::exchange(const amount_t& amount, basis_cost = final_cost; amount_t ann_amount(amount); - ann_amount.annotate(annotation_t(per_unit_cost, moment->date(), tag)); + ann_amount.annotate + (annotation_t(per_unit_cost, + moment ? moment->date() : optional<date_t>(), tag)); + return ann_amount; } diff --git a/src/entry.cc b/src/entry.cc index 9f3af62e..1d4473d4 100644 --- a/src/entry.cc +++ b/src/entry.cc @@ -291,10 +291,7 @@ bool entry_base_t::finalize() amount_t final_cost; amount_t basis_cost; amount_t ann_amount = - commodity_t::exchange(x_amt, final_cost, basis_cost, xact->cost, none, - datetime_t(*xact->actual_date(), - time_duration_t(0, 0, 0)), - entry ? entry->code : optional<string>()); + commodity_t::exchange(x_amt, final_cost, basis_cost, xact->cost); if (xact->amount.is_annotated()) { if (ann_amount.annotation().price) diff --git a/src/textual.cc b/src/textual.cc index a0efd4ef..13cf8ea4 100644 --- a/src/textual.cc +++ b/src/textual.cc @@ -285,14 +285,8 @@ xact_t * parse_xact(char * line, account_t * account, entry_t * entry = NULL) per_unit_cost /= xact->amount; if (xact->amount.commodity() && - ! xact->amount.commodity().annotated) { - if (xact->entry) - xact->amount.annotate(annotation_t(per_unit_cost, - xact->entry->actual_date(), - xact->entry->code)); - else - xact->amount.annotate(annotation_t(per_unit_cost)); - } + ! xact->amount.commodity().annotated) + xact->amount.annotate(annotation_t(per_unit_cost)); DEBUG("ledger.textual.parse", "line " << linenum << ": " << "Total cost is " << *xact->cost); |