From d405baaf291959e394f9701037176a0c6b3d5226 Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 10 Aug 2010 06:28:41 +0000 Subject: [PATCH] add logo_file support to welcome_letter and fix leaving temp files around for invoices and letters, RT#9497 --- FS/FS/cust_bill.pm | 2 ++ FS/FS/cust_main.pm | 23 ++++++++++++++++++++--- conf/welcome_letter | 4 ++-- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 38e98ce59..37603bd17 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -2993,6 +2993,7 @@ sub print_ps { my ($file, $lfile) = $self->print_latex(@_); my $ps = generate_ps($file); + unlink($file.'.tex'); unlink($lfile); $ps; @@ -3021,6 +3022,7 @@ sub print_pdf { my ($file, $lfile) = $self->print_latex(@_); my $pdf = generate_pdf($file); + unlink($file.'.tex'); unlink($lfile); $pdf; diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 710488266..925d6d764 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -9527,6 +9527,7 @@ I<$returnaddress> - the return address defaults to invoice_latexreturnaddress or =cut +# a lot like cust_bill::print_latex sub generate_letter { my ($self, $template, %options) = @_; @@ -9590,6 +9591,17 @@ sub generate_letter { $letter_data{company_name} = $conf->config('company_name', $self->agentnum); my $dir = $FS::UID::conf_dir."/cache.". $FS::UID::datasrc; + + my $lh = new File::Temp( TEMPLATE => 'letter.'. $self->custnum. '.XXXXXXXX', + DIR => $dir, + SUFFIX => '.eps', + UNLINK => 0, + ) or die "can't open temp file: $!\n"; + print $lh $conf->config_binary('logo.eps', $self->agentnum) + or die "can't write temp file: $!\n"; + close $lh; + $letter_data{'logo_file'} = $lh->filename; + my $fh = new File::Temp( TEMPLATE => 'letter.'. $self->custnum. '.XXXXXXXX', DIR => $dir, SUFFIX => '.tex', @@ -9599,7 +9611,8 @@ sub generate_letter { $letter_template->fill_in( OUTPUT => $fh, HASH => \%letter_data ); close $fh; $fh->filename =~ /^(.*).tex$/ or die "unparsable filename: ". $fh->filename; - return $1; + return ($1, $letter_data{'logo_file'}); + } =item print_ps TEMPLATE @@ -9610,8 +9623,12 @@ Returns an postscript letter filled in from TEMPLATE, as a scalar. sub print_ps { my $self = shift; - my $file = $self->generate_letter(@_); - FS::Misc::generate_ps($file); + my($file, $lfile) = $self->generate_letter(@_); + my $ps = FS::Misc::generate_ps($file); + unlink($file.'.tex'); + unlink($lfile); + + $ps; } =item print TEMPLATE diff --git a/conf/welcome_letter b/conf/welcome_letter index be7b484ca..b95a71563 100644 --- a/conf/welcome_letter +++ b/conf/welcome_letter @@ -67,7 +67,7 @@ \returninset \makebox{ \begin{tabular}{ll} - \includegraphics{[@-- $conf_dir --@]/logo.eps} & + \includegraphics{[@-- $logo_file --@]} & \begin{minipage}[b]{5.5cm} [@-- $returnaddress --@] \end{minipage} @@ -75,7 +75,7 @@ } } { % ... pages - %\includegraphics{[@-- $conf_dir --@]/logo.eps} % Uncomment if you want the logo on all pages. + %\includegraphics{[@-- $logo_file --@]} % Uncomment if you want the logo on all pages. } } -- 2.11.0