a6c9bd0eb5
Signed-off-by: Chris Nighswonger <cnighswonger@foundations.edu> Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de> http://bugs.koha-community.org/show_bug.cgi?id=9987 Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
121 lines
3 KiB
Perl
Executable file
121 lines
3 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 3 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, see <http://www.gnu.org/licenses>.
|
|
|
|
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
|
|
|