From: Sven Schöling Date: Mon, 23 Apr 2012 15:22:26 +0000 (+0200) Subject: CVars in der Ansprechpartnersuche X-Git-Tag: release-3.0.0beta1~343^2~6 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=cc78d935992bbc0ec17fe2e0452dea36248d8ba8;p=kivitendo-erp.git CVars in der Ansprechpartnersuche --- diff --git a/SL/CT.pm b/SL/CT.pm index 2e8a017b9..888634894 100644 --- a/SL/CT.pm +++ b/SL/CT.pm @@ -1254,6 +1254,15 @@ sub search_contacts { push @where_tokens, map { "($_)" } join ' OR ', @tokens; } + my ($cvar_where, @cvar_values) = CVar->build_filter_query('module' => 'Contacts', + 'trans_id_field' => 'cp.cp_id', + 'filter' => $params{filter}); + + if ($cvar_where) { + push @where_tokens, $cvar_where; + push @values, @cvar_values; + } + if (my $filter = $params{filter}) { for (qw(name title givenname email project abteilung)) { next unless $filter->{"cp_$_"}; diff --git a/bin/mozilla/ct.pl b/bin/mozilla/ct.pl index c843df4fe..01bf4fe85 100644 --- a/bin/mozilla/ct.pl +++ b/bin/mozilla/ct.pl @@ -115,7 +115,13 @@ sub search_contact { $::lxdebug->enter_sub; $::auth->assert('customer_vendor_edit'); - $::form->{fokus} = 'Form.name'; + + $::form->{CUSTOM_VARIABLES} = CVar->get_configs('module' => 'Contacts'); + ($::form->{CUSTOM_VARIABLES_FILTER_CODE}, + $::form->{CUSTOM_VARIABLES_INCLUSION_CODE}) = CVar->render_search_options('variables' => $::form->{CUSTOM_VARIABLES}, + 'include_prefix' => 'l.', + 'filter_prefix' => 'filter.', + 'include_value' => 'Y'); $::form->header; print $::form->parse_html_template('ct/search_contact'); @@ -292,11 +298,19 @@ sub list_contacts { filter => $::form->{filter}, ); + my $cvar_configs = CVar->get_configs('module' => 'Contacts'); + my @columns = qw( cp_id vcname vcnumber cp_name cp_givenname cp_street cp_phone1 cp_phone2 cp_mobile1 cp_mobile2 cp_email cp_abteilung cp_birthday cp_gender ); + my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs }; + my @searchable_custom_variables = grep { $_->{searchable} } @{ $cvar_configs }; + my %column_defs_cvars = map { +"cvar_$_->{name}" => { 'text' => $_->{description} } } @includeable_custom_variables; + + push @columns, map { "cvar_$_->{name}" } @includeable_custom_variables; + my @visible_columns; if ($::form->{l}) { @visible_columns = grep { $::form->{l}{$_} } @columns; @@ -321,6 +335,7 @@ sub list_contacts { 'cp_abteilung' => { 'text' => $::locale->text('Department'), }, 'cp_birthday' => { 'text' => $::locale->text('Birthday'), }, 'cp_gender' => { 'text' => $::locale->text('Gender'), }, + %column_defs_cvars, ); map { $column_defs{$_}->{visible} = 1 } @visible_columns; @@ -365,6 +380,13 @@ sub list_contacts { $report->set_sort_indicator($::form->{sort}, $::form->{sortdir}); + CVar->add_custom_variables_to_report('module' => 'Contacts', + 'trans_id_field' => 'cp_id', + 'configs' => $cvar_configs, + 'column_defs' => \%column_defs, + 'data' => \@contacts); + + foreach my $ref (@contacts) { my $row = { map { $_ => { 'data' => $ref->{$_} } } @columns }; diff --git a/templates/webpages/ct/search_contact.html b/templates/webpages/ct/search_contact.html index 2fe8bdc9e..be678147a 100644 --- a/templates/webpages/ct/search_contact.html +++ b/templates/webpages/ct/search_contact.html @@ -34,6 +34,8 @@ + [% CUSTOM_VARIABLES_FILTER_CODE %] +