From 4915b8f04a2ce88217be57d3decab7913ff09af4 Mon Sep 17 00:00:00 2001
From: Brandon Uhlman <brandon@branflakes.net>
Date: Tue, 30 Dec 2014 11:51:55 -0400
Subject: [PATCH] Symphony: check both unseen, total renewals left

Add a check for total number of renewals remaining when checking whether an
item can be renewed.

The total number of renewals remaining (the values renewalsRemaining and
renewalsRemainingUnlimited) govern, even if unseen renewals remain, or are
unlmited. That is, Symphony treats unseen renewals as limiting the conditions
in which a renewal can take place, not a separate type of renewal that can be
performed without the item in hand.

Refer to SirsiDynix KB #131608 for additional details.
---
 module/VuFind/src/VuFind/ILS/Driver/Symphony.php | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/module/VuFind/src/VuFind/ILS/Driver/Symphony.php b/module/VuFind/src/VuFind/ILS/Driver/Symphony.php
index a86e5d8341d..b9feda8e4a4 100644
--- a/module/VuFind/src/VuFind/ILS/Driver/Symphony.php
+++ b/module/VuFind/src/VuFind/ILS/Driver/Symphony.php
@@ -1241,8 +1241,10 @@ class Symphony extends AbstractBase
                     $transactions;
 
                 foreach ($transactions as $transaction) {
-                    if (!empty($transaction->unseenRenewalsRemaining)
-                        || !empty($transaction->unseenRenewalsRemainingUnlimited)
+                    if ((!empty($transaction->unseenRenewalsRemaining)
+                        || !empty($transaction->unseenRenewalsRemainingUnlimited)) &&
+                       (!empty($transaction->renewalsRemaining)
+                        || !empty($transaction->renewalsRemainingUnlimited))
                     ) {
                         $renewable = true;
                     } else {
-- 
GitLab