@@ -, +, @@ actions --- cataloguing/additem.pl | 34 ++++++++++++++++++++++ .../prog/en/modules/cataloguing/additem.tt | 17 ++++++++--- 2 files changed, 47 insertions(+), 4 deletions(-) --- a/cataloguing/additem.pl +++ a/cataloguing/additem.pl @@ -585,6 +585,40 @@ if ($op eq "additem") { $itemrecord = C4::Items::GetMarcItem($biblionumber,$itemnumber); $nextop = "saveitem"; #------------------------------------------------------------------------------- +} elsif ($op eq "dupeitem") { +#------------------------------------------------------------------------------- +# retrieve item if exist => then, it's a modif + $itemrecord = C4::Items::GetMarcItem($biblionumber,$itemnumber); + if (C4::Context->preference('autoBarcode') eq 'incremental') { + $itemrecord = _increment_barcode($itemrecord, $frameworkcode); + } + else { + # we have to clear the barcode field in the duplicate item record to make way for the new one generated by the javascript plugin + my ($tagfield,$tagsubfield) = &GetMarcFromKohaField("items.barcode",$frameworkcode); + my $fieldItem = $itemrecord->field($tagfield); + $itemrecord->delete_field($fieldItem); + $fieldItem->delete_subfields($tagsubfield); + $itemrecord->insert_fields_ordered($fieldItem); + } + + #check for hidden subfield and remove them for the duplicated item + foreach my $field ($itemrecord->fields()){ + my $tag = $field->{_tag}; + foreach my $subfield ($field->subfields()){ + my $subfieldtag = $subfield->[0]; + if (subfield_is_koha_internal_p($subfieldtag) || $tagslib->{$tag}->{$subfieldtag}->{'tab'} ne "10" + || abs($tagslib->{$tag}->{$subfieldtag}->{hidden})>4 ){ + my $fieldItem = $itemrecord->field($tag); + $itemrecord->delete_field($fieldItem); + $fieldItem->delete_subfields($subfieldtag); + $itemrecord->insert_fields_ordered($fieldItem); + } + } + } + + $itemrecord = removeFieldsForPrefill($itemrecord) if ($prefillitem); + $nextop = "additem"; +#------------------------------------------------------------------------------- } elsif ($op eq "delitem") { #------------------------------------------------------------------------------- # check that there is no issue on this item before deletion. --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt @@ -172,16 +172,25 @@ function confirm_deletion() {   [% ELSE %] + [% END %] [% FOREACH item_valu IN item_loo.item_value %] --