On Wed, 06 Aug 2014 18:01:52 +0200 Geert Janssens <[email protected]> wrote:
> On Wednesday 06 August 2014 16:00:21 Mike Evans wrote: > > > > HiGeert. > > > > > > n is set to 25 using gnc_exp_parser_parse (discount, &n, NULL); just > > after it's set to gnc_numeric_zero (); Taking the zeroing line out > > doesn't change the behaviour though. > > > Oh right. Probably this isn't working for me because my decimal separator is > ",". > > Sorry for the false suggestion. > > > Where discount is read from the file. When the invoice is opened > > after import the 25.00 is shown in the discount column but the price > > hasn't been discounted, the line total is still at original price. > > > > The gncEntryGetDocDiscountValue () function calls the > > gncEntry::gncEntryRecomputeValues() function which should set he > > discount to be applied. > > Yes, it does. As an aside This is a horribly backward way of doing things and > source of various > bugs. We should definitely fix this at some point. > > I fixed the import file for my locale and reran the debugger. The > gncEntryRecomputeValues > function effectively does nothing in this case because the entry has no > Invoice tax table set. > The recalculation only happens when there is either a bill or an invoice tax > table. > > So that would explain why the discount is not substracted. > > Geert Ah found it by looking in the .gnucash xml file. The discount is saved as 25/1 and the price as 75/1. In gncEntryComputeValues() the denom is read from the currency, ie 100 so it divides 25 by the denom and gets the wrong answers which is effectively zero. Hence no discount. I need to run gnc_numeric_convert(...) to set the denom correctly. Thanks Geert, sometimes just asking the questions "out loud" is what's needed. :) Mike -- Anti NSA? Use PGP. http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x00CDB13500D7AB53 _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
