Bug 16217: Resync names of notices
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 6 Apr 2016 15:35:23 +0000 (16:35 +0100)
committerBrendan Gallagher <brendan@bywatersolutions.com>
Fri, 29 Apr 2016 02:16:07 +0000 (02:16 +0000)
Bug 12752 has fixed a bug for installations upgrading from 3.14, but has
not fixed the problem for new installations.
Because of some wrong data manipulations, the names for a given letter
code may diverge.

In particular OVERDUE and PREDUE names of phone notices have been
wrongly modify by bug 11867: they have been set to the name of the first HOLD
notice.

Trying to be back on our feet, this update DB entry will try to guess
and set back up the correct name.

To know if your install is affected by this bug, the following SQL query
can help you:
  SELECT code, name, message_transport_type
  FROM letter
  WHERE code="PREDUE" OR code="OVERDUE";

If the names are different for the same code, something went wrong.
Executing this update DB entry should fix the divergence.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Fix the problem, see comment #6 for test.
No koha-qa errors

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
installer/data/mysql/atomicupdate/bug_16217.perl [new file with mode: 0644]

diff --git a/installer/data/mysql/atomicupdate/bug_16217.perl b/installer/data/mysql/atomicupdate/bug_16217.perl
new file mode 100644 (file)
index 0000000..a58e799
--- /dev/null
@@ -0,0 +1,14 @@
+my $dbh = C4::Context->dbh;
+my $letters = $dbh->selectall_arrayref(q|
+    SELECT code, name
+    FROM letter
+    WHERE message_transport_type="email"
+|, { Slice => {} });
+for my $letter ( @$letters ) {
+    $dbh->do(q|
+        UPDATE letter
+        SET name = ?
+        WHERE code = ?
+        AND message_transport_type <> "email"
+    |, undef, $letter->{name}, $letter->{code});
+}