X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/ee7454765fe538049c15e39c1f58304a4c569ea8..7cd6d451d97d1f1e7f3c0f9db2de03735dc8c8f0:/SL/DB/Helper/CustomVariables.pm diff --git a/SL/DB/Helper/CustomVariables.pm b/SL/DB/Helper/CustomVariables.pm index fef521cfa..d23e46e97 100644 --- a/SL/DB/Helper/CustomVariables.pm +++ b/SL/DB/Helper/CustomVariables.pm @@ -4,6 +4,7 @@ use strict; use Carp; use Data::Dumper; use List::Util qw(first); +use List::UtilsBy qw(sort_by); use constant META_CVARS => 'cvars_config'; @@ -12,7 +13,7 @@ sub import { my $caller_package = caller; # TODO: if module is empty, module overloading needs to take effect - # certain stuff may have more than one overload, odr even more than one type + # certain stuff may have more than one overload, or even more than one type defined $caller_package or croak 'need to be included from a caller reference'; $params{module} ||= _calc_modules_from_overloads(%params) if $params{overloads}; @@ -98,6 +99,8 @@ sub make_cvar_by_configs { @$configs ); + @return = sort_by { $_->config->sortkey } @return; + return \@return; } } @@ -309,7 +312,7 @@ sub make_cvar_custom_filter { query_is_sql => 1, ); - $query{config} =~ s{ \bdefault_value\b \s*=\s* (?!'') }{default_value::${conversion} = }x if $conversion; + $query{config} =~ s{ (? $config->dbh, @@ -327,7 +330,7 @@ sub make_cvar_custom_filter { # remove rose aliases. query builder sadly is not reentrant, and will reuse the same aliases. :( $query{$key} =~ s{\bt\d+(?:\.)?\b}{}g; - # manually inline the values. again, rose doen't know how to handly bind params in subqueries :( + # manually inline the values. again, rose doesn't know how to handle bind params in subqueries :( $query{$key} =~ s{\?}{ $config->dbh->quote(shift @{ $bind_vals{$key} }) }xeg; $query{$key} =~ s{\n}{ }g; @@ -358,7 +361,7 @@ __END__ =head1 NAME -SL::DB::Helper::CustomVariables - Mixin to provide custom variables relations +SL::DB::Helper::CustomVariables - Mixin to provide custom variable relations =head1 SYNOPSIS @@ -510,6 +513,23 @@ If the Manager for the calling C has included the helper Ls.schoeling@linet-services.deE,