use FS::Record qw(qsearch qsearchs);
use FS::UID qw(dbh datasrc use_confcompat);
use FS::Misc::Invoicing qw( spool_formats );
-use FS::Misc::Geo;
$base_dir = '%%%FREESIDE_CONF%%%';
'per_agent' => 1,
);
-my $_gateway_name = sub {
- my $g = shift;
- return '' if !$g;
- ($g->gateway_username . '@' . $g->gateway_module);
-};
-
my %payment_gateway_options = (
'type' => 'select-sub',
'options_sub' => sub {
'table' => 'payment_gateway',
'hashref' => { 'disabled' => '' },
});
- map { $_->gatewaynum, $_gateway_name->($_) } @gateways;
+ map { $_->gatewaynum, $_->label } @gateways;
},
'option_sub' => sub {
my $gateway = FS::payment_gateway->by_key(shift);
- $_gateway_name->($gateway);
+ $gateway ? $gateway->label : ''
+ },
+);
+
+my %batch_gateway_options = (
+ %payment_gateway_options,
+ 'options_sub' => sub {
+ my @gateways = qsearch('payment_gateway',
+ {
+ 'disabled' => '',
+ 'gateway_namespace' => 'Business::BatchPayment',
+ }
+ );
+ map { $_->gatewaynum, $_->label } @gateways;
},
);
'type' => 'text',
},
+ {
+ 'key' => 'event_log_level',
+ 'section' => 'notification',
+ 'description' => 'Store events in the internal log if they are at least this severe. "info" is the default, "debug" is very detailed and noisy.',
+ 'type' => 'select',
+ 'select_enum' => [ '', 'debug', 'info', 'notice', 'warning', 'error', ],
+ # don't bother with higher levels
+ },
+
{
'key' => 'log_sent_mail',
'section' => 'notification',
'type' => 'checkbox',
},
+ {
+ 'key' => 'cust_main-select-prorate_day',
+ 'section' => 'billing',
+ 'description' => 'When used with prorate or anniversary packages, allows the selection of the prorate day of month, on a per-customer basis',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'encryption',
'section' => 'billing',
'select_enum' => [ '', qw( USD AUD CAD DKK EUR GBP ILS JPY NZD ) ],
},
+ {
+ 'key' => 'business-batchpayment-test_transaction',
+ 'section' => 'billing',
+ 'description' => 'Turns on the Business::BatchPayment test_mode flag. Note that not all gateway modules support this flag; if yours does not, using the batch gateway will fail.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'countrydefault',
'section' => 'UI',
'type' => 'checkbox',
},
+ {
+ 'key' => 'svc_acct-ip_addr',
+ 'section' => '',
+ 'description' => 'Enable IP address management on login services like for broadband services.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'exclude_ip_addr',
'section' => '',
{
'key' => 'invoice_html',
'section' => 'invoicing',
- 'description' => 'Optional HTML template for invoices. See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:2.1:Documentation:Administration#HTML_invoice_templates">billing documentation</a> for details.',
+ 'description' => 'HTML template for invoices. See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:2.1:Documentation:Administration#HTML_invoice_templates">billing documentation</a> for details.',
+
+ 'type' => 'textarea',
+ },
+
+ {
+ 'key' => 'quotation_html',
+ 'section' => '',
+ 'description' => 'HTML template for quotations.',
'type' => 'textarea',
},
'type' => 'textarea',
},
+ {
+ 'key' => 'quotation_latex',
+ 'section' => '',
+ 'description' => 'LaTeX template for typeset PostScript quotations.',
+ 'type' => 'textarea',
+ },
+
{
'key' => 'invoice_latextopmargin',
'section' => 'invoicing',
'per_locale' => 1,
},
+ {
+ 'key' => 'quotation_latexnotes',
+ 'section' => '',
+ 'description' => 'Notes section for LaTeX typeset PostScript quotations.',
+ 'type' => 'textarea',
+ 'per_agent' => 1,
+ 'per_locale' => 1,
+ },
+
{
'key' => 'invoice_latexfooter',
'section' => 'invoicing',
{
'key' => 'invoice_latexextracouponspace',
'section' => 'invoicing',
- 'description' => 'Optional LaTeX invoice textheight space to reserve for a tear off coupon. Include units.',
+ 'description' => 'Optional LaTeX invoice textheight space to reserve for a tear off coupon. Include units. Default is 3.6cm',
'type' => 'text',
'per_agent' => 1,
'validate' => sub { shift =~
'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 3', 'Net 9', 'Net 10', 'Net 15', 'Net 20', 'Net 21', 'Net 30', 'Net 45', 'Net 60', 'Net 90' ],
+ 'select_enum' => [ '', 'Payable upon receipt', 'Net 0', 'Net 3', 'Net 9', 'Net 10', 'Net 15', 'Net 18', 'Net 20', 'Net 21', 'Net 30', 'Net 45', 'Net 60', 'Net 90' ],
},
{
'type' => 'checkbox',
},
+ {
+ 'key' => 'national_id-country',
+ 'section' => 'UI',
+ 'description' => 'Track a national identification number, for specific countries.',
+ 'type' => 'select',
+ 'select_enum' => [ '', 'MY' ],
+ },
+
{
'key' => 'show_bankstate',
'section' => 'UI',
{
'key' => 'manual_process-pkgpart',
'section' => 'billing',
- 'description' => 'Package to add to each manual credit card and ACH payments entered from the backend. Enabling this option may be in violation of your merchant agreement(s), so please check them carefully before enabling this option.',
+ 'description' => 'Package to add to each manual credit card and ACH payment entered by employees from the backend. Enabling this option may be in violation of your merchant agreement(s), so please check it(/them) carefully before enabling this option.',
'type' => 'select-part_pkg',
+ 'per_agent' => 1,
},
{
'type' => 'checkbox',
},
+ {
+ 'key' => 'selfservice_process-pkgpart',
+ 'section' => 'billing',
+ 'description' => 'Package to add to each manual credit card and ACH payment entered by the customer themselves in the self-service interface. Enabling this option may be in violation of your merchant agreement(s), so please check it(/them) carefully before enabling this option.',
+ 'type' => 'select-part_pkg',
+ 'per_agent' => 1,
+ },
+
+ {
+ 'key' => 'selfservice_process-display',
+ 'section' => 'billing',
+ 'description' => 'When using selfservice_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' => 'selfservice_process-skip_first',
+ 'section' => 'billing',
+ 'description' => "When using selfservice_process-pkgpart, omit the fee if it is the customer's first payment.",
+ 'type' => 'checkbox',
+ },
+
+# {
+# 'key' => 'auto_process-pkgpart',
+# 'section' => 'billing',
+# 'description' => 'Package to add to each automatic credit card and ACH payment processed by billing events. Enabling this option may be in violation of your merchant agreement(s), so please check them carefully before enabling this option.',
+# 'type' => 'select-part_pkg',
+# },
+#
+## {
+## 'key' => 'auto_process-display',
+## 'section' => 'billing',
+## 'description' => 'When using auto_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' => 'auto_process-skip_first',
+# 'section' => 'billing',
+# 'description' => "When using auto_process-pkgpart, omit the fee if it is the customer's first payment.",
+# 'type' => 'checkbox',
+# },
+
{
'key' => 'allow_negative_charges',
'section' => 'billing',
'per_agent' => 1,
},
+ {
+ 'key' => 'ics-confirm_template',
+ 'section' => '',
+ 'description' => 'Confirmation email template for uploading to ICS invoice printing. Text::Template format, with variables "%count" and "%sum".',
+ 'type' => 'textarea',
+ 'per_agent' => 1,
+ },
+
{
'key' => 'svc_acct-usage_suspend',
'section' => 'billing',
{
'key' => 'cust_pkg-show_fcc_voice_grade_equivalent',
'section' => 'UI',
- 'description' => "Show a field on package definitions for assigning a DS0 equivalency number suitable for use on FCC form 477.",
+ 'description' => "Show fields on package definitions for FCC Form 477 classification",
'type' => 'checkbox',
},
{
'key' => 'invoice-unitprice',
'section' => 'invoicing',
- 'description' => 'Enable unit pricing on invoices.',
+ 'description' => 'Enable unit pricing on invoices and quantities on packages.',
'type' => 'checkbox',
},
{
'key' => 'postal_invoice-recurring_only',
'section' => 'billing',
- 'description' => 'The postal invoice fee is omitted on invoices without reucrring charges when this is set.',
+ 'description' => 'The postal invoice fee is omitted on invoices without recurring charges when this is set.',
'type' => 'checkbox',
},
]
},
+ { 'key' => 'batch-gateway-CARD',
+ 'section' => 'billing',
+ 'description' => 'Business::BatchPayment gateway for credit card batches.',
+ %batch_gateway_options,
+ },
+
+ { 'key' => 'batch-gateway-CHEK',
+ 'section' => 'billing',
+ 'description' => 'Business::BatchPayment gateway for check batches.',
+ %batch_gateway_options,
+ },
+
+ {
+ 'key' => 'batch-reconsider',
+ 'section' => 'billing',
+ 'description' => 'Allow imported batch results to change the status of payments from previous imports. Enable this only if your gateway is known to send both positive and negative results for the same batch.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'batch-auto_resolve_days',
+ 'section' => 'billing',
+ 'description' => 'Automatically resolve payment batches this many days after they were first downloaded.',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'batch-auto_resolve_status',
+ 'section' => 'billing',
+ 'description' => 'When automatically resolving payment batches, take this action for payments of unknown status.',
+ 'type' => 'select',
+ 'select_enum' => [ 'approve', 'decline' ],
+ },
+
+ {
+ 'key' => 'batch-errors_to',
+ 'section' => 'billing',
+ 'description' => 'Email errors when processing batches to this address. If unspecified, batch processing will stop immediately on error.',
+ 'type' => 'text',
+ },
+
#lists could be auto-generated from pay_batch info
{
'key' => 'batch-fixed_format-CARD',
{
'key' => 'batchconfig-paymentech',
'section' => 'billing',
- 'description' => 'Configuration for Chase Paymentech batching, five lines: 1. BIN, 2. Terminal ID, 3. Merchant ID, 4. Username, 5. Password (for batch uploads)',
+ 'description' => 'Configuration for Chase Paymentech batching, six lines: 1. BIN, 2. Terminal ID, 3. Merchant ID, 4. Username, 5. Password (for batch uploads), 6. Flag to send recurring indicator.',
'type' => 'textarea',
},
'type' => 'checkbox',
},
+ {
+ 'key' => 'cust_main-enable_anniversary_date',
+ 'section' => 'UI',
+ 'description' => 'Enable tracking of an anniversary date with each customer record',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'cust_main-edit_calling_list_exempt',
'section' => 'UI',
{
'key' => 'disable_previous_balance',
'section' => 'invoicing',
- 'description' => 'Disable inclusion of previous balance, payment, and credit lines on invoices',
+ 'description' => 'Disable inclusion of previous balance, payment, and credit lines on invoices.',
'type' => 'checkbox',
'per_agent' => 1,
},
'type' => 'checkbox',
},
+ {
+ 'key' => 'previous_balance-show_on_statements',
+ 'section' => 'invoicing',
+ 'description' => 'Show previous invoices on statements, without itemized charges.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'balance_due_below_line',
'section' => 'invoicing',
'type' => 'checkbox',
},
+ {
+ 'key' => 'address_standardize_method',
+ 'section' => 'UI', #???
+ 'description' => 'Method for standardizing customer addresses.',
+ 'type' => 'select',
+ 'select_hash' => [ '' => '',
+ 'usps' => 'U.S. Postal Service',
+ 'ezlocate' => 'EZLocate',
+ ],
+ },
+
{
'key' => 'usps_webtools-userid',
'section' => 'UI',
'type' => 'text',
},
+ {
+ 'key' => 'ezlocate-userid',
+ 'section' => 'UI',
+ 'description' => 'User ID for EZ-Locate service. See <a href="http://www.geocode.com/">the TomTom website</a> for access and pricing information.',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'ezlocate-password',
+ 'section' => 'UI',
+ 'description' => 'Password for EZ-Locate service.',
+ 'type' => 'text'
+ },
+
{
'key' => 'cust_main-auto_standardize_address',
'section' => 'UI',
'section' => 'UI',
'description' => 'The method to use to look up tax district codes.',
'type' => 'select',
- 'select_hash' => [ FS::Misc::Geo::get_district_methods() ],
+ #'select_hash' => [ FS::Misc::Geo::get_district_methods() ],
+ #after RT#13763, using FS::Misc::Geo here now causes a dependancy loop :/
+ 'select_hash' => [
+ '' => '',
+ 'wa_sales' => 'Washington sales tax',
+ ],
},
{
'description' => 'If set, automatically log users out of the backoffice after this many minutes.',
'type' => 'text',
},
+
+ {
+ 'key' => 'spreadsheet_format',
+ 'section' => 'UI',
+ 'description' => 'Default format for spreadsheet download.',
+ 'type' => 'select',
+ 'select_hash' => [
+ 'XLS' => 'XLS (Excel 97/2000/XP)',
+ 'XLSX' => 'XLSX (Excel 2007+)',
+ ],
+ },
+
+ {
+ 'key' => 'agent-email_day',
+ 'section' => '',
+ 'description' => 'On this day of each month, agents with master customer records containing email addresses will be emailed a list of their customers and balances.',
+ 'type' => 'text',
+ },
{ key => "apacheroot", section => "deprecated", description => "<b>DEPRECATED</b>", type => "text" },
{ key => "apachemachine", section => "deprecated", description => "<b>DEPRECATED</b>", type => "text" },