Auth.pm cosmetics: Entfernen von $::lxdebug->enter_sub/leave_sub
[kivitendo-erp.git] / SL / PE.pm
index d165a2f..4d7176d 100644 (file)
--- a/SL/PE.pm
+++ b/SL/PE.pm
@@ -38,6 +38,8 @@ use Data::Dumper;
 
 use SL::DBUtils;
 
+use strict;
+
 sub partsgroups {
   $main::lxdebug->enter_sub();
 
@@ -57,6 +59,9 @@ sub partsgroups {
     $where .=
       qq| AND id NOT IN | .
       qq|  (SELECT DISTINCT partsgroup_id FROM parts | .
+      qq|   WHERE NOT partsgroup_id ISNULL | .
+      qq| UNION | .
+      qq|   SELECT DISTINCT partsgroup_id FROM custom_variable_config_partsgroups | .
       qq|   WHERE NOT partsgroup_id ISNULL) |;
   }
 
@@ -90,10 +95,11 @@ sub save_partsgroup {
   $form->{discount} /= 100;
 
   my @values = ($form->{partsgroup});
+  my $query;
 
   if ($form->{id}) {
     $query = qq|UPDATE partsgroup SET partsgroup = ? WHERE id = ?|;
-               push(@values, $form->{id});
+    push(@values, $form->{id});
   } else {
     $query = qq|INSERT INTO partsgroup (partsgroup) VALUES (?)|;
   }
@@ -119,13 +125,19 @@ sub get_partsgroup {
     qq|WHERE pg.id = ?|;
   my $sth = prepare_execute_query($form, $dbh, $query, $form->{id},
                                   $form->{id});
-  my $ref = $sth->fetchrow_hashref(NAME_lc);
+  my $ref = $sth->fetchrow_hashref("NAME_lc");
 
   map({ $form->{$_} = $ref->{$_} } keys(%{$ref}));
   $sth->finish;
 
   $dbh->disconnect;
 
+  # also not orphaned if partsgroup is selected for a cvar filter
+  if ($form->{orphaned}) {
+    my $cvar_count = scalar( @{ SL::DB::PartsGroup->new(id => $form->{id})->custom_variable_configs } );
+    $form->{orphaned} = !$cvar_count;
+  }
+
   $main::lxdebug->leave_sub();
 }
 
@@ -139,7 +151,7 @@ sub delete_tuple {
 
   my $table = $form->{type} eq "pricegroup" ? "pricegroup" : "partsgroup";
 
-  $query = qq|DELETE FROM $table WHERE id = ?|;
+  my $query = qq|DELETE FROM $table WHERE id = ?|;
   do_query($form, $dbh, $query, $form->{id});
 
   $dbh->disconnect;
@@ -169,7 +181,7 @@ sub pricegroups {
     my $first = 1;
 
     $where .= qq| AND id NOT IN (|;
-    foreach my $table (qw(invoice orderitems prices rmaitems)) {
+    foreach my $table (qw(invoice orderitems prices)) {
       $where .= "UNION " unless ($first);
       $first = 0;
       $where .=
@@ -216,7 +228,7 @@ sub save_pricegroup {
 
   if ($form->{id}) {
     $query = qq|UPDATE pricegroup SET pricegroup = ? WHERE id = ? |;
-               push(@values, $form->{id});
+    push(@values, $form->{id});
   } else {
     $query = qq|INSERT INTO pricegroup (pricegroup) VALUES (?)|;
   }
@@ -240,7 +252,7 @@ sub get_pricegroup {
 
   my $query = qq|SELECT id, pricegroup FROM pricegroup WHERE id = ?|;
   my $sth = prepare_execute_query($form, $dbh, $query, $form->{id});
-  my $ref = $sth->fetchrow_hashref(NAME_lc);
+  my $ref = $sth->fetchrow_hashref("NAME_lc");
 
   map({ $form->{$_} = $ref->{$_} } keys(%{$ref}));
 
@@ -250,7 +262,7 @@ sub get_pricegroup {
 
   my @values = ();
   $query = qq|SELECT |;
-  foreach my $table (qw(invoice orderitems prices rmaitems)) {
+  foreach my $table (qw(invoice orderitems prices)) {
     $query .= " + " unless ($first);
     $first = 0;
     $query .= qq|(SELECT COUNT(*) FROM $table WHERE pricegroup_id = ?) |;