[Koha-patches] [PATCH] bug 3299: fix setting renewal due date explicitly

Galen Charlton galen.charlton at liblime.com
Sat Jun 6 21:26:18 CEST 2009


When renewing a loan from the patron details page, setting
the renewal due date now works again.  Broken by patch
for bug 2770.
---
 C4/Circulation.pm |   25 +++++--------------------
 1 files changed, 5 insertions(+), 20 deletions(-)

diff --git a/C4/Circulation.pm b/C4/Circulation.pm
index 99df5cc..07e0b39 100644
--- a/C4/Circulation.pm
+++ b/C4/Circulation.pm
@@ -2095,22 +2095,6 @@ sub AddRenewal {
     my $branch  = (@_) ? shift : $item->{homebranch};	# opac-renew doesn't send branch
     my $datedue = shift;
     my $lastreneweddate = shift;
-
-    # If the due date wasn't specified, calculate it by adding the
-    # book's loan length to today's date.
-    unless ($datedue && $datedue->output('iso')) {
-
-        my $borrower = C4::Members::GetMemberDetails( $borrowernumber, 0 ) or return undef;
-        my $loanlength = GetLoanLength(
-            $borrower->{'categorycode'},
-             (C4::Context->preference('item-level_itypes')) ? $biblio->{'itype'} : $biblio->{'itemtype'} ,
-			$item->{homebranch}			# item's homebranch determines loanlength OR do we want the branch specified by the AddRenewal argument?
-        );
-		#FIXME -- use circControl?
-		$datedue =  CalcDateDue(C4::Dates->new(),$loanlength,$branch,$borrower);	# this branch is the transactional branch.
-								# The question of whether to use item's homebranch calendar is open.
-    }
-
     # $lastreneweddate defaults to today.
     unless (defined $lastreneweddate) {
         $lastreneweddate = strftime( "%Y-%m-%d", localtime );
@@ -2128,21 +2112,22 @@ sub AddRenewal {
     $sth->finish;
 
     # If the due date wasn't specified, calculate it by adding the
-    # book's loan length to due's date.
-    unless (@_ and $datedue = shift and $datedue->output('iso')) {
+    # book's loan length to today's date or the current due date
+    # based on the value of the RenewalPeriodBase syspref.
+    unless ($datedue && $datedue->output('iso')) {
 
         my $borrower = C4::Members::GetMemberDetails( $borrowernumber, 0 ) or return undef;
         my $loanlength = GetLoanLength(
             $borrower->{'categorycode'},
              (C4::Context->preference('item-level_itypes')) ? $biblio->{'itype'} : $biblio->{'itemtype'} ,
-			$item->{homebranch}			# item's homebranch determines loanlength OR do we want the branch specified by the AddRenewal argument?
+			$item->{homebranch}     # item's homebranch determines loanlength OR do we want the branch specified by the AddRenewal argument?
         );
 
         $datedue = (C4::Context->preference('RenewalPeriodBase') eq 'date_due') ?
                                         C4::Dates->new($issuedata->{date_due}, 'iso') :
                                         C4::Dates->new();
         #FIXME -- use circControl?
-        $datedue =  CalcDateDue($datedue,$loanlength,$branch);	# this branch is the transactional branch.
+        $datedue =  CalcDateDue($datedue,$loanlength,$branch,$borrower);    # this branch is the transactional branch.
         # The question of whether to use item's homebranch calendar is open.
     }
 
-- 
1.5.6.5




More information about the Koha-patches mailing list