X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/ff159a4d47b9a2d10744dcfc23da2c63605c8a32..eeb5375ee7727c956cc357cc8f90b19d1bfe80b9:/SL/DB/Manager/Order.pm diff --git a/SL/DB/Manager/Order.pm b/SL/DB/Manager/Order.pm index ff5169bfa..378b96b8d 100644 --- a/SL/DB/Manager/Order.pm +++ b/SL/DB/Manager/Order.pm @@ -4,10 +4,13 @@ use strict; use parent qw(SL::DB::Helper::Manager); +use SL::DB::Order::TypeData qw(:types); use SL::DB::Helper::Paginated; use SL::DB::Helper::Sorted; use SL::DB::Helper::Filtered; +use List::MoreUtils qw(any); + sub object_class { 'SL::DB::Order' } __PACKAGE__->make_manager_methods; @@ -28,10 +31,15 @@ sub type_filter { my $type = lc(shift || ''); my $prefix = shift || ''; - return (and => [ "!${prefix}customer_id" => undef, "${prefix}quotation" => 1 ]) if $type eq 'sales_quotation'; - return (and => [ "!${prefix}vendor_id" => undef, "${prefix}quotation" => 1 ]) if $type eq 'request_quotation'; - return (and => [ "!${prefix}customer_id" => undef, or => [ "${prefix}quotation" => 0, "${prefix}quotation" => undef ] ]) if $type eq 'sales_order'; - return (and => [ "!${prefix}vendor_id" => undef, or => [ "${prefix}quotation" => 0, "${prefix}quotation" => undef ] ]) if $type eq 'purchase_order'; + return ("${prefix}record_type" => $type) if( any {$type eq $_} ( + SALES_ORDER_INTAKE_TYPE(), + SALES_ORDER_TYPE(), + SALES_QUOTATION_TYPE(), + PURCHASE_ORDER_TYPE(), + PURCHASE_ORDER_CONFIRMATION_TYPE(), + REQUEST_QUOTATION_TYPE(), + PURCHASE_QUOTATION_INTAKE_TYPE(), + )); die "Unknown type $type"; }