From 6aaf7186f2f96021a7467de63f23551cfe02c59f Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Tue, 10 Nov 2020 11:24:24 +0100 Subject: [PATCH] Wiederkehrende Rechnungen: bei E-Mail-Versand Rechnungsattribute als Variablen MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Praxisbeispiel ist, dass man im Betreff der Rechnung die Rechnungsnummer angeben möchte; das geht nun mit z.B. »Rechnung <%invnumber%>«. --- SL/BackgroundJob/CreatePeriodicInvoices.pm | 14 ++++++++------ doc/changelog | 5 +++++ doc/dokumentation.xml | 5 +++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/SL/BackgroundJob/CreatePeriodicInvoices.pm b/SL/BackgroundJob/CreatePeriodicInvoices.pm index 5c223e6d4..3a74c49f8 100644 --- a/SL/BackgroundJob/CreatePeriodicInvoices.pm +++ b/SL/BackgroundJob/CreatePeriodicInvoices.pm @@ -152,10 +152,7 @@ sub _replace_vars { $key = $::locale->unquote_special_chars('html', $key) if $sub_fmt eq 'html'; my $new_value; - if (!$params{vars}->{$key}) { - $new_value = ''; - - } elsif ($format) { + if ($params{vars}->{$key} && $format) { $format = $::locale->unquote_special_chars('html', $format) if $sub_fmt eq 'html'; $new_value = DateTime::Format::Strptime->new( @@ -164,11 +161,15 @@ sub _replace_vars { time_zone => 'local', )->format_datetime($params{vars}->{$key}->[0]); - } else { + } elsif ($params{vars}->{$key}) { $new_value = $params{vars}->{$1}->[1]->($params{vars}->{$1}->[0]); + + } elsif ($params{invoice} && $params{invoice}->can($key)) { + $new_value = $params{invoice}->$key; } - $new_value = $::locale->quote_special_chars('html', $new_value) if $sub_fmt eq 'html'; + $new_value //= ''; + $new_value = $::locale->quote_special_chars('html', $new_value) if $sub_fmt eq 'html'; $new_value; @@ -431,6 +432,7 @@ sub _email_invoice { for (qw(email_subject email_body)) { _replace_vars( object => $data->{config}, + invoice => $data->{invoice}, vars => $data->{time_period_vars}, attribute => $_, attribute_format => 'text' diff --git a/doc/changelog b/doc/changelog index 968ae476b..3a8876756 100644 --- a/doc/changelog +++ b/doc/changelog @@ -22,6 +22,11 @@ Kleinere neue Features und Detailverbesserungen: Fehlermeldung nach dem Verbuchen von Einkaufsrechnungen, weil auf die Maske zum Erfassen einer weiteren neuen Einkaufsrechnung weitergeleitet wurde. + - Wiederkehrende Rechnung: beim automatischen Versand erzeugter + Rechnungen per E-Mail können nun auch Rechnungsattribute als + Variablen im Betreff & Text der E-Mails genutzt werden + (z.B. <%invnumber%> für die Rechnungsnummer oder + <%transaction_description%> für die Vorgangsbezeichnung). Bugfixes (Tracker: https://www.kivitendo.de/redmine): 97 Benutzer löschen unter System->Benutzer funktioniert nicht diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index 7f98d4041..c73c1deb4 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -3667,6 +3667,11 @@ digits_year: 4 bis zu welchem Monat und Jahr die aktuelle Abrechnungsperiode dauert: Abrechnungszeitrum: <%period_start_date FORMAT=%m/%Y%> bis <%period_end_date FORMAT=%m/%Y%> + + Beim automatischen Versand der Rechnugen via E-Mail können neben diesen speziellen Variablen auch einige Eigenschaften der + Rechnung selber als Variablen im Betreff & dem Text der E-Mails genutzt werden. Beispiele sind + <%invnumber%> für die Rechnungsnummber oder <transaction_description%> für die + Vorgangsbezeichnung. Diese Variablen stehen beim Erzeugen der Rechnung logischerweise noch nicht zur Verfügung. -- 2.20.1