summaryrefslogtreecommitdiff
path: root/FS/FS/ClientAPI
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/ClientAPI')
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm2
-rw-r--r--FS/FS/ClientAPI/Signup.pm142
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;