1 package SL::Controller::TopQuickSearch::CustomerVendor;
 
   4 use parent qw(Rose::Object);
 
   6 use SL::Locale::String qw(t8);
 
   7 use SL::Controller::Helper::GetModels;
 
   8 use SL::Controller::Base;
 
  10 use Rose::Object::MakeMethods::Generic (
 
  11   'scalar --get_set_init' => [ qw(models) ],
 
  14 # nope. this is only for subclassing
 
  15 sub auth { 'NOT ALLOWED' }
 
  17 sub name { die 'must be overwritten' }
 
  19 sub description_config { die 'must be overwritten' }
 
  21 sub description_field { die 'must be overwritten' }
 
  23 sub query_autocomplete {
 
  26   my $objects = $self->models->get;
 
  30      value       => $_->displayable_name,
 
  31      label       => $_->displayable_name,
 
  37 sub select_autocomplete {
 
  38   $_[0]->redirect_to_object($::form->{id});
 
  44   my $objects = $self->models->get;
 
  46   return !@$objects     ? ()
 
  47        : @$objects == 1 ? $self->redirect_to_object($objects->[0]->id)
 
  48        :                  $self->redirect_to_search($::form->{term});
 
  51 sub redirect_to_search {
 
  52   SL::Controller::Base->new->url_for(
 
  53     controller => 'ct.pl',
 
  54     action     => 'list_names',
 
  60     (map {; "l_$_" => 'Y' } $_[0]->db . "number", qw(name street contact phone zipcode email city country gln)),
 
  65 sub redirect_to_object {
 
  66   SL::Controller::Base->new->url_for(
 
  67     controller => 'CustomerVendor',
 
  77   my $cvnumber = $self->db eq 'customer' ? 'customernumber' : 'vendornumber';
 
  79   SL::Controller::Helper::GetModels->new(
 
  81     model      => $self->model,
 
  84         'all:substr:multi::ilike' => $::form->{term}, # all filter spec is set in SL::DB::Manager::Customer
 
  85         or => [ obsolete => undef, obsolete => 0 ],
 
  93       $cvnumber => $self->db eq 'customer' ? t8('Customer Number') : t8('Vendor Number'),
 
 102   die 'must be overwritten'
 
 106   die 'must be overwritten'
 
 110   die 'must be overwritten'