'type' => 'checkbox',
},
+ {
+ 'key' => 'business-onlinepayment-test_transaction',
+ 'section' => 'billing',
+ 'description' => 'Turns on the Business::OnlinePayment test_transaction flag. Note that not all gateway modules support this flag; if yours does not, transactions will still be sent live.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'countrydefault',
'section' => 'UI',
'type' => 'select',
'select_hash' => [
'%m/%d/%Y' => 'MM/DD/YYYY',
+ '%d/%m/%Y' => 'DD/MM/YYYY',
'%Y/%m/%d' => 'YYYY/MM/DD',
],
},
'type' => 'textarea',
},
+ {
+ 'key' => 'invoice_latextopmargin',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice topmargin setting. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
+ {
+ 'key' => 'invoice_latexheadsep',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice headsep setting. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
+ {
+ 'key' => 'invoice_latexaddresssep',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice separation between invoice header
+and customer address. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
+ {
+ 'key' => 'invoice_latextextheight',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice textheight setting. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
{
'key' => 'invoice_latexnotes',
'section' => 'invoicing',
'per_agent' => 1,
},
+ {
+ 'key' => 'invoice_latexextracouponspace',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice textheight space to reserve for a tear off coupon. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
+ {
+ 'key' => 'invoice_latexcouponfootsep',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice separation between tear off coupon and footer. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
+ {
+ 'key' => 'invoice_latexcouponamountenclosedsep',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice separation between total due and amount enclosed line. Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+ {
+ 'key' => 'invoice_latexcoupontoaddresssep',
+ 'section' => 'invoicing',
+ 'description' => 'Optional LaTeX invoice separation between invoice data and the to address (usually invoice_latexreturnaddress). Include units.',
+ 'type' => 'text',
+ 'per_agent' => 1,
+ 'validate' => sub { shift =~
+ /^-?\d*\.?\d+(in|mm|cm|pt|em|ex|pc|bp|dd|cc|sp)$/
+ ? '' : 'Invalid LaTex length';
+ },
+ },
+
{
'key' => 'invoice_latexreturnaddress',
'section' => 'invoicing',
'type' => 'textarea',
},
+ {
+ 'key' => 'invoice_latexverticalreturnaddress',
+ 'section' => 'invoicing',
+ 'description' => 'Place the return address under the company logo rather than beside it.',
+ 'type' => 'checkbox',
+ 'per_agent' => 1,
+ },
+
+ {
+ 'key' => 'invoice_latexcouponaddcompanytoaddress',
+ 'section' => 'invoicing',
+ 'description' => 'Add the company name to the To address on the remittance coupon because the return address does not contain it.',
+ 'type' => 'checkbox',
+ 'per_agent' => 1,
+ },
+
{
'key' => 'invoice_latexsmallfooter',
'section' => 'invoicing',
'type' => 'textarea'
},
+ {
+ 'key' => 'invoice_print_pdf',
+ 'section' => 'invoicing',
+ 'description' => 'Store postal invoices for download in PDF format rather than printing them directly.',
+ 'type' => 'checkbox',
+ },
{
'key' => 'invoice_default_terms',
'type' => 'checkbox',
},
+ {
+ 'key' => 'report-showpasswords',
+ 'section' => 'UI',
+ 'description' => 'This is a terrible idea. Do not enable it. STRONGLY NOT RECOMMENDED. Enables display of passwords on services reports.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'signupurl',
'section' => 'UI',
'type' => 'text',
},
+ {
+ 'key' => 'smtp-username',
+ 'section' => '',
+ 'description' => 'Optional SMTP username for Freeside\'s outgoing mail',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'smtp-password',
+ 'section' => '',
+ 'description' => 'Optional SMTP password for Freeside\'s outgoing mail',
+ 'type' => 'text',
+ },
+
+ {
+ 'key' => 'smtp-encryption',
+ 'section' => '',
+ 'description' => 'Optional SMTP encryption method. The STARTTLS methods require smtp-username and smtp-password to be set.',
+ 'type' => 'select',
+ 'select_hash' => [ '25' => 'None (port 25)',
+ '25-starttls' => 'STARTTLS (port 25)',
+ '587-starttls' => 'STARTTLS / submission (port 587)',
+ '465-tls' => 'SMTPS (SSL) (port 465)',
+ ],
+ },
+
{
'key' => 'soadefaultttl',
'section' => 'BIND',
'select_enum' => [ qw(CARD DCRD CHEK DCHK LECB PREPAY BILL COMP) ],
},
+ {
+ 'key' => 'selfservice-save_unchecked',
+ 'section' => 'self-service',
+ 'description' => 'In self-service, uncheck "Remember information" checkboxes by default (normally, they are checked by default).',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'signup_server-default_agentnum',
'section' => 'self-service',
'description' => 'Run billing for signup server signups immediately, and do not provision accounts which subsequently have a balance.',
'type' => 'checkbox',
},
+
{
'key' => 'signup_server-classnum2',
'section' => 'self-service',
'type' => 'select-pkg_class',
},
+ {
+ 'key' => 'selfservice-xmlrpc',
+ 'section' => 'self-service',
+ 'description' => 'Run a standalone self-service XML-RPC server on the backend (on port 8080).',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'backend-realtime',
'section' => 'billing',
{
'key' => 'svc_acct-notes',
- 'section' => 'UI',
+ 'section' => 'deprecated',
'description' => 'Extra HTML to be displayed on the Account View screen.',
'type' => 'textarea',
},
'section' => '',
'description' => 'RADIUS attribute for plain-text passwords.',
'type' => 'select',
- 'select_enum' => [ 'Password', 'User-Password' ],
+ 'select_enum' => [ 'Password', 'User-Password', 'Cleartext-Password' ],
},
{
{
'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.",
+ 'description' => "When changing packages, bill the new package immediately. Useful for prepaid situations with RADIUS where an Expiration attribute based on the package must be present at all times.",
'type' => 'checkbox',
},
'select_enum' => [ 'none', 'countrycode+phonenum', 'disabled' ],
},
+ {
+ 'key' => 'global_unique-pbx_title',
+ 'section' => '',
+ 'description' => 'Global phone number uniqueness control: enabled (usual setting - svc_pbx.title must be unique), or disabled turns off duplicate checking for this field.',
+ 'type' => 'select',
+ 'select_enum' => [ 'enabled', 'disabled' ],
+ },
+
{
'key' => 'svc_external-skip_manual',
'section' => 'UI',
},
},
+ {
+ 'key' => 'ticket_system-selfservice_queueid',
+ 'section' => '',
+ 'description' => 'Queue used when creating new customer tickets from self-service. Defautls to ticket_system-default_queueid if not specified.',
+ #false laziness w/above
+ 'type' => 'select-sub',
+ 'options_sub' => sub {
+ my $conf = new FS::Conf;
+ if ( $conf->config('ticket_system') ) {
+ eval "use FS::TicketSystem;";
+ die $@ if $@;
+ FS::TicketSystem->queues();
+ } else {
+ ();
+ }
+ },
+ 'option_sub' => sub {
+ my $conf = new FS::Conf;
+ if ( $conf->config('ticket_system') ) {
+ eval "use FS::TicketSystem;";
+ die $@ if $@;
+ FS::TicketSystem->queue(shift);
+ } else {
+ '';
+ }
+ },
+ },
+
{
'key' => 'ticket_system-priority_reverse',
'section' => '',
'type' => 'checkbox',
},
+ {
+ 'key' => 'cust_pkg-show_fcc_voice_grade_equivalent',
+ 'section' => 'UI',
+ 'description' => "Show a field on package definitions for assigning a DSO equivalency number suitable for use on FCC form 477.",
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'svc_acct-edit_uid',
'section' => 'shell',
'type' => 'checkbox',
},
+ {
+ 'key' => 'cgp_rule-domain_templates',
+ 'section' => '',
+ 'description' => 'Communigate Pro rule templates for domains, one per line, "svcnum Name"',
+ 'type' => 'textarea',
+ },
+
+ {
+ 'key' => 'svc_forward-no_srcsvc',
+ 'section' => '',
+ 'description' => "Don't allow forwards from existing accounts, only arbitrary addresses. Useful when exporting to systems such as Communigate Pro which treat forwards in this fashion.",
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'svc_forward-arbitrary_dst',
'section' => '',
{
'key' => 'disable_previous_balance',
'section' => 'invoicing',
- 'description' => 'Disable inclusion of previous balancem payment, and credit lines on invoices',
+ 'description' => 'Disable inclusion of previous balance, payment, and credit lines on invoices',
'type' => 'checkbox',
},
+ {
+ 'key' => 'previous_balance-exclude_from_total',
+ 'section' => 'invoicing',
+ 'description' => 'Do not include previous balance in the \'Total\' line. Only meaningful when invoice_sections is false. Optionally provide text to override the Total New Charges description',
+ 'type' => [ qw(checkbox text) ],
+ },
+
{
'key' => 'previous_balance-summary_only',
'section' => 'invoicing',
'type' => 'checkbox',
},
+ {
+ 'key' => 'balance_due_below_line',
+ 'section' => 'invoicing',
+ 'description' => 'Place the balance due message below a line. Only meaningful when when invoice_sections is false.',
+ 'type' => 'checkbox',
+ },
+
{
'key' => 'usps_webtools-userid',
'section' => 'UI',
'type' => 'checkbox',
},
+ {
+ 'key' => 'disable_settings_changes',
+ 'section' => '',
+ 'description' => 'Disable all settings changes, for demos, except for the usernames given in the comma-separated list.',
+ 'type' => [qw( checkbox text )],
+ },
+
{
'key' => 'cust_main-edit_agent_custid',
'section' => 'UI',
'type' => 'checkbox',
},
+ {
+ 'key' => 'svc_phone-domain',
+ 'section' => '',
+ 'description' => 'Track an optional domain association with each phone service.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'svc_phone-phone_name-max_length',
+ 'section' => '',
+ 'description' => 'Maximum length of the phone service "Name" field (svc_phone.phone_name). Sometimes useful to limit this (to 15?) when exporting as Caller ID data.',
+ 'type' => 'text',
+ },
+
{
'key' => 'default_phone_countrycode',
'section' => '',
'type' => 'text',
},
+ {
+ 'key' => 'cdr-charged_party-field',
+ 'section' => '',
+ 'description' => 'Set the charged_party field of CDRs to this field.',
+ 'type' => 'select-sub',
+ 'options_sub' => sub { my $fields = FS::cdr->table_info->{'fields'};
+ map { $_ => $fields->{$_}||$_ }
+ grep { $_ !~ /^(acctid|charged_party)$/ }
+ FS::Schema::dbdef->table('cdr')->columns;
+ },
+ 'option_sub' => sub { my $f = shift;
+ FS::cdr->table_info->{'fields'}{$f} || $f;
+ },
+ },
+
+ #probably deprecate in favor of cdr-charged_party-field above
{
'key' => 'cdr-charged_party-accountcode',
'section' => '',
'type' => 'text',
},
+ {
+ 'key' => 'mc-outbound_packages',
+ 'section' => '',
+ 'description' => "Don't use this.",
+ 'type' => 'select-part_pkg',
+ 'multiple' => 1,
+ },
+
{
'key' => 'disable-cust-pkg_class',
'section' => 'UI',
'type' => 'checkbox',
},
+ {
+ 'key' => 'svc_domain-edit_domain',
+ 'section' => '',
+ 'description' => 'Enable domain renaming',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'enable_legacy_prepaid_income',
+ 'section' => '',
+ 'description' => "Enable legacy prepaid income reporting. Only useful when you have imported pre-Freeside packages with longer-than-monthly duration, and need to do prepaid income reporting on them before they've been invoiced the first time.",
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'cust_main-exports',
+ 'section' => '',
+ 'description' => 'Export(s) to call on cust_main insert, modification and deletion.',
+ 'type' => 'select-sub',
+ 'multiple' => 1,
+ 'options_sub' => sub {
+ require FS::Record;
+ require FS::part_export;
+ my @part_export =
+ map { qsearch( 'part_export', {exporttype => $_ } ) }
+ keys %{FS::part_export::export_info('cust_main')};
+ map { $_->exportnum => $_->exporttype.' to '.$_->machine } @part_export;
+ },
+ 'option_sub' => sub {
+ require FS::Record;
+ require FS::part_export;
+ my $part_export = FS::Record::qsearchs(
+ 'part_export', { 'exportnum' => shift }
+ );
+ $part_export
+ ? $part_export->exporttype.' to '.$part_export->machine
+ : '';
+ },
+ },
+
{ key => "apacheroot", section => "deprecated", description => "<b>DEPRECATED</b>", type => "text" },
{ key => "apachemachine", section => "deprecated", description => "<b>DEPRECATED</b>", type => "text" },
{ key => "apachemachines", section => "deprecated", description => "<b>DEPRECATED</b>", type => "text" },