diff options
Diffstat (limited to 'FS/FS/part_event/Condition/balance_credit_limit.pm')
-rw-r--r-- | FS/FS/part_event/Condition/balance_credit_limit.pm | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/FS/FS/part_event/Condition/balance_credit_limit.pm b/FS/FS/part_event/Condition/balance_credit_limit.pm new file mode 100644 index 0000000..1bc2aa1 --- /dev/null +++ b/FS/FS/part_event/Condition/balance_credit_limit.pm @@ -0,0 +1,32 @@ +package FS::part_event::Condition::balance_credit_limit; + +use strict; +use FS::cust_main; + +use base qw( FS::part_event::Condition ); + +sub description { 'Customer is over credit limit'; } + +sub condition { + my($self, $object) = @_; + + my $cust_main = $self->cust_main($object); + + my $over = $cust_main->credit_limit; + return 0 if !length($over); # if credit limit is null, no limit + + $cust_main->balance > $over; +} + +sub condition_sql { + my( $class, $table ) = @_; + + my $balance_sql = FS::cust_main->balance_sql; + + "(cust_main.credit_limit IS NULL OR + $balance_sql - cust_main.credit_limit > 0 )"; + +} + +1; + |