diff options
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/cust_svc.pm | 3 | ||||
-rw-r--r-- | FS/FS/svc_Common.pm | 3 | ||||
-rw-r--r-- | FS/FS/svc_circuit.pm | 14 |
3 files changed, 19 insertions, 1 deletions
diff --git a/FS/FS/cust_svc.pm b/FS/FS/cust_svc.pm index 974af67..376ef02 100644 --- a/FS/FS/cust_svc.pm +++ b/FS/FS/cust_svc.pm @@ -1205,9 +1205,10 @@ sub smart_search_param { my @or = map { my $table = $_; my $search_sql = "FS::$table"->search_sql($string); + my $addl_from = "FS::$table"->search_sql_addl_from(); "SELECT $table.svcnum AS svcnum, '$table' AS svcdb ". - "FROM $table WHERE $search_sql"; + "FROM $table $addl_from WHERE $search_sql"; } FS::part_svc->svc_tables; diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 355c383..35415a2 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -1349,6 +1349,9 @@ sub search_sql { #my( $class, $string ) = @_; '1 = 0'; #false } +sub search_sql_addl_from { + ''; +} =item search HASHREF diff --git a/FS/FS/svc_circuit.pm b/FS/FS/svc_circuit.pm index f705c68..408bd79 100644 --- a/FS/FS/svc_circuit.pm +++ b/FS/FS/svc_circuit.pm @@ -218,6 +218,20 @@ sub label { $self->get('circuit_id'); } +sub search_sql { + my ($class, $string) = @_; + my @where = (); + push @where, 'LOWER(svc_circuit.circuit_id) = \''.lc($string).'\''; + push @where, 'LOWER(circuit_provider.provider) = \''.lc($string).'\''; + push @where, 'LOWER(circuit_type.typename) = \''.lc($string).'\''; + '(' . join(' OR ', @where) . ')'; +} + +sub search_sql_addl_from { + 'LEFT JOIN circuit_provider USING ( providernum ) '. + 'LEFT JOIN circuit_type USING ( typenum )'; +} + =back =head1 SEE ALSO |