X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fct.pl;h=ba2a86affddf3348ce7ceada250fc832ffb56a81;hb=a9866c42a27df61e776ea65322bfb095e5f6fa1b;hp=513a7ff219663c250af6db84cfc897539a5776f5;hpb=b176ba35718932cb1ce36f3e3713a12f2e23afab;p=kivitendo-erp.git diff --git a/bin/mozilla/ct.pl b/bin/mozilla/ct.pl index 513a7ff21..ba2a86aff 100644 --- a/bin/mozilla/ct.pl +++ b/bin/mozilla/ct.pl @@ -25,7 +25,8 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1335, USA. #====================================================================== # # customer/vendor module @@ -48,12 +49,15 @@ use POSIX qw(strftime); use SL::CT; +use SL::CTI; use SL::CVar; use SL::Request qw(flatten); use SL::DB::Business; use SL::DB::Default; -use SL::Helper::Flash; +use SL::DB::DeliveryTerm; use SL::ReportGenerator; +use SL::Locale::String qw(t8); +use SL::MoreCommon qw(uri_encode); require "bin/mozilla/common.pl"; require "bin/mozilla/reportgenerator.pl"; @@ -63,25 +67,6 @@ use strict; # end of main -sub add { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - $form->{title} = "Add"; - $form->{callback} = "$form->{script}?action=add&db=$form->{db}" unless $form->{callback}; - - CT->populate_drop_down_boxes(\%myconfig, \%$form); - - &form_header; - &form_footer; - - $main::lxdebug->leave_sub(); -} - sub search { $main::lxdebug->enter_sub(); @@ -92,7 +77,8 @@ sub search { $form->{IS_CUSTOMER} = $form->{db} eq 'customer'; - $form->get_lists("business_types" => "ALL_BUSINESS_TYPES"); + $form->get_lists("business_types" => "ALL_BUSINESS_TYPES", + "salesmen" => "ALL_SALESMEN"); $form->{SHOW_BUSINESS_TYPES} = scalar @{ $form->{ALL_BUSINESS_TYPES} } > 0; $form->{CUSTOM_VARIABLES} = CVar->get_configs('module' => 'CT'); @@ -103,6 +89,8 @@ sub search { $form->{title} = $form->{IS_CUSTOMER} ? $locale->text('Customers') : $locale->text('Vendors'); + setup_ct_search_action_bar(); + $form->header(); print $form->parse_html_template('ct/search'); @@ -121,6 +109,8 @@ sub search_contact { 'include_value' => 'Y'); $::form->{title} = $::locale->text('Search contacts'); + + setup_ct_search_contact_action_bar(); $::form->header; print $::form->parse_html_template('ct/search_contact'); @@ -151,15 +141,17 @@ sub list_names { push @options, $locale->text('Orphaned'); } - push @options, $locale->text('Name') . " : $form->{name}" if $form->{name}; - push @options, $locale->text('Contact') . " : $form->{contact}" if $form->{contact}; - push @options, $locale->text('Number') . qq| : $form->{"$form->{db}number"}| if $form->{"$form->{db}number"}; - push @options, $locale->text('E-mail') . " : $form->{email}" if $form->{email}; - push @options, $locale->text('Contact person (surname)') . " : $form->{cp_name}" if $form->{cp_name}; - push @options, $locale->text('Billing/shipping address (city)') . " : $form->{addr_city}" if $form->{addr_city}; - push @options, $locale->text('Billing/shipping address (zipcode)') . " : $form->{zipcode}" if $form->{addr_zipcode}; - push @options, $locale->text('Billing/shipping address (street)') . " : $form->{street}" if $form->{addr_street}; - push @options, $locale->text('Billing/shipping address (country)') . " : $form->{country}" if $form->{addr_country}; + push @options, $locale->text('Name') . " : $form->{name}" if $form->{name}; + push @options, $locale->text('Contact') . " : $form->{contact}" if $form->{contact}; + push @options, $locale->text('Number') . qq| : $form->{"$form->{db}number"}| if $form->{"$form->{db}number"}; + push @options, $locale->text('E-mail') . " : $form->{email}" if $form->{email}; + push @options, $locale->text('Contact person (surname)') . " : $form->{cp_name}" if $form->{cp_name}; + push @options, $locale->text('Billing/shipping address (city)') . " : $form->{addr_city}" if $form->{addr_city}; + push @options, $locale->text('Billing/shipping address (zipcode)') . " : $form->{addr_zipcode}" if $form->{addr_zipcode}; + push @options, $locale->text('Billing/shipping address (street)') . " : $form->{addr_street}" if $form->{addr_street}; + push @options, $locale->text('Billing/shipping address (country)') . " : $form->{addr_country}" if $form->{addr_country}; + push @options, $locale->text('Billing/shipping address (GLN)') . " : $form->{addr_gln}" if $form->{addr_gln}; + push @options, $locale->text('Quick Search') . " : $form->{all}" if $form->{all}; if ($form->{business_id}) { my $business = SL::DB::Manager::Business->find_by(id => $form->{business_id}); @@ -168,11 +160,24 @@ sub list_names { push @options, $label . " : " . $business->description; } } + if ($form->{salesman_id}) { + my $salesman = SL::DB::Manager::Employee->find_by(id => $form->{salesman_id}); + if ($salesman) { + push @options, $locale->text('Salesman') . " : " . $salesman->name; + } + } + + if ( $form->{insertdatefrom} or $form->{insertdateto} ) { + push @options, $locale->text('Insert Date'); + push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{insertdatefrom}, 1) if $form->{insertdatefrom}; + push @options, $locale->text('Bis') . " " . $locale->date(\%myconfig, $form->{insertdateto}, 1) if $form->{insertdateto}; + }; my @columns = ( - 'id', 'name', "$form->{db}number", 'contact', 'phone', 'discount', - 'fax', 'email', 'taxnumber', 'street', 'zipcode' , 'city', - 'business', 'invnumber', 'ordnumber', 'quonumber', 'salesman', 'country' + 'id', 'name', "$form->{db}number", 'contact', 'phone', 'discount', + 'fax', 'email', 'taxnumber', 'street', 'zipcode' , 'city', + 'business', 'payment', 'invnumber', 'ordnumber', 'quonumber', 'salesman', + 'country', 'gln', 'insertdate', 'pricegroup' ); my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs }; @@ -199,8 +204,12 @@ sub list_names { 'zipcode' => { 'text' => $locale->text('Zipcode'), }, 'city' => { 'text' => $locale->text('City'), }, 'country' => { 'text' => $locale->text('Country'), }, + 'gln' => { 'text' => $locale->text('GLN'), }, 'salesman' => { 'text' => $locale->text('Salesman'), }, 'discount' => { 'text' => $locale->text('Discount'), }, + 'payment' => { 'text' => $locale->text('Payment Terms'), }, + 'insertdate' => { 'text' => $locale->text('Insert Date'), }, + 'pricegroup' => { 'text' => $locale->text('Pricegroup'), }, %column_defs_cvars, ); @@ -208,7 +217,7 @@ sub list_names { my @hidden_variables = ( qw( db status obsolete name contact email cp_name addr_street addr_zipcode - addr_city addr_country business_id + addr_city addr_country addr_gln business_id salesman_id insertdateto insertdatefrom all ), "$form->{db}number", map({ "cvar_$_->{name}" } @searchable_custom_variables), map({'cvar_'. $_->{name} .'_qtyop'} grep({$_->{type} eq 'number'} @searchable_custom_variables)), @@ -283,9 +292,15 @@ sub list_names { my $column = $ref->{formtype} eq 'invoice' ? 'invnumber' : $ref->{formtype} eq 'order' ? 'ordnumber' : 'quonumber'; $row->{$column}->{data} = $ref->{$column}; + if (my $number = SL::CTI->sanitize_number(number => $ref->{phone})) { + $row->{phone}->{link} = SL::CTI->call_link(number => $number); + $row->{phone}->{link_class} = 'cti_call_action'; + } + $report->add_data($row); } + setup_ct_list_names_action_bar(); $report->generate_with_headers(); $main::lxdebug->leave_sub(); @@ -407,538 +422,61 @@ sub list_contacts { $row->{$_}->{link} = 'mailto:' . E($ref->{$_}) if $ref->{$_}; } - $report->add_data($row); - } - - $report->generate_with_headers; - - $::lxdebug->leave_sub; -} - -sub edit { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - # show history button - $form->{javascript} = qq||; - #/show hhistory button - - CT->get_tuple(\%myconfig, \%$form); - CT->populate_drop_down_boxes(\%myconfig, \%$form); - - $form->{title} = "Edit"; - - # format discount - $form->{discount} *= 100; - # format uri - $form->{homepage} = 'http://' . $form->{homepage} unless ((!$form->{homepage}) || $form->{homepage} =~ m|^https?://|); + for (qw(cp_phone1 cp_phone2 cp_mobile1)) { + next unless my $number = SL::CTI->sanitize_number(number => $ref->{$_}); - &form_header; - &form_footer; - - $main::lxdebug->leave_sub(); -} - -sub _shipto_label { - my $s = shift(@_); - join('; ', grep { $_ } map { $s->{"shipto$_"} } qw(name department_1 street city)) || ' ' -} - -sub _contacts_label { - join ", ", grep { $_ } $_[0]->{cp_name}, $_[0]->{cp_givenname}; -} - -sub form_header { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - - $form->get_lists(taxzones => "ALL_TAXZONES", - currencies => "ALL_CURRENCIES"); - $form->get_pricegroup(\%myconfig, { all => 1 }); - - $form->get_lists(customers => { key => "ALL_SALESMAN_CUSTOMERS", business_is_salesman => 1 }) if $::instance_conf->get_vertreter; - $form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{FU_created_for_user}, deleted => 0 ] ]); - $form->{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); - $form->{USER} = SL::DB::Manager::Employee->current; - - $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : ""; - $form->{is_customer} = $form->{db} eq 'customer'; - $form->{shipto_label} = \&_shipto_label; - $form->{contacts_label} = \&_contacts_label; - $form->{taxzone_id} = 0 if !$form->{id}; - $form->{SHIPTO_ALL} = [ +{ shipto_id => '0', shiptoname => $::locale->text('All') }, @{ $form->{SHIPTO} } ]; - - $form->{title} = $form->{title_save} - || $locale->text("$form->{title} " . ucfirst $form->{db}) . ($form->{title} eq "Edit" ? " $form->{name}" : ''); - - CT->query_titles_and_greetings(\%myconfig, \%$form); - map { $form->{"MB_$_"} = [ map +{ id => $_, description => $_ }, @{ $form->{$_} } ] } qw(COMPANY_GREETINGS); - - $form->{NOTES} ||= [ ]; - - if (!$form->{'language_id'}) { - my $l_id = SL::DB::Default->get->{'language_id'}; - if ($l_id) { - $form->{'default_language_id'} = $l_id; + $row->{$_}->{link} = SL::CTI->call_link(number => $number); + $row->{$_}->{link_class} = 'cti_call_action'; } - } - - if (!$form->{'id'}) { - $form->{'currency'} = $form->get_default_currency(\%myconfig); - } else { - $form->{currency} = $form->{curr}; - } - - $::form->{CUSTOM_VARIABLES} = { }; - my %specs = ( CT => { field => 'id', name_prefix => '', }, - Contacts => { field => 'cp_id', name_prefix => 'cp', }, - ); - - for my $module (keys %specs) { - my $spec = $specs{$module}; - - $::form->{CUSTOM_VARIABLES}->{$module} = CVar->get_custom_variables(module => $module, trans_id => $::form->{ $spec->{field} }); - CVar->render_inputs(variables => $::form->{CUSTOM_VARIABLES}->{$module}, name_prefix => $spec->{name_prefix}) - if scalar @{ $::form->{CUSTOM_VARIABLES}->{$module} }; - } - - $form->header; - print $form->parse_html_template('ct/form_header'); - - $main::lxdebug->leave_sub(); -} - -sub form_footer { - $main::lxdebug->enter_sub(); - $main::auth->assert('customer_vendor_edit'); - - my $form = $main::form; - - print $form->parse_html_template('ct/form_footer', { is_orphaned => $form->{status} eq 'orphaned', - is_customer => $form->{db} eq 'customer' }); - $main::lxdebug->leave_sub(); -} - -sub _do_save { - $main::auth->assert('customer_vendor_edit'); - - $::form->isblank("name", $::locale->text("Name missing!")); - - if ($::form->{new_salesman_id} && $::instance_conf->get_vertreter) { - $::form->{salesman_id} = $::form->{new_salesman_id}; - delete $::form->{new_salesman_id}; - } - - my $res = $::form->{db} eq 'customer' ? CT->save_customer(\%::myconfig, $::form) : CT->save_vendor(\%::myconfig, $::form); - - if (3 == $res) { - if ($::form->{"db"} eq "customer") { - $::form->error($::locale->text('This customer number is already in use.')); - } else { - $::form->error($::locale->text('This vendor number is already in use.')); - } - } -} - -sub add_transaction { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit & ' . - '(general_ledger | invoice_edit | vendor_invoice_edit | ' . - ' request_quotation_edit | sales_quotation_edit | sales_order_edit | purchase_order_edit)'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - -# # saving the history -# if(!exists $form->{addition}) { -# $form->{addition} = "ADD TRANSACTION"; -# $form->save_history; -# } -# # /saving the history - - _do_save(); - - $form->{callback} = $form->escape($form->{callback}, 1); - my $name = $form->escape("$form->{name}", 1); - - $form->{callback} = - "$form->{script}?action=add&vc=$form->{db}&$form->{db}_id=$form->{id}&$form->{db}=$name&type=$form->{type}&callback=$form->{callback}"; - $form->redirect; - - $main::lxdebug->leave_sub(); -} - -sub save_and_ap_transaction { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit & general_ledger'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - $form->{script} = "ap.pl"; - # saving the history - if(!exists $form->{addition}) { - $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; - $form->{addition} = "SAVED"; - $form->save_history; - } - # /saving the history - &add_transaction; - $main::lxdebug->leave_sub(); -} - -sub save_and_ar_transaction { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit & general_ledger'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - $form->{script} = "ar.pl"; - # saving the history - if(!exists $form->{addition}) { - $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; - $form->{addition} = "SAVED"; - $form->save_history; - } - # /saving the history - &add_transaction; - $main::lxdebug->leave_sub(); -} - -sub save_and_invoice { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - if ($form->{db} eq 'customer') { - $main::auth->assert('customer_vendor_edit & invoice_edit'); - } else { - $main::auth->assert('customer_vendor_edit & vendor_invoice_edit'); - } - - $form->{script} = ($form->{db} eq 'customer') ? "is.pl" : "ir.pl"; - $form->{type} = "invoice"; - # saving the history - if(!exists $form->{addition}) { - $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; - $form->{addition} = "SAVED"; - $form->save_history; - } - # /saving the history - &add_transaction; - $main::lxdebug->leave_sub(); -} - -sub save_and_rfq { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit & request_quotation_edit'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - $form->{script} = "oe.pl"; - $form->{type} = "request_quotation"; - # saving the history - if(!exists $form->{addition}) { - $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber}; - $form->{addition} = "SAVED"; - $form->save_history; - } - # /saving the history - &add_transaction; - $main::lxdebug->leave_sub(); -} - -sub save_and_quotation { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit & sales_quotation_edit'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - $form->{script} = "oe.pl"; - $form->{type} = "sales_quotation"; - # saving the history - if(!exists $form->{addition}) { - $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber}; - $form->{addition} = "SAVED"; - $form->save_history; - } - # /saving the history - &add_transaction; - $main::lxdebug->leave_sub(); -} - -sub save_and_order { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - if ($form->{db} eq 'customer') { - $main::auth->assert('customer_vendor_edit & sales_order_edit'); - } else { - $main::auth->assert('customer_vendor_edit & purchase_order_edit'); - } - - $form->{script} = "oe.pl"; - $form->{type} = - ($form->{db} eq 'customer') ? "sales_order" : "purchase_order"; - # saving the history - if(!exists $form->{addition}) { - $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber}; - $form->{addition} = "SAVED"; - $form->save_history; - } - # /saving the history - &add_transaction; - $main::lxdebug->leave_sub(); -} - -sub save_and_close { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - - my $msg = ucfirst $form->{db}; - $msg .= " saved!"; - - _do_save(); - - # saving the history - if(!exists $form->{addition}) { - $form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber}); - $form->{addition} = "SAVED"; - $form->save_history; - } - # /saving the history - $form->redirect($locale->text($msg)); - - $main::lxdebug->leave_sub(); -} - -sub save { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - - my $msg = ucfirst $form->{db}; - $msg .= " saved!"; - - _do_save(); - - # saving the history - if(!exists $form->{addition}) { - $form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber}); - $form->{addition} = "SAVED"; - $form->save_history; - } - # /saving the history - &edit; - - $main::lxdebug->leave_sub(); - ::end_of_request(); -} - -sub delete { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit'); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - - CT->delete(\%myconfig, \%$form); - - my $msg = ucfirst $form->{db}; - $msg .= " deleted!"; - # saving the history - if(!exists $form->{addition}) { - $form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber}); - $form->{addition} = "DELETED"; - $form->save_history; + $report->add_data($row); } - # /saving the history - $form->redirect($locale->text($msg)); - - $main::lxdebug->leave_sub(); -} - -sub display { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit'); - - my $form = $main::form; - &form_header(); - &form_footer(); - - $main::lxdebug->leave_sub(); -} - -sub update { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit'); - - my $form = $main::form; - - &display(); - $main::lxdebug->leave_sub(); -} - -sub get_contact { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit'); - - CT->populate_drop_down_boxes(\%::myconfig, $::form); - CT->query_titles_and_greetings(\%::myconfig, $::form); - CT->get_contact(\%::myconfig, $::form) if $::form->{cp_id}; - - $::form->{CUSTOM_VARIABLES}{Contacts} = CVar->get_custom_variables(module => 'Contacts', trans_id => $::form->{cp_id}); - CVar->render_inputs(variables => $::form->{CUSTOM_VARIABLES}{Contacts}, name_prefix => 'cp') - if scalar @{ $::form->{CUSTOM_VARIABLES}->{Contacts} }; - - $::form->{contacts_label} = \&_contacts_label; - - print $::form->ajax_response_header(), $::form->parse_html_template('ct/_contact'); - - $main::lxdebug->leave_sub(); -} - -sub get_shipto { - $main::lxdebug->enter_sub(); - - $main::auth->assert('customer_vendor_edit'); - - CT->populate_drop_down_boxes(\%::myconfig, $::form); - CT->get_shipto(\%::myconfig, $::form) if $::form->{shipto_id}; - - $::form->{shipto_label} = \&_shipto_label; - - print $::form->ajax_response_header(), $::form->parse_html_template('ct/_shipto'); - - $main::lxdebug->leave_sub(); -} - -sub get_delivery { - $::lxdebug->enter_sub; - - $::auth->assert('customer_vendor_edit'); - $::auth->assert('sales_all_edit'); - - CT->get_delivery(\%::myconfig, $::form ); - - print $::form->ajax_response_header, - $::form->parse_html_template('ct/get_delivery', { - is_customer => $::form->{db} eq 'customer', - }); + $report->generate_with_headers(); $::lxdebug->leave_sub; } -sub delete_shipto { - $::lxdebug->enter_sub; - $::auth->assert('customer_vendor_edit'); - - if (!$::form->{shipto_id}) { - flash('error', $::locale->text('No shipto selected to delete')); - } else { - - CT->get_shipto(\%::myconfig, $::form); +sub setup_ct_search_action_bar { + my %params = @_; - my $shipto = SL::DB::Manager::Shipto->find_by(shipto_id => $::form->{shipto_id}); - - if ($shipto->used) { - $shipto->detach->save; - flash('info', $::locale->text('Shipto is in use and was flagged invalid.')); - } else { - $shipto->delete; - flash('info', $::locale->text('Shipto deleted.')); - } - delete $::form->{$_} for grep /^shipto/, keys %$::form; + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Search'), + submit => [ '#form', { action => 'list_names' } ], + accesskey => 'enter', + ], + ); } - - edit(); - - $::lxdebug->leave_sub; } -sub delete_contact { - $::lxdebug->enter_sub; - $::auth->assert('customer_vendor_edit'); - - if (!$::form->{cp_id}) { - flash('error', $::locale->text('No contact selected to delete')); - } else { - - CT->get_contact(\%::myconfig, $::form); - - my $contact = SL::DB::Manager::Contact->find_by(cp_id => $::form->{cp_id}); +sub setup_ct_list_names_action_bar { + my %params = @_; - if ($contact->used) { - $contact->detach->save; - flash('info', $::locale->text('Contact is in use and was flagged invalid.')); - } else { - $contact->delete; - flash('info', $::locale->text('Contact deleted.')); - } - delete $::form->{$_} for grep /^cp_/, keys %$::form; + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Add'), + submit => [ '#new_form', { action => 'CustomerVendor/add' } ], + accesskey => 'enter', + ], + ); } - - edit(); - - $::lxdebug->leave_sub; } -sub ajax_autocomplete { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - $form->{column} = 'name' unless $form->{column} =~ /^name$/; - $form->{vc} = 'customer' unless $form->{vc} =~ /^customer|vendor$/; - $form->{db} = $form->{vc}; # CT expects this - $form->{$form->{column}} = $form->{q} || ''; - $form->{limit} = ($form->{limit} * 1) || 10; - $form->{searchitems} ||= ''; - - CT->search(\%myconfig, $form); +sub setup_ct_search_contact_action_bar { + my %params = @_; - print $form->ajax_response_header(), - $form->parse_html_template('ct/ajax_autocomplete'); - - $main::lxdebug->leave_sub(); + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Search'), + submit => [ '#form', { action => 'list_contacts' } ], + accesskey => 'enter', + ], + ); + } } sub continue { call_sub($main::form->{nextsub}); }