X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FForm.pm;h=e814351362ce575206c3a4e03854e0bd956d2a6e;hb=dc78c22510c618deef355808393ecc7bcde319a3;hp=5eb699430eecadf93aafca76b7d6f18c2879fb3a;hpb=61567f5f573efc69c4f532fe77fedba77a0d2c9d;p=kivitendo-erp.git diff --git a/SL/Form.pm b/SL/Form.pm index 5eb699430..e81435136 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -47,6 +47,7 @@ use CGI; use Cwd; use Encode; use File::Copy; +use File::Temp (); use IO::File; use Math::BigInt; use POSIX qw(strftime); @@ -909,11 +910,18 @@ sub parse_template { local (*IN, *OUT); - my $defaults = SL::DB::Default->get; - my $userspath = $::lx_office_conf{paths}->{userspath}; + my $defaults = SL::DB::Default->get; - $self->{"cwd"} = getcwd(); - $self->{"tmpdir"} = $self->{cwd} . "/${userspath}"; + my $keep_temp_files = $::lx_office_conf{debug} && $::lx_office_conf{debug}->{keep_temp_files}; + $self->{cwd} = getcwd(); + my $temp_dir = File::Temp->newdir( + "kivitendo-print-XXXXXX", + DIR => $self->{cwd} . "/" . $::lx_office_conf{paths}->{userspath}, + CLEANUP => !$keep_temp_files, + ); + + my $userspath = File::Spec->abs2rel($temp_dir->dirname); + $self->{tmpdir} = $temp_dir->dirname; my $ext_for_format; @@ -930,13 +938,6 @@ sub parse_template { $template_type = 'HTML'; $ext_for_format = 'html'; - } elsif (($self->{"format"} =~ /xml/i) || (!$self->{"format"} && ($self->{"IN"} =~ /xml$/i))) { - $template_type = 'XML'; - $ext_for_format = 'xml'; - - } elsif ( $self->{"format"} =~ /elster(?:winston|taxbird)/i ) { - $template_type = 'XML'; - } elsif ( $self->{"format"} =~ /excel/i ) { $template_type = 'Excel'; $ext_for_format = 'xls'; @@ -980,7 +981,6 @@ sub parse_template { # OUT is used for the media, screen, printer, email # for postscript we store a copy in a temporary file - my $keep_temp_files = $::lx_office_conf{debug} && $::lx_office_conf{debug}->{keep_temp_files}; my ($temp_fh, $suffix); $suffix = $self->{IN}; @@ -1119,8 +1119,8 @@ sub send_email { if (($self->{format} eq 'html') && ($self->{sendmode} eq 'inline')) { $mail->{content_type} = "text/html"; $mail->{message} =~ s/\r//g; - $mail->{message} =~ s/\n/
\n/g; - $full_signature =~ s/\n/
\n/g; + $mail->{message} =~ s{\n}{
\n}g; + $full_signature =~ s{\n}{
\n}g; $mail->{message} .= $full_signature; open(IN, "<", $self->{tmpfile}) @@ -1130,7 +1130,7 @@ sub send_email { } elsif (($self->{attachment_policy} // '') ne 'no_file') { my $attachment_name = $self->{attachment_filename} || $self->{tmpfile}; - $attachment_name =~ s/\.(.+?)$/.${ext_for_format}/ if ($ext_for_format); + $attachment_name =~ s{\.(.+?)$}{.${ext_for_format}} if ($ext_for_format); if (($self->{attachment_policy} // '') eq 'old_file') { my ( $attfile ) = SL::File->get_all(object_id => $self->{id},