Bug 15494: Update display of renewal errors
authorNick Clemens <nick@bywatersolutions.com>
Wed, 24 May 2017 13:31:59 +0000 (09:31 -0400)
committerNick Clemens <nick@bywatersolutions.com>
Wed, 7 Nov 2018 21:39:38 +0000 (21:39 +0000)
To test:
1 - Define a rule to deny renewal
2 - Checkout an item meeting this rule
3 - Attempt renew an item via the OPAC
4 - Attempt renewal via SIP
5 - Attempt renewal via staff client
6 - Verify errors are reasonable

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

C4/SIP/ILS/Transaction/Renew.pm
koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc
koha-tmpl/intranet-tmpl/prog/en/modules/circ/renew.tt
koha-tmpl/intranet-tmpl/prog/js/checkouts.js
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt
misc/cronjobs/automatic_renewals.pl
opac/opac-user.pl

index 7e1e9b7..af96f93 100644 (file)
@@ -51,6 +51,7 @@ sub do_renew_for  {
     } else {
         $renewerror=~s/on_reserve/Item unavailable due to outstanding holds/;
         $renewerror=~s/too_many/Item has reached maximum renewals/;
+        $renewerror=~s/item_denied_renewal/Item renewal is not allowed/;
         $self->screen_msg($renewerror);
         $self->renewal_ok(0);
     }
index bd51329..cb90180 100644 (file)
@@ -21,6 +21,7 @@
     var NOT_RENEWABLE_AUTO_TOO_MUCH_OWEING = _("Automatic renewal failed, patron has unpaid fines");
     var NOT_RENEWABLE_AUTO_ACCOUNT_EXPIRED = _("Automatic renewal failed, account expired");
     var NOT_RENEWABLE_AUTO_RENEW = _("Scheduled for automatic renewal");
+    var NOT_RENEWABLE_DENIED = _("Renewal denied by syspref");
     var RENEWALS_REMAINING = _("%s of %s renewals remaining");
     var HOLD_IS_SUSPENDED = _("Hold is <strong>suspended</strong>");
     var UNTIL = _("until %s");
index 3e38f8f..5498c16 100644 (file)
 
                                 <p>[% borrower.firstname | html %] [% borrower.surname | html %] ( <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrower.borrowernumber | uri %]"> [% borrower.cardnumber | html %] </a> ) is currently restricted.</p>
 
+                            [% ELSIF error == "item_denied_renewal" %]
+
+                                <p>Item is not allowed renewal.</p>
+
                             [% ELSE %]
 
                                 [% error | html %]
index c4f1f35..9902f5b 100644 (file)
@@ -431,6 +431,13 @@ $(document).ready(function() {
                             span_class = "renewals-allowed";
                         } else if ( oObj.can_renew_error == "onsite_checkout" ) {
                             // Don't display something if it's an onsite checkout
+                        } else if ( oObj.can_renew_error == "item_denied_renewal" ) {
+                            content += "<span class='renewals-disabled'>"
+                                    + NOT_RENEWABLE_DENIED
+                                    + "</span>";
+
+                            span_style = "display: none";
+                            span_class = "renewals-allowed";
                         } else {
                             content += "<span class='renewals-disabled'>"
                                     + oObj.can_renew_error
index 3c8a273..bf5738e 100644 (file)
@@ -85,6 +85,8 @@
                                             <li>It is too soon after the checkout date for this item to be renewed.</li>
                                         [% ELSIF error == 'on_reserve' %]
                                             <li>This item is on hold for another borrower.</li>
+                                        [% ELSIF error == 'item_denied_renewal' %]
+                                            <li>Item renewal is not allowed.</li>
                                         [% END %]
                                     [% END %]
                                 </ul>
                                                     [% ELSIF ( ISSUE.too_soon ) %]
                                                         No renewal before [% ISSUE.soonestrenewdate | html %]
                                                         <span class="renewals">([% ISSUE.renewsleft | html %] of [% ISSUE.renewsallowed | html %] renewals remaining)</span>
+                                                    [% ELSIF ( ISSUE.item_denied_renewal ) %]
+                                                        Renewal not allowed
                                                     [% END %]
                                                     </td>
                                                 [% END %]
index 6a170ca..b50a6d5 100755 (executable)
@@ -88,7 +88,8 @@ while ( my $auto_renew = $auto_renews->next ) {
         or $error eq 'auto_account_expired'
         or $error eq 'auto_too_late'
         or $error eq 'auto_too_much_oweing'
-        or $error eq 'auto_too_soon' ) {
+        or $error eq 'auto_too_soon'
+        or $error eq 'item_denied_renewal' ) {
         if ( not $auto_renew->auto_renew_error or $error ne $auto_renew->auto_renew_error ) {
             $auto_renew->auto_renew_error($error)->store;
             push @{ $report{ $auto_renew->borrowernumber } }, $auto_renew
index 98638c3..d3ff888 100755 (executable)
@@ -236,6 +236,7 @@ if ( $pending_checkouts->count ) { # Useless test
             $issue->{'auto_too_soon'}  = 1 if $renewerror eq 'auto_too_soon';
             $issue->{'auto_too_late'}  = 1 if $renewerror eq 'auto_too_late';
             $issue->{'auto_too_much_oweing'}  = 1 if $renewerror eq 'auto_too_much_oweing';
+            $issue->{'item_denied_renewal'}  = 1 if $renewerror eq 'item_denied_renewal';
 
             if ( $renewerror eq 'too_soon' ) {
                 $issue->{'too_soon'}         = 1;