},
'prorate_round_day' => {
'name' => 'When synchronizing, round the prorated '.
- 'period to the nearest full day',
- 'type' => 'checkbox',
+ 'period',
+ 'type' => 'select',
+ 'select_options' => \%FS::part_pkg::prorate_Mixin::prorate_round_day_opts,
},
'add_full_period' => { 'disabled' => 1 }, # doesn't make sense with sync?
sub base_setup {
my($self, $cust_pkg, $sdate, $details ) = @_;
- ( exists( $self->{'Hash'}{'_opt_setup_fee'} )
- ? $self->{'Hash'}{'_opt_setup_fee'}
- : $self->option('setup_fee', 1)
- )
- || 0;
+ $self->option('setup_fee', 1) || 0;
}
sub calc_recur {
my $cust_pkg = shift;
if ( $self->option('sync_bill_date',1) ) {
my $next_bill = $cust_pkg->cust_main->next_bill_date;
- if ( defined($next_bill) ) {
+ if ( $next_bill ) {
# careful here. if the prorate calculation is going to round to
# the nearest day, this needs to always return the same result
if ( $self->option('prorate_round_day', 1) ) {
sub base_recur {
my($self, $cust_pkg, $sdate) = @_;
- ( exists( $self->{'Hash'}{'_opt_recur_fee'} )
- ? $self->{'Hash'}{'_opt_recur_fee'}
- : $self->option('recur_fee', 1)
- )
- || 0;
+ $self->option('recur_fee', 1) || 0;
}
sub base_recur_permonth {
}
}
+# no longer used; see credit_remaining in FS::cust_pkg
+
sub calc_remain {
my ($self, $cust_pkg, %options) = @_;