fix order_pkg-no_start_date option, RT#25650, fallout from RT#24955, fallout from...
[freeside.git] / FS / FS / ClientAPI / Signup.pm
index 595f4fb..b11e36f 100644 (file)
@@ -185,8 +185,6 @@ sub signup_info {
       'signup_service'     => $svc_x,
       'company_name'       => scalar($conf->config('company_name')),
       #per-agent?
-      'agent_ship_address' => scalar($conf->exists('agent-ship_address')),
-      'require_phone'      => scalar($conf->exists('cust_main-require_phone')),
       'logo'               => scalar($conf->config_binary('logo.png')),
       'prepaid_template_custnum' => $conf->exists('signup_server-prepaid-template-custnum'),
     };
@@ -375,13 +373,6 @@ sub signup_info {
 
     $signup_info->{'company_name'} = $conf->config('company_name', $agentnum);
 
-    if ( $signup_info->{'agent_ship_address'} && $agent->agent_custnum ) {
-      my $cust_main = $agent->agent_cust_main;
-      my $prefix = length($cust_main->ship_last) ? 'ship_' : '';
-      $signup_info->{"ship_$_"} = $cust_main->get("$prefix$_")
-        foreach qw( address1 city county state zip country );
-    }
-
     #some of the above could probably be cached, too
 
     my $signup_info_cache_agent = $cache->get("signup_info_cache_agent$agentnum");
@@ -403,8 +394,23 @@ sub signup_info {
           qw( body_bgcolor box_bgcolor menu_bgcolor ) ),
         ( map { $_ => join("\n", $conf->config("selfservice-$_", $agentnum ) ) }
           qw( head body_header body_footer ) ),
+        ( map { $_ => join("\n", $conf->config("signup_server-$_", $agentnum ) ) }
+          qw( terms_of_service ) ),
+
+        ( map { $_ => scalar($conf->exists($_, $agentnum)) } 
+          qw(cust_main-require_phone agent-ship_address) ),
       };
 
+      if ( $signup_info_cache_agent->{'agent-ship_address'} 
+           && $agent->agent_cust_main ) {
+
+        my $cust_main = $agent->agent_cust_main;
+        my $prefix = length($cust_main->ship_last) ? 'ship_' : '';
+        $signup_info_cache_agent->{"ship_$_"} = $cust_main->get("$prefix$_")
+          foreach qw( address1 city county state zip country );
+
+      }
+
       $cache->set("signup_info_cache_agent$agentnum", $signup_info_cache_agent);
 
     }
@@ -572,7 +578,9 @@ sub new_customer {
   }
 
   my $agent = qsearchs('agent', { 'agentnum' => $agentnum } );
-  if ( $conf->exists('agent_ship_address') && $agent->agent_custnum ) {
+  if ( $conf->exists('agent-ship_address', $agentnum) 
+    && $agent->agent_custnum ) {
+
     my $agent_cust_main = $agent->agent_cust_main;
     my $prefix = length($agent_cust_main->ship_last) ? 'ship_' : '';
     $cust_main->set("ship_$_", $agent_cust_main->get("$prefix$_") )
@@ -754,13 +762,15 @@ sub new_customer {
     #     " new customer: $bill_error"
     #  if $bill_error;
 
-    $bill_error = $cust_main->realtime_collect(
-       method        => FS::payby->payby2bop( $packet->{payby} ),
-       depend_jobnum => $placeholder->jobnum,
-       selfservice   => 1,
-    );
-    #warn "$me error collecting from new customer: $bill_error"
-    #  if $bill_error;
+    unless ( $packet->{payby} eq 'PREPAY' ) {
+      $bill_error = $cust_main->realtime_collect(
+         method        => FS::payby->payby2bop( $packet->{payby} ),
+         depend_jobnum => $placeholder->jobnum,
+         selfservice   => 1,
+      );
+      #warn "$me error collecting from new customer: $bill_error"
+      #  if $bill_error;
+    }
 
     if ($bill_error && ref($bill_error) eq 'HASH') {
       return { 'error' => '_collect',