[ map { [ $_, $types{$_}{description} ] } grep { $types{$_}{$vc} } map { $_ } @types ];
}
+sub get_type {
+ $types{$_[1]}
+}
+
+sub filter_match {
+ my ($self, $type, $value) = @_;
+
+ my $type_def = $types{$type};
+
+ if (!$type_def->{ops}) {
+ my $evalue = $::form->get_standard_dbh->quote($value);
+ return "value_$type_def->{data_type} = $evalue";
+ } elsif ($type_def->{ops} eq 'date') {
+ my $date_value = $::form->get_standard_dbh->quote(DateTime->from_kivitendo($value));
+ return "
+ (value_$type_def->{data_type} > $date_value AND op = 'lt') OR
+ (value_$type_def->{data_type} < $date_value AND op = 'gt') OR
+ (value_$type_def->{data_type} = $date_value AND op = 'eq')
+ ";
+ } elsif ($type_def->{ops} eq 'num') {
+ my $num_value = $::form->get_standard_dbh->quote($::form->parse_amount(\%::myconfig, $value));
+ return "
+ (value_$type_def->{data_type} >= $num_value AND op = 'le') OR
+ (value_$type_def->{data_type} <= $num_value AND op = 'ge') OR
+ (value_$type_def->{data_type} = $num_value AND op = 'eq')
+ ";
+ }
+}
+
+
1;