Bug 19472: Add perl extension to script borrowers-force-messaging-defaults
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Wed, 11 Oct 2017 14:11:33 +0000 (16:11 +0200)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 16 Oct 2017 15:01:47 +0000 (12:01 -0300)
There is no reason to keep this perl script without the regular extension.
Please see other scripts in the same folder too.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
misc/maintenance/borrowers-force-messaging-defaults [deleted file]
misc/maintenance/borrowers-force-messaging-defaults.pl [new file with mode: 0755]

diff --git a/misc/maintenance/borrowers-force-messaging-defaults b/misc/maintenance/borrowers-force-messaging-defaults
deleted file mode 100755 (executable)
index 079e68d..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/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, $not_expired) = @_;
-
-    $since = '0000-00-00' if (!$since);
-    print "Since: $since\n";
-
-    my $dbh = C4::Context->dbh;
-    $dbh->{AutoCommit} = 0;
-
-    if ( $doit && $truncate ) {
-        $dbh->do(q|SET FOREIGN_KEY_CHECKS = 0|);
-        $dbh->do(q|TRUNCATE borrower_message_transport_preferences|);
-        $dbh->do(q|TRUNCATE borrower_message_preferences|);
-        $dbh->do(q|SET FOREIGN_KEY_CHECKS = 1|);
-    }
-
-    my $sql = "SELECT borrowernumber, categorycode FROM borrowers WHERE dateenrolled >= ?";
-    if ($not_expired) {
-        $sql .= " AND dateexpiry >= NOW()"
-    }
-    my $sth = $dbh->prepare($sql);
-    $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, $not_expired);
-my $result = GetOptions(
-    'doit'        => \$doit,
-    'truncate'    => \$truncate,
-    'since:s'     => \$since,
-    'not-expired' => \$not_expired,
-    'help|h'      => \$help,
-);
-
-usage() if $help;
-
-force_borrower_messaging_defaults( $doit, $truncate, $since, $not_expired );
-
-=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
-  force-borrower-messaging-defaults --doit --not-expired
-
-=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>
-
-Actually update the borrowers.
-
-=item B<--truncate>
-
-Truncate all borrowers transport preferences before (re-)creating them. It
-affects borrower_message_preferences table.
-
-=item B<--not-expired>
-
-Will only update active borrowers (borrowers who didn't pass their expiration date).
-
-=back
-
-=cut
-
diff --git a/misc/maintenance/borrowers-force-messaging-defaults.pl b/misc/maintenance/borrowers-force-messaging-defaults.pl
new file mode 100755 (executable)
index 0000000..81bc3c7
--- /dev/null
@@ -0,0 +1,132 @@
+#!/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, $not_expired) = @_;
+
+    $since = '0000-00-00' if (!$since);
+    print "Since: $since\n";
+
+    my $dbh = C4::Context->dbh;
+    $dbh->{AutoCommit} = 0;
+
+    if ( $doit && $truncate ) {
+        $dbh->do(q|SET FOREIGN_KEY_CHECKS = 0|);
+        $dbh->do(q|TRUNCATE borrower_message_transport_preferences|);
+        $dbh->do(q|TRUNCATE borrower_message_preferences|);
+        $dbh->do(q|SET FOREIGN_KEY_CHECKS = 1|);
+    }
+
+    my $sql = "SELECT borrowernumber, categorycode FROM borrowers WHERE dateenrolled >= ?";
+    if ($not_expired) {
+        $sql .= " AND dateexpiry >= NOW()"
+    }
+    my $sth = $dbh->prepare($sql);
+    $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, $not_expired);
+my $result = GetOptions(
+    'doit'        => \$doit,
+    'truncate'    => \$truncate,
+    'since:s'     => \$since,
+    'not-expired' => \$not_expired,
+    'help|h'      => \$help,
+);
+
+usage() if $help;
+
+force_borrower_messaging_defaults( $doit, $truncate, $since, $not_expired );
+
+=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
+  force-borrower-messaging-defaults --doit --not-expired
+
+=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>
+
+Actually update the borrowers.
+
+=item B<--truncate>
+
+Truncate all borrowers transport preferences before (re-)creating them. It
+affects borrower_message_preferences table.
+
+=item B<--not-expired>
+
+Will only update active borrowers (borrowers who didn't pass their expiration date).
+
+=back
+
+=cut