Bug 9788: (follow-up) removing the alldates parameter from GetReservesFromItemnumber
[koha.git] / catalogue / detail.pl
index 955dbf5..25893be 100755 (executable)
@@ -20,6 +20,7 @@ use strict;
 use warnings;
 
 use CGI;
+use C4::Acquisition qw( GetHistory GetItemnumbersFromOrder );
 use C4::Auth;
 use C4::Dates qw/format_date/;
 use C4::Koha;
@@ -44,8 +45,6 @@ use C4::HTML5Media;
 use C4::CourseReserves qw(GetItemCourseReservesInfo);
 use C4::Acquisition qw(GetOrdersByBiblionumber);
 
-# use Smart::Comments;
-
 my $query = CGI->new();
 
 my $analyze = $query->param('analyze');
@@ -166,6 +165,19 @@ foreach my $subscription (@subscriptions) {
     push @subs, \%cell;
 }
 
+
+# Get acquisition details
+my ( $orders, $qty, $price, $received ) = C4::Acquisition::GetHistory( biblionumber => $biblionumber, get_canceled_order => 1 );
+if ( C4::Context->preference('AcqCreateItem') eq 'ordering' ) {
+    for my $order ( @$orders ) {
+        $order->{itemnumbers} = [ C4::Acquisition::GetItemnumbersFromOrder( $order->{ordernumber} ) ];
+    }
+}
+$template->param(
+    orders => $orders,
+    AcquisitionDetails => C4::Context->preference('AcquisitionDetails'),
+);
+
 if ( defined $dat->{'itemtype'} ) {
     $dat->{imageurl} = getitemtypeimagelocation( 'intranet', $itemtypes->{ $dat->{itemtype} }{imageurl} );
 }
@@ -221,7 +233,7 @@ foreach my $item (@items) {
     }
 
     # checking for holds
-    my ($reservedate,$reservedfor,$expectedAt) = GetReservesFromItemnumber($item->{itemnumber});
+    my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($item->{itemnumber});
     my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
     
     if (C4::Context->preference('HidePatronName')){
@@ -235,9 +247,12 @@ foreach my $item (@items) {
         $item->{ReservedForSurname}     = $ItemBorrowerReserveInfo->{'surname'};
         $item->{ReservedForFirstname}   = $ItemBorrowerReserveInfo->{'firstname'};
         $item->{ExpectedAtLibrary}      = $branches->{$expectedAt}{branchname};
-       $item->{Reservedcardnumber}             = $ItemBorrowerReserveInfo->{'cardnumber'};
+        $item->{Reservedcardnumber}             = $ItemBorrowerReserveInfo->{'cardnumber'};
+        # Check waiting status
+        $item->{waitingdate} = format_date($wait) if $wait;
     }
 
+
        # Check the transit status
     my ( $transfertwhen, $transfertfrom, $transfertto ) = GetTransfers($item->{itemnumber});
     if ( defined( $transfertwhen ) && ( $transfertwhen ne '' ) ) {
@@ -247,13 +262,6 @@ foreach my $item (@items) {
         $item->{nocancel} = 1;
     }
 
-    # FIXME: move this to a pm, check waiting status for holds
-    my $sth2 = $dbh->prepare("SELECT * FROM reserves WHERE borrowernumber=? AND itemnumber=? AND found='W'");
-    $sth2->execute($item->{ReservedForBorrowernumber},$item->{itemnumber});
-    while (my $wait_hashref = $sth2->fetchrow_hashref) {
-        $item->{waitingdate} = format_date($wait_hashref->{waitingdate});
-    }
-
     # item has a host number if its biblio number does not match the current bib
     if ($item->{biblionumber} ne $biblionumber){
         $item->{hostbiblionumber} = $item->{biblionumber};