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_$_"};
$params{include_prefix} = 'l_' unless defined($params{include_prefix});
$params{include_value} ||= '1';
+ $params{filter_prefix} ||= '';
my $filter = $form->parse_html_template('amcvar/search_filter', \%params);
my $include = $form->parse_html_template('amcvar/search_include', \%params);
$::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');
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;
'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;
$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 };
<td valign="top">
[%- IF var.type == 'bool' %]
- <select name="cvar_[% HTML.escape(var.name) %]">
+ <select name="[% filter_prefix %]cvar_[% HTML.escape(var.name) %]">
<option value="">---</option>
<option value="yes">[% 'Yes' | $T8 %]</option>
<option value="no">[% 'No' | $T8 %]</option>
[%- ELSIF var.type == 'date' %]
[% 'from (time)' | $T8 %]
- <input name="cvar_[% HTML.escape(var.name) %]_from" id="cvar_[% HTML.escape(var.name) %]_from" size="12">
+ <input name="[% filter_prefix %]cvar_[% HTML.escape(var.name) %]_from" id="cvar_[% HTML.escape(var.name) %]_from" size="12">
<input type="button" name="cvar_[% HTML.escape(var.name) %]_from_button" id="cvar_[% HTML.escape(var.name) %]_from_trigger" value="?">
[% 'to (time)' | $T8 %]
- <input name="cvar_[% HTML.escape(var.name) %]_to" id="cvar_[% HTML.escape(var.name) %]_to" size="12">
+ <input name="[% filter_prefix %]cvar_[% HTML.escape(var.name) %]_to" id="cvar_[% HTML.escape(var.name) %]_to" size="12">
<input type="button" name="cvar_[% HTML.escape(var.name) %]_to_button" id="cvar_[% HTML.escape(var.name) %]_to_trigger" value="?">
<script type="text/javascript">
</script>
[%- ELSIF var.type == 'number' %]
- <select name="cvar_[% HTML.escape(var.name) %]_qtyop">
+ <select name="[% filter_prefix %]cvar_[% HTML.escape(var.name) %]_qtyop">
<option selected>==</option>
<option>=/=</option>
<option>></option>
<input name="cvar_[% HTML.escape(var.name) %]"[% IF var.maxlength %]maxlength="[% HTML.escape(var.maxlength) %]"[% END %]>
[%- ELSIF var.type == 'customer' %]
- <input name="cvar_[% var.name | html %]">
+ <input name="[% filter_prefix %]cvar_[% var.name | html %]">
[% ELSIF var.type == 'select' %]
- <select name="cvar_[% HTML.escape(var.name) %]">
+ <select name="[% filter_prefix %]cvar_[% HTML.escape(var.name) %]">
<option value="" selected>---</option>
[%- FOREACH option = var.OPTIONS %]
<option>[% HTML.escape(option.value) %]</option>
</select>
[%- ELSE %]
- <input name="cvar_[% HTML.escape(var.name) %]"[% IF var.maxlength %]maxlength="[% HTML.escape(var.maxlength) %]"[% END %]>
+ <input name="[% filter_prefix %]cvar_[% HTML.escape(var.name) %]"[% IF var.maxlength %]maxlength="[% HTML.escape(var.maxlength) %]"[% END %]>
[%- END %]
</td>
<td><input name="filter.cp_project" size="35"></td>
</tr>
+ [% CUSTOM_VARIABLES_FILTER_CODE %]
+
<tr>
<td></td>
<td>