$error = $self->cancel_expired_pkgs( $options{actual_time} );
if ( $error ) {
$error = "Error expiring custnum ". $self->custnum. ": $error";
- if ( $options{'fatal'} eq 'return' ) { return $error; }
- elsif ( $options{'fatal'} ) { die $error; }
- else { warn $error; }
+ if ( $options{fatal} && $options{fatal} eq 'return' ) { return $error; }
+ elsif ( $options{fatal} ) { die $error; }
+ else { warn $error; }
}
$error = $self->suspend_adjourned_pkgs( $options{actual_time} );
if ( $error ) {
$error = "Error adjourning custnum ". $self->custnum. ": $error";
- if ( $options{'fatal'} eq 'return' ) { return $error; }
- elsif ( $options{'fatal'} ) { die $error; }
- else { warn $error; }
+ if ( $options{fatal} && $options{fatal} eq 'return' ) { return $error; }
+ elsif ( $options{fatal} ) { die $error; }
+ else { warn $error; }
}
$error = $self->bill( %options );
if ( $error ) {
$error = "Error billing custnum ". $self->custnum. ": $error";
- if ( $options{'fatal'} eq 'return' ) { return $error; }
- elsif ( $options{'fatal'} ) { die $error; }
- else { warn $error; }
+ if ( $options{fatal} && $options{fatal} eq 'return' ) { return $error; }
+ elsif ( $options{fatal} ) { die $error; }
+ else { warn $error; }
}
$error = $self->apply_payments_and_credits;
if ( $error ) {
$error = "Error applying custnum ". $self->custnum. ": $error";
- if ( $options{'fatal'} eq 'return' ) { return $error; }
- elsif ( $options{'fatal'} ) { die $error; }
- else { warn $error; }
+ if ( $options{fatal} && $options{fatal} eq 'return' ) { return $error; }
+ elsif ( $options{fatal} ) { die $error; }
+ else { warn $error; }
}
unless ( $conf->exists('cancelled_cust-noevents')
$error = $self->collect( %options );
if ( $error ) {
$error = "Error collecting custnum ". $self->custnum. ": $error";
- if ( $options{'fatal'} eq 'return' ) { return $error; }
- elsif ( $options{'fatal'} ) { die $error; }
- else { warn $error; }
+ if ($options{fatal} && $options{fatal} eq 'return') { return $error; }
+ elsif ($options{fatal} ) { die $error; }
+ else { warn $error; }
}
}
my $old_cust_pkg = new FS::cust_pkg \%hash;
my @details = ();
-
+ my @discounts = ();
my $lineitems = 0;
$cust_pkg->pkgpart($part_pkg->pkgpart);
);
my %param = ( 'precommit_hooks' => $precommit_hooks,
'increment_next_bill' => $increment_next_bill,
+ 'discounts' => \@discounts,
);
my $method = $options{cancel} ? 'calc_cancel' : 'calc_recur';
'unitrecur' => $unitrecur,
'quantity' => $cust_pkg->quantity,
'details' => \@details,
+ 'discounts' => \@discounts,
'hidden' => $part_pkg->hidden,
};
warn " invalid conditions not eliminated with condition_sql:\n".
join('', map " $_: ".$unsat{$_}."\n", keys %unsat )
- if $DEBUG; # > 1;
+ if keys %unsat && $DEBUG; # > 1;
##
# insert