Destination address. The default is to use the customer's
invoicing_list addresses. Multiple addresses may be comma-separated.
+=item substitutions
+
+A hash reference of additional substitutions
+
=back
=cut
}
}
}
- $_ = encode_entities($_ || '') foreach values(%hash);
+ if ( $opt{substitutions} ) {
+ $hash{$_} = $opt{substitutions}->{$_} foreach keys %{$opt{substitutions}};
+ }
+
+ $_ = encode_entities($_ || '') foreach values(%hash);
###
# clean up template
# helper sub for package dates
my $ymd = sub { $_[0] ? time2str('%Y-%m-%d', $_[0]) : '' };
+# helper sub for usage-related messages
+my $usage_warning = sub {
+ my $svc = shift;
+ foreach my $col (qw(seconds upbytes downbytes totalbytes)) {
+ my $amount = $svc->$col; next if $amount eq '';
+ my $method = $col.'_threshold';
+ my $threshold = $svc->$method; next if $threshold eq '';
+ return [$col, $amount, $threshold] if $amount <= $threshold;
+ # this only returns the first one that's below threshold, if there are
+ # several.
+ }
+ return ['', '', ''];
+};
+
#my $conf = new FS::Conf;
#return contexts and fill-in values
domain
),
[ password => sub { shift->getfield('_password') } ],
+ [ column => sub { &$usage_warning(shift)->[0] } ],
+ [ amount => sub { &$usage_warning(shift)->[1] } ],
+ [ threshold => sub { &$usage_warning(shift)->[2] } ],
],
'svc_domain' => [qw(
svcnum
my $new = new FS::msg_template({
'msgname' => $oldname,
'agentnum' => $agentnum,
- 'from_addr' => ($from && $conf->config($from, $agentnum)) ||
- $conf->config('invoice_from', $agentnum),
+ 'from_addr' => ($from && $conf->config($from, $agentnum)) || '',
'bcc_addr' => ($bcc && $conf->config($from, $agentnum)) || '',
'subject' => ($subject && $conf->config($subject, $agentnum)) || '',
'mime_type' => 'text/html',