diff --git a/src/business/business-ledger/gncEntryLedger.c b/src/business/business-ledger/gncEntryLedger.c index 41763af9c9..1c31d621e6 100644 --- a/src/business/business-ledger/gncEntryLedger.c +++ b/src/business/business-ledger/gncEntryLedger.c @@ -627,6 +627,7 @@ gnc_entry_ledger_compute_value (GncEntryLedger *ledger, gboolean taxable, taxincluded; GncTaxTable *table; GList *taxes = NULL; + int denom = 100; gnc_entry_ledger_get_numeric (ledger, ENTRY_QTY_CELL, &qty); gnc_entry_ledger_get_numeric (ledger, ENTRY_PRIC_CELL, &price); @@ -670,9 +671,15 @@ gnc_entry_ledger_compute_value (GncEntryLedger *ledger, table = NULL; } + if (ledger->invoice) + { + gnc_commodity *currency = gncInvoiceGetCurrency(ledger->invoice); + if (currency) + denom = gnc_commodity_get_fraction(currency); + } + gncEntryComputeValue (qty, price, (taxable ? table : NULL), taxincluded, - discount, disc_type, disc_how, - 100, /* XXX -- compute a real denominator */ + discount, disc_type, disc_how, denom, value, NULL, &taxes); /* return the tax value */