Additional change for bug 5922 - Show waiting items for patron on return
[koha.git] / circ / returns.pl
index 2611099..1996f24 100755 (executable)
@@ -2,7 +2,7 @@
 
 # Copyright 2000-2002 Katipo Communications
 #           2006 SAN-OP
-#           2007 BibLibre, Paul POULAIN
+#           2007-2010 BibLibre, Paul POULAIN
 #
 # This file is part of Koha.
 #
@@ -208,6 +208,7 @@ if ($barcode) {
 #
     ( $returned, $messages, $issueinformation, $borrower ) =
       AddReturn( $barcode, $userenv_branch, $exemptfine, $dropboxmode);     # do the return
+    my $homeorholdingbranchreturn = C4::Context->preference('HomeOrHoldingBranchReturn') or 'homebranch';
 
     # get biblio description
     my $biblio = GetBiblioFromItemNumber($itemnumber);
@@ -217,7 +218,7 @@ if ($barcode) {
     $template->param(
         title            => $biblio->{'title'},
         homebranch       => $biblio->{'homebranch'},
-        homebranchname   => GetBranchName( $biblio->{'homebranch'} ),
+        homebranchname   => GetBranchName( $biblio->{$homeorholdingbranchreturn} ),
         author           => $biblio->{'author'},
         itembarcode      => $biblio->{'barcode'},
         itemtype         => $biblio->{'itemtype'},
@@ -240,6 +241,33 @@ if ($barcode) {
         $input{duedate}        = $duedate;
         $input{return_overdue} = 1 if ($duedate and $duedate lt $today->output('iso'));
         push( @inputloop, \%input );
+
+        if ( C4::Context->preference("FineNotifyAtCheckin") ) {
+            my ( $od, $issue, $fines ) = GetMemberIssuesAndFines( $borrower->{'borrowernumber'} );
+            if ($fines > 0) {
+                $template->param( fines => sprintf("%.2f",$fines) );
+                $template->param( fineborrowernumber => $borrower->{'borrowernumber'} );
+            }
+        }
+        
+        if (C4::Context->preference("WaitingNotifyAtCheckin") ) {
+            #Check for waiting holds
+            my @reserves = GetReservesFromBorrowernumber($borrower->{'borrowernumber'});
+            my $waiting_holds;
+            foreach my $num_res (@reserves) {
+                if ( $num_res->{'found'} eq 'W' && $num_res->{'branchcode'} eq $userenv_branch) {
+                    $waiting_holds++;
+                }
+            } 
+            if ($waiting_holds > 0) {
+                $template->param(
+                    waiting_holds       => $waiting_holds,
+                    holdsborrowernumber => $borrower->{'borrowernumber'},
+                    holdsfirstname => $borrower->{'firstname'},
+                    holdssurname => $borrower->{'surname'},
+                );
+            }
+        }
     }
     elsif ( !$messages->{'BadBarcode'} ) {
         $input{duedate}   = 0;
@@ -528,6 +556,7 @@ foreach ( sort { $a <=> $b } keys %returneditems ) {
         $ri{itembiblionumber} = $biblio->{'biblionumber'};
         $ri{itemtitle}        = $biblio->{'title'};
         $ri{itemauthor}       = $biblio->{'author'};
+        $ri{itemcallnumber}   = $biblio->{'itemcallnumber'};
         $ri{itemtype}         = $biblio->{'itemtype'};
         $ri{itemnote}         = $biblio->{'itemnotes'};
         $ri{ccode}            = $biblio->{'ccode'};
@@ -554,16 +583,20 @@ $template->param(
     soundon        => C4::Context->preference("SoundOn"),
 );
 
-my $itemnumber = GetItemnumberFromBarcode( $query->param('barcode') );
-if ( $itemnumber ) {
-    my ( $holdingBranch, $collectionBranch ) = GetCollectionItemBranches( $itemnumber );
-    if ( ! ( $holdingBranch eq $collectionBranch ) ) {
-        $template->param(
-          collectionItemNeedsTransferred => 1,
-          collectionBranch => GetBranchName($collectionBranch),
-        );
-    }
-}                                                                                                            
+### Comment out rotating collections for now to allow it a little more time to bake
+### for 3.4; in particular, must ensure that it doesn't fight with transfers required
+### to fill hold requests
+### -- Galen Charlton 2010-10-06
+#my $itemnumber = GetItemnumberFromBarcode( $query->param('barcode') );
+#if ( $itemnumber ) {
+#   my ( $holdingBranch, $collectionBranch ) = GetCollectionItemBranches( $itemnumber );
+#    if ( ! ( $holdingBranch eq $collectionBranch ) ) {
+#        $template->param(
+#          collectionItemNeedsTransferred => 1,
+#          collectionBranch => GetBranchName($collectionBranch),
+#        );
+#    }
+#}                                                                                                            
 
 # actually print the page!
 output_html_with_http_headers $query, $cookie, $template->output;