At the moment when you renew a document the date_due calculated is 
now+loanlength, but it's a bad thing, It should be
date_due+loanlength.
This patch do change Circulation.pm to use the date_due as renew base and add 
the loanlength to get the new date_due after
renewal.
---
 C4/Circulation.pm |   30 ++++++++++++++++--------------
 1 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/C4/Circulation.pm b/C4/Circulation.pm
index 432a519..7a68d94 100644
--- a/C4/Circulation.pm
+++ b/C4/Circulation.pm
@@ -1918,20 +1918,6 @@ sub AddRenewal {
     my $biblio = GetBiblioFromItemNumber($itemnumber) or return undef;
     my $branch  = (@_) ? shift : $item->{homebranch};  # opac-renew doesn't 
send branch
     my $datedue;
-    # If the due date wasn't specified, calculate it by adding the
-    # book's loan length to today's date.
-    unless (@_ and $datedue = shift and $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);  
# this branch is the transactional branch.
-                                                               # The question 
of whether to use item's homebranch calendar is open.
-    }
 
     my $dbh = C4::Context->dbh;
     # Find the issues record for this book
@@ -1944,6 +1930,22 @@ sub AddRenewal {
     my $issuedata = $sth->fetchrow_hashref;
     $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')) {
+
+        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($issuedata->{date_due}, 
'iso'),$loanlength,$branch);    # this branch is the transactional branch.
+        # The question of whether to use item's homebranch calendar is open.
+    }
+
     # Update the issues record to have the new due date, and a new count
     # of how many times it has been renewed.
     my $renews = $issuedata->{'renewals'} + 1;
-- 
1.5.6.3

_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha.org/mailman/listinfo/koha-patches

Reply via email to