Bug 5549 : Duedate formatting : reserves and opac
[koha.git] / reserve / request.pl
index 1a4f027..b96447f 100755 (executable)
@@ -28,7 +28,7 @@ script to place reserves/requests
 
 use strict;
 use warnings;
-use C4::Branch; # GetBranches get_branchinfos_of
+use C4::Branch;
 use CGI;
 use List::MoreUtils qw/uniq/;
 use Date::Calc qw/Date_to_Days/;
@@ -42,6 +42,7 @@ use C4::Circulation;
 use C4::Dates qw/format_date/;
 use C4::Members;
 use C4::Search;                # enabled_staff_search_views
+use Koha::DateUtils;
 
 my $dbh = C4::Context->dbh;
 my $sth;
@@ -112,26 +113,24 @@ if ( $action eq 'move' ) {
 }
 
 if ($findborrower) {
-    my ( $count, $borrowers ) =
-      SearchMember($findborrower, 'cardnumber', 'web' );
+    my $borrowers = Search($findborrower, 'cardnumber');
 
-    my @borrowers = @$borrowers;
-
-    if ( !@borrowers ) {
+    if ($borrowers && @$borrowers) {
+        if ( @$borrowers == 1 ) {
+            $borrowernumber_hold = $borrowers->[0]->{'borrowernumber'};
+        }
+        else {
+            $borrowerslist = $borrowers;
+        }
+    } else {
         $messageborrower = "'$findborrower'";
     }
-    elsif ( @borrowers == 1 ) {
-        $borrowernumber_hold = $borrowers[0]->{'borrowernumber'};
-    }
-    else {
-        $borrowerslist = \@borrowers;
-    }
 }
 
 # If we have the borrowernumber because we've performed an action, then we
 # don't want to try to place another reserve.
 if ($borrowernumber_hold && !$action) {
-    my $borrowerinfo = GetMemberDetails( $borrowernumber_hold );
+    my $borrowerinfo = GetMember( borrowernumber => $borrowernumber_hold );
     my $diffbranch;
     my @getreservloop;
     my $count_reserv = 0;
@@ -194,9 +193,9 @@ if ($borrowerslist) {
 
     foreach my $borrower (
         sort {
-                $a->{surname}
-              . $a->{firstname} cmp $b->{surname}
-              . $b->{firstname}
+                uc($a->{surname}
+              . $a->{firstname}) cmp uc($b->{surname}
+              . $b->{firstname})
         } @{$borrowerslist}
       )
     {
@@ -219,8 +218,8 @@ if ($borrowerslist) {
     );
 }
 
-# FIXME launch another time GetMemberDetails perhaps until
-my $borrowerinfo = GetMemberDetails( $borrowernumber_hold );
+# FIXME launch another time GetMember perhaps until
+my $borrowerinfo = GetMember( borrowernumber => $borrowernumber_hold );
 
 my @biblionumbers = ();
 my $biblionumbers = $input->param('biblionumbers');
@@ -292,7 +291,13 @@ foreach my $biblionumber (@biblionumbers) {
     if (my $items = get_itemnumbers_of($biblionumber)->{$biblionumber}){
         @itemnumbers  = @$items;
     }
-    else {
+       my @hostitems = get_hostitemnumbers_of($biblionumber);
+       if (@hostitems){
+               $template->param('hostitemsflag' => 1);
+               push(@itemnumbers, @hostitems);
+       }
+
+    if (!@itemnumbers) {
         $template->param('noitems' => 1);
         $biblioloopiter{noitems} = 1;
     }
@@ -325,6 +330,9 @@ foreach my $biblionumber (@biblionumbers) {
 
         $biblioitem->{description} =
           $itemtypes->{ $biblioitem->{itemtype} }{description};
+       if($biblioitem->{biblioitemnumber} ne $biblionumber){
+               $biblioitem->{hostitemsflag}=1;
+       }
         $biblioloopiter{description} = $biblioitem->{description};
         $biblioloopiter{itypename} = $biblioitem->{description};
         $biblioloopiter{imageurl} =
@@ -348,6 +356,11 @@ foreach my $biblionumber (@biblionumbers) {
                   $branches->{ $item->{holdingbranch} }{branchname};
             }
 
+               if($item->{biblionumber} ne $biblionumber){
+                       $item->{hostitemsflag}=1;
+                       $item->{hosttitle} = GetBiblioData($item->{biblionumber})->{title};
+               }
+               
             #   add information
             $item->{itemcallnumber} = $item->{itemcallnumber};
 
@@ -355,13 +368,13 @@ foreach my $biblionumber (@biblionumbers) {
             # change the background color
             my $issues= GetItemIssue($itemnumber);
             if ( $issues->{'date_due'} ) {
-                $item->{date_due} = format_date($issues->{'date_due'});
+                $item->{date_due} = format_sqldatetime($issues->{date_due});
                 $item->{backgroundcolor} = 'onloan';
             }
 
             # checking reserve
             my ($reservedate,$reservedfor,$expectedAt) = GetReservesFromItemnumber($itemnumber);
-            my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
+            my $ItemBorrowerReserveInfo = GetMember( borrowernumber => $reservedfor );
 
             if ( defined $reservedate ) {
                 $item->{backgroundcolor} = 'reserved';
@@ -530,7 +543,7 @@ foreach my $biblionumber (@biblionumbers) {
         }
 
         #     get borrowers reserve info
-        my $reserveborrowerinfo = GetMemberDetails( $res->{'borrowernumber'}, 0);
+        my $reserveborrowerinfo = GetMember( borrowernumber => $res->{'borrowernumber'} );
         if (C4::Context->preference('HidePatronName')){
            $reserve{'hidename'} = 1;
            $reserve{'cardnumber'} = $reserveborrowerinfo->{'cardnumber'};