set fixed values from an explicitly specified svcpart on replace too
[freeside.git] / FS / FS / cust_bill.pm
index b249533..802e2bf 100644 (file)
@@ -6,6 +6,7 @@ use vars qw( $invoice_lines @buf ); #yuck
 use Date::Format;
 use Text::Template;
 use File::Temp 0.14;
+use String::ShellQuote;
 use FS::UID qw( datasrc );
 use FS::Record qw( qsearch qsearchs );
 use FS::Misc qw( send_email );
@@ -682,7 +683,7 @@ sub _agent_invoice_from {
 sub _agent_plandata {
   my( $self, $option ) = @_;
 
-  my $cust_bill_event = qsearchs( 'part_bill_event',
+  my $part_bill_event = qsearchs( 'part_bill_event',
     {
       'payby'     => $self->cust_main->payby,
       'plan'      => 'send_agent',
@@ -696,12 +697,13 @@ sub _agent_plandata {
     'ORDER BY seconds LIMIT 1'
   );
 
-  return '' unless $cust_bill_event;
+  return '' unless $part_bill_event;
 
-  if ( $cust_bill_event->plandata =~ /^$option (.*)$/m ) {
+  if ( $part_bill_event->plandata =~ /^$option (.*)$/m ) {
     return $1;
   } else {
-    warn "can't parse plandata for $1";
+    warn "can't parse part_bill_event eventpart#". $part_bill_event->eventpart.
+         " plandata for $option";
     return '';
   }
 
@@ -1161,9 +1163,11 @@ sub print_ps {
   my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
   chdir($dir);
 
-  system("pslatex $file.tex >/dev/null 2>&1") == 0
+  my $sfile = shell_quote $file;
+
+  system("pslatex $sfile.tex >/dev/null 2>&1") == 0
     or die "pslatex $file.tex failed: $!";
-  system("pslatex $file.tex >/dev/null 2>&1") == 0
+  system("pslatex $sfile.tex >/dev/null 2>&1") == 0
     or die "pslatex $file.tex failed: $!";
 
   system('dvips', '-q', '-t', 'letter', "$file.dvi", '-o', "$file.ps" ) == 0
@@ -1208,15 +1212,17 @@ sub print_pdf {
   #system('pdflatex', "$file.tex");
   #! LaTeX Error: Unknown graphics extension: .eps.
 
-  system("pslatex $file.tex >/dev/null 2>&1") == 0
+  my $sfile = shell_quote $file;
+
+  system("pslatex $sfile.tex >/dev/null 2>&1") == 0
     or die "pslatex $file.tex failed: $!";
-  system("pslatex $file.tex >/dev/null 2>&1") == 0
+  system("pslatex $sfile.tex >/dev/null 2>&1") == 0
     or die "pslatex $file.tex failed: $!";
 
   #system('dvipdf', "$file.dvi", "$file.pdf" );
   system(
-    "dvips -q -t letter -f $file.dvi ".
-    "| gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$file.pdf ".
+    "dvips -q -t letter -f $sfile.dvi ".
+    "| gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$sfile.pdf ".
     "     -c save pop -"
   ) == 0
     or die "dvips | gs failed: $!";