X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FDB%2FManager%2FProject.pm;h=f6ff1271ba42074b2bb728fa61075d2d02602d1b;hb=49be66cdf74882abde5a93832a959e27baddd925;hp=388c359d7a12744701c24dd1428480165ea58194;hpb=3a7d0b6be7c5b679e8b2a00d326998a39c6e0529;p=kivitendo-erp.git diff --git a/SL/DB/Manager/Project.pm b/SL/DB/Manager/Project.pm index 388c359d7..f6ff1271b 100644 --- a/SL/DB/Manager/Project.pm +++ b/SL/DB/Manager/Project.pm @@ -6,10 +6,31 @@ use parent qw(SL::DB::Helper::Manager); use SL::DB::Helper::Paginated; use SL::DB::Helper::Sorted; +use SL::DB::Helper::Filtered; sub object_class { 'SL::DB::Project' } __PACKAGE__->make_manager_methods; +__PACKAGE__->add_filter_specs( + active => sub { + my ($key, $value, $prefix) = @_; + # TODO add boolean context + return () if $value eq 'both'; + return ($prefix . "active" => 1) if $value eq 'active'; + return (or => [ $prefix . "active" => 0, $prefix . "active" => undef ]) if $value eq 'inactive'; + }, + valid => sub { + my ($key, $value, $prefix) = @_; + return () if $value eq 'both'; + return ($prefix . "valid" => 1) if $value eq 'valid'; + return (or => [ $prefix . "valid" => 0, $prefix . "valid" => undef ]) if $value eq 'invalid'; + }, + status => sub { + my ($key, $value, $prefix) = @_; + return () if $value eq 'all'; + return __PACKAGE__->is_not_used_filter($prefix); + }, +); our %project_id_column_prefixes = ( ar => 'global', @@ -22,10 +43,11 @@ our @tables_with_project_id_cols = qw(acc_trans ap ar delivery_order_items deliv sub _sort_spec { return ( - default => [ 'projectnumber', 1 ], - columns => { - SIMPLE => 'ALL', - customer => 'customer.name', + default => [ 'projectnumber', 1 ], + columns => { + SIMPLE => 'ALL', + customer => 'customer.name', + project_type => 'project_type.description', }); } @@ -40,6 +62,10 @@ sub is_not_used_filter { return ("!${prefix}id" => [ \"(${query})" ]); } +sub default_objects_per_page { + 20; +} + 1; __END__