add skip_dcontext_suffix to skip CDRs with dcontext ending in a definable string...
[freeside.git] / FS / FS / Setup.pm
index e27b66f..0c3226a 100644 (file)
@@ -1,20 +1,33 @@
 package FS::Setup;
+use base qw( Exporter );
 
 use strict;
-use vars qw( @ISA @EXPORT_OK );
-use Exporter;
+use vars qw( @EXPORT_OK );
 #use Tie::DxHash;
 use Tie::IxHash;
 use Crypt::OpenSSL::RSA;
 use FS::UID qw( dbh driver_name );
-use FS::Record;
+#use FS::Record;
 
 use FS::svc_domain;
 $FS::svc_domain::whois_hack = 1;
 $FS::svc_domain::whois_hack = 1;
 
-@ISA = qw( Exporter );
-@EXPORT_OK = qw( create_initial_data enable_encryption );
+#populate_locales
+use Locale::Country;
+use Locale::SubCountry 1.42;
+use FS::cust_main_county;
+
+#populate_access
+use FS::AccessRight;
+use FS::access_right;
+use FS::access_groupagent;
+
+#populate_msgcat
+use FS::Record qw(qsearch);
+use FS::msgcat;
+
+@EXPORT_OK = qw( create_initial_data enable_encryption enable_banned_pay_pad );
 
 =head1 NAME
 
@@ -58,6 +71,8 @@ sub create_initial_data {
   populate_numbering();
 
   enable_encryption();
+
+  enable_banned_pay_pad();
   
   if ( $oldAutoCommit ) {
     dbh->commit or die dbh->errstr;
@@ -86,6 +101,25 @@ sub enable_encryption {
 
 }
 
+sub enable_banned_pay_pad {
+
+  eval "use FS::Conf";
+  die $@ if $@;
+
+  my $conf = new FS::Conf;
+
+  die "banned_pay-pad already in place"
+    if length( $conf->config('banned_pay-pad') );
+
+  #arbitrary but good enough... all we need is *some* per-site random padding
+  my @pw_set = ( 'a'..'z', 'A'..'Z', '0'..'9', '(', ')', '#', '.', ',' );
+
+  $conf->set('banned_pay-pad',
+    join('', map($pw_set[ int(rand($#pw_set)) ], (0..15) ) )
+  );
+
+}
+
 sub populate_numbering {
   eval "use FS::lata_Data;"; # this automatically populates the lata table, if unpopulated
   eval "use FS::msa_Data;"; # this automatically populates the msa table, if unpopulated
@@ -93,9 +127,6 @@ sub populate_numbering {
 
 sub populate_locales {
 
-  use Locale::Country;
-  use FS::cust_main_county;
-
   #cust_main_county
   foreach my $country ( sort map uc($_), all_country_codes ) {
     _add_country($country);
@@ -127,8 +158,6 @@ sub populate_addl_locales {
 
 sub _add_country {
 
-  use Locale::SubCountry 1.42;
-
   my( $country ) = shift;
 
   my $subcountry = eval { new Locale::SubCountry($country) };
@@ -355,13 +384,11 @@ sub initial_data {
     #with billing type Complimentary. Leave the First package dropdown set to
     #(none).
     'cust_main' => [
-      { 'agentnum'  => 1, #XXX
-        'refnum'    => 1, #XXX
-        'first'     => 'System',
-        'last'      => 'Accounts',
-        'payby'     => 'COMP',
-        'payinfo'   => 'system', #or something
-        'paydate'   => '1/2037',
+      { 'agentnum'      => 1, #XXX
+        'refnum'        => 1, #XXX
+        'first'         => 'System',
+        'last'          => 'Accounts',
+        'complimentary' => 'Y',
         'bill_location' => $cust_location,
         'ship_location' => $cust_location,
       },
@@ -400,6 +427,9 @@ sub initial_data {
     #phone types
     'phone_type' => [],
 
+    #message templates
+    'msg_template' => [],
+
   ;
 
   \%hash;
@@ -408,9 +438,6 @@ sub initial_data {
 
 sub populate_access {
 
-  use FS::AccessRight;
-  use FS::access_right;
-
   foreach my $rightname ( FS::AccessRight->default_superuser_rights ) {
     my $access_right = new FS::access_right {
       'righttype'   => 'FS::access_group',
@@ -434,9 +461,6 @@ sub populate_access {
 
 sub populate_msgcat {
 
-  use FS::Record qw(qsearch);
-  use FS::msgcat;
-
   foreach my $del_msgcat ( qsearch('msgcat', {}) ) {
     my $error = $del_msgcat->delete;
     die $error if $error;