From 47f464b933f8996bb1c4d952303ad2f7a463cd53 Mon Sep 17 00:00:00 2001 From: Baptiste Wojtkowski Date: Wed, 8 Feb 2017 08:54:42 +0000 Subject: [PATCH] BUG 17708: Added a logaction function in Addrenewal in order to send renew logs 20/02/17 : added the syspref RenewalLog 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. https://bugs.koha-community.org/show_bug.cgi?id=17708 --- C4/Circulation.pm | 4 +++- installer/data/mysql/sysprefs.sql | 1 + .../intranet-tmpl/prog/en/modules/admin/preferences/logs.pref | 6 ++++++ t/db_dependent/Circulation.t | 9 +++++++-- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index e2cd626..b6cfb83 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -2911,7 +2911,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, @@ -2924,6 +2924,8 @@ sub AddRenewal { } ); + #Log the renewal + logaction("CIRCULATION", "RENEW", $borrowernumber, $itemnumber) if C4::Context->preference("RenewalLog"); return $datedue; } diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 3d7a8a5..acfb30a 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -423,6 +423,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 reports','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'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/logs.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/logs.pref index 4aa5790..a48f736 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/logs.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/logs.pref @@ -49,6 +49,12 @@ Logging: off: "Don't log" - when items are returned. - + - pref: RenewalLog + choices: + on: Log + off: "Don't log" + - when item are renewed. + - - pref: SubscriptionLog choices: on: Log diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index e3d4c8d..8e3137c 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -17,10 +17,10 @@ use Modern::Perl; -use Test::More tests => 91; +use Test::More tests => 92; BEGIN { - require_ok('C4::Circulation'); + use_ok('C4::Log') } use DateTime; @@ -473,7 +473,12 @@ C4::Context->dbh->do("DELETE FROM accountlines"); due => Koha::DateUtils::output_pref($five_weeks_ago) } ); + 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 -1, $old_log_size, 'renew log successfuly 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(); -- 2.7.4