warn "can't send payment receipt/statement: $error" if $error;
}
+ #run payment events immediately
+ my $due_cust_event = $self->cust_main->due_cust_event(
+ 'eventtable' => 'cust_pay',
+ 'objects' => [ $self ],
+ );
+ if ( !ref($due_cust_event) ) {
+ warn "Error searching for cust_pay billing events: $due_cust_event\n";
+ } else {
+ foreach my $cust_event (@$due_cust_event) {
+ next unless $cust_event->test_conditions;
+ if ( my $error = $cust_event->do_event() ) {
+ warn "Error running cust_pay billing event: $error\n";
+ }
+ }
+ }
+
'';
}
}
} elsif ( !$error ) { #normal case: apply payments as usual
- $cust_pay->cust_main->apply_payments;
+ $cust_pay->cust_main->apply_payments( 'manual'=>1 );
}
}
my $cust_pay = shift;
my $cust_main = $cust_pay->cust_main
or return "can't find customer to which payments apply";
- my $error = $cust_main->apply_payments_and_credits;
+ my $error = $cust_main->apply_payments_and_credits( 'manual'=>1 );
return $error
? "can't apply payments to customer ".$cust_pay->custnum."$error"
: '';