Incorporates the facets from dev_week. This one is table read so its both UNIMARC...
[koha.git] / catalogue / detail.pl
1 #!/usr/bin/perl
2 use strict;
3 require Exporter;
4 use C4::Search;
5 use C4::Auth;
6 use C4::Serials; #uses getsubscriptionfrom biblionumber
7 use C4::Interface::CGI::Output;
8 use CGI;
9 use C4::Biblio;
10 use C4::Context;
11
12 use Encode;
13
14 my $dbh=C4::Context->dbh;
15 my $query=new CGI;
16 my ($template, $borrowernumber, $cookie) 
17     = get_template_and_user({template_name => "catalogue/detail.tmpl",
18                              query => $query,
19                              type => "intranet",
20                              authnotrequired => 1,
21                              flagsrequired => {borrow => 1},
22                              });
23
24 my $biblionumber=$query->param('biblionumber');
25 $template->param(biblionumber => $biblionumber);
26 my $retrieve_from=C4::Context->preference('retrieve_from');
27 my ($record,$frameworkcode);
28 my @itemrecords;
29 my @items;
30 if ($retrieve_from eq "zebra"){
31 ($record,@itemrecords)=ZEBRAgetrecord($biblionumber);
32 }else{
33  $record =XMLgetbiblio($dbh,$biblionumber);
34 $record=XML_xml2hash_onerecord($record);
35 my @itemxmls=XMLgetallitems($dbh,$biblionumber);
36         foreach my $itemrecord(@itemxmls){
37         my $itemhash=XML_xml2hash_onerecord($itemrecord);
38         push @itemrecords, $itemhash;
39         }
40 }       
41
42 my $dat = XMLmarc2koha_onerecord($dbh,$record,"biblios");
43 my $norequests = 1;
44 foreach my $itemrecord (@itemrecords){
45
46 my $item= XMLmarc2koha_onerecord($dbh,$itemrecord,"holdings");
47 $item=ItemInfo($dbh,$item);
48 $item->{itemtype}=$dat->{itemtype};
49   $norequests = 0 unless $item->{'notforloan'};
50    $item->{$item->{'publictype'}} = 1; ## NOT sure what this is kept from old db probably useless now
51 push @items,$item;
52 }
53
54 my $subscriptionsnumber = GetSubscriptionsFromBiblionumber($biblionumber);
55
56 $dat->{'count'}=@items;
57 $template->param(count =>$dat->{'count'});
58 $template->param(norequests => $norequests);
59
60   ## get notes subjects and URLS from MARC record
61         
62         my $marcflavour = C4::Context->preference("marcflavour");
63         my $marcnotesarray = &getMARCnotes($dbh,$record,$marcflavour);
64         my $marcsubjctsarray = &getMARCsubjects($dbh,$record,$marcflavour);
65         my $marcurlssarray = &getMARCurls($dbh,$record,$marcflavour);
66         $template->param(MARCURLS => $marcurlssarray);
67         $template->param(MARCNOTES => $marcnotesarray);
68         $template->param(MARCSUBJCTS => $marcsubjctsarray);
69
70
71 my @results = ($dat,);
72
73 my $resultsarray=\@results;
74 my $itemsarray=\@items;
75
76
77 $template->param(BIBLIO_RESULTS => $resultsarray,
78                                 ITEM_RESULTS => $itemsarray,
79                                 subscriptionsnumber => $subscriptionsnumber,
80 );
81
82 output_html_with_http_headers $query, $cookie, $template->output;