e158f86d20
It is now possible to specify a command line argument --since so that the borrowers-force-messaging-defaults script only changes patrons created starting on a certain day. If the optional argument is not specified, the script applies to all borrowers. Signed-off-by: Jared Camins-Esakov <jcamins@bywatersolutions.com> Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com> Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
121 lines
3.1 KiB
Perl
Executable file
121 lines
3.1 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
#
|
|
# Copyright (C) 2011 Tamil s.a.r.l.
|
|
#
|
|
# This file is part of Koha.
|
|
#
|
|
# Koha is free software; you can redistribute it and/or modify it under the
|
|
# terms of the GNU General Public License as published by the Free Software
|
|
# Foundation; either version 2 of the License, or (at your option) any later
|
|
# version.
|
|
#
|
|
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License along
|
|
# with Koha; if not, write to the Free Software Foundation, Inc.,
|
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
use strict;
|
|
use warnings;
|
|
BEGIN {
|
|
# find Koha's Perl modules
|
|
# test carefully before changing this
|
|
use FindBin;
|
|
eval { require "$FindBin::Bin/../kohalib.pl" };
|
|
}
|
|
|
|
use C4::Context;
|
|
use C4::Members::Messaging;
|
|
use Getopt::Long;
|
|
use Pod::Usage;
|
|
|
|
|
|
sub usage {
|
|
pod2usage( -verbose => 2 );
|
|
exit;
|
|
}
|
|
|
|
|
|
sub force_borrower_messaging_defaults {
|
|
my ($doit, $truncate, $since) = @_;
|
|
|
|
$since = '0000-00-00' if (!$since);
|
|
print $since;
|
|
|
|
my $dbh = C4::Context->dbh;
|
|
$dbh->{AutoCommit} = 0;
|
|
|
|
if ( $doit && $truncate ) {
|
|
my $sth = $dbh->prepare("TRUNCATE borrower_message_preferences");
|
|
$sth->execute();
|
|
}
|
|
|
|
my $sth = $dbh->prepare("SELECT borrowernumber, categorycode FROM borrowers WHERE dateenrolled >= ?");
|
|
$sth->execute($since);
|
|
while ( my ($borrowernumber, $categorycode) = $sth->fetchrow ) {
|
|
print "$borrowernumber: $categorycode\n";
|
|
next unless $doit;
|
|
C4::Members::Messaging::SetMessagingPreferencesFromDefaults( {
|
|
borrowernumber => $borrowernumber,
|
|
categorycode => $categorycode,
|
|
} );
|
|
}
|
|
$dbh->commit();
|
|
}
|
|
|
|
|
|
my ($doit, $truncate, $since, $help);
|
|
my $result = GetOptions(
|
|
'doit' => \$doit,
|
|
'truncate' => \$truncate,
|
|
'since:s' => \$since,
|
|
'help|h' => \$help,
|
|
);
|
|
|
|
usage() if $help;
|
|
|
|
force_borrower_messaging_defaults( $doit, $truncate, $since );
|
|
|
|
=head1 NAME
|
|
|
|
force-borrower-messaging-defaults
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
force-borrower-messaging-defaults
|
|
force-borrower-messaging-defaults --help
|
|
force-borrower-messaging-defaults --doit
|
|
force-borrower-messaging-defaults --doit --truncate
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
If the EnhancedMessagingPreferences syspref is enabled after borrowers have
|
|
been created in the DB, those borrowers won't have messaging transport
|
|
preferences default values as defined for their borrower category. So you would
|
|
have to modify each borrower one by one if you would like to send them 'Hold
|
|
Filled' notice for example.
|
|
|
|
This script create transport preferences for all existing borrowers and set
|
|
them to default values defined for the category they belong to.
|
|
|
|
=over 8
|
|
|
|
=item B<--help>
|
|
|
|
Prints this help
|
|
|
|
=item B<--doit>
|
|
|
|
Process actually the borrowers.
|
|
|
|
=item B<--truncate>
|
|
|
|
Truncate all borrowers transport preferences before (re-)creating them. It
|
|
affects borrower_message_preferences table.
|
|
|
|
=back
|
|
|
|
=cut
|
|
|