import torrus 1.0.9
[freeside.git] / FS / FS / part_event / Condition / balance_credit_limit.pm
1 package FS::part_event::Condition::balance_credit_limit;
2
3 use strict;
4 use FS::cust_main;
5
6 use base qw( FS::part_event::Condition );
7
8 sub description { 'Customer is over credit limit'; }
9
10 sub condition {
11   my($self, $object) = @_;
12
13   my $cust_main = $self->cust_main($object);
14
15   my $over = $cust_main->credit_limit;
16   return 0 if !length($over); # if credit limit is null, no limit
17
18   $cust_main->balance > $over;
19 }
20
21 sub condition_sql {
22   my( $class, $table ) = @_;
23
24   my $balance_sql = FS::cust_main->balance_sql;
25
26   "(cust_main.credit_limit IS NULL OR
27     $balance_sql - cust_main.credit_limit > 0 )";
28
29 }
30
31 1;
32