X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FConf.pm;h=3aaa66739c798ef9c1038f9376e9c462d0e2dad3;hb=752ed76d717d305b12e32fd2a68b1a253f63008d;hp=13bec18b1341fc34fe4dc1c5a679606c93cf2e68;hpb=e3e8d316738336108b9b9af65d9adeb2ed085696;p=freeside.git diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index 13bec18b1..3aaa66739 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 ] ] @@ -230,6 +230,7 @@ sub invoice_templatenames { } } + map { $_ } #handle scalar context sort keys %templatenames; } @@ -576,7 +577,7 @@ worry that config_items is freeside-specific and icky. { 'key' => 'alert_expiration', 'section' => 'billing', - 'description' => 'Enable alerts about billing method expiration.', + 'description' => 'Enable alerts about billing method expiration (i.e. expiring credit cards).', 'type' => 'checkbox', 'per_agent' => 1, }, @@ -584,7 +585,7 @@ 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.', + 'description' => 'Template file for billing method expiration alerts (i.e. expiring credit cards). See the billing documentation for details.', 'type' => 'textarea', 'per_agent' => 1, }, @@ -809,35 +810,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', 'description' => 'Disables postal mail invoices', - 'type' => 'checkbox', + 'type' => 'checkbox', }, { 'key' => 'disablepostalinvoicedefault', 'section' => 'billing', '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', 'description' => 'Automatically adds new accounts to the email invoice list', - 'type' => 'checkbox', + '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', + 'type' => 'checkbox', + }, + + { + 'key' => 'emailinvoice-apostrophe', + 'section' => 'billing', + 'description' => 'Allows the apostrophe (single quote) character in the email addresses in the email invoice list.', + 'type' => 'checkbox', }, { @@ -1028,23 +1036,25 @@ worry that config_items is freeside-specific and icky. 'type' => 'checkbox', }, + { + 'key' => 'usage_class_as_a_section', + 'section' => 'billing', + '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' => 'billing', + '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 : ''; - }, + 'type' => 'select-pkg_class', }, { @@ -1134,17 +1144,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', + ], }, { @@ -1539,38 +1566,14 @@ worry that config_items is freeside-specific and icky. 'key' => 'signup_server-classnum2', 'section' => '', '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' => '', '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', }, { @@ -1583,14 +1586,14 @@ worry that config_items is freeside-specific and icky. { 'key' => 'declinetemplate', 'section' => 'billing', - 'description' => 'Template file for credit card decline emails.', + 'description' => 'Template file for credit card and electronic check decline emails.', 'type' => 'textarea', }, { 'key' => 'emaildecline', 'section' => 'billing', - 'description' => 'Enable emailing of credit card decline notices.', + 'description' => 'Enable emailing of credit card and electronic check decline notices.', 'type' => 'checkbox', }, @@ -1908,6 +1911,13 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'cust_pkg-change_pkgpart-bill_now', + 'section' => '', + 'description' => "When changing packages, bill the new package immediately. Useful for prepaid situations with RADIUS where an Expiration attribute base don the package must be present at all times.", + 'type' => 'checkbox', + }, + + { 'key' => 'disable_autoreverse', 'section' => 'BIND', 'description' => 'Disable automatic synchronization of reverse-ARPA entries.', @@ -2112,6 +2122,13 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'address1-search', + 'section' => 'UI', + 'description' => 'Enable the ability to search the address1 field from customer search.', + 'type' => 'checkbox', + }, + + { 'key' => 'address2-search', 'section' => 'UI', 'description' => 'Enable a "Unit" search box which searches the second address field. Useful for multi-tenant applications. See also: cust_main-require_address2', @@ -2396,17 +2413,18 @@ worry that config_items is freeside-specific and icky. 'type' => 'select', 'select_enum' => [ 'csv-td_canada_trust-merchant_pc_batch', 'csv-chase_canada-E-xactBatch', 'BoM', 'PAP', - 'ach-spiritone', + 'paymentech', 'ach-spiritone', 'RBC' ] }, + #lists could be auto-generated from pay_batch info { 'key' => 'batch-fixed_format-CARD', 'section' => 'billing', 'description' => 'Fixed (unchangeable) format for credit card batches.', 'type' => 'select', 'select_enum' => [ 'csv-td_canada_trust-merchant_pc_batch', 'BoM', 'PAP' , - 'csv-chase_canada-E-xactBatch', 'BoM', 'PAP' ] + 'csv-chase_canada-E-xactBatch', 'paymentech' ] }, { @@ -2415,7 +2433,7 @@ worry that config_items is freeside-specific and icky. 'description' => 'Fixed (unchangeable) format for electronic check batches.', 'type' => 'select', 'select_enum' => [ 'csv-td_canada_trust-merchant_pc_batch', 'BoM', 'PAP', - 'ach-spiritone', + 'paymentech', 'ach-spiritone', 'RBC' ] }, @@ -2450,7 +2468,14 @@ worry that config_items is freeside-specific and icky. { 'key' => 'batchconfig-paymentech', 'section' => 'billing', - 'description' => 'Configuration for Chase Paymentech batching, four lines: 1. BIN, 2. Terminal ID, 3. Merchant ID, 4. Username', + 'description' => 'Configuration for Chase Paymentech batching, five lines: 1. BIN, 2. Terminal ID, 3. Merchant ID, 4. Username, 5. Password (for batch uploads)', + 'type' => 'textarea', + }, + + { + 'key' => 'batchconfig-RBC', + 'section' => 'billing', + 'description' => 'Configuration for Royal Bank of Canada PDS batching, four lines: 1. Client number, 2. Short name, 3. Long name, 4. Transaction code.', 'type' => 'textarea', }, @@ -2625,14 +2650,14 @@ worry that config_items is freeside-specific and icky. 'key' => 'disable_setup_suspended_pkgs', 'section' => 'billing', 'description' => 'Disables charging of setup fees for suspended packages.', - 'type' => 'checkbox', + 'type' => 'checkbox', }, { - 'key' => 'password-generated-allcaps', - 'section' => 'password', + 'key' => 'password-generated-allcaps', + 'section' => 'password', 'description' => 'Causes passwords automatically generated to consist entirely of capital letters', - 'type' => 'checkbox', + 'type' => 'checkbox', }, { @@ -2901,6 +2926,13 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'cust_bill-consolidate_services', + 'section' => 'billing', + 'description' => 'Consolidate service display into fewer lines on invoices rather than one per service.', + 'type' => 'checkbox', + }, + + { 'key' => 'suspend_email_admin', 'section' => '', 'description' => 'Destination admin email address to enable suspension notices', @@ -2919,6 +2951,7 @@ worry that config_items is freeside-specific and icky. 'section' => '', 'description' => 'HTML for the HEAD section of the self-service interface, typically used for LINK stylesheet tags', 'type' => 'textarea', #htmlarea? + 'per_agent' => 1, }, @@ -2927,6 +2960,7 @@ worry that config_items is freeside-specific and icky. 'section' => '', 'description' => 'HTML header for the self-service interface', 'type' => 'textarea', #htmlarea? + 'per_agent' => 1, }, { @@ -2934,6 +2968,7 @@ worry that config_items is freeside-specific and icky. 'section' => '', 'description' => 'HTML header for the self-service interface', 'type' => 'textarea', #htmlarea? + 'per_agent' => 1, }, @@ -2942,6 +2977,7 @@ worry that config_items is freeside-specific and icky. 'section' => '', 'description' => 'HTML background color for the self-service interface, for example, #FFFFFF', 'type' => 'text', + 'per_agent' => 1, }, { @@ -2949,6 +2985,7 @@ worry that config_items is freeside-specific and icky. 'section' => '', 'description' => 'HTML color for self-service interface input boxes, for example, #C0C0C0"', 'type' => 'text', + 'per_agent' => 1, }, { @@ -3056,7 +3093,7 @@ worry that config_items is freeside-specific and icky. 'key' => 'cust_pkg-show_autosuspend', 'section' => 'UI', 'description' => 'Show package auto-suspend dates. Use with caution for now; can slow down customer view for large insallations.', - 'type' => 'checkbox', + 'type' => 'checkbox', }, { @@ -3190,6 +3227,13 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'pkg-addon_classnum', + 'section' => 'billing', + 'description' => 'Enable the ability to restrict additional package orders based on package class.', + 'type' => 'checkbox', + }, + + { 'key' => 'cust_main-edit_signupdate', 'section' => 'UI', 'descritpion' => 'Enable manual editing of the signup date.', @@ -3203,6 +3247,42 @@ worry that config_items is freeside-specific and icky. 'type' => 'checkbox', }, + { + 'key' => 'cust_bill_pay_pkg-manual', + 'section' => 'UI', + 'description' => 'Allow manual application of payments to line items.', + 'type' => 'checkbox', + }, + + { + 'key' => 'cust_credit_bill_pkg-manual', + 'section' => 'UI', + 'description' => 'Allow manual application of credits to line items.', + 'type' => 'checkbox', + }, + + { + 'key' => 'breakage-days', + 'section' => 'billing', + 'description' => 'If set to a number of days, after an account goes that long without activity, recognizes any outstanding payments and credits as "breakage" by creating a breakage charge and invoice.', + 'type' => 'text', + 'per_agent' => 1, + }, + + { + 'key' => 'breakage-pkg_class', + 'section' => 'billing', + 'description' => 'Package class to use for breakage reconciliation.', + 'type' => 'select-pkg_class', + }, + + { + 'key' => 'disable_cron_billing', + 'section' => 'billing', + 'description' => 'Disable billing and collection from being run by freeside-daily and freeside-monthly, while still allowing other actions to run, such as notifications and backup.', + '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" },