X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FSignup.pm;h=2af770c75727fc65a260475c640f578a5fba76e7;hb=1b27aa8fef6de6b57abb3967d1fcf85983c645ab;hp=46ef9e4d5b61ea2da41c99631f7ef0c727e4caeb;hpb=55a68e4aabe10db4d9c3ab1bb8befd2f9f4b9008;p=freeside.git diff --git a/FS/FS/ClientAPI/Signup.pm b/FS/FS/ClientAPI/Signup.pm index 46ef9e4d5..2af770c75 100644 --- a/FS/FS/ClientAPI/Signup.pm +++ b/FS/FS/ClientAPI/Signup.pm @@ -5,6 +5,7 @@ use Tie::RefHash; use FS::Conf; use FS::Record qw(qsearch qsearchs dbdef); use FS::Msgcat qw(gettext); +use FS::ClientAPI_SessionCache; use FS::agent; use FS::cust_main_county; use FS::part_pkg; @@ -16,12 +17,6 @@ use FS::acct_snarf; use FS::queue; use FS::reg_code; -use FS::ClientAPI; #hmm -FS::ClientAPI->register_handlers( - 'Signup/signup_info' => \&signup_info, - 'Signup/new_customer' => \&new_customer, -); - sub signup_info { my $packet = shift; @@ -29,7 +24,6 @@ sub signup_info { use vars qw($signup_info); #cache for performance; $signup_info ||= { - 'cust_main_county' => [ map { $_->hashref } qsearch('cust_main_county', {}) ], @@ -70,6 +64,8 @@ sub signup_info { 'svc_acct_pop' => [ map { $_->hashref } qsearch('svc_acct_pop',{} ) ], + 'emailinvoiceonly' => $conf->exists('emailinvoiceonly'), + 'security_phrase' => $conf->exists('security_phrase'), 'payby' => [ $conf->config('signup_server-payby') ], @@ -79,7 +75,7 @@ sub signup_info { 'ship_enabled' => defined dbdef->table('cust_main')->column('ship_last'), 'msgcat' => { map { $_=>gettext($_) } qw( - passwords_dont_match invalid_card unknown_card_type not_a empty_password + passwords_dont_match invalid_card unknown_card_type not_a empty_password illegal_or_empty_text ) }, 'statedefault' => $conf->config('statedefault') || 'CA', @@ -88,13 +84,30 @@ sub signup_info { 'refnum' => $conf->config('signup_server-default_refnum'), + 'default_pkgpart' => $conf->config('signup_server-default_pkgpart'), + }; + my @addl = qw( signup_server-classnum2 signup_server-classnum3 ); + + if ( grep { $conf->exists($_) } @addl ) { + + $signup_info->{optional_packages} = []; + + foreach my $addl ( @addl ) { + my $classnum = $conf->config($addl) or next; + my @pkgs = map { $_->hashref } + qsearch( 'part_pkg', { classnum => $classnum } ); + push @{$signup_info->{optional_packages}}, \@pkgs; + } + + } + my $agentnum = $conf->config('signup_server-default_agentnum'); my $session = ''; if ( exists $packet->{'session_id'} ) { - my $cache = new Cache::SharedMemoryCache( { + my $cache = new FS::ClientAPI_SessionCache( { 'namespace' => 'FS::ClientAPI::Agent', } ); $session = $cache->get($packet->{'session_id'}); @@ -170,7 +183,7 @@ sub new_customer { my $agentnum; if ( exists $packet->{'session_id'} ) { - my $cache = new Cache::SharedMemoryCache( { + my $cache = new FS::ClientAPI_SessionCache( { 'namespace' => 'FS::ClientAPI::Agent', } ); my $session = $cache->get($packet->{'session_id'}); @@ -202,7 +215,12 @@ sub new_customer { ship_city ship_county ship_state ship_zip ship_country ship_daytime ship_night ship_fax - payby payinfo paycvv paydate payname referral_custnum comments + payby + payinfo paycvv paydate payname + paystart_month paystart_year payissue + payip + + referral_custnum comments ) } ); @@ -302,7 +320,7 @@ sub new_customer { $cust_main->apply_payments; $cust_main->apply_credits; - $bill_error = $cust_main->collect; + $bill_error = $cust_main->collect('realtime' => 1); #warn "[fs_signup_server] error collecting from new customer: $bill_error" # if $bill_error;