my $dbh = dbh;
my $cust_main = qsearchs( 'cust_main', { 'custnum' => $self->custnum } );
+ unless ( $cust_main ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "Unknown custnum ". $self->custnum;
+ }
my $old_balance = $cust_main->balance;
if (!$self->reasonnum) {
if ($recur) {
$recur -= $cust_bill_pkg->credited('', '', setuprecur => 'recur') || 0;
}
+ # Skip line items that have been completely credited.
+ next if ($setup + $recur) == 0;
my $setup_ratio = $setup / ($setup + $recur);
- # Calculate the fraction of tax to credit: it's the fraction of this charge
- # (either setup or recur) that's being credited.
+ # Calculate the fraction of tax to credit: it's the fraction of this
+ # charge (either setup or recur) that's being credited.
my $charged = ($setuprecur eq 'setup') ? $setup : $recur;
next if $charged == 0; # shouldn't happen, but still...
my $invnum = $cust_bill_pkg->invnum;
$need_to_unapply -= $cust_bill_pkg->owed($setuprecur);
- next if $need_to_unapply < 0.005;
+ return if $need_to_unapply < 0.005;
my $error;
# then unapply payments one at a time (partially if need be) until the