epic-s6ts
[kivitendo-erp.git] / SL / DB / Manager / Letter.pm
1 package SL::DB::Manager::Letter;
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::Filtered;
9 use SL::DB::Helper::Paginated;
10 use SL::DB::Helper::Sorted;
11
12 sub object_class { 'SL::DB::Letter' }
13
14 __PACKAGE__->make_manager_methods;
15 __PACKAGE__->add_filter_specs(
16   is_sales => sub {
17     my ($key, $value, $prefix) = @_;
18     __PACKAGE__->is_sales_filter($value, $prefix);
19   },
20 );
21
22 sub is_sales_filter {
23   my ($class, $value, $prefix) = @_;
24
25   return () if !defined $value;
26   return ($prefix . 'customer_id' => { gt => 0 }) if $value;
27   return ($prefix . 'vendor_id'   => { gt => 0 }) if !$value;
28 }
29
30 sub _sort_spec {
31   return ( columns => { SIMPLE    => 'ALL',
32                         customer  => [ 'lower(customer.name)', ],
33                       },
34            default => [ 'date', 0 ],
35            nulls   => { }
36          );
37 }
38
39 sub default_objects_per_page { 30 }
40
41 1;