Currency-currency prices will be priced in the smaller currency so that
the price > 1 and will be rounded to 3 digits after the decimal.
Commodity-currency prices will be priced in the currency and rounded to
the currency's scu * 10000.
This affects only prices stored in the pricedb. Prices in splits will
continue to be computed from value/amount.
For split-register and xfer-dialog generated prices if there's an existing
non-FQ price for the day, change it. If there's an F::Q quote for the day,
do nothing. Only add a price if there isn't one for the from/to
combination.
Add a new piechart report that groups by commodity and not by the
account hierarchy. This also refactors the existing piechart report
file a bit, to reuse code where possible and only abstract-out the
pieces that need to be generalised.
The existing code uses tuples to define the properties of the individual
reports created. Replace that by a function to build one of them which
gets the properties passed as arguments, and use a series of calls to
replace the old loop. This makes the properties much more easier to
read.
Set feature flag if book-currency option selected and initiate registered
callbacks when currency accounting book option changes to book-currency so that registers/reports can update themselves.
The changes made are:
app-utils/gnc-ui-util.c & h - define gnc_book_option_book_currency_selected_cb
core-utils/gnc-features.c & h - define GNC_FEATURE_BOOK_CURRENCY
engine/engine-helpers.c & h - define gnc_book_option_book_currency_selected
to call registered callbacks and set feature
gnome-utils/gnc-main-window.c & h - add checking of book-currency option to
gnc_book_options_dialog_apply_cb function; refactor common code with
assistant-hiearchy.c by creating gnc_book_options_dialog_apply_helper
gnome/assistant-hierarchy.c - use gnc_book_options_dialog_apply_helper
This got dropped when qof_instance_get replaced direct KVP access and it makes
it impossible to edit a scheduled transaction since splits can't have both a credit
and debit value.
When gnc-numeric.c was converted to C++, gnc_numeric_equal was changed so
that an invalid number is equal to anything. The SX since last run dialog
initializes unset variables to invalid numbers which means that whatever you
type is equal to what is already there and is ignored.
Instead have gnc:company-info and gnc:fancy-date-info use the book
parameter again (which got lost in the kvp refactoring).
This preserves some code for potentially being able to have two
books open at once.