X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FSetup.pm;h=f8c59c5da90ecc36d6521dc563532c28236dc2cd;hb=03ceab71dad1e5eb366865d304e5e459cc905ce4;hp=58fba6b94b5d221c9faf1c3041260940262ae615;hpb=7b586e45d966b42a1a7bed8e953980d9d082a9cd;p=freeside.git diff --git a/FS/FS/Setup.pm b/FS/FS/Setup.pm index 58fba6b94..f8c59c5da 100644 --- a/FS/FS/Setup.pm +++ b/FS/FS/Setup.pm @@ -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); @@ -61,30 +63,11 @@ sub create_initial_data { sub populate_locales { use Locale::Country; - use Locale::SubCountry; use FS::cust_main_county; #cust_main_county foreach my $country ( sort map uc($_), all_country_codes ) { - - my $subcountry = eval { new Locale::SubCountry($country) }; - my @states = $subcountry ? $subcountry->all_codes : undef; - - if ( !scalar(@states) || ( scalar(@states)==1 && !defined($states[0]) ) ) { - - _add_locale( 'country'=>$country ); - - } else { - - if ( $states[0] =~ /^(\d+|\w)$/ ) { - @states = map $subcountry->full_name($_), @states - } - - foreach my $state ( @states ) { - _add_locale( 'country'=>$country, 'state'=>$state); - } - - } + _add_country($country); } } @@ -111,12 +94,51 @@ sub populate_addl_locales { } +sub _add_country { + + use Locale::SubCountry; + + my( $country ) = shift; + + my $subcountry = eval { new Locale::SubCountry($country) }; + my @states = $subcountry ? $subcountry->all_codes : undef; + + if ( !scalar(@states) || ( scalar(@states)==1 && !defined($states[0]) ) ) { + + _add_locale( 'country'=>$country ); + + } else { + + if ( $states[0] =~ /^(\d+|\w)$/ ) { + @states = map $subcountry->full_name($_), @states + } + + foreach my $state ( @states ) { + _add_locale( 'country'=>$country, 'state'=>$state); + } + + } + +} + sub _add_locale { my $cust_main_county = new FS::cust_main_county( { 'tax'=>0, @_ }); my $error = $cust_main_county->insert; 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 = @_; @@ -124,18 +146,29 @@ sub populate_initial_data { foreach my $table ( keys %$data ) { + #warn "popuilating $table\n"; + my $class = "FS::$table"; eval "use $class;"; die $@ if $@; + $class->_populate_initial_data(%opt) + if $class->can('_populate_inital_data'); + my @records = @{ $data->{$table} }; foreach my $record ( @records ) { + my $args = delete($record->{'_insert_args'}) || []; my $object = $class->new( $record ); my $error = $object->insert( @$args ); die "error inserting record into $table: $error\n" if $error; + + #my $pkey = $object->primary_key; + #my $pkeyvalue = $object->$pkey(); + #warn " inserted $pkeyvalue\n"; + } } @@ -153,51 +186,55 @@ sub initial_data { { 'groupname' => 'Superuser' }, ], - #billing events - 'part_bill_event' => [ - { 'payby' => 'CARD', - 'event' => 'Batch card', - 'seconds' => 0, - 'eventcode' => '$cust_bill->batch_card(%options);', - 'weight' => 40, - 'plan' => 'batch-card', - }, - { 'payby' => 'BILL', - 'event' => 'Send invoice', - 'seconds' => 0, - 'eventcode' => '$cust_bill->send();', - 'weight' => 50, - 'plan' => 'send', - }, - { 'payby' => 'DCRD', - 'event' => 'Send invoice', - 'seconds' => 0, - 'eventcode' => '$cust_bill->send();', - 'weight' => 50, - 'plan' => 'send', - }, - { 'payby' => 'DCHK', - 'event' => 'Send invoice', - 'seconds' => 0, - 'eventcode' => '$cust_bill->send();', - 'weight' => 50, - 'plan' => 'send', - }, - { 'payby' => 'DCLN', - 'event' => 'Suspend', - 'seconds' => 0, - 'eventcode' => '$cust_bill->suspend();', - 'weight' => 40, - 'plan' => 'suspend', - }, - #{ 'payby' => 'DCLN', - # 'event' => 'Retriable', - # 'seconds' => 0, - # 'eventcode' => '$cust_bill_event->retriable();', - # 'weight' => 60, - # 'plan' => 'retriable', - #}, - ], + #reason types + 'reason_type' => [], + +#XXX need default new-style billing events +# #billing events +# 'part_bill_event' => [ +# { 'payby' => 'CARD', +# 'event' => 'Batch card', +# 'seconds' => 0, +# 'eventcode' => '$cust_bill->batch_card(%options);', +# 'weight' => 40, +# 'plan' => 'batch-card', +# }, +# { 'payby' => 'BILL', +# 'event' => 'Send invoice', +# 'seconds' => 0, +# 'eventcode' => '$cust_bill->send();', +# 'weight' => 50, +# 'plan' => 'send', +# }, +# { 'payby' => 'DCRD', +# 'event' => 'Send invoice', +# 'seconds' => 0, +# 'eventcode' => '$cust_bill->send();', +# 'weight' => 50, +# 'plan' => 'send', +# }, +# { 'payby' => 'DCHK', +# 'event' => 'Send invoice', +# 'seconds' => 0, +# 'eventcode' => '$cust_bill->send();', +# 'weight' => 50, +# 'plan' => 'send', +# }, +# { 'payby' => 'DCLN', +# 'event' => 'Suspend', +# 'seconds' => 0, +# 'eventcode' => '$cust_bill->suspend();', +# 'weight' => 40, +# 'plan' => 'suspend', +# }, +# #{ 'payby' => 'DCLN', +# # 'event' => 'Retriable', +# # 'seconds' => 0, +# # 'eventcode' => '$cust_bill_event->retriable();', +# # 'weight' => 60, +# # 'plan' => 'retriable', +# #}, +# ], #you must create a service definition. An example of a service definition #would be a dial-up account or a domain. First, it is necessary to create a @@ -237,7 +274,7 @@ sub initial_data { #which would only sell regular packages of services. Click on View/Edit #agent types and Add a new agent type. 'agent_type' => [ - { 'atype' => 'internal' }, + { 'atype' => 'Internal' }, ], #Allow this agent type to sell the package you created above. @@ -311,7 +348,12 @@ sub initial_data { #not yet.... - #) + #usage classes + 'usage_class' => [], + + #phone types + 'phone_type' => [], + ; \%hash; @@ -323,7 +365,7 @@ sub populate_access { use FS::AccessRight; use FS::access_right; - foreach my $rightname ( FS::AccessRight->rights ) { + foreach my $rightname ( FS::AccessRight->default_superuser_rights ) { my $access_right = new FS::access_right { 'righttype' => 'FS::access_group', 'rightobjnum' => 1, #$supergroup->groupnum, @@ -428,6 +470,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', }, @@ -467,6 +513,18 @@ sub msgcat_messages { 'en_US' => 'Title', }, + 'stateid' => { + 'en_US' => 'Driver\'s License', + }, + + 'stateid_state' => { + 'en_US' => 'Driver\'s License State', + }, + + 'invalid_domain' => { + 'en_US' => 'Invalid domain', + }, + ); }