use base qw( FS::part_event::Condition );
sub description {
- 'Invoice is billing for a certain service type';
+ 'Invoice is billing for certain service definitions';
}
sub eventtable_hashref {
#my($self, $cust_bill, %opt) = @_;
my($self, $cust_bill) = @_;
- my $servicenum = $self->option('has_service');
+ my $servicenum = $self->option('has_service') || {};
- grep { $servicenum == $_->svcpart }
- map { $_->cust_svc }
+ grep $servicenum->{ $_->svcpart },
+ map $_->cust_svc,
$cust_bill->cust_pkg;
}
my( $class, $table, %opt ) = @_;
my $servicenum =
- $class->condition_sql_option_integer('has_service', $opt{'driver_name'});
+ $class->condition_sql_option_option('has_service');
my $sql = qq| 0 < ( SELECT COUNT(cs.svcpart)
FROM cust_bill_pkg cbp, cust_svc cs
WHERE cbp.invnum = cust_bill.invnum
AND cs.pkgnum = cbp.pkgnum
- AND cs.svcpart = $servicenum
+ AND cs.svcpart IN $servicenum
)
|;
return $sql;