Revert "RT# 77964 - Placed waive setup fee check back to billing.pm, and added check...
[freeside.git] / FS / FS / part_pkg / flat.pm
index cfee584..0bc3860 100644 (file)
@@ -118,22 +118,26 @@ sub calc_setup {
 
   return 0 if $self->prorate_setup($cust_pkg, $sdate);
 
-  my $i = 0;
-  my $count = $self->option( 'additional_count', 'quiet' ) || 0;
-  while ($i < $count) {
-    push @$details, $self->option( 'additional_info' . $i++ );
-  }
+  if (!$cust_pkg->waive_setup) {
+    my $i = 0;
+    my $count = $self->option( 'additional_count', 'quiet' ) || 0;
+    while ($i < $count) {
+      push @$details, $self->option( 'additional_info' . $i++ );
+    }
 
-  my $charge = $self->base_setup($cust_pkg, $sdate, $details);
+    my $charge = $self->base_setup($cust_pkg, $sdate, $details);
 
-  my $discount = 0;
-  if ( $charge > 0 ) {
-    $param->{'setup_charge'} = $charge;
-    $discount = $self->calc_discount($cust_pkg, $sdate, $details, $param);
-    delete $param->{'setup_charge'};
+    my $discount = 0;
+    if ( $charge > 0 ) {
+      $param->{'setup_charge'} = $charge;
+      $discount = $self->calc_discount($cust_pkg, $sdate, $details, $param);
+      delete $param->{'setup_charge'};
+    }
+
+    return sprintf( '%.2f', ($cust_pkg->quantity || 1) * ($charge - $discount) );
   }
 
-  sprintf( '%.2f', ($cust_pkg->quantity || 1) * ($charge - $discount) );
+  return;
 
 }