X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=catalogue%2FMARCdetail.pl;h=04900764029f3c7ad7d503592d3da8756ed8422e;hb=84f53799d7574693e1dd520230a2bba9ab439703;hp=db1c6f4b99143257aef507469417a48d5f021ec5;hpb=81e5fdd249be7cde71eb2c581ff247c0178b55b4;p=koha_gimpoz diff --git a/catalogue/MARCdetail.pl b/catalogue/MARCdetail.pl index db1c6f4b99..0490076402 100755 --- a/catalogue/MARCdetail.pl +++ b/catalogue/MARCdetail.pl @@ -1,6 +1,7 @@ #!/usr/bin/perl # Copyright 2000-2002 Katipo Communications +# Copyright 2010 BibLibre # # This file is part of Koha. # @@ -13,9 +14,9 @@ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. =head1 NAME @@ -23,6 +24,7 @@ MARCdetail.pl : script to show a biblio in MARC format =head1 SYNOPSIS +=cut =head1 DESCRIPTION @@ -39,11 +41,10 @@ the items attached to the biblio =head1 FUNCTIONS -=over 2 - =cut use strict; +#use warnings; FIXME - Bug 2505 use C4::Auth; use C4::Context; @@ -54,7 +55,9 @@ use MARC::Record; use C4::Biblio; use C4::Items; use C4::Acquisition; +use C4::Members; # to use GetMember use C4::Serials; #uses getsubscriptionsfrombiblionumber GetSubscriptionsFromBiblionumber +use C4::Search; # enabled_staff_search_views my $query = new CGI; @@ -67,10 +70,6 @@ my $popup = ; # if set to 1, then don't insert links, it's just to show the biblio my $subscriptionid = $query->param('subscriptionid'); -my $tagslib = &GetMarcStructure(1,$frameworkcode); - -my $record = GetMarcBiblio($biblionumber); -my $biblio = GetBiblioData($biblionumber); # open template my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { @@ -83,35 +82,51 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( } ); +my $record = GetMarcBiblio($biblionumber); +$template->param( ocoins => GetCOinSBiblio($record) ); + +if ( not defined $record ) { + # biblionumber invalid -> report and exit + $template->param( unknownbiblionumber => 1, + biblionumber => $biblionumber + ); + output_html_with_http_headers $query, $cookie, $template->output; + exit; +} + +my $tagslib = &GetMarcStructure(1,$frameworkcode); +my $biblio = GetBiblioData($biblionumber); + +if($query->cookie("holdfor")){ + my $holdfor_patron = GetMember('borrowernumber' => $query->cookie("holdfor")); + $template->param( + holdfor => $query->cookie("holdfor"), + holdfor_surname => $holdfor_patron->{'surname'}, + holdfor_firstname => $holdfor_patron->{'firstname'}, + holdfor_cardnumber => $holdfor_patron->{'cardnumber'}, + ); +} + #count of item linked my $itemcount = GetItemsCount($biblionumber); $template->param( count => $itemcount, bibliotitle => $biblio->{title}, ); -#Getting the list of all frameworks -my $queryfwk = - $dbh->prepare("select frameworktext, frameworkcode from biblio_framework"); -$queryfwk->execute; -my %select_fwk; -my @select_fwk; -my $curfwk; -push @select_fwk, "Default"; -$select_fwk{"Default"} = "Default"; - -while ( my ( $description, $fwk ) = $queryfwk->fetchrow ) { - push @select_fwk, $fwk; - $select_fwk{$fwk} = $description; +# Getting the list of all frameworks +# get framework list +my $frameworks = getframeworks; +my @frameworkcodeloop; +foreach my $thisframeworkcode ( keys %$frameworks ) { + my %row = ( + value => $thisframeworkcode, + frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'}, + ); + if ($frameworkcode eq $thisframeworkcode){ + $row{'selected'}= 1; + } + push @frameworkcodeloop, \%row; } -$curfwk=$frameworkcode; -my $framework=CGI::scrolling_list( -name => 'Frameworks', - -id => 'Frameworks', - -default => $curfwk, - -OnChange => 'Changefwk(this);', - -values => \@select_fwk, - -labels => \%select_fwk, - -size => 1, - -multiple => 0 ); -$template->param(framework => $framework); +$template->param( frameworkcodeloop => \@frameworkcodeloop, ); # fill arrays my @loop_data = (); my $tag; @@ -235,7 +250,7 @@ for ( my $tabloop = 0 ; $tabloop <= 10 ; $tabloop++ ) { undef @subfields_data; } } - $template->param( $tabloop . "XX" => \@loop_data ); + $template->param( "tab" . $tabloop . "XX" => \@loop_data ); } # now, build item tab ! @@ -247,6 +262,7 @@ my @fields = $record->fields(); my %witness ; #---- stores the list of subfields used at least once, with the "meaning" of the code my @big_array; +my $norequests = 1; foreach my $field (@fields) { next if ( $field->tag() < 10 ); my @subf = $field->subfields; @@ -260,11 +276,13 @@ foreach my $field (@fields) { $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{lib}; $this_row{ $subf[$i][0] } = GetAuthorisedValueDesc( $field->tag(), $subf[$i][0], $subf[$i][1], '', $tagslib) || $subf[$i][1]; + $norequests = 0 if $subf[$i][1] ==0 and $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield} eq 'items.notforloan'; } if (%this_row) { push( @big_array, \%this_row ); } } + my ($holdingbrtagf,$holdingbrtagsubf) = &GetMarcFromKohaField("items.holdingbranch",$frameworkcode); @big_array = sort {$a->{$holdingbrtagsubf} cmp $b->{$holdingbrtagsubf}} @big_array; @@ -306,12 +324,15 @@ if ($subscriptionscount) { } $template->param ( + norequests => $norequests, item_loop => \@item_value_loop, item_header_loop => \@header_value_loop, biblionumber => $biblionumber, popup => $popup, hide_marc => C4::Context->preference('hide_marc'), marcview => 1, + z3950_search_params => C4::Search::z3950_search_args($biblio), + C4::Search::enabled_staff_search_views, ); output_html_with_http_headers $query, $cookie, $template->output;