diff options
Diffstat (limited to 'FS/FS/Setup.pm')
-rw-r--r-- | FS/FS/Setup.pm | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/FS/FS/Setup.pm b/FS/FS/Setup.pm index 58fba6b94..4864cfea8 100644 --- a/FS/FS/Setup.pm +++ b/FS/FS/Setup.pm @@ -61,30 +61,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,6 +92,33 @@ 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; |