make company_phonenum available to templates, #12363
[freeside.git] / FS / FS / msg_template.pm
index f0cda41..73284d1 100644 (file)
@@ -175,10 +175,18 @@ objects will be available for substitution, with their field names
 prefixed with 'new_' and 'old_' respectively.  This is used in the 
 rt_ticket export when exporting "replace" events.
 
+=item from_config
+
+Configuration option to use as the source address, based on the customer's 
+agentnum.  If unspecified (or the named option is empty), 'invoice_from' 
+will be used.
+
+The I<from_addr> field in the template takes precedence over this.
+
 =item to
 
 Destination address.  The default is to use the customer's 
-invoicing_list addresses.
+invoicing_list addresses.  Multiple addresses may be comma-separated.
 
 =back
 
@@ -281,17 +289,29 @@ sub prepare {
   # and email
   ###
 
-  my @to = ($opt{'to'}) || $cust_main->invoicing_list_emailonly;
-  #warn "prepared msg_template with no email destination (custnum ".
-  #  $cust_main->custnum.")\n"
-  #  if !@to;
-  #  warning is not appropriate now that we use these for tickets
+  my @to;
+  if ( exists($opt{'to'}) ) {
+    @to = split(/\s*,\s*/, $opt{'to'});
+  }
+  else {
+    @to = $cust_main->invoicing_list_emailonly;
+  }
+  # no warning when preparing with no destination
 
   my $conf = new FS::Conf;
+  my $from_addr = $self->from_addr;
+
+  if ( !$from_addr ) {
+    if ( $opt{'from_config'} ) {
+      $from_addr = scalar( $conf->config($opt{'from_config'}, 
+                                         $cust_main->agentnum) );
+    }
+    $from_addr ||= scalar( $conf->config('invoice_from',
+                                         $cust_main->agentnum) );
+  }
 
   (
-    'from' => $self->from_addr || 
-              scalar( $conf->config('invoice_from', $cust_main->agentnum) ),
+    'from' => $from_addr,
     'to'   => \@to,
     'bcc'  => $self->bcc_addr || undef,
     'subject'   => $subject,
@@ -367,6 +387,9 @@ sub substitutions {
       [ company_address   => sub {
           $conf->config('company_address', shift->agentnum)
         } ],
+      [ company_phonenum  => sub {
+          $conf->config('company_phonenum', shift->agentnum)
+        } ],
     ],
     # next_bill_date
     'cust_pkg'  => [qw(