From 0a26e824ae3861fefb8a615c7e042fbfc83698f4 Mon Sep 17 00:00:00 2001 From: David Kuhn Date: Wed, 14 Dec 2016 16:02:26 -0800 Subject: [PATCH] Bug 17309 - Renewing and HomeOrHoldingBranch syspref MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The AddRenewal subroutine currently uses the circulation rules for the branch stored in the Issues table (which is the holding branch) when calculating the new due date. This patch replaces using the branch from the Issues table with the branch specified by the HomeOrHoldingBranch syspref. To test: 1. Set up 2 branches, Branch1 and Branch2 2. Set up a loan rule in Branch1 for DVDs with a 21 day loan period and a 21 day renewal period. 3. Set up a loan rule in Branch2 for DVDs with a 14 day loan period and a 14 day renewal period. 4. Checkout a DVD belonging to Branch1 while logged into Branch2. It will receive the correct 21 day loan period. 5. Renewing the same DVD while logged into either Branch1 or Branch2 will give a 14 day due date, rather than 21 days. 6. Checkout a DVD belonging to Branch2 while logged into Branch1. It will receive the correct 14 day loan period. 7. Renewing the same DVD while logged into either Branch1 or Branch2 will give a 21 day due date, rather than 14 days. 8. Apply the patch and repeat steps 4-7. The correct due date should be given when the item is renewed, regardless of where it is checked out or renewed. This update removes reassignment of $branch variable. Signed-off-by: Cédric Vita Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall (cherry picked from commit 7d35bdf58a0bcebab20df47b50b249cafe12ddb6) Signed-off-by: Katrin Fischer --- C4/Circulation.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index da7f94a545..2822ec9a68 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -2969,7 +2969,7 @@ sub AddRenewal { $datedue = (C4::Context->preference('RenewalPeriodBase') eq 'date_due') ? dt_from_string( $issuedata->{date_due} ) : DateTime->now( time_zone => C4::Context->tz()); - $datedue = CalcDateDue($datedue, $itemtype, $issuedata->{'branchcode'}, $borrower, 'is a renewal'); + $datedue = CalcDateDue($datedue, $itemtype, _GetCircControlBranch($item, $borrower), $borrower, 'is a renewal'); } # Update the issues record to have the new due date, and a new count -- 2.39.5