add skip_dcontext_suffix to skip CDRs with dcontext ending in a definable string...
[freeside.git] / FS / FS / part_pkg / delayed_Mixin.pm
index ab53bda..751a723 100644 (file)
@@ -2,6 +2,7 @@ package FS::part_pkg::delayed_Mixin;
 
 use strict;
 use vars qw(%info);
+use Time::Local qw(timelocal);
 use NEXT;
 
 %info = (
@@ -50,6 +51,20 @@ sub calc_remain {
   return $self->NEXT::calc_remain($cust_pkg, %options);
 }
 
-sub can_start_date { ! shift->option('delay_setup', 1) }
+sub can_start_date {
+  my $self = shift;
+  ! $self->option('delay_setup', 1) && $self->NEXT::can_start_date(@_);
+}
+
+sub default_start_date {
+  my $self = shift;
+  if ( $self->option('delay_setup') and $self->option('free_days') ) {
+    my $delay = $self->option('free_days');
+
+    my ($mday, $mon, $year) = (localtime(time))[3,4,5];
+    return timelocal(0,0,0,$mday,$mon,$year) + 86400 * $self->option('free_days');
+  }
+  return $self->NEXT::default_start_date(@_);
+}
 
 1;