diff options
-rw-r--r-- | FS/FS/Mason.pm | 1 | ||||
-rwxr-xr-x | bin/cust_main.restore-paymask | 31 | ||||
-rw-r--r-- | httemplate/browse/rate_region.html | 23 |
3 files changed, 52 insertions, 3 deletions
diff --git a/FS/FS/Mason.pm b/FS/FS/Mason.pm index 89140cac1..da2f5828a 100644 --- a/FS/FS/Mason.pm +++ b/FS/FS/Mason.pm @@ -118,6 +118,7 @@ if ( -e $addl_handler_use_file ) { #use FS::geocode_Mixin; #for its code2country use Locale::Currency; use Locale::Currency::Format; + use Number::Phone::Country qw( noexport ); use Business::US::USPS::WebTools::AddressStandardization; use Geo::GoogleEarth::Pluggable; use LWP::UserAgent; diff --git a/bin/cust_main.restore-paymask b/bin/cust_main.restore-paymask new file mode 100755 index 000000000..c6c8a75ec --- /dev/null +++ b/bin/cust_main.restore-paymask @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +use strict; +use FS::UID qw( adminsuidsetup ); +use FS::Record qw( qsearch dbh ); + +adminsuidsetup shift + or die "Usage: cust_main.restore-paymask freeside_username\n"; + +foreach my $cust_main ( + qsearch({ 'table' => 'cust_main', + 'extra_sql' => q[WHERE payby IN ('CARD','DCRD') AND paymask IS NULL OR paymask = 'N/A (tokenized)'], + }) +) { + + my $custnum = $cust_main->custnum; + + my $paymask = FS::Record->scalar_sql(qq[ + SELECT paymask FROM h_cust_main WHERE custnum = $custnum AND history_action = 'replace_old' AND paymask IS NOT NULL AND paymask != 'N/A (tokenized)' ORDER BY historynum desc LIMIT 1 + ]); + + #dbh->do( + print + qq[UPDATE cust_main SET paymask = '$paymask' WHERE custnum = $custnum;] + ."\n" + ; + + #print "$custnum: $paymask\n"; +} + +1; diff --git a/httemplate/browse/rate_region.html b/httemplate/browse/rate_region.html index bbe213693..b872455ae 100644 --- a/httemplate/browse/rate_region.html +++ b/httemplate/browse/rate_region.html @@ -74,10 +74,9 @@ my @links = ( ($link) x 4 ); my @align = ( 'right', 'left', 'right', 'left' ); my @xls_format = ( ({ locked=>1, bg_color=>22 }) x 4 ); -$cgi->param('dummy', 1); my $countrycode_filter_change = "window.location = '". - $cgi->self_url. ";countrycode=' + this.options[this.selectedIndex].value;"; + $cgi->url. "?countrycode=' + this.options[this.selectedIndex].value;"; my $countrycode = ''; my $extra_sql = $group_sql; @@ -128,13 +127,31 @@ if ( $cgi->param('show_rates') ) { } +sub countrycode2country { + my $cc = shift; + + #exceptions to the below + return 'North America (NANPA)' if $cc eq '1'; + #return 'Algeria' if $cc eq '214'; + return 'Ascension Island' if $cc eq '247'; + return 'Satellite / Maritime / Universal Personal' if $cc eq '87'; #? or 870.. + return 'Inmarsat' if $cc eq '870'; + return 'Global Mobile Satellite System' if $cc eq '881'; + return 'International Networks' if $cc eq '882'; + return 'International Networks' if $cc eq '883'; + + code2country( + Number::Phone::Country::phone2country("+$cc") + ); +} + my $html_posttotal = '(show country code: '. qq(<SELECT NAME="countrycode" onChange="$countrycode_filter_change">). qq(<OPTION VALUE="">(all)). join("\n", map { qq(<OPTION VALUE="$_"). ($_ eq $countrycode ? ' SELECTED' : '' ). - ">$_", + ">+$_ - ". encode_entities( countrycode2country($_) ), } FS::rate_prefix->all_countrycodes ). |