Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / SL / DB / Manager / OrderItem.pm
index e908b6b..379e1fd 100644 (file)
@@ -5,12 +5,27 @@ 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::OrderItem' }
 
 __PACKAGE__->make_manager_methods;
+__PACKAGE__->add_filter_specs(
+  reqdate => sub {
+    my ($key, $value, $prefix) = @_;
+
+    return or => [
+      $prefix . reqdate => $value,
+      and => [
+        $prefix . reqdate => undef,
+        $prefix . 'order.reqdate' => $value,
+      ]
+    ], $prefix . 'order';
+  },
+);
+
 
 sub _sort_spec {
   return ( columns => { delivery_date => [ 'deliverydate',        ],
@@ -19,11 +34,11 @@ sub _sort_spec {
                         qty           => [ 'qty'                  ],
                         ordnumber     => [ 'order.ordnumber'      ],
                         customer      => [ 'lower(customer.name)', ],
-                        position      => [ 'trans_id', 'runningnumber' ],
+                        position      => [ 'trans_id', 'position' ],
                         reqdate       => [ 'COALESCE(orderitems.reqdate, order.reqdate)' ],
                         orddate       => [ 'order.orddate' ],
-                        sellprice     => [ 'sellprice' ],
-                        discount      => [ 'discount' ],
+                        sellprice     => [ 'orderitems.sellprice' ],
+                        discount      => [ 'orderitems.discount' ],
                         transdate     => [ 'orderitems.transdate::date', 'order.reqdate' ],
                       },
            default => [ 'position', 1 ],
@@ -31,6 +46,6 @@ sub _sort_spec {
          );
 }
 
-sub default_objects_per_page { 40 }
+sub default_objects_per_page { 15 }
 
 1;