8ae66932cd
This patch adds the misc/cronjobs/overdue_notices.pl script that is intended to replace overduenotices.pl, overduenotices-30.pl and overduenotices-csv.pl. It adds messages to the message_queue to be sent later (by process_message_queue.pl). It also marks borrowers as debarred if their issues become too overdue. It is intended to be run from cron nightly with usage something like: 0 2 * * * misc/cronjobs/overdue_notices.pl C4::Members: - improved documentation on ModMember - made ModMember return a useful value (the return value of the database call) - added a DebarMember method - adding t/lib/KohaTest/Members/DebarMember.pm to test ModMember misc/cronjobs/overdue_notices.pl - designed to replace overduenotices.pl, overduenotices-30.pl, and overduenotice-csv Changes to C4::Letters: - EnqueueLetter now lets you pass in to_address and from_address which can override defaults - _send_message_by_email pays attention to these defaults. - now handles attachments with MIME::Lite C4::Overdues - added GetBranchcodesWithOverdueRules - added t/lib/KohaTest/Overdues/GerBranchcodesWithOverdueRules.pm to test that. circ/overdue.pl - replaced call to obsolete overduenotices-csv.pl with call to overdue_notices.pl KohaTest: - added three helper methods: random_phone, random_email, random_ip - these can be used to populate example records - you can now pass an optional lengh to random_string Signed-off-by: Joshua Ferraro <jmf@liblime.com>
44 lines
1.4 KiB
Perl
44 lines
1.4 KiB
Perl
package KohaTest::Members::DebarMember;
|
|
use base qw( KohaTest::Members );
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Test::More;
|
|
|
|
use C4::Members;
|
|
sub testing_class { 'C4::Members' };
|
|
|
|
|
|
sub simple_usage : Test( 6 ) {
|
|
my $self = shift;
|
|
|
|
ok( $self->{'memberid'}, 'we have a valid memberid to test with' );
|
|
|
|
my $details = C4::Members::GetMemberDetails( $self->{'memberid'} );
|
|
ok( exists $details->{'flags'}, 'member details has a "flags" attribute');
|
|
isa_ok( $details->{'flags'}, 'HASH', 'the "flags" attribute is a hashref');
|
|
ok( ! $details->{'flags'}->{'DBARRED'}, 'this member is NOT debarred' );
|
|
|
|
# Now, let's debar this member and see what happens
|
|
my $success = C4::Members::DebarMember( $self->{'memberid'} );
|
|
|
|
ok( $success, 'we were able to debar the member' );
|
|
|
|
$details = C4::Members::GetMemberDetails( $self->{'memberid'} );
|
|
ok( $details->{'flags'}->{'DBARRED'}, 'this member is debarred now' )
|
|
or diag( Data::Dumper->Dump( [ $details->{'flags'} ], [ 'flags' ] ) );
|
|
}
|
|
|
|
sub incorrect_usage : Test( 2 ) {
|
|
my $self = shift;
|
|
|
|
my $result = C4::Members::DebarMember();
|
|
ok( ! defined $result, 'DebarMember returns undef when passed no parameters' );
|
|
|
|
$result = C4::Members::DebarMember( 'this is not a borrowernumber' );
|
|
ok( ! defined $result, 'DebarMember returns undef when not passed a numeric argument' );
|
|
|
|
}
|
|
|
|
1;
|