From: Moritz Bunkus Date: Thu, 6 Jun 2019 14:20:48 +0000 (+0200) Subject: Wiederkehrende Rechnungen: Druckvorlage nach Auftragssprache auswählen X-Git-Tag: release-3.5.4~54 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=78282bbdb5aa14ae9ad830a5b6cca75f90fb4451;p=kivitendo-erp.git Wiederkehrende Rechnungen: Druckvorlage nach Auftragssprache auswählen Bisher wurde immer die Standarddruckvorlage genutzt und die im Auftrag und damit der Rechnung eingestellte Sprache komplett ignoriert. Weiterhin wird der Dateiname des Anhangs nach der eingestellten Sprache gesetzt. Das funktioniert nur, wenn die in kivitendo konfigurierten Sprachen dieselben Sprachkürzel nutzen, wie kivitendos Übersetzungen selber heißen (also »de« und »en«). --- diff --git a/SL/BackgroundJob/CreatePeriodicInvoices.pm b/SL/BackgroundJob/CreatePeriodicInvoices.pm index aeb0444c0..521dc1b30 100644 --- a/SL/BackgroundJob/CreatePeriodicInvoices.pm +++ b/SL/BackgroundJob/CreatePeriodicInvoices.pm @@ -382,8 +382,9 @@ sub _email_invoice { return unless @recipients; + my $language = $data->{invoice}->language ? $data->{invoice}->language->template_code : undef; my %create_params = ( - template => scalar($self->find_template(name => 'invoice')), + template => scalar($self->find_template(name => 'invoice', language => $language)), variables => Form->new(''), return => 'file_name', variable_content_types => { @@ -397,6 +398,7 @@ sub _email_invoice { $create_params{variables}->prepare_for_printing; my $pdf_file_name; + my $label = $language && Locale::is_supported($language) ? Locale->new($language)->text('Invoice') : $::locale->text('Invoice'); eval { $pdf_file_name = $self->create_pdf(%create_params); @@ -423,7 +425,7 @@ sub _email_invoice { $mail->{message} = $data->{config}->email_body; $mail->{attachments} = [{ path => $pdf_file_name, - name => sprintf('%s %s.pdf', $::locale->text('Invoice'), $data->{invoice}->invnumber), + name => sprintf('%s %s.pdf', $label, $data->{invoice}->invnumber), }]; my $error = $mail->send; diff --git a/SL/Locale.pm b/SL/Locale.pm index 9257e6ca7..3b91502d5 100644 --- a/SL/Locale.pm +++ b/SL/Locale.pm @@ -74,6 +74,12 @@ sub new { return $locales_by_country{$country} } +sub is_supported { + my ($country) = @_; + + return -f "locale/$country/all"; +} + sub _init { my $self = shift; my $country = shift;