]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Controller/CsvImport/Part.pm
%::myconfig dem Client javascript zur Verfügung stellen.
[mfinanz.git] / SL / Controller / CsvImport / Part.pm
index 76379324313ffdfd3ad0b0effbbb6988fee141b9..33301d140c4991dfb4969398f8c9fe337a87ecec 100644 (file)
@@ -427,23 +427,27 @@ sub handle_makemodel {
     return;
   }
 
-  my %old_makemodels_by_make = map { $_->make => $_ } $entry->{part}->makemodels;
+  my %old_makemodels_by_mm = map { $_->make . $; . $_->model => $_ } $entry->{part}->makemodels;
+  my @new_makemodels;
 
   foreach my $makemodel ($object->makemodels()) {
-    my $makemodel_orig = $old_makemodels_by_make{$makemodel->make};
+    my $makemodel_orig = $old_makemodels_by_mm{$makemodel->make,$makemodel->model};
     $found_any = 1;
 
     if ($makemodel_orig) {
       $makemodel_orig->model($makemodel->model);
       $makemodel_orig->lastcost($makemodel->lastcost);
-      $makemodel_orig->sortorder(undef);
 
     } else {
-      $entry->{part}->add_makemodels($makemodel);
+      push @new_makemodels, $makemodel;
     }
   }
 
-  $entry->{part}->makemodel($object->makemodel);
+  $entry->{part}->makemodels([ $entry->{part}->makemodels, @new_makemodels ]) if @new_makemodels;
+
+  # reindex makemodels
+  my $i = 0;
+  $_->sortorder(++$i) for @{ $entry->{part}->makemodels };
 
   $self->save_with_cascade(1) if $found_any;
 }