+ $main::lxdebug->leave_sub();
+
+ return ($where, @where_values);
+}
+
+sub get_num_matches_for_priceupdate {
+ $main::lxdebug->enter_sub();
+
+ my $self = shift;
+
+ my $myconfig = \%main::myconfig;
+ my $form = $main::form;
+
+ my $dbh = $form->get_standard_dbh($myconfig);
+
+ my ($where, @where_values) = $self->_create_filter_for_priceupdate();
+
+ my $num_updated = 0;
+ my $query;
+
+ for my $column (qw(sellprice listprice)) {
+ next if ($form->{$column} eq "");
+
+ $query =
+ qq|SELECT COUNT(*)
+ FROM parts
+ WHERE id IN
+ (SELECT p.id
+ FROM parts p
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ WHERE $where)|;
+ my ($result) = selectfirst_array_query($form, $dbh, $query, @where_values);
+ $num_updated += $result if (0 <= $result);
+ }
+
+ $query =
+ qq|SELECT COUNT(*)
+ FROM prices
+ WHERE parts_id IN
+ (SELECT p.id
+ FROM parts p
+ LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
+ WHERE $where) AND (pricegroup_id = ?)|;
+ my $sth = prepare_query($form, $dbh, $query);
+
+ for my $i (1 .. $form->{price_rows}) {
+ next if ($form->{"price_$i"} eq "");
+
+ my ($result) = do_statement($form, $sth, $query, @where_values, conv_i($form->{"pricegroup_id_$i"}));
+ $num_updated += $result if (0 <= $result);
+ }
+ $sth->finish();
+
+ $main::lxdebug->leave_sub();
+
+ return $num_updated;
+}
+
+sub update_prices {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $myconfig, $form) = @_;
+
+ my ($where, @where_values) = $self->_create_filter_for_priceupdate();
+ my $num_updated = 0;
+