From f5246a149f9314649e85b20837b0b986d87a56ea Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 15 Dec 2006 08:37:15 +0000 Subject: [PATCH] add a quick tool for adding states to old databases --- FS/FS/Setup.pm | 48 ++++++++++++++++++++++++++++-------------------- bin/expand-country | 29 +++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 20 deletions(-) create mode 100755 bin/expand-country 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"; +} + -- 2.11.0