X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIC.pm;h=8fd9281679651cbaf9667b55b1c9ad40041ed659;hb=a5927b9c8dd358ab3aac7cf01204774a363b3f78;hp=bbf4753104b253c7ddcc59993a9e3d3c4a0d86d9;hpb=de0f9532013c861dae78aa01b9633284d1ceee7c;p=kivitendo-erp.git diff --git a/SL/IC.pm b/SL/IC.pm index bbf475310..8fd928167 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 @@ -359,10 +359,10 @@ sub save { return 3; } - $form->{partnumber} = $trans_number->create_unique; + $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; } @@ -593,7 +593,6 @@ sub save { # commit my $rc = $dbh->commit; - $dbh->disconnect; $main::lxdebug->leave_sub(); @@ -671,7 +670,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 +707,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 +912,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 +1048,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',