X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCVar.pm;h=0ace069027da47f263262c49e4fa1f9e40a73fc9;hb=0b8b24545c98eb4cf22bda155d0e7efbf2bdcdb7;hp=f006fd9ca563fb81159e1ec947b150d546001b3b;hpb=0e92b99c50866eaeddd34138d6b3c1b31bff6f43;p=kivitendo-erp.git diff --git a/SL/CVar.pm b/SL/CVar.pm index f006fd9ca..0ace06902 100644 --- a/SL/CVar.pm +++ b/SL/CVar.pm @@ -98,8 +98,6 @@ sub get_custom_variables { my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig); - my $trans_id = $params{trans_id} ? 'OR (v.trans_id = ?) ' : ''; - my $sub_module = $params{sub_module} ? $params{sub_module} : ''; my $q_var = @@ -654,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__