1 package FS::part_event::Condition::referred_cust;
2 use base qw( FS::part_event::Condition );
4 sub description { 'Customer referred customers'; }
8 'number_referred' => { label => 'At least this many referred customers',
12 'active' => { label => 'Referred customers are active',
16 'if_pkg_class' => { label => 'Referred customers have an active package of class',
17 type => 'select-pkg_class',
24 my($self, $object, %opt) = @_;
26 my $cust_main = $self->cust_main($object);
28 my @referral_cust_main = $cust_main->referral_cust_main;
30 @referral_cust_main = grep $_->status eq 'active', @referral_cust_main
31 if $self->option('active');
33 my $if_pkg_class = $self->option('if_pkg_class') || {};
34 if ( keys %$if_pkg_class ) {
35 @referral_cust_main = grep {
37 grep $if_pkg_class->{$_->part_pkg->classnum}, $cust->active_pkgs;
38 } @referral_cust_main;
41 scalar(@referral_cust_main) >= $self->option('number_referred');
46 # my( $class, $table ) = @_;
48 # #XXX TODO: this optimization