- # Else, we only display the barcode
- my @simple_items_display = map {{ itemnumber => $_, barcode => GetBarcodeFromItemnumber($_), biblionumber => GetBiblionumberFromItemnumber($_) }} @itemnumbers;
- $template->param("simple_items_display" => \@simple_items_display);
+
+ # Job size is the number of items we have to process
+ my $job_size = scalar(@itemnumbers);
+ my $job = undef;
+ my $callback = sub {};
+
+ # If we asked for background processing
+ if ($runinbackground) {
+ $job = put_in_background($job_size);
+ $callback = progress_callback($job, $dbh);
+ }
+
+ # For each item
+ my $i = 1;
+ foreach my $itemnumber(@itemnumbers){
+
+ $job->progress($i) if $runinbackground;
+ my $itemdata=GetItem($itemnumber);
+ if ($input->param("del")){
+ my $return = DelItemCheck(C4::Context->dbh, $itemdata->{'biblionumber'}, $itemdata->{'itemnumber'});
+ if ($return == 1) {
+ $deleted_items++;
+ } else {
+ $not_deleted_items++;
+ push @not_deleted, { biblionumber => $itemdata->{'biblionumber'}, itemnumber => $itemdata->{'itemnumber'}, barcode => $itemdata->{'barcode'}, title => $itemdata->{'title'}, $return => 1 };
+ }
+ } else {
+ if ($something_to_modify) {
+ my $xml = TransformHtmlToXml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag, 'ITEM');
+ my $marcitem = MARC::Record::new_from_xml($xml, 'UTF-8');
+ my $localitem = TransformMarcToKoha( $dbh, $marcitem, "", 'items' );
+ my $localmarcitem=Item2Marc($itemdata);
+ UpdateMarcWith($marcitem,$localmarcitem);
+ eval{my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = ModItemFromMarc($localmarcitem,$itemdata->{biblionumber},$itemnumber)};
+ }
+ }
+ $i++;
+ }