my($name, $agentnum) = @_;
if ( my $cv = FS::Record::qsearchs('conf', {name => $name, agentnum => $agentnum}) ) {
- warn "[FS::Conf] DELETE $name\n";
+ warn "[FS::Conf] DELETE $name\n" if $DEBUG;
my $oldAutoCommit = $FS::UID::AutoCommit;
local $FS::UID::AutoCommit = 0;
'description' => 'IP address to assign to new virtual hosts',
'type' => 'text',
},
+
+ {
+ 'key' => 'credits-auto-apply-disable',
+ 'section' => 'billing',
+ 'description' => 'Disable the "Auto-Apply to invoices" UI option for new credits',
+ 'type' => 'checkbox',
+ },
+
+ {
+ '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',
],
},
+ {
+ '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',
'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' ],
},
{
'type' => 'checkbox',
},
+ {
+ 'key' => 'phone_usage_class_summary',
+ 'section' => 'invoicing',
+ 'description' => 'Summarize usage per DID by usage class and display all CDRs together regardless of usage class. Only valid when svc_phone_sections is enabled.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'svc_phone_sections',
'section' => 'invoicing',
'description' => 'Template to use for payment receipts.',
%msg_template_options,
},
+
+ {
+ 'key' => 'payment_receipt_from',
+ 'section' => 'notification',
+ 'description' => 'From: address for payment receipts, if not specified in the template.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ },
{
'key' => 'payment_receipt_email',
'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',
'type' => 'select-pkg_class',
},
+ {
+ 'key' => 'signup_server-third_party_as_card',
+ 'section' => 'self-service',
+ 'description' => 'Allow customer payment type to be set to CARD even when using third-party credit card billing.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'selfservice-xmlrpc',
'section' => 'self-service',
'description' => 'Template to use for welcome messages when a svc_acct record is created.',
%msg_template_options,
},
+
+ {
+ 'key' => 'svc_acct_welcome_exclude',
+ 'section' => 'notification',
+ 'description' => 'A list of svc_acct services for which no welcome email is to be sent.',
+ 'type' => 'select-part_svc',
+ 'multiple' => 1,
+ },
{
'key' => 'welcome_email',
'type' => 'checkbox',
},
+ {
+ 'key' => 'dump-localdest',
+ 'section' => '',
+ 'description' => 'Destination for local database dumps (full path)',
+ 'type' => 'text',
+ },
+
{
'key' => 'dump-scpdest',
'section' => '',
- 'description' => 'destination for scp database dumps: user@host:/path',
+ 'description' => 'Destination for scp database dumps: user@host:/path',
'type' => 'text',
},
},
},
+ {
+ 'key' => 'ticket_system-requestor',
+ 'section' => '',
+ 'description' => 'Email address to use as the requestor for new tickets. If blank, the customer\'s invoicing address(es) will be used.',
+ 'type' => 'text',
+ },
+
{
'key' => 'ticket_system-priority_reverse',
'section' => '',
'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' => '',
'per_agent' => 1,
},
+ {
+ 'key' => 'company_phonenum',
+ 'section' => 'notification',
+ 'description' => 'Your company phone number',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ },
+
{
'key' => 'echeck-void',
'section' => 'deprecated',
{
'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',
},
'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'
]
},
{
'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',
},
'type' => 'select',
'select_hash' => [
'' => 'Numeric only',
+ '\d{7}' => 'Numeric only, exactly 7 digits',
'ww?d+' => 'Numeric with one or two letter prefix',
],
},
'type' => 'checkbox',
},
+ {
+ 'key' => 'previous_balance-show_credit',
+ 'section' => 'invoicing',
+ 'description' => 'Show the customer\'s credit balance on invoices when applicable.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'balance_due_below_line',
'section' => 'invoicing',
{
'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' => '',
+ 'section' => 'telephony',
'description' => 'Enables Number Portability features for svc_phone',
'type' => 'checkbox',
},
{
'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'};
#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',
},
{
'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',
},
{
'key' => 'cdr-taqua-da_rewrite',
- 'section' => '',
+ 'section' => 'telephony',
'description' => 'For the Taqua CDR format, a comma-separated list of directory assistance 800 numbers. Any CDRs with these numbers as "BilledNumber" will be rewritten to the "CallingPartyNumber" (and CallType "12") on import.',
'type' => 'text',
},
+ {
+ 'key' => 'cdr-taqua-accountcode_rewrite',
+ 'section' => 'telephony',
+ 'description' => 'For the Taqua CDR format, pull accountcodes from secondary CDRs with matching sessionNumber.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'cust_pkg-show_autosuspend',
'section' => 'UI',
{
'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',
},
},
{
- 'key' => 'qual-alt-address-format',
+ 'key' => 'qual-alt_address_format',
'section' => 'UI',
- 'description' => 'Enable the alternate address format (location type, number, and kind) on qualifications',
+ 'description' => 'Enable the alternate address format (location type, number, and kind) for qualifications.',
'type' => 'checkbox',
},
-
+
+ {
+ 'key' => 'prospect_main-alt_address_format',
+ 'section' => 'UI',
+ 'description' => 'Enable the alternate address format (location type, number, and kind) for prospects. Recommended if qual-alt_address_format is set and the main use of propects is for qualifications.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'prospect_main-location_required',
+ 'section' => 'UI',
+ 'description' => 'Require an address for prospects. Recommended if the main use of propects is for qualifications.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'note-classes',
'section' => 'UI',
'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' => 'ie-compatibility_mode',
+ 'section' => 'UI',
+ 'description' => "Compatibility mode META tag for Internet Explorer, used on the customer view page. Not necessary in normal operation unless custom content (notes, cust_main-custom_link) is included on customer view that is incompatibile with newer IE verisons.",
+ 'type' => 'select',
+ 'select_enum' => [ '', '7', 'EmulateIE7', '8', 'EmulateIE8' ],
+ },
+
+ {
+ 'key' => 'disable_payauto_default',
+ 'section' => 'UI',
+ 'description' => 'Disable the "Charge future payments to this (card|check) automatically" checkbox from defaulting to checked.',
+ 'type' => 'checkbox',
+ },
+
{ key => "apacheroot", section => "deprecated", description => "<b>DEPRECATED</b>", type => "text" },
{ key => "apachemachine", section => "deprecated", description => "<b>DEPRECATED</b>", type => "text" },