# Suite 330, Boston, MA 02111-1307 USA
use Modern::Perl;
+use MARC::File::XML;
use List::MoreUtils qw(uniq);
use Getopt::Long;
use CGI;
use C4::Auth;
use C4::AuthoritiesMarc; # GetAuthority
-use C4::Biblio; # GetMarcBiblio GetXmlBiblio
+use C4::Biblio; # GetMarcBiblio
use C4::Branch; # GetBranches
use C4::Csv;
use C4::Koha; # GetItemTypes
);
my $limit_ind_branch =
- ( C4::Context->preference('IndependantBranches')
+ ( C4::Context->preference('IndependentBranches')
&& C4::Context->userenv
&& !( C4::Context->userenv->{flags} & 1 )
&& C4::Context->userenv->{branch} ) ? 1 : 0;
my $branch = $query->param("branch") || '';
-if ( C4::Context->preference("IndependantBranches")
+if ( C4::Context->preference("IndependentBranches")
&& C4::Context->userenv
&& !( C4::Context->userenv->{flags} & 1 ) )
{
} @{ $sth->fetchall_arrayref };
}
+ my $xml_header_written = 0;
for my $recordid ( uniq @recordids ) {
if ($deleted_barcodes) {
my $q = "
}
RemoveAllNsb($record) if ($clean);
if ( $output_format eq "xml" ) {
- if ( $marcflavour eq 'UNIMARC' && $record_type eq 'auths' )
- {
- print $record->as_xml_record('UNIMARCAUTH');
- }
- else {
- print $record->as_xml_record($marcflavour);
+ unless ($xml_header_written) {
+ MARC::File::XML->default_record_format(
+ (
+ $marcflavour eq 'UNIMARC'
+ && $record_type eq 'auths'
+ ) ? 'UNIMARCAUTH' : $marcflavour
+ );
+ print MARC::File::XML::header();
+ print "\n";
+ $xml_header_written = 1;
}
+ print MARC::File::XML::record($record);
+ print "\n";
}
else {
print $record->as_usmarc();
}
}
}
+ if ($xml_header_written) {
+ print MARC::File::XML::footer();
+ print "\n";
+ }
+
exit;
}
elsif ( $format eq "csv" ) {
$template->param(
branchloop => \@branchloop,
itemtypeloop => \@itemtypesloop,
- DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
authtypeloop => \@authtypesloop,
export_remove_fields => C4::Context->preference("ExportRemoveFields"),
);
}
if ($start_callnumber) {
- $sql_query .= " AND itemcallnumber <= ? ";
+ $sql_query .= " AND itemcallnumber >= ? ";
push @sql_params, $start_callnumber;
}
if ($end_callnumber) {
- $sql_query .= " AND itemcallnumber >= ? ";
+ $sql_query .= " AND itemcallnumber <= ? ";
push @sql_params, $end_callnumber;
}
if ($start_accession) {