]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Wiederkehrende Rechnungen: bei E-Mail-Versand Rechnungsattribute als Variablen
authorMoritz Bunkus <m.bunkus@linet.de>
Tue, 10 Nov 2020 10:24:24 +0000 (11:24 +0100)
committerMoritz Bunkus <m.bunkus@linet.de>
Tue, 10 Nov 2020 10:28:59 +0000 (11:28 +0100)
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
doc/changelog
doc/dokumentation.xml

index 5c223e6d41225f6728d22dc2be9e36407b2ebf6b..3a74c49f8499ec45323cac045d52920d0f0df189 100644 (file)
@@ -152,10 +152,7 @@ sub _replace_vars {
     $key               = $::locale->unquote_special_chars('html', $key) if $sub_fmt eq 'html';
     my $new_value;
 
     $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(
       $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]);
 
         time_zone   => 'local',
       )->format_datetime($params{vars}->{$key}->[0]);
 
-    } else {
+    } elsif ($params{vars}->{$key}) {
       $new_value = $params{vars}->{$1}->[1]->($params{vars}->{$1}->[0]);
       $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;
 
 
     $new_value;
 
@@ -431,6 +432,7 @@ sub _email_invoice {
     for (qw(email_subject email_body)) {
       _replace_vars(
         object           => $data->{config},
     for (qw(email_subject email_body)) {
       _replace_vars(
         object           => $data->{config},
+        invoice          => $data->{invoice},
         vars             => $data->{time_period_vars},
         attribute        => $_,
         attribute_format => 'text'
         vars             => $data->{time_period_vars},
         attribute        => $_,
         attribute_format => 'text'
index 968ae476b79ec161c282454dd1e1c23f2e1be084..3a887675629b8d47aa5ad0da8719fc8af53b810f 100644 (file)
@@ -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.
    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
 
 Bugfixes (Tracker: https://www.kivitendo.de/redmine):
 97 Benutzer löschen unter System->Benutzer funktioniert nicht
index 7f98d4041c9423217cb5ddecf0a2c0ec82c29d01..c73c1deb4d402b96912045ca3ba246d316f45e3f 100644 (file)
@@ -3667,6 +3667,11 @@ digits_year: 4</programlisting>
         bis zu welchem Monat und Jahr die aktuelle Abrechnungsperiode dauert:
         <literal>Abrechnungszeitrum: &lt;%period_start_date FORMAT=%m/%Y%&gt;
         bis &lt;%period_end_date FORMAT=%m/%Y%&gt;</literal></para>
         bis zu welchem Monat und Jahr die aktuelle Abrechnungsperiode dauert:
         <literal>Abrechnungszeitrum: &lt;%period_start_date FORMAT=%m/%Y%&gt;
         bis &lt;%period_end_date FORMAT=%m/%Y%&gt;</literal></para>
+
+        <para>Beim automatischen Versand der Rechnugen via E-Mail können neben diesen speziellen Variablen auch einige Eigenschaften der
+        Rechnung selber als Variablen im Betreff &amp; dem Text der E-Mails genutzt werden. Beispiele sind
+        <varname>&lt;%invnumber%&gt;</varname> für die Rechnungsnummber oder <varname>&lt;transaction_description%&gt;</varname> für die
+        Vorgangsbezeichnung. Diese Variablen stehen beim Erzeugen der Rechnung logischerweise noch nicht zur Verfügung.</para>
       </sect2>
 
       <sect2 id="features.periodic-invoices.reports">
       </sect2>
 
       <sect2 id="features.periodic-invoices.reports">