fecd9d35860254df1b0c66cc9590c05ab79ac9bd
[kivitendo-erp.git] / SL / DB / Manager / RequirementSpec.pm
1 package SL::DB::Manager::RequirementSpec;
2
3 use strict;
4
5 use SL::DB::Helper::Manager;
6 use base qw(SL::DB::Helper::Manager);
7
8 use SL::DB::Helper::Paginated;
9 use SL::DB::Helper::Sorted;
10
11 sub object_class { 'SL::DB::RequirementSpec' }
12
13 __PACKAGE__->make_manager_methods;
14
15 sub _sort_spec {
16   return (
17     default => [ 'title', 1 ],
18     columns => {
19       SIMPLE => 'ALL',
20       customer      => 'lower(customer.name)',
21       type          => 'type.position',
22       status        => 'status.position',
23       projectnumber => 'project.projectnumber',
24       map { ( $_ => "lower(requirement_specs.${_})" ) } qw(title),
25     });
26 }
27
28 sub working_copy_filter {
29   return (working_copy_id => undef);
30 }
31
32 sub not_empty_filter {
33   my @tables = qw(requirement_spec_items requirement_spec_text_blocks requirement_spec_parts);
34   my @filter = map { \"id IN (SELECT nef_${_}.requirement_spec_id FROM ${_} nef_${_})" } @tables;
35
36   return (or => \@filter);
37 }
38
39 1;