X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FConf.pm;h=15551d51b3b89cb02dc69e14d8d7d5ec04aa12a5;hb=06222f85b17594f0c3680bb4a629c36f9a8c64a9;hp=13bec18b1341fc34fe4dc1c5a679606c93cf2e68;hpb=e3e8d316738336108b9b9af65d9adeb2ed085696;p=freeside.git
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 13bec18b1..15551d51b 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -146,7 +146,7 @@ sub config_binary {
return $self->_usecompat('config_binary', @_) if use_confcompat;
my $cv = $self->_config(@_) or return;
- decode_base64($cv->value);
+ length($cv->value) ? decode_base64($cv->value) : '';
}
=item exists KEY [ AGENTNUM [ NODEFAULT ] ]
@@ -548,21 +548,43 @@ 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)
+#UI (69 items)
+#Self-service (29 items)
+#...
+#Unclassified (77 items)
@config_items = map { new FS::ConfItem $_ } (
@@ -575,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,
@@ -583,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',
@@ -689,7 +718,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'business-onlinepayment-description',
'section' => 'billing',
- 'description' => 'String passed as the description field to Business::OnlinePayment. Evaluated as a double-quoted perl string, with the following variables available: $agent
(the agent name), and $pkgs
(a comma-separated list of packages for which these charges apply)',
+ 'description' => 'String passed as the description field to Business::OnlinePayment. Evaluated as a double-quoted perl string, with the following variables available: $agent
(the agent name), and $pkgs
(a comma-separated list of packages for which these charges apply - not available in all situations)',
'type' => 'text',
},
@@ -721,6 +750,7 @@ worry that config_items is freeside-specific and icky.
'type' => 'select',
'select_hash' => [
'%m/%d/%Y' => 'MM/DD/YYYY',
+ '%d/%m/%Y' => 'DD/MM/YYYY',
'%Y/%m/%d' => 'YYYY/MM/DD',
],
},
@@ -809,35 +839,42 @@ worry that config_items is freeside-specific and icky.
'key' => 'editreferrals',
'section' => 'UI',
'description' => 'Enable advertising source modification for existing customers',
- 'type' => 'checkbox',
+ 'type' => 'checkbox',
},
{
'key' => 'emailinvoiceonly',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Disables postal mail invoices',
- 'type' => 'checkbox',
+ 'type' => 'checkbox',
},
{
'key' => 'disablepostalinvoicedefault',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Disables postal mail invoices as the default option in the UI. Be careful not to setup customers which are not sent invoices. See emailinvoiceauto.',
- 'type' => 'checkbox',
+ 'type' => 'checkbox',
},
{
'key' => 'emailinvoiceauto',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Automatically adds new accounts to the email invoice list',
- 'type' => 'checkbox',
+ 'type' => 'checkbox',
},
{
'key' => 'emailinvoiceautoalways',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Automatically adds new accounts to the email invoice list even when the list contains email addresses',
- 'type' => 'checkbox',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'emailinvoice-apostrophe',
+ 'section' => 'invoicing',
+ 'description' => 'Allows the apostrophe (single quote) character in the email addresses in the email invoice list.',
+ 'type' => 'checkbox',
},
{
@@ -885,7 +922,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_subject',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Subject: header on email invoices. Defaults to "Invoice". The following substitutions are available: $name, $name_short, $invoice_number, and $invoice_date.',
'type' => 'text',
'per_agent' => 1,
@@ -893,21 +930,21 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_usesummary',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Indicates that html and latex invoices should be in summary style and make use of invoice_latexsummary.',
'type' => 'checkbox',
},
{
'key' => 'invoice_template',
- 'section' => 'billing',
+ '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.',
'type' => 'textarea',
},
{
'key' => 'invoice_html',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Optional HTML template for invoices. See the billing documentation for details.',
'type' => 'textarea',
@@ -915,7 +952,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_htmlnotes',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Notes section for HTML invoices. Defaults to the same data in invoice_latexnotes if not specified.',
'type' => 'textarea',
'per_agent' => 1,
@@ -923,7 +960,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_htmlfooter',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Footer for HTML invoices. Defaults to the same data in invoice_latexfooter if not specified.',
'type' => 'textarea',
'per_agent' => 1,
@@ -931,7 +968,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_htmlsummary',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Summary initial page for HTML invoices.',
'type' => 'textarea',
'per_agent' => 1,
@@ -939,21 +976,70 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_htmlreturnaddress',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Return address for HTML invoices. Defaults to the same data in invoice_latexreturnaddress if not specified.',
'type' => 'textarea',
},
{
'key' => 'invoice_latex',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Optional LaTeX template for typeset PostScript invoices. See the billing documentation for details.',
'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' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Notes section for LaTeX typeset PostScript invoices.',
'type' => 'textarea',
'per_agent' => 1,
@@ -961,7 +1047,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_latexfooter',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Footer for LaTeX typeset PostScript invoices.',
'type' => 'textarea',
'per_agent' => 1,
@@ -969,7 +1055,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_latexsummary',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Summary initial page for LaTeX typeset PostScript invoices.',
'type' => 'textarea',
'per_agent' => 1,
@@ -977,22 +1063,85 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_latexcoupon',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Remittance coupon for LaTeX typeset PostScript invoices.',
'type' => 'textarea',
'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' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Return address for LaTeX typeset PostScript invoices.',
'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' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Optional small footer for multi-page LaTeX typeset PostScript invoices.',
'type' => 'textarea',
'per_agent' => 1,
@@ -1000,14 +1149,14 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_email_pdf',
- 'section' => 'billing',
+ '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.',
'type' => 'checkbox'
},
{
'key' => 'invoice_email_pdf_note',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'If defined, this text will replace the default plain text invoice as the body of emailed PDF invoices.',
'type' => 'textarea'
},
@@ -1015,41 +1164,63 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'invoice_default_terms',
- 'section' => 'billing',
+ '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 30', 'Net 45', 'Net 60' ],
},
+ {
+ 'key' => 'invoice_print_pdf',
+ 'section' => 'invoicing',
+ 'description' => 'Store postal invoices for download in PDF format rather than printing them directly.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'invoice_show_prior_due_date',
+ 'section' => 'invoicing',
+ 'description' => 'Show previous invoice due dates when showing prior balances. Default is to show invoice date.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'invoice_include_aging',
+ 'section' => 'invoicing',
+ 'description' => 'Show an aging line after the prior balance section. Only valud when invoice_sections is enabled.',
+ 'type' => 'checkbox',
+ },
{
'key' => 'invoice_sections',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Split invoice into sections and label according to package category when enabled.',
'type' => 'checkbox',
},
+ {
+ 'key' => 'usage_class_as_a_section',
+ 'section' => 'invoicing',
+ 'description' => 'Split usage into sections and label according to usage class name when enabled. Only valid when invoice_sections is enabled.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'svc_phone_sections',
+ 'section' => 'invoicing',
+ 'description' => 'Create a section for each svc_phone when enabled. Only valid when invoice_sections is enabled.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'finance_pkgclass',
'section' => 'billing',
- 'description' => 'The package class for finance charges',
- 'type' => 'select-sub',
- 'options_sub' => sub { require FS::Record;
- require FS::pkg_class;
- map { $_->classnum => $_->classname }
- FS::Record::qsearch('pkg_class', {} );
- },
- 'option_sub' => sub { require FS::Record;
- require FS::pkg_class;
- my $pkg_class = FS::Record::qsearchs(
- 'pkg_class', { 'classnum'=>shift }
- );
- $pkg_class ? $pkg_class->classname : '';
- },
+ 'description' => 'The default package class for late fee charges, used if the fee event does not specify a package class itself.',
+ 'type' => 'select-pkg_class',
},
{
'key' => 'separate_usage',
- 'section' => 'billing',
+ 'section' => 'invoicing',
'description' => 'Split the rated call usage into a separate line from the recurring charges.',
'type' => 'checkbox',
},
@@ -1080,6 +1251,13 @@ worry that config_items is freeside-specific and icky.
},
{
+ 'key' => 'trigger_export_insert_on_payment',
+ 'section' => 'billing',
+ 'description' => 'Enable exports on payment application.',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'lpr',
'section' => 'required',
'description' => 'Print command for paper invoices, for example `lpr -h\'',
@@ -1134,17 +1312,34 @@ worry that config_items is freeside-specific and icky.
},
{
- 'key' => 'password-noampersand',
- 'section' => 'password',
+ 'key' => 'password-noampersand',
+ 'section' => 'password',
'description' => 'Disallow ampersands in passwords',
- 'type' => 'checkbox',
+ 'type' => 'checkbox',
},
{
- 'key' => 'password-noexclamation',
- 'section' => 'password',
+ 'key' => 'password-noexclamation',
+ 'section' => 'password',
'description' => 'Disallow exclamations in passwords (Not setting this could break old text Livingston or Cistron Radius servers)',
- 'type' => 'checkbox',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'default-password-encoding',
+ 'section' => 'password',
+ 'description' => 'Default storage format for passwords',
+ 'type' => 'select',
+ 'select_hash' => [
+ 'plain' => 'Plain text',
+ 'crypt-des' => 'Unix password (DES encrypted)',
+ 'crypt-md5' => 'Unix password (MD5 digest)',
+ 'ldap-plain' => 'LDAP (plain text)',
+ 'ldap-crypt' => 'LDAP (DES encrypted)',
+ 'ldap-md5' => 'LDAP (MD5 digest)',
+ 'ldap-sha1' => 'LDAP (SHA1 digest)',
+ 'legacy' => 'Legacy mode',
+ ],
},
{
@@ -1203,6 +1398,13 @@ worry that config_items is freeside-specific and icky.
},
{
+ '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',
'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',
@@ -1217,6 +1419,32 @@ worry that config_items is freeside-specific and icky.
},
{
+ 'key' => 'smtp-username',
+ 'section' => '',
+ 'description' => 'Optional SMTP username for Freeside\'s outgoing mail',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'smtp-password',
+ 'section' => '',
+ 'description' => 'Optional SMTP password for Freeside\'s outgoing mail',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'smtp-encryption',
+ 'section' => '',
+ 'description' => 'Optional SMTP encryption method. The STARTTLS methods require smtp-username and smtp-password to be set.',
+ 'type' => 'select',
+ 'select_hash' => [ '25' => 'None (port 25)',
+ '25-starttls' => 'STARTTLS (port 25)',
+ '587-starttls' => 'STARTTLS / submission (port 587)',
+ '465-tls' => 'SMTPS (SSL) (port 465)',
+ ],
+ },
+
+ {
'key' => 'soadefaultttl',
'section' => 'BIND',
'description' => 'SOA default TTL for new domains.',
@@ -1430,15 +1658,22 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'signup_server-payby',
- 'section' => '',
+ 'section' => 'self-service',
'description' => 'Acceptable payment types for the signup server',
'type' => 'selectmultiple',
'select_enum' => [ qw(CARD DCRD CHEK DCHK LECB PREPAY BILL COMP) ],
},
{
+ 'key' => 'selfservice-save_unchecked',
+ 'section' => 'self-service',
+ 'description' => 'In self-service, uncheck "Remember information" checkboxes by default (normally, they are checked by default).',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'signup_server-default_agentnum',
- 'section' => '',
+ 'section' => 'self-service',
'description' => 'Default agent for the signup server',
'type' => 'select-sub',
'options_sub' => sub { require FS::Record;
@@ -1457,7 +1692,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'signup_server-default_refnum',
- 'section' => '',
+ 'section' => 'self-service',
'description' => 'Default advertising source for the signup server',
'type' => 'select-sub',
'options_sub' => sub { require FS::Record;
@@ -1477,21 +1712,21 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'signup_server-default_pkgpart',
- 'section' => '',
+ 'section' => 'self-service',
'description' => 'Default package for the signup server',
'type' => 'select-part_pkg',
},
{
'key' => 'signup_server-default_svcpart',
- 'section' => '',
+ 'section' => 'self-service',
'description' => 'Default service definition for the signup server - only necessary for services that trigger special provisioning widgets (such as DID provisioning).',
'type' => 'select-part_svc',
},
{
'key' => 'signup_server-mac_addr_svcparts',
- 'section' => '',
+ 'section' => 'self-service',
'description' => 'Service definitions which can receive mac addresses (current mapped to username for svc_acct).',
'type' => 'select-part_svc',
'multiple' => 1,
@@ -1499,14 +1734,14 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'signup_server-nomadix',
- 'section' => '',
+ 'section' => 'self-service',
'description' => 'Signup page Nomadix integration',
'type' => 'checkbox',
},
{
'key' => 'signup_server-service',
- 'section' => '',
+ 'section' => 'self-service',
'description' => 'Service for the signup server - "Account (svc_acct)" is the default setting, or "Phone number (svc_phone)" for ITSP signup',
'type' => 'select',
'select_hash' => [
@@ -1517,7 +1752,7 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'selfservice_server-base_url',
- 'section' => '',
+ 'section' => 'self-service',
'description' => 'Base URL for the self-service web interface - necessary for some widgets to find their way, including retrieval of non-US state information and phone number provisioning.',
'type' => 'text',
},
@@ -1531,93 +1766,91 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'signup_server-realtime',
- 'section' => '',
+ 'section' => 'self-service',
'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' => '',
+ 'section' => 'self-service',
'description' => 'Package Class for first optional purchase',
- 'type' => 'select-sub',
- 'options_sub' => sub { require FS::Record;
- require FS::pkg_class;
- map { $_->classnum => $_->classname }
- FS::Record::qsearch('pkg_class', {} );
- },
- 'option_sub' => sub { require FS::Record;
- require FS::pkg_class;
- my $pkg_class = FS::Record::qsearchs(
- 'pkg_class', { 'classnum'=>shift }
- );
- $pkg_class ? $pkg_class->classname : '';
- },
+ 'type' => 'select-pkg_class',
},
{
'key' => 'signup_server-classnum3',
- 'section' => '',
+ 'section' => 'self-service',
'description' => 'Package Class for second optional purchase',
- 'type' => 'select-sub',
- 'options_sub' => sub { require FS::Record;
- require FS::pkg_class;
- map { $_->classnum => $_->classname }
- FS::Record::qsearch('pkg_class', {} );
- },
- 'option_sub' => sub { require FS::Record;
- require FS::pkg_class;
- my $pkg_class = FS::Record::qsearchs(
- 'pkg_class', { 'classnum'=>shift }
- );
- $pkg_class ? $pkg_class->classname : '';
- },
+ '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' => '',
+ 'section' => 'billing',
'description' => 'Run billing for backend signups immediately.',
'type' => 'checkbox',
},
{
'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',
},
@@ -1660,8 +1893,8 @@ worry that config_items is freeside-specific and icky.
{
'key' => 'taxdatadirectdownload',
'section' => 'billing', #well
- 'description' => 'Enable downloading tax data directly from the vendor site',
- 'type' => 'checkbox',
+ 'description' => 'Enable downloading tax data directly from the vendor site. at least three lines: URL, username, and password.j',
+ 'type' => 'textarea',
},
{
@@ -1673,15 +1906,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
$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$username
$password
$first
$last
$pkg
$column
$amount
$threshold