my $params = delete($::form->{part}) || { };
delete $params->{id};
- # never overwrite existing partnumber, should be a read-only field anyway
- delete $params->{partnumber} if $self->part->partnumber;
+ # never overwrite existing partnumber for parts in use, should be a read-only field in that case anyway
+ delete $params->{partnumber} if $self->part->partnumber and not $self->orphaned;
$self->part->assign_attributes(%{ $params});
$self->part->bin_id(undef) unless $self->part->warehouse_id;
my ($self) = @_;
return 1 unless $::form->{part}{part_type} eq 'assortment';
- # skip check for existing parts that have been used
+ # skip item check for existing assortments that have been used
return 1 if ($self->part->id and !$self->part->orphaned);
# new or orphaned parts must have items in $::form->{assortment_items}
return 1 unless $::form->{part}->{part_type} eq 'assembly';
+ # skip item check for existing assembly that have been used
+ return 1 if ($self->part->id and !$self->part->orphaned);
+
unless ( $::form->{assembly_items} and scalar @{$::form->{assembly_items}} ) {
$self->js->run('kivi.Part.set_tab_active_by_name', 'assembly_tab')
->focus('#add_assembly_item_name')