X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FConf.pm;h=6ad3fcb823fc1c0f7a656cf4e54b617a49b11c69;hb=05419e3838b401019fed034f97e63e3d7e83b539;hp=bae6a7741de1db325b1944a65c4db3e44c332f26;hpb=a37da3d6492e60f723b277b90565abc34d8990d6;p=freeside.git diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index bae6a7741..6ad3fcb82 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -236,7 +236,7 @@ sub config_items { new FS::ConfItem { 'key' => $basename, 'section' => 'billing', - 'description' => 'Alternate template file for invoices. See the billing documentation for details.', + 'description' => 'Alternate template file for invoices. See the billing documentation for details.', 'type' => 'textarea', } } glob($self->dir. '/invoice_template_*') @@ -248,7 +248,7 @@ sub config_items { new FS::ConfItem { 'key' => $basename, 'section' => 'billing', - 'description' => 'Alternate HTML template for invoices. See the billing documentation for details.', + 'description' => 'Alternate HTML template for invoices. See the billing documentation for details.', 'type' => 'textarea', } } glob($self->dir. '/invoice_html_*') @@ -273,7 +273,7 @@ sub config_items { new FS::ConfItem { 'key' => $basename, 'section' => 'billing', - 'description' => 'Alternate LaTeX template for invoices. See the billing documentation for details.', + 'description' => 'Alternate LaTeX template for invoices. See the billing documentation for details.', 'type' => 'textarea', } } glob($self->dir. '/invoice_latex_*') @@ -285,7 +285,7 @@ sub config_items { new FS::ConfItem { 'key' => $basename, 'section' => 'billing', - 'description' => 'Alternate Notes section for LaTeX typeset PostScript invoices. See the billing documentation for details.', + 'description' => 'Alternate Notes section for LaTeX typeset PostScript invoices. See the billing documentation for details.', 'type' => 'textarea', } } glob($self->dir. '/invoice_latexnotes_*') @@ -303,8 +303,6 @@ worry that config_items is freeside-specific and icky. "Configuration" in the web interface (config/config.cgi). -httemplate/docs/config.html - =cut #Business::CreditCard @@ -333,7 +331,7 @@ httemplate/docs/config.html { 'key' => 'alerter_template', 'section' => 'billing', - 'description' => 'Template file for billing method expiration alerts. See the billing documentation for details.', + 'description' => 'Template file for billing method expiration alerts. See the billing documentation for details.', 'type' => 'textarea', }, @@ -442,6 +440,13 @@ httemplate/docs/config.html 'type' => 'textarea', }, + { + 'key' => 'business-onlinepayment-email_customer', + 'section' => 'billing', + 'description' => 'Controls the "email_customer" flag used by some Business::OnlinePayment processors to enable customer receipts.', + 'type' => 'checkbox', + }, + { 'key' => 'countrydefault', 'section' => 'UI', @@ -477,7 +482,14 @@ httemplate/docs/config.html { 'key' => 'deletecustomers', 'section' => 'UI', - 'description' => 'Enable customer deletions. Be very careful! Deleting a customer will remove all traces that this customer ever existed! It should probably only be used when auditing a legacy database. Normally, you cancel all of a customers\' packages if they cancel service.', + 'description' => 'Enable customer deletions. Be very careful! Deleting a customer will remove all traces that the customer ever existed! It should probably only be used when auditing a legacy database. Normally, you cancel all of a customers\' packages if they cancel service.', + 'type' => 'checkbox', + }, + + { + 'key' => 'deleteinvoices', + 'section' => 'UI', + 'description' => 'Enable invoices deletions. Be very careful! Deleting an invoice will remove all traces that the invoice ever existed! Normally, you would apply a credit against the invoice instead.', #invoice voiding? 'type' => 'checkbox', }, @@ -558,6 +570,13 @@ httemplate/docs/config.html 'type' => 'checkbox', }, + { + 'key' => 'emailinvoiceautoalways', + 'section' => 'billing', + 'description' => 'Automatically adds new accounts to the email invoice list even when the list contains email addresses', + 'type' => 'checkbox', + }, + { 'key' => 'exclude_ip_addr', 'section' => '', @@ -628,17 +647,24 @@ httemplate/docs/config.html 'type' => 'text', }, + { + 'key' => 'invoice_subject', + 'section' => 'billing', + 'description' => 'Subject: header on email invoices. Defaults to "Invoice". The following substitutions are available: $name, $name_short, $invoice_number, and $invoice_date.', + 'type' => 'text', + }, + { 'key' => 'invoice_template', 'section' => 'required', - 'description' => 'Required template file for invoices. See the billing documentation for details.', + 'description' => 'Required template file for invoices. See the billing documentation for details.', 'type' => 'textarea', }, { 'key' => 'invoice_html', 'section' => 'billing', - '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', }, @@ -667,7 +693,7 @@ httemplate/docs/config.html { 'key' => 'invoice_latex', 'section' => 'billing', - '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', }, @@ -685,6 +711,13 @@ httemplate/docs/config.html 'type' => 'textarea', }, + { + 'key' => 'invoice_latexcoupon', + 'section' => 'billing', + 'description' => 'Remittance coupon for LaTeX typeset PostScript invoices.', + 'type' => 'textarea', + }, + { 'key' => 'invoice_latexreturnaddress', 'section' => 'billing', @@ -719,7 +752,7 @@ httemplate/docs/config.html 'section' => 'billing', '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 30', 'Net 45', 'Net 60' ], + 'select_enum' => [ '', 'Payable upon receipt', 'Net 0', 'Net 10', 'Net 15', 'Net 20', 'Net 30', 'Net 45', 'Net 60' ], }, { @@ -732,8 +765,8 @@ httemplate/docs/config.html { '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: ', - 'type' => 'textarea', + '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: ', + 'type' => [qw( checkbox textarea )], }, { @@ -750,6 +783,20 @@ httemplate/docs/config.html 'type' => 'checkbox', }, + { + 'key' => 'lpr-postscript_prefix', + 'section' => 'billing', + 'description' => 'Raw printer commands prepended to the beginning of postscript print jobs (evaluated as a double-quoted perl string - backslash escapes are available)', + 'type' => 'text', + }, + + { + 'key' => 'lpr-postscript_suffix', + 'section' => 'billing', + 'description' => 'Raw printer commands added to the end of postscript print jobs (evaluated as a double-quoted perl string - backslash escapes are available)', + 'type' => 'text', + }, + { 'key' => 'money_char', 'section' => '', @@ -962,7 +1009,7 @@ httemplate/docs/config.html { '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', }, @@ -1109,7 +1156,7 @@ httemplate/docs/config.html { 'key' => 'username-uppercase', 'section' => 'username', - 'description' => 'Allow uppercase characters in usernames', + 'description' => 'Allow uppercase characters in usernames. Not recommended for use with FreeRADIUS with MySQL backend, which is case-insensitive by default.', 'type' => 'checkbox', }, @@ -1150,6 +1197,13 @@ httemplate/docs/config.html 'type' => 'checkbox', }, + { + 'key' => 'username-colon', + 'section' => 'username', + 'description' => 'Allow the colon character (:) in usernames.', + 'type' => 'checkbox', + }, + { 'key' => 'safe-part_bill_event', 'section' => 'UI', @@ -1164,6 +1218,20 @@ httemplate/docs/config.html 'type' => 'checkbox', }, + { + 'key' => 'show_stateid', + 'section' => 'UI', + 'description' => "Turns on display/collection of driver's license/state issued id numbers in the web interface. Sometimes required by electronic check (ACH) processors.", + 'type' => 'checkbox', + }, + + { + 'key' => 'show_bankstate', + 'section' => 'UI', + 'description' => "Turns on display/collection of state for bank accounts in the web interface. Sometimes required by electronic check (ACH) processors.", + 'type' => 'checkbox', + }, + { 'key' => 'agent_defaultpkg', 'section' => 'UI', @@ -1422,7 +1490,7 @@ httemplate/docs/config.html { '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', + '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', 'type' => 'textarea', }, @@ -1448,10 +1516,17 @@ httemplate/docs/config.html 'select_enum' => [ 'text/plain', 'text/html' ], }, + { + 'key' => 'welcome_letter', + 'section' => '', + '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', + 'type' => 'textarea', + }, + { 'key' => 'warning_email', 'section' => '', - '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', + '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', 'type' => 'textarea', }, @@ -1500,6 +1575,13 @@ httemplate/docs/config.html 'select_enum' => [ '', qw(CARD DCRD CHEK DCHK LECB BILL CASH WEST MCRD COMP HIDE) ], }, + { + 'key' => 'paymentforcedtobatch', + 'section' => 'deprecated', + 'description' => 'See batch-enable_payby and realtime-disable_payby. Used to (for CHEK): Cause per customer payment entry to be forced to a batch processor rather than performed realtime.', + 'type' => 'checkbox', + }, + { 'key' => 'svc_acct-notes', 'section' => 'UI', @@ -1523,6 +1605,14 @@ httemplate/docs/config.html 'select_enum' => [ 'Framed-IP-Address', 'Framed-Address' ], }, + #http://dev.coova.org/svn/coova-chilli/doc/dictionary.chillispot + { + 'key' => 'radius-chillispot-max', + 'section' => '', + 'description' => 'Enable ChilliSpot (and CoovaChilli) Max attributes, specifically ChilliSpot-Max-{Input,Output,Total}-{Octets,Gigawords}.', + 'type' => 'checkbox', + }, + { 'key' => 'svc_acct-alldomains', 'section' => '', @@ -1551,6 +1641,24 @@ httemplate/docs/config.html 'type' => 'textarea', }, + { + 'key' => 'credit_card-recurring_billing_flag', + 'section' => 'billing', + 'description' => 'This controls when the system passes the "recurring_billing" flag on credit card transactions. If supported by your processor (and the Business::OnlinePayment processor module), passing the flag indicates this is a recurring transaction and may turn off the CVV requirement. ', + 'type' => 'select', + 'select_hash' => [ + 'actual_oncard' => 'Default/classic behavior: set the flag if a customer has actual previous charges on the card.', + 'transaction_is_recur' => 'Set the flag if the transaction itself is recurring, irregardless of previous charges on the card.', + ], + }, + + { + 'key' => 'credit_card-recurring_billing_acct_code', + 'section' => 'billing', + 'description' => 'When the "recurring billing" flag is set, also set the "acct_code" to "rebill". Useful for reporting purposes with supported gateways (PlugNPay, others?)', + 'type' => 'checkbox', + }, + { 'key' => 'cvv-save', 'section' => 'billing', @@ -1654,7 +1762,7 @@ httemplate/docs/config.html { '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) ], @@ -1754,7 +1862,14 @@ httemplate/docs/config.html { 'key' => 'address2-search', 'section' => 'UI', - 'description' => 'Enable a "Unit" search box which searches the second address field', + 'description' => 'Enable a "Unit" search box which searches the second address field. Useful for multi-tenant applications. See also: cust_main-require_address2', + 'type' => 'checkbox', + }, + + { + 'key' => 'cust_main-require_address2', + 'section' => 'UI', + 'description' => 'Second address field is required (on service address only, if billing and service addresses differ). Also enables "Unit" labeling of address2 on customer view and edit pages. Useful for multi-tenant applications. See also: address2-search', 'type' => 'checkbox', }, @@ -1773,11 +1888,62 @@ httemplate/docs/config.html { 'key' => 'hylafax', - 'section' => '', + 'section' => 'billing', 'description' => 'Options for a HylaFAX server to enable the FAX invoice destination. They should be in the form of a space separated list of arguments to the Fax::Hylafax::Client::sendfax subroutine. You probably shouldn\'t override things like \'docfile\'. *Note* Only supported when using typeset invoices (see the invoice_latex configuration option).', 'type' => [qw( checkbox textarea )], }, + { + 'key' => 'cust_bill-ftpformat', + 'section' => 'billing', + 'description' => 'Enable FTP of raw invoice data - format.', + 'type' => 'select', + 'select_enum' => [ '', 'default', 'billco', ], + }, + + { + 'key' => 'cust_bill-ftpserver', + 'section' => 'billing', + 'description' => 'Enable FTP of raw invoice data - server.', + 'type' => 'text', + }, + + { + 'key' => 'cust_bill-ftpusername', + 'section' => 'billing', + 'description' => 'Enable FTP of raw invoice data - server.', + 'type' => 'text', + }, + + { + 'key' => 'cust_bill-ftppassword', + 'section' => 'billing', + 'description' => 'Enable FTP of raw invoice data - server.', + 'type' => 'text', + }, + + { + 'key' => 'cust_bill-ftpdir', + 'section' => 'billing', + 'description' => 'Enable FTP of raw invoice data - server.', + 'type' => 'text', + }, + + { + 'key' => 'cust_bill-spoolformat', + 'section' => 'billing', + 'description' => 'Enable spooling of raw invoice data - format.', + 'type' => 'select', + 'select_enum' => [ '', 'default', 'billco', ], + }, + + { + 'key' => 'cust_bill-spoolagent', + 'section' => 'billing', + 'description' => 'Enable per-agent spooling of raw invoice data.', + 'type' => 'checkbox', + }, + { 'key' => 'svc_acct-usage_suspend', 'section' => 'billing', @@ -1795,7 +1961,7 @@ httemplate/docs/config.html { 'key' => 'svc_acct-usage_threshold', 'section' => 'billing', - 'description' => 'The threshold (expressed as percentage) of acct.seconds or acct.up|down|totalbytes at which a warning message is sent to a service holder. Typically used in conjunction with prepaid packages and freeside-sqlradius-radacctd. Defaults to 80.', + 'description' => 'The threshold (expressed as percentage) of acct.seconds or acct.up|down|totalbytes at which a warning message is sent to a service holder. Typically used in conjunction with prepaid packages and freeside-sqlradius-radacctd.', 'type' => 'text', }, @@ -1884,19 +2050,78 @@ httemplate/docs/config.html }, { - 'key' => 'batch-enable', + 'key' => 'invoice-ship_address', + 'section' => 'billing', + 'description' => 'Enable this switch to include the ship address on the invoice.', + 'type' => 'checkbox', + }, + + { + 'key' => 'invoice-unitprice', + 'section' => 'billing', + 'description' => 'This switch enables unit pricing on the invoice.', + 'type' => 'checkbox', + }, + + { + 'key' => 'postal_invoice-fee_pkgpart', + 'section' => 'billing', + 'description' => 'This allows selection of a package to insert on invoices for customers with postal invoices selected.', + 'type' => 'select-sub', + 'options_sub' => sub { require FS::Record; + require FS::part_pkg; + map { $_->pkgpart => $_->pkg } + FS::Record::qsearch('part_pkg', { disabled=>'' } ); + }, + 'option_sub' => sub { require FS::Record; + require FS::part_pkg; + my $part_pkg = FS::Record::qsearchs( + 'part_pkg', { 'pkgpart'=>shift } + ); + $part_pkg ? $part_pkg->pkg : ''; + }, + }, + + { + 'key' => 'postal_invoice-recurring_only', 'section' => 'billing', - 'description' => 'Enable credit card batching - leave disabled for real-time installations.', + 'description' => 'The postal invoice fee is omitted on invoices without recurring charges when this is set', + 'type' => 'checkbox', + }, + + { + 'key' => 'batch-enable', + 'section' => 'deprecated', #make sure batch-enable_payby is set for + #everyone before removing + 'description' => 'Enable credit card and/or ACH batching - leave disabled for real-time installations.', 'type' => 'checkbox', }, + { + 'key' => 'batch-enable_payby', + 'section' => 'billing', + 'description' => 'Enable batch processing for the specified payment types.', + 'type' => 'selectmultiple', + 'select_enum' => [qw( CARD CHEK )], + }, + + { + 'key' => 'realtime-disable_payby', + 'section' => 'billing', + 'description' => 'Disable realtime processing for the specified payment types.', + 'type' => 'selectmultiple', + 'select_enum' => [qw( CARD CHEK )], + }, + { 'key' => 'batch-default_format', 'section' => 'billing', 'description' => 'Default format for batches.', 'type' => 'select', 'select_enum' => [ 'csv-td_canada_trust-merchant_pc_batch', - 'csv-chase_canada-E-xactBatch', 'BoM', 'PAP' ] + 'csv-chase_canada-E-xactBatch', 'BoM', 'PAP', + 'ach-spiritone', + ] }, { @@ -1913,7 +2138,9 @@ httemplate/docs/config.html 'section' => 'billing', 'description' => 'Fixed (unchangeable) format for electronic check batches.', 'type' => 'select', - 'select_enum' => [ 'csv-td_canada_trust-merchant_pc_batch', 'BoM', 'PAP' ] + 'select_enum' => [ 'csv-td_canada_trust-merchant_pc_batch', 'BoM', 'PAP', + 'ach-spiritone', + ] }, { @@ -2030,6 +2257,261 @@ httemplate/docs/config.html 'type' => 'textarea', }, + { + 'key' => 'impending_recur_template', + 'section' => 'billing', + 'description' => 'Template file for alerts about looming first time recurrant billing. See the Text::Template documentation for details on the template substitition language. Also see packages with a flat price plan The following variables are available', +#
  • $payby
  • $expdate most likely only confuse + 'type' => 'textarea', + }, + + { + 'key' => 'selfservice-session_timeout', + 'section' => '', + 'description' => 'Self-service session timeout. Defaults to 1 hour.', + 'type' => 'select', + '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', + 'description' => 'Causes passwords automatically generated to consist entirely of capital letters', + 'type' => 'checkbox', + }, + + { + 'key' => 'datavolume-forcemegabytes', + 'section' => 'UI', + 'description' => 'All data volumes are expressed in megabytes', + 'type' => 'checkbox', + }, + + { + 'key' => 'datavolume-significantdigits', + 'section' => 'UI', + 'description' => 'number of significant digits to use to represent data volumes', + 'type' => 'text', + }, + + { + 'key' => 'disable_void_after', + 'section' => 'billing', + 'description' => 'Number of seconds after which freeside won\'t attempt to VOID a payment first when performing a refund.', + 'type' => 'text', + }, + + { + 'key' => 'disable_line_item_date_ranges', + 'section' => 'billing', + 'description' => 'Prevent freeside from automatically generating date ranges on invoice line items.', + 'type' => 'checkbox', + }, + + { + 'key' => 'cust_main-require_phone', + 'section' => '', + 'description' => 'Require daytime or night for all customer records.', + 'type' => 'checkbox', + }, + + { + 'key' => 'cust_main-require_invoicing_list_email', + 'section' => '', + 'description' => 'Email address field is required: require at least one invoicing email address for all customer records.', + 'type' => 'checkbox', + }, + + { + 'key' => 'cancel_credit_type', + 'section' => 'billing', + 'description' => 'The group to use for new, automatically generated credit reasons resulting from cancellation.', + 'type' => 'select-sub', + 'options_sub' => sub { require FS::Record; + require FS::reason_type; + map { $_->typenum => $_->type } + FS::Record::qsearch('reason_type', { class=>'R' } ); + }, + 'option_sub' => sub { require FS::Record; + require FS::reason_type; + my $reason_type = FS::Record::qsearchs( + 'reason_type', { 'typenum' => shift } + ); + $reason_type ? $reason_type->type : ''; + }, + }, + + { + 'key' => 'referral_credit_type', + 'section' => 'billing', + 'description' => 'The group to use for new, automatically generated credit reasons resulting from referrals.', + 'type' => 'select-sub', + 'options_sub' => sub { require FS::Record; + require FS::reason_type; + map { $_->typenum => $_->type } + FS::Record::qsearch('reason_type', { class=>'R' } ); + }, + 'option_sub' => sub { require FS::Record; + require FS::reason_type; + my $reason_type = FS::Record::qsearchs( + 'reason_type', { 'typenum' => shift } + ); + $reason_type ? $reason_type->type : ''; + }, + }, + + { + 'key' => 'signup_credit_type', + 'section' => 'billing', + 'description' => 'The group to use for new, automatically generated credit reasons resulting from signup and self-service declines.', + 'type' => 'select-sub', + 'options_sub' => sub { require FS::Record; + require FS::reason_type; + map { $_->typenum => $_->type } + FS::Record::qsearch('reason_type', { class=>'R' } ); + }, + 'option_sub' => sub { require FS::Record; + require FS::reason_type; + my $reason_type = FS::Record::qsearchs( + 'reason_type', { 'typenum' => shift } + ); + $reason_type ? $reason_type->type : ''; + }, + }, + + { + 'key' => 'cust_main-agent_custid-format', + 'section' => '', + 'description' => 'Enables searching of various formatted values in cust_main.agent_custid', + 'type' => 'select', + 'select_hash' => [ + '' => 'Numeric only', + 'ww?d+' => 'Numeric with one or two letter prefix', + ], + }, + + { + 'key' => 'card_masking_method', + 'section' => 'UI', + 'description' => 'Digits to display when masking credit cards. Note that the first six digits are necessary to canonically identify the credit card type (Visa/MC, Amex, Discover, Maestro, etc.) in all cases. The first four digits can identify the most common credit card types in most cases (Visa/MC, Amex, and Discover). The first two digits can distinguish between Visa/MC and Amex. Note: You should manually remove stored paymasks if you change this value on an existing database, to avoid problems using stored cards.', + 'type' => 'select', + 'select_hash' => [ + '' => '123456xxxxxx1234', + 'first6last2' => '123456xxxxxxxx12', + 'first4last4' => '1234xxxxxxxx1234', + 'first4last2' => '1234xxxxxxxxxx12', + 'first2last4' => '12xxxxxxxxxx1234', + 'first2last2' => '12xxxxxxxxxxxx12', + 'first0last4' => 'xxxxxxxxxxxx1234', + 'first0last2' => 'xxxxxxxxxxxxxx12', + ], + }, + + { + 'key' => 'disable_previous_balance', + 'section' => 'billing', + 'description' => 'Disable inclusion of previous balance, payment, and credit lines on invoices', + 'type' => 'checkbox', + }, + + { + 'key' => 'disable_acl_changes', + 'section' => '', + 'description' => 'Disable all ACL changes, for demos.', + 'type' => 'checkbox', + }, + + { + 'key' => 'cust_main-edit_agent_custid', + 'section' => 'UI', + 'description' => 'Enable editing of the agent_custid field.', + 'type' => 'checkbox', + }, + + { + 'key' => 'cust_main-default_areacode', + 'section' => 'UI', + 'description' => 'Default area code for customers.', + 'type' => 'text', + }, + + { + 'key' => 'cust_bill-max_same_services', + 'section' => 'billing', + 'description' => 'Maximum number of the same service to list individually on invoices before condensing to a single line listing the number of services. Defaults to 5.', + 'type' => 'text', + }, + + { + 'key' => 'suspend_email_admin', + 'section' => '', + 'description' => 'Destination admin email address to enable suspension notices', + 'type' => 'text', + }, + + { + 'key' => 'email_report-subject', + 'section' => '', + 'description' => 'Subject for reports emailed by freeside-fetch. Defaults to "Freeside report".', + 'type' => 'text', + }, + + { + 'key' => 'sg-multicustomer_hack', + 'section' => '', + 'description' => "Don't use this.", + 'type' => 'checkbox', + }, + + { + 'key' => 'sg-ping_username', + 'section' => '', + 'description' => "Don't use this.", + 'type' => 'text', + }, + + { + 'key' => 'sg-ping_password', + 'section' => '', + 'description' => "Don't use this.", + 'type' => 'text', + }, + + { + 'key' => 'sg-login_username', + 'section' => '', + 'description' => "Don't use this.", + 'type' => 'text', + }, + + { + 'key' => 'queued-max_kids', + 'section' => '', + 'description' => 'Maximum number of queued processes. Defaults to 10.', + 'type' => 'text', + }, + + { + 'key' => 'cancelled_cust-noevents', + 'section' => 'billing', + 'description' => "Don't run events for cancelled customers", + 'type' => 'checkbox', + }, + + { + 'key' => 'svc_broadband-manage_link', + 'section' => 'UI', + 'description' => 'URL for svc_broadband "Manage Device" link. The following substitutions are available: $ip_addr.', + 'type' => 'text', + }, + ); 1;