--- /dev/null
+package SL::DB::Manager::Letter;
+
+use strict;
+
+use SL::DB::Helper::Manager;
+use base qw(SL::DB::Helper::Manager);
+
+use SL::DB::Helper::Filtered;
+use SL::DB::Helper::Paginated;
+use SL::DB::Helper::Sorted;
+
+sub object_class { 'SL::DB::Letter' }
+
+__PACKAGE__->make_manager_methods;
+__PACKAGE__->add_filter_specs(
+ is_sales => sub {
+ my ($key, $value, $prefix) = @_;
+ __PACKAGE__->is_sales_filter($value, $prefix);
+ },
+);
+
+sub is_sales_filter {
+ my ($class, $value, $prefix) = @_;
+
+ return () if !defined $value;
+ return ($prefix . 'customer_id' => { gt => 0 }) if $value;
+ return ($prefix . 'vendor_id' => { gt => 0 }) if !$value;
+}
+
+sub _sort_spec {
+ return ( columns => { SIMPLE => 'ALL',
+ customer => [ 'lower(customer.name)', ],
+ },
+ default => [ 'date', 0 ],
+ nulls => { }
+ );
+}
+
+sub default_objects_per_page { 30 }
+
+1;