X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FConf.pm;h=3df23263dee37740cd2f6c91880130f911b14a2b;hb=75432fda616a791bfff75d5df050452b99e3f54a;hp=d5304afabcf621c0dc784fb7db2a3fdce78d1830;hpb=8800e519dc0e4b8eee4ab2cddc74d52c205bc536;p=freeside.git diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index d5304afab..3df23263d 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, }, @@ -728,7 +729,14 @@ worry that config_items is freeside-specific and icky. { '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', }, @@ -802,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', }, { @@ -885,6 +900,13 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'invoice_usesummary', + 'section' => 'billing', + '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', '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.', @@ -916,6 +938,14 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'invoice_htmlsummary', + 'section' => 'billing', + 'description' => 'Summary initial page for HTML invoices.', + 'type' => 'textarea', + 'per_agent' => 1, + }, + + { 'key' => 'invoice_htmlreturnaddress', 'section' => 'billing', 'description' => 'Return address for HTML invoices. Defaults to the same data in invoice_latexreturnaddress if not specified.', @@ -946,6 +976,14 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'invoice_latexsummary', + 'section' => 'billing', + 'description' => 'Summary initial page for LaTeX typeset PostScript invoices.', + 'type' => 'textarea', + 'per_agent' => 1, + }, + + { 'key' => 'invoice_latexcoupon', 'section' => 'billing', 'description' => 'Remittance coupon for LaTeX typeset PostScript invoices.', @@ -998,6 +1036,13 @@ worry that config_items is freeside-specific and icky. 'type' => 'checkbox', }, + { + 'key' => 'finance_pkgclass', + 'section' => 'billing', + 'description' => 'The package class for finance charges', + 'type' => 'select-pkg_class', + }, + { 'key' => 'separate_usage', 'section' => 'billing', @@ -1085,17 +1130,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', + ], }, { @@ -1490,38 +1552,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', }, { @@ -1534,14 +1572,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', }, @@ -1814,6 +1852,24 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'manual_process-display', + 'section' => 'billing', + 'description' => 'When using manual_process-pkgpart, add the fee to the amount entered (default), or subtract the fee from the amount entered.', + 'type' => 'select', + 'select_hash' => [ + 'add' => 'Add fee to amount entered', + 'subtract' => 'Subtract fee from amount entered', + ], + }, + + { + 'key' => 'manual_process-skip_first', + 'section' => 'billing', + 'description' => "When using manual_process-pkgpart, omit the fee if it is the customer's first payment.", + 'type' => 'checkbox', + }, + + { 'key' => 'allow_negative_charges', 'section' => 'billing', 'description' => 'Allow negative charges. Normally not used unless importing data from a legacy system that requires this.', @@ -2045,6 +2101,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', @@ -2259,14 +2322,28 @@ worry that config_items is freeside-specific and icky. { 'key' => 'invoice-ship_address', 'section' => 'billing', - 'description' => 'Enable this switch to include the ship address on the invoice.', + 'description' => 'Include the shipping address on invoices.', 'type' => 'checkbox', }, { 'key' => 'invoice-unitprice', 'section' => 'billing', - 'description' => 'This switch enables unit pricing on the invoice.', + 'description' => 'Enable unit pricing on invoices.', + 'type' => 'checkbox', + }, + + { + 'key' => 'invoice-smallernotes', + 'section' => 'billing', + 'description' => 'Display the notes section in a smaller font on invoices.', + 'type' => 'checkbox', + }, + + { + 'key' => 'invoice-smallerfooter', + 'section' => 'billing', + 'description' => 'Display footers in a smaller font on invoices.', 'type' => 'checkbox', }, @@ -2315,17 +2392,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' ] }, { @@ -2334,7 +2412,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' ] }, @@ -2369,7 +2447,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', }, @@ -2544,14 +2629,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', }, { @@ -2820,6 +2905,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', @@ -2838,6 +2930,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, }, @@ -2846,6 +2939,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, }, { @@ -2853,6 +2947,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, }, @@ -2861,6 +2956,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, }, { @@ -2868,6 +2964,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, }, { @@ -2975,7 +3072,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', }, { @@ -3007,6 +3104,13 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'sg-login_username', + 'section' => '', + 'description' => "Don't use this.", + 'type' => 'text', + }, + + { 'key' => 'disable-cust-pkg_class', 'section' => 'UI', 'description' => 'Disable the two-step dropdown for selecting package class and package, and return to the classic single dropdown.', @@ -3102,6 +3206,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.', @@ -3115,6 +3226,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" },