diff options
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/Conf.pm | 11 | ||||
| -rw-r--r-- | FS/FS/Record.pm | 14 | ||||
| -rw-r--r-- | FS/FS/cust_main.pm | 13 | ||||
| -rw-r--r-- | FS/FS/cust_main_invoice.pm | 15 | ||||
| -rw-r--r-- | FS/FS/svc_acct.pm | 17 | ||||
| -rw-r--r-- | FS/FS/svc_acct_pop.pm | 8 | 
6 files changed, 51 insertions, 27 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index 14dce1abf..0c41980ea 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -272,7 +272,7 @@ httemplate/docs/config.html      'key'         => 'business-onlinepayment-description',      'section'     => 'billing',      'description' => 'String passed as the description field to <a href="http://search.cpan.org/search?mode=module&query=Business%3A%3AOnlinePayment">Business::OnlinePayment</a>.  Evaluated as a double-quoted perl string, with the following variables available: <code>$agent</code> (the agent name), and <code>$pkgs</code> (a comma-separated list of packages to which the invoiced being charged applies)', -    'type'        => 'textarea', +    'type'        => 'text',    },    { @@ -888,6 +888,15 @@ httemplate/docs/config.html      'type'        => 'checkbox',    }, +  { +    'key'         => 'signup_server-realtime', +    'section'     => '', +    'description' => 'Run billing for signup server signups immediately, and suspend accounts which subsequently have a balance.', +    'type'        => 'checkbox', +  }, + + +  );  1; diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index ff967817a..acdebcadc 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -12,6 +12,7 @@ use DBI qw(:sql_types);  use DBIx::DBSchema 0.19;  use FS::UID qw(dbh checkruid getotaker datasrc driver_name);  use FS::SearchCache; +use FS::msgcat qw(gettext);  @ISA = qw(Exporter);  @EXPORT_OK = qw(dbh fields hfields qsearch qsearchs dbdef jsearch); @@ -825,7 +826,8 @@ false.  sub ut_text {    my($self,$field)=@_;    $self->getfield($field) =~ /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/]+)$/ -    or return "Illegal or empty (text) $field: ". $self->getfield($field); +    or return gettext('illegal_or_empty_text'). " $field: ". +              $self->getfield($field);    $self->setfield($field,$1);    '';  } @@ -841,7 +843,7 @@ May be null.  If there is an error, returns the error, otherwise returns false.  sub ut_textn {    my($self,$field)=@_;    $self->getfield($field) =~ /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/]*)$/ -    or return "Illegal (text) $field: ". $self->getfield($field); +    or return gettext('illegal_text'). " $field: ". $self->getfield($field);    $self->setfield($field,$1);    '';  } @@ -896,7 +898,7 @@ sub ut_phonen {    } elsif ( $country eq 'US' || $country eq 'CA' ) {      $phonen =~ s/\D//g;      $phonen =~ /^(\d{3})(\d{3})(\d{4})(\d*)$/ -      or return "Illegal (phone) $field: ". $self->getfield($field); +      or return gettext('illegal_phone'). " $field: ". $self->getfield($field);      $phonen = "$1-$2-$3";      $phonen .= " x$4" if $4;      $self->setfield($field,$phonen); @@ -965,7 +967,7 @@ May not be null.  sub ut_name {    my( $self, $field ) = @_;    $self->getfield($field) =~ /^([\w \,\.\-\']+)$/ -    or return "Illegal (name) $field: ". $self->getfield($field); +    or return gettext('illegal_name'). " $field: ". $self->getfield($field);    $self->setfield($field,$1);    '';  } @@ -980,12 +982,12 @@ sub ut_zip {    my( $self, $field, $country ) = @_;    if ( $country eq 'US' ) {      $self->getfield($field) =~ /\s*(\d{5}(\-\d{4})?)\s*$/ -      or return "Illegal (zip) $field for country $country: ". +      or return gettext('illegal_zip'). " $field for country $country: ".                  $self->getfield($field);      $self->setfield($field,$1);    } else {      $self->getfield($field) =~ /^\s*(\w[\w\-\s]{2,8}\w)\s*$/ -      or return "Illegal (zip) $field: ". $self->getfield($field); +      or return gettext('illegal_zip'). " $field: ". $self->getfield($field);      $self->setfield($field,$1);    }    ''; diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 499d149a6..e1a51732f 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -26,6 +26,7 @@ use FS::queue;  use FS::part_pkg;  use FS::part_bill_event;  use FS::cust_bill_event; +use FS::msgcat qw(gettext);  @ISA = qw( FS::Record ); @@ -643,12 +644,13 @@ sub check {      my $payinfo = $self->payinfo;      $payinfo =~ s/\D//g;      $payinfo =~ /^(\d{13,16})$/ -      or return "Illegal credit card number: ". $self->payinfo; +      or return gettext('invalid_catd'); # . ": ". $self->payinfo;      $payinfo = $1;      $self->payinfo($payinfo);      validate($payinfo) -      or return "Illegal credit card number: ". $self->payinfo; -    return "Unknown card type" if cardtype($self->payinfo) eq "Unknown"; +      or return gettext('invalid_catd'); # . ": ". $self->payinfo; +    return gettext('unknown_card_type') +      if cardtype($self->payinfo) eq "Unknown";    } elsif ( $self->payby eq 'BILL' ) { @@ -690,7 +692,7 @@ sub check {      $self->payname( $self->first. " ". $self->getfield('last') );    } else {      $self->payname =~ /^([\w \,\.\-\']+)$/ -      or return "Illegal billing name: ". $self->payname; +      or return gettext('illegal_name'). " payname: ". $self->payname;      $self->payname($1);    } @@ -1153,6 +1155,9 @@ sub collect {            qsearch('part_bill_event', { 'payby'    => $self->payby,                                         'disabled' => '',           } )      ) { + +      last unless $cust_bill->owed > 0; #don't run subsequent events if owed=0 +        warn "calling invoice event (". $part_bill_event->eventcode. ")\n"          if $Debug;        my $cust_main = $self; #for callback diff --git a/FS/FS/cust_main_invoice.pm b/FS/FS/cust_main_invoice.pm index ebbadc6d9..b82e2e732 100644 --- a/FS/FS/cust_main_invoice.pm +++ b/FS/FS/cust_main_invoice.pm @@ -7,6 +7,7 @@ use FS::Record qw( qsearchs );  use FS::Conf;  use FS::cust_main;  use FS::svc_acct; +use FS::msgcat qw(gettext);  @ISA = qw( FS::Record ); @@ -111,10 +112,12 @@ sub check {  =item checkdest -Checks the dest field only.  If it finds that the account ends in the -same domain configured as the B<domain> configuration file, it will change the -invoice destination from an email address to a service number (see -L<FS::svc_acct>). +Checks the dest field only. + +#If it finds that the account ends in the +#same domain configured as the B<domain> configuration file, it will change the +#invoice destination from an email address to a service number (see +#L<FS::svc_acct>).  =cut @@ -140,7 +143,7 @@ sub checkdest {  #    }      $self->dest("$1\@$2");    } else { -    return "Illegal destination!"; +    return gettext("illegal_email_invoice_address");    }    ''; #no error @@ -167,7 +170,7 @@ sub address {  =head1 VERSION -$Id: cust_main_invoice.pm,v 1.10 2002-02-10 17:02:37 ivan Exp $ +$Id: cust_main_invoice.pm,v 1.11 2002-04-10 13:42:48 ivan Exp $  =head1 BUGS diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 8e25f6afc..030ffbe19 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -28,6 +28,7 @@ use FS::svc_domain;  use FS::raddb;  use FS::queue;  use FS::radius_usergroup; +use FS::msgcat qw(gettext);  @ISA = qw( FS::svc_Common ); @@ -262,7 +263,7 @@ sub insert {    $error = $self->check;    return $error if $error; -  return "Username ". $self->username. " in use" +  return gettext('username_in_use'). ": ". $self->username      if qsearchs( 'svc_acct', { 'username' => $self->username,                                 'domsvc'   => $self->domsvc,                               } ); @@ -1088,24 +1089,24 @@ sub check {    my $ulen = $usernamemax || $self->dbdef_table->column('username')->length;    if ( $username_uppercase ) {      $recref->{username} =~ /^([a-z0-9_\-\.\&]{$usernamemin,$ulen})$/i -      or return "Illegal username: ". $recref->{username}; +      or return gettext('illegal_username'). ": ". $recref->{username};      $recref->{username} = $1;    } else {      $recref->{username} =~ /^([a-z0-9_\-\.\&]{$usernamemin,$ulen})$/ -      or return "Illegal username: ". $recref->{username}; +      or return gettext('illegal_username'). ": ". $recref->{username};      $recref->{username} = $1;    }    if ( $username_letterfirst ) { -    $recref->{username} =~ /^[a-z]/ or return "Illegal username"; +    $recref->{username} =~ /^[a-z]/ or return gettext('illegal_username');    } elsif ( $username_letter ) { -    $recref->{username} =~ /[a-z]/ or return "Illegal username"; +    $recref->{username} =~ /[a-z]/ or return gettext('illegal_username');    }    if ( $username_noperiod ) { -    $recref->{username} =~ /\./ and return "Illegal username"; +    $recref->{username} =~ /\./ and return gettext('illegal_username');    }    unless ( $username_ampersand ) { -    $recref->{username} =~ /\&/ and return "Illegal username"; +    $recref->{username} =~ /\&/ and return gettext('illegal_username');    }    $recref->{popnum} =~ /^(\d*)$/ or return "Illegal popnum: ".$recref->{popnum}; @@ -1221,7 +1222,7 @@ sub check {      $recref->{_password} = '!!';    } else {      #return "Illegal password"; -    return "Illegal password: ". $recref->{_password}; +    return gettext('illegal_password'). ": ". $recref->{_password};    }    ''; #no error diff --git a/FS/FS/svc_acct_pop.pm b/FS/FS/svc_acct_pop.pm index fa4f5c670..3c9ea0130 100644 --- a/FS/FS/svc_acct_pop.pm +++ b/FS/FS/svc_acct_pop.pm @@ -121,6 +121,8 @@ sub text {  =cut +#horrible false laziness with signup.cgi (pull special-case for 0 & 1 +# pop code out from signup.cgi??)  sub popselector {    my( $popnum, $state ) = @_; @@ -180,14 +182,16 @@ END  =head1 VERSION -$Id: svc_acct_pop.pm,v 1.6 2001-12-18 06:29:30 ivan Exp $ +$Id: svc_acct_pop.pm,v 1.7 2002-04-10 13:42:48 ivan Exp $  =head1 BUGS  It should be renamed to part_pop.  popselector?  putting web ui components in here?  they should probably live -somewhere else... +somewhere else...   + +popselector: pull special-case for 0 & 1 pop code out from signup.cgi  =head1 SEE ALSO  | 
