X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=fs_signup%2FFS-SignupClient%2Fcgi%2Fsignup.cgi;h=5ca93d2891d49b2c9d5a56f3b5a65fc8f1391e9f;hb=9ae101389f2fe652575c6ab314a5e95c2283b72e;hp=09bdd43fa33de2da57425decea398c7e768c3315;hpb=af213c494294f73750b6b5b07ca828782ff3a9e4;p=freeside.git diff --git a/fs_signup/FS-SignupClient/cgi/signup.cgi b/fs_signup/FS-SignupClient/cgi/signup.cgi index 09bdd43fa..5ca93d289 100755 --- a/fs_signup/FS-SignupClient/cgi/signup.cgi +++ b/fs_signup/FS-SignupClient/cgi/signup.cgi @@ -1,12 +1,14 @@ #!/usr/bin/perl -Tw # -# $Id: signup.cgi,v 1.38 2003-07-04 00:51:29 ivan Exp $ +# $Id: signup.cgi,v 1.48 2003-10-25 02:05:44 ivan Exp $ use strict; -use vars qw( @payby $cgi $locales $packages $pops $init_data $error +use vars qw( @payby $cgi $locales $packages + $pops %pop %popnum2pop + $init_data $error $last $first $ss $company $address1 $address2 $city $state $county $country $zip $daytime $night $fax $invoicing_list $payby $payinfo - $paydate $payname $referral_custnum + $paycvv $paydate $payname $referral_custnum $init_popstate $pkgpart $username $password $password2 $sec_phrase $popnum $agentnum $ieak_file $ieak_template $cck_file $cck_template @@ -137,6 +139,12 @@ if ( -e $decline_html ) { ( $locales, $packages, $pops, $init_data ) = signup_info(); @payby = @{$init_data->{'payby'}} if @{$init_data->{'payby'}}; $packages = $init_data->{agentnum2part_pkg}{$agentnum} if $agentnum; +%pop = (); +%popnum2pop = (); +foreach (@$pops) { + push @{ $pop{ $_->{state} }->{ $_->{ac} } }, $_; + $popnum2pop{$_->{popnum}} = $_; +} $cgi = new CGI; @@ -170,6 +178,9 @@ if ( defined $cgi->param('magic') ) { $paydate = $cgi->param( $payby. '_month' ). '-'. $cgi->param( $payby. '_year' ); $payname = $cgi->param( $payby. '_payname' ); + $paycvv = defined $cgi->param( $payby. '_paycvv' ) + ? $cgi->param( $payby. '_paycvv' ) + : ''; if ( $invoicing_list = $cgi->param('invoicing_list') ) { $invoicing_list .= ', POST' if $cgi->param('invoicing_list_POST'); @@ -205,6 +216,8 @@ if ( defined $cgi->param('magic') ) { $password = $cgi->param('_password'); $popnum = $cgi->param('popnum'); #$agentnum, # = $cgi->param('agentnum'), + $agentnum ||= $cgi->param('agentnum'); + $init_popstate = $cgi->param('init_popstate'); if ( $cgi->param('_password') ne $cgi->param('_password2') ) { $error = $init_data->{msgcat}{passwords_dont_match}; #msgcat @@ -242,6 +255,7 @@ if ( defined $cgi->param('magic') ) { 'fax' => $fax, 'payby' => $payby, 'payinfo' => $payinfo, + 'paycvv' => $paycvv, 'paydate' => $paydate, 'payname' => $payname, 'invoicing_list' => $invoicing_list, @@ -252,6 +266,7 @@ if ( defined $cgi->param('magic') ) { '_password' => $password, 'popnum' => $popnum, 'agentnum' => $agentnum, + map { $_ => $cgi->param($_) } grep { /^snarf_/ } $cgi->param } ); } @@ -259,6 +274,9 @@ if ( defined $cgi->param('magic') ) { if ( $error eq '_decline' ) { print_decline(); } elsif ( $error ) { + #fudge the snarf info + no strict 'refs'; + ${$_} = $cgi->param($_) foreach grep { /^snarf_/ } $cgi->param; print_form(); } else { print_okay(); @@ -295,12 +313,14 @@ if ( defined $cgi->param('magic') ) { $sec_phrase = ''; $popnum = ''; $referral_custnum = $cgi->param('ref') || ''; + $init_popstate = $cgi->param('init_popstate') || ''; print_form; } sub print_form { $cgi->delete('ref'); + $cgi->delete('init_popstate'); $self_url = $cgi->self_url; $error = "Error: $error" if $error; @@ -328,7 +348,7 @@ sub print_okay { or die "fatal: invalid email_name got past FS::SignupClient::new_customer"; $email_name = $1; #global for template - my $pop = pop_info($cgi->param('popnum')); + my $pop = $popnum2pop{$cgi->param('popnum')}; #or die "fatal: invalid popnum got past FS::SignupClient::new_customer"; if ( $pop ) { ( $ac, $exch, $loc ) = ( $pop->{'ac'}, $pop->{'exch'}, $pop->{'loc'} ); @@ -366,15 +386,6 @@ sub print_okay { } } -sub pop_info { - my $popnum = shift; - my $pop; - foreach $pop ( @{$pops} ) { - if ( $pop->{'popnum'} == $popnum ) { return $pop; } - } - ''; -} - #horrible false laziness with FS/FS/svc_acct_pop.pm::popselector sub popselector { @@ -386,10 +397,12 @@ sub popselector { '' if scalar(@$pops) == 1; - my %pop = (); - foreach (@$pops) { - push @{ $pop{ $_->{state} }->{ $_->{ac} } }, $_; - } + #my %pop = (); + #my %popnum2pop = (); + #foreach (@$pops) { + # push @{ $pop{ $_->{state} }->{ $_->{ac} } }, $_; + # $popnum2pop{$_->{popnum}} = $_; + #} my $text = < @@ -398,15 +411,23 @@ sub popselector { var length = what.length; what.options[length] = optionName; } +END - function acstate_changed(what) { - state = what.options[what.selectedIndex].text; - what.form.popac.options.length = 0 - what.form.popac.options[0] = new Option("Area code", "-1", false, true); + if ( $init_popstate ) { + $text .= ''; + } else { + $text .= <'; #callback? return 3 html pieces? #''; $text .= @@ -460,8 +481,15 @@ END $text .= qq!