projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4d91274
)
fix multiple services w/cust_bill_has_service condition, RT#17035
author
Ivan Kohler
<ivan@freeside.biz>
Tue, 20 Mar 2012 18:34:35 +0000
(11:34 -0700)
committer
Ivan Kohler
<ivan@freeside.biz>
Tue, 20 Mar 2012 18:34:35 +0000
(11:34 -0700)
FS/FS/part_event/Condition/cust_bill_has_service.pm
patch
|
blob
|
history
diff --git
a/FS/FS/part_event/Condition/cust_bill_has_service.pm
b/FS/FS/part_event/Condition/cust_bill_has_service.pm
index
3f3c908
..
80c47cf
100644
(file)
--- a/
FS/FS/part_event/Condition/cust_bill_has_service.pm
+++ b/
FS/FS/part_event/Condition/cust_bill_has_service.pm
@@
-6,7
+6,7
@@
use FS::cust_bill;
use base qw( FS::part_event::Condition );
sub description {
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 {
}
sub eventtable_hashref {
@@
-34,10
+34,10
@@
sub condition {
#my($self, $cust_bill, %opt) = @_;
my($self, $cust_bill) = @_;
#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;
}
$cust_bill->cust_pkg;
}
@@
-45,13
+45,13
@@
sub condition_sql {
my( $class, $table, %opt ) = @_;
my $servicenum =
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
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;
)
|;
return $sql;