From d4db6219ab6622344bba42d75cf8f35b8e9f681d 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 Test plan: 1. Enable system preference ExportCircHistory 2. Create an item bundle (see bug 28854 comment 458) 3. Check out the item bundle 4. 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 2, but also the biblio and items that are part of the bundle Signed-off-by: Marie-Luce Signed-off-by: Katrin Fischer --- Koha/Exporter/Record.pm | 2 +- .../prog/en/includes/checkouts-table.inc | 1 + tools/export.pl | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Koha/Exporter/Record.pm b/Koha/Exporter/Record.pm index e678c36ee1..49c86c8c42 100644 --- a/Koha/Exporter/Record.pm +++ b/Koha/Exporter/Record.pm @@ -132,7 +132,7 @@ sub _get_biblio_for_export { record => $record, embed_items => 1, biblionumber => $biblionumber, - item_numbers => $itemnumbers, + itemnumbers => $itemnumbers, } ); if ($only_export_items_for_branches && @$only_export_items_for_branches) { 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 c74be444ac..5d4158a2d1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/checkouts-table.inc @@ -77,6 +77,7 @@ [% END %] [% END %] + diff --git a/tools/export.pl b/tools/export.pl index 345158eedd..3fc79d7a5c 100755 --- a/tools/export.pl +++ b/tools/export.pl @@ -196,6 +196,22 @@ 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('ItemBundle'); + foreach my $itemnumber (@itemnumbers) { + my @item_bundle_items = $items_bundle_rs->search({ host => $itemnumber }); + foreach my $item_bundle_item (@item_bundle_items) { + my $biblionumber = $item_bundle_item->item->get_column('biblionumber'); + my $itemnumber = $item_bundle_item->get_column('item'); + push @record_ids, $biblionumber; + push @itemnumbers, $itemnumber; + } + } + @record_ids = uniq @record_ids; + } + print CGI->new->header( -type => 'application/octet-stream', -charset => 'utf-8', -- 2.30.2