X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FConf.pm;h=c214d6a76d51037e309ab6a9a89079e668ce05c8;hb=055fa6decdbd89e00f2b6e3faf77b068eea38c93;hp=45d11c45cdbae0f0ebe5c904ea78c99bfc378c1d;hpb=4d2208098eebb3bc9a4ea882d1d0403b4e04359d;p=freeside.git
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 45d11c45c..c214d6a76 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -548,21 +548,36 @@ worry that config_items is freeside-specific and icky.
"Solo",
);
-@base_items = qw (
- invoice_template
- invoice_latex
- invoice_latexreturnaddress
- invoice_latexfooter
- invoice_latexsmallfooter
- invoice_latexnotes
- invoice_latexcoupon
- invoice_html
- invoice_htmlreturnaddress
- invoice_htmlfooter
- invoice_htmlnotes
- logo.png
- logo.eps
- );
+@base_items = qw(
+invoice_template
+invoice_latex
+invoice_latexreturnaddress
+invoice_latexfooter
+invoice_latexsmallfooter
+invoice_latexnotes
+invoice_latexcoupon
+invoice_html
+invoice_htmlreturnaddress
+invoice_htmlfooter
+invoice_htmlnotes
+logo.png
+logo.eps
+);
+
+my %msg_template_options = (
+ 'type' => 'select-sub',
+ 'options_sub' => sub { require FS::Record;
+ require FS::agent;
+ require FS::msg_template;
+ map { $_->msgnum, $_->msgname }
+ qsearch('msg_template', { disabled => '' });
+ },
+ 'option_sub' => sub { require FS::msg_template;
+ my $msg_template = FS::msg_template->by_key(shift);
+ $msg_template ? $msg_template->msgname : ''
+ },
+);
+
#Billing (81 items)
#Invoicing (50 items)
@@ -571,7 +586,6 @@ worry that config_items is freeside-specific and icky.
#...
#Unclassified (77 items)
-
@config_items = map { new FS::ConfItem $_ } (
{
@@ -583,7 +597,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'alert_expiration',
- 'section' => 'billing',
+ 'section' => 'notification',
'description' => 'Enable alerts about billing method expiration.',
'type' => 'checkbox',
'per_agent' => 1,
@@ -591,11 +605,18 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'alerter_template',
- 'section' => 'billing',
- 'description' => 'Template file for billing method expiration alerts. See the billing documentation for details.',
+ 'section' => 'deprecated',
+ 'description' => 'Template file for billing method expiration alerts (i.e. expiring credit cards).',
'type' => 'textarea',
'per_agent' => 1,
},
+
+ {
+ 'key' => 'alerter_msgnum',
+ 'section' => 'notification',
+ 'description' => 'Template to use for credit card expiration alerts.',
+ %msg_template_options,
+ },
{
'key' => 'apacheip',
@@ -967,6 +988,55 @@ worry that config_items is freeside-specific and icky.
'type' => 'textarea',
},
+ {
+ 'key' => 'invoice_latextopmargin',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice topmargin setting. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
+ {
+ 'key' => 'invoice_latexheadsep',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice headsep setting. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
+ {
+ 'key' => 'invoice_latexaddresssep',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice separation between invoice header
+and customer address. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
+ {
+ 'key' => 'invoice_latextextheight',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice textheight setting. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
{
'key' => 'invoice_latexnotes',
'section' => 'invoicing',
@@ -999,6 +1069,53 @@ worry that config_items is freeside-specific and icky.
'per_agent' => 1,
},
+ {
+ 'key' => 'invoice_latexextracouponspace',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice textheight space to reserve for a tear off coupon. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
+ {
+ 'key' => 'invoice_latexcouponfootsep',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice separation between tear off coupon and footer. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
+ {
+ 'key' => 'invoice_latexcouponamountenclosedsep',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice separation between total due and amount enclosed line. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+ {
+ 'key' => 'invoice_latexcoupontoaddresssep',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice separation between invoice data and the to address (usually invoice_latexreturnaddress). Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
{
'key' => 'invoice_latexreturnaddress',
'section' => 'invoicing',
@@ -1006,6 +1123,22 @@ worry that config_items is freeside-specific and icky.
'type' => 'textarea',
},
+ {
+ 'key' => 'invoice_latexverticalreturnaddress',
+ 'section' => 'invoicing',
+ 'description' => 'Place the return address under the company logo rather than beside it.',
+ 'type' => 'checkbox',
+ 'per_agent' => 1,
+ },
+
+ {
+ 'key' => 'invoice_latexcouponaddcompanytoaddress',
+ 'section' => 'invoicing',
+ 'description' => 'Add the company name to the To address on the remittance coupon because the return address does not contain it.',
+ 'type' => 'checkbox',
+ 'per_agent' => 1,
+ },
+
{
'key' => 'invoice_latexsmallfooter',
'section' => 'invoicing',
@@ -1093,16 +1226,30 @@ worry that config_items is freeside-specific and icky.
'type' => 'checkbox',
},
+ {
+ 'key' => 'payment_receipt',
+ 'section' => 'notification',
+ 'description' => 'Send payment receipts.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'payment_receipt_msgnum',
+ 'section' => 'notification',
+ 'description' => 'Template to use for payment receipts',
+ %msg_template_options,
+ },
+
{
'key' => 'payment_receipt_email',
- 'section' => 'billing',
- 'description' => 'Template file for payment receipts. Payment receipts are sent to the customer email invoice destination(s) when a payment is received. See the Text::Template documentation for details on the template substitution language. The following variables are available:
$date
$name
$paynum
- Freeside payment number $paid
- Amount of payment $payby
- Payment type (Card, Check, Electronic check, etc.) $payinfo
- Masked credit card number or check number $balance
- New balance$pkg
- Package (requires payment_receipt-trigger set to "when payment is applied".)
',
+ 'section' => 'deprecated',
+ 'description' => 'Template file for payment receipts. Payment receipts are sent to the customer email invoice destination(s) when a payment is received.',
'type' => [qw( checkbox textarea )],
},
{
'key' => 'payment_receipt-trigger',
- 'section' => 'billing',
+ 'section' => 'notification',
'description' => 'When payment receipts are triggered. Defaults to when payment is made.',
'type' => 'select',
'select_hash' => [
@@ -1258,6 +1405,13 @@ worry that config_items is freeside-specific and icky.
'type' => 'checkbox',
},
+ {
+ 'key' => 'report-showpasswords',
+ 'section' => 'UI',
+ 'description' => 'This is a terrible idea. Do not enable it. STRONGLY NOT RECOMMENDED. Enables display of passwords on services reports.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'signupurl',
'section' => 'UI',
@@ -1624,6 +1778,7 @@ worry that config_items is freeside-specific and icky.
'description' => 'Run billing for signup server signups immediately, and do not provision accounts which subsequently have a balance.',
'type' => 'checkbox',
},
+
{
'key' => 'signup_server-classnum2',
'section' => 'self-service',
@@ -1638,6 +1793,13 @@ worry that config_items is freeside-specific and icky.
'type' => 'select-pkg_class',
},
+ {
+ 'key' => 'selfservice-xmlrpc',
+ 'section' => 'self-service',
+ 'description' => 'Run a standalone self-service XML-RPC server on the backend (on port 8080).',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'backend-realtime',
'section' => 'billing',
@@ -1647,42 +1809,56 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'declinetemplate',
- 'section' => 'billing',
+ 'section' => 'deprecated',
'description' => 'Template file for credit card decline emails.',
'type' => 'textarea',
},
+ {
+ 'key' => 'decline_msgnum',
+ 'section' => 'notification',
+ 'description' => 'Template to use for credit card and electronic check decline messages.',
+ %msg_template_options,
+ },
+
{
'key' => 'emaildecline',
- 'section' => 'billing',
+ 'section' => 'notification',
'description' => 'Enable emailing of credit card decline notices.',
'type' => 'checkbox',
},
{
'key' => 'emaildecline-exclude',
- 'section' => 'billing',
+ 'section' => 'notification',
'description' => 'List of error messages that should not trigger email decline notices, one per line.',
'type' => 'textarea',
},
{
'key' => 'cancelmessage',
- 'section' => 'billing',
+ 'section' => 'deprecated',
'description' => 'Template file for cancellation emails.',
'type' => 'textarea',
},
+ {
+ 'key' => 'cancel_msgnum',
+ 'section' => 'notification',
+ 'description' => 'Template to use for cancellation emails.',
+ %msg_template_options,
+ },
+
{
'key' => 'cancelsubject',
- 'section' => 'billing',
+ 'section' => 'deprecated',
'description' => 'Subject line for cancellation emails.',
'type' => 'text',
},
{
'key' => 'emailcancel',
- 'section' => 'billing',
+ 'section' => 'notification',
'description' => 'Enable emailing of cancellation notices. Make sure to fill in the cancelmessage and cancelsubject configuration values as well.',
'type' => 'checkbox',
},
@@ -1738,15 +1914,22 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'welcome_email',
- 'section' => '',
- 'description' => 'Template file for welcome email. Welcome emails are sent to the customer email invoice destination(s) each time a svc_acct record is created. See the Text::Template documentation for details on the template substitution language. The following variables are available$username
$password
$first
$last
$pkg
',
+ 'section' => 'deprecated',
+ 'description' => 'Template file for welcome email. Welcome emails are sent to the customer email invoice destination(s) each time a svc_acct record is created.',
'type' => 'textarea',
'per_agent' => 1,
},
+ {
+ 'key' => 'welcome_msgnum',
+ 'section' => 'notification',
+ 'description' => 'Template to use for welcome messages when a svc_acct record is created.',
+ %msg_template_options,
+ },
+
{
'key' => 'welcome_email-from',
- 'section' => '',
+ 'section' => 'deprecated',
'description' => 'From: address header for welcome email',
'type' => 'text',
'per_agent' => 1,
@@ -1754,7 +1937,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'welcome_email-subject',
- 'section' => '',
+ 'section' => 'deprecated',
'description' => 'Subject: header for welcome email',
'type' => 'text',
'per_agent' => 1,
@@ -1762,7 +1945,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'welcome_email-mimetype',
- 'section' => '',
+ 'section' => 'deprecated',
'description' => 'MIME type for welcome email',
'type' => 'select',
'select_enum' => [ 'text/plain', 'text/html' ],
@@ -1771,42 +1954,49 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'welcome_letter',
- 'section' => '',
+ 'section' => 'deprecated',
'description' => 'Optional LaTex template file for a printed welcome letter. A welcome letter is printed the first time a cust_pkg record is created. See the Text::Template documentation and the billing documentation for details on the template substitution language. A variable exists for each fieldname in the customer record ($first, $last, etc
). The following additional variables are available$payby
- a friendler represenation of the field$payinfo
- the masked payment information$expdate
- the time at which the payment method expires (a UNIX timestamp)$returnaddress
- the invoice return address for this customer\'s agent
',
'type' => 'textarea',
},
{
'key' => 'warning_email',
- 'section' => '',
+ 'section' => 'notification',
'description' => 'Template file for warning email. Warning emails are sent to the customer email invoice destination(s) each time a svc_acct record has its usage drop below a threshold or 0. See the Text::Template documentation for details on the template substitution language. The following variables are available$username
$password
$first
$last
$pkg
$column
$amount
$threshold
',
'type' => 'textarea',
},
+# {
+# 'key' => 'warning_msgnum',
+# 'section' => 'notification',
+# 'description' => 'Template to use for warning messages, sent to the customer email invoice destination(s) when a svc_acct record has its usage drop below a threshold.',
+# %msg_template_options,
+# },
+
{
'key' => 'warning_email-from',
- 'section' => '',
+ 'section' => 'notification',
'description' => 'From: address header for warning email',
'type' => 'text',
},
{
'key' => 'warning_email-cc',
- 'section' => '',
+ 'section' => 'notification',
'description' => 'Additional recipient(s) (comma separated) for warning email when remaining usage reaches zero.',
'type' => 'text',
},
{
'key' => 'warning_email-subject',
- 'section' => '',
+ 'section' => 'notification',
'description' => 'Subject: header for warning email',
'type' => 'text',
},
{
'key' => 'warning_email-mimetype',
- 'section' => '',
+ 'section' => 'notification',
'description' => 'MIME type for warning email',
'type' => 'select',
'select_enum' => [ 'text/plain', 'text/html' ],
@@ -1844,7 +2034,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'radius-password',
- 'section' => '',
+ 'section' => 'notification',
'description' => 'RADIUS attribute for plain-text passwords.',
'type' => 'select',
'select_enum' => [ 'Password', 'User-Password', 'Cleartext-Password' ],
@@ -2022,6 +2212,32 @@ worry that config_items is freeside-specific and icky.
'type' => 'text',
},
+ {
+ 'key' => 'selfservice-agent_signup',
+ 'section' => 'self-service',
+ 'description' => 'Allow agent signup via self-service.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'selfservice-agent_signup-agent_type',
+ 'section' => 'self-service',
+ 'description' => 'Agent type when allowing agent signup via self-service.',
+ 'type' => 'select-sub',
+ 'options_sub' => sub { require FS::Record;
+ require FS::agent_type;
+ map { $_->typenum => $_->atype }
+ FS::Record::qsearch('agent_type', {} ); # disabled=>'' } );
+ },
+ 'option_sub' => sub { require FS::Record;
+ require FS::agent_type;
+ my $agent = FS::Record::qsearchs(
+ 'agent_type', { 'typenum'=>shift }
+ );
+ $agent_type ? $agent_type->atype : '';
+ },
+ },
+
{
'key' => 'card_refund-days',
'section' => 'billing',
@@ -2052,6 +2268,14 @@ worry that config_items is freeside-specific and icky.
'select_enum' => [ 'none', 'countrycode+phonenum', 'disabled' ],
},
+ {
+ 'key' => 'global_unique-pbx_title',
+ 'section' => '',
+ 'description' => 'Global phone number uniqueness control: enabled (usual setting - svc_pbx.title must be unique), or disabled turns off duplicate checking for this field.',
+ 'type' => 'select',
+ 'select_enum' => [ 'enabled', 'disabled' ],
+ },
+
{
'key' => 'svc_external-skip_manual',
'section' => 'UI',
@@ -2102,7 +2326,12 @@ worry that config_items is freeside-specific and icky.
}
},
},
-
+ {
+ 'key' => 'ticket_system-force_default_queueid',
+ 'section' => '',
+ 'description' => 'Disallow queue selection when creating new tickets from customer view.',
+ 'type' => 'checkbox',
+ },
{
'key' => 'ticket_system-selfservice_queueid',
'section' => '',
@@ -2361,6 +2590,13 @@ worry that config_items is freeside-specific and icky.
'type' => 'checkbox',
},
+ {
+ 'key' => 'cust_pkg-show_fcc_voice_grade_equivalent',
+ 'section' => 'UI',
+ 'description' => "Show a field on package definitions for assigning a DSO equivalency number suitable for use on FCC form 477.",
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'svc_acct-edit_uid',
'section' => 'shell',
@@ -2417,6 +2653,13 @@ worry that config_items is freeside-specific and icky.
'type' => 'checkbox',
},
+ {
+ 'key' => 'cgp_rule-domain_templates',
+ 'section' => '',
+ 'description' => 'Communigate Pro rule templates for domains, one per line, "svcnum Name"',
+ 'type' => 'textarea',
+ },
+
{
'key' => 'svc_forward-no_srcsvc',
'section' => '',
@@ -2751,9 +2994,16 @@ worry that config_items is freeside-specific and icky.
'select_enum' => [ '1 hour', '2 hours', '4 hours', '8 hours', '1 day', '1 week', ],
},
+ {
+ 'key' => 'impending_recur_msgnum',
+ 'section' => 'notification',
+ 'description' => 'Template to use for alerts about first-time recurring billing.',
+ %msg_template_options,
+ },
+
{
'key' => 'disable_setup_suspended_pkgs',
- 'section' => 'billing',
+ 'section' => 'deprecated',
'description' => 'Disables charging of setup fees for suspended packages.',
'type' => 'checkbox',
},
@@ -2910,10 +3160,17 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'disable_previous_balance',
'section' => 'invoicing',
- 'description' => 'Disable inclusion of previous balancem payment, and credit lines on invoices',
+ 'description' => 'Disable inclusion of previous balance, payment, and credit lines on invoices',
'type' => 'checkbox',
},
+ {
+ 'key' => 'previous_balance-exclude_from_total',
+ 'section' => 'invoicing',
+ 'description' => 'Do not include previous balance in the \'Total\' line. Only meaningful when invoice_sections is false. Optionally provide text to override the Total New Charges description',
+ 'type' => [ qw(checkbox text) ],
+ },
+
{
'key' => 'previous_balance-summary_only',
'section' => 'invoicing',
@@ -2921,6 +3178,13 @@ worry that config_items is freeside-specific and icky.
'type' => 'checkbox',
},
+ {
+ 'key' => 'balance_due_below_line',
+ 'section' => 'invoicing',
+ 'description' => 'Place the balance due message below a line. Only meaningful when when invoice_sections is false.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'usps_webtools-userid',
'section' => 'UI',
@@ -2954,7 +3218,7 @@ worry that config_items is freeside-specific and icky.
'section' => 'UI',
'description' => 'The year to use in census tract lookups',
'type' => 'select',
- 'select_enum' => [ qw( 2009 2008 2007 2006 ) ],
+ 'select_enum' => [ qw( 2010 2009 2008 ) ],
},
{
@@ -3219,7 +3483,6 @@ worry that config_items is freeside-specific and icky.
'per_agent' => 1,
},
-
{
'key' => 'selfservice-menu_top_image',
'section' => 'self-service',
@@ -3553,6 +3816,28 @@ worry that config_items is freeside-specific and icky.
'type' => 'checkbox',
},
+ {
+ 'key' => 'cust_tag-location',
+ 'section' => 'UI',
+ 'description' => 'Location where customer tags are displayed.',
+ 'type' => 'select',
+ 'select_enum' => [ 'misc_info', 'top' ],
+ },
+
+ {
+ 'key' => 'cust_main-custom_link',
+ 'section' => 'UI',
+ 'description' => 'URL to use as source for the "Custom" tab in the View Customer page. The custnum will be appended.',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'cust_main-custom_title',
+ 'section' => 'UI',
+ 'description' => 'Title for the "Custom" tab in the View Customer page.',
+ 'type' => 'text',
+ },
+
{ key => "apacheroot", section => "deprecated", description => "DEPRECATED", type => "text" },
{ key => "apachemachine", section => "deprecated", description => "DEPRECATED", type => "text" },
{ key => "apachemachines", section => "deprecated", description => "DEPRECATED", type => "text" },