X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FConf.pm;h=c58ca33f40c9c7dd7d61b6e2bcba73ac51f76af1;hb=cad17f4aca6b4c673cb72ac7af69d9a83f406e91;hp=de4d1b8916a88682bb9ff48c35794fcc28a8a76c;hpb=d09f56cb45326bb57b0c1c4e5a1e156575944fbe;p=freeside.git diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index de4d1b891..c58ca33f4 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -9,6 +9,7 @@ use Carp; use IO::File; use File::Basename; use MIME::Base64; +use Email::Address; use FS::ConfItem; use FS::ConfDefaults; use FS::Conf_compat17; @@ -605,10 +606,12 @@ based on their current values. 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 ); + + my $name = $self->config('invoice_from_name', $agentnum) + || $self->config('company_name', $agentnum); + + Email::Address->new( $name => $self->config('invoice_from', $agentnum ) ) + ->format; } =back @@ -1342,6 +1345,7 @@ my $validate_email = sub { $_[0] =~ 'section' => 'invoicing', 'description' => 'Indicates that html and latex invoices should be in summary style and make use of invoice_latexsummary.', 'type' => 'checkbox', + 'per_agent' => 1, }, { @@ -1643,6 +1647,13 @@ and customer address. Include units.', }, { + 'key' => 'quotation_disable_after_days', + 'section' => '', + 'description' => 'The number of days, if set, after which a non-converted quotation will be automatically disabled.', + 'type' => 'text' + }, + + { 'key' => 'invoice_print_pdf', 'section' => 'invoicing', 'description' => 'For all invoice print operations, store postal invoices for download in PDF format rather than printing them directly.', @@ -1666,7 +1677,7 @@ and customer address. Include units.', { 'key' => 'invoice_default_terms', 'section' => 'invoicing', - 'description' => 'Optional default invoice term, used to calculate a due date printed on invoices.', + 'description' => 'Optional default invoice term, used to calculate a due date printed on invoices. WARNING: If you do not want to change the terms on existing invoices, do not change this after going live.', 'type' => 'select', 'per_agent' => 1, 'select_enum' => \@invoice_terms, @@ -1698,9 +1709,19 @@ and customer address. Include units.', { 'key' => 'invoice_sections', 'section' => 'invoicing', - 'description' => 'Split invoice into sections and label according to package category when enabled.', + 'description' => 'Split invoice into sections and label according to either package category or location when enabled.', 'type' => 'checkbox', 'per_agent' => 1, + 'config_bool' => 1, + }, + + { + 'key' => 'invoice_sections_multilocation', + 'section' => 'invoicing', + 'description' => 'Enable invoice_sections for for any bill with at least this many locations on the bill.', + 'type' => 'text', + 'per_agent' => 1, + 'validate' => sub { shift =~ /^\d+$/ ? undef : 'Please enter a number' }, }, { @@ -1719,6 +1740,15 @@ and customer address. Include units.', }, { + 'key' => 'invoice_sections_with_taxes', + 'section' => 'invoicing', + 'description' => 'Include taxes within each section of mutli-section invoices.', + 'type' => 'checkbox', + 'per_agent' => 1, + 'agent_bool' => 1, + }, + + { 'key' => 'summary_subtotals_method', 'section' => 'invoicing', 'description' => 'How to group line items when calculating summary subtotals. By default, it will be the same method used for grouping invoice sections.', @@ -1806,6 +1836,13 @@ and customer address. Include units.', 'description' => 'Template to use for manual payment receipts.', %msg_template_options, }, + + { + 'key' => 'payment_receipt_msgnum_auto', + 'section' => 'notification', + 'description' => 'Automatic payments will cause a post-payment to use a message template for automatic payment receipts rather than a post payment statement.', + %msg_template_options, + }, { 'key' => 'payment_receipt_from', @@ -2606,6 +2643,21 @@ and customer address. Include units.', }, { + 'key' => 'cancel_msgnum-referring_cust-pkg_class', + 'section' => 'notification', + 'description' => 'Enable cancellation messages to the referring customer for these package classes.', + 'type' => 'select-pkg_class', + 'multiple' => 1, + }, + + { + 'key' => 'cancel_msgnum-referring_cust', + 'section' => 'notification', + 'description' => 'Template to use for cancellation emails sent to the referring customer.', + %msg_template_options, + }, + + { 'key' => 'require_cardname', 'section' => 'billing', 'description' => 'Require an "Exact name on card" to be entered explicitly; don\'t default to using the first and last name.', @@ -4555,6 +4607,7 @@ and customer address. Include units.', '' => 'Numeric only', '\d{7}' => 'Numeric only, exactly 7 digits', 'ww?d+' => 'Numeric with one or two letter prefix', + 'd+-w' => 'Numeric with a dash and one letter suffix', ], }, @@ -4747,7 +4800,7 @@ and customer address. Include units.', 'section' => 'UI', 'description' => 'The year to use in census tract lookups. NOTE: you need to select 2012 or 2013 for Year 2010 Census tract codes. A selection of 2011 provides Year 2000 Census tract codes. Use the freeside-censustract-update tool if exisitng customers need to be changed.', 'type' => 'select', - 'select_enum' => [ qw( 2013 2012 2011 ) ], + 'select_enum' => [ qw( 2017 2016 2015 ) ], }, { @@ -5111,6 +5164,7 @@ and customer address. Include units.', 'Change billing address', 'Change service address', 'Change payment information', + 'Change packages', 'Change password(s)', 'Logout', ], @@ -6083,6 +6137,13 @@ and customer address. Include units.', }, { + 'key' => 'selfservice-ACH_info_readonly', + 'section' => 'self-service', + 'description' => 'make ACH on self service portal read only', + 'type' => 'checkbox', + }, + + { 'key' => 'selfservice-announcement', 'section' => 'self-service', 'description' => 'HTML announcement to display to all authenticated users on account overview page', @@ -6289,4 +6350,3 @@ and customer address. Include units.', ); 1; -