unused_credit flag for cancellation reasons, #27911
[freeside.git] / FS / FS / Conf.pm
index ddbdc29..8fac978 100644 (file)
@@ -779,6 +779,11 @@ sub reason_type_options {
   }
 }
 
+my $validate_email = sub { $_[0] =~
+                             /^[^@]+\@[[:alnum:]-]+(\.[[:alnum:]-]+)+$/
+                             ? '' : 'Invalid email address';
+                         };
+
 #Billing (81 items)
 #Invoicing (50 items)
 #UI (69 items)
@@ -1271,10 +1276,7 @@ sub reason_type_options {
     'description' => 'Return address on email invoices (address only, see invoice_from_name)',
     'type'        => 'text',
     'per_agent'   => 1,
-    'validate'    => sub { $_[0] =~
-                             /^[^@]+\@[[:alnum:]-]+(\.[[:alnum:]-]+)+$/
-                             ? '' : 'Invalid email address';
-                         }
+    'validate'    => $validate_email,
   },
 
   {
@@ -1381,7 +1383,7 @@ sub reason_type_options {
   },
 
   {
-    'key'         => 'invoicehtmlwatermark',
+    'key'         => 'invoice_htmlwatermark',
     'section'     => 'invoicing',
     'description' => 'Watermark for HTML invoices. Appears in a semitransparent positioned DIV overlaid on the main invoice container.',
     'type'        => 'textarea',
@@ -1577,7 +1579,7 @@ and customer address. Include units.',
   },
 
   {
-    'key'         => 'invoicelatexwatermark',
+    'key'         => 'invoice_latexwatermark',
     'section'     => 'invoicing',
     'description' => 'Watermark for LaTeX invoices. See "texdoc background" for information on what this can contain. The content itself should be enclosed in braces, optionally followed by a comma and any formatting options.',
     'type'        => 'textarea',
@@ -1648,7 +1650,7 @@ and customer address. Include units.',
     'type'        => 'select',
     'per_agent'   => 1,
     'select_enum' => [ 
-      '', 'Payable upon receipt', 'Net 0', 'Net 3', 'Net 5', 'Net 9', 'Net 10', 'Net 14', 
+      '', 'Payable upon receipt', 'Net 0', 'Net 3', 'Net 5', 'Net 7', 'Net 9', 'Net 10', 'Net 14', 
       'Net 15', 'Net 18', 'Net 20', 'Net 21', 'Net 25', 'Net 30', 'Net 45', 
       'Net 60', 'Net 90'
     ], },
@@ -1799,6 +1801,13 @@ and customer address. Include units.',
     'per_agent'   => 1,
   },
 
+  {
+    'key'         => 'refund_receipt_msgnum',
+    'section'     => 'notification',
+    'description' => 'Template to use for manual refund receipts.',
+    %msg_template_options,
+  },
+  
   {
     'key'         => 'trigger_export_insert_on_payment',
     'section'     => 'billing',
@@ -2781,6 +2790,14 @@ and customer address. Include units.',
     'type'        => 'text',
   },
 
+  {
+    'key'         => 'dump-email_to',
+    'section'     => '',
+    'description' => "Optional email address to send success/failure message for database dumps.",
+    'type'        => 'text',
+    'validate'    => $validate_email,
+  },
+
   {
     'key'         => 'users-allow_comp',
     'section'     => 'deprecated',
@@ -3959,6 +3976,13 @@ and customer address. Include units.',
     'type'        => 'textarea',
   },
 
+  {
+    'key'         => 'batchconfig-RBC-login',
+    'section'     => 'billing',
+    'description' => 'FTPS login for uploading Royal Bank of Canada batches. Two lines: 1. username, 2. password. If not supplied, batches can still be created but not automatically uploaded.',
+    'type'        => 'textarea',
+  },
+
   {
     'key'         => 'batchconfig-td_eft1464',
     'section'     => 'billing',
@@ -3995,6 +4019,13 @@ and customer address. Include units.',
     'type'        => 'text',
   },
 
+  {
+    'key'         => 'batchconfig-nacha-origin_name',
+    'section'     => 'billing',
+    'description' => 'Configuration for NACHA batching, Origin name (defaults to company name, but sometimes bank name is needed instead.)',
+    'type'        => 'text',
+  },
+
   {
     'key'         => 'batch-manual_approval',
     'section'     => 'billing',
@@ -4220,6 +4251,13 @@ and customer address. Include units.',
     'type'        => 'checkbox',
   },
 
+  {
+    'key'         => 'password-no_reuse',
+    'section'     => 'password',
+    'description' => 'Minimum number of password changes before a password can be reused. By default, passwords can be reused without restriction.',
+    'type'        => 'text',
+  },
+
   {
     'key'         => 'datavolume-forcemegabytes',
     'section'     => 'UI',
@@ -4344,9 +4382,10 @@ and customer address. Include units.',
     reason_type_options('R'),
   },
 
+  # was only used to negate invoices during signup when card was declined, now we just void
   {
     'key'         => 'signup_credit_type',
-    'section'     => 'billing', #self-service?
+    'section'     => 'deprecated', #self-service?
     'description' => 'The group to use for new, automatically generated credit reasons resulting from signup and self-service declines.',
     reason_type_options('R'),
   },
@@ -4390,7 +4429,7 @@ and customer address. Include units.',
   {
     'key'         => 'disable_previous_balance',
     'section'     => 'invoicing',
-    'description' => 'Disable inclusion of previous balance, payment, and credit lines on invoices.',
+    'description' => 'Show new charges only; do not list previous invoices, payments, or credits on the invoice.',
     'type'        => 'checkbox',
     'per_agent'   => 1,
   },
@@ -4552,6 +4591,13 @@ and customer address. Include units.',
     'type'        => 'checkbox',
   },
 
+  {
+    'key'         => 'cust_main-no_city_in_address',
+    'section'     => 'UI',
+    'description' => 'Turn off City for billing & shipping addresses',
+    'type'        => 'checkbox',
+  },
+
   {
     'key'         => 'census_year',
     'section'     => 'UI',
@@ -5346,6 +5392,13 @@ and customer address. Include units.',
                      ],
   },
 
+  {
+    'key'         => 'tax-round_per_line_item',
+    'section'     => 'billing',
+    'description' => 'Calculate tax and round to the nearest cent for each line item, rather than for the whole invoice.',
+    'type'        => 'checkbox',
+  },
+
   {
     'key'         => 'cust_main-default_view',
     'section'     => 'UI',
@@ -5740,7 +5793,6 @@ and customer address. Include units.',
     'multiple'    => 1,
     'options_sub' => sub { 
       map { $_ => FS::Locales->description($_) }
-      grep { $_ ne 'en_US' } 
       FS::Locales->locales;
     },
     'option_sub'  => sub { FS::Locales->description(shift) },
@@ -5854,6 +5906,20 @@ and customer address. Include units.',
     'type'        => 'checkbox',
   },
 
+  {
+    'key'         => 'selfservice-enable_payment_without_balance',
+    'section'     => 'self-service',
+    'description' => 'Allow selfservice customers to make payments even if balance is zero or below (resulting in an unapplied payment and negative balance.)',
+    'type'        => 'checkbox',
+  },
+
+  {
+    'key'         => 'selfservice-announcement',
+    'section'     => 'self-service',
+    'description' => 'HTML announcement to display to all authenticated users on account overview page',
+    'type'        => 'textarea',
+  },
+
   {
     'key'         => 'logout-timeout',
     'section'     => 'UI',
@@ -6034,6 +6100,15 @@ and customer address. Include units.',
   { key => "vonage-password", section => "deprecated", description => "<b>DEPRECATED</b>", type => "text" },
   { key => "vonage-fromnumber", section => "deprecated", description => "<b>DEPRECATED</b>", type => "text" },
 
+  # for internal use only; test databases should declare this option and
+  # everyone else should pretend it doesn't exist
+  #{
+  #  'key'         => 'no_random_ids',
+  #  'section'     => '',
+  #  'description' => 'Replace random identifiers in UI code with a static string, for repeatable testing. Don\'t use in production.',
+  #  'type'        => 'checkbox',
+  #},
+
 );
 
 1;