1 package SL::Controller::TopQuickSearch::PhoneNumber;
 
   4 use parent qw(SL::Controller::TopQuickSearch::Base);
 
   6 use SL::Controller::TopQuickSearch::Customer;
 
   7 use SL::Controller::TopQuickSearch::Vendor;
 
  10 use SL::DBUtils qw(like);
 
  11 use SL::Locale::String qw(t8);
 
  12 use SL::Util qw(trim);
 
  16 sub name { 'phone_number' }
 
  18 sub description_config { t8('All phone numbers') }
 
  20 sub description_field { t8('All phone numbers') }
 
  22 sub query_autocomplete {
 
  26   my $like_search_term = like(trim($::form->{term}));
 
  28   foreach my $model (qw(Customer Vendor)) {
 
  29     my $manager = 'SL::DB::Manager::' . $model;
 
  30     my $result  = $manager->get_all(
 
  31       query => [ or => [ 'obsolete' => 0, 'obsolete' => undef ],
 
  32                  or => [ phone                     => { ilike => $like_search_term },
 
  33                          fax                       => { ilike => $like_search_term },
 
  34                          'contacts.cp_phone1'      => { ilike => $like_search_term },
 
  35                          'contacts.cp_phone2'      => { ilike => $like_search_term },
 
  36                          'contacts.cp_fax'         => { ilike => $like_search_term },
 
  37                          'contacts.cp_mobile1'     => { ilike => $like_search_term },
 
  38                          'contacts.cp_mobile2'     => { ilike => $like_search_term },
 
  39                          'contacts.cp_satphone'    => { ilike => $like_search_term },
 
  40                          'contacts.cp_satfax'      => { ilike => $like_search_term },
 
  41                          'contacts.cp_privatphone' => { ilike => $like_search_term },
 
  43       with_objects => ['contacts']);
 
  46       value => $_->displayable_name,
 
  47       label => $_->displayable_name,
 
  48       id    => lc($model) . '_' . $_->id,
 
  55 sub select_autocomplete {
 
  58   if ($::form->{id} =~ m{^(customer|vendor)_(\d+)$}) {
 
  63     if ($type eq 'customer') {
 
  64       SL::Controller::TopQuickSearch::Customer->new->select_autocomplete;
 
  65     } elsif ($type eq 'vendor') {
 
  66       SL::Controller::TopQuickSearch::Vendor->new->select_autocomplete;
 
  74   my $results = $self->query_autocomplete;
 
  77     $::form->{id} = $results->[0]{id};
 
  78     return $self->select_autocomplete;
 
  82 # TODO: result overview page