diff options
Diffstat (limited to 'FS/FS/ClientAPI')
-rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 2 | ||||
-rw-r--r-- | FS/FS/ClientAPI/Signup.pm | 142 |
2 files changed, 59 insertions, 85 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 1e1d1d3..dbcef7d 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -596,7 +596,7 @@ sub process_payment { my $amount = $1; return { error => 'Amount must be greater than 0' } unless $amount > 0; - $p->{'discount_term'} =~ /^\s*(\d*)\s*$/ + $p->{'discount_term'} =~ /^\s*(\d+)\s*$/ or return { 'error' => gettext('illegal_discount_term'). ': '. $p->{'discount_term'} }; my $discount_term = $1; diff --git a/FS/FS/ClientAPI/Signup.pm b/FS/FS/ClientAPI/Signup.pm index 65bb4e3..ec45e79 100644 --- a/FS/FS/ClientAPI/Signup.pm +++ b/FS/FS/ClientAPI/Signup.pm @@ -93,31 +93,7 @@ sub signup_info { my @agent_fields = qw( agentnum agent ); - my @bools = qw( emailinvoiceonly security_phrase ); - - my @signup_bools = qw( no_company recommend_daytime recommend_email ); - - my @signup_server_scalars = qw( default_pkgpart default_svcpart ); - - my @selfservice_textareas = qw( head body_header body_footer ); - - my @selfservice_scalars = qw( - body_bgcolor box_bgcolor - text_color link_color vlink_color hlink_color alink_color - font title_color title_align title_size menu_bgcolor menu_fontsize - ); - - #XXX my @selfservice_bools = qw( - # menu_skipblanks menu_skipheadings menu_nounderline - #); - - #my $selfservice_binaries = qw( - # title_left_image title_right_image - # menu_top_image menu_body_image menu_bottom_image - #); - $signup_info_cache = { - 'cust_main_county' => [ map $_->hashref, qsearch('cust_main_county', {} ) ], @@ -149,44 +125,46 @@ sub signup_info { 'card_types' => card_types(), - ( map { $_ => $conf->exists("signup-$_") } @signup_bools ), - - ( map { $_ => scalar($conf->config("signup_server-$_")) } - @signup_server_scalars - ), - - ( map { $_ => join("\n", $conf->config("selfservice-$_")) } - @selfservice_textareas - ), - ( map { $_ => scalar($conf->config("selfservice-$_")) } - @selfservice_scalars - ), - - #( map { $_ => scalar($conf->config_binary("selfservice-$_")) } - # @selfservice_binaries - #), - - 'agentnum2part_pkg' => $agentnum2part_pkg, - 'svc_acct_pop' => [ map $_->hashref, qsearch('svc_acct_pop',{} ) ], - 'nomadix' => $conf->exists('signup_server-nomadix'), - 'payby' => [ $conf->config('signup_server-payby') ], - 'card_types' => card_types(), - 'paytypes' => [ @FS::cust_main::paytypes ], - 'cvv_enabled' => 1, - 'stateid_enabled' => $conf->exists('show_stateid'), - 'paystate_enabled' => $conf->exists('show_bankstate'), - 'ship_enabled' => 1, - 'msgcat' => $msgcat, - 'label' => $label, - 'statedefault' => scalar($conf->config('statedefault')) || 'CA', - 'countrydefault' => scalar($conf->config('countrydefault')) || 'US', - 'refnum' => scalar($conf->config('signup_server-default_refnum')), - 'signup_service' => $svc_x, - 'company_name' => scalar($conf->config('company_name')), + 'paytypes' => [ @FS::cust_main::paytypes ], + + 'cvv_enabled' => 1, + + 'stateid_enabled' => $conf->exists('show_stateid'), + + 'paystate_enabled' => $conf->exists('show_bankstate'), + + 'ship_enabled' => 1, + + 'msgcat' => $msgcat, + + 'label' => $label, + + 'statedefault' => scalar($conf->config('statedefault')) || 'CA', + + 'countrydefault' => scalar($conf->config('countrydefault')) || 'US', + + 'refnum' => scalar($conf->config('signup_server-default_refnum')), + + 'default_pkgpart' => scalar($conf->config('signup_server-default_pkgpart')), + + 'signup_service' => $svc_x, + 'default_svcpart' => scalar($conf->config('signup_server-default_svcpart')), + + 'head' => join("\n", $conf->config('selfservice-head') ), + 'body_header' => join("\n", $conf->config('selfservice-body_header') ), + 'body_footer' => join("\n", $conf->config('selfservice-body_footer') ), + 'body_bgcolor' => scalar( $conf->config('selfservice-body_bgcolor') ), + 'box_bgcolor' => scalar( $conf->config('selfservice-box_bgcolor') ), + + 'company_name' => scalar($conf->config('company_name')), + #per-agent? 'agent_ship_address' => scalar($conf->exists('agent-ship_address')), - 'require_phone' => scalar($conf->exists('cust_main-require_phone')), - 'logo' => scalar($conf->config_binary('logo.png')), + + 'no_company' => scalar($conf->exists('signup-no_company')), + 'require_phone' => scalar($conf->exists('cust_main-require_phone')), + 'recommend_daytime' => scalar($conf->exists('signup-recommend_daytime')), + 'recommend_email' => scalar($conf->exists('signup-recommend_email')), }; @@ -390,7 +368,7 @@ sub signup_info { #( map { $_ => scalar( $conf->config($_, $agentnum) ) } # qw( company_name ) ), ( map { $_ => scalar( $conf->config("selfservice-$_", $agentnum ) ) } - qw( body_bgcolor box_bgcolor menu_bgcolor ) ), + qw( body_bgcolor box_bgcolor) ), ( map { $_ => join("\n", $conf->config("selfservice-$_", $agentnum ) ) } qw( head body_header body_footer ) ), }; @@ -609,7 +587,7 @@ sub new_customer { push @acct_snarf, $acct_snarf; } $svc->child_objects( \@acct_snarf ); - push @svc, $svc; + } elsif ( $svc_x eq 'svc_phone' ) { @@ -630,6 +608,8 @@ sub new_customer { } else { die "unknown signup service $svc_x"; } + my $y = $svc[0]->setdefault; # arguably should be in new method + return { 'error' => $y } if $y && !ref($y); if ($packet->{'mac_addr'} && $conf->exists('signup_server-mac_addr_svcparts')) { @@ -648,16 +628,15 @@ sub new_customer { '_password' => '', #blank as requested (set passwordmin to 0) }; + my $y = $svc->setdefault; # arguably should be in new method + return { 'error' => $y } if $y && !ref($y); + push @svc, $svc; } - foreach my $svc ( @svc ) { - my $y = $svc->setdefault; # arguably should be in new method - return { 'error' => $y } if $y && !ref($y); - #$error = $svc->check; - #return { 'error' => $error } if $error; - } + #$error = $svc->check; + #return { 'error' => $error } if $error; #setup a job dependancy to delay provisioning my $placeholder = new FS::queue ( { @@ -751,25 +730,20 @@ sub new_customer { my %return = ( 'error' => '', 'signup_service' => $svc_x, + 'svcnum' => $svc[0]->svcnum, 'custnum' => $cust_main->custnum, ); - if ( $svc[0] ) { - - $return{'svcnum'} = $svc[0]->svcnum; - - if ( $svc_x eq 'svc_acct' ) { - $return{$_} = $svc[0]->$_() for qw( username _password ); - } elsif ( $svc_x eq 'svc_phone' ) { - $return{$_} = $svc[0]->$_() for qw(countrycode phonenum sip_password pin); - } elsif ( $svc_x eq 'svc_pbx' ) { - #$return{$_} = $svc[0]->$_() for qw( ) #nothing yet - } else { - return {'error' => "configuration error: unknown signup service $svc_x"}; - #die "unknown signup service $svc_x"; - # return an error that's visible to someone somewhere - } - + if ( $svc_x eq 'svc_acct' ) { + $return{$_} = $svc[0]->$_() for qw( username _password ); + } elsif ( $svc_x eq 'svc_phone' ) { + $return{$_} = $svc[0]->$_() for qw( countrycode phonenum sip_password pin ); + } elsif ( $svc_x eq 'svc_pbx' ) { + #$return{$_} = $svc[0]->$_() for qw( ) #nothing yet + } else { + return { 'error' => "configuration error: unknown signup service $svc_x" }; + #die "unknown signup service $svc_x"; + # return an error that's visible to someone somewhere } return \%return; |