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 {