{
'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',
},
'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' => '',
'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.',
+ 'transaction_is_recur' => 'Set the flag if the transaction itself is recurring, irregardless of previous charges on the card.',
],
},
},
{
+ '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',
{
'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',
},
'type' => 'select-sub',
'options_sub' => sub { require FS::Record;
require FS::part_pkg;
- map { $_->pkgpart => $_->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 }
- );
+ my $part_pkg = FS::Record::qsearchs(
+ 'part_pkg', { 'pkgpart'=>shift }
+ );
$part_pkg ? $part_pkg->pkg : '';
- },
+ },
+ },
+
+ {
+ 'key' => 'postal_invoice-recurring_only',
+ 'section' => 'billing',
+ 'description' => 'The postal invoice fee is omitted on invoices without recurring charges when this is set',
+ 'type' => 'checkbox',
},
{
'type' => 'checkbox',
},
+ 'key' => 'overlimit_groups',
+ 'section' => '',
+ 'description' => 'RADIUS group (or comma-separated groups) to assign to svc_acct which has exceeded its bandwidth or time limit.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ },
+
+ {
{
'key' => 'support-key',
'section' => '',
'type' => 'checkbox',
},
-
-
{
'key' => 'cust_main-require_phone',
'section' => '',
'type' => 'select-sub',
'options_sub' => sub { require FS::Record;
require FS::reason_type;
- map { $_->typenum => $_->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 }
- );
+ my $reason_type = FS::Record::qsearchs(
+ 'reason_type', { 'typenum' => shift }
+ );
$reason_type ? $reason_type->type : '';
- },
+ },
},
{
'type' => 'select-sub',
'options_sub' => sub { require FS::Record;
require FS::reason_type;
- map { $_->typenum => $_->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 }
- );
+ my $reason_type = FS::Record::qsearchs(
+ 'reason_type', { 'typenum' => shift }
+ );
$reason_type ? $reason_type->type : '';
- },
+ },
},
{
'type' => 'select-sub',
'options_sub' => sub { require FS::Record;
require FS::reason_type;
- map { $_->typenum => $_->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 }
- );
+ my $reason_type = FS::Record::qsearchs(
+ 'reason_type', { 'typenum' => shift }
+ );
$reason_type ? $reason_type->type : '';
- },
+ },
},
{
},
{
+ '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.',