From ef834d58bfd2ce38c8bea73262c8091a5d88388f Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 18 Nov 1998 09:01:44 +0000 Subject: [PATCH] i18n! i18n! --- CREDITS | 15 +++++-- TODO | 16 +++----- bin/fs-setup | 53 +++++++++++++++++++++--- htdocs/browse/cust_main_county.cgi | 54 +++++++++++++++++-------- htdocs/docs/schema.html | 8 ++++ htdocs/docs/upgrade3.html | 16 ++++++++ htdocs/edit/cust_main.cgi | 12 +++--- htdocs/edit/cust_main_county-expand.cgi | 28 +++++++------ htdocs/edit/cust_main_county.cgi | 34 ++++++++++------ htdocs/edit/process/cust_main_county-expand.cgi | 49 +++++++++++++--------- htdocs/edit/process/cust_main_county.cgi | 24 ++++++----- htdocs/index.html | 4 +- site_perl/cust_main.pm | 32 +++++++++------ site_perl/cust_main_county.pm | 15 +++++-- site_perl/cust_pay_batch.pm | 15 ++++--- 15 files changed, 251 insertions(+), 124 deletions(-) diff --git a/CREDITS b/CREDITS index 87c79a779..4e13c72ed 100644 --- a/CREDITS +++ b/CREDITS @@ -1,14 +1,21 @@ Thanks to Matt Simerson of MichWeb Inc. for documentation -and pre-release testing. Without his help the documentation in the first +and pre-release testing. Without his help the documentation in 1.0.0 release would have consisted of a single screenfull of text. -# Steve Cleff did the default background image and is also -# the creator of Freeside's mascot, Snakeman. +Steve Cleff did the default background image in 1.0.x and +is also the creator of Freeside's elusive mascot, Snakeman. -Jerry St. Pierre did the "SISD" graphic. +Jerry St. Pierre did the "SISD" graphic used in +1.0.x and most of 1.1.x. Brian McCane? contributed PostgreSQL support, HTML style enhancements and many, many bugfixes. +CompleteHOST, Inc. (http://www.completehost.com) funded the development of the +following Freeside features: + - Multiple, separate databases and configurations on one box. + - Per-customer pricing (packages) + - Integration with Radiator, http://www.open.com.au/radiator + - Integration with NetSurfer NetKit ISP, http://www.netsurfer.com/ Everything else is my (Ivan Kohler ) fault. diff --git a/TODO b/TODO index 1d21d81ad..0e70ba453 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,4 @@ -$Id: TODO,v 1.13 1998-11-13 09:56:33 ivan Exp $ +$Id: TODO,v 1.14 1998-11-18 09:01:30 ivan Exp $ If you are interested in helping with any of these, please join the mailing list (send a blank message to ivan-freeside-subscribe@sisd.com) to avoid @@ -6,6 +6,8 @@ duplication of effort. -- 1.1.x -- +test and document libapache-dbi-logger (woo!) + remove whois_hack set to 1 for svc_domain.pm? add all known registries and whois accordingly. @@ -254,22 +256,14 @@ write batch senders and batch parsers for the different credit card processors people use/ More CC processors/methods. -In FS::Record, the counter dir should have .datasrc appended to it like the -dbdef does, which should place all the (most of) the DB metadata in unique -files and let me run concurrent .datasrc's. Maybe do something similar for -user, password and datasrc itself? (or something to get the out of the source -files) and then we're set. (secrets file also needs .datasrc appended, or maybe -"/var/spool/freeside".datasrc - you should be able to fiddle the setup date in cust_pkg. (at least initially) -cych v3 and v2 support - delete options in administration section write a generic batch senders and batch parsers. -need a way to override svc_acct export on a per-machine basis; just use config files based on machine name i suppose; document that. +need a way to override svc_acct export on a per-machine basis; just use config files based on machine name i suppose; document that. (no, import desync_hosts +type stuff from cerkit) you should be able to get column types as a method against an FS::Record object as well as dbdef->table($table)->column($column)->type diff --git a/bin/fs-setup b/bin/fs-setup index aab24b7e1..b3fc5c5a0 100755 --- a/bin/fs-setup +++ b/bin/fs-setup @@ -32,7 +32,10 @@ # fix radius attributes ivan@sisd.com 98-sep-27 # # $Log: fs-setup,v $ -# Revision 1.6 1998-11-15 13:18:02 ivan +# Revision 1.7 1998-11-18 09:01:31 ivan +# i18n! i18n! +# +# Revision 1.6 1998/11/15 13:18:02 ivan # remove debugging # # Revision 1.5 1998/11/15 09:43:03 ivan @@ -191,6 +194,8 @@ foreach ($dbdef->tables) { #not really sample data (and shouldn't default to US) #cust_main_county + +#USPS state codes foreach ( qw( AL AK AS AZ AR CA CO CT DC DE FM FL GA GU HI ID IL IN IA KS KY LA ME MH MD MA MI MN MS MO MT NC ND NE NH NJ NM NV NY MP OH OK OR PA PW PR RI @@ -199,6 +204,29 @@ SC SD TN TX TT UT VT VI VA WA WV WI WY AE AA AP my($cust_main_county)=create FS::cust_main_county({ 'state' => $_, 'tax' => 0, + 'country' => 'US', + }); + my($error); + $error=$cust_main_county->insert; + die $error if $error; +} + +#ISO 2-letter country codes (same as country TLDs) except US +foreach ( qw( +AF AL DZ AS AD AO AI AQ AG AR AM AW AU AT AZ BS BH BD BB BY BE BZ BJ BM BT BO +BA BW BV BR IO BN BG BF BI KH CM CA CV KY CF TD CL CN CX CC CO KM CG CK CR CI +HR CU CY CZ DK DJ DM DO TP EC EG SV GQ ER EE ET FK FO FJ FI FR FX GF PF TF GA +GM GE DE GH GI GR GL GD GP GU GT GN GW GY HT HM HN HK HU IS IN ID IR IQ IE IL +IT JM JP JO KZ KE KI KP KR KW KG LA LV LB LS LR LY LI LT LU MO MK MG MW MY MV +ML MT MH MQ MR MU YT MX FM MD MC MN MS MA MZ MM NA NR NP NL AN NC NZ NI NE NG +NU NF MP NO OM PK PW PA PG PY PE PH PN PL PT PR QA RE RO RU RW KN LC VC WS SM +ST SA SN SC SL SG SK SI SB SO ZA GS ES LK SH PM SD SR SJ SZ SE CH SY TW TJ TZ +TH TG TK TO TT TN TR TM TC TV UG UA AE GB UM UY UZ VU VA VE VN VG VI WF EH +YE YU ZR ZM ZW +) ) { + my($cust_main_county)=create FS::cust_main_county({ + 'tax' => 0, + 'country' => $_, }); my($error); $error=$cust_main_county->insert; @@ -302,7 +330,9 @@ sub tables_hash_hack { 'columns' => [ 'custnum', 'int', '', '', 'agentnum', 'int', '', '', + 'titlenum', 'int', 'NULL', '', 'last', 'varchar', '', $char_d, + 'middle', 'varchar', 'NULL', $char_d, 'first', 'varchar', '', $char_d, 'ss', 'char', 'NULL', 11, 'company', 'varchar', 'NULL', $char_d, @@ -310,7 +340,7 @@ sub tables_hash_hack { 'address2', 'varchar', 'NULL', $char_d, 'city', 'varchar', '', $char_d, 'county', 'varchar', 'NULL', $char_d, - 'state', 'char', '', 2, + 'state', 'varchar', '', $char_d, 'zip', 'varchar', '', 10, 'country', 'char', '', 2, 'daytime', 'varchar', 'NULL', 20, @@ -330,13 +360,14 @@ sub tables_hash_hack { 'index' => [ ['last'], ], }, - 'cust_main_county' => { #county+state are checked off the cust_main_county - #table for validation and to provide a tax rate. - #add country? + 'cust_main_county' => { #county+state+country are checked off the + #cust_main_county for validation and to provide + # a tax rate. 'columns' => [ 'taxnum', 'int', '', '', - 'state', 'char', '', 2, #two letters max in US... elsewhere? + 'state', 'char', 'NULL', $char_d, 'county', 'varchar', 'NULL', $char_d, + 'country', 'char', '', 2, 'tax', 'real', '', '', #tax % ], 'primary_key' => 'taxnum', @@ -444,6 +475,16 @@ sub tables_hash_hack { 'index' => [ [] ], }, + 'part_title' => { + 'columns' => [ + 'titlenum', 'int', '', '', + 'title', 'varchar', '', $char_d, + ], + 'primary_key' => 'titlenum', + 'unique' => [ [] ], + 'index' => [ [] ], + }, + 'pkg_svc' => { 'columns' => [ 'pkgpart', 'int', '', '', diff --git a/htdocs/browse/cust_main_county.cgi b/htdocs/browse/cust_main_county.cgi index d615198c9..4defa574d 100755 --- a/htdocs/browse/cust_main_county.cgi +++ b/htdocs/browse/cust_main_county.cgi @@ -1,6 +1,6 @@ #!/usr/bin/perl -Tw # -# cust_main_county.cgi: browse cust_main_county +# $Id: cust_main_county.cgi,v 1.2 1998-11-18 09:01:34 ivan Exp $ # # ivan@sisd.com 97-dec-13 # @@ -8,26 +8,35 @@ # bmccane@maxbaud.net 98-apr-3 # # lose background, FS::CGI ivan@sisd.com 98-sep-2 +# +# $Log: cust_main_county.cgi,v $ +# Revision 1.2 1998-11-18 09:01:34 ivan +# i18n! i18n! +# use strict; -use CGI::Base; +use CGI; +use CGI::Carp qw(fatalsToBrowser); use FS::UID qw(cgisuidsetup swapuid); use FS::Record qw(qsearch qsearchs); -use FS::CGI qw(header menubar); +use FS::CGI qw(header menubar popurl table); +use FS::cust_main_county; -my($cgi) = new CGI::Base; -$cgi->get; +my($cgi) = new CGI; &cgisuidsetup($cgi); -SendHeaders(); # one guess. -print header("Tax Rate Listing", menubar( - 'Main Menu' => '../', - 'Edit tax rates' => "../edit/cust_main_county.cgi", +print $cgi->header, header("Tax Rate Listing", menubar( + 'Main Menu' => popurl(2), + 'Edit tax rates' => popurl(2). "/edit/cust_main_county.cgi", )),<Click on expand to specify tax rates by county. -

+ Click on expand country to specify a country's tax rates by state. +
Click on expand state to specify a state's tax rates by county. +

+END +print table, < + @@ -39,15 +48,26 @@ foreach $cust_main_county ( qsearch('cust_main_county',{}) ) { my($hashref)=$cust_main_county->hashref; print < - + END - - print ""; + print ""; print <$hashref->{tax}% diff --git a/htdocs/docs/schema.html b/htdocs/docs/schema.html index 5a296ec83..f7a9bc101 100644 --- a/htdocs/docs/schema.html +++ b/htdocs/docs/schema.html @@ -50,7 +50,9 @@
  • custnum - primary key
  • agentnum - agent
  • refnum - referral +
  • titlenum - title
  • first - name +
  • middle - name
  • last - name
  • ss - social security number
  • company @@ -75,6 +77,7 @@
  • taxnum - primary key
  • state
  • county +
  • country
  • tax - % rate
  • cust_pay - Payments @@ -155,6 +158,11 @@
  • table__field - Default or fixed value for field in table
  • table__field_flag - null, D or F +
  • part_title - Personal titles +
      +
    • titlenum - primary key +
    • title - personal title (`Dr.' or `Mr.') +
  • pkg_svc
    • pkgpart - Package definition diff --git a/htdocs/docs/upgrade3.html b/htdocs/docs/upgrade3.html index bfb717cfa..15066423e 100644 --- a/htdocs/docs/upgrade3.html +++ b/htdocs/docs/upgrade3.html @@ -12,5 +12,21 @@
    • Move /var/spool/freeside/dbdef.datasrc to /usr/local/etc/freeside/dbdef.datasrc.
    • Move /var/spool/freeside/counters to /usr/local/etc/freeside/counters.datasrc.
    • Move /var/spool/freeside/export to /usr/local/etc/freeside/export.datasrc. +
    • Apply the following changes to your database: +
      +ALTER TABLE cust_main ADD middle varchar(80) NULL;
      +ALTER TABLE cust_main ADD titlenum int NULL;
      +ALTER TABLE cust_main CHANGE state state varchar(80) NULL;
      +ALTER TABLE cust_main_county CHANGE state state varchar(80) NULL;
      +ALTER TABLE cust_main_county ADD country char(2);
      +UPDATE cust_main_county SET country = "US" where country IS NULL;
      +CREATE TABLE part_title (
      +   titlenum int NOT NULL,
      +   title varchar(80),
      +   PRIMARY KEY (titlenum)
      +);
      +
      +
    • Run bin/dbdef-create. This file uses MySQL-specific syntax. If you are r +unning a different database engine you will need to modify it slightly.
    • Copy or symlink htdocs and site_perl to the new copies. diff --git a/htdocs/edit/cust_main.cgi b/htdocs/edit/cust_main.cgi index 14556010c..fd36ab7d4 100755 --- a/htdocs/edit/cust_main.cgi +++ b/htdocs/edit/cust_main.cgi @@ -63,7 +63,6 @@ if ( $cgi->var('QUERY_STRING') =~ /^(\d+)$/ ) { #editing $custnum=''; $cust_main = create FS::cust_main ( {} ); $cust_main->setfield('otaker',&getotaker); - $cust_main->setfield('country','US'); $action='Add'; } @@ -130,21 +129,23 @@ Name (last) (first) Address -City State (county) State (county) / Country"; -my($zip,$country,$daytime,$night,$fax)=( +my($zip,$daytime,$night,$fax)=( $cust_main->zip, - $cust_main->country, $cust_main->daytime, $cust_main->night, $cust_main->fax, @@ -152,7 +153,6 @@ my($zip,$country,$daytime,$night,$fax)=( print < -Country: $country Phone (daytime) (night) (fax) diff --git a/htdocs/edit/cust_main_county-expand.cgi b/htdocs/edit/cust_main_county-expand.cgi index 59ff7043a..9b687993f 100755 --- a/htdocs/edit/cust_main_county-expand.cgi +++ b/htdocs/edit/cust_main_county-expand.cgi @@ -1,6 +1,6 @@ #!/usr/bin/perl -Tw # -# cust_main_county-expand.cgi: Expand a state into counties (output form) +# $Id: cust_main_county-expand.cgi,v 1.2 1998-11-18 09:01:38 ivan Exp $ # # ivan@sisd.com 97-dec-16 # @@ -8,39 +8,43 @@ # bmccane@maxbaud.net 98-apr-3 # # lose background, FS::CGI ivan@sisd.com 98-sep-2 +# +# $Log: cust_main_county-expand.cgi,v $ +# Revision 1.2 1998-11-18 09:01:38 ivan +# i18n! i18n! +# use strict; -use CGI::Base; +use CGI; use CGI::Carp qw(fatalsToBrowser); use FS::UID qw(cgisuidsetup); use FS::Record qw(qsearch qsearchs); -use FS::CGI qw(header menubar); +use FS::CGI qw(header menubar popurl); +use FS::cust_main_county; -my($cgi) = new CGI::Base; -$cgi->get; +my($cgi) = new CGI; &cgisuidsetup($cgi); -SendHeaders(); # one guess. - -$cgi->var('QUERY_STRING') =~ /^(\d+)$/ +my($query) = $cgi->keywords; +$query =~ /^(\d+)$/ or die "Illegal taxnum!"; my($taxnum)=$1; my($cust_main_county)=qsearchs('cust_main_county',{'taxnum'=>$taxnum}); die "Can't expand entry!" if $cust_main_county->getfield('county'); -print header("Tax Rate (expand state)", menubar( - 'Main Menu' => '../', +print $cgi->header, header("Tax Rate (expand)", menubar( + 'Main Menu' => popurl(2), )), < - Separate counties by + Separate by line (rumor has it broken on some browsers) or whitespace.
      -
      +
      diff --git a/htdocs/edit/cust_main_county.cgi b/htdocs/edit/cust_main_county.cgi index 904d58346..96574f0ef 100755 --- a/htdocs/edit/cust_main_county.cgi +++ b/htdocs/edit/cust_main_county.cgi @@ -1,6 +1,6 @@ #!/usr/bin/perl -Tw # -# cust_main_county.cgi: Edit tax rates (output form) +# $Id: cust_main_county.cgi,v 1.2 1998-11-18 09:01:39 ivan Exp $ # # ivan@sisd.com 97-dec-13-16 # @@ -9,27 +9,30 @@ # bmccane@maxbaud.net 98-apr-3 # # lose background, FS::CGI ivan@sisd.com 98-sep-2 +# +# $Log: cust_main_county.cgi,v $ +# Revision 1.2 1998-11-18 09:01:39 ivan +# i18n! i18n! +# use strict; -use CGI::Base; +use CGI; use CGI::Carp qw(fatalsToBrowser); use FS::UID qw(cgisuidsetup); use FS::Record qw(qsearch qsearchs); -use FS::CGI qw(header menubar); +use FS::CGI qw(header menubar popurl table); +use FS::cust_main_county; -my($cgi) = new CGI::Base; -$cgi->get; +my($cgi) = new CGI; &cgisuidsetup($cgi); -SendHeaders(); # one guess. - -print header("Edit tax rates", menubar( - 'Main Menu' => '../', -)),< -
  • Country State County Tax$hashref->{state}$hashref->{country}", $hashref->{county} - ? $hashref->{county} + print "", $hashref->{state} + ? $hashref->{state} : qq!(ALL) !. - qq!expand! + qq!expand country! , ""; + if ( $hashref->{county} ) { + print $hashref->{county}; + } else { + print "(ALL)"; + if ( $hashref->{state} ) { + print qq!!. + qq!expand state!; + } + } + print "
    +print $cgi->header, header("Edit tax rates", menubar( + 'Main Menu' => popurl(2), +)), qq!!, table, < + @@ -41,9 +44,14 @@ foreach $cust_main_county ( qsearch('cust_main_county',{}) ) { my($hashref)=$cust_main_county->hashref; print < - + END + print ""; + print "
    Country State County Tax$hashref->{state}$hashref->{country}", $hashref->{state} + ? $hashref->{state} + : '(ALL)' + , "", $hashref->{county} ? $hashref->{county} : '(ALL)' diff --git a/htdocs/edit/process/cust_main_county-expand.cgi b/htdocs/edit/process/cust_main_county-expand.cgi index a821560c6..c70d5b9d7 100755 --- a/htdocs/edit/process/cust_main_county-expand.cgi +++ b/htdocs/edit/process/cust_main_county-expand.cgi @@ -1,6 +1,6 @@ #!/usr/bin/perl -Tw # -# process/cust_main_county-expand.cgi: Expand counties (process form) +# $Id: cust_main_county-expand.cgi,v 1.2 1998-11-18 09:01:40 ivan Exp $ # # ivan@sisd.com 97-dec-16 # @@ -12,45 +12,55 @@ # lose background, FS::CGI # undo default tax to 0.0 if using Pg6.3: comes from pre-expanded record # for that state -#ivan@sisd.com 98-sep-2 +# ivan@sisd.com 98-sep-2 +# +# $Log: cust_main_county-expand.cgi,v $ +# Revision 1.2 1998-11-18 09:01:40 ivan +# i18n! i18n! +# use strict; -use CGI::Request; +use CGI; use CGI::Carp qw(fatalsToBrowser); use FS::UID qw(cgisuidsetup datasrc); use FS::Record qw(qsearch qsearchs); +use FS::CGI qw(eidiot popurl); use FS::cust_main_county; -use FS::CGI qw(eidiot); +use FS::cust_main; -my($req)=new CGI::Request; # create form object +my($cgi)=new CGI; -&cgisuidsetup($req->cgi); +&cgisuidsetup($cgi); -$req->param('taxnum') =~ /^(\d+)$/ or die "Illegal taxnum!"; +$cgi->param('taxnum') =~ /^(\d+)$/ or die "Illegal taxnum!"; my($taxnum)=$1; my($cust_main_county)=qsearchs('cust_main_county',{'taxnum'=>$taxnum}) or die ("Unknown taxnum!"); -my(@counties); -if ( $req->param('delim') eq 'n' ) { - @counties=split(/\n/,$req->param('counties')); -} elsif ( $req->param('delim') eq 's' ) { - @counties=split(/\s+/,$req->param('counties')); +my(@expansion); +if ( $cgi->param('delim') eq 'n' ) { + @expansion=split(/\n/,$cgi->param('expansion')); +} elsif ( $cgi->param('delim') eq 's' ) { + @expansion=split(/\s+/,$cgi->param('expansion')); } else { die "Illegal delim!"; } -@counties=map { - /^\s*([\w\- ]+)\s*$/ or eidiot("Illegal county"); +@expansion=map { + /^\s*([\w\- ]+)\s*$/ or eidiot("Illegal expansion"); $1; -} @counties; +} @expansion; -my($county); -foreach ( @counties) { +my($expansion); +foreach ( @expansion) { my(%hash)=$cust_main_county->hash; my($new)=create FS::cust_main_county \%hash; $new->setfield('taxnum',''); - $new->setfield('county',$_); + if ( ! $cust_main_county->state ) { + $new->setfield('state',$_); + } else { + $new->setfield('county',$_); + } #if (datasrc =~ m/Pg/) #{ # $new->setfield('tax',0.0); @@ -62,10 +72,11 @@ foreach ( @counties) { unless ( qsearch('cust_main',{ 'state' => $cust_main_county->getfield('state'), 'county' => $cust_main_county->getfield('county'), + 'country' => $cust_main_county->getfield('country'), } ) ) { my($error)=($cust_main_county->delete); die $error if $error; } -$req->cgi->redirect("../../edit/cust_main_county.cgi"); +print $cgi->redirect(popurl(3). "/edit/cust_main_county.cgi"); diff --git a/htdocs/edit/process/cust_main_county.cgi b/htdocs/edit/process/cust_main_county.cgi index 58eaa63ce..ce5a4f671 100755 --- a/htdocs/edit/process/cust_main_county.cgi +++ b/htdocs/edit/process/cust_main_county.cgi @@ -1,6 +1,6 @@ #!/usr/bin/perl -Tw # -# process/agent.cgi: Edit cust_main_county (process form) +# $Id: cust_main_county.cgi,v 1.2 1998-11-18 09:01:41 ivan Exp $ # # ivan@sisd.com 97-dec-16 # @@ -8,31 +8,35 @@ # bmccane@maxbaud.net 98-apr-3 # # lose background, FS::CGI ivan@sisd.com 98-sep-2 +# +# $Log: cust_main_county.cgi,v $ +# Revision 1.2 1998-11-18 09:01:41 ivan +# i18n! i18n! +# use strict; -use CGI::Request; +use CGI; use CGI::Carp qw(fatalsToBrowser); use FS::UID qw(cgisuidsetup); +use FS::CGI qw(eidiot); use FS::Record qw(qsearch qsearchs); use FS::cust_main_county; -use FS::CGI qw(eidiot); - -my($req)=new CGI::Request; # create form object -&cgisuidsetup($req->cgi); +my($req)=new CGI; +&cgisuidsetup($cgi); -foreach ( $req->params ) { +foreach ( $cgi->param ) { /^tax(\d+)$/ or die "Illegal form $_!"; my($taxnum)=$1; my($old)=qsearchs('cust_main_county',{'taxnum'=>$taxnum}) or die "Couldn't find taxnum $taxnum!"; - next unless $old->getfield('tax') ne $req->param("tax$taxnum"); + next unless $old->getfield('tax') ne $cgi->param("tax$taxnum"); my(%hash)=$old->hash; - $hash{tax}=$req->param("tax$taxnum"); + $hash{tax}=$cgi->param("tax$taxnum"); my($new)=create FS::cust_main_county \%hash; my($error)=$new->replace($old); eidiot($error) if $error; } -$req->cgi->redirect("../../browse/cust_main_county.cgi"); +$cgi->redirect(popurl(3). "/browse/cust_main_county.cgi"); diff --git a/htdocs/index.html b/htdocs/index.html index d2b5a1e93..316ac5e7b 100755 --- a/htdocs/index.html +++ b/htdocs/index.html @@ -83,8 +83,8 @@
  • View/Edit locales and tax rates - - Change tax rates by state, or break down a state into counties - and assign different tax rates to each county. + - Change tax rates, or break down a country into states, or a state + into counties and assign different tax rates to each.
  • View/Edit POPs diff --git a/site_perl/cust_main.pm b/site_perl/cust_main.pm index 51c9519c5..57e76ba42 100644 --- a/site_perl/cust_main.pm +++ b/site_perl/cust_main.pm @@ -283,21 +283,24 @@ sub check { $self->ss("$1-$2-$3"); } - return "Unknown state/county/country, state ". - "\"". $self->state. "\" county \"". $self->county. "\"" - unless qsearchs('cust_main_county',{ - 'state' => $self->state, - 'county' => $self->county, - } ); + $self->country =~ /^(\w\w)$/ or return "Illegal country"; + $self->country($1); + unless ( qsearchs('cust_main_county', { + 'country' => $self->country, + 'state' => '', + } ) ) { + return "Unknown state/county/country" + #" state ". $self->state. " county ". $self->county. " country ". $self->country + unless qsearchs('cust_main_county',{ + 'state' => $self->state, + 'county' => $self->county, + 'country' => $self->country, + } ); + } - #int'l zips? - $self->zip =~ /^(\d{5}(-\d{4})?)$/ or return "Illegal zip"; + $self->zip =~ /^([\w\-]{10})$/ or return "Illegal zip"; $self->zip($1); - #int'l countries! - $self->country =~ /^(US)$/ or return "Illegal country"; - $self->country($1); - $self->payby =~ /^(CARD|BILL|COMP)$/ or return "Illegal payby"; $self->payby($1); @@ -873,7 +876,10 @@ enable cybercash, cybercash v3 support, don't need to import FS::UID::{datasrc,checkruid} ivan@sisd.com 98-sep-19-21 $Log: cust_main.pm,v $ -Revision 1.5 1998-11-15 11:23:14 ivan +Revision 1.6 1998-11-18 09:01:42 ivan +i18n! i18n! + +Revision 1.5 1998/11/15 11:23:14 ivan use FS::table_name for all searches to eliminate warnings, emit state/county when they don't match diff --git a/site_perl/cust_main_county.pm b/site_perl/cust_main_county.pm index f4b4595ae..9c81406ae 100644 --- a/site_perl/cust_main_county.pm +++ b/site_perl/cust_main_county.pm @@ -41,6 +41,8 @@ currently supported: =item county +=item country + =item tax - percentage =back @@ -126,7 +128,7 @@ sub check { my($recref) = $self->hashref; $self->ut_numbern('taxnum') - or $self->ut_text('state') + or $self->ut_textn('state') or $self->ut_textn('county') or $self->ut_float('tax') ; @@ -135,12 +137,14 @@ sub check { =back +=head1 VERSION + +$Id: cust_main_county.pm,v 1.2 1998-11-18 09:01:43 ivan Exp $ + =head1 BUGS It doesn't properly override FS::Record yet. -A country field (and possibly a currency field) should be added. - =head1 SEE ALSO L, L, L, schema.html from the base @@ -155,6 +159,11 @@ Changed check for 'tax' to use the new ut_float subroutine pod ivan@sisd.com 98-sep-21 +$Log: cust_main_county.pm,v $ +Revision 1.2 1998-11-18 09:01:43 ivan +i18n! i18n! + + =cut 1; diff --git a/site_perl/cust_pay_batch.pm b/site_perl/cust_pay_batch.pm index 186b4c154..f40a04970 100644 --- a/site_perl/cust_pay_batch.pm +++ b/site_perl/cust_pay_batch.pm @@ -216,12 +216,10 @@ sub check { $self->payname($1); } - #int'l zips? - $self->zip =~ /^(\d{5}(-\d{4})?)$/ or return "Illegal zip"; + $self->zip =~ /^([\w\-]{10})$/ or return "Illegal zip"; $self->zip($1); - #int'l countries! - $self->country =~ /^(US)$/ or return "Illegal country"; + $self->country =~ /^(\w\w)$/ or return "Illegal \w\wy"; $self->country($1); #check invnum, custnum, ? @@ -233,12 +231,10 @@ sub check { =head1 VERSION -$Id: cust_pay_batch.pm,v 1.1 1998-11-15 05:19:58 ivan Exp $ +$Id: cust_pay_batch.pm,v 1.2 1998-11-18 09:01:44 ivan Exp $ =head1 BUGS -The author forgot to customize this manpage. - =head1 SEE ALSO L, L @@ -251,7 +247,10 @@ added hfields ivan@sisd.com 97-nov-13 $Log: cust_pay_batch.pm,v $ -Revision 1.1 1998-11-15 05:19:58 ivan +Revision 1.2 1998-11-18 09:01:44 ivan +i18n! i18n! + +Revision 1.1 1998/11/15 05:19:58 ivan long overdue Revision 1.3 1998/11/15 04:33:00 ivan -- 2.11.0