summaryrefslogtreecommitdiff
path: root/fs_signup
diff options
context:
space:
mode:
authorivan <ivan>2001-08-28 16:58:08 +0000
committerivan <ivan>2001-08-28 16:58:08 +0000
commit5e99168da38e7616fc726242ce7d85e140f22c6f (patch)
treeb253e9fb12bd165ddd7ca8d32731fa947b219c3c /fs_signup
parentaa7b51c0794f6a61e522fbba978f6c64446d8696 (diff)
customer-to-customer referrals in singup server
Diffstat (limited to 'fs_signup')
-rw-r--r--fs_signup/FS-SignupClient/SignupClient.pm60
-rwxr-xr-xfs_signup/FS-SignupClient/cgi/signup.cgi58
-rwxr-xr-xfs_signup/FS-SignupClient/fs_signupd10
-rwxr-xr-xfs_signup/fs_signup_server49
4 files changed, 92 insertions, 85 deletions
diff --git a/fs_signup/FS-SignupClient/SignupClient.pm b/fs_signup/FS-SignupClient/SignupClient.pm
index 5769c18fc..d656d7528 100644
--- a/fs_signup/FS-SignupClient/SignupClient.pm
+++ b/fs_signup/FS-SignupClient/SignupClient.pm
@@ -7,7 +7,7 @@ use Socket;
use FileHandle;
use IO::Handle;
-$VERSION = '0.01';
+$VERSION = '0.02';
@ISA = qw( Exporter );
@EXPORT_OK = qw( signup_info new_customer );
@@ -35,29 +35,30 @@ FS::SignupClient - Freeside signup client API
( $locales, $packages, $pops ) = signup_info;
$error = new_customer ( {
- 'first' => $first,
- 'last' => $last,
- 'ss' => $ss,
- 'comapny' => $company,
- 'address1' => $address1,
- 'address2' => $address2,
- 'city' => $city,
- 'county' => $county,
- 'state' => $state,
- 'zip' => $zip,
- 'country' => $country,
- 'daytime' => $daytime,
- 'night' => $night,
- 'fax' => $fax,
- 'payby' => $payby,
- 'payinfo' => $payinfo,
- 'paydate' => $paydate,
- 'payname' => $payname,
- 'invoicing_list' => $invoicing_list,
- 'pkgpart' => $pkgpart,
- 'username' => $username,
- '_password' => $password,
- 'popnum' => $popnum,
+ 'first' => $first,
+ 'last' => $last,
+ 'ss' => $ss,
+ 'comapny' => $company,
+ 'address1' => $address1,
+ 'address2' => $address2,
+ 'city' => $city,
+ 'county' => $county,
+ 'state' => $state,
+ 'zip' => $zip,
+ 'country' => $country,
+ 'daytime' => $daytime,
+ 'night' => $night,
+ 'fax' => $fax,
+ 'payby' => $payby,
+ 'payinfo' => $payinfo,
+ 'paydate' => $paydate,
+ 'payname' => $payname,
+ 'invoicing_list' => $invoicing_list,
+ 'referral_custnum' => $referral_custnum,
+ 'pkgpart' => $pkgpart,
+ 'username' => $username,
+ '_password' => $password,
+ 'popnum' => $popnum,
} );
=head1 DESCRIPTION
@@ -173,6 +174,7 @@ a paramater with the following keys:
paydate
payname
invoicing_list
+ referral_custnum
pkgpart
username
_password
@@ -185,6 +187,10 @@ 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";
@@ -192,7 +198,7 @@ sub new_customer {
print SOCK join("\n", map { $hashref->{$_} } qw(
first last ss company address1 address2 city county state zip country
daytime night fax payby payinfo paydate payname invoicing_list
- pkgpart username _password popnum
+ referral_custnum pkgpart username _password popnum
) ), "\n";
SOCK->flush;
@@ -202,10 +208,6 @@ sub new_customer {
=back
-=head1 VERSION
-
-$Id: SignupClient.pm,v 1.3 2000-02-02 07:44:00 ivan Exp $
-
=head1 BUGS
=head1 SEE ALSO
diff --git a/fs_signup/FS-SignupClient/cgi/signup.cgi b/fs_signup/FS-SignupClient/cgi/signup.cgi
index a3fa9e788..5d024a812 100755
--- a/fs_signup/FS-SignupClient/cgi/signup.cgi
+++ b/fs_signup/FS-SignupClient/cgi/signup.cgi
@@ -1,12 +1,13 @@
#!/usr/bin/perl -Tw
#
-# $Id: signup.cgi,v 1.9 2000-12-03 14:29:15 ivan Exp $
+# $Id: signup.cgi,v 1.10 2001-08-28 16:58:08 ivan Exp $
use strict;
use vars qw( @payby $cgi $locales $packages $pops $r $error
$last $first $ss $company $address1 $address2 $city $state $county
$country $zip $daytime $night $fax $invoicing_list $payby $payinfo
- $paydate $payname $pkgpart $username $password $popnum
+ $paydate $payname $referral_custnum
+ $pkgpart $username $password $popnum
$ieak_file $ieak_template $cck_file $cck_template
$ac $exch $loc
);
@@ -15,7 +16,7 @@ use subs qw( print_form print_okay expselect );
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use HTTP::Headers::UserAgent 2.00;
-use FS::SignupClient qw( signup_info new_customer );
+use FS::SignupClient 0.02 qw( signup_info new_customer );
use Text::Template;
#acceptable payment methods
@@ -75,29 +76,30 @@ if ( defined $cgi->param('magic') ) {
}
( $error = new_customer ( {
- 'last' => $last = $cgi->param('last'),
- 'first' => $first = $cgi->param('first'),
- 'ss' => $ss = $cgi->param('ss'),
- 'company' => $company = $cgi->param('company'),
- 'address1' => $address1 = $cgi->param('address1'),
- 'address2' => $address2 = $cgi->param('address2'),
- 'city' => $city = $cgi->param('city'),
- 'county' => $county,
- 'state' => $state,
- 'zip' => $zip = $cgi->param('zip'),
- 'country' => $country,
- 'daytime' => $daytime = $cgi->param('daytime'),
- 'night' => $night = $cgi->param('night'),
- 'fax' => $fax = $cgi->param('fax'),
- 'payby' => $payby,
- 'payinfo' => $payinfo,
- 'paydate' => $paydate,
- 'payname' => $payname,
- 'invoicing_list' => $invoicing_list,
- 'pkgpart' => $pkgpart = $cgi->param('pkgpart'),
- 'username' => $username = $cgi->param('username'),
- '_password' => $password = $cgi->param('_password'),
- 'popnum' => $popnum = $cgi->param('popnum'),
+ 'last' => $last = $cgi->param('last'),
+ 'first' => $first = $cgi->param('first'),
+ 'ss' => $ss = $cgi->param('ss'),
+ 'company' => $company = $cgi->param('company'),
+ 'address1' => $address1 = $cgi->param('address1'),
+ 'address2' => $address2 = $cgi->param('address2'),
+ 'city' => $city = $cgi->param('city'),
+ 'county' => $county,
+ 'state' => $state,
+ 'zip' => $zip = $cgi->param('zip'),
+ 'country' => $country,
+ 'daytime' => $daytime = $cgi->param('daytime'),
+ 'night' => $night = $cgi->param('night'),
+ 'fax' => $fax = $cgi->param('fax'),
+ 'payby' => $payby,
+ 'payinfo' => $payinfo,
+ 'paydate' => $paydate,
+ 'payname' => $payname,
+ 'invoicing_list' => $invoicing_list,
+ 'referral_custnum' => $referral_custnum = $cgi->param('ref'),
+ 'pkgpart' => $pkgpart = $cgi->param('pkgpart'),
+ 'username' => $username = $cgi->param('username'),
+ '_password' => $password = $cgi->param('_password'),
+ 'popnum' => $popnum = $cgi->param('popnum'),
} ) )
? print_form()
: print_okay();
@@ -129,13 +131,14 @@ if ( defined $cgi->param('magic') ) {
$username = '';
$password = '';
$popnum = '';
-
+ $referral_custnum = $cgi->param('ref') || '';
print_form;
}
sub print_form {
my $r = qq!<font color="#ff0000">*</font>!;
+ $cgi->delete('ref');
my $self_url = $cgi->self_url;
print $cgi->header( '-expires' => 'now' ), <<END;
@@ -148,6 +151,7 @@ END
print <<END;
<FORM ACTION="$self_url" METHOD=POST>
<INPUT TYPE="hidden" NAME="magic" VALUE="process">
+<INPUT TYPE="hidden" NAME="ref" VALUE="$referral_custnum">
Contact Information
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
diff --git a/fs_signup/FS-SignupClient/fs_signupd b/fs_signup/FS-SignupClient/fs_signupd
index f22ab15d4..8b3cdde53 100755
--- a/fs_signup/FS-SignupClient/fs_signupd
+++ b/fs_signup/FS-SignupClient/fs_signupd
@@ -116,16 +116,16 @@ for ( ; $paddr = accept(Client,Server); close Client) {
my(
$first, $last, $ss, $company, $address1, $address2, $city, $county,
$state, $zip, $country, $daytime, $night, $fax, $payby, $payinfo,
- $paydate, $payname, $invoicing_list, $pkgpart, $username, $password,
- $popnum,
- ) = map { scalar(<Client>) } ( 1 .. 23 );
+ $paydate, $payname, $invoicing_list, $referral_custnum,
+ $pkgpart, $username, $password, $popnum,
+ ) = map { scalar(<Client>) } ( 1 .. 24 );
warn "[fs_signupd] sending customer data to remote server...\n" if $Debug;
print
$first, $last, $ss, $company, $address1, $address2, $city, $county,
$state, $zip, $country, $daytime, $night, $fax, $payby, $payinfo,
- $paydate, $payname, $invoicing_list, $pkgpart, $username, $password,
- $popnum,
+ $paydate, $payname, $invoicing_list, $referral_custnum,
+ $pkgpart, $username, $password, $popnum,
;
warn "[fs_signupd] reading error from remote server...\n" if $Debug;
diff --git a/fs_signup/fs_signup_server b/fs_signup/fs_signup_server
index c6ee665fa..43683b01d 100755
--- a/fs_signup/fs_signup_server
+++ b/fs_signup/fs_signup_server
@@ -88,9 +88,9 @@ while (1) {
chop( my(
$first, $last, $ss, $company, $address1, $address2, $city, $county,
$state, $zip, $country, $daytime, $night, $fax, $payby, $payinfo,
- $paydate, $payname, $invoicing_list, $pkgpart, $username, $password,
- $popnum,
- ) = map { scalar(<$reader>) } ( 1 .. 23 ) );
+ $paydate, $payname, $invoicing_list, $referral_custnum,
+ $pkgpart, $username, $password, $popnum,
+ ) = map { scalar(<$reader>) } ( 1 .. 24 ) );
warn "[fs_signup_server] Processing signup...\n" if $Debug;
@@ -99,27 +99,28 @@ while (1) {
#shares some stuff with htdocs/edit/process/cust_main.cgi... take any
# common that are still here and library them.
my $cust_main = new FS::cust_main ( {
- 'custnum' => '',
- 'agentnum' => $agentnum,
- 'refnum' => $refnum,
- 'last' => $last,
- 'first' => $first,
- 'ss' => $ss,
- 'company' => $company,
- 'address1' => $address1,
- 'address2' => $address2,
- 'city' => $city,
- 'county' => $county,
- 'state' => $state,
- 'zip' => $zip,
- 'country' => $country,
- 'daytime' => $daytime,
- 'night' => $night,
- 'fax' => $fax,
- 'payby' => $payby,
- 'payinfo' => $payinfo,
- 'paydate' => $paydate,
- 'payname' => $payname,
+ 'custnum' => '',
+ 'agentnum' => $agentnum,
+ 'refnum' => $refnum,
+ 'last' => $last,
+ 'first' => $first,
+ 'ss' => $ss,
+ 'company' => $company,
+ 'address1' => $address1,
+ 'address2' => $address2,
+ 'city' => $city,
+ 'county' => $county,
+ 'state' => $state,
+ 'zip' => $zip,
+ 'country' => $country,
+ 'daytime' => $daytime,
+ 'night' => $night,
+ 'fax' => $fax,
+ 'payby' => $payby,
+ 'payinfo' => $payinfo,
+ 'paydate' => $paydate,
+ 'payname' => $payname,
+ 'referral_custnum' => $referral_custnum,
} );
$error = "Illegal payment type" unless grep { $_ eq $payby } @payby;