X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_event%2FCondition%2Fbalance_credit_limit.pm;fp=FS%2FFS%2Fpart_event%2FCondition%2Fbalance_credit_limit.pm;h=1bc2aa1b7d500167cda76cb976d934c22c93e7f0;hb=cb0b8c862de7c7ab68b172faa29167f47894627b;hp=0000000000000000000000000000000000000000;hpb=197c503fbe112896332e9ca5f17c9c5a2ea4bb87;p=freeside.git 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 000000000..1bc2aa1b7 --- /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; +