summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2006-12-15 08:37:15 +0000
committerivan <ivan>2006-12-15 08:37:15 +0000
commitf5246a149f9314649e85b20837b0b986d87a56ea (patch)
tree80cf1add41e62486b41b98f3fedb1de9a499721c
parent6837ca2c7a45033a566238bb3e5f3f262d85fc0e (diff)
add a quick tool for adding states to old databases
-rw-r--r--FS/FS/Setup.pm48
-rwxr-xr-xbin/expand-country29
2 files changed, 57 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;
diff --git a/bin/expand-country b/bin/expand-country
new file mode 100755
index 000000000..c6f2a1f09
--- /dev/null
+++ b/bin/expand-country
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -w
+
+use strict;
+use Locale::SubCountry;
+use FS::UID qw(adminsuidsetup);
+use FS::Setup;
+use FS::Record qw(qsearch);
+use FS::cust_main_county;
+
+my $user = shift or die &usage;
+my $country = shift or die &usage;
+
+adminsuidsetup($user);
+
+my @country = qsearch('cust_main_county', { 'country' => $country } );
+die "unknown country $country" unless (@country);
+#die "$country already expanded" if scalar(@country) > 1;
+
+foreach my $cust_main_county ( @country ) {
+ my $error = $cust_main_county->delete;
+ die $error if $error;
+}
+
+FS::Setup::_add_country($country);
+
+sub usage {
+ die "Usage:\n\n expand-country user countrycode\n";
+}
+