X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCVar.pm;h=0ace069027da47f263262c49e4fa1f9e40a73fc9;hb=a8b18c65bfd47c845e641fb0fff9587f4122bf9d;hp=6da9b368029ef368befebe8cd8e6eeb68bd24b58;hpb=e24e328414e830c8f0bdff437c82bdc67a1d8367;p=kivitendo-erp.git diff --git a/SL/CVar.pm b/SL/CVar.pm index 6da9b3680..0ace06902 100644 --- a/SL/CVar.pm +++ b/SL/CVar.pm @@ -652,6 +652,56 @@ sub format_to_template { return $value; } +sub get_non_editable_ic_cvars { + $main::lxdebug->enter_sub(2); + my $self = shift; + my %params = @_; + + Common::check_params(\%params, qw(form dbh row sub_module may_converted_from)); + my $form = $params{form}; + my $dbh = $params{dbh}; + my $row = $params{row}; + my $sub_module = $params{sub_module}; + my $may_converted_from = $params{may_converted_from}; + + my $cvars; + if (! $form->{"${sub_module}_id_${row}"}) { + my $conv_from = 0; + foreach (@{ $may_converted_from }) { + if ($form->{"converted_from_${_}_id_$row"}) { + $cvars = CVar->get_custom_variables(dbh => $dbh, + module => 'IC', + sub_module => $_, + trans_id => $form->{"converted_from_${_}_id_$row"}, + ); + $conv_from = 1; + last; + } + } + # get values for CVars from master data for new items + if (!$conv_from) { + $cvars = CVar->get_custom_variables(dbh => $dbh, + module => 'IC', + trans_id => $form->{"id_$row"}, + ); + } + } else { + # get values for CVars from custom_variables for existing items + $cvars = CVar->get_custom_variables(dbh => $dbh, + module => 'IC', + sub_module => $sub_module, + trans_id => $form->{"${sub_module}_id_${row}"}, + ); + } + # map only non-editable CVars to form + foreach (@{ $cvars }) { + next if $_->{flag_editable}; + $form->{"ic_cvar_$_->{name}_$row"} = $_->{value} + } + + $main::lxdebug->leave_sub(2); +} + 1; __END__