]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Laden von CVars mit falschen Werten in Artikelstammdaten unterbinden.
authorWaldemar Toews <waldemar.toews@opendynamic.de>
Fri, 7 Nov 2014 10:01:27 +0000 (11:01 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Fri, 7 Nov 2014 10:09:57 +0000 (11:09 +0100)
Beim Laden der CVars in Stammdaten fand die Prüfung nach 'sub_module'
nicht statt.

Dabei werden mehrere Datensätze zurückgeliefert und wenn mann Pech hat
kann der erste Satz, der genommen wird, den Wert aus dem Auftrag oder
woher auch immer haben.

Die Abfrage ist jetzt geändert: Wenn der Parameter nicht übergeben
wurde, dann mit Leerstring vorbelegen und immer nach 'sub_module'
durchsuchen.

SL/CVar.pm

index 0264d8ab09ceadb707dc80006d6f7b081e6fccfd..f819d918793b4bbb3e7a4af88f277255f6d8023c 100644 (file)
@@ -100,11 +100,12 @@ sub get_custom_variables {
 
   my $trans_id = $params{trans_id} ? 'OR (v.trans_id = ?) ' : '';
 
 
   my $trans_id = $params{trans_id} ? 'OR (v.trans_id = ?) ' : '';
 
+  my $sub_module = $params{sub_module} ? $params{sub_module} : '';
+
   my $q_var    =
     qq|SELECT text_value, timestamp_value, timestamp_value::date AS date_value, number_value, bool_value
        FROM custom_variables
   my $q_var    =
     qq|SELECT text_value, timestamp_value, timestamp_value::date AS date_value, number_value, bool_value
        FROM custom_variables
-       WHERE (config_id = ?) AND (trans_id = ?)|;
-  $q_var      .= qq| AND (sub_module = ?)| if $params{sub_module};
+       WHERE (config_id = ?) AND (trans_id = ?) AND (sub_module = ?)|;
   my $h_var    = prepare_query($form, $dbh, $q_var);
 
   my $custom_variables = $self->get_configs(module => $params{module});
   my $h_var    = prepare_query($form, $dbh, $q_var);
 
   my $custom_variables = $self->get_configs(module => $params{module});
@@ -129,8 +130,7 @@ sub get_custom_variables {
 
     my ($act_var, $valid);
     if ($params{trans_id}) {
 
     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};
+      my @values = (conv_i($cvar->{id}), conv_i($params{trans_id}, $sub_module));
 
       do_statement($form, $h_var, $q_var, @values);
       $act_var = $h_var->fetchrow_hashref();
 
       do_statement($form, $h_var, $q_var, @values);
       $act_var = $h_var->fetchrow_hashref();