import torrus 1.0.9
[freeside.git] / FS / FS / part_event / Condition / cust_bill_has_service.pm
index c28047c..d85af26 100644 (file)
@@ -16,6 +16,9 @@ sub eventtable_hashref {
     };
 }
 
+# could not find component for path '/elements/tr-select-part_svc.html'
+# sub disabled { 1; }
+
 sub option_fields {
   (
     'has_service' => { 'label'      => 'Has service',
@@ -29,20 +32,22 @@ sub condition {
   my($self, $cust_bill) = @_;
 
   my $servicenum = $self->option('has_service');
-  grep { $servicenum == $_->svcnum } 
+  grep { $servicenum == $_->svcpart } 
   map { $_->cust_pkg->cust_svc }
   $cust_bill->cust_bill_pkg ;
 }
 
 sub condition_sql {
-  my( $class, $table ) = @_;
+  my( $class, $table, %opt ) = @_;
+
+  my $integer = $opt{'driver_name'} =~ /^mysql/ ? 'UNSIGNED INTEGER' : 'INTEGER';
   
   my $servicenum = $class->condition_sql_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 = CAST( $servicenum AS $integer )
   )
   |;
   return $sql;