Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 612d23d1

Von Bernd Bleßmann vor mehr als 5 Jahren hinzugefügt

  • ID 612d23d1bf4615b77a18c3f9e791e3f8ff75c38e
  • Vorgänger 148723c3
  • Nachfolger 682e6d14

PTC: zur Margenberechnung die Nettozeilensumme nehmen.

So ist der Verhalten in den anderen (alten) Masken. Sonst ergeben sich
unterschiedliche Werte in den verschiedenen Masken, wenn
"Steuer im Preis inbegriffen" gewählt ist.

Unterschiede anzeigen:

SL/DB/Helper/PriceTaxCalculator.pm
$data->{invoicediff} += $sellprice * (1 - $item->discount) * $item->qty * $data->{exchangerate} / $item->price_factor - $linetotal if $self->taxincluded;
my $linetotal_cost = 0;
if (!$linetotal) {
$item->marge_total( 0);
$item->marge_percent(0);
} else {
my $lastcost = !(($item->lastcost // 0) * 1) ? ($part->lastcost || 0) : $item->lastcost;
$linetotal_cost = _round($lastcost * $item->qty / $item->marge_price_factor, 2);
$item->marge_total( $linetotal - $linetotal_cost);
$item->marge_percent($item->marge_total * 100 / $linetotal);
$self->marge_total( $self->marge_total + $item->marge_total);
$data->{lastcost_total} += $linetotal_cost;
}
my $taxkey = $part->get_taxkey(date => $self->transdate, is_sales => $data->{is_sales}, taxzone => $self->taxzone_id);
my $tax_rate = $taxkey->tax->rate;
my $tax_amount = undef;
......
$data->{amounts}->{ $chart->id }->{amount} += $linetotal;
$data->{amounts}->{ $chart->id }->{amount} -= $tax_amount if $self->taxincluded;
my $linetotal_cost = 0;
if (!$linetotal) {
$item->marge_total( 0);
$item->marge_percent(0);
} else {
my $lastcost = !(($item->lastcost // 0) * 1) ? ($part->lastcost || 0) : $item->lastcost;
$linetotal_cost = _round($lastcost * $item->qty / $item->marge_price_factor, 2);
my $linetotal_net = $self->taxincluded ? $linetotal - $tax_amount : $linetotal;
$item->marge_total( $linetotal_net - $linetotal_cost);
$item->marge_percent($item->marge_total * 100 / $linetotal_net);
$self->marge_total( $self->marge_total + $item->marge_total);
$data->{lastcost_total} += $linetotal_cost;
}
push @{ $data->{assembly_items} }, [];
if ($part->is_assembly) {
_calculate_assembly_item($self, $data, $part, $item->base_qty, $item_unit->convert_to(1, $part_unit));

Auch abrufbar als: Unified diff