Fix für Bug 1081. Bei Buchung einer Einkaufsrechnung geht das Rabatt verloren. 1...
[kivitendo-erp.git] / SL / CVar.pm
index 703bbfe..6b603d8 100644 (file)
@@ -1,5 +1,7 @@
 package CVar;
 
+use strict;
+
 use List::Util qw(first);
 use Data::Dumper;
 
@@ -242,6 +244,8 @@ sub get_custom_variables {
                      :                                $act_var->{text_value};
       $cvar->{valid} = $act_var->{valid};
     } else {
+      $cvar->{valid}  =  1;
+
       if ($cvar->{type} eq 'date') {
         if ($cvar->{default_value} eq 'NOW') {
           $cvar->{value} = $cvar->{current_date};
@@ -334,9 +338,11 @@ sub save_custom_variables {
 
     do_statement($form, $sth, $query, @values);
 
-    $self->save_custom_variables_validity(trans_id => $params{trans_id}, config_id => $config->{id},
-      validity => ($params{variables}->{"$params{name_prefix}cvar_$config->{name}$params{name_postfix}_valid"} ? 1 : 0)
-    );
+    unless ($params{always_valid}) {
+      $self->save_custom_variables_validity(trans_id => $params{trans_id}, config_id => $config->{id},
+        validity => ($params{variables}->{"$params{name_prefix}cvar_$config->{name}$params{name_postfix}_valid"} ? 1 : 0)
+      );
+    };
   }
 
   $sth->finish();
@@ -360,11 +366,12 @@ sub render_inputs {
   my %options  = ( name_prefix       => "$params{name_prefix}",
                    name_postfix      => "$params{name_postfix}",
                    hide_non_editable => $params{hide_non_editable},
+                   show_disabled_message => $params{show_disabled_message},
                  );
 
   foreach my $var (@{ $params{variables} }) {
-    $var->{HTML_CODE} = $form->parse_html_template('amcvar/render_inputs', { 'var' => $var, %options });
-    $var->{VALID_BOX} = "<input type=checkbox name='$options{name_prefix}cvar_$var->{name}$options{name_postfix}_valid'@{[$var->{valid} ? ' checked' : '']}>";
+    $var->{HTML_CODE} = $form->parse_html_template('amcvar/render_inputs',     { var => $var, %options });
+    $var->{VALID_BOX} = $form->parse_html_template('amcvar/render_checkboxes', { var => $var, %options });
   }
 
   $main::lxdebug->leave_sub();
@@ -527,7 +534,8 @@ sub add_custom_variables_to_report {
 
   # allow sub_module to be a coderef or a fixed value
   if (ref $params{sub_module} ne 'CODE') {
-    $params{sub_module} = sub { "$params{sub_module}" };
+    my $sub_module = "$params{sub_module}";
+    $params{sub_module} = sub { $sub_module };
   }
 
   my %cfg_map   = map { $_->{id} => $_ } @{ $configs };