Bug 12495 - Include streetnumber in hold alert address
[koha_fer] / opac / opac-renew.pl
index a84be25..ca58f3d 100755 (executable)
@@ -3,7 +3,7 @@
 #written 18/1/2000 by chris@katipo.co.nz
 # adapted for use in the hlt opac by finlay@katipo.co.nz 29/11/2002
 # script to renew items from the web
-# Parts Copyright 2010 Catalyst IT
+# Parts Copyright 2010,2011 Catalyst IT
 
 # This file is part of Koha.
 #
@@ -16,9 +16,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.
 
 
 use strict;
@@ -27,7 +27,10 @@ use warnings;
 use CGI;
 use C4::Circulation;
 use C4::Auth;
-
+use C4::Context;
+use C4::Items;
+use C4::Members;
+use Date::Calc qw( Today Date_to_Days );
 my $query = new CGI;
 
 my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
@@ -41,17 +44,47 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
        }
 ); 
 my @items          = $query->param('item');
-$borrowernumber = $query->param('borrowernumber') || $query->param('bornum');
+
 my $opacrenew = C4::Context->preference("OpacRenewalAllowed");
 
 my $errorstring='';
-for my $itemnumber ( @items ) {
-    my ($status,$error) = CanBookBeRenewed( $borrowernumber, $itemnumber );
-    if ( $status == 1 && $opacrenew == 1 ) {
-        AddRenewal( $borrowernumber, $itemnumber );
-    }
-    else {
-       $errorstring .= $error ."|";
+my $member_details = GetMemberDetails($borrowernumber);
+
+if (   $member_details->{'BlockExpiredPatronOpacActions'}
+    && $member_details->{'is_expired'} )
+{
+    $errorstring = 'card_expired';
+}
+else {
+    for my $itemnumber (@items) {
+        my ( $status, $error ) =
+          CanBookBeRenewed( $borrowernumber, $itemnumber );
+        if ( $status == 1 && $opacrenew == 1 ) {
+            my $renewalbranch = C4::Context->preference('OpacRenewalBranch');
+            my $branchcode;
+            if ( $renewalbranch eq 'itemhomebranch' ) {
+                my $item = GetItem($itemnumber);
+                $branchcode = $item->{'homebranch'};
+            }
+            elsif ( $renewalbranch eq 'patronhomebranch' ) {
+                my $borrower = GetMemberDetails($borrowernumber);
+                $branchcode = $borrower->{'branchcode'};
+            }
+            elsif ( $renewalbranch eq 'checkoutbranch' ) {
+                my $issue = GetOpenIssue($itemnumber);
+                $branchcode = $issue->{'branchcode'};
+            }
+            elsif ( $renewalbranch eq 'NULL' ) {
+                $branchcode = '';
+            }
+            else {
+                $branchcode = 'OPACRenew';
+            }
+            AddRenewal( $borrowernumber, $itemnumber, $branchcode );
+        }
+        else {
+            $errorstring .= $error . "|";
+        }
     }
 }