diff options
| author | Christopher Burger <burgerc@freeside.biz> | 2018-11-06 21:04:22 -0500 |
|---|---|---|
| committer | Christopher Burger <burgerc@freeside.biz> | 2018-11-06 21:04:22 -0500 |
| commit | ab42a6d76c5a5905d223d214e409f0527b2c5b9e (patch) | |
| tree | 02efdd4be7f0ce6532c4c05fdc623b28e71c275d /FS | |
| parent | f621fddd392f6bf809434ba5653acc645045e6bf (diff) | |
RT# 76093 - added ability for processing fee to be used with batch processing. V3 change
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/cust_main.pm | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 590783b27..88dd0e54b 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -2847,6 +2847,27 @@ sub batch_card { if ($options{'processing-fee'} > 0) { my $pf_cust_pkg; my $processing_fee_text = 'Payment Processing Fee'; + + unless ( $invnum ) { # probably from a payment screen + # do we have any open invoices? pick earliest + # uses the fact that cust_main->cust_bill sorts by date ascending + my @open = $self->open_cust_bill; + $invnum = $open[0]->invnum if scalar(@open); + } + + unless ( $invnum ) { # still nothing? pick last closed invoice + # again uses fact that cust_main->cust_bill sorts by date ascending + my @closed = $self->cust_bill; + $invnum = $closed[$#closed]->invnum if scalar(@closed); + } + + unless ( $invnum ) { + # XXX: unlikely case - pre-paying before any invoices generated + # what it should do is create a new invoice and pick it + warn '\PROCESS FEE AND NO INVOICES PICKED TO APPLY IT!'; + return ''; + } + my $pf_change_error = $self->charge({ 'amount' => $options{'processing-fee'}, 'pkg' => $processing_fee_text, |
