Merge branch 'master' of ssh://git-mbunkus@lx-office.linet-services.de/~/lx-office-erp
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 4 Mar 2010 09:50:41 +0000 (10:50 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 4 Mar 2010 09:50:41 +0000 (10:50 +0100)
SL/CVar.pm
SL/IC.pm
doc/changelog

index 4d9b6a7..cdc05b5 100644 (file)
@@ -490,8 +490,7 @@ sub build_filter_query {
     }
 
     if (@sub_where) {
-      push @sub_where,  qq|cvar.sub_module = ?|;
-      push @sub_values, "$params{sub_module}";
+      add_token(\@sub_where, \@sub_values, col => 'cvar.sub_module', val => $params{sub_module} || '');
 
       push @where,
         qq|$not EXISTS(
index 080aedf..bce0deb 100644 (file)
--- a/SL/IC.pm
+++ b/SL/IC.pm
@@ -35,7 +35,7 @@
 package IC;
 
 use Data::Dumper;
-use List::MoreUtils qw(all any);
+use List::MoreUtils qw(all any uniq);
 use YAML;
 
 use SL::CVar;
@@ -1005,9 +1005,23 @@ sub all_parts {
   my $where_clause  = join ' AND ', map { "($_)" } @where_tokens;
   my $group_clause  = ' GROUP BY ' . join ', ',    map { $token_builder->($_) } @group_tokens if scalar @group_tokens;
 
-  my ($cvar_where, @cvar_values) = CVar->build_filter_query('module'         => 'IC',
-                                                            'trans_id_field' => 'p.id',
-                                                            'filter'         => $form);
+  my %oe_flag_to_cvar = (
+    bought   => 'invoice',
+    sold     => 'invoice',
+    onorder  => 'orderitems',
+    ordered  => 'orderitems',
+    rfq      => 'orderitems',
+    quoted   => 'orderitems',
+  );
+
+  my ($cvar_where, @cvar_values) = CVar->build_filter_query(
+    module         => 'IC',
+    trans_id_field => $bsooqr ? 'ioi.id': 'p.id',
+    filter         => $form,
+    sub_module     => $bsooqr ? [ uniq grep { $oe_flag_to_cvar{$form->{$_}} } @oe_flags ] : undef,
+  );
+
+  $::lxdebug->dump(0,  "\@cvar_val", \@cvar_values);
 
   if ($cvar_where) {
     $where_clause .= qq| AND ($cvar_where)|;
index 1b43c31..a7abfe4 100644 (file)
   1044 1046 1051 1055 1057 1058 1072 1073 1077 1079 1081 1082 1095 1098
   1100 1101 1108 1110 1118 1125 1127 1130 1133 1135 1136 1138 1144
   1146 1147 1150 1151 1155 1164 1173 1177 1186 1188 1190 1191 1195
-  1197 1198 1199 1200 1201 1250 1289
+  1197 1198 1199 1200 1201 1209 1250 1289
 
 
 2009-06-02 - Version 2.6.0