Bug 17443: Make possible to renew patron by later of expiry and current date

Test plan
1) Apply the patch
2) Go to system preferences and find the BorrowerRenewalPeriodBase and note there is new option "the later of current and expiry date"
3) Try all three options and confirm they work as expected
   3.1) The new options should be tested et least with two patrons - one with expiry date in past and one with expiry date in future

Signed-off-by: radiuscz <radek.siman@centrum.cz>

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Josef Moravec 2016-10-13 14:21:48 +02:00 committed by Kyle M Hall
parent 607dac69a9
commit 0a85759d33
4 changed files with 12 additions and 6 deletions

View file

@ -295,11 +295,15 @@ Extending the subscription to the expiry date.
sub renew_account {
my ($self) = @_;
my $date =
C4::Context->preference('BorrowerRenewalPeriodBase') eq 'dateexpiry'
? dt_from_string( $self->dateexpiry )
: dt_from_string;
my $date;
if ( C4::Context->preference('BorrowerRenewalPeriodBase') eq 'combination' ) {
$date = ( dt_from_string gt dt_from_string( $self->dateexpiry ) ) ? dt_from_string : dt_from_string( $self->dateexpiry );
} else {
$date =
C4::Context->preference('BorrowerRenewalPeriodBase') eq 'dateexpiry'
? dt_from_string( $self->dateexpiry )
: dt_from_string;
}
my $patron_category = Koha::Patron::Categories->find( $self->categorycode ); # FIXME Should be $self->category
my $expiry_date = $patron_category->get_expiry_date($date);

View file

@ -0,0 +1 @@
UPDATE systempreferences SET options = "now|dateexpiry|combination", explanation = "Set whether the borrower renewal date should be counted from the dateexpiry, from the current date or by combination: if the dateexpiry is in future use dateexpiry, else use current date " WHERE variable = "BorrowerRenewalPeriodBase";

View file

@ -82,7 +82,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
('BlockReturnOfWithdrawnItems','1','0','If enabled, items that are marked as withdrawn cannot be returned.','YesNo'),
('BorrowerMandatoryField','surname|cardnumber',NULL,'Choose the mandatory fields for a patron\'s account','free'),
('borrowerRelationship','father|mother','','Define valid relationships between a guarantor & a guarantee (separated by | or ,)','free'),
('BorrowerRenewalPeriodBase','now','dateexpiry|now','Set whether the borrower renewal date should be counted from the dateexpiry or from the current date ','Choice'),
('BorrowerRenewalPeriodBase','now','dateexpiry|now|combination','Set whether the borrower renewal date should be counted from the dateexpiry, from the current date or by combination: if the dateexpiry is in future use dateexpiry, else use current date ','Choice'),
('BorrowersLog','1',NULL,'If ON, log edit/create/delete actions on patron data','YesNo'),
('BorrowersTitles','Mr|Mrs|Miss|Ms',NULL,'Define appropriate Titles for patrons','free'),
('BorrowerUnwantedField','',NULL,'Name the fields you don\'t need to store for a patron\'s account','free'),

View file

@ -137,6 +137,7 @@ Patrons:
choices:
now: current date.
dateexpiry: current membership expiry date.
combination: the later one of current and expiry date.
-
- pref: TalkingTechItivaPhoneNotification
choices: