Progress checkpoint on improved signup stuff for additional services
authorlawrence <lawrence>
Fri, 1 Sep 2006 01:51:46 +0000 (01:51 +0000)
committerlawrence <lawrence>
Fri, 1 Sep 2006 01:51:46 +0000 (01:51 +0000)
FS/FS/ClientAPI/Signup.pm
FS/FS/Conf.pm
fs_selfservice/FS-SelfService/cgi/signup.html

index 5d6eb0e..7589f16 100644 (file)
@@ -83,9 +83,25 @@ sub signup_info {
     'countrydefault' => $conf->config('countrydefault') || 'US',
 
     'refnum' => $conf->config('signup_server-default_refnum'),
-
   };
 
+
+
+  if ($conf->exists('signup_server-classnum2') || $conf->exists('signup_server-classnum3')) {
+      $signup_info->{optional_packages} = [];
+
+      if (my $classnum = $conf->config('signup_server-classnum2')) {
+         my @pkgs = map { $_->hashref } FS::Record::qsearch( 'part_pkg', { classnum => $classnum } );
+         push @{$signup_info->{optional_packages}}, \@pkgs;
+      }
+
+      if (my $classnum = $conf->config('signup_server-classnum3')) {
+         my @pkgs = map { $_->hashref } FS::Record::qsearch( 'part_pkg', { classnum => $classnum } );
+         push @{$signup_info->{optional_packages}}, \@pkgs;
+      }
+
+  }
+
   my $agentnum = $conf->config('signup_server-default_agentnum');
 
   my $session = '';
index f649511..ee1692a 100644 (file)
@@ -1201,6 +1201,26 @@ httemplate/docs/config.html
     'description' => 'Run billing for signup server signups immediately, and do not provision accounts which subsequently have a balance.',
     'type'        => 'checkbox',
   },
+  {
+      key         => 'signup_server-classnum2',
+      section     => '',
+      description => 'Package Class for first optional purchase',
+      type        => 'select-sub',
+      options_sub => sub { my @o = map { $_->{classnum} => $_->{classname} }  map { $_->hashref } FS::Record::qsearch('pkg_class',{});
+                          } ,
+      option_sub => sub { return map { $_->hashref->{classname}}  FS::Record::qsearchs('pkg_class', { classnum => shift } );  }, 
+
+  },
+
+  {
+      key         => 'signup_server-classnum3',
+      section     => '',
+      description => 'Package Class for second optional purchase',
+      type        => 'select-sub',
+      options_sub => sub { my @o = map { $_->{classnum} => $_->{classname} }  map { $_->hashref } FS::Record::qsearch('pkg_class',{});
+                          } ,
+      option_sub => sub { return map { $_->hashref->{classname}}  FS::Record::qsearchs('pkg_class', { classnum => shift } );  }, 
+  },
 
   {
     'key'         => 'backend-realtime',
@@ -1752,6 +1772,7 @@ httemplate/docs/config.html
     'type'        => 'text',
   },
 
+
 );
 
 1;
index 3e0f327..1ba3d77 100755 (executable)
@@ -257,6 +257,29 @@ ENDOUT
   }
 %>
 </TABLE>
+
+<%= 
+if ( @optional_packages ) { 
+  my @html;
+  foreach my $ii ( 0 .. $#optional_packages) {
+  my $friendly_index = $ii + 1; 
+  if ($optional_packages[$ii]) {
+    push @html, qq|Optional Package # $friendly_index <br />|,'<table bgcolor="#c0c0c0"><tr><td>';
+
+    push @html, qq|<select name="optional_package${ii}">|;
+    push @html, qq|<option value="none"></option>|;
+    push @html, map { qq|<option value="$_->{pkgpart}">$_->{pkg}</option>| } @{$optional_packages[$ii]};
+    push @html, q|</select>|;
+    
+    push @html, '</td></tr></table>';
+    }
+    $OUT = join("\n", @html);
+  }  
+} else {
+$OUT = ''
+}
+%>
+
 <BR><BR><INPUT TYPE="submit" NAME="signup" VALUE="Signup">
 <script language="JavaScript">