translation_columns all_pricegroups) ],
);
+sub set_profile_defaults {
+ my ($self) = @_;
+
+ my $bugru = SL::DB::Manager::Buchungsgruppe->find_by(description => { like => 'Standard%19%' });
+
+ $self->controller->profile->_set_defaults(
+ sellprice_places => 2,
+ sellprice_adjustment => 0,
+ sellprice_adjustment_type => 'percent',
+ article_number_policy => 'update_prices',
+ shoparticle_if_missing => '0',
+ parts_type => 'part',
+ default_buchungsgruppe => ($bugru ? $bugru->id : undef),
+ apply_buchungsgruppe => 'all',
+ );
+};
+
+
sub init_class {
my ($self) = @_;
$self->class('SL::DB::Part');
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->lastcost($makemodel->lastcost);
} else {
- $entry->{part}->add_makemodels($makemodel);
+ push @new_makemodels, $makemodel;
}
}
+ $entry->{part}->makemodels([ $entry->{part}->makemodels, @new_makemodels ]) if @new_makemodels;
+
# reindex makemodels
my $i = 0;
$_->sortorder(++$i) for @{ $entry->{part}->makemodels };
- $entry->{part}->makemodel($object->makemodel);
-
$self->save_with_cascade(1) if $found_any;
}