fix billing error with intro rate packages when billing dates have been edited non...
[freeside.git] / FS / FS / part_pkg / prorate_Mixin.pm
index beae6d8..9e97cc5 100644 (file)
@@ -2,6 +2,7 @@ package FS::part_pkg::prorate_Mixin;
 
 use strict;
 use vars qw( %info );
+use Tie::IxHash;
 use Time::Local qw( timelocal timelocal_nocheck );
 use Date::Format qw( time2str );
 use List::Util qw( min );
@@ -107,7 +108,8 @@ sub calc_prorate {
      )
   {
     #warn "[calc_prorate] #".$cust_pkg->pkgnum.": running deferred setup\n";
-    $param->{'setup_fee'} = $self->calc_setup($cust_pkg, $$sdate, $details);
+    $param->{'setup_fee'} = $self->calc_setup($cust_pkg, $$sdate, $details)
+      unless $cust_pkg->{'Hash'}->{'waive_setup'};
     $mnow = $cust_pkg->setup;
     $add_period = 1;
   }
@@ -203,7 +205,7 @@ sub prorate_setup {
         # For some reason (probably user override), the bill date has been set even
         # though the package isn't billing yet. Start billing as though that was the
         # start date.
-        $sdate = $cust_pkg->bill;
+        $$sdate = $cust_pkg->bill;
         $cust_pkg->setup($cust_pkg->bill);
       }
       # Now figure the start and end of the period that contains the start date.