link_filter für Chart-Manager
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 11 Nov 2010 12:10:28 +0000 (13:10 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 12 Jan 2011 15:21:39 +0000 (16:21 +0100)
SL/DB/Chart.pm
SL/DB/Manager/Chart.pm [new file with mode: 0644]

index 42cd6c9..bda4512 100644 (file)
@@ -3,6 +3,7 @@ package SL::DB::Chart;
 use strict;
 
 use SL::DB::MetaSetup::Chart;
+use SL::DB::Manager::Chart;
 use SL::DB::TaxKey;
 
 __PACKAGE__->meta->add_relationships(taxkeys => { type         => 'one to many',
@@ -12,7 +13,6 @@ __PACKAGE__->meta->add_relationships(taxkeys => { type         => 'one to many',
                                     );
 
 __PACKAGE__->meta->initialize;
-__PACKAGE__->meta->make_manager_class;
 
 sub get_active_taxkey {
   my ($self, $date) = @_;
diff --git a/SL/DB/Manager/Chart.pm b/SL/DB/Manager/Chart.pm
new file mode 100644 (file)
index 0000000..a0167fd
--- /dev/null
@@ -0,0 +1,57 @@
+package SL::DB::Manager::Chart;
+
+use strict;
+
+use SL::DB::Helper::Manager;
+use base qw(SL::DB::Helper::Manager);
+
+use SL::DB::Helper::Sorted;
+
+sub object_class { 'SL::DB::Chart' }
+
+__PACKAGE__->make_manager_methods;
+
+sub link_filter {
+  my ($class, $link) = @_;
+
+  return (or => [ link => $link,
+                  link => { like => "${link}:\%"    },
+                  link => { like => "\%:${link}"    },
+                  link => { like => "\%:${link}:\%" } ]);
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding utf8
+
+=head1 NAME
+
+SL::DB::Manager::Chart - Manager class for the model for the C<chart> table
+
+=head1 FUNCTIONS
+
+=over 4
+
+=item C<link_filter $link>
+
+Returns a query builder filter that matches charts whose 'C<link>'
+field contains C<$link>. Matching is done so that the exact value of
+C<$link> matches but not if C<$link> is only a substring of a
+match. Therefore C<$link = 'AR'> will match the column content 'C<AR>'
+or 'C<AR_paid:AR>' but not 'C<AR_amount>'.
+
+=back
+
+=head1 BUGS
+
+Nothing here yet.
+
+=head1 AUTHOR
+
+Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>
+
+=cut