Warenimport: Preisaktualisierungen
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 7 Jan 2014 09:53:37 +0000 (10:53 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 7 Jan 2014 09:53:37 +0000 (10:53 +0100)
3 Punkte:

- Preisupdates wurden auf dem falschen Objekt gemacht wenn die Ware schon
  vorhanden war. Dadurch wurden die neuen Preise nicht
  zurückgespeichert. Das ist jetzt behoben.
- Preisupdates wurden nicht vorgenommen, wenn der Name des Preises (z.B.
  sellprice) nicht im Header vorhanden war. Wenn er vorhanden war, wurde
  aber der neue absolute Preis gesetzt was prozentuale Updates kaputt
  macht.
- Preisupdates wurden potenziell auf alles drei Preisen vorgenommen, was
  nach dem zweiten Fix keinen Sinn macht. Jetzt nur noch Verkaufspreis.

SL/Controller/CsvImport/Part.pm

index 2ca1230..0cb132f 100644 (file)
@@ -234,14 +234,13 @@ sub check_existing {
 sub handle_prices {
   my ($self, $entry) = @_;
 
-  foreach my $column (qw(sellprice listprice lastcost)) {
-    next unless $self->controller->headers->{used}->{ $column };
-
+  foreach my $column (qw(sellprice)) {
+    my $object     = $entry->{object_to_save} || $entry->{object};
     my $adjustment = $self->settings->{sellprice_adjustment};
-    my $value      = $entry->{object}->$column;
+    my $value      = $object->$column;
 
     $value = $self->settings->{sellprice_adjustment_type} eq 'percent' ? $value * (100 + $adjustment) / 100 : $value + $adjustment;
-    $entry->{object}->$column($::form->round_amount($value, $self->settings->{sellprice_places}));
+    $object->$column($::form->round_amount($value, $self->settings->{sellprice_places}));
   }
 }