X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIC.pm;h=5396c7addb75b49c325eeba02c3088a46796670d;hb=02cb7e02771247f3106001076366d119277a7d30;hp=8dc673bca55e5a64eafeb2886ecf8f03dc2ca56d;hpb=c4d0fd51427befedf4070911143a113c7307a0ff;p=kivitendo-erp.git diff --git a/SL/IC.pm b/SL/IC.pm index 8dc673bca..5396c7add 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -288,7 +288,7 @@ sub save { my ($self, $myconfig, $form) = @_; my @values; # connect to database, turn off AutoCommit - my $dbh = $form->dbconnect_noauto($myconfig); + my $dbh = $form->get_standard_dbh; # save the part # make up a unique handle and store in partnumber field @@ -362,7 +362,7 @@ sub save { $form->{partnumber} ||= $trans_number->create_unique; ($form->{id}) = selectrow_query($form, $dbh, qq|SELECT nextval('id')|); - do_query($form, $dbh, qq|INSERT INTO parts (id, partnumber, unit) VALUES (?, ?, '')|, $form->{id}, $form->{partnumber}); + do_query($form, $dbh, qq|INSERT INTO parts (id, partnumber, unit) VALUES (?, ?, ?)|, $form->{id}, $form->{partnumber}, $form->{unit}); $form->{orphaned} = 1; } @@ -497,7 +497,6 @@ sub save { } # insert makemodel records - unless ($form->{item} eq 'service') { my $lastupdate = ''; my $value = 0; for my $i (1 .. $form->{makemodel_rows}) { @@ -521,7 +520,6 @@ sub save { do_query($form, $dbh, $query, @values); } } - } # insert taxes foreach my $item (split(/ /, $form->{taxaccounts})) { @@ -593,7 +591,6 @@ sub save { # commit my $rc = $dbh->commit; - $dbh->disconnect; $main::lxdebug->leave_sub(); @@ -671,7 +668,7 @@ sub delete { my %columns = ( "assembly" => "id", "parts" => "id" ); - for my $table (qw(prices partstax makemodel inventory assembly license translation parts)) { + for my $table (qw(prices partstax makemodel inventory assembly translation parts)) { my $column = defined($columns{$table}) ? $columns{$table} : "parts_id"; do_query($form, $dbh, qq|DELETE FROM $table WHERE $column = ?|, @values); } @@ -708,6 +705,12 @@ sub assembly_item { push(@values, conv_i($form->{id})); } + # Search for part ID overrides all other criteria. + if ($form->{"id_${i}"}) { + $where = qq|p.id = ?|; + @values = ($form->{"id_${i}"}); + } + if ($form->{partnumber}) { $where .= qq| ORDER BY p.partnumber|; } else { @@ -907,6 +910,12 @@ sub all_parts { } } + if ($form->{"partsgroup_id"}) { + $form->{"l_partsgroup"} = '1'; # show the column + push @where_tokens, "pg.id = ?"; + push @bind_vars, $form->{"partsgroup_id"}; + } + foreach (@like_filters) { next unless $form->{$_}; $form->{"l_$_"} = '1'; # show the column @@ -1037,7 +1046,7 @@ sub all_parts { my $select_clause = join ', ', map { $token_builder->($_, 1) } @select_tokens; my $join_clause = join ' ', @joins{ grep $joins_needed{$_}, @join_order }; my $where_clause = join ' AND ', map { "($_)" } @where_tokens; - my $group_clause = ' GROUP BY ' . join ', ', map { $token_builder->($_) } @group_tokens if scalar @group_tokens; + my $group_clause = @group_tokens ? ' GROUP BY ' . join ', ', map { $token_builder->($_) } @group_tokens : ''; my %oe_flag_to_cvar = ( bought => 'invoice',