X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCVar.pm;h=779bfc3254431d369cc0b06fe898c39787e76345;hb=89c9ff022d3f13e27ba6bda085df15707fcfb0eb;hp=7f82a2d8bb6e86c706f70b964c1747de87d8dec7;hpb=6c7e41458d2027f72901d16417a37648942f7445;p=kivitendo-erp.git diff --git a/SL/CVar.pm b/SL/CVar.pm index 7f82a2d8b..779bfc325 100644 --- a/SL/CVar.pm +++ b/SL/CVar.pm @@ -30,6 +30,7 @@ sub get_configs { FROM custom_variable_configs $where ORDER BY sortkey SQL + $::form->{CVAR_CONFIGS} = {} unless 'HASH' eq ref $::form->{CVAR_CONFIGS}; if (!$::form->{CVAR_CONFIGS}->{$params{module}}) { my $configs = selectall_hashref_query($form, $dbh, $query, @values); @@ -224,7 +225,7 @@ sub get_custom_variables { $cvar->{OPTIONS} = [ map { { 'value' => $_ } } split(m/\#\#/, $cvar->{options}) ]; } - my $act_var; + my ($act_var, $valid); if ($params{trans_id}) { my @values = (conv_i($cvar->{id}), conv_i($params{trans_id})); push @values, $params{sub_module} if $params{sub_module}; @@ -232,7 +233,7 @@ sub get_custom_variables { do_statement($form, $h_var, $q_var, @values); $act_var = $h_var->fetchrow_hashref(); - $act_var->{valid} = $self->get_custom_variables_validity(config_id => $cvar->{id}, trans_id => $params{trans_id}); + $valid = $self->get_custom_variables_validity(config_id => $cvar->{id}, trans_id => $params{trans_id}); } if ($act_var) { @@ -241,7 +242,7 @@ sub get_custom_variables { : $cvar->{type} eq 'number' ? $act_var->{number_value} : $cvar->{type} eq 'bool' ? $act_var->{bool_value} : $act_var->{text_value}; - $cvar->{valid} = $act_var->{valid}; + $cvar->{valid} = $valid; } else { $cvar->{valid} = 1; @@ -337,10 +338,13 @@ sub save_custom_variables { do_statement($form, $sth, $query, @values); - my $valid_index = "$params{name_prefix}cvar_$config->{name}$params{name_postfix}_valid"; - $self->save_custom_variables_validity(trans_id => $params{trans_id}, config_id => $config->{id}, - validity => ($params{variables}{$valid_index} || $params{always_valid} ? 1 : 0) - ); + if ($params{save_validity}) { + my $valid_index = "$params{name_prefix}cvar_$config->{name}$params{name_postfix}_valid"; + $self->save_custom_variables_validity(trans_id => $params{trans_id}, + config_id => $config->{id}, + validity => ($params{variables}{$valid_index} || $params{always_valid} ? 1 : 0) + ); + } } $sth->finish();