X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FPE.pm;h=4d7176dd22f20a70792c5ce610c7fef431662607;hb=b29878cbc8a4fa1e0959fca593a91242894315fd;hp=d165a2f9ac2f8c49ea1c7fd37a86a4c10d8a383a;hpb=0884406403ce36af3484924086527ba689807329;p=kivitendo-erp.git diff --git a/SL/PE.pm b/SL/PE.pm index d165a2f9a..4d7176dd2 100644 --- 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 = ?) |;