@@ -, +, @@ - use Koha::DateUtils instead of Koha::Template::Plugin::KohaDates, - Add test with syspref MembershipExpiryDaysNotice equals 0 and undef, - fix (new) test failure (when MembershipExpiryDaysNotice is undef). --- C4/Letters.pm | 6 ++---- C4/Members.pm | 2 +- t/Members.t | 14 +++++++++++++- 3 files changed, 16 insertions(+), 6 deletions(-) --- a/C4/Letters.pm +++ a/C4/Letters.pm @@ -35,7 +35,7 @@ use Date::Calc qw( Add_Delta_Days ); use Encode; use Carp; use Koha::Email; -use Koha::Template::Plugin::KohaDates; +use Koha::DateUtils qw( format_sqldatetime ); use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); @@ -787,9 +787,7 @@ sub _parseletter { my ( $letter, $table, $values ) = @_; if ( $table eq 'borrowers' && $values->{'dateexpiry'} ){ - $values->{'dateexpiry'} = Koha::Template::Plugin::KohaDates - ->new() - ->filter($values->{'dateexpiry'}); + $values->{'dateexpiry'} = format_sqldatetime( $values->{'dateexpiry'} ); } if ( $table eq 'reserves' && $values->{'waitingdate'} ) { --- a/C4/Members.pm +++ a/C4/Members.pm @@ -1489,7 +1489,7 @@ sub GetExpiryDate { sub GetUpcomingMembershipExpires { my $dbh = C4::Context->dbh; - my $days = C4::Context->preference("MembershipExpiryDaysNotice"); + my $days = C4::Context->preference("MembershipExpiryDaysNotice") || 0; my $dateexpiry = DateTime->now()->add(days => $days)->ymd(); my $query = " --- a/t/Members.t +++ a/t/Members.t @@ -23,7 +23,7 @@ use Test::MockModule; use t::lib::TestBuilder; use t::lib::Mocks qw( mock_preference ); -use Test::More tests => 3; +use Test::More tests => 5; use Test::MockModule; BEGIN { @@ -103,3 +103,15 @@ my $upcoming_mem_expires = C4::Members::GetUpcomingMembershipExpires(); is(scalar(@$upcoming_mem_expires), 1, 'Get upcoming membership expires should return 1 borrower.'); is($upcoming_mem_expires->[0]{surname}, 'Martin', 'Get upcoming membership expires should return borrower "Martin".'); + +# Test GetUpcomingMembershipExpires() with MembershipExpiryDaysNotice == 0 +t::lib::Mocks::mock_preference('MembershipExpiryDaysNotice', 0); + +$upcoming_mem_expires = C4::Members::GetUpcomingMembershipExpires(); +is(scalar(@$upcoming_mem_expires), 0, 'Get upcoming membership expires with 0 MembershipExpiryDaysNotice should return 0.'); + +# Test GetUpcomingMembershipExpires() with MembershipExpiryDaysNotice == undef +t::lib::Mocks::mock_preference('MembershipExpiryDaysNotice', undef); + +$upcoming_mem_expires = C4::Members::GetUpcomingMembershipExpires(); +is(scalar(@$upcoming_mem_expires), 0, 'Get upcoming membership expires without MembershipExpiryDaysNotice should return 0.'); --