diff options
author | ivan <ivan> | 2010-08-24 20:09:52 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-08-24 20:09:52 +0000 |
commit | 45cf461c0ee09cead77db1252b0cc40d17c136d5 (patch) | |
tree | a0ca2f29d520ee3a2f59c924a72e0b8ab76ab3aa | |
parent | c2a0fd8311842fd4bd27a5bdc93081c9300c7131 (diff) |
insurance against prepaid double-billing, RT#9689
-rw-r--r-- | FS/bin/freeside-prepaidd | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/FS/bin/freeside-prepaidd b/FS/bin/freeside-prepaidd index 86bfe8794..2d64221de 100644 --- a/FS/bin/freeside-prepaidd +++ b/FS/bin/freeside-prepaidd @@ -41,21 +41,30 @@ while (1) { my $work_cust_pkg = $cust_pkg; my $cust_main = $cust_pkg->cust_main; + + #insurance: somehow winding up here without things properly applied... + my $a_error = $cust_main->apply_payments_and_credits; + if ( $a_error ) { + warn "Error applying payments&credits, customer #". $cust_main->custnum; + next; + } + if ( $cust_main->total_unapplied_payments > 0 - or $cust_main->total_credited > 0 + || $cust_main->total_credited > 0 ) { + #this needs a flag to say only do the prepaid packages... # and only try em if the renewal price matches.. but this will do for now my $b_error = $cust_main->bill; if ( $b_error ) { warn "Error billing customer #". $cust_main->custnum; - next; + next; } $b_error = $cust_main->apply_payments_and_credits; if ( $b_error ) { warn "Error applying payments&credits, customer #". $cust_main->custnum; - next; + next; } $work_cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $work_cust_pkg->pkgnum } ); |