return ( 0, 'overdue');
}
- if ( $issue->auto_renew && $patron->autorenewal ) {
+ if ( $issue->auto_renew && $patron->autorenew_checkouts ) {
if ( $patron->category->effective_BlockExpiredPatronOpacActions and $patron->is_expired ) {
return ( 0, 'auto_account_expired' );
if ( $soonestrenewal > DateTime->now( time_zone => C4::Context->tz() ) )
{
- return ( 0, "auto_too_soon" ) if $issue->auto_renew && $patron->autorenewal;
+ return ( 0, "auto_too_soon" ) if $issue->auto_renew && $patron->autorenew_checkouts;
return ( 0, "too_soon" );
}
- elsif ( $issue->auto_renew && $patron->autorenewal ) {
+ elsif ( $issue->auto_renew && $patron->autorenew_checkouts ) {
$auto_renew = 1;
}
}
smsalertnumber => 'sms_number',
sort1 => 'statistics_1',
sort2 => 'statistics_2',
- autorenewal => 'autorenewal',
+ autorenew_checkouts => 'autorenew_checkouts',
streetnumber => 'street_number',
streettype => 'street_type',
zipcode => 'postal_code',
"type": ["string", "null"],
"description": "a field that can be used for any information unique to the library"
},
- "autorenewal": {
+ "autorenew_checkouts": {
"type": "boolean",
"description": "indicate whether auto-renewal is allowed for patron"
},
"required": false,
"type": "string"
}, {
- "name": "autorenewal",
+ "name": "autorenew_checkouts",
"in": "query",
- "description": "Search on autorenewal",
+ "description": "Search on autorenew_checkouts",
"required": false,
"type": "boolean"
}, {
$DBversion = 'XXX';
if( CheckVersion( $DBversion ) ) {
- unless( column_exists('borrowers','autorenewal') ){
- $dbh->do( "ALTER TABLE borrowers ADD COLUMN autorenewal TINYINT(1) NOT NULL DEFAULT 1" );
+ unless( column_exists('borrowers','autorenew_checkouts') ){
+ $dbh->do( "ALTER TABLE borrowers ADD COLUMN autorenew_checkouts TINYINT(1) NOT NULL DEFAULT 1" );
}
- unless( column_exists('deletedborrowers','autorenewal') ){
- $dbh->do( "ALTER TABLE deletedborrowers ADD COLUMN autorenewal TINYINT(1) NOT NULL DEFAULT 1" );
+ unless( column_exists('deletedborrowers','autorenew_checkouts') ){
+ $dbh->do( "ALTER TABLE deletedborrowers ADD COLUMN autorenew_checkouts TINYINT(1) NOT NULL DEFAULT 1" );
}
- unless( column_exists('borrower_modifications','autorenewal') ){
- $dbh->do( "ALTER TABLE borrower_modifications ADD COLUMN autorenewal TINYINT(1) NOT NULL DEFAULT 1" );
+ unless( column_exists('borrower_modifications','autorenew_checkouts') ){
+ $dbh->do( "ALTER TABLE borrower_modifications ADD COLUMN autorenew_checkouts TINYINT(1) NOT NULL DEFAULT 1" );
}
$dbh->do(q{
UPDATE systempreferences
- SET value = CONCAT(value,'|autorenewal')
+ SET value = CONCAT(value,'|autorenew_checkouts')
WHERE variable IN
('PatronSelfModificationBorrowerUnwantedField','PatronSelfRegistrationBorrowerUnwantedField')
- AND value NOT LIKE '%autorenewal%'
+ AND value NOT LIKE '%autorenew_checkouts%'
});
SetVersion( $DBversion );
print "Upgrade to $DBversion done (Bug 24476 - Allow patrons to opt-out of autorenewal)\n";
`login_attempts` int(4) default 0, -- number of failed login attemps
`overdrive_auth_token` MEDIUMTEXT default NULL, -- persist OverDrive auth token
`anonymized` TINYINT(1) NOT NULL DEFAULT 0, -- flag for data anonymization
- `autorenewal` TINYINT(1) NOT NULL DEFAULT 1, -- flag for allowing auto-renewal
+ `autorenew_checkouts` TINYINT(1) NOT NULL DEFAULT 1, -- flag for allowing auto-renewal
KEY borrowernumber (borrowernumber),
KEY `cardnumber` (`cardnumber`),
KEY `sms_provider_id` (`sms_provider_id`)
`login_attempts` int(4) default 0, -- number of failed login attemps
`overdrive_auth_token` MEDIUMTEXT default NULL, -- persist OverDrive auth token
`anonymized` TINYINT(1) NOT NULL DEFAULT 0, -- flag for data anonymization
- `autorenewal` TINYINT(1) NOT NULL DEFAULT 1, -- flag for allowing auto-renewal
+ `autorenew_checkouts` TINYINT(1) NOT NULL DEFAULT 1, -- flag for allowing auto-renewal
UNIQUE KEY `cardnumber` (`cardnumber`),
PRIMARY KEY `borrowernumber` (`borrowernumber`),
KEY `categorycode` (`categorycode`),
`privacy` int(11) DEFAULT NULL,
`extended_attributes` MEDIUMTEXT DEFAULT NULL,
`gdpr_proc_consent` datetime, -- data processing consent
- `autorenewal` TINYINT(1) NOT NULL DEFAULT 1, -- flag for allowing auto-renewal
+ `autorenew_checkouts` TINYINT(1) NOT NULL DEFAULT 1, -- flag for allowing auto-renewal
PRIMARY KEY (`verification_token` (191),`borrowernumber`),
KEY `verification_token` (`verification_token` (191)),
KEY `borrowernumber` (`borrowernumber`)
<div id="set-automatic-renewal" class="circ-setting">
[% IF NEEDSCONFIRMATION %]
[% IF auto_renew %]
- [% IF patron.autorenewal %]
+ [% IF patron.autorenew_checkouts %]
<input type="checkbox" name="auto_renew" id="auto_renew" value="auto_renew" disabled="disabled"
title="Patron has opted out of auto-renewal"/>
[% ELSE %]
<input type="checkbox" name="auto_renew" id="auto_renew" value="auto_renew" disabled="disabled" />
[% END %]
[% ELSE %]
- [% IF ( auto_renew && patron.autorenewal ) %]
+ [% IF ( auto_renew && patron.autorenew_checkouts ) %]
<input type="checkbox" name="auto_renew" id="auto_renew" value="auto_renew" class="circ_setting" checked="checked" />
- [% ELSIF patron.autorenewal %]
+ [% ELSIF patron.autorenew_checkouts %]
<input type="checkbox" name="auto_renew" id="auto_renew" value="auto_renew" class="circ_setting" />
[% ELSE %]
<input type="checkbox" name="auto_renew" id="auto_renew" value="auto_renew" disabled="disabled"
</li>
[% END # /UNLESS nosort2 %]
- [% UNLESS noautorenewal %]
+ [% UNLESS noautorenew_checkouts %]
<li class="radio">
- <label for="yes-autorenewal">
+ <label for="yes-autorenew_checkouts">
Allow auto-renewal of items:
</label>
- [% IF ( autorenewal ) %]
- <label for="yes-autorenewal">
+ [% IF ( autorenew_checkouts ) %]
+ <label for="yes-autorenew_checkouts">
Yes
- <input type="radio" id="yes-autorenewal" name="autorenewal" value="1" checked="checked" />
+ <input type="radio" id="yes-autorenew_checkouts" name="autorenew_checkouts" value="1" checked="checked" />
</label>
- <label for="no-autorenewal">
+ <label for="no-autorenew_checkouts">
No
- <input type="radio" id="no-autorenewal" name="autorenewal" value="0" />
+ <input type="radio" id="no-autorenew_checkouts" name="autorenew_checkouts" value="0" />
</label>
[% ELSE %]
- <label for="yes-autorenewal">
+ <label for="yes-autorenew_checkouts">
Yes
- <input type="radio" id="yes-autorenewal" name="autorenewal" value="1" />
+ <input type="radio" id="yes-autorenew_checkouts" name="autorenew_checkouts" value="1" />
</label>
- <label for="no-autorenewal">
+ <label for="no-autorenew_checkouts">
No
- <input type="radio" id="no-autorenewal" name="autorenewal" value="0" checked="checked" />
+ <input type="radio" id="no-autorenew_checkouts" name="autorenew_checkouts" value="0" checked="checked" />
</label>
[% END %]
</li>
[% CASE 'contacttitle' %]<span>Contact: Title</span>
[% CASE 'relationship' %]<span>Contact: Relationship</span>
[% CASE 'sex' %]<span>Gender</span>
-[% CASE 'autorenewal' %]<span>Auto-renewal</span>
+[% CASE 'autorenew_checkouts' %]<span>Auto-renewal</span>
[% CASE 'altcontactfirstname' %]<span>Alternate contact: First name</span>
[% CASE 'altcontactsurname' %]<span>Alternate contact: Surname</span>
[% CASE 'altcontactaddress1' %]<span>Alternate contact: Address</span>
<li><span class="label">Library: </span>[% patron.library.branchname | html %]</li>
[% IF ( patron.sort1 ) %]<li><span class="label">Sort field 1:</span>[% AuthorisedValues.GetByCode('Bsort1', patron.sort1) | html %]</li>[% END %]
[% IF ( patron.sort2 ) %]<li><span class="label">Sort field 2:</span>[% AuthorisedValues.GetByCode('Bsort2', patron.sort2) | html %]</li>[% END %]
- [% UNLESS ( patron.autorenewal ) %]<li>Auto renewal: Patron has opted out</li>[% END %]
+ [% UNLESS ( patron.autorenew_checkouts ) %]<li>Auto renewal: Patron has opted out</li>[% END %]
</ol>
</div>
</div>
[% AuthorisedValues.GetByCode('Bsort2', patron.sort2) | html %]
</li>
[% END %]
- [% UNLESS ( patron.autorenewal ) %]
- <li id="patron-autorenewal">
+ [% UNLESS ( patron.autorenew_checkouts ) %]
+ <li id="patron-autorenew_checkouts">
<span class="label">Auto renewal:</span>
Patron has opted out
</li>
[% END %]
</li>
[% END %]
- [% UNLESS hidden.defined('autorenewal') %]
+ [% UNLESS hidden.defined('autorenew_checkouts') %]
<li class="lradio">
- <label for="yes-autorenewal">
+ <label for="yes-autorenew_checkouts">
Allow auto-renewal:
</label>
- [% IF ( borrower.autorenewal ) %]
- <label class="radio inline" for="yes-autorenewal">
+ [% IF ( borrower.autorenew_checkouts ) %]
+ <label class="radio inline" for="yes-autorenew_checkouts">
Yes
- <input type="radio" id="yes-autorenewal" name="borrower_autorenewal" value="1" checked="checked" />
+ <input type="radio" id="yes-autorenew_checkouts" name="borrower_autorenew_checkouts" value="1" checked="checked" />
</label>
- <label class="radio inline" for="no-autorenewal">
+ <label class="radio inline" for="no-autorenew_checkouts">
No
- <input type="radio" id="no-autorenewal" name="borrower_autorenewal" value="0" />
+ <input type="radio" id="no-autorenew_checkouts" name="borrower_autorenew_checkouts" value="0" />
</label>
[% ELSE %]
- <label class="radio inline" for="yes-autorenewal">
+ <label class="radio inline" for="yes-autorenew_checkouts">
Yes
- <input type="radio" id="yes-autorenewal" name="borrower_autorenewal" value="1" />
+ <input type="radio" id="yes-autorenew_checkouts" name="borrower_autorenew_checkouts" value="1" />
</label>
- <label class="radio inline" for="no-autorenewal">
+ <label class="radio inline" for="no-autorenew_checkouts">
No
- <input type="radio" id="no-autorenewal" name="borrower_autorenewal" value="0" checked="checked" />
+ <input type="radio" id="no-autorenew_checkouts" name="borrower_autorenew_checkouts" value="0" checked="checked" />
</label>
[% END %]
</li>
pod2usage(0) if $help;
cronlogaction();
-my $auto_renews = Koha::Checkouts->search({ auto_renew => 1, 'borrower.autorenewal' => 1 },{ join => 'borrower'});
+my $auto_renews = Koha::Checkouts->search({ auto_renew => 1, 'borrower.autorenew_checkouts' => 1 },{ join => 'borrower'});
my %report;
$verbose = 1 unless $verbose or $confirm;
- $renewing_borrower_obj->autorenewal(0)->store;
+ $renewing_borrower_obj->autorenew_checkouts(0)->store;
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber );
is( $renewokay, 1, 'No renewal before is undef, but patron opted out of auto_renewal' );
- $renewing_borrower_obj->autorenewal(1)->store;
+ $renewing_borrower_obj->autorenew_checkouts(1)->store;
# Bug 7413
'Bug 14101: Cannot renew, renewal is automatic and premature (returned code is auto_too_soon)'
);
- $renewing_borrower_obj->autorenewal(0)->store;
+ $renewing_borrower_obj->autorenew_checkouts(0)->store;
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber );
is( $renewokay, 0, 'No renewal before is 7, patron opted out of auto_renewal still cannot renew early' );
is( $error, 'too_soon', 'Error is too_soon, no auto' );
- $renewing_borrower_obj->autorenewal(1)->store;
+ $renewing_borrower_obj->autorenew_checkouts(1)->store;
# Change policy so that loans can only be renewed exactly on due date (0 days prior to due date)
# and test automatic renewal again
'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = 0 (returned code is auto_too_soon)'
);
- $renewing_borrower_obj->autorenewal(0)->store;
+ $renewing_borrower_obj->autorenew_checkouts(0)->store;
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber );
is( $renewokay, 0, 'No renewal before is 0, patron opted out of auto_renewal still cannot renew early' );
is( $error, 'too_soon', 'Error is too_soon, no auto' );
- $renewing_borrower_obj->autorenewal(1)->store;
+ $renewing_borrower_obj->autorenew_checkouts(1)->store;
# Change policy so that loans can be renewed 99 days prior to the due date
# and test automatic renewal again
'Bug 14101: Cannot renew, renewal is automatic (returned code is auto_renew)'
);
- $renewing_borrower_obj->autorenewal(0)->store;
+ $renewing_borrower_obj->autorenew_checkouts(0)->store;
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber );
is( $renewokay, 1, 'No renewal before is 99, patron opted out of auto_renewal so can renew' );
- $renewing_borrower_obj->autorenewal(1)->store;
+ $renewing_borrower_obj->autorenew_checkouts(1)->store;
subtest "too_late_renewal / no_auto_renewal_after" => sub {
plan tests => 14;