unique checking for svc_phone like svc_acct, closes: RT#4204 (also a few lines of...
[freeside.git] / FS / FS / Setup.pm
index 55984d4..3c8e817 100644 (file)
@@ -5,7 +5,7 @@ use vars qw( @ISA @EXPORT_OK );
 use Exporter;
 #use Tie::DxHash;
 use Tie::IxHash;
-use FS::UID qw( dbh );
+use FS::UID qw( dbh driver_name );
 use FS::Record;
 
 use FS::svc_domain;
@@ -45,6 +45,8 @@ sub create_initial_data {
 
   populate_locales();
 
+  populate_duplock();
+
   #initial_data data
   populate_initial_data(%opt);
 
@@ -125,6 +127,18 @@ sub _add_locale {
   die $error if $error;
 }
 
+sub populate_duplock {
+
+  return unless driver_name =~ /^mysql/i;
+
+  my $sth = dbh->prepare(
+    "INSERT INTO duplicate_lock ( lockname ) VALUES ( 'svc_acct' )"
+  ) or die dbh->errstr;
+
+  $sth->execute or die $sth->errstr;
+
+}
+
 sub populate_initial_data {
   my %opt = @_;
 
@@ -136,6 +150,9 @@ sub populate_initial_data {
     eval "use $class;";
     die $@ if $@;
 
+    $class->_populate_initial_data(%opt)
+      if $class->can('_populate_inital_data');
+
     my @records = @{ $data->{$table} };
 
     foreach my $record ( @records ) {
@@ -161,6 +178,9 @@ sub initial_data {
       { 'groupname' => 'Superuser' },
     ],
 
+    #reason types
+    'reason_type' => [],
+
 #XXX need default new-style billing events
 #    #billing events
 #    'part_bill_event' => [
@@ -321,6 +341,10 @@ sub initial_data {
     #not yet....
 
   #)
+
+    #usage classes
+    'usage_class' => [],
+
   ;
 
   \%hash;
@@ -437,6 +461,10 @@ sub msgcat_messages {
       'en_US' => 'Username in use',
     },
 
+    'phonenum_in_use' => {
+      'en_US' => 'Phone number in use',
+    },
+
     'illegal_email_invoice_address' => {
       'en_US' => 'Illegal email invoice address',
     },
@@ -484,6 +512,10 @@ sub msgcat_messages {
       'en_US' => 'Driver\'s License State',
     },
 
+    'invalid_domain' => {
+      'en_US' => 'Invalid domain',
+    },
+
   );
 }