Bug 16873: Improve renewal error messages on self check
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 19 Aug 2016 11:01:32 +0000 (12:01 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Tue, 29 Nov 2016 17:44:09 +0000 (17:44 +0000)
When a patron is not allowed to renew from the self check module, the
only message displayed is "No renewals allowed".
It would be nicer to let him/her know that the renewal is not allowed
because it's a on-site checkout or automatic renewal.

To do so we can call CanBookBeRenewed instead of CanBookBeIssued and get
the renewal error.

Test plan:
0/ Switch off AllowSelfCheckReturns
1/ check out an item and tick "auto renewal"
2/ Go on the self check module
=> auto renewal message is displayed
3/ check out an item and tick "on-site checkout"
4/ Go on the self check module
=> on-site checkout message is displayed
5/ check out an item without ticking any checkboxes (regular checkout)
Renew it to reach the max renew allowed
6/ Go on the self check module
=> regular checkout message is displayed
7/ Switch on AllowSelfCheckReturns and repeat previous steps
=> "Return this item" button is displayed in addition of the renewal
error message

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt
opac/sco/sco-main.pl

index 3e5d7f4..d97c5f1 100644 (file)
                                                     <form action="/cgi-bin/koha/sco/sco-main.pl" method="post">
                                                         <input type="hidden" name="patronid" value="[% patronid %]" />
                                                         <input type="hidden" name="barcode" value="[% ISSUE.barcode %]" />
-                                                        [% IF ( ISSUE.norenew ) %]
-                                                            [% IF ( AllowSelfCheckReturns ) %]
-                                                                <input type="submit" value="Check in item" name="confirm" class="btn return" />
-                                                                <input type="hidden" name="op" value="returnbook" />
-                                                                <input type="hidden" name="confirmed" value=""  />
-                                                            [% ELSE %]
-                                                                <span>No renewals allowed</span>
-                                                            [% END %]
-                                                        [% ELSE %]
+                                                        [% IF ISSUE.can_be_renewed %]
                                                             <input type="hidden" name="op" value="checkout" />
                                                             <input type="hidden" name="confirmed" value="1" />
                                                             [% UNLESS ( ISSUE.renew ) %]
                                                             [% ELSE %]
                                                                 <input type="submit" value="Renew item" class="btn renew" />
                                                             [% END %]
+                                                        [% ELSE %]
+                                                            [% IF ISSUE.renew_error == 'auto_renew' OR ISSUE.renew_error == 'auto_too_soon' %]
+                                                                <span>This item has been scheduled for automatic renewal and cannot be renewed</span>
+                                                            [% ELSIF ISSUE.renew_error == 'onsite_checkout' %]
+                                                                <span>This is a on-site checkout, it cannot be renewed.</span>
+                                                            [% ELSE %]
+                                                                <span>No renewals allowed</span>
+                                                            [% END %]
+                                                            [% IF AllowSelfCheckReturns %]
+                                                                <input type="submit" value="Check in item" name="confirm" class="btn return" />
+                                                                <input type="hidden" name="op" value="returnbook" />
+                                                                <input type="hidden" name="confirmed" value=""  />
+                                                            [% END %]
                                                         [% END %]
                                                     </form>
                                                 </td>
index 6d2eb57..fe079a2 100755 (executable)
@@ -226,14 +226,12 @@ if ($borrower->{cardnumber}) {
     my @issues;
     my ($issueslist) = GetPendingIssues( $borrower->{'borrowernumber'} );
     foreach my $it (@$issueslist) {
-        my ($renewokay, $renewerror) = CanBookBeIssued(
-            $borrower,
-            $it->{'barcode'},
-            undef,
-            0,
-            C4::Context->preference("AllowItemsOnHoldCheckoutSCO")
+        my ($can_be_renewed, $renew_error) = CanBookBeRenewed(
+            $borrower->{borrowernumber},
+            $it->{itemnumber},
         );
-        $it->{'norenew'} = 1 if $renewokay->{'NO_MORE_RENEWALS'};
+        $it->{can_be_renewed} = $can_be_renewed;
+        $it->{renew_error} = $renew_error;
         $it->{date_due}  = $it->{date_due_sql};
         push @issues, $it;
     }