per-customer option to force anniversary packages to prorate, #38191
[freeside.git] / FS / FS / part_pkg / prorate_calendar.pm
index 83a80f5..a8ed8f9 100644 (file)
@@ -36,7 +36,7 @@ use base 'FS::part_pkg::flat';
   },
   'fieldorder' => [ 'cutoff_day', 'prorate_defer_bill', 'prorate_round_day', 'prorate_verbose' ],
   'freq' => 'm',
-  'weight' => 20,
+  'weight' => 23,
 );
 
 my %freq_max_days = ( # the length of the shortest period of each cycle type
@@ -72,7 +72,11 @@ sub check {
 sub cutoff_day {
   my( $self, $cust_pkg ) = @_;
   my @periods = @{ $freq_cutoff_days{$self->freq} };
-  my @cutoffs = ($self->option('cutoff_day') || 1); # Jan 1 = 1
+  my $prorate_day = $cust_pkg->cust_main->prorate_day
+                    || $self->option('cutoff_day')
+                    || 1;
+
+  my @cutoffs = ($prorate_day);
   pop @periods; # we don't care about the last one
   foreach (@periods) {
     push @cutoffs, $cutoffs[-1] + $_;