1 package FS::part_pkg::delayed_Mixin;
10 'free_days' => { 'name' => 'Initial free days',
13 'delay_setup' => { 'name' => 'Delay setup fee in addition to recurring fee',
16 'recur_notify' => { 'name' => 'Number of days before recurring billing'.
17 ' commences to notify customer. (0 means'.
22 'fieldorder' => [ 'free_days', 'delay_setup', 'recur_notify', ],
26 my($self, $cust_pkg, $time ) = @_;
28 unless ( $self->option('delay_setup', 1) ) {
29 my $d = $cust_pkg->bill || $time;
30 $d += 86400 * $self->option('free_days');
34 $self->option('setup_fee');
38 my ($self, $cust_pkg, %options) = @_;
40 unless ( $self->option('delay_setup', 1) ) {
41 my $last_bill = $cust_pkg->last_bill || 0;
42 my $next_bill = $cust_pkg->getfield('bill') || 0;
43 my $free_days = $self->option('free_days');
45 return 0 if $last_bill + (86400 * $free_days) == $next_bill
46 && $last_bill == $cust_pkg->setup;
49 return $self->NEXT::calc_remain($cust_pkg, %options);
52 sub can_start_date { ! shift->option('delay_setup', 1) }