X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=catalogue%2FISBDdetail.pl;h=2fa76bdda062b8db5d05e3129dd610b932295899;hb=5d6c092921919526ade501facb1220f8a108a08f;hp=7414d73e8d7d70a87233c7a7b605d80651dd3fbc;hpb=4747ea7462c04770484386538b1594c1760bc75b;p=koha_fer diff --git a/catalogue/ISBDdetail.pl b/catalogue/ISBDdetail.pl index 7414d73e8d..2fa76bdda0 100755 --- a/catalogue/ISBDdetail.pl +++ b/catalogue/ISBDdetail.pl @@ -13,9 +13,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 +23,7 @@ ISBDdetail.pl : script to show a biblio in ISBD format =head1 SYNOPSIS +=cut =head1 DESCRIPTION @@ -30,11 +31,10 @@ This script needs a biblionumber as parameter =head1 FUNCTIONS -=over 2 - =cut use strict; +#use warnings; FIXME - Bug 2505 use C4::Auth; use C4::Context; @@ -43,9 +43,12 @@ use CGI; use C4::Koha; use C4::Biblio; use C4::Items; +use C4::Members; # to use GetMember use C4::Branch; # GetBranchDetail use C4::Serials; # CountSubscriptionFromBiblionumber use C4::Search; # enabled_staff_search_views +use C4::Acquisition qw(GetOrdersByBiblionumber); + #---- Internal function @@ -66,9 +69,25 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( } ); -# my @blocs = split /\@/,$ISBD; -# my @fields = $record->fields(); my $res = GetISBDView($biblionumber, "intranet"); +if ( not defined $res ) { + # biblionumber invalid -> report and exit + $template->param( unknownbiblionumber => 1, + biblionumber => $biblionumber + ); + output_html_with_http_headers $query, $cookie, $template->output; + exit; +} + +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 with biblio my $itemcount = GetItemsCount($biblionumber); @@ -83,14 +102,49 @@ if ($subscriptionsnumber) { subscriptiontitle => $subscriptiontitle, ); } +my $record = GetMarcBiblio($biblionumber); $template->param ( ISBD => $res, biblionumber => $biblionumber, - isbdview => 1, - z3950_search_params => C4::Search::z3950_search_args(GetBiblioData($biblionumber)), - C4::Search::enabled_staff_search_views, + isbdview => 1, + z3950_search_params => C4::Search::z3950_search_args(GetBiblioData($biblionumber)), + ocoins => GetCOinSBiblio($record), + C4::Search::enabled_staff_search_views, + searchid => $query->param('searchid'), ); +my @allorders_using_biblio = GetOrdersByBiblionumber ($biblionumber); +my @deletedorders_using_biblio; +my @orders_using_biblio; +my @baskets_orders; +my @baskets_deletedorders; + +foreach my $myorder (@allorders_using_biblio) { + my $basket = $myorder->{'basketno'}; + if ((defined $myorder->{'datecancellationprinted'}) and ($myorder->{'datecancellationprinted'} ne '0000-00-00') ){ + push @deletedorders_using_biblio, $myorder; + unless (grep(/^$basket$/, @baskets_deletedorders)){ + push @baskets_deletedorders,$myorder->{'basketno'}; + } + } + else { + push @orders_using_biblio, $myorder; + unless (grep(/^$basket$/, @baskets_orders)){ + push @baskets_orders,$myorder->{'basketno'}; + } + } +} + +my $count_orders_using_biblio = scalar @orders_using_biblio ; +$template->param (countorders => $count_orders_using_biblio); + +my $count_deletedorders_using_biblio = scalar @deletedorders_using_biblio ; +$template->param (countdeletedorders => $count_deletedorders_using_biblio); + +my $holds = C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 }); +my $holdcount = scalar( @$holds ); +$template->param( holdcount => scalar ( @$holds ) ); + output_html_with_http_headers $query, $cookie, $template->output;