diff options
author | ivan <ivan> | 2010-11-04 20:35:55 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-11-04 20:35:55 +0000 |
commit | 936fa95f952d966d697586518717858aa874d778 (patch) | |
tree | 69332bf64214333dba0b8042ad40a35d179e3d9d /FS | |
parent | 696a5c1ac572c9327021d01d2d49121f1198c7da (diff) |
bill setup fees upon receiving a payment, for bill_every_call customers
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/cust_pay.pm | 30 | ||||
-rw-r--r-- | FS/FS/part_pkg/voip_cdr.pm | 2 |
2 files changed, 31 insertions, 1 deletions
diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm index aa43de466..014affeae 100644 --- a/FS/FS/cust_pay.pm +++ b/FS/FS/cust_pay.pm @@ -264,6 +264,36 @@ sub insert { } #eslaf + #bill setup fees for voip_cdr bill_every_call packages + #some false laziness w/search in freeside-cdrd + my $addl_from = + 'LEFT JOIN part_pkg USING ( pkgpart ) '. + "LEFT JOIN part_pkg_option + ON ( cust_pkg.pkgpart = part_pkg_option.pkgpart + AND part_pkg_option.optionname = 'bill_every_call' )"; + + my $extra_sql = " AND plan = 'voip_cdr' AND optionvalue = '1' ". + " AND ( cust_pkg.setup IS NULL OR cust_pkg.setup = 0 ) "; + + my @cust_pkg = qsearch({ + 'table' => 'cust_pkg', + 'addl_from' => $addl_from, + 'hashref' => { 'custnum' => $self->custnum, + 'susp' => '', + 'cancel' => '', + }, + 'extra_sql' => $extra_sql, + }); + + if ( @cust_pkg ) { + warn "voip_cdr bill_every_call packages found; billing customer\n"; + my $bill_error = $self->cust_main->bill_and_collect( 'fatal' => 'return' ); + if ( $bill_error ) { + warn "WARNING: Error billing customer: $bill_error\n"; + } + } + #end of billing setup fees for voip_cdr bill_every_call packages + $dbh->commit or die $dbh->errstr if $oldAutoCommit; #payment receipt diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index bcc2c6bc6..768f89487 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -222,7 +222,7 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities(); }, #eofalse - 'bill_every_call' => { 'name' => 'Generate an invoice immediately for every call. Useful for prepaid.', + 'bill_every_call' => { 'name' => 'Generate an invoice immediately for every call (as well any setup fee, upon first payment). Useful for prepaid.', 'type' => 'checkbox', }, |