search by state (and county, country), RT#30312
[freeside.git] / FS / FS / Misc.pm
index 9c18961..2559fc3 100644 (file)
@@ -267,7 +267,7 @@ sub send_email {
   }
 
   # Logging
-  if ( $conf->exists('log_sent_mail') and $options{'custnum'} ) {
+  if ( $conf->exists('log_sent_mail') ) {
     my $cust_msg = FS::cust_msg->new({
         'env_from'  => $options{'from'},
         'env_to'    => join(', ', @to),
@@ -278,6 +278,7 @@ sub send_email {
         'custnum'   => $options{'custnum'},
         'msgnum'    => $options{'msgnum'},
         'status'    => ($error ? 'failed' : 'sent'),
+        'msgtype'   => $options{'msgtype'},
     });
     $cust_msg->insert; # ignore errors
   }
@@ -337,7 +338,7 @@ sub generate_email {
 
   my $me = '[FS::Misc::generate_email]';
 
-  my @fields = qw(from to bcc subject custnum msgnum);
+  my @fields = qw(from to bcc subject custnum msgnum msgtype);
   my %return;
   @return{@fields} = @args{@fields};
 
@@ -544,7 +545,7 @@ sub states_hash {
 
   #it could throw a fatal "Invalid country code" error (for example "AX")
   my $subcountry = eval { new Locale::SubCountry($country) }
-    or return ( '', '(n/a)' );
+    or return (); # ( '', '(n/a)' );
 
   #"i see your schwartz is as big as mine!"
   map  { ( $_->[0] => $_->[1] ) }
@@ -714,7 +715,9 @@ sub generate_ps {
 
   _pslatex($file);
 
-  system('dvips', '-q', '-t', 'letter', "$file.dvi", '-o', "$file.ps" ) == 0
+  my $papersize = $conf->config('papersize') || 'letter';
+
+  system('dvips', '-q', '-t', $papersize, "$file.dvi", '-o', "$file.ps" ) == 0
     or die "dvips failed";
 
   open(POSTSCRIPT, "<$file.ps")
@@ -769,8 +772,10 @@ sub generate_pdf {
   my $sfile = shell_quote $file;
 
   #system('dvipdf', "$file.dvi", "$file.pdf" );
+  my $papersize = $conf->config('papersize') || 'letter';
+
   system(
-    "dvips -q -t letter -f $sfile.dvi ".
+    "dvips -q -f $sfile.dvi -t $papersize ".
     "| gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$sfile.pdf ".
     "     -c save pop -"
   ) == 0