X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FConf.pm;h=a46106f611be7e7a074e513f1a766f0626d7179e;hb=5cb4d011200281328b15ca3e0878c7ecd6f5d0e2;hp=a05ad0358b8b9177390dec54e597d22ae5297a4f;hpb=1318909d7eb16d736cbfb9f641eecccb00d4636c;p=freeside.git
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index a05ad0358..a46106f61 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -465,7 +465,7 @@ sub _orbase_items {
'key' => $_,
'base_key' => $proto->key,
'section' => $proto->section,
- 'description' => 'Alternate ' . $proto->description . ' See the billing documentation for details.',
+ 'description' => 'Alternate ' . $proto->description . ' See the billing documentation for details.',
'type' => $proto->type,
};
} &$listmaker($base);
@@ -584,6 +584,26 @@ my %msg_template_options = (
'per_agent' => 1,
);
+my $_gateway_name = sub {
+ my $g = shift;
+ return '' if !$g;
+ ($g->gateway_username . '@' . $g->gateway_module);
+};
+
+my %payment_gateway_options = (
+ 'type' => 'select-sub',
+ 'options_sub' => sub {
+ my @gateways = qsearch({
+ 'table' => 'payment_gateway',
+ 'hashref' => { 'disabled' => '' },
+ });
+ map { $_->gatewaynum, $_gateway_name->($_) } @gateways;
+ },
+ 'option_sub' => sub {
+ my $gateway = FS::payment_gateway->by_key(shift);
+ $_gateway_name->($gateway);
+ },
+);
#Billing (81 items)
#Invoicing (50 items)
@@ -633,6 +653,27 @@ my %msg_template_options = (
'description' => 'IP address to assign to new virtual hosts',
'type' => 'text',
},
+
+ {
+ 'key' => 'credit-card-surcharge-percentage',
+ 'section' => 'billing',
+ 'description' => 'Add a credit card surcharge to invoices, as a % of the invoice total. WARNING: this is usually prohibited by merchant account / other agreements and/or law, but is currently lawful in AU and UK.',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'discount-show-always',
+ 'section' => 'billing',
+ 'description' => 'Generate a line item on an invoice even when a package is discounted 100%',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'invoice-barcode',
+ 'section' => 'billing',
+ 'description' => 'Display a barcode on HTML and PDF invoices',
+ 'type' => 'checkbox',
+ },
{
'key' => 'encryption',
@@ -768,6 +809,17 @@ my %msg_template_options = (
],
},
+ {
+ 'key' => 'date_format_long',
+ 'section' => 'UI',
+ 'description' => 'Verbose format for displaying dates',
+ 'type' => 'select',
+ 'select_hash' => [
+ '%b %o, %Y' => 'Mon DDth, YYYY',
+ '%e %b %Y' => 'DD Mon YYYY',
+ ],
+ },
+
{
'key' => 'deletecustomers',
'section' => 'UI',
@@ -951,14 +1003,14 @@ my %msg_template_options = (
{
'key' => 'invoice_template',
'section' => 'invoicing',
- '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 billing documentation 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 billing documentation for details.',
'type' => 'textarea',
},
{
'key' => 'invoice_html',
'section' => 'invoicing',
- 'description' => 'Optional HTML template for invoices. See the billing documentation for details.',
+ 'description' => 'Optional HTML template for invoices. See the billing documentation for details.',
'type' => 'textarea',
},
@@ -997,7 +1049,7 @@ my %msg_template_options = (
{
'key' => 'invoice_latex',
'section' => 'invoicing',
- 'description' => 'Optional LaTeX template for typeset PostScript invoices. See the billing documentation for details.',
+ 'description' => 'Optional LaTeX template for typeset PostScript invoices. See the billing documentation for details.',
'type' => 'textarea',
},
@@ -1186,7 +1238,7 @@ and customer address. Include units.',
'section' => 'invoicing',
'description' => 'Optional default invoice term, used to calculate a due date printed on invoices.',
'type' => 'select',
- 'select_enum' => [ '', 'Payable upon receipt', 'Net 0', 'Net 10', 'Net 15', 'Net 20', 'Net 21', 'Net 30', 'Net 45', 'Net 60', 'Net 90' ],
+ 'select_enum' => [ '', 'Payable upon receipt', 'Net 0', 'Net 3', 'Net 10', 'Net 15', 'Net 20', 'Net 21', 'Net 30', 'Net 45', 'Net 60', 'Net 90' ],
},
{
@@ -1454,7 +1506,7 @@ and customer address. Include units.',
{
'key' => 'signupurl',
'section' => 'UI',
- 'description' => 'if you are using customer-to-customer referrals, and you enter the URL of your signup server CGI, the customer view screen will display a customized link to the signup server with the appropriate customer as referral',
+ 'description' => 'if you are using customer-to-customer referrals, and you enter the URL of your signup server CGI, the customer view screen will display a customized link to the signup server with the appropriate customer as referral',
'type' => 'text',
},
@@ -1725,6 +1777,13 @@ and customer address. Include units.',
'select_enum' => [ qw(CARD DCRD CHEK DCHK LECB PREPAY BILL COMP) ],
},
+ {
+ 'key' => 'selfservice-payment_gateway',
+ 'section' => 'self-service',
+ 'description' => 'Force the use of this payment gateway for self-service.',
+ %payment_gateway_options,
+ },
+
{
'key' => 'selfservice-save_unchecked',
'section' => 'self-service',
@@ -1811,6 +1870,13 @@ and customer address. Include units.',
'svc_pbx' => 'PBX (svc_pbx)',
],
},
+
+ {
+ 'key' => 'signup_server-prepaid-template-custnum',
+ 'section' => 'self-service',
+ 'description' => 'When the signup server is used with prepaid cards and customer info is not required for signup, the contact/address info will be copied from this customer, if specified',
+ 'type' => 'text',
+ },
{
'key' => 'selfservice_server-base_url',
@@ -2269,6 +2335,28 @@ and customer address. Include units.',
'type' => 'text',
},
+ {
+ 'key' => 'selfservice_server-login_svcpart',
+ 'section' => 'self-service',
+ 'description' => 'If specified, only allow the specified svcparts to login to self-service.',
+ 'type' => 'select-part_svc',
+ 'multiple' => 1,
+ },
+
+ {
+ 'key' => 'selfservice-recent-did-age',
+ 'section' => 'self-service',
+ 'description' => 'If specified, defines "recent", in number of seconds, for "Download recently allocated DIDs" in self-service.',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'selfservice_server-view-wholesale',
+ 'section' => 'self-service',
+ 'description' => 'If enabled, use a wholesale package view in the self-service.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'selfservice-agent_signup',
'section' => 'self-service',
@@ -2392,12 +2480,21 @@ and customer address. Include units.',
{
'key' => 'ticket_system',
'section' => '',
- 'description' => 'Ticketing system integration. RT_Internal uses the built-in RT ticketing system (see the integrated ticketing installation instructions). RT_External accesses an external RT installation in a separate database (local or remote).',
+ 'description' => 'Ticketing system integration. RT_Internal uses the built-in RT ticketing system (see the integrated ticketing installation instructions). RT_External 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' => 'network_monitoring_system',
+ 'section' => '',
+ 'description' => 'Networking monitoring system (NMS) integration. Torrus_Internal uses the built-in Torrus ticketing system (see the integrated networking monitoring system installation instructions).',
+ 'type' => 'select',
+ #'select_enum' => [ '', qw(RT_Internal RT_Libs RT_External) ],
+ 'select_enum' => [ '', qw(Torrus_Internal) ],
+ },
+
{
'key' => 'ticket_system-default_queueid',
'section' => '',
@@ -2486,6 +2583,13 @@ and customer address. Include units.',
'type' => 'text',
},
+ {
+ 'key' => 'ticket_system-escalation',
+ 'section' => '',
+ 'description' => 'Enable priority escalation of tickets as part of daily batch processing.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'ticket_system-rt_external_datasrc',
'section' => '',
@@ -2688,6 +2792,13 @@ and customer address. Include units.',
'type' => 'checkbox',
},
+ {
+ 'key' => 'cust_pkg-group_by_location',
+ 'section' => 'UI',
+ 'description' => "Group packages by location.",
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'cust_pkg-show_fcc_voice_grade_equivalent',
'section' => 'UI',
@@ -2732,28 +2843,28 @@ and customer address. Include units.',
{
'key' => 'voip-cust_cdr_spools',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Enable the per-customer option for individual CDR spools.',
'type' => 'checkbox',
},
{
'key' => 'voip-cust_cdr_squelch',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Enable the per-customer option for not printing CDR on invoices.',
'type' => 'checkbox',
},
{
'key' => 'voip-cdr_email',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Include the call details on emailed invoices (and HTML invoices viewed in the backend), even if the customer is configured for not printing them on the invoices.',
'type' => 'checkbox',
},
{
'key' => 'voip-cust_email_csv_cdr',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Enable the per-customer option for including CDR information as a CSV attachment on emailed invoices.',
'type' => 'checkbox',
},
@@ -2886,7 +2997,7 @@ and customer address. Include units.',
'description' => 'Fixed (unchangeable) format for electronic check batches.',
'type' => 'select',
'select_enum' => [ 'csv-td_canada_trust-merchant_pc_batch', 'BoM', 'PAP',
- 'paymentech', 'ach-spiritone', 'RBC'
+ 'paymentech', 'ach-spiritone', 'RBC', 'td_eft1464'
]
},
@@ -2935,17 +3046,17 @@ and customer address. Include units.',
{
'key' => 'batchconfig-td_eft1464',
'section' => 'billing',
- 'description' => 'Configuration for TD Bank EFT1464 batching, five lines: 1. Originator ID, 2. Datacenter Code, 3. Short name, 4. Long name, 5. Returned payment branch number, 6. Returned payment account, 7. Transaction code.',
+ 'description' => 'Configuration for TD Bank EFT1464 batching, seven lines: 1. Originator ID, 2. Datacenter Code, 3. Short name, 4. Long name, 5. Returned payment branch number, 6. Returned payment account, 7. Transaction code.',
'type' => 'textarea',
},
-# {
-# 'key' => 'batch-manual_approval',
-# 'section' => 'billing',
-# 'description' => 'Allow manual batch closure, which will approve all payments that do not yet have a status. This is dangerous, but may be needed if your processor does not provide a list of approved payments.',
-# 'type' => 'checkbox',
-# },
-#
+ {
+ 'key' => 'batch-manual_approval',
+ 'section' => 'billing',
+ 'description' => 'Allow manual batch closure, which will approve all payments that do not yet have a status. This is not advised, but is needed for payment processors that provide a report of rejected rather than approved payments.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'payment_history-years',
'section' => 'UI',
@@ -3275,6 +3386,7 @@ and customer address. Include units.',
'type' => 'select',
'select_hash' => [
'' => 'Numeric only',
+ '\d{7}' => 'Numeric only, exactly 7 digits',
'ww?d+' => 'Numeric with one or two letter prefix',
],
},
@@ -3708,31 +3820,38 @@ and customer address. Include units.',
{
'key' => 'svc_phone-radius-default_password',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Default password when exporting svc_phone records to RADIUS',
'type' => 'text',
},
{
'key' => 'svc_phone-allow_alpha_phonenum',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Allow letters in phone numbers.',
'type' => 'checkbox',
},
{
'key' => 'svc_phone-domain',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Track an optional domain association with each phone service.',
'type' => 'checkbox',
},
{
'key' => 'svc_phone-phone_name-max_length',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Maximum length of the phone service "Name" field (svc_phone.phone_name). Sometimes useful to limit this (to 15?) when exporting as Caller ID data.',
'type' => 'text',
},
+
+ {
+ 'key' => 'svc_phone-lnp',
+ 'section' => 'telephony',
+ 'description' => 'Enables Number Portability features for svc_phone',
+ 'type' => 'checkbox',
+ },
{
'key' => 'default_phone_countrycode',
@@ -3743,7 +3862,7 @@ and customer address. Include units.',
{
'key' => 'cdr-charged_party-field',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Set the charged_party field of CDRs to this field.',
'type' => 'select-sub',
'options_sub' => sub { my $fields = FS::cdr->table_info->{'fields'};
@@ -3759,14 +3878,14 @@ and customer address. Include units.',
#probably deprecate in favor of cdr-charged_party-field above
{
'key' => 'cdr-charged_party-accountcode',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Set the charged_party field of CDRs to the accountcode.',
'type' => 'checkbox',
},
{
'key' => 'cdr-charged_party-accountcode-trim_leading_0s',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'When setting the charged_party field of CDRs to the accountcode, trim any leading zeros.',
'type' => 'checkbox',
},
@@ -3787,7 +3906,7 @@ and customer address. Include units.',
{
'key' => 'cdr-charged_party_rewrite',
- 'section' => '',
+ '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*.',
'type' => 'checkbox',
},
@@ -3808,7 +3927,7 @@ and customer address. Include units.',
{
'key' => 'cdr-asterisk_forward_rewrite',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'Enable special processing for CDRs representing forwarded calls: For CDRs that have a dcontext that starts with "Local/" but does not match dst, set charged_party to dst, parse a new dst from dstchannel, and set amaflags to "2" ("BILL"/"BILLING").',
'type' => 'checkbox',
},
@@ -4110,6 +4229,76 @@ and customer address. Include units.',
'type' => 'textarea',
},
+ {
+ 'key' => 'menu-prepend_links',
+ 'section' => 'UI',
+ 'description' => 'Links to prepend to the main menu, one per line, with format "URL Link Label (optional ALT popup)".',
+ 'type' => 'textarea',
+ },
+
+ {
+ 'key' => 'cust_main-external_links',
+ 'section' => 'UI',
+ 'description' => 'External links available in customer view, one per line, with format "URL Link Label (optional ALT popup)". The URL will have custnum appended.',
+ 'type' => 'textarea',
+ },
+
+ {
+ 'key' => 'svc_phone-did-summary',
+ 'section' => 'invoicing',
+ 'description' => 'Enable DID activity summary for past 30 days on invoices, showing # DIDs activated/deactivated/ported-in/ported-out and total minutes usage',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'opensips_gwlist',
+ 'section' => 'telephony',
+ 'description' => 'For svc_phone OpenSIPS dr_rules export, gwlist column value, per-agent',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'agentonly' => 1,
+ },
+
+ {
+ 'key' => 'opensips_description',
+ 'section' => 'telephony',
+ 'description' => 'For svc_phone OpenSIPS dr_rules export, description column value, per-agent',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'agentonly' => 1,
+ },
+
+ {
+ 'key' => 'opensips_route',
+ 'section' => 'telephony',
+ 'description' => 'For svc_phone OpenSIPS dr_rules export, routeid column value, per-agent',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'agentonly' => 1,
+ },
+
+ {
+ 'key' => 'cust_bill-no_recipients-error',
+ 'section' => 'invoicing',
+ 'description' => 'For customers with no invoice recipients, throw a job queue error rather than the default behavior of emailing the invoice to the invoice_from address.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'cust_main-status_module',
+ 'section' => 'UI',
+ 'description' => 'Which module to use for customer status display. The "Classic" module (the default) considers accounts with cancelled recurring packages but un-cancelled one-time charges Inactive. The "Recurring" module considers those customers Cancelled. Similarly for customers with suspended recurring packages but one-time charges.', #other differences?
+ 'type' => 'select',
+ 'select_enum' => [ 'Classic', 'Recurring' ],
+ },
+
+ {
+ 'key' => 'username-pound',
+ 'section' => 'username',
+ 'description' => 'Allow the pound character (#) in usernames.',
+ '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" },