Mahnungen: E-Mail-Text als HTML
[kivitendo-erp.git] / sql / Pg-upgrade2 / convert_columns_to_html_for_sending_html_emails2.pl
1 # @tag: convert_columns_to_html_for_sending_html_emails2
2 # @description: Versand von E-Mails in HTML: weitere Text-Spalten nach HTML umwandeln
3 # @depends: convert_columns_to_html_for_sending_html_emails
4 package SL::DBUpgrade2::convert_columns_to_html_for_sending_html_emails2;
5
6 use strict;
7 use utf8;
8
9 use parent qw(SL::DBUpgrade2::Base);
10
11 use SL::HTML::Util;
12
13 sub convert_column {
14   my ($self, $table, $id_column, $column_to_convert, $condition) = @_;
15
16   $condition = $condition ? "WHERE $condition" : "";
17
18   my $q_fetch = <<SQL;
19     SELECT ${id_column}, ${column_to_convert}
20     FROM ${table}
21     ${condition}
22 SQL
23
24   my $q_update = <<SQL;
25     UPDATE ${table}
26     SET ${column_to_convert} = ?
27     WHERE ${id_column} = ?
28 SQL
29
30   my $h_fetch = $self->dbh->prepare($q_fetch);
31   $h_fetch->execute || $::form->dberror($q_fetch);
32
33   my $h_update = $self->dbh->prepare($q_update);
34
35   while (my $entry = $h_fetch->fetchrow_hashref) {
36     $entry->{$column_to_convert} //= '';
37     my $new_value = SL::HTML::Util->plain_text_to_html($entry->{$column_to_convert});
38
39     next if $entry->{$column_to_convert} eq $new_value;
40
41     $h_update->execute($new_value, $entry->{id}) || $::form->dberror($q_update);
42   }
43 }
44
45 sub run {
46   my ($self) = @_;
47
48   $self->convert_column('dunning_config', 'id', 'email_body');
49
50   return 1;
51 }
52
53 1;