From 78282bbdb5aa14ae9ad830a5b6cca75f90fb4451 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Thu, 6 Jun 2019 16:20:48 +0200 Subject: [PATCH] =?utf8?q?Wiederkehrende=20Rechnungen:=20Druckvorlage=20na?= =?utf8?q?ch=20Auftragssprache=20ausw=C3=A4hlen?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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«). --- SL/BackgroundJob/CreatePeriodicInvoices.pm | 6 ++++-- SL/Locale.pm | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) 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; -- 2.20.1