freeside/fs_signup/FS-SignupClient/cgi promocode.html,NONE,1.1 signup-billaddress.html,NONE,1.1 signup.cgi,1.52,1.53 signup.html,1.13,1.14

ivan ivan at pouncequick.420.am
Mon Nov 22 10:20:26 PST 2004


Update of /home/cvs/cvsroot/freeside/fs_signup/FS-SignupClient/cgi
In directory pouncequick:/tmp/cvs-serv15879/fs_signup/FS-SignupClient/cgi

Modified Files:
	signup.cgi signup.html 
Added Files:
	promocode.html signup-billaddress.html 
Log Message:
promo codes and separate signup addresses for hdn

Index: signup.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/fs_signup/FS-SignupClient/cgi/signup.cgi,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -d -r1.52 -r1.53
--- signup.cgi	1 Oct 2004 01:38:02 -0000	1.52
+++ signup.cgi	22 Nov 2004 18:20:21 -0000	1.53
@@ -7,8 +7,16 @@
 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
+
+             $last $first $ss $company $address1
+             $address2 $city $state $county
+             $country $zip $daytime $night $fax
+
+             $ship_last $ship_first $ship_ss $ship_company $ship_address1
+             $ship_address2 $ship_city $ship_state $ship_county
+             $ship_country $ship_zip $ship_daytime $ship_night $ship_fax
+
+             $invoicing_list $payby $payinfo
              $paycvv $paydate $payname $referral_custnum $init_popstate
              $pkgpart $username $password $password2 $sec_phrase $popnum
              $agentnum $refnum
@@ -21,14 +29,14 @@
              $self_url
            );
 use subs qw( print_form print_okay print_decline
-             success_default decline_default );
+             success_default decline_default
+           );
 use CGI;
 #use CGI::Carp qw(fatalsToBrowser);
 use Text::Template;
 use Business::CreditCard;
 use HTTP::BrowserDetect;
-use FS::SignupClient 0.03 qw( signup_info new_customer
-                              regionselector expselect popselector);
+use FS::SelfService qw( signup_info new_customer expselect );
 
 #acceptable payment methods
 #
@@ -124,8 +132,13 @@
     or die $Text::Template::ERROR;
 }
 
+$cgi = new CGI;
 
-( $locales, $packages, $pops, $init_data ) = signup_info();
+$init_data = signup_info( 'promo_code' => $cgi->param('promo_code') );
+$error = $init_data->{'error'};
+$locales = $init_data->{'cust_main_county'};
+$packages = $init_data->{'part_pkg'};
+$pops = $init_data->{'svc_acct_pop'};
 @payby = @{$init_data->{'payby'}} if @{$init_data->{'payby'}};
 $packages = $init_data->{agentnum2part_pkg}{$agentnum} if $agentnum;
 %pop = ();
@@ -135,8 +148,6 @@
   $popnum2pop{$_->{popnum}} = $_;
 }
 
-$cgi = new CGI;
-
 if ( defined $cgi->param('magic') ) {
   if ( $cgi->param('magic') eq 'process' ) {
 
@@ -193,6 +204,22 @@
     $daytime          = $cgi->param('daytime');
     $night            = $cgi->param('night');
     $fax              = $cgi->param('fax');
+
+    $ship_last        = $cgi->param('ship_last');
+    $ship_first       = $cgi->param('ship_first');
+    $ship_ss          = $cgi->param('ship_ss');
+    $ship_company     = $cgi->param('ship_company');
+    $ship_address1    = $cgi->param('ship_address1');
+    $ship_address2    = $cgi->param('ship_address2');
+    $ship_city        = $cgi->param('ship_city');
+    #$ship_county,
+    #$ship_state,
+    $ship_zip         = $cgi->param('ship_zip');
+    #$ship_country,
+    $ship_daytime     = $cgi->param('ship_daytime');
+    $ship_night       = $cgi->param('ship_night');
+    $ship_fax         = $cgi->param('ship_fax');
+
     #$payby,
     #$payinfo,
     #$paydate,
@@ -228,37 +255,56 @@
           or $error ||= $init_data->{msgcat}{not_a}. $cgi->param('CARD_type');
       }
 
-      $error ||= new_customer ( {
-        '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,
-        'paycvv'           => $paycvv,
-        'paydate'          => $paydate,
-        'payname'          => $payname,
-        'invoicing_list'   => $invoicing_list,
-        'referral_custnum' => $referral_custnum,
-        'pkgpart'          => $pkgpart,
-        'username'         => $username,
-        'sec_phrase'       => $sec_phrase,
-        '_password'        => $password,
-        'popnum'           => $popnum,
-        'agentnum'         => $agentnum,
-        'refnum'           => $refnum,
-        map { $_ => $cgi->param($_) } grep { /^snarf_/ } $cgi->param
-      } );
+      unless ( $error ) {
+
+        my $r = new_customer ( {
+          '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,
+          'ship_last'        => $ship_last,
+          'ship_first'       => $ship_first,
+          'ship_company'     => $ship_company,
+          'ship_address1'    => $ship_address1,
+          'ship_address2'    => $ship_address2,
+          'ship_city'        => $ship_city,
+          'ship_county'      => $ship_county,
+          'ship_state'       => $ship_state,
+          'ship_zip'         => $ship_zip,
+          'ship_country'     => $ship_country,
+          'ship_daytime'     => $ship_daytime,
+          'ship_night'       => $ship_night,
+          'ship_fax'         => $ship_fax,
+          'payby'            => $payby,
+          'payinfo'          => $payinfo,
+          'paycvv'           => $paycvv,
+          'paydate'          => $paydate,
+          'payname'          => $payname,
+          'invoicing_list'   => $invoicing_list,
+          'referral_custnum' => $referral_custnum,
+          'promo_code'       => $cgi->param('promo_code'),
+          'pkgpart'          => $pkgpart,
+          'username'         => $username,
+          'sec_phrase'       => $sec_phrase,
+          '_password'        => $password,
+          'popnum'           => $popnum,
+          'agentnum'         => $agentnum,
+          'refnum'           => $refnum,
+          map { $_ => $cgi->param($_) } grep { /^snarf_/ } $cgi->param
+        } );
+        $error ||= $r->{'error'};
+
+      }
 
     }
     
@@ -277,7 +323,7 @@
     die "unrecognized magic: ". $cgi->param('magic');
   }
 } else {
-  $error = '';
+  #$error = '';
   $last = '';
   $first = '';
   $ss = '';
@@ -292,6 +338,19 @@
   $daytime = '';
   $night = '';
   $fax = '';
+  $ship_last = '';
+  $ship_first = '';
+  $ship_company = '';
+  $ship_address1 = '';
+  $ship_address2 = '';
+  $ship_city = '';
+  $ship_state = $init_data->{statedefault};
+  $ship_county = '';
+  $ship_country = $init_data->{countrydefault};
+  $ship_zip = '';
+  $ship_daytime = '';
+  $ship_night = '';
+  $ship_fax = '';
   $invoicing_list = '';
   $payby = '';
   $payinfo = '';
@@ -331,17 +390,17 @@
   my $user_agent = new HTTP::BrowserDetect $ENV{HTTP_USER_AGENT};
 
   $cgi->param('username') =~ /^(.+)$/
-    or die "fatal: invalid username got past FS::SignupClient::new_customer";
+    or die "fatal: invalid username got past FS::SelfService::new_customer";
   my $username = $1;
   $cgi->param('_password') =~ /^(.+)$/
-    or die "fatal: invalid password got past FS::SignupClient::new_customer";
+    or die "fatal: invalid password got past FS::SelfService::new_customer";
   my $password = $1;
   ( $cgi->param('first'). ' '. $cgi->param('last') ) =~ /^(.*)$/
-    or die "fatal: invalid email_name got past FS::SignupClient::new_customer";
+    or die "fatal: invalid email_name got past FS::SelfService::new_customer";
   $email_name = $1; #global for template
 
   my $pop = $popnum2pop{$cgi->param('popnum')};
-    #or die "fatal: invalid popnum got past FS::SignupClient::new_customer";
+    #or die "fatal: invalid popnum got past FS::SelfService::new_customer";
   if ( $pop ) {
     ( $ac, $exch, $loc ) = ( $pop->{'ac'}, $pop->{'exch'}, $pop->{'loc'} );
   } else {
@@ -385,5 +444,42 @@
 support.
 </BODY></HTML>
 END
+}
+
+# subs for the templates...
+
+=item regionselector SELECTED_COUNTY, SELECTED_STATE, SELECTED_COUNTRY, PREFIX, ONCHANGE
+
+=cut
+
+sub regionselector {
+  my ( $selected_county, $selected_state, $selected_country,
+       $prefix, $onchange ) = @_;
+  signup_info() unless $init_data;
+  FS::SelfService::regionselector({
+    selected_county  => $selected_county,
+    selected_state   => $selected_state,
+    selected_country => $selected_country,
+    prefix           => $prefix,
+    onchange         => $onchange,
+    default_country  => $init_data->{countrydefault},
+    locales          => $init_data->{cust_main_county},
+  });
+    #default_state    => $init_data->{statedefault},
+}
+
+=item popselector 
+
+=cut
+
+sub popselector {
+  my( $popnum ) = @_;
+  signup_info() unless $init_data;
+  FS::SelfService::popselector({
+    popnum => $popnum,
+    pops   => $init_data->{svc_acct_pop},
+  });
+    #popac =>
+    #acstate =>
 }
 

Index: signup.html
===================================================================
RCS file: /home/cvs/cvsroot/freeside/fs_signup/FS-SignupClient/cgi/signup.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- signup.html	5 Sep 2004 22:42:13 -0000	1.13
+++ signup.html	22 Nov 2004 18:20:21 -0000	1.14
@@ -167,14 +167,17 @@
 
 </TR></TABLE><font color="#ff0000">*</font> required fields for each billing type
 <BR><BR>First package
-<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
+<INPUT TYPE="hidden" NAME="promo_code" VALUE="<%= $cgi->param('promo_code') %>"><TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
 <TR>
-  <TD COLSPAN=2><SELECT NAME="pkgpart"><OPTION VALUE="">(none)
+  <TD COLSPAN=2><SELECT NAME="pkgpart">
 
   <%=
+    $OUT .= '<OPTION VALUE="">(none)' unless scalar(@$packages) == 1;
     foreach my $package ( @{$packages} ) {
       $OUT .= '<OPTION VALUE="'. $package->{'pkgpart'}. '"';
-      $OUT .= ' SELECTED' if $pkgpart && $package->{'pkgpart'} == $pkgpart;
+      $OUT .= ' SELECTED'
+        if ( $pkgpart && $package->{'pkgpart'} == $pkgpart )
+           || scalar(@$packages) == 1;
       $OUT .= '>'. $package->{'pkg'};
     }
   %>

--- NEW FILE: promocode.html ---
<HTML><HEAD><TITLE>ISP Signup</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>ISP Signup - promotional code</FONT><BR><BR>
<SCRIPT>
function gotoURL(object) {
    window.location.href =  'signup.cgi?promo_code=' + object.promo_code.value;
}
</SCRIPT>
<FORM>
Enter promotional code <INPUT TYPE="text" NAME="promo_code">
<INPUT type="submit" VALUE="Signup" onClick="gotoURL(this.form)">

</FORM>
</BODY>
</HTML>

--- NEW FILE: signup-billaddress.html ---
<HTML><HEAD><TITLE>ISP Signup form</TITLE></HEAD>
<BODY BGCOLOR="#e8e8e8" onUnload="myclose()">
<script language="JavaScript"><!--
  var mywindow = -1;
  function myopen(filename,windowname,properties) {
    myclose();
    mywindow = window.open(filename,windowname,properties);
  }
  function myclose() {
    if ( mywindow != -1 )
      mywindow.close();
    mywindow = -1
  }
//--></script>
<FONT SIZE=7>ISP Signup form</FONT><BR><BR>
<FONT SIZE="+1" COLOR="#ff0000"><%= $error %></FONT>
<FORM NAME="OneTrueForm" ACTION="<%= $self_url %>" METHOD=POST onSubmit="document.OneTrueForm.signup.disabled=true">
<INPUT TYPE="hidden" NAME="magic" VALUE="process">
<INPUT TYPE="hidden" NAME="ref" VALUE="<%= $referral_custnum %>">
<INPUT TYPE="hidden" NAME="ss" VALUE="">
Where did you hear about our service? <SELECT NAME="refnum">
<%=
  $OUT .= '<OPTION VALUE="">' unless $refnum;
  foreach my $part_referral ( @{$init_data->{'part_referral'}} ) {
    $OUT .= '<OPTION VALUE="'. $part_referral->{'refnum'}. '"';
    $OUT .= ' SELECTED' if $part_referral->{'refnum'} eq $refnum;
    $OUT .= '>'. $part_referral->{'referral'};
  }
%>
</SELECT><BR><BR>
Billing Address (where credit card statement is sent)
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
  <TH ALIGN="right"><font color="#ff0000">*</font>Exact name on card<BR>(last, first)</TH>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="last" VALUE="<%= $last %>" onChange="changed(this)">,
                <INPUT TYPE="text" NAME="first" VALUE="<%= $first %>" onChange="changed(this)"></TD>
</TR>
<TR>
  <TD ALIGN="right">Company</TD>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="company" SIZE=70 VALUE="<%= $company %>" onChange="changed(this)"></TD>
</TR>
<TR>
  <TH ALIGN="right"><font color="#ff0000">*</font>Address</TH>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="address1" SIZE=70 VALUE="<%= $address1 %>" onChange="changed(this)"></TD>
</TR>
<TR>
  <TD ALIGN="right">&nbsp;</TD>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="address2" SIZE=70 VALUE="<%= $address2 %>" onChange="changed(this)"></TD>
</TR>
<TR>
  <TH ALIGN="right"><font color="#ff0000">*</font>City</TH>
  <TD><INPUT TYPE="text" NAME="city" VALUE="<%= $city %>" onChange="changed(this)"></TD>
  <TH ALIGN="right"><font color="#ff0000">*</font>State/Country</TH>
  <TD>
    <%=
        ($county_html, $state_html, $country_html) =
          regionselector( $county, $state, $country, '', 'changed(this)' );
 
        "$county_html $state_html";
    %>
  </TD>
  <TH><font color="#ff0000">*</font>Zip</TH>
  <TD><INPUT TYPE="text" NAME="zip" SIZE=10 VALUE="<%= $zip %>" onChange="changed(this)"></TD>
</TR>
<TR>
  <TH ALIGN="right"><font color="#ff0000">*</font>Country</TH>
  <TD><%= $country_html %></TD>
<TR>
  <TD ALIGN="right">Day Phone</TD>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="daytime" VALUE="<%= $daytime %>" SIZE=18 onChange="changed(this)"></TD>
</TR>
<TR>
  <TD ALIGN="right">Night Phone</TD>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="night" VALUE="<%= $night %>" SIZE=18 onChange="changed(this)"></TD>
</TR>
<TR>
  <TD ALIGN="right">Fax</TD>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="fax" VALUE="<%= $fax %>" SIZE=12 onChange="changed(this)"></TD>
</TR>
</TABLE>

<SCRIPT>
function changed(what) {
  what.form.same.checked = false;
}
function samechanged(what) {
  if ( what.checked ) {

    <%= foreach (qw(
          last first company address1 address2 city zip daytime night fax
        )) {
          $OUT .= "what.form.ship_$_.value = what.form.$_.value;\n";
        }
    %>

    what.form.ship_country.selectedIndex = what.form.country.selectedIndex;
    ship_country_changed(what.form.ship_country);
    what.form.ship_state.selectedIndex = what.form.state.selectedIndex;
    ship_state_changed(what.form.ship_state);
    what.form.ship_county.selectedIndex = what.form.county.selectedIndex;
  }
}
</SCRIPT>

<BR><BR>
Service Address
(<INPUT TYPE="checkbox" NAME="same" VALUE="Y" onClick="samechanged(this)" <%= $same eq 'Y' ? 'CHECKED' : '' %>>same as billing address)<BR>
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
  <TH ALIGN="right"><font color="#ff0000">*</font>Contact name<BR>(last, first)</TH>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="ship_last" VALUE="<%= $ship_last %>" onChange="changed(this)">,
                <INPUT TYPE="text" NAME="ship_first" VALUE="<%= $ship_first %>" onChange="changed(this)"></TD>
</TR>
<TR>
  <TD ALIGN="right">Company</TD>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="ship_company" SIZE=70 VALUE="<%= $ship_company %>" onChange="changed(this)"></TD>
</TR>
<TR>
  <TH ALIGN="right"><font color="#ff0000">*</font>Address</TH>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="ship_address1" SIZE=70 VALUE="<%= $ship_address1 %>" onChange="changed(this)"></TD>
</TR>
<TR>
  <TD ALIGN="right">&nbsp;</TD>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="ship_address2" SIZE=70 VALUE="<%= $ship_address2 %>" onChange="changed(this)"></TD>
</TR>
<TR>
  <TH ALIGN="right"><font color="#ff0000">*</font>City</TH>
  <TD><INPUT TYPE="text" NAME="ship_city" VALUE="<%= $ship_city %>" onChange="changed(this)"></TD>
  <TH ALIGN="right"><font color="#ff0000">*</font>State/Country</TH>
  <TD>
    <%=
        ($ship_county_html, $ship_state_html, $ship_country_html) =
          regionselector( $ship_county,
                          $ship_state,
                          $ship_country,
                          'ship_',
                          'changed(this)',
                        );
 
        "$ship_county_html $ship_state_html";
    %>
  </TD>
  <TH><font color="#ff0000">*</font>Zip</TH>
  <TD><INPUT TYPE="text" NAME="ship_zip" SIZE=10 VALUE="<%= $ship_zip %>" onChange="changed(this)"></TD>
</TR>
<TR>
  <TH ALIGN="right"><font color="#ff0000">*</font>Country</TH>
  <TD><%= $ship_country_html %></TD>
<TR>
  <TD ALIGN="right">Day Phone</TD>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="ship_daytime" VALUE="<%= $ship_daytime %>" SIZE=18 onChange="changed(this)"></TD>
</TR>
<TR>
  <TD ALIGN="right">Night Phone</TD>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="ship_night" VALUE="<%= $ship_night %>" SIZE=18 onChange="changed(this)"></TD>
</TR>
<TR>
  <TD ALIGN="right">Fax</TD>
  <TD COLSPAN=5><INPUT TYPE="text" NAME="ship_fax" VALUE="<%= $ship_fax %>" SIZE=12 onChange="changed(this)"></TD>
</TR>
</TABLE>

<font color="#ff0000">*</font> required fields<BR>

<BR>Billing information<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR><TD>

  <%=
    $OUT .= '<INPUT TYPE="checkbox" NAME="invoicing_list_POST" VALUE="POST"';
    my @invoicing_list = split(', ', $invoicing_list );
    $OUT .= ' CHECKED'
      if ! @invoicing_list || grep { $_ eq 'POST' } @invoicing_list;
    $OUT .= '>';
  %>

  Postal mail invoice
</TD></TR>
<TR><TD>Email invoice <INPUT TYPE="text" NAME="invoicing_list" VALUE="<%= join(', ', grep { $_ ne 'POST' } split(', ', $invoicing_list ) ) %>">
</TD></TR>
<%= scalar(@payby) > 1 ? '<TR><TD>Billing type</TD></TR>' : '' %>
</TABLE>
<TABLE BGCOLOR="#c0c0c0" BORDER=1 WIDTH="100%">
<TR>

  <%=

    my $cardselect = '<SELECT NAME="CARD_type"><OPTION></OPTION>';
    my %types = (
                  'VISA' => 'VISA card',
                  'MasterCard' => 'MasterCard',
                  'Discover' => 'Discover card',
                  'American Express' => 'American Express card',
                );
    foreach ( keys %types ) {
      $selected = $cgi->param('CARD_type') eq $types{$_} ? 'SELECTED' : '';
      $cardselect .= qq!<OPTION $selected VALUE="$types{$_}">$_</OPTION>!;
    }
    $cardselect .= '</SELECT>';
  
    my %payby = (
      'CARD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="CARD_payinfo" VALUE="" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("CARD"), #. qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="CARD_payname" VALUE="">!,
      'DCRD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="DCRD_payinfo" VALUE="" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("DCRD"), #. qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="DCRD_payname" VALUE="">!,
      'CHEK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="CHEK_payinfo1" VALUE="" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="CHEK_payinfo2" VALUE="" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="CHEK_month" VALUE="12"><INPUT TYPE="hidden" NAME="CHEK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="CHEK_payname" VALUE="">!,
      'DCHK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="DCHK_payinfo1" VALUE="" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="DCHK_payinfo2" VALUE="" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="DCHK_month" VALUE="12"><INPUT TYPE="hidden" NAME="DCHK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="DCHK_payname" VALUE="">!,
      'LECB' => qq!Phone bill billing<BR>${r}Phone number <INPUT TYPE="text" BANE="LECB_payinfo" VALUE="" MAXLENGTH=15 SIZE=16><INPUT TYPE="hidden" NAME="LECB_month" VALUE="12"><INPUT TYPE="hidden" NAME="LECB_year" VALUE="2037"><INPUT TYPE="hidden" NAME="LECB_payname" VALUE="">!,
      'BILL' => qq!Billing<BR>P.O. <INPUT TYPE="text" NAME="BILL_payinfo" VALUE=""><BR><font color="#ff0000">*</font>Exp !. expselect("BILL", "12-2037"). qq!<BR><font color="#ff0000">*</font>Attention<BR><INPUT TYPE="text" NAME="BILL_payname" VALUE="Accounts Payable">!,
      'COMP' => qq!Complimentary<BR><font color="#ff0000">*</font>Approved by<INPUT TYPE="text" NAME="COMP_payinfo" VALUE=""><BR><font color="#ff0000">*</font>Exp !. expselect("COMP"),
      'PREPAY' => qq!Prepaid card<BR><font color="#ff0000">*</font><INPUT TYPE="text" NAME="PREPAY_payinfo" VALUE="" MAXLENGTH=80>!,
    );

    if ( $init_data->{'cvv_enabled'} ) {
      foreach my $payby ( grep { exists $payby{$_} } qw(CARD DCRD) ) { #1.4/1.5
        $payby{$payby} .= qq!<BR>CVV2&nbsp;(<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>)&nbsp;<INPUT TYPE="text" NAME=${payby}_paycvv VALUE="" SIZE=4 MAXLENGTH=4>!;
      }
    }

    my( $account, $aba ) = split('@', $payinfo);
    my %paybychecked = (
      'CARD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="CARD_payinfo" VALUE="$payinfo" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("CARD", $paydate), #. qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="CARD_payname" VALUE="$payname">!,
      'DCRD' => qq!Credit card<BR><font color="#ff0000">*</font>$cardselect<INPUT TYPE="text" NAME="DCRD_payinfo" VALUE="$payinfo" MAXLENGTH=19><BR><font color="#ff0000">*</font>Exp !. expselect("DCRD", $paydate), #. qq!<BR><font color="#ff0000">*</font>Name on card<BR><INPUT TYPE="text" NAME="DCRD_payname" VALUE="$payname">!,
      'CHEK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="CHEK_payinfo1" VALUE="$account" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="CHEK_payinfo2" VALUE="$aba" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="CHEK_month" VALUE="12"><INPUT TYPE="hidden" NAME="CHEK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="CHEK_payname" VALUE="$payname">!,
      'DCHK' => qq!Electronic check<BR>${r}Account number <INPUT TYPE="text" NAME="DCHK_payinfo1" VALUE="$account" MAXLENGTH=10><BR>${r}ABA/Routing code <INPUT TYPE="text" NAME="DCHK_payinfo2" VALUE="$aba" SIZE=10 MAXLENGTH=9><INPUT TYPE="hidden" NAME="DCHK_month" VALUE="12"><INPUT TYPE="hidden" NAME="DCHK_year" VALUE="2037"><BR>${r}Bank name <INPUT TYPE="text" NAME="DCHK_payname" VALUE="$payname">!,
      'LECB' => qq!Phone bill billing<BR>${r}Phone number <INPUT TYPE="text" BANE="LECB_payinfo" VALUE="$payinfo" MAXLENGTH=15 SIZE=16><INPUT TYPE="hidden" NAME="LECB_month" VALUE="12"><INPUT TYPE="hidden" NAME="LECB_year" VALUE="2037"><INPUT TYPE="hidden" NAME="LECB_payname" VALUE="">!,
      'BILL' => qq!Billing<BR>P.O. <INPUT TYPE="text" NAME="BILL_payinfo" VALUE="$payinfo"><BR><font color="#ff0000">*</font>Exp !. expselect("BILL", $paydate). qq!<BR><font color="#ff0000">*</font>Attention<BR><INPUT TYPE="text" NAME="BILL_payname" VALUE="$payname">!,
      'COMP' => qq!Complimentary<BR><font color="#ff0000">*</font>Approved by<INPUT TYPE="text" NAME="COMP_payinfo" VALUE="$payinfo"><BR><font color="#ff0000">*</font>Exp !. expselect("COMP", $paydate),
      'PREPAY' => qq!Prepaid card<BR><font color="#ff0000">*</font><INPUT TYPE="text" NAME="PREPAY_payinfo" VALUE="$payinfo" MAXLENGTH=80>!,
    );

    if ( $init_data->{'cvv_enabled'} ) {
      foreach my $payby ( grep { exists $payby{$_} } qw(CARD DCRD) ) { #1.4/1.5
        $paybychecked{$payby} .= qq!<BR>CVV2&nbsp;(<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>)&nbsp;<INPUT TYPE="text" NAME=${payby}_paycvv VALUE="$paycvv" SIZE=4 MAXLENGTH=4>!;
      }
    }

    for (@payby) {
      if ( scalar(@payby) == 1) {
        $OUT .= '<TD VALIGN=TOP>'.
                qq!<INPUT TYPE="hidden" NAME="payby" VALUE="$_">!.
                "$paybychecked{$_}</TD>";
      } else {
        $OUT .= qq!<TD VALIGN=TOP><INPUT TYPE="radio" NAME="payby" VALUE="$_"!;
        if ($payby eq $_) {
          $OUT .= qq! CHECKED> $paybychecked{$_}</TD>!;
        } else {
          $OUT .= qq!> $payby{$_}</TD>!;
        }

      }
    }
  %>

</TR></TABLE><font color="#ff0000">*</font> required fields for each billing type
<BR><BR>First package
<INPUT TYPE="hidden" NAME="promo_code" VALUE="<%= $cgi->param('promo_code') %>">
<TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=0 WIDTH="100%">
<TR>
  <TD COLSPAN=2><SELECT NAME="pkgpart">

  <%=
    $OUT .= '<OPTION VALUE="">(none)' unless scalar(@$packages) == 1;
    foreach my $package ( @{$packages} ) {
      $OUT .= '<OPTION VALUE="'. $package->{'pkgpart'}. '"';
      $OUT .= ' SELECTED'
        if ( $pkgpart && $package->{'pkgpart'} == $pkgpart )
           || scalar(@$packages) == 1;
      $OUT .= '>'. $package->{'pkg'};
    }
  %>

  </SELECT></TD>
</TR>
<TR>
  <TD ALIGN="right">Username</TD>
  <TD><INPUT TYPE="text" NAME="username" VALUE="<%= $username %>"></TD>
</TR>
<TR>
  <TD ALIGN="right">Password</TD>
  <TD><INPUT TYPE="password" NAME="_password" VALUE="<%= $password %>"></TD>
</TR>
<TR>
  <TD ALIGN="right">Re-enter Password</TD>
  <TD><INPUT TYPE="password" NAME="_password2" VALUE="<%= $password2 %>"></TD>
</TR>
<%=
  if ( $init_data->{'security_phrase'} ) {
    $OUT .= <<ENDOUT;
<TR>
  <TD ALIGN="right">Security Phrase</TD>
  <TD><INPUT TYPE="text" NAME="sec_phrase" VALUE="$sec_phrase">
  </TD>
</TR>
ENDOUT
  } else {
    $OUT .= '<INPUT TYPE="hidden" NAME="sec_phrase" VALUE="">';
  }
%>
<%=
  if ( scalar(@$pops) ) {
    $OUT .= '<TR><TD ALIGN="right">Access number</TD><TD>'.
            popselector($popnum). '</TD></TR>';
  } else {
    $OUT .= popselector($popnum);
  }
%>
</TABLE>
<BR><BR><INPUT TYPE="submit" NAME="signup" VALUE="Signup">
</FORM></BODY></HTML>




More information about the freeside-commits mailing list