1 package FS::part_pkg::delayed_Mixin;
9 'free_days' => { 'name' => 'Initial free days',
12 'delay_setup' => { 'name' => 'Delay setup fee in addition to recurring fee',
15 'recur_notify' => { 'name' => 'Number of days before recurring billing'.
16 ' commences to notify customer. (0 means'.
21 'fieldorder' => [ 'free_days', 'delay_setup', 'recur_notify', ],
25 my($self, $cust_pkg, $time ) = @_;
27 unless ( $self->option('delay_setup', 1) ) {
28 my $d = $cust_pkg->bill || $time;
29 $d += 86400 * $self->option('free_days');
33 $self->option('setup_fee');
37 my ($self, $cust_pkg, %options) = @_;
39 unless ( $self->option('delay_setup', 1) ) {
40 my $last_bill = $cust_pkg->last_bill || 0;
41 my $next_bill = $cust_pkg->getfield('bill') || 0;
42 my $free_days = $self->option('free_days');
44 return 0 if $last_bill + (86400 * $free_days) == $next_bill
45 && $last_bill == $cust_pkg->setup;
48 return $self->SUPER::calc_remain($cust_pkg, %options);
51 sub can_start_date { ! shift->option('delay_setup', 1) }