Bug 17708: Added a logaction function in Addrenewal in order to send renew logs

20/02/17 : added the syspref RenewalLog
24/20/17 : added a test for the syspref Renewal Log

test plan
1 - Chose a Borrower and have him renewing an item
2 - Check the renew logs : they should be empty
3 - Apply patch and set the syspref RenewalLog to 1
4 - Have the Borrower renewing a new item
5 - Check the renew logs : there should be your renew

I called the function logaction, which is in charge of modifying the
logs, within the function which adds a new renewal at the list.

Signed-off-by: Julien Comte <julien.comte@u-psud.fr>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Baptiste Wojtkowski 2017-02-08 08:54:42 +00:00 committed by Kyle M Hall
parent b041dfa180
commit 53ebb5c33b
5 changed files with 28 additions and 3 deletions

View file

@ -2940,7 +2940,7 @@ sub AddRenewal {
DelUniqueDebarment({ borrowernumber => $borrowernumber, type => 'OVERDUES' });
}
# Log the renewal
# Add the renewal to stats
UpdateStats(
{
branch => C4::Context->userenv ? C4::Context->userenv->{branch} : $branch,
@ -2953,6 +2953,8 @@ sub AddRenewal {
}
);
#Log the renewal
logaction("CIRCULATION", "RENEW", $borrowernumber, $itemnumber) if C4::Context->preference("RenewalLog");
return $datedue;
}

View file

@ -0,0 +1,2 @@
INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES
('RenewalLog','0','','If ON, log information about renewals','YesNo');

View file

@ -432,6 +432,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
('RandomizeHoldsQueueWeight','0',NULL,'if ON, the holds queue in circulation will be randomized, either based on all location codes, or by the location codes specified in StaticHoldsQueueWeight','YesNo'),
('RecordLocalUseOnReturn','0',NULL,'If ON, statistically record returns of unissued items as local use, instead of return','YesNo'),
('RefundLostOnReturnControl','CheckinLibrary','CheckinLibrary|ItemHomeBranch|ItemHoldingBranch','If a lost item is returned, choose which branch to pick rules for refunding.','Choice'),
('RenewalLog','0','','If ON, log information about renewals','YesNo'),
('RenewalPeriodBase','date_due','date_due|now','Set whether the renewal date should be counted from the date_due or from the moment the Patron asks for renewal ','Choice'),
('RenewalSendNotice','0','',NULL,'YesNo'),
('RenewSerialAddsSuggestion','0',NULL,'If ON, adds a new suggestion at serial subscription renewal','YesNo'),

View file

@ -48,6 +48,12 @@ Logging:
on: Log
off: "Don't log"
- when items are returned.
-
- pref: RenewalLog
choices:
on: Log
off: "Don't log"
- when items are renewed.
-
- pref: SubscriptionLog
choices:

View file

@ -17,10 +17,10 @@
use Modern::Perl;
use Test::More tests => 92;
use Test::More tests => 94;
BEGIN {
require_ok('C4::Circulation');
use_ok('C4::Log')
}
use DateTime;
@ -474,7 +474,21 @@ C4::Context->dbh->do("DELETE FROM accountlines");
due => Koha::DateUtils::output_pref($five_weeks_ago)
}
);
t::lib::Mocks::mock_preference('RenewalLog', 0);
my $date = output_pref( { dt => dt_from_string(), datenonly => 1, dateformat => 'iso' } );
my $old_log_size = scalar(@{GetLogs( $date, $date, undef,["CIRCULATION"], ["RENEW"]) } );
AddRenewal( $renewing_borrower->{borrowernumber}, $itemnumber7, $branch );
my $new_log_size = scalar(@{GetLogs( $date, $date, undef,["CIRCULATION"], ["RENEW"]) } );
is ($new_log_size, $old_log_size, 'renew log not added because of the syspref RenewalLog');
t::lib::Mocks::mock_preference('RenewalLog', 1);
$date = output_pref( { dt => dt_from_string(), datenonly => 1, dateformat => 'iso' } );
$old_log_size = scalar(@{GetLogs( $date, $date, undef,["CIRCULATION"], ["RENEW"]) } );
AddRenewal( $renewing_borrower->{borrowernumber}, $itemnumber7, $branch );
$new_log_size = scalar(@{GetLogs( $date, $date, undef,["CIRCULATION"], ["RENEW"]) } );
is ($new_log_size, $old_log_size + 1, 'renew log successfully added');
$fine = $schema->resultset('Accountline')->single( { borrowernumber => $renewing_borrower->{borrowernumber}, itemnumber => $itemnumber7 } );
is( $fine->accounttype, 'F', 'Fine on renewed item is closed out properly' );
$fine->delete();