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;
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;
use vars qw($signup_info); #cache for performance;
$signup_info ||= {
-
'cust_main_county' =>
[ map { $_->hashref } qsearch('cust_main_county', {}) ],
'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') ],
'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',
};
+ 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'});
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'});
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
)
} );
$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;