@@ -, +, @@ and add "Removes non-local records" option for existing functionality --- Koha/Exporter/Record.pm | 7 ++++--- koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt | 6 +++--- tools/export.pl | 8 ++++---- 3 files changed, 11 insertions(+), 10 deletions(-) --- a/Koha/Exporter/Record.pm +++ a/Koha/Exporter/Record.pm @@ -63,7 +63,7 @@ sub _get_biblio_for_export { my $biblionumber = $params->{biblionumber}; my $itemnumbers = $params->{itemnumbers}; my $export_items = $params->{export_items} // 1; - my $only_export_items_for_branch = $params->{only_export_items_for_branch}; + my $only_export_items_for_branches = $params->{only_export_items_for_branches}; my $record = eval { C4::Biblio::GetMarcBiblio({ biblionumber => $biblionumber }); }; @@ -71,12 +71,13 @@ sub _get_biblio_for_export { if ($export_items) { C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblionumber, $itemnumbers ); - if ($only_export_items_for_branch) { + if ($only_export_items_for_branches && @$only_export_items_for_branches) { + my %export_items_for_branches = map { $_ => 1 } @$only_export_items_for_branches; my ( $homebranchfield, $homebranchsubfield ) = GetMarcFromKohaField( 'items.homebranch', '' ); # Should be GetFrameworkCode( $biblionumber )? for my $itemfield ( $record->field($homebranchfield) ) { my $homebranch = $itemfield->subfield($homebranchsubfield); - if ( $only_export_items_for_branch ne $homebranch ) { + unless ( $export_items_for_branches{$homebranch} ) { $record->delete_field($itemfield); } } --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt @@ -96,7 +96,7 @@ $(document).ready(function() {
  • - + [% INCLUDE 'branch-selector.inc' branches = libraries %]
  • @@ -146,8 +146,8 @@ $(document).ready(function() {
  • - - + +
  • --- a/tools/export.pl +++ a/tools/export.pl @@ -87,13 +87,12 @@ if ( $op eq "export" ) { my $export_remove_fields = $query->param("export_remove_fields") || q||; my @biblionumbers = $query->multi_param("biblionumbers"); my @itemnumbers = $query->multi_param("itemnumbers"); - my $strip_nonlocal_items = $query->param('strip_nonlocal_items'); + my $strip_items_not_from_libraries = $query->param('strip_items_not_from_libraries'); my @sql_params; my $sql_query; - my $libraries = $strip_nonlocal_items - ? [ Koha::Libraries->find(C4::Context->userenv->{branch})->unblessed ] - : Koha::Libraries->search_filtered->unblessed; + my $libraries = Koha::Libraries->search_filtered->unblessed; + my $only_export_items_for_branches = $strip_items_not_from_libraries ? \@branch : undef; my @branchcodes; for my $branchcode ( @branch ) { if ( grep { $_->{branchcode} eq $branchcode } @$libraries ) { @@ -209,6 +208,7 @@ if ( $op eq "export" ) { dont_export_fields => $export_remove_fields, csv_profile_id => $csv_profile_id, export_items => (not $dont_export_items), + only_export_items_for_branches => $only_export_items_for_branches, } ); } --