WARNING: BIGFIXING 670
authorJoshua Ferraro <jmf@liblime.com>
Tue, 25 Dec 2007 17:06:52 +0000 (12:06 -0500)
committerJoshua Ferraro <jmf@liblime.com>
Tue, 25 Dec 2007 17:07:38 +0000 (11:07 -0600)
670 is primarily about the status of a biblio or item that's got a
hold on it ... specifically the 'in transit' and 'waiting' status.
It applies to the following pages.

* request.pl - tested
* detail.pl - tested
* circulation.pl - tested
* moremember.pl - tested
* opac-user.pl - doesn't show transit status, but only shows waiting
when item has arrived at the pickup library
* opac-detail.pl - doesn't show hold statuses

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
catalogue/detail.pl
koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl
reserve/request.pl

index 3e40f7c..8de0247 100755 (executable)
@@ -25,6 +25,7 @@ use C4::Koha;
 use C4::Serials;    #uses getsubscriptionfrom biblionumber
 use C4::Output;
 use C4::Biblio;
+use C4::Circulation;
 use C4::Branch;
 use C4::Reserves;
 use C4::Members;
@@ -117,6 +118,15 @@ foreach my $item (@items) {
         $item->{ExpectedAtLibrary}     = $branches->{$expectedAt}{branchname};
     }
 
+       # Check the transit status
+    my ( $transfertwhen, $transfertfrom, $transfertto ) = GetTransfers($item->{itemnumber});
+    if ( $transfertwhen ne '' ) {
+        $item->{transfertwhen} = format_date($transfertwhen);
+        $item->{transfertfrom} = $branches->{$transfertfrom}{branchname};
+        $item->{transfertto} = $branches->{$transfertto}{branchname};
+        $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' AND cancellationdate IS NULL");
     $sth2->execute($item->{ReservedForBorrowernumber},$item->{itemnumber});
index c965348..0fc2d01 100755 (executable)
@@ -466,7 +466,7 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span>
     <table>
         <tr>
             <th>Hold date</th>
-            <th>Status</th>
+            <th>Priority</th>
             <th>Title</th>
             <th>Author</th>
             <th>Call Number</th>
@@ -477,7 +477,7 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span>
                         <!-- TMPL_VAR NAME="reservedate" -->
                     </td>
                     <td>
-                        <!-- TMPL_IF name="barcodereserv" --><!-- TMPL_VAR NAME="barcodereserv" -->
+                        <!-- TMPL_IF name="barcodereserv" -->Item <!-- TMPL_VAR NAME="barcodereserv" --> targeted
                         <!-- /TMPL_IF -->
                         <!-- TMPL_IF NAME="waitingposition" -->
                         Hold priority
@@ -489,17 +489,17 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span>
 
                         <!-- TMPL_IF name="waiting" -->
                         <br />
-                        <i>This hold is available</i>
+                        <i>Item is waiting</i>
                         <!-- /TMPL_IF -->
                         <!-- TMPL_IF name="transfered" -->
                         <br />
-                        <i>This hold has been transfered from library
-                        <!-- TMPL_VAR NAME="frombranch" --> on  <!-- TMPL_VAR NAME="datesent" --> </i>
+                        <i>Item in transit from
+                        <!-- TMPL_VAR NAME="frombranch" --> since <!-- TMPL_VAR NAME="datesent" --> </i>
                         <!-- /TMPL_IF -->
 
                         <!-- TMPL_IF name="nottransfered" -->
                         <br />
-                        <i>This hold hasn't been transfered yet from library  <!-- TMPL_VAR NAME="nottransferedby" --></i>
+                        <i>This item hasn't been transfered yet from <!-- TMPL_VAR NAME="nottransferedby" --></i>
                         <!-- /TMPL_IF -->
                     </td>
                     <td><!-- TMPL_VAR NAME="author" --></td>
index c34dc05..cfc734a 100644 (file)
@@ -210,7 +210,7 @@ $(document).ready(function() {
         <tr>
                        <th scope="col"></th>
             <th scope="col">Title</th>
-            <th scope="col">Barcode</th>
+            <th scope="col">Priority</th>
             <th scope="col">Date due</th>
             <th scope="col">Itemtype</th>
             <th scope="col">Charge</th>
@@ -303,19 +303,20 @@ $(document).ready(function() {
                                        </td>
                                        <td>
                                                <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"><!-- TMPL_VAR NAME="title" --></a> (<b> <!-- TMPL_VAR NAME="itemtype" --> </b>) 
+                        <!-- TMPL_IF name="waiting" -->
+                        <br />
+                        <i>Item is waiting</i>
+                        <!-- /TMPL_IF -->
+                        <!-- TMPL_IF name="transfered" -->
+                        <br />
+                        <i>Item in transit from
+                        <!-- TMPL_VAR NAME="frombranch" --> since <!-- TMPL_VAR NAME="datesent" --> </i>
+                        <!-- /TMPL_IF -->
 
-                                               <!-- TMPL_IF name="waiting" -->
-                                               <i>This item is available</i>
-                                               <!-- /TMPL_IF -->
-                                               <!-- TMPL_IF name="transfered" -->
-                                               <i>This item has been transfered from library : 
-                                               <!-- TMPL_VAR NAME="frombranch" --> the : <!-- TMPL_VAR NAME="datesent" --> </i>
-                                               <!-- /TMPL_IF -->
-
-                                               <!-- TMPL_IF name="nottransfered" -->
-                                               <i>This item hasn't been transfered yet from library : <!-- TMPL_VAR NAME="nottransferedby" --></i>
-                                               <!-- /TMPL_IF -->
-                               
+                        <!-- TMPL_IF name="nottransfered" -->
+                        <br />
+                        <i>This item hasn't been transfered yet from <!-- TMPL_VAR NAME="nottransferedby" --></i>
+                        <!-- /TMPL_IF -->
                                        </td>
                                        <td><!-- TMPL_VAR NAME="author" --></td>
                                        <td><!-- TMPL_VAR NAME="itemcallnumber" --></td>
index e98a3ac..ac95675 100755 (executable)
@@ -96,7 +96,7 @@ if ($cardnumber) {
     my $count_reserv = 0;
     my $maxreserves;
 
-#      we check the reserves of the borrower, and if he can reserv a document
+#   we check the reserves of the borrower, and if he can reserv a document
 # FIXME At this time we have a simple count of reservs, but, later, we could improve the infos "title" ...
 
     my $number_reserves =
@@ -129,9 +129,9 @@ if ($cardnumber) {
                 borrowerstreetaddress => $borrowerinfo->{'address'},
                 borrowercity => $borrowerinfo->{'city'},
                 borrowerphone => $borrowerinfo->{'phone'},
-                               borrowermobile => $borrowerinfo->{'mobile'},
-                               borrowerfax => $borrowerinfo->{'fax'},
-                               borrowerphonepro => $borrowerinfo->{'phonepro'},
+                borrowermobile => $borrowerinfo->{'mobile'},
+                borrowerfax => $borrowerinfo->{'fax'},
+                borrowerphonepro => $borrowerinfo->{'phonepro'},
                 borroweremail => $borrowerinfo->{'email'},
                 borroweremailpro => $borrowerinfo->{'emailpro'},
                 borrowercategory => $borrowerinfo->{'category'},
@@ -239,8 +239,8 @@ foreach my $biblioitemnumber (@biblioitemnumbers) {
       my $itemnumber ( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} } )
     {
         my $item = $iteminfos_of->{$itemnumber};
-       $item->{itypename} = $itemtypes->{ $item->{itype} }{description};
-       $item->{imageurl} = getitemtypeimagesrc() . "/".$itemtypes->{ $item->{itype} }{imageurl};
+    $item->{itypename} = $itemtypes->{ $item->{itype} }{description};
+    $item->{imageurl} = getitemtypeimagesrc() . "/".$itemtypes->{ $item->{itype} }{imageurl};
         $item->{homebranchname} =
           $branches->{ $item->{homebranch} }{branchname};
 
@@ -251,9 +251,9 @@ foreach my $biblioitemnumber (@biblioitemnumbers) {
               $branches->{ $item->{holdingbranch} }{branchname};
         }
         
-#      add information
-       $item->{itemcallnumber} = $item->{itemcallnumber};
-       
+#   add information
+    $item->{itemcallnumber} = $item->{itemcallnumber};
+    
         # if the item is currently on loan, we display its return date and
         # change the background color
         my $issues= GetItemIssue($itemnumber);
@@ -294,7 +294,7 @@ foreach my $biblioitemnumber (@biblioitemnumbers) {
             $item->{backgroundcolor} = 'other';
         }
 
-        # Check of the transfered documents
+        # Check the transit status
         my ( $transfertwhen, $transfertfrom, $transfertto ) =
           GetTransfers($itemnumber);
 
@@ -303,44 +303,44 @@ foreach my $biblioitemnumber (@biblioitemnumbers) {
             $item->{transfertfrom} =
               $branches->{$transfertfrom}{branchname};
             $item->{transfertto} = $branches->{$transfertto}{branchname};
-               $item->{nocancel} = 1;
+        $item->{nocancel} = 1;
         }
 
         # If there is no loan, return and transfer, we show a checkbox.
         $item->{notforloan} = $item->{notforloan} || 0;
-       
-       # if independent branches is on we need to check if the person can reserve
-       # for branches they arent logged in to
-       if ( C4::Context->preference("IndependantBranches") ) { 
-           if (! C4::Context->preference("canreservefromotherbranches")){
-               # cant reserve items so need to check if item homebranch and userenv branch match if not we cant reserve
-               my $userenv = C4::Context->userenv; 
-               if ( ($userenv) && ( $userenv->{flags} != 1 ) ) {
-                   $item->{cantreserve} = 1 if ( $item->{homebranch} ne $userenv->{branch} );
-               
-           }
-       }
-
-       # FIXME: every library will define this differently
+    
+    # if independent branches is on we need to check if the person can reserve
+    # for branches they arent logged in to
+    if ( C4::Context->preference("IndependantBranches") ) { 
+        if (! C4::Context->preference("canreservefromotherbranches")){
+        # cant reserve items so need to check if item homebranch and userenv branch match if not we cant reserve
+        my $userenv = C4::Context->userenv; 
+        if ( ($userenv) && ( $userenv->{flags} != 1 ) ) {
+            $item->{cantreserve} = 1 if ( $item->{homebranch} ne $userenv->{branch} );
+        } 
+        }
+    }
+
+    # FIXME: every library will define this differently
         # An item is available only if:
         if (
             not defined $reservedate    # not reserved yet
             and $issues->{'date_due'} eq ''         # not currently on loan
             and not $item->{itemlost}   # not lost
             and not $item->{notforloan} # not forbidden to loan
-           and not $item->{cantreserve}
+        and not $item->{cantreserve}
             and $transfertwhen eq ''    # not currently on transfert
           )
         {
             $item->{available} = 1;
         }
 
-       # FIXME: move this to a pm
-       my $sth2 = $dbh->prepare("SELECT * FROM reserves WHERE borrowernumber=? AND itemnumber=? AND found='W' AND cancellationdate IS NULL");
-       $sth2->execute($item->{ReservedForBorrowernumber},$item->{itemnumber});
-       while (my $wait_hashref = $sth2->fetchrow_hashref) {
-           $item->{waitingdate} = format_date($wait_hashref->{waitingdate});
-       }
+    # FIXME: move this to a pm
+    my $sth2 = $dbh->prepare("SELECT * FROM reserves WHERE borrowernumber=? AND itemnumber=? AND found='W' AND cancellationdate IS NULL");
+    $sth2->execute($item->{ReservedForBorrowernumber},$item->{itemnumber});
+    while (my $wait_hashref = $sth2->fetchrow_hashref) {
+        $item->{waitingdate} = format_date($wait_hashref->{waitingdate});
+    }
         push @{ $biblioitem->{itemloop} }, $item;
     }
 
@@ -377,9 +377,9 @@ foreach my $res ( sort { $a->{found} cmp $b->{found} } @$reserves ) {
         $reserve{'wait'}= 1; 
         $reserve{'holdingbranch'}=$item->{'holdingbranch'};
         $reserve{'biblionumber'}=$item->{'biblionumber'};
-        $reserve{'barcodenumber'}      = $item->{'barcode'};
+        $reserve{'barcodenumber'}   = $item->{'barcode'};
         $reserve{'wbrcode'} = $res->{'branchcode'};
-        $reserve{'itemnumber'} = $res->{'itemnumber'};
+        $reserve{'itemnumber'}  = $res->{'itemnumber'};
         $reserve{'wbrname'} = $branches->{$res->{'branchcode'}}->{'branchname'};
         if($reserve{'holdingbranch'} eq $reserve{'wbrcode'}){
             $reserve{'atdestination'} = 1;
@@ -405,7 +405,7 @@ my $reserveborrowerinfo = GetMemberDetails( $res->{'borrowernumber'}, 0);
     $reserve{'voldesc'}         = $res->{'volumeddesc'};
     $reserve{'ccode'}           = $res->{'ccode'};
     $reserve{'barcode'}         = $res->{'barcode'};
-    $reserve{'priority'}       = $res->{'priority'};
+    $reserve{'priority'}    = $res->{'priority'};
     $reserve{'branchloop'} = \@branchloop;
     $reserve{'optionloop'} = \@optionloop;
 
@@ -422,7 +422,7 @@ foreach my $branchcode ( keys %{$branches} ) {
 }
 my $CGIbranch = CGI::scrolling_list(
     -name     => 'pickup',
-       -id          => 'pickup',
+    -id          => 'pickup',
     -values   => \@values,
     -default  => $default,
     -labels   => \%label_of,
@@ -437,7 +437,7 @@ $template->param(
     CGIbranch   => $CGIbranch,
     reserveloop => \@reserveloop,
     time        => $time,
-    fixedRank  => $fixedRank,
+    fixedRank   => $fixedRank,
 );
 
 # display infos