From 207978f5897048e616e2c49a6e11cf8af35b0444 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Thu, 24 Apr 2014 20:23:48 -0700 Subject: [PATCH] allow fees to be charged based on batch payment attempts, #27778 --- FS/FS/cust_event_fee.pm | 9 +++++++++ FS/FS/cust_main/Billing.pm | 5 ++++- FS/FS/part_event/Action/cust_fee.pm | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/FS/FS/cust_event_fee.pm b/FS/FS/cust_event_fee.pm index ad78b0e14..f668633ee 100644 --- a/FS/FS/cust_event_fee.pm +++ b/FS/FS/cust_event_fee.pm @@ -153,6 +153,15 @@ sub by_cust { table => 'cust_event_fee', addl_from => 'JOIN cust_event USING (eventnum) ' . 'JOIN part_event USING (eventpart) ' . + 'JOIN cust_pay_batch ON (cust_event.tablenum = cust_pay_batch.paybatchnum)', + extra_sql => "$where eventtable = 'cust_pay_batch' ". + "AND cust_pay_batch.custnum = $custnum", + %params + }), + qsearch({ + table => 'cust_event_fee', + addl_from => 'JOIN cust_event USING (eventnum) ' . + 'JOIN part_event USING (eventpart) ' . 'JOIN cust_pkg ON (cust_event.tablenum = cust_pkg.pkgnum)', extra_sql => "$where eventtable = 'cust_pkg' ". "AND cust_pkg.custnum = $custnum", diff --git a/FS/FS/cust_main/Billing.pm b/FS/FS/cust_main/Billing.pm index bdb4520cf..d0fd12cfa 100644 --- a/FS/FS/cust_main/Billing.pm +++ b/FS/FS/cust_main/Billing.pm @@ -570,7 +570,10 @@ sub bill { my $object = $event_fee->cust_event->cust_X; my $part_fee = $event_fee->part_fee; my $cust_bill; - if ( $object->isa('FS::cust_main') or $object->isa('FS::cust_pkg') ) { + if ( $object->isa('FS::cust_main') + or $object->isa('FS::cust_pkg') + or $object->isa('FS::cust_pay_batch') ) + { # Not the real cust_bill object that will be inserted--in particular # there are no taxes yet. If you want to charge a fee on the total # invoice amount including taxes, you have to put the fee on the next diff --git a/FS/FS/part_event/Action/cust_fee.pm b/FS/FS/part_event/Action/cust_fee.pm index 9373091ab..27ca2a1d0 100644 --- a/FS/FS/part_event/Action/cust_fee.pm +++ b/FS/FS/part_event/Action/cust_fee.pm @@ -6,7 +6,8 @@ use base qw( FS::part_event::Action::Mixin::fee ); sub description { 'Charge a fee based on the customer\'s current invoice'; } sub eventtable_hashref { - { 'cust_main' => 1 }; + { 'cust_main' => 1, + 'cust_pay_batch' => 1 }; } sub hold_until_bill { 1 } -- 2.11.0