+ # get the coin format
+ if ( ! $record ) {
+ # can't get a valid MARC::Record object, bail out at this point
+ warn "We called GetMarcBiblio with a biblionumber that doesn't exist biblionumber=$biblionumber";
+ return;
+ }
+ my $pos7 = substr $record->leader(), 7, 1;
+ my $pos6 = substr $record->leader(), 6, 1;
+ my $mtx;
+ my $genre;
+ my ( $aulast, $aufirst ) = ( '', '' );
+ my $oauthors = '';
+ my $title = '';
+ my $subtitle = '';
+ my $pubyear = '';
+ my $isbn = '';
+ my $issn = '';
+ my $publisher = '';
+
+ if ( C4::Context->preference("marcflavour") eq "UNIMARC" ) {
+ my $fmts6;
+ my $fmts7;
+ %$fmts6 = (
+ 'a' => 'book',
+ 'b' => 'manuscript',
+ 'c' => 'book',
+ 'd' => 'manuscript',
+ 'e' => 'map',
+ 'f' => 'map',
+ 'g' => 'film',
+ 'i' => 'audioRecording',
+ 'j' => 'audioRecording',
+ 'k' => 'artwork',
+ 'l' => 'document',
+ 'm' => 'computerProgram',
+ 'r' => 'document',
+
+ );
+ %$fmts7 = (
+ 'a' => 'journalArticle',
+ 's' => 'journal',
+ );
+
+ $genre = $fmts6->{$pos6} ? $fmts6->{$pos6} : 'book';
+
+ if ( $genre eq 'book' ) {
+ $genre = $fmts7->{$pos7} if $fmts7->{$pos7};
+ }
+
+ ##### We must transform mtx to a valable mtx and document type ####
+ if ( $genre eq 'book' ) {
+ $mtx = 'book';
+ } elsif ( $genre eq 'journal' ) {
+ $mtx = 'journal';
+ } elsif ( $genre eq 'journalArticle' ) {
+ $mtx = 'journal';
+ $genre = 'article';
+ } else {
+ $mtx = 'dc';
+ }
+
+ $genre = ( $mtx eq 'dc' ) ? "&rft.type=$genre" : "&rft.genre=$genre";
+
+ # Setting datas
+ $aulast = $record->subfield( '700', 'a' );
+ $aufirst = $record->subfield( '700', 'b' );
+ $oauthors = "&rft.au=$aufirst $aulast";
+
+ # others authors
+ if ( $record->field('200') ) {
+ for my $au ( $record->field('200')->subfield('g') ) {
+ $oauthors .= "&rft.au=$au";
+ }
+ }
+ $title =
+ ( $mtx eq 'dc' )
+ ? "&rft.title=" . $record->subfield( '200', 'a' )
+ : "&rft.title=" . $record->subfield( '200', 'a' ) . "&rft.btitle=" . $record->subfield( '200', 'a' );
+ $pubyear = $record->subfield( '210', 'd' );
+ $publisher = $record->subfield( '210', 'c' );
+ $isbn = $record->subfield( '010', 'a' );
+ $issn = $record->subfield( '011', 'a' );
+ } else {
+
+ # MARC21 need some improve
+ my $fmts;
+ $mtx = 'book';
+ $genre = "&rft.genre=book";
+
+ # Setting datas
+ if ( $record->field('100') ) {
+ $oauthors .= "&rft.au=" . $record->subfield( '100', 'a' );
+ }
+
+ # others authors
+ if ( $record->field('700') ) {
+ for my $au ( $record->field('700')->subfield('a') ) {
+ $oauthors .= "&rft.au=$au";
+ }
+ }
+ $title = "&rft.btitle=" . $record->subfield( '245', 'a' );
+ $subtitle = $record->subfield( '245', 'b' ) || '';
+ $title .= $subtitle;
+ $pubyear = $record->subfield( '260', 'c' ) || '';
+ $publisher = $record->subfield( '260', 'b' ) || '';
+ $isbn = $record->subfield( '020', 'a' ) || '';
+ $issn = $record->subfield( '022', 'a' ) || '';