Revision 64031f04
Von Jan Büren vor mehr als 2 Jahren hinzugefügt
| SL/Controller/Part.pm | ||
|---|---|---|
|   $::form->{oldpartnumber} = $oldpart->partnumber;
 | ||
|  | ||
|   $self->part($oldpart->clone_and_reset_deep);
 | ||
|   $self->parse_form;
 | ||
|   $self->parse_form(use_as_new => 1);
 | ||
|   $self->part->partnumber(undef);
 | ||
|  | ||
|   $self->render_form;
 | ||
|   $self->render_form(use_as_new => 1);
 | ||
| }
 | ||
|  | ||
| sub action_edit {
 | ||
| ... | ... | |
|   %assortment_vars = %{ $self->prepare_assortment_render_vars } if $self->part->is_assortment;
 | ||
|   %assembly_vars   = %{ $self->prepare_assembly_render_vars   } if $self->part->is_assembly;
 | ||
|  | ||
|   $params{CUSTOM_VARIABLES}  = CVar->get_custom_variables(module => 'IC', trans_id => $self->part->id);
 | ||
|   $params{CUSTOM_VARIABLES}  = $params{use_as_new} && $::form->{old_id}
 | ||
|                             ?  CVar->get_custom_variables(module => 'IC', trans_id => $::form->{old_id})
 | ||
|                             :  CVar->get_custom_variables(module => 'IC', trans_id => $self->part->id);
 | ||
|  | ||
|  | ||
|   if (scalar @{ $params{CUSTOM_VARIABLES} }) {
 | ||
|     CVar->render_inputs('variables' => $params{CUSTOM_VARIABLES}, show_disabled_message => 1, partsgroup_id => $self->part->partsgroup_id);
 | ||
| ... | ... | |
| }
 | ||
|  | ||
| sub parse_form {
 | ||
|   my ($self) = @_;
 | ||
|   my ($self, %params) = @_;
 | ||
|  | ||
|   my $is_new = !$self->part->id;
 | ||
|  | ||
| ... | ... | |
|     $self->part->add_assemblies( @{ $self->assembly_items } );
 | ||
|   };
 | ||
|  | ||
|   $self->part->translations([]);
 | ||
|   $self->part->translations([]) unless $params{use_as_new};
 | ||
|   $self->parse_form_translations;
 | ||
|  | ||
|   $self->part->prices([]);
 | ||
| SL/DB/Part.pm | ||
|---|---|---|
|   my $clone = $self->clone_and_reset; # resets id and partnumber (primary key and unique constraint)
 | ||
|   $clone->makemodels(   map { $_->clone_and_reset } @{$self->makemodels}   ) if @{$self->makemodels};
 | ||
|   $clone->translations( map { $_->clone_and_reset } @{$self->translations} ) if @{$self->translations};
 | ||
|  | ||
|   $clone->custom_variables( map { $_->clone_and_reset } @{$self->custom_variables} ) if @{$self->custom_variables};
 | ||
|   if ( $self->is_assortment ) {
 | ||
|     # use clone rather than reset_and_clone because the unique constraint would also remove parts_id
 | ||
|     $clone->assortment_items( map { $_->clone } @{$self->assortment_items} );
 | ||
Auch abrufbar als: Unified diff
Artikel als neu Speichern auch BDVs und Übersetzungen vom Vorgänger