$self->netamount( 0);
$self->marge_total(0);
+ SL::DB::Manager::Chart->cache_taxkeys(date => $self->transdate);
+
my $idx = 0;
foreach my $item ($self->items) {
$idx++;
$item->base_qty($item_unit->convert_to($item->qty, $part_unit));
$item->fxsellprice($item->sellprice) if $data->{is_invoice};
- my $num_dec = _num_decimal_places($item->sellprice);
+ my $num_dec = _num_decimal_places($item->sellprice) || 2;
+ # ^ we need at least 2 decimal places ^
+ # my test case 43.00 € with 0 decimal places and 0.5 discount ->
+ # : sellprice before:43.00000
+ # : num dec before:0
+ # : discount / sellprice ratio: 22 / 21
+ # : discount = 43 * 0.5 _round(21.5, 0) = 22
+ # TODO write a test case
my $discount = _round($item->sellprice * ($item->discount || 0), $num_dec);
my $sellprice = _round($item->sellprice - $discount, $num_dec);