( @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
{
'key' => 'business-onlinepayment',
'section' => 'billing',
- 'description' => '<a href="http://search.cpan.org/search?mode=module&query=Business%3A%3AOnlinePayment">Business::OnlinePayment</a> support, at least three lines: processor, login, and password. An optional fourth line specifies the action or actions (multiple actions are separated with `,\': for example: `Authorization Only, Post Authorization\'). Optional additional lines are passed to Business::OnlinePayment as %processor_options.',
+ 'description' => '<a href="http://search.cpan.org/search?mode=module&query=Business%3A%3AOnlinePayment">Business::OnlinePayment</a> support, at least three lines: processor, login, and password. An optional fourth line specifies the action or actions (multiple actions are separated with `,\': for example: `Authorization Only, Post Authorization\'). Optional additional lines are passed to Business::OnlinePayment as %processor_options. For more detailed information and examples see the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:3:Documentation:Administration:Real-time_Processing">real-time credit card processing documentation</a>.',
'type' => 'textarea',
},
{
'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.'
+ : '' }
},
{
'type' => 'select',
'select_hash' => [ '' => 'Password reset disabled',
'email' => 'Click on a link in email',
- 'paymask,amount,zip' => 'Click on a link in email, and also verify with credit card (or bank account) last 4 digits, payment amount and zip code',
+ 'paymask,amount,zip' => 'Click on a link in email, and also verify with credit card (or bank account) last 4 digits, payment amount and zip code. Note: Do not use if you have multi-customer contacts, as they will be unable to reset their passwords.',
],
},
},
{
+ 'key' => 'city_not_required',
+ 'section' => 'required',
+ 'description' => 'Turn off requirement for a City to be entered for billing & shipping addresses',
+ 'type' => 'checkbox',
+ 'per_agent' => 1,
+ },
+
+ {
'key' => 'echeck-void',
'section' => 'deprecated',
'description' => '<B>DEPRECATED</B>, now controlled by ACLs. Used to enable local-only voiding of echeck payments in addition to refunds against the payment gateway',