summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2008-09-19 08:07:18 -0400
committerJohn Wiegley <johnw@newartisans.com>2008-09-19 08:07:51 -0400
commit1c2944d8294a6bc25f6429403787ba0a951254bf (patch)
treef650746be90806ed09c42df86a45552adfc44b3f /src
parentfdc7a4e4c5423e79df4ad8905b5a67d45d2f85bc (diff)
downloadfork-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.cc5
-rw-r--r--src/entry.cc5
-rw-r--r--src/textual.cc10
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);