X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FHelper%2FCustomVariables.pm;h=ef6a0a9bc78ff7cd5f483d53bda8dd0ea5e76582;hb=2b44867fc2d4e3c061c126890cc90fcaa84b6baa;hp=e8c7d6b0389c1caa5ed600d34a3b14a11194cd2a;hpb=e1bf173bae820584e8bafdc01ebe2e7d7537a59c;p=kivitendo-erp.git diff --git a/SL/DB/Helper/CustomVariables.pm b/SL/DB/Helper/CustomVariables.pm index e8c7d6b03..ef6a0a9bc 100644 --- a/SL/DB/Helper/CustomVariables.pm +++ b/SL/DB/Helper/CustomVariables.pm @@ -22,7 +22,7 @@ sub import { $params{module} || $params{sub_module} or croak 'need param module or sub_module'; - save_meta_info($caller_package, %params); + return unless save_meta_info($caller_package, %params); make_cvar_accessor($caller_package, %params); make_cvar_alias($caller_package, %params) if $params{cvars_alias}; make_cvar_by_configs($caller_package, %params); @@ -36,13 +36,15 @@ sub save_meta_info { return 0 if $meta->{META_CVARS()}; $meta->{META_CVARS()} = \%params; + + return 1; } sub make_cvar_accessor { my ($caller_package, %params) = @_; my @module_filter = $params{module} ? - ("config.module" => $params{module}) : + ("config_id" => [ \"(SELECT custom_variable_configs.id FROM custom_variable_configs WHERE custom_variable_configs.module = '$params{module}')" ]) : (); $caller_package->meta->add_relationships( @@ -50,7 +52,6 @@ sub make_cvar_accessor { type => 'one to many', class => 'SL::DB::CustomVariable', column_map => { ($params{id} || 'id') => 'trans_id' }, - manager_args => { with_objects => 'config' }, query_args => [ sub_module => $params{sub_module}, @module_filter ], } ); @@ -65,7 +66,7 @@ sub make_cvar_alias { } # this is used for templates where you need to list every applicable config -# auto vivifies non existant cvar objects as necessary. +# auto vivifies non existent cvar objects as necessary. sub make_cvar_by_configs { my ($caller_package, %params) = @_; @@ -120,6 +121,7 @@ sub _all_configs { sub _overload_by_module { my ($module, %params) = @_; + keys %{ $params{overloads} }; # reset each iterator while (my ($fk, $class) = each %{ $params{overloads} }) { return ($fk, $class) if $class->meta->{META_CVARS()}->{module} eq $module; }