Bug 21395: Fix QA errors
[koha.git] / misc / migration_tools / 22_to_30 / export_Authorities_xml.pl
blob6c917088a7ed0a2db7bbcae0623f4ac6ae85c8cc
1 #!/usr/bin/perl
2 use Modern::Perl;
3 BEGIN {
4 # find Koha's Perl modules
5 # test carefully before changing this
6 use FindBin;
7 eval { require "$FindBin::Bin/../../kohalib.pl" };
9 use C4::Context;
10 use MARC::File::XML(BinaryEncoding=>"utf8");
11 use MARC::Record;
12 use C4::AuthoritiesMarc;
13 use POSIX;
14 MARC::File::XML::default_record_format("UNIMARCAUTH");
15 my $dbh = C4::Context->dbh;
16 my $rq= $dbh->prepare(qq|
17 SELECT authid
18 FROM auth_header
19 |);
20 my $filename= shift @ARGV;
21 $rq->execute;
22 #ATTENTION : Mettre la base en utf8 auparavant.
23 #BEWARE : Set database into utf8 before.
24 while (my ($authid)=$rq->fetchrow){
25 open my $fileoutput, '>:encoding(UTF-8)', "./$filename/$authid.xml" or die "unable to open $filename";
26 my $record=AUTHgetauthority($dbh,$authid);
27 if (! utf8::is_utf8($record)) {
28 utf8::decode($record);
31 # if (C4::Context->preference('marcflavour') eq "UNIMARC"){
32 $record->leader(' nac 22 1u 4500');
33 my @time = localtime(time);
34 my $time = sprintf('%04d%02d%02d', $time[5] + 1900, $time[4] + 1, $time[3]);
35 my $string = ($time=~m/([0-9\-]+)/) ? $1 : undef;
36 $string=~s/\-//g;
37 $string = sprintf("%-*s",26, $string);
38 substr($string,9,6,"frey50");
39 unless ($record->subfield(100,"a")){
40 $record->insert_fields_ordered(MARC::Field->new(100,"","","a"=>$string));
42 unless ($record->subfield('001')){
43 $record->insert_fields_ordered(MARC::Field->new('001',$authid));
45 # } else {
46 # $record->encoding( 'UTF-8' );
47 # }
48 print {$fileoutput} $record->as_xml();
49 close $fileoutput;