X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=SL%2FDB%2FManager%2FDeliveryOrder.pm;fp=SL%2FDB%2FManager%2FDeliveryOrder.pm;h=e9c1ee7f27fcdfeec0b12d3d827e41eba9e739db;hp=793e88bf76b0e8ea31538c1bbf15cc7d29ed6829;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 diff --git a/SL/DB/Manager/DeliveryOrder.pm b/SL/DB/Manager/DeliveryOrder.pm index 793e88bf7..e9c1ee7f2 100644 --- a/SL/DB/Manager/DeliveryOrder.pm +++ b/SL/DB/Manager/DeliveryOrder.pm @@ -6,19 +6,31 @@ use parent qw(SL::DB::Helper::Manager); use SL::DB::Helper::Paginated; use SL::DB::Helper::Sorted; +use SL::DB::Helper::Filtered; + +use SL::DB::DeliveryOrder::TypeData qw(validate_type); sub object_class { 'SL::DB::DeliveryOrder' } __PACKAGE__->make_manager_methods; +__PACKAGE__->add_filter_specs( + type => sub { + my ($key, $value, $prefix) = @_; + return __PACKAGE__->type_filter($value, $prefix); + }, + all => sub { + my ($key, $value, $prefix) = @_; + return or => [ map { $prefix . $_ => $value } qw(donumber customer.name vendor.name transaction_description orderitems.serialnumber) ] + } +); + sub type_filter { my $class = shift; my $type = lc(shift || ''); + my $prefix = shift // ''; - return ('!customer_id' => undef) if $type eq 'sales_delivery_order'; - return ('!vendor_id' => undef) if $type eq 'purchase_delivery_order'; - - die "Unknown type $type"; + return "${prefix}order_type" => validate_type($type); } sub _sort_spec {