X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/e42233910a57d39f3ccef150db1212f7ecb7fb30..53593baa211863fbf66540cf1bcc36c8fb37257f:/SL/DB/Manager/DeliveryOrder.pm 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 {