package FS::Conf;
use strict;
-use vars qw( $base_dir @config_items @base_items @card_types $DEBUG
+use vars qw( $base_dir @config_items @base_items @card_types @invoice_terms
+ $DEBUG
$conf_cache $conf_cache_enabled
);
use Carp;
'key' => $_,
'base_key' => $proto->key,
'section' => $proto->section,
- 'description' => 'Alternate ' . $proto->description . ' See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:2.1:Documentation:Administration#Invoice_templates">billing documentation</a> for details.',
+ 'description' => 'Alternate ' . $proto->description . ' See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:3:Documentation:Administration#Invoice_templates">billing documentation</a> for details.',
'type' => $proto->type,
};
} &$listmaker($base);
logo.eps
);
+@invoice_terms = (
+ '',
+ 'Payable upon receipt',
+ 'Net 0', 'Net 3', 'Net 5', 'Net 7', 'Net 9', 'Net 10', 'Net 14',
+ 'Net 15', 'Net 18', 'Net 20', 'Net 21', 'Net 25', 'Net 30', 'Net 45',
+ 'Net 60', 'Net 90'
+);
+
my %msg_template_options = (
'type' => 'select-sub',
'options_sub' => sub {
},
{
- 'key' => 'alert_expiration',
- 'section' => 'deprecated',
- 'description' => 'Enable alerts about credit card expiration. This is obsolete and no longer works.',
- 'type' => 'checkbox',
- 'per_agent' => 1,
- },
-
- {
- 'key' => 'alerter_template',
- 'section' => 'deprecated',
- 'description' => 'Template file for billing method expiration alerts (i.e. expiring credit cards).',
- 'type' => 'textarea',
- 'per_agent' => 1,
- },
-
- {
- 'key' => 'alerter_msgnum',
- 'section' => 'deprecated',
- 'description' => 'Template to use for credit card expiration alerts.',
- %msg_template_options,
- },
-
- {
'key' => 'part_pkg-lineage',
'section' => 'packages',
'description' => 'When editing a package definition, if setup or recur fees are changed, create a new package rather than changing the existing package.',
'section' => 'credit_cards',
'description' => 'Currency parameter for Business::OnlinePayment transactions.',
'type' => 'select',
- 'select_enum' => [ '', qw( USD AUD CAD DKK EUR GBP ILS JPY NZD ) ],
+ 'select_enum' => [ '', qw( USD AUD CAD DKK EUR GBP ILS JPY NZD ARS ) ],
},
{
'section' => 'localization',
'description' => 'Main accounting currency',
'type' => 'select',
- 'select_enum' => [ '', qw( USD AUD CAD DKK EUR GBP ILS JPY NZD XAF ) ],
+ 'select_enum' => [ '', qw( USD AUD CAD DKK EUR GBP ILS JPY NZD XAF ARS ) ],
},
{
{
'key' => 'invoice_template',
'section' => 'invoice_templates',
- 'description' => 'Text template file for invoices. Used if no invoice_html template is defined, and also seen by users using non-HTML capable mail clients. See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:2.1:Documentation:Administration#Plaintext_invoice_templates">billing documentation</a> for details.',
+ 'description' => 'Text template file for invoices. Used if no invoice_html template is defined, and also seen by users using non-HTML capable mail clients. See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:3:Documentation:Administration#Plaintext_invoice_templates">billing documentation</a> for details.',
'type' => 'textarea',
},
{
'key' => 'invoice_html',
'section' => 'invoice_templates',
- 'description' => 'HTML template for invoices. See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:2.1:Documentation:Administration#HTML_invoice_templates">billing documentation</a> for details.',
+ 'description' => 'HTML template for invoices. See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:3:Documentation:Administration#HTML_invoice_templates">billing documentation</a> for details.',
'type' => 'textarea',
},
{
'key' => 'invoice_latex',
'section' => 'invoice_templates',
- 'description' => 'Optional LaTeX template for typeset PostScript invoices. See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:2.1:Documentation:Administration#Typeset_.28LaTeX.29_invoice_templates">billing documentation</a> for details.',
+ 'description' => 'Optional LaTeX template for typeset PostScript invoices. See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:3:Documentation:Administration#Typeset_.28LaTeX.29_invoice_templates">billing documentation</a> for details.',
'type' => 'textarea',
},
'description' => 'Optional default invoice term, used to calculate a due date printed on invoices.',
'type' => 'select',
'per_agent' => 1,
- 'select_enum' => [
- '', 'Payable upon receipt', 'Net 0', 'Net 3', 'Net 5', 'Net 7', 'Net 9', 'Net 10', 'Net 14',
- 'Net 15', 'Net 18', 'Net 20', 'Net 21', 'Net 25', 'Net 30', 'Net 45',
- 'Net 60', 'Net 90'
- ], },
+ 'select_enum' => \@invoice_terms,
+ },
{
'key' => 'invoice_show_prior_due_date',
},
{
+ 'key' => 'cust_main-packages-num_per_page',
+ 'section' => 'packages',
+ 'description' => 'Number of packages to display per page on customer view (default 10).',
+ 'type' => 'text',
+ },
+
+ {
'key' => 'disable_maxselect',
'section' => 'reporting',
'description' => 'Prevent changing the number of records per page.',
{
'key' => 'signupurl',
'section' => 'signup',
- 'description' => 'if you are using customer-to-customer referrals, and you enter the URL of your <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:2.1:Documentation:Self-Service_Installation">signup server CGI</a>, the customer view screen will display a customized link to self-signup with the appropriate customer as referral',
+ 'description' => 'if you are using customer-to-customer referrals, and you enter the URL of your <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:3:Documentation:Self-Service_Installation">signup server CGI</a>, the customer view screen will display a customized link to self-signup with the appropriate customer as referral',
'type' => 'text',
},
},
{
+ 'key' => 'google_maps_api_key',
+ 'section' => 'addresses',
+ 'description' => 'API key for google maps. This must be set for map and directions links to work. See <a href="https://developers.google.com/maps/documentation/javascript/get-api-key" target="_top">Getting a Google Maps API Key</a>',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'company_physical_address',
+ 'section' => 'addresses',
+ 'description' => 'Your physical company address, for use in supplying google map directions, defaults to company_address',
+ 'type' => 'textarea',
+ 'per_agent' => 1,
+ },
+
+ {
'key' => 'show_ship_company',
'section' => 'addresses',
'description' => 'Turns on display/collection of a "service company name" field for customers.',
{
'key' => 'ticket_system',
'section' => 'ticketing',
- 'description' => 'Ticketing system integration. <b>RT_Internal</b> uses the built-in RT ticketing system (see the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:2.1:Documentation:RT_Installation">integrated ticketing installation instructions</a>). <b>RT_External</b> accesses an external RT installation in a separate database (local or remote).',
+ 'description' => 'Ticketing system integration. <b>RT_Internal</b> uses the built-in RT ticketing system (see the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:3:Documentation:RT_Installation">integrated ticketing installation instructions</a>). <b>RT_External</b> accesses an external RT installation in a separate database (local or remote).',
'type' => 'select',
#'select_enum' => [ '', qw(RT_Internal RT_Libs RT_External) ],
'select_enum' => [ '', qw(RT_Internal RT_External) ],
},
{
+ 'key' => 'pingd-interval',
+ 'section' => 'network_monitoring',
+ 'description' => 'Run ping scans of broadband services at this interval.',
+ 'type' => 'select',
+ 'select_hash' => [ '' => '',
+ 60 => '1 min',
+ 300 => '5 min',
+ 600 => '10 min',
+ 1800 => '30 min',
+ 3600 => '1 hour',
+ 14400 => '4 hours',
+ 28800 => '8 hours',
+ 86400 => '1 day',
+ ],
+ },
+
+ {
'key' => 'ticket_system-default_queueid',
'section' => 'ticketing',
'description' => 'Default queue used when creating new customer tickets.',
},
{
- 'key' => 'cust_pkg-always_show_location',
- 'section' => 'packages',
- 'description' => "Always display package locations, even when they're all the default service address.",
- 'type' => 'checkbox',
- },
-
- {
'key' => 'cust_pkg-group_by_location',
'section' => 'packages',
'description' => "Group packages by location.",
},
{
- 'key' => 'voip-cust_email_csv_cdr',
- 'section' => 'deprecated',
- 'description' => 'Deprecated, see voip-cdr_email_attach instead. Used to enable the per-customer option for including CDR information as a CSV attachment on emailed invoices.',
- 'type' => 'checkbox',
- },
-
- {
'key' => 'voip-cdr_email_attach',
'section' => 'telephony',
'description' => 'Enable the per-customer option for including CDR information as an attachment on emailed invoices.',
},
{
+ 'key' => 'invoice-all_pkg_addresses',
+ 'section' => 'invoicing',
+ 'description' => 'Show all package addresses on invoices, even the default.',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'invoice-unitprice',
'section' => 'invoicing',
'description' => 'Enable unit pricing on invoices and quantities on packages.',
},
{
+ 'key' => 'cust_main-require_classnum',
+ 'section' => 'customer_fields',
+ 'description' => 'Customer class is required: require customer class for all customer records.',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'cust_main-check_unique',
'section' => 'customer_fields',
'description' => 'Warn before creating a customer record where these fields duplicate another customer.',
},
{
- 'key' => 'referral_credit_type',
- 'section' => 'deprecated',
- 'description' => 'Used to be the group to use for new, automatically generated credit reasons resulting from referrals. Now set in a package billing event for the referral.',
- reason_type_options('R'),
- },
-
- # was only used to negate invoices during signup when card was declined, now we just void
- {
- 'key' => 'signup_credit_type',
- 'section' => 'deprecated', #self-service?
- 'description' => 'The group to use for new, automatically generated credit reasons resulting from signup and self-service declines.',
- reason_type_options('R'),
- },
-
- {
'key' => 'prepayment_discounts-credit_type',
'section' => 'billing',
'description' => 'Enables the offering of prepayment discounts and establishes the credit reason type.',
# },
{
+ 'key' => 'cdr-skip_duplicate_rewrite',
+ 'section' => 'telephony',
+ 'description' => 'Use the freeside-cdrrewrited daemon to prevent billing CDRs with a src, dst and calldate identical to an existing CDR',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'cdr-charged_party_rewrite',
'section' => 'telephony',
'description' => 'Do charged party rewriting in the freeside-cdrrewrited daemon; useful if CDRs are being dropped off directly in the database and require special charged_party processing such as cdr-charged_party-accountcode or cdr-charged_party-truncate*.',
},
{
+ 'key' => 'cdr-userfield_dnis_rewrite',
+ 'section' => 'telephony',
+ 'description' => 'If the CDR userfield contains "DNIS=" followed by a sequence of digits, use that as the destination number for the call.',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'cdr-intl_to_domestic_rewrite',
'section' => 'telephony',
'description' => 'Strip the "011" international prefix from CDR destination numbers if the rest of the number is 7 digits or shorter, and so probably does not contain a country code.',
},
{
- 'key' => 'tax-cust_exempt-groups-require_individual_nums',
- 'section' => 'deprecated',
- 'description' => 'Deprecated: see tax-cust_exempt-groups-number_requirement',
- 'type' => 'checkbox',
- },
-
- {
'key' => 'tax-cust_exempt-groups-num_req',
'section' => 'taxation',
'description' => 'When using tax-cust_exempt-groups, control whether individual tax exemption numbers are required for exemption from different taxes.',
{
'key' => 'cust_bill-latex_lineitem_maxlength',
- 'section' => 'invoicing',
- 'description' => 'Truncate long line items to this number of characters on typeset invoices, to avoid losing things off the right margin. Defaults to 50. ',
+ 'section' => 'deprecated',
+ 'description' => 'With old invoice_latex template, truncate long line items to this number of characters on typeset invoices, to avoid losing things off the right margin. (With current invoice_latex template, this is handled internally in the template itself instead.)',
'type' => 'text',
},
},
{
- 'key' => 'svc_broadband-require-nw-coordinates',
- 'section' => 'deprecated',
- 'description' => 'Deprecated; see geocode-require_nw_coordinates instead',
- 'type' => 'checkbox',
- },
-
- {
'key' => 'cust-edit-alt-field-order',
'section' => 'customer_fields',
'description' => 'An alternate ordering of fields for the New Customer and Edit Customer screens.',
'rate_low' => 'Lowest rate first',
],
},
+
+ {
+ 'key' => 'cdr-lrn_lookup',
+ 'section' => 'telephony',
+ 'description' => 'Look up LRNs of destination numbers for exact matching to the terminating carrier. This feature requires a Freeside support contract for paid access to the central NPAC database; see <a href ="#support-key">support-key</a>.',
+ 'type' => 'checkbox',
+ },
{
'key' => 'brand-agent',