diff --git a/SL/IR.pm b/SL/IR.pm index b42c2566f1..fd8ade4a76 100644 --- a/SL/IR.pm +++ b/SL/IR.pm @@ -262,8 +262,11 @@ sub _post_invoice { # change lastcost for part and all assemblies and assortments recursively my $a = SL::DB::Part->load_cached(conv_i($form->{"id_$i"})); my $part_price_factor = $a->price_factor_id ? $a->price_factor->factor : 1; - $a->update_attributes(lastcost => abs($fxsellprice * $form->{exchangerate} / $basefactor / $price_factor * $part_price_factor)); - $a->set_lastcost_assemblies_and_assortiments; + my $new_lastcost = abs($fxsellprice * $form->{exchangerate} / $basefactor / $price_factor * $part_price_factor); + if ( abs($a->lastcost - $new_lastcost) >= 0.009 ) { + $a->update_attributes(lastcost => $new_lastcost); + $a->set_lastcost_assemblies_and_assortiments; + } # check if we sold the item already and # make an entry for the expense and inventory