-  my $parts_by = { id         => { map { ( $_->id => $_ ) } grep { !$_->assembly } @{ $self->existing_objects } },
-                   partnumber => { part    => { },
-                                   service => { } } };
-
-  foreach my $part (@{ $self->existing_objects }) {
-    next if $part->assembly;
-    $parts_by->{partnumber}->{ $part->type }->{ $part->partnumber } = $part;
+#  my $parts_by = { id         => { map { ( $_->id => $_ ) } grep { !$_->assembly } @{ $self->existing_objects } },
+#                   partnumber => { part    => { },
+#                                   service => { } } };
+#
+#  foreach my $part (@{ $self->existing_objects }) {
+#    next if $part->assembly;
+#    $parts_by->{partnumber}->{ $part->type }->{ $part->partnumber } = $part;
+#  }
+
+  my $parts_by = {};
+  my $sth = prepare_execute_query($::form, $::form->get_standard_dbh, 'SELECT partnumber FROM parts');
+  while (my ($partnumber) = $sth->fetchrow_array()) {
+    $parts_by->{partnumber}{$partnumber} = 1;