Revision 0e83d54d
Von Sven Schöling vor etwa 6 Jahren hinzugefügt
SL/DB/Helper/PriceTaxCalculator.pm | ||
---|---|---|
145 | 145 |
die "tax_amount != 0 but no chart_id for taxkey " . $taxkey->id . " tax " . $taxkey->tax->id; |
146 | 146 |
} |
147 | 147 |
|
148 |
$self->netamount($self->netamount + $sellprice * (1 - $item->discount) * $item->qty / $item->price_factor); |
|
149 |
|
|
150 | 148 |
my $chart = $part->get_chart(type => $data->{is_sales} ? 'income' : 'expense', taxzone => $self->taxzone_id); |
151 | 149 |
$data->{amounts}->{ $chart->id } ||= { taxkey => $taxkey->taxkey_id, tax_id => $taxkey->tax_id, amount => 0 }; |
152 | 150 |
$data->{amounts}->{ $chart->id }->{amount} += $linetotal; |
... | ... | |
187 | 185 |
$data->{taxes}->{$chart_id} = $rounded; |
188 | 186 |
} |
189 | 187 |
|
188 |
$self->netamount(sum map { $_->{amount} } values %{ $data->{amounts} }); |
|
189 |
|
|
190 | 190 |
my $amount = _round(($self->netamount + $tax_diff) * $data->{exchangerate}, 2); |
191 | 191 |
my $diff = $amount - ($self->netamount + $tax_diff) * $data->{exchangerate}; |
192 | 192 |
my $netamount = $amount; |
Auch abrufbar als: Unified diff
PTC: Fehlerhafte ungerundete Berechnung von grossamount
Bei Rechnungen mit sehr vielen sehr kleinen Positionen wurde die
Rundungsfehlerakkumulation nur in den finalen netamounts
berücksichtigt, nicht aber in den daraus berechneten grossamounts was zu
Cent-Abweichungen geführt hat.
(cherry picked from commit 061180a3a9cd5ddffc5d9b40fc1751653fc8ef09)