X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FManager%2FDeliveryOrder.pm;h=9f45ca0c938aa4d3ebc1aba2f0603cc7f991761f;hb=5c03b316c349b081a165f0c8b45348b70e712565;hp=793e88bf76b0e8ea31538c1bbf15cc7d29ed6829;hpb=284470c116a0f1a73f82797160b0170e55a58652;p=kivitendo-erp.git diff --git a/SL/DB/Manager/DeliveryOrder.pm b/SL/DB/Manager/DeliveryOrder.pm index 793e88bf7..9f45ca0c9 100644 --- a/SL/DB/Manager/DeliveryOrder.pm +++ b/SL/DB/Manager/DeliveryOrder.pm @@ -6,19 +6,30 @@ 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 || ''); - 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 type => validate_type($type); } sub _sort_spec {