Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / SL / DB / Manager / Letter.pm
diff --git a/SL/DB/Manager/Letter.pm b/SL/DB/Manager/Letter.pm
new file mode 100644 (file)
index 0000000..a412cd8
--- /dev/null
@@ -0,0 +1,41 @@
+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;