electronic checks work in signup.cgi
[freeside.git] / fs_signup / FS-SignupClient / cgi / signup.cgi
index dc242bd..1b87045 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -Tw
 #
-# $Id: signup.cgi,v 1.34 2002-11-29 05:14:21 ivan Exp $
+# $Id: signup.cgi,v 1.29.2.5 2002-12-24 23:03:25 ivan Exp $
 
 use strict;
 use vars qw( @payby $cgi $locales $packages $pops $init_data $error
@@ -160,7 +160,12 @@ if ( defined $cgi->param('magic') ) {
     }
 
     $payby = $cgi->param('payby');
-    $payinfo = $cgi->param( $payby. '_payinfo' );
+    if ( $payby eq 'CHEK' ) {
+      #$payinfo = join('@', map { $cgi->param( $payby. "_payinfo$_" ) } (1,2) );
+      $payinfo = $cgi->param('CHEK_payinfo1').'@'.$cgi->param('CHEK_payinfo2');
+    } else {
+      $payinfo = $cgi->param( $payby. '_payinfo' );
+    }
     $paydate =
       $cgi->param( $payby. '_month' ). '-'. $cgi->param( $payby. '_year' );
     $payname = $cgi->param( $payby. '_payname' );
@@ -371,8 +376,7 @@ sub pop_info {
 
 #horrible false laziness with FS/FS/svc_acct_pop.pm::popselector
 sub popselector {
-
-  my( $popnum ) = @_;
+  my( $popnum, $state ) = @_;
 
   return '<INPUT TYPE="hidden" NAME="popnum" VALUE="">' unless @$pops;
   return $pops->[0]{city}. ', '. $pops->[0]{state}.
@@ -381,9 +385,7 @@ sub popselector {
     if scalar(@$pops) == 1;
 
   my %pop = ();
-  foreach (@$pops) {
-    push @{ $pop{ $_->{state} }->{ $_->{ac} } }, $_;
-  }
+  push @{ $pop{$_->{state}} }, $_ foreach @$pops;
 
   my $text = <<END;
     <SCRIPT>
@@ -392,82 +394,45 @@ sub popselector {
       var length = what.length;
       what.options[length] = optionName;
     }
-
-    function acstate_changed(what) {
+    
+    function popstate_changed(what) {
       state = what.options[what.selectedIndex].text;
-      for (var i = what.form.popac.length;i > 0;i--)
-                what.form.popac.options[i] = null;
-      what.form.popac.options[0] = new Option("Area code", "-1", false, true);
+      for (var i = what.form.popnum.length;i > 0;i--)
+                what.form.popnum.options[i] = null;
+      what.form.popnum.options[0] = new Option("", "", false, true);
 END
 
-  foreach my $state ( sort { $a cmp $b } keys %pop ) {
-    $text .= "\nif ( state == \"$state\" ) {\n";
+  foreach my $popstate ( sort { $a cmp $b } keys %pop ) {
+    $text .= "\nif ( state == \"$popstate\" ) {\n";
 
-    foreach my $ac ( sort { $a cmp $b } keys %{ $pop{$state} }) {
-      $text .= "opt(what.form.popac, \"$ac\", \"$ac\");\n";
-      if ($ac eq $cgi->param('popac')) {
-        $text .= "what.form.popac.options[what.form.popac.length-1].selected = true;\n";
-      }
-    }
-    $text .= "}\n";
-  }
-  $text .= "popac_changed(what.form.popac)}\n";
-
-  $text .= <<END;
-  function popac_changed(what) {
-    ac = what.options[what.selectedIndex].text;
-    for (var i = what.form.popnum.length;i > 0;i--)
-        what.form.popnum.options[i] = null;
-    what.form.popnum.options[0] = new Option("City", "-1", false, true);
+    foreach my $pop ( @{$pop{$popstate}}) {
+      my $o_popnum = $pop->{popnum};
+      my $poptext =  $pop->{city}. ', '. $pop->{state}.
+                     ' ('. $pop->{ac}. ')/'. $pop->{exch};
 
-END
-
-  foreach my $state ( keys %pop ) {
-    foreach my $popac ( keys %{ $pop{$state} } ) {
-      $text .= "\nif ( ac == \"$popac\" ) {\n";
-
-      foreach my $pop ( @{$pop{$state}->{$popac}}) {
-        my $o_popnum = $pop->{popnum};
-        my $poptext =  $pop->{city}. ', '. $pop->{state}.
-                       ' ('. $pop->{ac}. ')/'. $pop->{exch};
-
-        $text .= "opt(what.form.popnum, \"$o_popnum\", \"$poptext\");\n";
-        if ($popnum == $o_popnum) {
-          $text .= "what.form.popnum.options[what.form.popnum.length-1].selected = true;\n";
-        }
-      }
-      $text .= "}\n";
+      $text .= "opt(what.form.popnum, \"$o_popnum\", \"$poptext\");\n"
     }
+    $text .= "}\n";
   }
 
-
   $text .= "}\n</SCRIPT>\n";
 
   $text .=
-    qq!<TABLE CELLPADDING="0"><TR><TD><SELECT NAME="acstate"! .
-    qq!SIZE=1 onChange="acstate_changed(this)"><OPTION VALUE=-1>State!;
-  $text .= "<OPTION" . ($_ eq $cgi->param('acstate') ? " SELECTED" : "") .
-           ">$_" foreach sort { $a cmp $b } keys %pop;
-  $text .= '</SELECT>'; #callback? return 3 html pieces?  #'</TD>';
+    qq!<SELECT NAME="popstate" SIZE=1 onChange="popstate_changed(this)">!.
+    qq!<OPTION> !;
+  $text .= "<OPTION>$_" foreach sort { $a cmp $b } keys %pop;
+  $text .= '</SELECT>'; #callback? return 3 html pieces?  #'</TD><TD>';
 
-  $text .=
-    qq!<SELECT NAME="popac" SIZE=1 onChange="popac_changed(this)">!.
-    qq!<OPTION>Area code</SELECT></TR><TR VALIGN="top">!;
-
-  $text .= qq!<TR><TD><SELECT NAME="popnum" SIZE=1 STYLE="width: 20em"><OPTION>City!;
-
-  #comment this block to disable initial list polulation
-  foreach my $pop ( sort { $a->{state} cmp $b->{state} } @$pops ) {
+  $text .= qq!<SELECT NAME="popnum" SIZE=1><OPTION> !;
+  foreach my $pop ( @$pops ) {
     $text .= qq!<OPTION VALUE="!. $pop->{popnum}. '"'.
              ( ( $popnum && $pop->{popnum} == $popnum ) ? ' SELECTED' : '' ). ">".
              $pop->{city}. ', '. $pop->{state}.
                ' ('. $pop->{ac}. ')/'. $pop->{exch};
   }
-
-  $text .= qq!</SELECT></TD></TR></TABLE>!;
+  $text .= '</SELECT>';
 
   $text;
-
 }
 
 sub expselect {