Changeset 122 for LATMOS-Accounts/lib/LATMOS
- Timestamp:
- 05/17/09 17:18:52 (15 years ago)
- Location:
- LATMOS-Accounts/lib/LATMOS/Accounts
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/lib/LATMOS/Accounts/Bases.pm
r105 r122 304 304 } 305 305 306 =head2 search_objects($otype, %filter) 307 308 Search object according %filter. %filter is a list 309 of field/value which should match. 310 311 A default function is provided but each db driver can provide 312 an optimize version. 313 314 =cut 315 316 sub search_objects { 317 my ($self, $otype, %filter) = @_; 318 my $pclass = $self->_load_obj_class($otype) or return; 319 $pclass->search($self, %filter); 320 } 321 306 322 1; 307 323 -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Objects.pm
r81 r122 245 245 } 246 246 247 sub search { 248 my ($class, $base, %filter) = @_; 249 my @results; 250 foreach my $id ($base->list_objects($class->type)) { 251 my $obj = $base->get_object($class->type, $id); 252 my $match = 1; 253 foreach my $field (keys %filter) { 254 my $value = $filter{$field}; 255 $base->get_field_name($class->type, $field, 'r') or next; 256 my $fval = $obj->get_c_field($field) || ''; 257 if ($fval !~ m/\Q$value\E/i) { 258 $match = 0; 259 last; 260 } 261 } 262 push(@results, $id) if($match); 263 } 264 @results; 265 } 266 247 267 1; 248 268 -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm
r85 r122 124 124 sub _get_field_name { 125 125 my ($class, $c_field, $base, $for) = @_; 126 $c_field or return; 126 127 $for ||= 'rw'; 127 128 my $inline = $class->_inline_fields($for) || {};
Note: See TracChangeset
for help on using the changeset viewer.