diff options
Diffstat (limited to 'FS/FS/Conf.pm')
-rw-r--r-- | FS/FS/Conf.pm | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index ac366d92f..b7fb1cd26 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -592,6 +592,21 @@ sub config_items { ( @config_items, $self->_orbase_items(@_) ); } +=item invoice_from_full [ AGENTNUM ] + +Returns values of invoice_from and invoice_from_name, appropriately combined +based on their current values. + +=cut + +sub invoice_from_full { + my ($self, $agentnum) = @_; + return $self->config('invoice_from_name', $agentnum ) ? + $self->config('invoice_from_name', $agentnum ) . ' <' . + $self->config('invoice_from', $agentnum ) . '>' : + $self->config('invoice_from', $agentnum ); +} + =back =head1 SUBROUTINES @@ -1233,9 +1248,24 @@ sub reason_type_options { { 'key' => 'invoice_from', 'section' => 'required', - 'description' => 'Return address on email invoices', + 'description' => 'Return address on email invoices (address only, see invoice_from_name)', + 'type' => 'text', + 'per_agent' => 1, + 'validate' => sub { $_[0] =~ + /^[^@]+\@[[:alnum:]-]+(\.[[:alnum:]-]+)+$/ + ? '' : 'Invalid email address'; + } + }, + + { + 'key' => 'invoice_from_name', + 'section' => 'invoicing', + 'description' => 'Return name on email invoices (set address in invoice_from)', 'type' => 'text', 'per_agent' => 1, + 'validate' => sub { (($_[0] =~ /[^[:alnum:][:space:]]/) && ($_[0] !~ /^\".*\"$/)) + ? 'Invalid name. Use quotation marks around names that contain punctuation.' + : '' } }, { |