X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FConf.pm;h=239e304ddf2af9a0a2be324c5fbda0fd561cd6c9;hb=42e878b29ae26943d7dc3acfbb7f095a56ae0a2f;hp=5663c193942aecc6346084dd8574c0f9ce64c148;hpb=496842b7db855bd616844c7667e5d70de42535fd;p=freeside.git
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 5663c1939..239e304dd 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -773,7 +773,7 @@ sub reason_type_options {
{
'key' => 'log_sent_mail',
'section' => 'notification',
- 'description' => 'Enable logging of template-generated email.',
+ 'description' => 'Enable logging of all sent email.',
'type' => 'checkbox',
},
@@ -1060,6 +1060,7 @@ sub reason_type_options {
'%m/%d/%Y' => 'MM/DD/YYYY',
'%d/%m/%Y' => 'DD/MM/YYYY',
'%Y/%m/%d' => 'YYYY/MM/DD',
+ '%e %b %Y' => 'DD Mon YYYY',
],
'per_locale' => 1,
},
@@ -1113,7 +1114,7 @@ sub reason_type_options {
{
'key' => 'unapplycredits',
'section' => 'deprecated',
- 'description' => 'DEPRECATED, now controlled by ACLs. Used to nable "unapplication" of unclosed credits.',
+ 'description' => 'DEPRECATED, now controlled by ACLs. Used to enable "unapplication" of unclosed credits.',
'type' => 'checkbox',
},
@@ -1232,11 +1233,35 @@ 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.'
+ : '' }
+ },
+
+ {
+ 'key' => 'quotation_from',
+ 'section' => '',
+ 'description' => 'Return address on email quotations',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ },
+
+
{
'key' => 'invoice_subject',
'section' => 'invoicing',
@@ -1246,6 +1271,15 @@ sub reason_type_options {
'per_locale' => 1,
},
+ {
+ 'key' => 'quotation_subject',
+ 'section' => '',
+ 'description' => 'Subject: header on email quotations. Defaults to "Quotation".', # The following substitutions are available: $name, $name_short, $invoice_number, and $invoice_date.',
+ 'type' => 'text',
+ #'per_agent' => 1,
+ 'per_locale' => 1,
+ },
+
{
'key' => 'invoice_usesummary',
'section' => 'invoicing',
@@ -1501,14 +1535,28 @@ and customer address. Include units.',
{
'key' => 'invoice_email_pdf',
'section' => 'invoicing',
- 'description' => 'Send PDF invoice as an attachment to emailed invoices. By default, includes the plain text invoice as the email body, unless invoice_email_pdf_note is set.',
+ 'description' => 'Send PDF invoice as an attachment to emailed invoices. By default, includes the HTML invoice as the email body, unless invoice_email_pdf_note is set.',
+ 'type' => 'checkbox'
+ },
+
+ {
+ 'key' => 'quotation_email_pdf',
+ 'section' => '',
+ 'description' => 'Send PDF quotations as an attachment to emailed quotations. By default, includes the HTML quotation as the email body, unless quotation_email_pdf_note is set.',
'type' => 'checkbox'
},
{
'key' => 'invoice_email_pdf_note',
'section' => 'invoicing',
- 'description' => 'If defined, this text will replace the default plain text invoice as the body of emailed PDF invoices.',
+ 'description' => 'If defined, this text will replace the default HTML invoice as the body of emailed PDF invoices.',
+ 'type' => 'textarea'
+ },
+
+ {
+ 'key' => 'quotation_email_pdf_note',
+ 'section' => '',
+ 'description' => 'If defined, this text will replace the default HTML quotation as the body of emailed PDF quotations.',
'type' => 'textarea'
},
@@ -1526,11 +1574,19 @@ and customer address. Include units.',
'type' => 'checkbox',
},
+ {
+ 'key' => 'invoice_print_pdf-duplex',
+ 'section' => 'invoicing',
+ 'description' => 'Insert blank pages so that spooled invoices are each an even number of pages. Use this for double-sided printing.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'invoice_default_terms',
'section' => 'invoicing',
'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 9', 'Net 10', 'Net 14',
'Net 15', 'Net 18', 'Net 20', 'Net 21', 'Net 25', 'Net 30', 'Net 45',
@@ -1560,11 +1616,19 @@ and customer address. Include units.',
},
{
- 'key' => 'invoice_sections_by_location',
+ 'key' => 'invoice_sections_method',
'section' => 'invoicing',
- 'description' => 'Divide invoice into sections according to service location. Currently, this overrides sectioning by package category.',
- 'type' => 'checkbox',
- 'per_agent' => 1,
+ 'description' => 'How to group line items on multi-section invoices.',
+ 'type' => 'select',
+ 'select_enum' => [ qw(category location) ],
+ },
+
+ {
+ '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.',
+ 'type' => 'select',
+ 'select_enum' => [ qw(category location) ],
},
#quotations seem broken-ish with sections ATM?
@@ -1576,6 +1640,13 @@ and customer address. Include units.',
# 'per_agent' => 1,
#},
+ {
+ 'key' => 'usage_class_summary',
+ 'section' => 'invoicing',
+ 'description' => 'Summarize total usage by usage class in a separate section.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'usage_class_as_a_section',
'section' => 'invoicing',
@@ -1690,6 +1761,14 @@ and customer address. Include units.',
'type' => 'text',
},
+ {
+ 'key' => 'papersize',
+ 'section' => 'billing',
+ 'description' => 'Invoice paper size. Default is "letter" (U.S. standard). The LaTeX template must be configured to match this size.',
+ 'type' => 'select',
+ 'select_enum' => [ qw(letter a4) ],
+ },
+
{
'key' => 'money_char',
'section' => '',
@@ -2422,8 +2501,9 @@ and customer address. Include units.',
{
'key' => 'enable_taxproducts',
'section' => 'billing',
- 'description' => 'Enable per-package mapping to vendor tax data from CCH or elsewhere.',
- 'type' => 'checkbox',
+ 'description' => 'Tax data vendor you are using.',
+ 'type' => 'select',
+ 'select_enum' => [ 'cch', 'billsoft', 'avalara' ],
},
{
@@ -2440,6 +2520,20 @@ and customer address. Include units.',
'type' => 'checkbox',
},
+ {
+ 'key' => 'billsoft-company_code',
+ 'section' => 'billing',
+ 'description' => 'Billsoft tax service company code (3 letters)',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'avalara-taxconfig',
+ 'section' => 'billing',
+ 'description' => 'Avalara tax service configuration. Four lines: company code, account number, license key, test mode (1 to enable).',
+ 'type' => 'textarea',
+ },
+
{
'key' => 'welcome_msgnum',
'section' => 'notification',
@@ -2543,7 +2637,7 @@ and customer address. Include units.',
'section' => 'billing',
'description' => 'Available payment types.',
'type' => 'selectmultiple',
- 'select_enum' => [ qw(CARD DCRD CHEK DCHK BILL CASH WEST MCRD PPAL COMP) ],
+ 'select_enum' => [ qw(CARD DCRD CHEK DCHK BILL CASH WEST MCRD MCHK PPAL COMP) ],
},
{
@@ -2674,6 +2768,20 @@ and customer address. Include units.',
'type' => 'checkbox',
},
+ {
+ 'key' => 'backoffice-require_cvv',
+ 'section' => 'billing',
+ 'description' => 'Require CVV for manual credit card entry.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'selfservice-onfile_require_cvv',
+ 'section' => 'self-service',
+ 'description' => 'Require CVV for on-file credit card during self-service payments.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'selfservice-require_cvv',
'section' => 'self-service',
@@ -2707,6 +2815,22 @@ and customer address. Include units.',
'type' => 'checkbox',
},
+ {
+ 'key' => 'selfservice_immutable-package',
+ 'section' => 'self-service',
+ 'description' => 'Disable package changes in self-service interface.',
+ 'type' => 'checkbox',
+ 'per_agent' => 1,
+ },
+
+ {
+ 'key' => 'selfservice_hide-usage',
+ 'section' => 'self-service',
+ 'description' => 'Hide usage data in self-service interface.',
+ 'type' => 'checkbox',
+ 'per_agent' => 1,
+ },
+
{
'key' => 'selfservice_process-pkgpart',
'section' => 'billing',
@@ -2868,6 +2992,13 @@ and customer address. Include units.',
%msg_template_options,
},
+ {
+ 'key' => 'selfservice-password_change_oldpass',
+ 'section' => 'self-service',
+ 'description' => 'Require old password to be entered again for password changes (in addition to being logged in), at the API level.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'selfservice-hide_invoices-taxclass',
'section' => 'self-service',
@@ -3416,7 +3547,8 @@ and customer address. Include units.',
'description' => 'Optional "site ID" to show in the location label',
'type' => 'select',
'select_hash' => [ '' => '',
- 'CoStAg' => 'CoStAgXXXXX (country, state, agent name, locationnum)',
+ 'CoStAg' => 'CoStAgXXXXX (country, state, agent name, locationnum)',
+ '_location' => 'Manually defined per location',
],
},
@@ -3442,17 +3574,24 @@ and customer address. Include units.',
},
{
- 'key' => 'cust_pkg-show_fcc_voice_grade_equivalent',
+ 'key' => 'cust_pkg-large_pkg_size',
+ 'section' => 'UI',
+ 'description' => "In customer view, summarize packages with more than this many services. Set to zero to never summarize packages.",
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'cust_pkg-hide_discontinued-part_svc',
'section' => 'UI',
- 'description' => "Show fields on package definitions for FCC Form 477 classification",
+ 'description' => "In customer view, hide provisioned services which are no longer available in the package definition. Not normally used except for very specific situations as it hides still-provisioned services.",
'type' => 'checkbox',
},
{
- 'key' => 'cust_pkg-large_pkg_size',
+ 'key' => 'part_pkg-show_fcc_options',
'section' => 'UI',
- 'description' => "In customer view, summarize packages with more than this many services. Set to zero to never summarize packages.",
- 'type' => 'text',
+ 'description' => "Show fields on package definitions for FCC Form 477 classification",
+ 'type' => 'checkbox',
},
{
@@ -3638,7 +3777,7 @@ and customer address. Include units.',
'type' => 'select',
'select_enum' => [ 'NACHA', 'csv-td_canada_trust-merchant_pc_batch',
'csv-chase_canada-E-xactBatch', 'BoM', 'PAP',
- 'paymentech', 'ach-spiritone', 'RBC'
+ 'paymentech', 'ach-spiritone', 'RBC', 'CIBC',
]
},
@@ -3700,7 +3839,7 @@ and customer address. Include units.',
'type' => 'select',
'select_enum' => [ 'NACHA', 'csv-td_canada_trust-merchant_pc_batch', 'BoM',
'PAP', 'paymentech', 'ach-spiritone', 'RBC',
- 'td_eft1464', 'eft_canada'
+ 'td_eft1464', 'eft_canada', 'CIBC'
]
},
@@ -3718,6 +3857,13 @@ and customer address. Include units.',
'type' => 'textarea',
},
+{
+ 'key' => 'batchconfig-CIBC',
+ 'section' => 'billing',
+ 'description' => 'Configuration for Canadian Imperial Bank of Commerce, six lines: 1. Origin ID, 2. Datacenter, 3. Typecode, 4. Short name, 5. Bank, 6. Bank account',
+ 'type' => 'textarea',
+ },
+
{
'key' => 'batchconfig-PAP',
'section' => 'billing',
@@ -3756,7 +3902,7 @@ and customer address. Include units.',
{
'key' => 'batchconfig-eft_canada',
'section' => 'billing',
- 'description' => 'Configuration for EFT Canada batching, four lines: 1. SFTP username, 2. SFTP password, 3. Transaction code, 4. Number of days to delay process date. If you are using separate per-agent batches (batch-spoolagent), you must set this option separately for each agent, as the global setting will be ignored.',
+ 'description' => 'Configuration for EFT Canada batching, five lines: 1. SFTP username, 2. SFTP password, 3. Business transaction code, 4. Personal transaction code, 5. Number of days to delay process date. If you are using separate per-agent batches (batch-spoolagent), you must set this option separately for each agent, as the global setting will be ignored.',
'type' => 'textarea',
'per_agent' => 1,
},
@@ -3874,6 +4020,13 @@ and customer address. Include units.',
'type' => 'checkbox',
},
+ {
+ 'key' => 'cust_main-enable_order_package',
+ 'section' => 'UI',
+ 'description' => 'Display order new package on the basic tab',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'cust_main-edit_calling_list_exempt',
'section' => 'UI',
@@ -3993,13 +4146,6 @@ and customer address. Include units.',
'select_enum' => [ '1 hour', '2 hours', '4 hours', '8 hours', '1 day', '1 week', ],
},
- {
- 'key' => 'disable_setup_suspended_pkgs',
- 'section' => 'billing',
- 'description' => 'Disables charging of setup fees for suspended packages.',
- 'type' => 'checkbox',
- },
-
{
'key' => 'password-generated-allcaps',
'section' => 'password',
@@ -4224,6 +4370,16 @@ and customer address. Include units.',
'type' => 'checkbox',
},
+ {
+ 'key' => 'previous_invoice_history',
+ 'section' => 'invoicing',
+ 'description' => 'Show a month-by-month history of the customer\'s '.
+ 'billing amounts. This requires template '.
+ 'modification and is currently not supported on the '.
+ 'stock template.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'balance_due_below_line',
'section' => 'invoicing',
@@ -4245,7 +4401,6 @@ and customer address. Include units.',
'type' => 'select',
'select_hash' => [ '' => '',
'usps' => 'U.S. Postal Service',
- 'ezlocate' => 'EZLocate',
'tomtom' => 'TomTom',
'melissa' => 'Melissa WebSmart',
],
@@ -4268,24 +4423,10 @@ and customer address. Include units.',
{
'key' => 'tomtom-userid',
'section' => 'UI',
- 'description' => 'TomTom geocoding service API key. See the TomTom website to obtain a key. This is recommended for addresses in the United States only.',
- 'type' => 'text',
- },
-
- {
- 'key' => 'ezlocate-userid',
- 'section' => 'UI',
- 'description' => 'User ID for EZ-Locate service. See the TomTom website for access and pricing information.',
+ 'description' => 'TomTom geocoding service API key. See the TomTom website to obtain a key. This is recommended for addresses in the United States only.',
'type' => 'text',
},
- {
- 'key' => 'ezlocate-password',
- 'section' => 'UI',
- 'description' => 'Password for EZ-Locate service.',
- 'type' => 'text'
- },
-
{
'key' => 'melissa-userid',
'section' => 'UI', # it's really not...
@@ -4855,10 +4996,17 @@ and customer address. Include units.',
'type' => 'checkbox',
},
+ {
+ 'key' => 'svc_phone-bulk_provision_simple',
+ 'section' => 'telephony',
+ 'description' => 'Bulk provision phone numbers with a simple number range instead of from DID vendor orders',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'default_phone_countrycode',
- 'section' => '',
- 'description' => 'Default countrcode',
+ 'section' => 'telephony',
+ 'description' => 'Default countrycode',
'type' => 'text',
},
@@ -5068,18 +5216,29 @@ and customer address. Include units.',
{
'key' => 'tax-cust_exempt-groups',
- 'section' => '',
+ 'section' => 'billing',
'description' => 'List of grouping possibilities for tax names, for per-customer exemption purposes, one tax name per line. For example, "GST" would indicate the ability to exempt customers individually from taxes named "GST" (but not other taxes).',
'type' => 'textarea',
},
{
'key' => 'tax-cust_exempt-groups-require_individual_nums',
- 'section' => '',
- 'description' => 'When using tax-cust_exempt-groups, require an individual tax exemption number for each exemption from different taxes.',
+ 'section' => 'deprecated',
+ 'description' => 'Deprecated: see tax-cust_exempt-groups-number_requirement',
'type' => 'checkbox',
},
+ {
+ 'key' => 'tax-cust_exempt-groups-num_req',
+ 'section' => 'billing',
+ 'description' => 'When using tax-cust_exempt-groups, control whether individual tax exemption numbers are required for exemption from different taxes.',
+ 'type' => 'select',
+ 'select_hash' => [ '' => 'Not required',
+ 'residential' => 'Required for residential customers only',
+ 'all' => 'Required for all customers',
+ ],
+ },
+
{
'key' => 'cust_main-default_view',
'section' => 'UI',
@@ -5580,6 +5739,13 @@ and customer address. Include units.',
'select_hash' => \@cdr_formats,
},
+ {
+ 'key' => 'selfservice-hide_cdr_price',
+ 'section' => 'self-service',
+ 'description' => 'Don\'t show the "Price" column on CDRs in self-service.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'logout-timeout',
'section' => 'UI',
@@ -5687,6 +5853,52 @@ and customer address. Include units.',
},
},
+ {
+ 'key' => 'part_pkg-term_discounts',
+ 'section' => 'billing',
+ 'description' => 'Enable the term discounts feature. Recommended to keep turned off unless actually using - not well optimized for large installations.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'prepaid-never_renew',
+ 'section' => 'billing',
+ 'description' => 'Prepaid packages never renew.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'agent-disable_counts',
+ 'section' => 'UI',
+ 'description' => 'On the agent browse page, disable the customer and package counts. Typically used for very large databases when this page takes too long to render.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'tollfree-country',
+ 'section' => 'telephony',
+ 'description' => 'Country / region for toll-free recognition',
+ 'type' => 'select',
+ 'select_hash' => [ '' => 'NANPA (US/Canada)',
+ 'AU' => 'Australia',
+ 'NZ' => 'New Zealand',
+ ],
+ },
+
+ {
+ 'key' => 'old_fcc_report',
+ 'section' => '',
+ 'description' => 'Use the old (pre-2014) FCC Form 477 report format.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'cust_main-default_commercial',
+ 'section' => 'UI',
+ 'description' => 'Default for new customers is commercial rather than residential.',
+ 'type' => 'checkbox',
+ },
+
{ key => "apacheroot", section => "deprecated", description => "DEPRECATED", type => "text" },
{ key => "apachemachine", section => "deprecated", description => "DEPRECATED", type => "text" },
{ key => "apachemachines", section => "deprecated", description => "DEPRECATED", type => "text" },