X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=fs_signup%2FFS-SignupClient%2FSignupClient.pm;h=842064de61cb6afcb1b3a8818777220d32eee90a;hb=030bef17868168b05a67d9f5866b55da1bb9439c;hp=bd917dae7c9ce290ce907ce93be3341512913363;hpb=c4f0380bb9f5f7b497092c3d750953e2ef1562fa;p=freeside.git diff --git a/fs_signup/FS-SignupClient/SignupClient.pm b/fs_signup/FS-SignupClient/SignupClient.pm index bd917dae7..842064de6 100644 --- a/fs_signup/FS-SignupClient/SignupClient.pm +++ b/fs_signup/FS-SignupClient/SignupClient.pm @@ -6,8 +6,9 @@ use Exporter; use Socket; use FileHandle; use IO::Handle; +use Storable qw(nstore_fd fd_retrieve); -$VERSION = '0.02'; +$VERSION = '0.03'; @ISA = qw( Exporter ); @EXPORT_OK = qw( signup_info new_customer ); @@ -55,10 +56,13 @@ FS::SignupClient - Freeside signup client API 'payname' => $payname, 'invoicing_list' => $invoicing_list, 'referral_custnum' => $referral_custnum, + 'comments' => $comments, 'pkgpart' => $pkgpart, 'username' => $username, '_password' => $password, + 'sec_phrase' => $sec_phrase, 'popnum' => $popnum, + 'agentnum' => $agentnum, #optional } ); =head1 DESCRIPTION @@ -96,6 +100,8 @@ Each hash reference has the following keys: ac exch +(Future expansion: fourth argument is the $init_data hash reference) + =cut sub signup_info { @@ -104,51 +110,12 @@ sub signup_info { print SOCK "signup_info\n"; SOCK->flush; - chop ( my $n_cust_main_county = ); - my @cust_main_county = map { - chop ( my $taxnum = ); - chop ( my $state = ); - chop ( my $county = ); - chop ( my $country = ); - { - 'taxnum' => $taxnum, - 'state' => $state, - 'county' => $county, - 'country' => $country, - }; - } 1 .. $n_cust_main_county; - - chop ( my $n_part_pkg = ); - my @part_pkg = map { - chop ( my $pkgpart = ); - chop ( my $pkg = ); - { - 'pkgpart' => $pkgpart, - 'pkg' => $pkg, - }; - } 1 .. $n_part_pkg; - - chop ( my $n_svc_acct_pop = ); - my @svc_acct_pop = map { - chop ( my $popnum = ); - chop ( my $city = ); - chop ( my $state = ); - chop ( my $ac = ); - chop ( my $exch = ); - chop ( my $loc = ); - { - 'popnum' => $popnum, - 'city' => $city, - 'state' => $state, - 'ac' => $ac, - 'exch' => $exch, - 'loc' => $loc, - }; - } 1 .. $n_svc_acct_pop; - + my $init_data = fd_retrieve(\*SOCK); close SOCK; - \@cust_main_county, \@part_pkg, \@svc_acct_pop; + (map { $init_data->{$_} } qw( cust_main_county part_pkg svc_acct_pop ) ), + $init_data; + } =item new_customer HASHREF @@ -175,9 +142,11 @@ a paramater with the following keys: payname invoicing_list referral_custnum + comments pkgpart username _password + sec_phrase popnum Returns a scalar error message, or the empty string for success. @@ -187,19 +156,19 @@ Returns a scalar error message, or the empty string for success. sub new_customer { my $hashref = shift; - #things that aren't necessary in base class, but are for signup server - return "Empty password" unless $hashref->{'_password'}; - return "No POP selected" unless $hashref->{'popnum'}; - socket(SOCK, PF_UNIX, SOCK_STREAM, 0) or die "socket: $!"; connect(SOCK, sockaddr_un($fs_signupd_socket)) or die "connect: $!"; print SOCK "new_customer\n"; - print SOCK join("\n", map { $hashref->{$_} } qw( + my $signup_data = { map { $_ => $hashref->{$_} } qw( first last ss company address1 address2 city county state zip country daytime night fax payby payinfo paydate payname invoicing_list - referral_custnum pkgpart username _password popnum - ) ), "\n"; + referral_custnum comments pkgpart username _password sec_phrase popnum + ) }; + + $signup_data->{agentnum} = $hashref->{agentnum} if $hashref->{agentnum}; + + nstore_fd($signup_data, \*SOCK) or die "can't send customer signup: $!"; SOCK->flush; chop( my $error = );