$item->{'itemnumber'}
);
if ( $CanBookBeRenewed == 0 ) { # no more renewals allowed
- $issuingimpossible{NO_MORE_RENEWALS} = 1;
+ if ( $renewerror eq 'onsite_checkout' ) {
+ $issuingimpossible{NO_RENEWAL_FOR_ONSITE_CHECKOUTS} = 1;
+ }
+ else {
+ $issuingimpossible{NO_MORE_RENEWALS} = 1;
+ }
}
else {
$needsconfirmation{RENEW_ISSUE} = 1;
my $item = GetItem($itemnumber) or return ( 0, 'no_item' );
my $itemissue = GetItemIssue($itemnumber) or return ( 0, 'no_checkout' );
+ return ( 0, 'onsite_checkout' ) if $itemissue->{onsite_checkout};
$borrowernumber ||= $itemissue->{borrowernumber};
my $borrower = C4::Members::GetMember( borrowernumber => $borrowernumber )
span_style = "display: none";
span_class = "renewals-allowed";
+ } else if ( oObj.can_renew_error == "onsite_checkout" ) {
+ // Don't display something if it's an onsite checkout
} else {
content += "<span class='renewals-disabled'>"
+ oObj.can_renew_error
var can_force_renew = ( oObj.onsite_checkout == 0 ) && ( oObj.can_renew_error != "on_reserve" );
var can_renew = ( oObj.renewals_remaining > 0 && !oObj.can_renew_error );
- if ( oObj.onsite_checkout == 0 ) {
- if ( can_renew || can_force_renew ) {
- content += "<span class='" + span_class + "' style='" + span_style + "'>"
- + "<input type='checkbox' ";
- if ( oObj.date_due_overdue && can_renew ) {
- content += "checked='checked' ";
- }
- content += "class='renew' id='renew_" + oObj.itemnumber + "' name='renew' value='" + oObj.itemnumber +"'/>"
- + "</span>";
-
- content += "<span class='renewals'>("
- + RENEWALS_REMAINING.format( oObj.renewals_remaining, oObj.renewals_allowed )
- + ")</span>";
+ if ( can_renew || can_force_renew ) {
+ content += "<span class='" + span_class + "' style='" + span_style + "'>"
+ + "<input type='checkbox' ";
+ if ( oObj.date_due_overdue && can_renew ) {
+ content += "checked='checked' ";
}
+ content += "class='renew' id='renew_" + oObj.itemnumber + "' name='renew' value='" + oObj.itemnumber +"'/>"
+ + "</span>";
+
+ content += "<span class='renewals'>("
+ + RENEWALS_REMAINING.format( oObj.renewals_remaining, oObj.renewals_allowed )
+ + ")</span>";
}
content += "</span>";
<li>No more renewals possible</li>
[% END %]
+ [% IF NO_RENEWAL_FOR_ONSITE_CHECKOUTS %]
+ <li>This item can not be renewed, it's an on-site checkout</li>
+ [% END %]
+
[%IF ( AGE_RESTRICTION ) %]
<li>Age restriction [% AGE_RESTRICTION %].</li>
[% END %]
use Koha::DateUtils;
use Koha::Database;
-use Test::More tests => 67;
+use Test::More tests => 69;
BEGIN {
use_ok('C4::Circulation');
is( $renewokay, 0, 'Bug 14337 - Verify the borrower can not renew with a hold on the record if AllowRenewalIfOtherItemsAvailable is enabled but the only available item is notforloan' );
}
+{
+ # Don't allow renewing onsite checkout
+ my $barcode = 'R00000XXX';
+ my $branch = 'CPL';
+
+ #Create another record
+ my $biblio = MARC::Record->new();
+ $biblio->append_fields(
+ MARC::Field->new('100', ' ', ' ', a => 'Anonymous'),
+ MARC::Field->new('245', ' ', ' ', a => 'A title'),
+ );
+ my ($biblionumber, $biblioitemnumber) = AddBiblio($biblio, '');
+
+ my (undef, undef, $itemnumber) = AddItem(
+ {
+ homebranch => $branch,
+ holdingbranch => $branch,
+ barcode => $barcode,
+ },
+ $biblionumber
+ );
+
+ my $borrowernumber = AddMember(
+ firstname => 'fn',
+ surname => 'dn',
+ categorycode => 'S',
+ branchcode => $branch,
+ );
+
+ my $borrower = GetMember( borrowernumber => $borrowernumber );
+ my $issue = AddIssue( $borrower, $barcode, undef, undef, undef, undef, { onsite_checkout => 1 } );
+ my ( $renewed, $error ) = CanBookBeRenewed( $borrowernumber, $itemnumber );
+ is( $renewed, 0, 'CanBookBeRenewed should not allow to renew on-site checkout' );
+ is( $error, 'onsite_checkout', 'A correct error code should be returned by CanBookBeRenewed for on-site checkout' );
+}
+
$schema->storage->txn_rollback();
1;