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');
# }
my $parts_by = {};
- my $sth = prepare_execute_query($::form, $::form->get_standard_dbh, 'SELECT partnumber FROM parts');
+ my $sth = prepare_execute_query($::form, SL::DB::Object->new->db->dbh, 'SELECT partnumber FROM parts');
while (my ($partnumber) = $sth->fetchrow_array()) {
$parts_by->{partnumber}{$partnumber} = 1;
}
return 1 if $object->buchungsgruppen_id;
- push @{ $entry->{errors} }, $::locale->text('Error: Buchungsgruppe missing or invalid');
+ push @{ $entry->{errors} }, $::locale->text('Error: booking group missing or invalid');
return 0;
}
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}->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;
}
my ($self) = @_;
my $profile = $self->SUPER::init_profile;
- delete @{$profile}{qw(alternate assembly bom expense_accno_id income_accno_id inventory_accno_id makemodel priceupdate stockable type)};
+ delete @{$profile}{qw(assembly bom expense_accno_id income_accno_id inventory_accno_id makemodel priceupdate stockable type)};
$profile->{"pricegroup_$_"} = '' for 1 .. scalar @{ $_[0]->all_pricegroups };
$self->add_cvar_columns_to_displayable_columns;
$self->add_displayable_columns({ name => 'bin', description => $::locale->text('Bin') },
- { name => 'buchungsgruppen_id', description => $::locale->text('Buchungsgruppe (database ID)') },
- { name => 'buchungsgruppe', description => $::locale->text('Buchungsgruppe (name)') },
+ { name => 'buchungsgruppen_id', description => $::locale->text('Booking group (database ID)') },
+ { name => 'buchungsgruppe', description => $::locale->text('Booking group (name)') },
{ name => 'description', description => $::locale->text('Description') },
{ name => 'drawing', description => $::locale->text('Drawing') },
{ name => 'ean', description => $::locale->text('EAN') },
{ name => 'price_factor', description => $::locale->text('Price factor (name)') },
{ name => 'rop', description => $::locale->text('ROP') },
{ name => 'sellprice', description => $::locale->text('Sellprice') },
- { name => 'shop', description => $::locale->text('Shopartikel') },
+ { name => 'shop', description => $::locale->text('Shop article') },
{ name => 'type', description => $::locale->text('Article type') . ' [3]' },
{ name => 'unit', description => $::locale->text('Unit (if missing or empty default unit will be used)') },
{ name => 've', description => $::locale->text('Verrechnungseinheit') },