-  my ($number)   = selectfirst_array_query($form, $self->dbh, qq|SELECT $filters{numberfield} FROM defaults|);
-  $number      ||= '';
+  my $business_number;
+  ($business_number) = selectfirst_array_query($form, $self->dbh, qq|SELECT customernumberinit FROM business WHERE id = ? FOR UPDATE|, $self->business_id) if $self->business_id;
+  my $number         = $business_number;
+  ($number)          = selectfirst_array_query($form, $self->dbh, qq|SELECT $filters{numberfield} FROM defaults FOR UPDATE|)                               if !$number;
+  if ($filters{numberfield} eq 'assemblynumber' and length($number) < 1) {
+    $filters{numberfield} = 'articlenumber';
+    ($number)        = selectfirst_array_query($form, $self->dbh, qq|SELECT $filters{numberfield} FROM defaults FOR UPDATE|)                               if !$number;
+  }
+  $number          ||= '';
+  my $sequence       = SL::PrefixedNumber->new(number => $number);