From 500d2ecec814d1a249c95f798bd844d92cb144f4 Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Thu, 14 May 2020 11:56:23 +0200 Subject: [PATCH] Bug 25503: Add option to export items bundle contents in checkouts table This patch depends on bug 24023 Test plan: 1. Apply bug 24023 + this patch, run updatedatabase && update_dbix. 2. Enable system preference ExportCircHistory 3. Create a biblio record with one item 4. On the biblio details page, click on 'Edit -> Link elements'. Link at least one item 5. Check out the item created at step 3 6. In the checkouts table, check the box in column "Export", choose export format 'MARC with items', check "Export items bundle contents" and click on "Export" button The exported file should contain the biblio and item created at step 3, but also the item linked at step 4 with its biblio record --- .../prog/en/includes/checkouts-table.inc | 1 + tools/export.pl | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc index 7b967bec89..4d9f0f844c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc @@ -71,6 +71,7 @@ [% END %] [% END %] + diff --git a/tools/export.pl b/tools/export.pl index 97ff255da0..71e045e41f 100755 --- a/tools/export.pl +++ b/tools/export.pl @@ -197,6 +197,24 @@ if ( $op eq "export" ) { @record_ids = grep $record_ids{$_}, @filter_record_ids; } + my $export_items_bundle_contents = $query->param('export_items_bundle_contents'); + if ($export_items_bundle_contents and $record_type eq 'bibs') { + my $schema = Koha::Database->new->schema; + my $items_bundle_rs = $schema->resultset('ItemsBundle'); + foreach my $record_id (@record_ids) { + my $item_bundle = $items_bundle_rs->find({ biblionumber => $record_id }); + if ($item_bundle) { + foreach my $items_bundle_item ($item_bundle->items_bundle_items) { + my $biblionumber = $items_bundle_item->itemnumber->get_column('biblionumber'); + my $itemnumber = $items_bundle_item->get_column('itemnumber'); + push @record_ids, $biblionumber; + push @itemnumbers, $itemnumber; + } + } + } + @record_ids = uniq @record_ids; + } + print CGI->new->header( -type => 'application/octet-stream', -charset => 'utf-8', -- 2.20.1